The Advisory Boar

By Abhijit Menon-Sen <>

A fond farewell to “narco analysis”

If you want to use Veritaserum, you know where to find Azkaban.

Read more…

Managing release branches: git merge vs. p4 integrate

Git prefers to merge topic branches forwards, where Perforce integrates changes into back branches. Life becomes easier if you can work with each program's preferred model.

Read more…

Suspicious and claustrophobic

Whenever I hear someone say This room is so claustrophobic!, I have to bite my tongue and remind myself that there is no simple way in English to distinguish between "suffering from claustrophobia" and "inducing claustrophobia".

Another word that suffers from the same problem (ambiguity, that is, not a fear of closed spaces) is "suspicious".

"He looks suspicious"… but do I suspect him, or does he suspect me?

Delivering mail to Hotmail

I just helped a friend move mail service for a few domains from his old server to a new one running Postfix, Archiveopteryx, and Roundcube. The move went well, but for one thing: mail sent through the new server to Hotmail was accepted, but never delivered to the recipient's inbox, no matter how permissive the anti spam settings. (Mail sent to GMail and Yahoo worked fine.)

Read more…

Secret Squirrels

Baby squirrels looking adorably sinister as they take up positions around a telephone pole:

Photograph of squirrels

Now, where can I find a Morocco Mole?

Using Git with a central repository

This tutorial explains how to share a Git repository among developers. It is meant for small teams who are adopting Git for the first time, and want to get started quickly with a familiar setup before exploring Git's many new possibilities.

If you follow this route, you will end up with a single centrally-hosted repository that everyone in your group can use to publish their own work and fetch whatever others have published. People used to a centralised VCS will find this model easy to adjust to, but of course, each user's "working copy" will itself be a fully-fledged Git repository, and many new workflows are available to users as they learn more.

Read more…

#ifdef considered harmful

Speaking of portability, here's a link to Henry Spencer and Geoff Collyer's classic 1992 USENIX paper #ifdef Considered Harmful, or Portability Experience With C News.

We believe that a C programmer's impulse to use #ifdef in an attempt at portability is usually a mistake. Portability is generally the result of advance planning rather than trench warfare involving #ifdef.

It's been eighteen years since its publication, but not enough people have read that paper yet.

libjpeg-turbo is very fast

I recently discovered libjpeg-turbo, a drop-in replacement for the venerable libjpeg.so.62 that uses SIMD instructions to achieve 2–4x the performance of the old library.

Read more…

Git disaster recovery

I typed git commit and git push, and a few seconds later, the mains power died.

Read more…

Mirroring GMail mailboxes with IMAP

An IMAP downloader that handles various gmail-specific quirks.

Read more…