Archive for June, 2009

The Passing of a Giant

Michael Jackson, an icon for an era, passed away yesterday at an overly young age of 50. His era was my era. I was in high school when Thriller came out. The album was pure electricity and a defining musical moment for a lot of kids. I’m still a big fan of 80s music, and this album was a lion.

It was sad to watch Michael descend into freak show status. He wasn’t ready for his celebrity status, and I’m sure he had too many handlers doing whatever they could to keep their gravy train going, leading to his decline. Michael became the human equivalent of a factory farm hog – fed, doped and bringing home the bacon for his owners.

So rest in peace, Michael. And remember, don’t stop ’til you get enough.

Rounding Error

A few months ago, I ran some performance comparisons of various JavaScript selector engines using Slickspeed. My intent was to validate claims made by the ExtJS team as to why they didn’t use the Sizzle selector engine in Ext Core.

Ext Core has now gone final, so I wanted to re-run my tests. But there was also some news on the browser front: Apple released Safari 4 and Google dropped Chrome 2. Being the geek I am, I had to try them out. My Slickspeed test was the perfect candidate for seeing what Safari 4 and Chrome 2 could do.

In my prior post, I said developers should be bowing at the throne of Google for Chrome and its pack-leading JavaScript performance. That crown has now been abdicated. Safari 4 and Chrome 2 are leaps and bounds ahead of everything else on Slickspeed.

Here are the details on Safari 4:

  • Prototype: – 9ms
  • Dojo: – 3ms
  • JQuery: – 4ms
  • ExtCore: – 19ms
  • Sizzle: – 2ms

safari4

Safari 4 didn’t get along well with SnagIt, so I was only able to capture the bottom of the results output. Here are the results for Chrome 2:

  • Prototype: – 13ms
  • Dojo: – 4ms
  • JQuery: – 2ms
  • ExtCore: – 41ms
  • Sizzle: – 1ms

chrome2

This is simply stupendous. The performance of JQuery turns into a rounding error in both these browsers. As a basis of comparison, here are the prior results for Chrome 1:

  • Prototype: – 13ms
  • Dojo: – 7ms
  • JQuery: – 8ms
  • ExtCore: – 13ms
  • Sizzle: – 8ms

So what conclusions can we draw?

  1. Choice of JavaScript engine becomes irrelevant with any of these two WebKit based browsers. They all fly, even lowly Prototype.
  2. Ext, LLC, screwed the pooch in not using Sizzle for the selector engine in ExtCore. It would have been a better investment in them adopting Sizzle and working to improve it rather than blazing their own trail. The difference in Chrome 2 between Sizzle and ExtCore is staggering: 1ms in Sizzle vs 41ms for ExtCore.
  3. The latest and greatest from Microsoft (IE8) starts to look absolutely pathetic compared to the competition. Microsoft should be ashamed of themselves for having their asses so soundly handed to them on such a critical piece of infrastructure as the browser. Whether it is due to their outdated opinions on open source, or that they can no longer attract top talent, Microsoft is proving to not even be a contender in the JavaScript performance race.
  4. Both Apple and Google use WebKit as the basis for their mobile offerings (iPhone and Android). The sheer power of WebKit is going to offer both these platforms outstanding opportunities for rich browser-based applications. It is clear why neither platform cares much about Flash or Silverlight: the don’t need them.

Charity Overload

One of resolutions for the year was to give $100 a month to a different charity each month throughout the year. I’ve been on a pretty good roll so far this year, hitting five charities I’ve felt good about giving to. But there is now a kink in my plan.

I’ve discovered giving money to a charity is like giving crack cocaine to an addict. My snailmail box is literally overflowing with solicitations for additional donations. There is always a new campaign where they need money now. Worse, it is clear some of my charities shared my name with other charities, because I’m now getting bombarded with solicitations from charities I have never heard of.

So my naive approach of picking a differently charity each month is not a sustainable objective if I don’t want to use a handcart when I go to the mailbox. I realize the tight economic times have made a lot of charities have to work harder for their contributions, but I’m honestly shocked and offended by the quantity of garbage in my mail that results from a simple $100 contribution.

So going forward, I’m going to take a simpler, less diverse route. I’ll continue to give $100 a month, but it will only go to a singe charity: Médecins Sans Frontières. They were my first of the year, and are still my favorite. I’ll make an exception for Toys for Tots at Christmas, but otherwise, I’ll be focusing on MSF.

Catchup

The last two weeks have basically gone by in a blur, so I finally decided to squeeze in some time for an update. At Orange Leap, we’ve been running at warp 11 putting the finishing touches on v1.0 of our product. I’ve been up to my neck in the bowels of Spring Security and attempting to integrate it with CAS and our LDAP server for single sign-on. It has been an absolute beat-down trying to get it all together, and I’ve developed a strong love-hate relationship Spring Security. It makes the simple stuff possible and the hard stuff really hard.

This past weekend, Dallas hosted the first ever Big (D)esign Conference. Organization was a bit rough around the edges, but the conference really rocked. I don’t usually hang much with the artsy design folks, even though it is something that interests me. This was like a breath of fresh air after too much time immersed in hairy backend coding. I met a lot of new Twitter friends and came away with some good ideas. Hopefully I can start back in on some frontend work in the coming weeks to try and apply it.

Some cool tech has dropped that I really want to find some time to get familiar with. Microsoft went live with Bing today, and it looks pretty cool so far. Adobe also dropped the first beta of Flash Builder 4 over on Adobe Labs. I’ve been having a lot of fun with Flex, but need to backburner it until end of June. I also signed up with Ribbit. It looks pretty awesome and is in the queue for brain cycles after I get comfortable with Flex. And I still want to find time to get deeper into Groovy.

Finally, Dallas Tech Fest is just around the corner and I’ve still got a lot of work to do on my presentation. It has been a struggle finding quality time to work at home. Zoe is has decided the best place to watch Elmo is on my lap at my computer, so I have to sneak in work at bath time or after she’s asleep.