Top all-time · #1502
Bryan O'Sullivan
Personal blog · serpentine.comprogrammingwritingsystems
Bryan O'Sullivan writes teideal glic deisbhéalach, a personal blog at serpentine.com about programming, writing and systems. Since 2007, 50 different Hacker News readers have linked it 79 times, most often “Rendering floating numbers: advances in problems you didn’t know you had (2011)”. It is still writing: the last post was on 2026-09-14, and you can follow it by feed.
Bryan O’Sullivan’s website. Recent blog posts below.
Most-linked posts?
- Rendering floating numbers: advances in problems you didn’t know you had (2011)6 people · 6 mentions · first linked 2011-06-29
- Book review: Parallel and Concurrent Programming in Haskell4 people · 4 mentions · first linked 2014-03-19
- An upgrade to attoparsec, Haskell parsing library: more speed, more power4 people · 4 mentions · first linked 2014-05-31
- /wreq/tutorial.html3 people · 3 mentions · first linked 2014-08-10
- /bos/files/ghc-event-manager.pdf3 people · 3 mentions · first linked 2010-06-21
- How to write a really fast parser without going insane3 people · 3 mentions · first linked 2010-03-03
- Sometimes, the old ways are the best3 people · 3 mentions · first linked 2015-05-13
- Criterion: a Haskell microbenchmarking library3 people · 3 mentions · first linked 2014-08-08
- Criterion, a new benchmarking library .. easy to use, informative, and robust3 people · 3 mentions · first linked 2009-09-29
- How my e-reader lost its stripes2 people · 2 mentions · first linked 2026-09-11
What Hacker News says?
Optimizing them is a bit more work, but they can outperform hand-rolled C code: http://www.serpentine.com/blog/2014/05/31/attoparsec/
Comment linking /blog/2014/05/31/attoparsec/
on “Regexper – Regular expressions visualizer”Submitted How my e-reader lost its stripes as a story · 226 points
HN discussionAll correct, but I don't think Bryan O'Sullivan does much haskell these days. He's the manager of some sort of "Developer productivity" team. The Hack programming language came out of his team [1] (tho he wrote a blog post to contrast all the media coverage and say "my people did it, not me! [2]); he spoke about his activity at the last F8 [3]. But he does teach Haskell at Facebook after work :) [4] [1] https://twit…
Comment linking /blog/2014/03/28/where-credit-belongs-for-hack/
on “Fighting spam with Haskell”Submitted Github is making me feel stupid(er) as a story · 179 points
HN discussionGreat comments and better bug reports, just want to mention it actually says to always re-use Session in the wreq tutorial[0]. Perhaps it should be stated more prominently, repeated, or even both. For non-trivial applications, we’ll always want to use a Session to efficiently and correctly handle multiple requests. The Session API provides two important features: When we issue multiple HTTP requests to the same serv…
Comment linking /wreq/tutorial.html
on “Becoming Productive in Haskell”Submitted An upgrade to attoparsec, Haskell parsing library: more speed, more power as a story · 105 points
HN discussionHe also wrote a book called Parallel and Concurrent Programming in Haskell[1], which I've heard is an excellent read[2]. [1] http://chimera.labs.oreilly.com/books/1230000000929 [2] http://www.serpentine.com/blog/2014/03/18/book-review-parall...
Comment linking /blog/2014/03/18/book-review-parallel-and-concurrent-programming-in-haskell/
on “Facebook open sources Haxl”Submitted Rendering floating numbers: advances in problems you didn’t know you had (2011) as a story · 76 points
HN discussionIf you want to learn Haskell or functional language: Haskell for all- http://www.haskellforall.com/ Bryan O'Sullivan's blog- http://www.serpentine.com/blog/ Monday Morning Haskell- https://mmhaskell.com/ Jane Street- https://blog.janestreet.com/ Haskell Weekly- https://haskellweekly.news/ Neil Mitchell's Haskell Blog- http://neilmitchell.blogspot.tw/ Types & Functional Programming- http://bitemyapp.com/ Haoyi's Prog…
Comment linking /blog/
on “Ask HN: What are your favourite developer blogs?”Submitted Sometimes, the old ways are the best as a story · 74 points
HN discussionFor an example of a bug in aeson [1] and how it was isolated & fixed, refer to http://www.serpentine.com/blog/2015/05/13/sometimes-the-old-... [1] https://github.com/bos/aeson/
Comment linking /blog/2015/05/13/sometimes-the-old-ways-are-the-best/
on “Four months with Haskell”Submitted Rendering floating point numbers is hard as a story · 38 points
HN discussionI think this is still a library problem, not a language problem. "Compiling" a string at runtime for `sprintf` isn't any more difficult than doing it at compile-time, and plenty of regex libraries do very similar things. Compiling of printf strings isn't done, though, because nobody cares about string performance unless they're writing UNIX command-line utils. If you're writing C you're probably only dealing with st…
Comment linking /blog/2011/06/29/here-be-dragons-advances-in-problems-you-didnt-even-know-you-had/
on “PyPy is faster than C, again: string formatting”Submitted Announcing a major revision of the Haskell text library as a story · 32 points
HN discussionArgument from authority is not much of an argument, but dons is intensely focused on ghc performance, here's an easy to google example. http://donsbot.wordpress.com/2010/02/21/smoking-fast-haskell... It's not to hard for you to go get benchmark numbers in haskell, check out http://www.serpentine.com/blog/2009/09/29/criterion-a-new-be... or read about how snap does its benchmarking. As for erlang, there's a lot of pa…
Comment linking /blog/2009/09/29/criterion-a-new-benchmarking-library-for-haskell/
on “Haskell web programming (a simple tutorial)”Submitted Real World Haskell: Bryan O'Sullivan's inspirational call to the FP community as a story · 32 points
HN discussion> They're not that bad (GNU coreutils is generally pretty good) and you usually remember the edge cases fairly quickly (eg `dd`). Sadly you get inconsistencies in all coding frameworks, whether it's semantic, function names in the core libraries or whatever. Generally this is all awful and low-level. Just see the UI interface difference between 'dd' and 'Copy File' on a Lisp Machine. The UI is worlds away. > UNIX sh…
Comment linking /blog/2007/02/16/esh-the-fabulous-forgotten-scheme-implementation/
on “CoreUtils implemented in pure JavaScript”Submitted GHC 7 I/O manager status update as a story · 31 points
HN discussionThe Windows operating system presents a difficulty to our current design. Its support for scalable event notification is based around I/O completion ports, which are integrated tightly with the Windows threading mechanism, and which would require a considerable amount of replumbing to support. From http://www.serpentine.com/bos/files/ghc-event-manager.pdf
Comment linking /bos/files/ghc-event-manager.pdf
on “GHC 7 is out: Haskell 2010 support; LLVM backend; new optimizer ...”Submitted How to write a really fast parser without going insane as a story · 29 points
HN discussion> What does Haskell have? It has Req (and a bunch of other also rans), and the docs for Req are atrocious, spanning a staggering 1 (one) example and then a meandering essay on the deficiency of other Haskell HTTP clients. It's not good enough. For HTTP request library, most would recommend Wreq. Being most popular, the documentation is really good I might say with most used API have their own example [1]. You can al…
Comment linking /wreq/tutorial.html
on “On Marketing Haskell”Submitted My e-reader lost its stripes as a story · 21 points
HN discussionAttoparsec is pretty fast. http://www.serpentine.com/blog/2014/05/31/attoparsec/
Comment linking /blog/2014/05/31/attoparsec/
on “You could have invented Parser Combinators”Submitted Scaling Haskell : progress on adding epoll to GHC's I/O manager as a story · 16 points
HN discussion>>> timeit(a, number=1000000) ... 0.102125167847 Measurements shouldn't be quoted without some kind of range, confidence interval, error bar, etc. I've not come across timeit before, but maybe they could learn a thing or two from systems like Criterion http://www.serpentine.com/criterion/
Comment linking /criterion/
on “Python: Faster Way”Submitted Wreq: a Haskell web client library as a story · 12 points
HN discussionIn the HTTP benchmark game, there is also Bryan O'Sullivan's attoparsec-based parser: http://www.serpentine.com/blog/2014/05/31/attoparsec/ The important point is that the parser is a few dozen lines of code (i.e. it relies on a general parsing library instead of being custom hand-written code).
Comment linking /blog/2014/05/31/attoparsec/
on “A fast HTTP request/response parser for Common Lisp”Submitted Big fucking deal as a story · 12 points
HN discussionMostly for the advantages of purity and the trend of Haskell code I writing just being correct the first time. Also, with the help of dom-selector[0] it is very concise. I'm also using wreq[1] recently which has a great intro tutorial and is very concise with the help of lenses[2]. Mind you, I only use the most basic lenses but that has been enough for me so far. I look forward to trying taggy-lens[3] in the future…
Comment linking /wreq/tutorial.html
on “Getting It Done with Haskell”Submitted Book review: Parallel and Concurrent Programming in Haskell as a story · 8 points
HN discussion