With Google Chrome 2.0 comes extensions.

My very favorite firefox extension is firebug. It’s the one I really couldn’t live without. It’d be like trying to mountain climb with only only twenty feet of rope. Painful and unnecessary.

Chrome is the up and comer with excellent performance and seamless google integration. What would it take for me to dump my tried and true mozilla browser for the new kid on the block? At the very minimum a ported or trumped firebug equivalent.

If firebug were a commercial product I imagine there would be much more of a chance for a straight port. I’m sure the revenue generating (directly or indirectly) toolbars will get ported with ease. But firebug? Maybe what’s more likely is a firebug inspired chrome specific extension. If that happens it’ll either fall short or kick firebugs ass.

I’m sure I’m not the only web developer that feels this way. While we may not make up a significant market share in terms of raw numbers it’s because we bit twiddlers are constantly remaking the internet that I think this is an important hurdle for chrome to overcome in it’s quest for world domination relevancy. Like the human body the internet completely regenerates itself every seven years or so, and it’s we web monkeys, not the voodoo super magic of biology that is responsible for this evolution one Console/DOM/Debugger/Cookie/Net panel use at a time.

From a platform development perspective it’s a fairly cut and dry real world test. Will Chrome pass the firebug challenge? Maybe by the time you read this they have already. Maybe not.

I’m going to start this post by saying I’m an agnostic as far as platform choice for servers, I prefer Windows for my desktop, and MySQL is a joke (I like SQL Server and PostgreSQL).

First, Alan Cox, the guy that maintained the TTY subsystem of the Linux kernel, apparently got sick of all the whining voices in the community, including a bitch session from Linus Torvalds, and decided to bail. And apparently he’s serious. Good for you, Alan!

Next up, the CentOS project administrator, Lance Davis, has apparently disappeared from the face of the earth, along with the project funds. CentOS, for those not familiar, is an enterprise-class Linux distribution built on Red Hat.

These types of public temper tantrums are entertaining, sure. I mean who doesn’t like a bit of drama? However, they also make me question the wisdom of building a business on something open source like CentOS. Sure, the source code will always be free, but I want to build applications and maintain those, and not have to worry about the progression of the operating system as well.

The Alan Cox thing isn’t a big deal, there is a system in place apparently and there’s a new maintainer who is already maintaining. It looks like there might be a small slowdown while that gets sorted out, but if he’s been acting like a defective as Linus seems to indicate in that email, then perhaps it will result in a speedup.

The CentOS situation is different. The main administrator apparently took off with the cookies, and from the open letter it would appear some things weren’t in order before that. And now he’s going away and they’re talking about the project dying, in public, on the front page of their website. That doesn’t instill confidence.

And speaking of cookies, and this is unrelated to everything else, it looks like federal websites might start using them! Welcome to 1998, guys!

Have a nice day!

Edit: Apparently the CentOS thing has been going on for some time. And apparently it has affected development.

Edit2: Looks like CentOS found their leader:

The CentOS Development team had a routine meeting today with Lance Davis in attendance. During the meeting a majority of issues were resolved immediately and a working agreement was reached with deadlines for remaining unresolved issues. There should be no impact to any CentOS users going forward.

The CentOS project is now in control of the CentOS.org and CentOS.info domains and owns all trademarks, materials, and artwork in the CentOS distributions.

We look forward to working with Lance to quickly complete all the agreed upon issues.

Still, can you trust the way they’re running things there?

‘See when you on top, mother fuckers just want to bring you down. Mother fuckers don’t even know you they don’t like you.’
-My Downfall, Notorious BIG

Google’s awesome and everything I’m not for a second going to deny that—though I’m far too attached to Firefox to make the switch to Chrome it seems by all accounts to be a nice piece of software. Why am I too attached to Firefox? Add-ons.

What makes Windows great is the endless applications available for it. A rich tapestry of millions, millions of applications. People love to bash Microsoft at every opportunity, but truth is, they are just as awesome as Google. Sure they can’t make a decent browser to save their life, they’ve released countless applications that were lame, bug ridden and fell by the wayside. That guy who got that Zune tattoo had it removed. They’ve been known to strong arm partners and put the squeeze on their competitors. Regardless, make no mistake, they are awesome. What makes them awesome is as Ballmer famously exclaimed: Developers, developers, developers.

This is also what makes the iPhone awesome. It’s what makes Firefox awesome. It’s what makes Windows awesome. These systems would be fairly sweet without a plethora of third party functionality but it’s this plethora that makes them truly, undeniably, definitively: awesome. Pry them from my dead hands awesome.

