Top all-time · #1460
Ben E. C. Boyter
Personal blog · boyter.org · on HN as boyterprogrammingsystems
Ben E. C. Boyter's personal blog at boyter.org covers programming and systems. Since 2011, 48 different Hacker News readers have linked it 123 times, most often “Fix it, Fork it, Fuck off (2019)”. It is still writing: the last post was on 2026-09-10, and you can follow it by feed.
Too few sampled comments (20) to say how often HN recommends it.?
Why HN links it
Ben Boyter's blog covers source-code line counting (scc/sloc/cloc), Go and Rust performance, search engines, and open-source maintenance, plus a collection of animal book-cover parodies.
- Recommended for · 3 comments
- Storytelling and technical skill praised; line-counter journey suggested; book-cover parodies called fantastic.
Summarised by Claude from a sample of 20 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Fix it, Fork it, Fuck off (2019)6 people · 7 mentions · first linked 2019-11-04
- Sloc Cloc and Code Revisited – Optimizing an Already Fast Go Application6 people · 6 mentions · first linked 2018-09-19
- Abusing AWS Lambda to make an Aussie search engine5 people · 7 mentions · first linked 2021-09-15
- Sloc Cloc and Code – What Happened on the Way to Faster Cloc5 people · 7 mentions · first linked 2018-04-16
- Boilerplate Tax: Ranking popular programming languages by density5 people · 5 mentions · first linked 2026-02-04
- Explore the Fediverse, but use block like a machine gun in a zombie apocalypse3 people · 3 mentions · first linked 2022-12-28
- Searchcode.com Is Being Rebooted3 people · 3 mentions · first linked 2025-09-15
- Expert Excuses for Not Writing Unit Tests2 people · 5 mentions · first linked 2018-11-27
- Decoding CAPTCHA’s2 people · 3 mentions · first linked 2013-09-22
- Processing Large Files – Java, Go and 'Hitting the Wall'2 people · 2 mentions · first linked 2019-05-10
What Hacker News says?
> How much effort should a library maintainer expend to keep 5.x code in place? Based on the usage of the version and the support for it in large hosting/infra providers. > Is it worth it for a library maintainer to remove support for 5.x even if they don't replace it with code that makes use of 7.x functionality? Breaking backwards compatibility is practically always bad. You do it once. You do it twice. By the thi…
Comment linking /posts/the-three-f-s-of-open-source/
on “Outdated vs. Complete: In defense of apps that don’t need updates”Submitted Fix it, Fork it, Fuck off (2019) as a story · 421 points
HN discussionHow much effort should a library maintainer expend to keep 5.x code in place? Is it worth it for a library maintainer to remove support for 5.x even if they don't replace it with code that makes use of 7.x functionality? If a site is still running 5.x (stats put it at about 20% of the sites out there are still running these versions https://w3techs.com/technologies/details/pl-php/5 ), are they going to be updating t…
Comment linking /posts/the-three-f-s-of-open-source/
on “Outdated vs. Complete: In defense of apps that don’t need updates”Submitted How to start a Go project in 2018 as a story · 305 points
HN discussionYou might be interested in Ben Boyter's journey to write a source code line counter: https://boyter.org/posts/sloc-cloc-code/ https://boyter.org/posts/why-count-lines-of-code/
Comment linking /posts/why-count-lines-of-code/
on “CLI: Improved”Submitted Why is this Go faster than the equivalent Java? as a story · 251 points
HN discussionhttps://boyter.org As to why you should read it? I have always tried to show warts and all when it comes to anything technical I post. This includes where I screw up, make mistakes or work with false information. Mostly because I keep a record as I do things and don’t want to sanitise what I did and also because most posts paint a perfect picture which is usually far from reality.
Comment linking /
on “Ask HN: What is your blog and why should I read it?”Submitted Searchcode.com’s SQLite database is probably 6 terabytes bigger than yours as a story · 242 points
HN discussion> While allocation is pretty pervasive, I'm skeptical that everywhere or even most places you do it is an important perf bottleneck. Without a count of these 20 times it matters and these 40 it doesn't, it's just kind guesswork from an all too often frail human memory/attention that "ignores the noise" by its very nature. You might be right. Just trying to add some color. :-) In general I agree. But I'm saying what…
Comment linking /posts/sloc-cloc-code/
on “Speed of Rust vs. C”Submitted Processing 40TB of code from 10M projects with a dedicated server and Go as a story · 238 points
HN discussionCode search is indeed hard. Stop words, stemming and such do rule out most off the shelf indexing solutions but you can usually turn them off. You can even get around the splitting issues of things like a.toString() With some pre-processing of the content. However were you really get into a world of pain is allowing someone to search for ring in the example. You can use partial term search, prefix, infix, or suffix…
Comment linking /posts/how-i-built-my-own-index-for-searchcode/
on “Code search is hard”Submitted Bloom Filters: More than a space-efficient hashmap as a story · 173 points
HN discussionA mate of mine wrote about this a couple of years ago. > The three F’s to open source development. > Fix it, Fork it, Fuck off. https://boyter.org/posts/the-three-f-s-of-open-source/
Comment linking /posts/the-three-f-s-of-open-source/
on “Ask HN: How to say no to a GitHub issue feature request?”Submitted GPL Time Bomb – an interesting approach to FOSS licensing as a story · 162 points
HN discussionMore or less, but with the ability to "poison" them by closing which causes downstream go-routines to exit. You can do the same thing in java by checking for a poison object and then terminate your loop. The close is built into the language itself which is useful, along with the other built in language functionality. I wrote about it here, with an example of how to do it https://boyter.org/posts/file-read-challange/
Comment linking /posts/file-read-challange/
on “Updating the Go Memory Model”Submitted Abusing AWS Lambda to make an Aussie search engine as a story · 129 points
HN discussionI did the same thing but using an old netbook I had lying around. It lives under the house running Pi-Hole and a few other things. I wrote about it here http://www.boyter.org/2015/12/pi-hole-ubuntu-14-04/ No idea what power draw it has (probably $5 a month?) but I have a large solar array so I doubt it costs me anything to actually run. I also get to recycle some old hardware. EDIT - Seems that post was linked to by…
Comment linking /2015/12/pi-hole-ubuntu-14-04/
on “Set up a cheap cloud hosted adblocker in an hour for $2.50 a month”Submitted Building a custom code search index in Go as a story · 112 points
HN discussionI thought the most common file names had some peculiar results. > the filename “15” & “s15” made the top 50 most popular filenames Anyone know why? https://boyter.org/posts/an-informal-survey-of-10-million-gi...
Comment linking /posts/an-informal-survey-of-10-million-github-bitbucket-gitlab-projects/
on “Processing 40TB of code from 10M projects with a dedicated server and Go”Submitted Sloc Cloc and Code Revisited – Optimizing an Already Fast Go Application as a story · 88 points
HN discussionMissing content for: https://boyter.org/posts/an-informal-survey-of-10-million-gi...
Comment linking /posts/an-informal-survey-of-10-million-github-bitbucket-gitlab-projects/
on “Processing 40TB of code from 10M projects with a dedicated server and Go”Submitted Cost of a Integer Cast in Go as a story · 84 points
HN discussionThe language issue you raise is in part solved by C# and Entity framework. Because of the lazy way it works you can define a single select over a table, then apply extension methods, joins etc.. over the return of this select and you end up with a highly reusable clean easily tested data layer. Done right you get code like the following, var url = _urlRepo.GetUrl().OrderByCreateDate().ByCreatedUser("boyter"); var ur…
Comment linking /2013/07/clean-repository-data-access-c/
on “Why I love databases”Submitted What does Unicode support actually mean? as a story · 70 points
HN discussionThankfully, these days, you don't actually need to choose between GC and manually matching up your `free`s with your `malloc`s. There is at least some data that GC does have an impact on command line tools like this: https://boyter.org/posts/sloc-cloc-code/ --- More experiments like that would be great to crystallize the exact trade offs here.
Comment linking /posts/sloc-cloc-code/
on “GoAWK: an AWK interpreter written in Go”Submitted Sloc Cloc and Code – What Happened on the Way to Faster Cloc as a story · 66 points
HN discussionThese sort of tests are perfect examples for me to add to https://boyter.org/posts/expert-excuses-for-not-writing-unit... Tongue in cheek it is but I’m always on the lookout for additional examples to flesh it out.
Comment linking /posts/expert-excuses-for-not-writing-unit-tests/
on “Tests that sometimes fail”Submitted Processing 40 TB of code from ~10M projects with a server and Go for $100 (2019) as a story · 61 points
HN discussionI think Rust is probably a force multiplier here. The same program, IMO, would be harder to maintain in a language like C or C++. Although of course there are alternatives to ripgrep written in C or C++, so I'm not sure how compelling of an argument that is. But the force multiplier doesn't just need to make me more productive. Rust makes it pretty natural to factor things into libraries, and developing ripgrep over…
Comment linking /posts/sloc-cloc-code-performance/
on “If you use GNU grep on text files, use the -a (--text) option”Submitted Sloc Cloc and Code 4.0 (scc) – Finding the files that need the most attention as a story · 46 points
HN discussion