The Curious Engineer

All blogs / Haskell

teideal glic deisbhéalach

serpentine.com/posts

Bryan O’Sullivan’s website. Recent blog posts below.

HaskellPerformance / optimizationDev tools / editors / IDEs

’05’10’15’20’25
Posts
261 from 15 Feb 2003 to 14 Sep 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://www.serpentine.com/posts/index.xml

2026 2

  1. Announcing jj-stack: stacked GitHub pull requests for Jujutsu
  2. How my e-reader lost its stripes

2015 1

  1. Sometimes, the old ways are the best

2014 8

  1. criterion 1.0
  2. Win bigger statistical fights with a better jackknife
  3. A major upgrade to attoparsec: more speed, more power
  4. Top Haskell packages seen through graph centrality beer goggles
  5. Once more into the teach, dear friends
  6. Where credit belongs for Hack
  7. Book review: Parallel and Concurrent Programming in Haskell
  8. New year, new library releases, new levels of speed

2013 5

  1. Testing a UTF-8 decoder with vigour
  2. Open question: help me design a new encoding API for aeson
  3. Big fucking deal
  4. What’s in a number? criterion edition
  5. What’s good for C++ is good for … Haskell!?

2012 6

  1. A major new release of the Haskell hashable library
  2. A fast new SipHash implementation in Haskell
  3. The case of the mysterious explosion in space
  4. Performance: yes, it’s worth looking at the small stuff
  5. (re)announcing statprof, a statistical profiler for Python
  6. github is making me feel stupid(er)

2011 13

  1. aeson 0.4: easier, faster, better
  2. The future of MailRank’s open source technologies
  3. A major new release of the Haskell statistics library
  4. The Strange Loop conference was a blast
  5. Fitter, happier, more productive UTF-8 decoding
  6. Here be dragons: advances in problems you didn’t even know you had
  7. attoparsec 0.9, a major (and abortive) release [updated]
  8. Exciting teaching news
  9. A new week, a new JSON performance improvement
  10. A little care and feeding can go a long way
  11. CPS is great! CPS is terrible!
  12. Faster, better, cleaner: new aeson and attoparsec releases
  13. So I went and started a company

2010 27

  1. A small matter of illegal characters
  2. GHC 7 I/O manager status update
  3. text 0.10.0.0 is here
  4. How to migrate from darcs to Mercurial or git
  5. A brief tale of faster equality
  6. Unicode text performance improvements
  7. Like a coding challenge? Check out Code Quarterly
  8. Dual bitbucket/github citizenship
  9. Why I don’t use darcs any more (much)
  10. A tiny example of clean Unicode handling in Haskell
  11. Haskell-related job opening at Stanford University
  12. Updated ICU bindings for Haskell: 0.4.0.0
  13. Dealing with fragile C libraries (e.g. MySQL) from Haskell
  14. Fast base64 encoding and decoding in Haskell
  15. Major version of the Haskell text library, 0.8.0.0
  16. Haskell in the Real World discussion at CUFP
  17. Converting a Mercurial tree repeatedly with files removed
  18. Budding Aspen, Sierra Palisades
  19. PADL ’11 call for papers
  20. GHC I/O manager progress: ready to merge, and paper accepted!
  21. What’s in a find function?
  22. Sightings of the GHC event manager in the wild
  23. What’s in a parser? Attoparsec rewired (2/2)
  24. What’s in a parsing library? (1/2)
  25. Minuscule linkscrape of mischief
  26. New GHC I/O manager, first sets of benchmark numbers
  27. Progress on GHC’s I/O manager