Google doesn’t seem to be totally hip to this way of doing things. I’m not saying they won’t be later, but so far, it doesn’t seem like they really ‘get’ it completely yet. Take Google Analytics for example, the insanely popular traffic monitoring tool. They are just now releasing a public beta API for exporting your analytics data. For years that data was trapped and there was no way to interface with the service. Want to write applications for Google Apps using your favorite programming language? No problem, as long as your favorite programming language is Python.

I’m a web developer and have been for sometime now. I think in web. Nonetheless, I don’t see a large market for a browser OS  anytime soon. Niche sure, M$ killer. I don’t think so. Add that to the fact that Google isn’t a super developer friendly company really, and Microsoft is much wiser and easier going then they used to be and you’ve got a bunch of hoopla for fluff.

You want irony? Google Chrome isn’t even available for Linux yet which is to be the base of the new Google Chrome operating system.

And Windows 7? Everyone says it looks, well, awesome.

yet
When using the Entity Framework if you want to mess with your entities before they persist to the database one popular way to do it is to hook into SavingChanges from the OnContextCreated method of your Entities ObjectContext like so:

public partial class SomethingEntities
{
partial void OnContextCreated()
{
this.SavingChanges += new EventHandler(OnSavingChanges);
}

public void OnSavingChanges(object sender, System.EventArgs e)
{
//Do stuff
}
}

I was trying to do exactly this but was having a problem. The gosh darn thing wouldn’t fucking fire. In fact, none of the constructors on my Entities ObjectContext were firing. My controls were dancing around all over the place selecting and updating data but nay a constructor to be called.

My EntityDataSource looked like this:

<asp:EntityDataSource ID=”DataSource” ConnectionString=”name=SomethingEntities” DefaultContainerName=”SomethingEntities”
EnableDelete=”True” EnableInsert=”True” EnableUpdate=”True” EntitySetName=”EntityName” runat=”server” />

I was using both the ConnectionString and the DefaultContainerName property as initialization parameters to get the DataSource going. Turns out this wasn’t the right thing to do because when configured this way the DataSource never got my Entities ObjectContext to fire its constructors. I got it to work after some head scratching by changing it to:

<asp:EntityDataSource ID=”DataSource” ContextTypeName=”Namespace.SomethingEntities”
EnableDelete=”True” EnableInsert=”True” EnableUpdate=”True” EntitySetName=”EntityName” runat=”server” />

By using the ContextTypeName property instead of the ConnectionString and DefaultContainerName properties everything seemed to work. A constructor on my Entities ObjectContext was called which in turn called OnContextCreated which hooked up my SavingChanges method which now gets called when it should before changes are persisted to the database.

Problem solved.

It turns out that there’s an official way to restart Windows Explorer. As a developer I have wanted to know how to do this for what seems like 1,000 years, but never bothered to figure it out as you can kill the task from task manager AND re-run a new explorer.exe from the same place.

To shut down officially on Windows 2000 or XP:

  1. In the Start menu choose Shutdown (or Turn Off Computer on Windows XP)
  2. When the Turn Off Computer dialog shows up, press CTRL + SHIFT and hold them down. While holding them down, click cancel on the shutdown dialog. Explorer will quit.
  3. After Explorer quits, hit CTRL + SHIFT+ ESC to bring up the task manager
  4. In Task Manager, choose File->New Task
  5. Type explorer.exe into the box and press enter. All set!

So now I know how to restart Explorer on Windows XP. However, I switched to Vista last year. When you go to Start->Shutdown on Vista, the computer instantly shuts down, giving you no opportunity to do any of the fancy keywork. Any ideas?

Edit 4/29/09: Okay I found the Vista instructions:

  1. Hit the Windows key to bring up the start menu
  2. Press and hold CTRL + SHIFT.  While holding those keys down, right click on an empty area in the start menu (for instance right above the lock icon) and you’ll see a menu that has “Exit Explorer” and “Properties.”
  3. You’re going to want to select “Exit Explorer” in that menu.
  4. After Explorer quits, hit CTRL + SHIFT+ ESC to bring up the task manager
  5. In task manager, select File -> New Task (Run)
  6. Type explorer.exe into the box and press enter. All set!


I recently got back in touch with a guy I know, and he showed me this cool project he worked on. Here’s sample output from his application that used my face:

Get the Flash Player to see this player.

Looks great! This is the file I uploaded (not even a good snapshot):