Feb 152007

Besides my reasons for loving IntelliJ with respect to the keyboard support, I have found a new reason why IntelliJ will always be a better solution and well worth the money.

They actually fix bugs. You buy the product and report a bug, they take it seriously, even if it is something somewhat minor. Here are links to two bugs I’ve filed, one for Eclipse and one for IntelliJ:



As you can see if you look at the dates of these, the Eclipse bug, which in my opinion is pretty severe if you use the keyboard as your main form of interaction with the IDE, was opened 4 years ago. Yep. 4 YEARS! And it isn’t even closed yet!

Now if you look at the IntelliJ bug, it was opened 20 HOURS ago and is already closed and back ported! This is just one of many examples of this type of treatment. I’ve opened 10-12 bugs with Eclipse and the turn around is usually a year or two. The most shining example of this horrible lag is the “Default line terminator bug” located here:


This took five years to fix and this is one of the most fundamental settings that ALL text editors have! The ability to change the default line terminator for new files…. I mean come on people! On the flip side, IntelliJ bugs are normally fixed within a day or two and at the longest a few months.

Plus, it must really say something about the engineering of these two products to see how quickly bugs can be fixed. The better the system is engineered and tested, the easier is will be to update and fix. This might be a bit controversial, but I believe it.

So…. IntelliJ will always win until Eclipse figures out that usability and fixing bugs is far more important than adding new features.

Feb 142007

Came across an interesting situation where my Rails application was going to be receiving URLs with characters like (dash) and . (period or dot). Something like this:

Ruby doesn’t allow dashes or periods in identifiers, so this was going to cause a problem with method naming. I couldn’t figure out how to handle this from the web and so I dove into the source and found that when the action method doesn’t exist Rails calls a catch all method called perform_action. Adding my logic to this method worked well. Looks something like this:

[tags]rails urls,ruby identifiers[/tags]

Feb 012007

I got the official email from Borders today about pre-ordering my copy of the next Harry Potter book. Unfortunately their online ordering system for the book has been down all day. They obviously weren’t expecting such a huge response and probably sent out the same email to all 500 million folks who signed up to be notified. Crazy madness I tell you!

Maybe they need to reduce the work on the web boxes and put it into a cluster or space on the backend. Then at least we could see the website instead of a timeout. They definitely need a fail forward (i.e. fail fast) approach to their websites.

[tags] harry potter, borders, distributed computing, fail forward, fail fast[/tags]