At work we faced a strange issue with mongoDB 2.x. Whereas our requests were working perfectly with mongoDB 1.8 we always got errors. The message mongoDB was firing at us was of the form :

Caused by: com.mongodb.MongoException: assertion db/../bson/bsonobjbuilder.h:127
       at com.mongodb.MongoException.parse(MongoException.java:82)

I found the following issue in mongoDB's Jira but apparently nothing to do with our requests (we are not using empty properties indexes), it takes me a lot of time to figure out that, at times, our request were sorted on empty properties (as stated here). The fix is really simple, do not sort on empty properties !

As it takes me times to find this and I did not find any blog post explaining this, I hope it will help another developer.

This morning one of the Jenkins job went red, 5 tests were failing, and it was very difficult to find out which commit caused the break (69 commits were concerned), I used git bisect to run maven tests to find the guilty one. Here is a quick howto:

  • find a stable commit (in my case it was 2ea34cf09cc83804cdcc445476bfb597c617a034)
  • write a short script (myScript.sh) allowing you to run the tests:

#!/bin/sh
mvn -f path/to/my/pom.xml -Dtest=MyTestClass test
  • git bisect start HEAD 2ea34cf09cc83804cdcc445476bfb597c617a034
  • git bisect run ./myScript.sh

That's all, in a few runs (6 in my cases), git found out the commit causing the test failure, a simple git revert and tests were back to green !

Like many terminal geek, I have a bunch of dot rc files allowing me to configure my environment. While this is a very powerful way to setup an environment, it is painful to log in a machine and set it up like you are used to, you often discover too late your favorite alias is missing.

I found a nice way to manage this thing by browsing the github account of one of a man coming frequently to the Tours Java User Group meetings. It is commonly called dotfiles and can not be better named I found.

I forked the repository to customize it to my needs, it is now possible to define aliases and to configure the shell on a per machine basis. To install, you will only need ruby and rake (manual install is also possible by symlinking the files) :

  • cd; git clone git://github.com/CedricGatay/dotfiles.git .dotfiles
  • cd .dotfiles; rake install
  • logout and login, or source your .zshrc / .bashrc
  • Please notice that I am a zsh user, the bashrc file provided should work but it will surely need some fixes. There is no better way than digging into the source to understand and adjust it.

What's Trello ?

Trello is a really nice application to manage about everything you want. The GUI is really cool and simple to use, we are actually testing it in my company and we have a very good first feeling. If you want to discover more, don't hesitate to watch the presentation video and give it a try at Trello website.

Notification system

Trello provides a very nice notification system, instead of spamming you with mail everytimes something happens, it detects your activity on the site and sends you mail only when you're offline / idle. The only thing I miss is the hability to see if I have missed notification in my pinned tab. I remembered of a good userscript for GMail allowing to display the number of unread emails. As I have no experience in GreaseMonkey scripts, I used the previous one as a learning base and did a script allowing to see the number of missed notification (from 1 to 9, and displaying a + if it exceeds 9).
You can see it in action in the blog post picture next to GMail pinned tab in Chrome.

You can download it on userscripts or view the source on my github repository.