Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1411

B

Bryan O'Sullivan

Personal blog · serpentine.com/blogprogramming

Bryan O'Sullivan writes teideal glic deisbhéalach, a personal blog at serpentine.com about programming. 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.

Visit the blog
79mentions?
4recommend?
50HN people?
2007–2026first – last linked?
Links on Hacker News per year · peak 17 in 2014

Rarely recommended · 4 of 31 sampled comments recommend it?

Why HN links it

HN readers link Bryan O'Sullivan's blog for Haskell performance and parsing posts, such as attoparsec and Criterion benchmarking, plus his GHC event manager work and book review.

Recommended for · 4 comments
Called a great blog, recommended for learning Haskell and benchmarking, and a wonderful presentation.

Summarised by Claude from a sample of 31 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

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

Most-linked posts?

  1. Rendering floating numbers: advances in problems you didn’t know you had (2011)
    6 people · 6 mentions · first linked 2011-06-29
  2. An upgrade to attoparsec, Haskell parsing library: more speed, more power
    4 people · 4 mentions · first linked 2014-05-31
  3. Book review: Parallel and Concurrent Programming in Haskell
    4 people · 4 mentions · first linked 2014-03-19
  4. /bos/files/ghc-event-manager.pdf
    3 people · 3 mentions · first linked 2010-06-21
  5. Criterion, a new benchmarking library .. easy to use, informative, and robust
    3 people · 3 mentions · first linked 2009-09-29
  6. Criterion: a Haskell microbenchmarking library
    3 people · 3 mentions · first linked 2014-08-08
  7. How to write a really fast parser without going insane
    3 people · 3 mentions · first linked 2010-03-03
  8. Sometimes, the old ways are the best
    3 people · 3 mentions · first linked 2015-05-13
  9. /wreq/tutorial.html
    3 people · 3 mentions · first linked 2014-08-10
  10. What’s good for C++ is good for … Haskell?
    2 people · 2 mentions · first linked 2013-03-21

What Hacker News says?

  1. 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”
  2. Submitted How my e-reader lost its stripes as a story · 226 points

    HN discussion
  3. All 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”
  4. Submitted Github is making me feel stupid(er) as a story · 179 points

    HN discussion
  5. Great 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”
  6. Submitted An upgrade to attoparsec, Haskell parsing library: more speed, more power as a story · 105 points

    HN discussion
  7. He 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”
  8. Submitted Rendering floating numbers: advances in problems you didn’t know you had (2011) as a story · 76 points

    HN discussion
  9. allenleein · 2017-09-02Recommends
    If 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?”
  10. Submitted Sometimes, the old ways are the best as a story · 74 points

    HN discussion
  11. For 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”
  12. Submitted Rendering floating point numbers is hard as a story · 38 points

    HN discussion
  13. I 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”
  14. Submitted Announcing a major revision of the Haskell text library as a story · 32 points

    HN discussion
  15. jfoutz · 2012-01-20Recommends
    Argument 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)”
  16. Submitted Real World Haskell: Bryan O'Sullivan's inspirational call to the FP community as a story · 32 points

    HN discussion
  17. > 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”
  18. Submitted GHC 7 I/O manager status update as a story · 31 points

    HN discussion
  19. The 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 ...”
  20. Submitted How to write a really fast parser without going insane as a story · 29 points

    HN discussion
  21. > 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”
  22. Submitted My e-reader lost its stripes as a story · 21 points

    HN discussion
  23. Attoparsec 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”
  24. Submitted Scaling Haskell : progress on adding epoll to GHC's I/O manager as a story · 16 points

    HN discussion
  25. >>> 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”
  26. Submitted Wreq: a Haskell web client library as a story · 12 points

    HN discussion
  27. In 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”
  28. Submitted Big fucking deal as a story · 12 points

    HN discussion
  29. Mostly 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”
  30. Submitted Book review: Parallel and Concurrent Programming in Haskell as a story · 8 points

    HN discussion

Search all of HN for serpentine.com

Linked by the same people?