It's one of those days, thanks to a hard disk going south I ended up having to rebuild the system drive on one of my machines. After putting the important software back on there - "Outlook and Emacs", as one of my colleagues calls it - I had to reapply some of the usual tweaks that make a generic developer workstation my developer workstation.

Admittedly I'm  not the biggest fan of git - I prefer Mercurial - but we're using it at work and it does a good job as a DVCS. However, we're mostly a Windows shop and the out of the box performance of Git for Windows is anything but stellar when you are using ssh as the transport for git. That's not too much bother with most of our repos but we have a couple of fairly big ones and clone performance with those matters.

I used to use Carbon Emacs on OS X for quite a while, but with the release of Emacs 24 I switched to the stock GNU Emacs distribution. While GNU Emacs works fine on OS X, once you throw a German keyboard layout in the mix it doesn't work so well as OS X uses Option + Number keys for a variety of characters needed for programming like [] and {}. GNU Emacs uses Option as Meta out of the box so the key mapping doesn't work overly well, especially if you do a lot of programming in the C family of languages.

I recently came across a discussion on LinkedIn where someone had run into memory related undefined behaviour. This prompted me to write this post as it's a common, subtle and often not very well understood bug that's easily introduced into C++ code.

Not that I'm doing much with it yet other than the more minibuffer completion, but I really notice when icicles is not installed or inactive, so I've ended up adding it to every Emacs installation I use. ELPA is coming in really handy as it's a matter of just installing icicles via one of its repos rather than having to install it manually. I'm really going off manual installs of complex Emacs packages these days after doing it for so long.