Top all-time · #4463
Paul Battley
Personal blog · po-ru.com/diaryprogramming
Paul Battley's personal blog at po-ru.com covers programming. Since 2009, 17 different Hacker News readers have linked it 20 times, most often “I no longer care to work on any Ruby gems so I've archived all my repositories”. It is still writing: the last post was on 2026-10-27, and you can follow it by feed.
Too few sampled comments (7) to say how often HN recommends it.?
Why HN links it
HN commenters cite Paul Battley's posts as support on parsers, Ruby, device detection in the BBC iPlayer, and an old clock.js script. No comment judges the writing itself.
Summarised by Claude from a sample of 7 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Paul Battley’s blog, publishing since 2002
Most-linked posts?
- /diary/ruby-parsing-ambiguities/2 people · 2 mentions · first linked 2012-11-29
- I no longer care to work on any Ruby gems so I've archived all my repositories2 people · 2 mentions · first linked 2026-10-19
- It doesn't matter whether "Matz is nice"2 people · 2 mentions · first linked 2026-07-29
What Hacker News says?
writing parsers is the least interesting part of an interpreter/compiler, and your grammar should be boring if you want your syntax to be easy to understand by humans. In my (admittedly limited) experience, most grammars for programming languages that are supposed to be easy on humans end up being harder to parse. (See below) One notable exception is, of course, Smalltalk. One criticism I have of this article, is th…
Comment linking /diary/ruby-parsing-ambiguities/
on “Show HN: How to write a recursive descent parser”Submitted I no longer care to work on any Ruby gems so I've archived all my repositories as a story · 526 points
HN discussionHonestly, I'm not sure it does. I've seen plenty of software projects whose documentation consists of an automated compendium of every method in every class, none of which tells me how to actually use it. I'd prioritise a simple getting started guide. It only has to be a page or so, but something that explains how to run the program, and achieve a few simple tasks. It's far easier to go from a simple case to a more…
Comment linking /diary/getting-started-with-treetop/
on “WTFM - Write The Freaking Manual”Submitted Ruby’s magic underscore as a story · 113 points
HN discussionI would not personally sign onto (or put money) behind a DHH-run project because of his frankly abhorrent political views: - https://po-ru.com/2026/07/29/it-doesnt-matter-whether-matz-i... - https://blogs.gnome.org/alatiera/2025/11/06/dhh-and-omarchy-...
Comment linking /2026/07/29/it-doesnt-matter-whether-matz-is-nice
on “Omacom Foundation Launches with $8M”Submitted Convert Ruby to JavaScript as a story · 15 points
HN discussionThe article is not good in some areas. Yes, the initial claim that good software still has value, even if written by humans, is true - high quality is always nice to have. But the author then states this: "The fact that an LLM now writes the code does not mean any abstractions we made before are suddenly less important or less useful." Now - here the author makes a mistake that assumingly LLMs would lend benefit to…
Comment linking /2026/10/18/why-im-no-longer-updating-this-repository
on “Does Ruby on Rails still make sense?”Submitted Destructuring assignment in Ruby as a story · 3 points
HN discussionBoth Ruby and Perl have the same challenge, and both solve it by treating the expression differently depending on whether f is a variable or a function/method. As it turns out, you can't actually parse Perl 5 [1], but Ruby can be statically parsed [2], and resolves this ambiguity based on context. I don't actually know anything about CoffeeScript's parser, and I imagine that it complicates the grammar significantly,…
Comment linking /diary/ruby-parsing-ambiguities/
on “Math Envy and CoffeeScript's Foibles”Submitted It doesn't matter whether "Matz is nice" as a story · 2 points
HN discussionI wrote something similar a while back (in 2005, apparently). It's not quite how I'd write it now, but I'm not too embarrassed by my code from eight years ago! http://po-ru.com/clock.js
Comment linking /clock.js
on “Show HN: Keep your page's timestamps up to date (weekend project)”Submitted 1 error(s) prevented this form from being saved as a story · 2 points
HN discussionThis is something that the BBC did with iPlayer: http://po-ru.com/diary/device-discrimination-on-the-internet... I've not quite worked out how to implement it though
Comment linking /diary/device-discrimination-on-the-internet/
on “Ask HN: How do I ensure that a real iOS client is using an API”Submitted Writing Rails apps without wanting to kill everybody as a story · 2 points
HN discussionSubmitted One does not simply … (Turbolinks edition) as a story · 2 points
HN discussionSubmitted IE6 D-Day, lets give IE6 a definable lifespan as a story · 2 points
HN discussionSubmitted Skimmer, deuxième partie as a story · 1 points
HN discussionSubmitted Encrypted application configuration as a story · 1 points
HN discussionSubmitted Po-ru.com: Ruby propaganda as a story · 1 points
HN discussionSubmitted Get your filthy hands off my Kernel methods as a story · 1 points
HN discussion