I’ve written and contributed to a number of free and open source software packages. Among them are the following.

Revision control tools

  • Mercurial, a fast, popular distributed revision control tool

Haskell libraries and tools

  • mysql, pure unencumbered MySQL bindings
  • pcap, an efficient system-independent interface for user-level packet capture
  • stringsearch, fast Boyer-Moore and Knuth-Morris-Pratt search functions for ByteStrings
  • Data.SuffixTree, an efficient lazy suffix tree implementation
  • FileManip, a library for manipulating files efficiently

Networking tools

  • netplug, a lightweight Linux daemon for responding to network cable status changes

Older, unmaintained software

Please note that by and large, I do not respond to bug reports or issue new releases for these packages.

  • cabal-rpm, an RPM packager for Haskell Cabal packages
  • python-inotify, a set of efficient Python bindings to the Linux inotify system call
24 comments on “Software
  1. Vadim Engelson says:

    Thank you for a nice book on Mercurial
    published at

    The version of
    has a problem with _ (underscore) symbol,
    it is broken everywhere it is used.
    It has text t4ht@95x instead.

    This is in HTML version. PDF is OK.

  2. alpar says:


    The source code repository of your fantastic hg book became unaccessible. Could you fix it somehow?

  3. cg says:

    What happened to the hg book source? It’s a wonderful piece of work! The mercurial blog points to a bad link.

  4. Jason S says:

    Just FYI — there’s a bug in the hgbook in chapter 9 when it talks about the “bisect” command: all of the session listings show errors e.g. “option ‘–good’ not recognized”; perhaps these are using an older version of hg or one where the options didn’t use “–” before the bisect subcommands?

  5. patrick mullen says:

    Thank you for the mercurical book, love this vcs and am never ever going back to subversion. I was a bit unsure of understanding the slightly different world of “distributed”, but the book helped connect the dots.

    That bug in chapter 9 is still there! But it’s not a big deal, the text is enough to understand what should be going on even without the output from the commands.

  6. j. van den hoff says:

    really thanks a lot for the mercurial book, but I’d love to
    have a single-page html version (like the svn book) to enable whole document
    text search. would this be possible?

  7. alvivi says:

    Maybe I’m a purist. All books that I carry on my reader have a frontpage. So, I made a frontpage for hgbook (O’Reilly inspired :P). If somebody needs it, here it is ( By the way, great books Bryan (RWH and HG). Cheers.

  8. geoffrey zheng says:

    The links in hg book comment feed are wrong: the domain name is, and after I change it to the right one the URL still doesn’t work.

  9. David L says:

    I have read the Mercurial book, and we are looking at pushing it full steam ahead in our corporate environment, but now I am looking for governance documents, since most of the “enforcement” our old VCS did was technical and it essentially evaporates under Mercurial. Anyone have some good ones on code ownership and repo management with bug tracking and such?

  10. Bob S says:

    Reading Mercurial, 1st ed.

    p35 Merging Streams:
    4:2278 can be found on the graphic, but 5:cbfc cannot?

    p36 Merging Streams:
    5:cbfc does not match 5:b15c in graphic?

    P37 Merging Streams:
    6:12ef does not match 6:793c in graphic?

    Am I reading the examples incorrectly? Why don’t the changeset values match?


  11. Rafi says:


    I have a question about your book on Mercurial. What software did you use for HTML version of this book? It is very nice with this commenting feature, RSS and it has very clean design :). Is that software broadly available (opensource? commercial?).

    Thanks for the great job with mercurial :).

    Best regards!

  12. Mini says:

    I actually don’t use eitehr of these tools anymore I just use GitHub. But, from what I can recall, Deploy does not deploy the database it’s primary function is to deploy the code that’s located in the Codebase repository.Secondly, you’d have to setup some sort of script or trigger to check for the production site being updated and then pulling it down. That isn’t really the purpose of Codebase, though and it can’t be done. It’s just source control.Finally, I normally checkout the trunk into my plugins directory. That way, I can run in the code in my local instance of WordPress and then just commit changes as I make them. Once checked in, I then tag it appropriately. Hope this method helps I know it can be a little frustrating trying to get the environment configured in a developer-friendly way.

  13. Minamas Plantation is one of the biggest Palm Oil Plantation in Indonesia (with more than 250.000 ha of estates) and also a subsidiary of Sime Darby Berhad ( the largest plantation company in the world. With more than 30.000 employees we are moving forward to become a world class company. To support our operation we […] Go to Source: 7 Positions Minamas Plantation

  14. My cousin who is more my sister is due in November after trying to get pregnant for years. I would love to give her something really beautiful and this blanket would be perfect. I would love the yellow edging. Thank you!

  15. Tamas Csabina says:

    The example repo’s new location:

  16. Hi there I am so grateful I found your web site, I really found you by error, while I was searching on Yahoo for something else, Anyways I am here now and would just like to say cheers for a fantastic post and a all round interesting blog (I also love the theme/design), I don’t have time to read it all at the moment but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the great work.

  17. 発送希望の方はお振込後に着払い料金を必ず払っていただける方でお願いします。 プリントティーシャツ

  18. Emil Bjorn says:

    Just wanna input on few general things, The website layout is perfect, the written content is very good : D.

  19. Hey, you used to write fantastic, but the last several posts have been kinda boring¡K I miss your super writings. Past few posts are just a bit out of track! come on!

  20. thanks for your brilliant pieces of information.we learn a lot of thinks from you.we also have provided a lot of information of taxi details as in-depth so visit it

  21. Helga says:

    Does anyone have some good ones on code ownership and repo management with bug tracking and such? Delaware Drywallers eagers to know.

    Best regards,

  22. Impressive list of contributions!

  23. cement floor says:

    Your contributions span across various crucial areas of software development.

  24. Great post you shared here.

Leave a Reply

Your email address will not be published. Required fields are marked *