Top all-time · #1411
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.
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?
- Rendering floating numbers: advances in problems you didn’t know you had (2011)6 people · 6 mentions · first linked 2011-06-29
- An upgrade to attoparsec, Haskell parsing library: more speed, more power4 people · 4 mentions · first linked 2014-05-31
- Book review: Parallel and Concurrent Programming in Haskell4 people · 4 mentions · first linked 2014-03-19
- /bos/files/ghc-event-manager.pdf3 people · 3 mentions · first linked 2010-06-21
- Criterion, a new benchmarking library .. easy to use, informative, and robust3 people · 3 mentions · first linked 2009-09-29
- Criterion: a Haskell microbenchmarking library3 people · 3 mentions · first linked 2014-08-08
- 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
- /wreq/tutorial.html3 people · 3 mentions · first linked 2014-08-10
- What’s good for C++ is good for … Haskell?2 people · 2 mentions · first linked 2013-03-21
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