release it

One of the problems most every software developer struggles with is shipping code. I recently picked up the book Release It! as a potential source of inspiration.

Unfortunately, while the author has many good points about finding performance bottlenecks and faults in your application, the insistence of the author to talk about Java everywhere has made the book a lot less enjoyable. The author takes several opportunities to dismiss Ajax (much like Bruce Eckel of Thinking in Java fame has been doing lately), and yet the author’s failure to show examples in PHP, Python, or any other programming language other than Java make me question how much value the book really adds for non-Java developers.

It’s a shame as the author really does seem to know how to solve performance and release problems. I guess I probably would not have bought the book if it was named the more appropriate title of “Java Release It”. For now, I’m still finding more value from Theo’s Scalable Internet Architectures and Cal’s Building Scalable Web Sites.

In taking a look at the performance metrics regarding the new jQuery release. it was curious to note that while jQuery is much faster than before, that on average, according to their performance tests, that Dojo 0.9 beta is faster than jQuery. The averages across all browsers listed are as follows:

  • Prototype: 870.5 ms
  • jQuery: 507.25 ms
  • Mootools: 647 ms
  • Ext: 584 ms
  • Dojo: 481.25 ms

Given that Dojo is rarely praised for its speed or performance, this is great news. Not that these numbers won’t fluctuate over time due to the very healthy competition going on currently.

In comparing Dojo 0.9 for a testcase of instantiating 100 button widgets from markup, our time drops from 9400 ms to 390 ms on IE 6 as a direct result of switching to dojo.query. In keeping some consistency with the way John Resig is measuring percentage performance increases, widget instantiation from markup is now 2400% faster on IE 6 with Dojo 0.9 compared to 0.4!

iBliss: day 3

After two days of iHell, Day 3 was blissful with a successful activation of my iPhone after replacing the SIM card. For now, I’m being forgiving, as the iPhone is flat out fun to use. While not perfect, Apple has managed to get so many cool, fun details just right.

So why the rush and frustration in getting an iPhone right away? Well, we’ve started posting some early results on Cometd and Dojo testing on the iPhone at the SitePen blog. Really this was the whole point for us buying the iPhone in the first place. With Dojo 0.9 beta due any day now, we’re really impressed overall with how responsive Dojo is on the iPhone.

A log of the error messages from AT&T/Apple, for the iPhone (out of 4 total, 3 are working) that failed to activate correctly for us:

June 29, 9:22pm PT:

AT&T is now processing your activation.

You will receive an email confirmation once your activation is complete.

June 29, 9:33pm PT:

Phone service is scheduled to be disconnected on your current phone at or after 12:33 AM EDT on July 01. Please check your email and be prepared to reconnect and activate your iPhone before that time. Please call 877-800-3701 if you’d like to make other arrangements.

You will receive an email to (email address) as soon as your iPhone is ready to be activated. After you activate your iPhone and before your phone number is transferred from your current provider you will continue to receive calls on your current phone. Your iPhone will be able to make outgoing calls but will not receive calls until the transfer is complete.

Please refer to your Activation ID when calling.

June 30, 12:00 PM, I call AT&T for first time… I am assured activation will happen “real soon”

June 30, 12:59 PM (after calling AT&T for the first time):

We’re sorry. The phone number you entered is not eligible to be transferred.

Please re-connect to iTunes and don’t select to transfer your existing number to complete your iPhone activation.

June 30, 1:00 PM, I call AT&T, and am told that they will need to transfer my number manually. I proceed to setup the phone with a new number, then call back, and they initiate my phone number transfer manually.

June 30, 3:58 PM:

AT&T is now processing your activation.

You will receive an email confirmation once your activation is complete.

June 30, 4:00 PM, I call AT&T, wait for a very long time, am transferred around between departments, and I am told that my activation will “definitely happen today since I started the process yesterday”.

June 30, 4:30 PM, I call AT&T, and talk with someone in the port request department. He expresses concern that because an AT&T rep attempted to initiate my phone # transfer while activation was proceeding, that activation may fail and I may need a new SIM card.

June 30, 6:31 PM:

