<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: bos</title><link>https://news.ycombinator.com/user?id=bos</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 07 Oct 2026 02:58:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bos" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bos in "Differences Between `Foldl` and `Foldr`"]]></title><description><![CDATA[
<p>If you don’t already know about folds, arguably yes.<p>If you do, then a quick glance at whether you’re using foldl’ or foldr tells you about what the function is allowed to do, which cuts down a little on comprehension.<p>List traversals are typically compact enough that there’s not a huge difference either way.<p>One advantage of using a fold, even in these cases, is that newcomers to Haskell often get so carried away with (and confused by) the power of pattern matching that they’ll write bizarre overly-complicated list traversals by hand, when a simpler mechanism exists that they just haven’t yet internalized.</p>
]]></description><pubDate>Mon, 05 Oct 2026 15:45:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49966390</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49966390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49966390</guid></item><item><title><![CDATA[New comment by bos in "How my e-reader lost its stripes"]]></title><description><![CDATA[
<p>Correct.</p>
]]></description><pubDate>Tue, 15 Sep 2026 03:49:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49707485</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49707485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49707485</guid></item><item><title><![CDATA[New comment by bos in "Jj-stack: stacked GitHub pull requests for Jujutsu"]]></title><description><![CDATA[
<p>Author here. I wrote jj-stack because I've spent much of my career doing stacked code review (Arcanist at Facebook, more recently Graphite with my current team) and I wanted that workflow with Jujutsu's editing model.<p>The core idea is simple: one jj change becomes one GitHub PR, and your local history defines the stack. Reorder, split, squash, or amend locally with ordinary jj commands, run jj-stack submit again, and the existing PRs update in place with their reviews intact. It uses GitHub's native stacked PRs, and handles merging and the local cleanup afterwards.<p>The heavy lifting was in its safety model. Local jj history and GitHub can each change without the other knowing, and an interrupted submit or network flap can leave part of a stack updated. Someone can squash-merge or rebase your stack from the GitHub UI, which might strip the metadata jj uses to recognise changes. jj-stack checks both sides before it acts, verifies rebased stacks by ancestry and file content, and acts carefully. A large share of the test suite (including an extensive Hypothesis property test suite) exists to exercise these cases.</p>
]]></description><pubDate>Mon, 14 Sep 2026 18:44:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49701892</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49701892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49701892</guid></item><item><title><![CDATA[Jj-stack: stacked GitHub pull requests for Jujutsu]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.serpentine.com/posts/2026/announcing-jj-stack/">https://www.serpentine.com/posts/2026/announcing-jj-stack/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49701860">https://news.ycombinator.com/item?id=49701860</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 14 Sep 2026 18:42:02 +0000</pubDate><link>https://www.serpentine.com/posts/2026/announcing-jj-stack/</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49701860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49701860</guid></item><item><title><![CDATA[My e-reader lost its stripes]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.serpentine.com/posts/2026/x3-stripes/">https://www.serpentine.com/posts/2026/x3-stripes/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49661810">https://news.ycombinator.com/item?id=49661810</a></p>
<p>Points: 21</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 11 Sep 2026 17:11:42 +0000</pubDate><link>https://www.serpentine.com/posts/2026/x3-stripes/</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49661810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49661810</guid></item><item><title><![CDATA[New comment by bos in "What's new in Emacs 31.1"]]></title><description><![CDATA[
<p>temacs, in older versions of Emacs, is an intermediate build product, never something that is installed. It’s created fairly late during the build, then loaded up with the standard library, undumped, and <i>that</i> is the emacs that is installed.</p>
]]></description><pubDate>Tue, 25 Aug 2026 12:40:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49432996</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49432996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49432996</guid></item><item><title><![CDATA[New comment by bos in "The Defense-Tech Bubble Is Headed for Consolidation"]]></title><description><![CDATA[
<p>Claude slop. "durable base", "That is real money", "those are requests, not appropriations", etc etc.</p>
]]></description><pubDate>Thu, 20 Aug 2026 18:01:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49378011</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49378011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49378011</guid></item><item><title><![CDATA[New comment by bos in "The Beam Engine"]]></title><description><![CDATA[
<p>Could be, for which the first attested use is in 1965 or so. Still doesn’t help.</p>
]]></description><pubDate>Fri, 24 Jul 2026 03:58:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49031071</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49031071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49031071</guid></item><item><title><![CDATA[New comment by bos in "The Beam Engine"]]></title><description><![CDATA[
<p>While fun and satisfying, this is extremely unlikely to be true.<p>The first attested use is from 1945, on the nose of a P-47 Thunderbolt flown by Captain Milton Thompson of the 509th Fighter Squadron. And his art was exactly what you'd expect: a charging bull with the words "balls out".</p>
]]></description><pubDate>Fri, 24 Jul 2026 00:54:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49030059</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=49030059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49030059</guid></item><item><title><![CDATA[New comment by bos in "Can You Stop a Hypersonic Missile?"]]></title><description><![CDATA[
<p>It starts in the very first paragraph. “The headlines say yes. […] The headline is wrong.”<p>And there are numerous such examples. “That was half true. The kill chain ran. The interceptor did not.”<p>LLMs produce staccato, ugly chains of sentence stumps like this all the time. They’re easy to spot, and your essay is littered with them.<p>If anything, spending a week on a project like this seems liable to blind you to the shortcomings of the prose, because after putting in a lot of effort you can’t read it with fresh eyes. That’s what editors are for, but an LLM is by nature very weak at editing LLM-generated text.<p>I want to be able to offer constructive feedback on the structure of the overall essay, for example that the interspersed animated/interactive models often don’t seem strongly connected to the text, but simply reading the words makes this a grind.</p>
]]></description><pubDate>Mon, 01 Jun 2026 17:07:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48359618</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=48359618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48359618</guid></item><item><title><![CDATA[New comment by bos in "Can You Stop a Hypersonic Missile?"]]></title><description><![CDATA[
<p>This is an exhausting and dispiriting article to try to read because of its short, choppy, clearly AI-generated sentences. The topic is interesting, but whoever caused it to be penned didn’t seem to care enough to make it appealing to read.</p>
]]></description><pubDate>Mon, 01 Jun 2026 16:36:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48359155</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=48359155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48359155</guid></item><item><title><![CDATA[New comment by bos in "50K Tahoe residents need power as utility eyes redirecting lines to data centers"]]></title><description><![CDATA[
<p>Your backstory is complete nonsense.<p>Liberty Utilities has nothing to do with libertarian separatists. It's a brand name of Algonquin Power & Utilities Corp, a boring Canadian infrastructure conglomerate that buys regulated water, gas, and electric systems across North America. They bought this chunk of rural California grid from NV Energy in 2009. That's it.</p>
]]></description><pubDate>Wed, 13 May 2026 16:41:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48124271</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=48124271</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48124271</guid></item><item><title><![CDATA[New comment by bos in "The future of version control"]]></title><description><![CDATA[
<p>This is sort of a revival and elaboration of some of Bram’s ideas from Codeville, an earlier effort that dates back to the early 2000s Cambrian explosion of DVCS.<p>Codeville also used a weave for storage and merge, a concept that originated with SCCS (and thence into Teamware and BitKeeper).<p>Codeville predates the introduction of CRDTs by almost a decade, and at least on the face of it the two concepts seem like a natural fit.<p>It was always kind of difficult to argue that weaves produced unambiguously better merge results (and more limited conflicts) than the more heuristically driven approaches of git, Mercurial, et al, because the edit histories required to produce test cases were difficult (at least for me) to reason about.<p>I like that Bram hasn’t let go of the problem, and is still trying out new ideas in the space.</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:27:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479162</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=47479162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479162</guid></item><item><title><![CDATA[New comment by bos in "Ghostty is now non-profit"]]></title><description><![CDATA[
<p>Really nice to see a solidly valuable project develop a sustainable foundation instead of turning into yet another VC-backed devtools startup that will inevitably die in a few years.</p>
]]></description><pubDate>Wed, 03 Dec 2025 19:14:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46138648</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=46138648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46138648</guid></item><item><title><![CDATA[New comment by bos in "The Spherical Cows of Programming"]]></title><description><![CDATA[
<p>This is a bizarre essay by someone who understands neither functional programming nor the history of computers.<p>> To be kind, we’ve spent several decades twisting hardware to make the FP spherical cow work “faster”, at the expense of exponential growth in memory usage, and, some would argue, at the expense of increased fragility of software.<p>There is not one iota of support for functional programming in any modern CPU.</p>
]]></description><pubDate>Sun, 19 Oct 2025 16:07:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45635263</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=45635263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45635263</guid></item><item><title><![CDATA[New comment by bos in "Google Rules of Machine Learning (2018)"]]></title><description><![CDATA[
<p>Should say "(2018)".</p>
]]></description><pubDate>Wed, 27 Nov 2024 21:42:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42260084</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=42260084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42260084</guid></item><item><title><![CDATA[New comment by bos in "Gleam Is Pragmatic"]]></title><description><![CDATA[
<p>No, this isn’t a good description of monads. It merely describes a case that shows up sometimes.</p>
]]></description><pubDate>Mon, 07 Oct 2024 00:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41761583</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=41761583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41761583</guid></item><item><title><![CDATA[New comment by bos in "California’s drought may have helped solve the mystery of a 1965 plane crash"]]></title><description><![CDATA[
<p>The wreck is actually from a 1986 crash that saw no fatalities.<p><a href="https://www.facebook.com/199535516767620/posts/4006006656120468/" rel="nofollow">https://www.facebook.com/199535516767620/posts/4006006656120...</a></p>
]]></description><pubDate>Wed, 16 Jun 2021 17:13:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=27530933</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=27530933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27530933</guid></item><item><title><![CDATA[New comment by bos in "Static Program Analysis [pdf]"]]></title><description><![CDATA[
<p>Yes, and in fact this can even be done incrementally and efficiently these days.<p>One example is the open source tool Infer, which we run on very large bodies of native and Java code at Facebook. <a href="http://fbinfer.com" rel="nofollow">http://fbinfer.com</a></p>
]]></description><pubDate>Thu, 06 Sep 2018 14:56:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=17926730</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=17926730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17926730</guid></item><item><title><![CDATA[Facebook's evolutionary search for crashing software bugs]]></title><description><![CDATA[
<p>Article URL: <a href="https://arstechnica.co.uk/information-technology/2017/08/facebook-dynamic-analysis-software-sapienz/">https://arstechnica.co.uk/information-technology/2017/08/facebook-dynamic-analysis-software-sapienz/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=15073980">https://news.ycombinator.com/item?id=15073980</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 22 Aug 2017 16:28:26 +0000</pubDate><link>https://arstechnica.co.uk/information-technology/2017/08/facebook-dynamic-analysis-software-sapienz/</link><dc:creator>bos</dc:creator><comments>https://news.ycombinator.com/item?id=15073980</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15073980</guid></item></channel></rss>