2012 will feature the comeback of personal blogs

The signs are rather obvious. And yeah, I’ll be linking to this from Twitter, G+ and Facebook…

Now that this site has a somewhat responsive design (try on tablet and small screens!), next I need to look into discussion options, maybe test Disqus.

OSX Software, a year later

Almost a year ago, 28th November 2010, I started a list of must-have OSX software, gather a lot of suggestions via Twitter, comments and email. I updated the post about two dozen times, mostly in December 2010. Its about time to make my own list, based on what I use consistently.


  • Fluid as an app container for GMail. Sucks, but the best I could find until Chrome finally supports Application Shortcuts on OSX.
  • Chrome as my regular browser, with 1Password, AdBlock, RSS Subscription (restores the RSS icon) and Sight (syntax highlighting for raw files) as extensions
  • Adium for IRC, Jabber (GTalk), AIM and ICQ
  • Skype
  • Keynote when web-based presentation tools aren’t cutting it
  • Twitter for Mac, mostly to check other accounts, like @qunitjs, runs only when I need it
  • 1Password to generate and mange passwords. Chrome integration is nice, runs also on Windows machine and Android phone.
  • Tunnelblick for VPN connections


  • Homebrew to install and keep up-to-date tools like git
  • iTerm2 as the much better terminal
  • Eclipse is still the IDE for the rare Java project
  • Sublime Text 2 is becoming my primary editor
  • Filezilla for the rare FTP upload
  • VirtualBox to test IEs and Windows screenreaders. The only software on this list that sometimes crashes, and its been a long time since it managed to also take down the entire system.


  • iTunes for music
  • VLC for video
  • Picasa for photos

HTML5 E-Mail Validation

Validating email addresses is a very unthankful business. Whatever you do, you’re doing it wrong. If you follow the spec, users complain about false positives, if you don’t, they’ll complain about false negatives. And you can’t even blame them – in most contexts, “[email protected]” is not a valid address, according to the standard it is (consider “[email protected]”).

As usual, being pragmatic and having a good testsuite helps. As part of the jQuery Validation plugin, a somewhat comprehensive testsuite came together. The implementation for that is here. That expression wasn’t written by hand, but compiled. Scott González has the tools for that.

With that in mind, what are the html5 email validations doing? While I don’t know what they’re testing against, Schalk Neethling looked up the implementations for Chrome and Firefox. It would be interesting to run those implementations against the testsuite above, and see if there are problems. Anyone interested in helping with that?

Fighting Brook’s Law

You prolly heard of Brook’s Law before:

adding manpower to a late software project makes it later

While that is, in Brook’s words, an “outrageous oversimplification”, it captures a lot value. And as with most things, taking a step back by generalzing it, yields some interesting results.

Consider the recommendation (see for example slide 46 here) that anyone with experience with venture capital funding will give you: Only take funding when you don’t need it. In this context, you should use funding to grow a company that already works. If you need money just to keep it running, you might as well stop.

Kind of similar to Brook’s Law, isn’t it? But still, its kind of unintuitive. Let’s try another example:

Consider that you live in a time where you need children to take care of you eventually, when you can’t take care of yourself anymore. Was the reality not that long ago. In that context, would you start making children the moment you actually need them? Nope, its just Chuck Testa you’d start two or three decades before that.

Luckily for us, in software projects we don’t have to plan decades ahead. But the lesson should be clear: to fight Brook’s Law, add people to your project when you can, not when you need to.

Here’s the post as a gist, you’re welcome to improve it.