2009 31

  1. Making GHC’s I/O manager more scalable
  2. Data.Text 0.7 gains I/O support
  3. The performance of Data.Text
  4. Wouldn’t it be nice…
  5. Dense? Dense, you say?
  6. Criterion 0.2, an improved Haskell benchmarking library
  7. Announcing a major revision of the Haskell text library
  8. New criterion release works on Macs
  9. Criterion, a new benchmarking library for Haskell
  10. Riddle me this
  11. Video of my CUFP keynote
  12. A new pseudo-random number generator for Haskell
  13. A video demo of my Haskell benchmarking framework
  14. Lazy functional yak shaving in Haskell
  15. In which I write again about revision control
  16. Slides from my CUFP 2009 keynote talk
  17. Haskell Platform support for Fedora: we’re almost there
  18. First steps with Haskell text API improvement
  19. What’s in a text API?
  20. Case conversion and text 0.3
  21. Dealing with encoding errors in Data.Text
  22. I put a pidgit in your widget so you can fidget while you calculate pi
  23. Streaming Unicode support for Haskell: text 0.2
  24. Mercurial book is now in production, and a little gift
  25. Slides from my Erlang Factory talk this morning
  26. DEFUN 2009 call for talks and tutorials
  27. Mercurial: The Definitive Guide
  28. Scintillation
  29. Finally! Fast Unicode support for Haskell
  30. Speaking at Bay Area Erlang Factory in April
  31. Fun with Haskell view patterns

2008 22

  1. The 12 Days of EFF
  2. Functional programmers on Twitter
  3. Recovering from hand surgery
  4. Unix hacking in Haskell: better pseudoterminal support
  5. Using Bloom filters for large scale gene sequence analysis in Haskell
  6. Slides from my DEFUN 2008 Haskell tutorial
  7. Some notes on the future of Haskell and FP
  8. Twittering from ICFP / Haskell symposium / CUFP
  9. Sorely disappointed by the revamped delicious
  10. Disappointed by Thinkpad X60 thermal problems
  11. Hoisted from someone else’s comments
  12. The moral of this story holds in so many contexts
  13. What to expect from the new binutils linker
  14. Peruse popular Perl packages
  15. GHC’s performance with threads is impressive
  16. The basics of applicative functors, put to practical work
  17. LLVM for Fedora
  18. The Monad Squad
  19. A new (well, to me) spam vector: google.com
  20. Phil Wadler to talk in San Francisco next week
  21. Why you should not use pyinotify
  22. LLVM bindings for Haskell

2007 43

  1. Design your functions for partial application
  2. BLDGBLOG interviews Kim Stanley Robinson
  3. GHC 6.8.1, gtk2hs 0.9.12.1 now available for Fedora 8
  4. GHC 6.8.1 pushed to Fedora 8 testing
  5. See me speak at Ignite SF tonight
  6. Using Emacs to insert SCC annotations in Haskell code
  7. What the heck is a Wide Finder, anyway?
  8. Pure Haskell MySQL bindings in the works
  9. Weighted Slope One in Haskell: collaborative filtering in 29 lines of code
  10. Announcing Data.SuffixTree, a lazy, efficient Haskell suffix tree
  11. Why is del.icio.us trapped in amber?
  12. Modern Irish comedy in bite-sized nuggets
  13. On the value of strong static typing
  14. But I wore the juice!
  15. Fedora 7 on a Thinkpad X60: not so hot
  16. So I’m writing a Haskell book!
  17. GHC 6.6.1 for Fedora
  18. Norvig’s spell checker and idiomatic Haskell
  19. FileManip, an expressive Haskell library for manipulating files
  20. Efficiently computing a factorial using binary splitting
  21. Must-see Haskell talks at OSCON ’07
  22. Haskell.org and Google’s Summer of Code
  23. How to dual-boot Windows and Fedora, by hand, for the insane
  24. Who says there’s nothing to numerology?
  25. A Haskell regular expression tutorial
  26. A quick programmer’s look at NVIDIA’s CUDA
  27. Haskell Cabal, now with extra crunchy RPM goodness
  28. Esh, the fabulous, forgotten Scheme implementation
  29. Anatol Rapaport on argument
  30. Parsing a simple config file in Haskell
  31. Blogging with Emacs and Haskell, part Zero
  32. Beautiful graphics manipulation (in Haskell, artistic flair required)
  33. Playing fast and loose with Parsec for parsing in Haskell
  34. New Haskell packages for Fedora Extras
  35. Attention, the Soviet herring fleet!
  36. First impressions of darcs: not so hot
  37. Two-dimensional spatial hashing with space-filling curves
  38. Haskell: bootstrapping into a clue about monads
  39. Getting started with installing third-party Haskell packages
  40. Dealing with yum hangs on FC6
  41. Of bureaucracy and second-guessing
  42. Give a man a fire, he’ll be warm for a day
  43. The shock of the forgotten