We’re sorry. AT&T has identified a problem with the information you provided.

For more information, call 877-800-3701.

Please refer to your Activation ID when calling.

June 30, 7:20 PM, I call AT&T, and wait for 40 minutes. At first I am told my iPhone is activated. I explain that it is not. After 30 more minutes of discussion, I am told that AT&T believes that my SIM card is already in use. I am told I have to return to an AT&T store, and then start the process over from home. So let me get this straight. I am sent an email that tells me to call AT&T, I wait for over an hour, to then be told to return to the store? An extremely frustrating portion of this entire process is the very cryptic and uninformative email messages from AT&T. At this time my old LG phone no longer sends or receives calls as it has been transferred to AT&T.

Through the course of the day, I spoke with around 8-10 people from AT&T. About half were useless, arrogant, and ready to pass the blame and not accept responsibility for anything. The other half were friendly, extremely helpful, and eager to fix the problem. Unfortunately, every time I ran into a new problem, I was stuck on hold for a long time and then had the misfortune of being stuck with the first type of rep.

The bottom line is that AT&T somehow thinks that this type of lag time is somehow acceptable because a lot of people bought iPhones at once. It is an utter embarrassment for the Apple brand that AT&T is providing such a poor out of the box experience for so many faithful and loyal Apple enthusiasts.


Today, along with a reported 500,000 other people, I picked up an iPhone. We waited in line in 110F heat for about 90 minutes and were among the first 25 in one of many local AT&T stores. Sadly, that was the easy part of the day.

The iPhone looks to be an amazing device, but right now I’m using it as an iPhone Shuffle. I can listen to music but not much else. The coolest feature so far is the play/pause button on the headphones. At this point, I was hoping to be testing out Dojo apps, but tonight has been anything but an “it just works” experience.

At the AT&T store, we discovered that we could not use a business name on our phones. Memo to Apple and AT&T: businesses spend money. After grudgingly putting our phones under my name (4 phone line limit for the family plan apparently), we went home to activate the phones. And that’s when the fun began.

Basically, you cannot access the phone’s user interface without activating the phone. So we entered a lengthy list of information to transfer the phone lines from Verizon to AT&T. What was advertised as a quick easy process instead resulted in this email:

Phone service is scheduled to be disconnected on your current phone at or after 12:33 AM EDT on July 01. Please check your email and be prepared to reconnect and activate your iPhone before that time. Please call 877-800-3701 if you’d like to make other arrangements. You will receive an email to (my email address) as soon as your iPhone is ready to be activated. After you activate your iPhone and before your phone number is transferred from your current provider you will continue to receive calls on your current phone. Your iPhone will be able to make outgoing calls but will not receive calls until the transfer is complete.

So now I sit and wait, and wait, and wait, with 4 phones sitting on my desk that we cannot yet use. I don’t mean to complain, but what’s the point of waiting in line to get a phone right away if the system for activating your phone can’t handle demand, and you can’t do anything with the phone out the box except play music without a display. I’m sure it will get better and these problems will be a distant memory in two days. The device looks really really nice, but I was hoping this blog post would instead be a bunch of screenshots of Dojo 0.9 demos running on the iPhone. I expect more.

wwdc behind the scenes

It’s a bit late to be doing a WWDC follow-up, but better late than never. Alex and I were invited to give a talk about Dojo several months ago, as was Sam Stephenson of Prototype. Since we’re not really allowed to talk about anything tech from the talk that isn’t public, I thought it would be interesting instead to describe in very light detail what happens behind the scenes when giving a talk at WWDC.

First off, Apple puts on an amazingly high quality conference. They put more effort into the details than I’ve experienced at any conference. While not as chic as Office 2.0 (a.k.a. free iPods instead of paper calendars), the amount of attention they took to make our presentation quality be top notch was extremely helpful. It’s also the only conference I can remember where I bought trinkets (in this case Apple pens, keychains, and water bottles).

After Alex pulled several heroic late nights to get a few last minute demos ready to show off the latest in Dojo 0.9, we spent most of Thursday in the speaker ready room making last minute tweaks to the talk. With Dojo 0.9 not quite ready, it was a mad scramble to finish the demos, and we ended up punting on one which we hope is ready soon: Dojo Offline + Google Gears + WordPress.