2006 28

  1. How to build safe, clean Python 2.5 RPMs for Fedora Core 6
  2. Sony Ericsson Z520a phone review
  3. Refilling a missed TLB entry, now with special sauce
  4. The translation lookaside buffer
  5. Scott Aaronson on computational complexity and the anthropic principle
  6. A foray into philosophical silliness
  7. Upon being found by the kids
  8. Adventures in juvenile linguistics
  9. Make Linux performance analysis easier with oprofile
  10. Mathbin, a pastebin that renders mathematics using LaTeX
  11. The obsessionally perfect news story
  12. Make Linux happy with a modern laptop’s CD/DVD drive
  13. Collaborative filtering made easy
  14. Book review: Doug Macdougall, “Frozen Earth”
  15. Every parent’s nightmare
  16. Notes on migrating from Blosxom to WordPress, Fedora edition
  17. Linux on the Dell XPS M1210
  18. Climbing in Bishop
  19. What I did at the weekend
  20. Restaurant mini-review: Dosa
  21. The $10,000 laptop … almost
  22. OSCON 2006: Come see me talk
  23. Been a busy month
  24. LaTex vs DocBook
  25. The joint Mercurial / Bazaar-NG sprint: aftermath
  26. Baypiggies talk, tomorrow, June 8
  27. Joint Mercurial / Bazaar-NG sprint
  28. Why I’ve been quiet for a while

2005 45

  1. Mercurial: I am just going outside and may be some time
  2. Announcing a Windows installer for Mercurial
  3. tumgreyspf considered harmful
  4. On distributed revision control and project forking
  5. Mercurial Queues
  6. Coworking in San Francisco
  7. Slides from distributed SCM talk at Foo Camp 2005 available
  8. On distributed and centralised revision control
  9. More about Subversion
  10. Automatic merging, or how to spend all of your sanity on one problem
  11. The legacy of BitKeeper
  12. On moving, in a hurry
  13. Where’s that damn backstory when you need it
  14. First impressions of FC4
  15. Bye, Charlie
  16. Four months, and counting
  17. Mercurial: “proper” ssh support added
  18. Mercurial: “locate” command added
  19. Mercurial snapshot builds for Fedora Core
  20. Mercurial: RSS feeds added
  21. Mercurial: “revert” command added
  22. Mercurial hacking
  23. The lithic principle
  24. I have seen the future of free distributed revision control systems
  25. How to stop feeling sorry for oneself
  26. Missourian sprawl
  27. Cleaning up the geek bookshelf, part 1: “What was I thinking?”
  28. Delicious Python
  29. Ah, classic science fiction
  30. Why I love Atlas Cafe
  31. The multithreaded programming FAQ: It’s back (sort of)
  32. A nasty bug in mDNSResponder
  33. We await Sharkfin Garbage Can’s empire
  34. That book meme
  35. The innacurately named Mail 2.0
  36. Higher order indifference
  37. Color and Light in Nature
  38. A brief note on the universe of free batching systems
  39. Hitachi redux
  40. The great Python vs ld.so smackdown
  41. Configuring Postfix to use TLS and SMTP AUTH
  42. Searching video
  43. Probability Theory
  44. The Scientists
  45. Better luck with music

2004 28

  1. Methuselah goes on a cruise
  2. No X, know Y
  3. The New Year’s climbing resolution
  4. Casual profiling
  5. Ireland 2004: notes from an outsider
  6. Ignoring jet lag doesn’t make it go away
  7. From the department of unintentional Tom Swifties
  8. Arrival in Pittsburgh
  9. Conversation of the day
  10. NowHouse, day 2
  11. Happy child, miserable cat
  12. Why Python is useless for serious XML processing
  13. Indian summer
  14. Another reason not to buy CDs on spec
  15. Adventures in judging CDs by their covers
  16. Squarepusher, Ultravisitor
  17. Khalid Kelly!?
  18. I can die happy now (or, as it turned out, not )
  19. I, for one, welcome our new corrected quote
  20. Letters from Iraq
  21. Tankers
  22. Used car sales for physicists
  23. Bush, Kerry could learn a few things from Cian
  24. Ghost in the house
  25. Maybe phone cameras aren’t so bad, after all
  26. It’s (they’re) ours!
  27. Never trust a pen-and-ink real estate drawing
  28. Blowing off the dust

2003 2

  1. So much for product labelling
  2. First post!