We arrived at our talk to see a line with at least 200 people queued up. We were treated to a rather nice stage for our talk, with at least 4 machines at our disposal for running various demos, a nice screen to view our talk while looking at the crowd (though we both still had a tendency to look back at the big screen). In my mind I was thinking about the Coldplay concert I went to last year, and decided that I need some better moves on stage rather than looking back at the screen with my hands in my pockets.

I let Alex take the lead on much of the talk, because the talk was mostly about 0.9 and Alex has been doing a phenomenal job leading that effort. In addition to talking about Dojo Offline and a few other sections of the talk, Apple let me speak the infamous “One More Thing” line at the end, to which Apple added a few slides about information that will be available very soon about some sort of quietly announced mobile device they have created.

It was one of the better talks we have done, mostly because we have a lot of interesting things to talk about with 0.9. Also, Apple did a really good job encouraging us to put effort into the talk (and by us I mean mostly Alex), and making us look good. The rumors of Apple being difficult to deal with in preparing for a talk are completely false.

We met several people including two of the main people behind the SVG recommendation (Antoine Quint and Dean Jackson, now of Joost and Apple, respectively), and of course Sam Stephenson and members of the WebKit team.

Thanks again to Apple for inviting us (in particular Stephanie and George), and to the several hundred people that listened to us talk about Dojo for more than an hour.

iPhone bar camp

I usually skip BarCamp and other hackathon coding events because they consume a lot of time and I don’t usually get as much accomplished as I do at my desk. That said, when a major new platform like the iPhone gets released, an event such as the iPhone Dev Camp seems like a great idea to collaborate and get up to speed as quickly as possible. If Apple’s WWDC from last week is any indication, this will be the most in demand BarCamp event ever, and should be a great event to build iPhone apps.

I love the OpenOffice project and the great effort put forward by Sun and the open source community. I was very excited to learn about the initial efforts to create a non-X11 port for the Mac. I have been using NeoOffice/J for quite a while, and am curious to see how the two projects progress. However, it seems that there’s a bit of a disconnect between marketing and legal on the web site:

OpenOffice for Aqua

mac pro vs. macbook pro

I had been waiting for today’s announcement of the new MacBook Pro, and after reading the specs and prices, in spite of the MacBook Pro improvements looking rather nice, I decided to go with the Mac Pro instead, and I’ll keep my first gen MacBook Pro around as well for travel. In evaluating my computer usage, I’ve been a bit dissatisfied with the performance of the MacBook Pro for a while as I can’t effectively run Parallels without running out of RAM. In fact, I’m pretty much always out of RAM with the MacBook Pro.

While I do travel rather frequently, I decided that when I’m on the road I can live with the slower computer, and when I am working, I’ll have the luxury of a quad core machine with 9 GB of RAM. It’s the first desktop machine I will have used in several years, and I’m curious to see if I can handle life with two fully capable machines.

As far as keeping the two machines in sync, the only thing I am concerned about is email as just about everything else lives in subversion or isn’t all that important. I’m a crazy power user of Thunderbird, and I have far too many email accounts. If anyone has good suggestions (besides the typical just use imap for everything, which isn’t enough given my filter settings, etc.), I’d love to hear them.

Per many online reports, it seems that the US media outlets are censoring the presidential debate results and questions asked about said censorship. Now, I had no idea anyone actually watched debates any more, but when I learned that a large number of candidates were invited, I realized that there might actually have been a reason to watch this time.

It appears that big media is intentionally ignoring longshot candidates that mention the constitution and question the intentions of the two parties currently in power. That’s about as un-American and anti-meritocratic as it gets. The thing that is almost as frustrating is that the sites that write about these issues come across as conspiracy theorists that everyone should dismiss. The article linked above, while from a site that is typically dismissed as being overly sensational, does a better job than usual of just stating the facts. But that begs the question, why can’t people attempting to uncover the truth about events that infer highly questionable conduct of our government do so in a way that doesn’t put off people that have a brain?

« Prev - Next »