<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: wduquette</title><link>https://news.ycombinator.com/user?id=wduquette</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 17:42:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=wduquette" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by wduquette in "The Universal Standard Book Number"]]></title><description><![CDATA[
<p>Right. This would conflate, e.g., the British and American editions of books published in both countries in the same year; and they are frequently different, as might be different editions of a book published in the same year.</p>
]]></description><pubDate>Mon, 13 Apr 2026 00:38:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47746141</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47746141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47746141</guid></item><item><title><![CDATA[New comment by wduquette in "Show HN: Loreline, narrative language transpiled via Haxe: C++/C#/JS/Java/Py/Lua"]]></title><description><![CDATA[
<p>Loreline transpiles to Java, but from the diagram it looks like that only works with Android.  Is it possible to use Loreline with Java on other platforms?</p>
]]></description><pubDate>Tue, 31 Mar 2026 21:00:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47593408</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47593408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47593408</guid></item><item><title><![CDATA[New comment by wduquette in "Take better notes, by hand"]]></title><description><![CDATA[
<p>The Habanas don't seem to have page numbers, which is one of the things I particular like about the 1917s.</p>
]]></description><pubDate>Mon, 30 Mar 2026 21:10:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47579740</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47579740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47579740</guid></item><item><title><![CDATA[New comment by wduquette in "Take better notes, by hand"]]></title><description><![CDATA[
<p>I love the Leuchtterm 1917s.  They've got everything you say, and they hold up under daily use without falling apart.<p>As for pens, I use the Uniball Jetstream 0.38 ballpoint--fine point, doesn't skip, and I prefer ballpoints.  I used a Coleto Hitec C multi-pen for a while, but the refills are skinny and run out of ink quickly, and I like the feel of the Jetstream ballpoint better.  (The refills for the regular Coleto Hitec are much thicker and last a lot longer...but skip horribly.  Life is too short.)</p>
]]></description><pubDate>Mon, 30 Mar 2026 17:29:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47577217</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47577217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47577217</guid></item><item><title><![CDATA[New comment by wduquette in "Take better notes, by hand"]]></title><description><![CDATA[
<p>I keep notes in Obsidian...but when I'm genuinely studying a text I write out a precis as an outline in my bullet journal, and later transcribe it.  That means that I engage with the material at least twice: once when I first read it, and once when I transcribe it.  And yes, writing it by hand genuinely does help.  And then, when I want to look at it later, my original notes are in my journal, and my transcription is available digitally.</p>
]]></description><pubDate>Mon, 30 Mar 2026 17:24:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47577153</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47577153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47577153</guid></item><item><title><![CDATA[New comment by wduquette in "Meta is shutting down Metaverse. They spent 85B dollars on it"]]></title><description><![CDATA[
<p>They won't rename themselves again.  They're um, "beyond" that.</p>
]]></description><pubDate>Wed, 18 Mar 2026 21:00:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47431395</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47431395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47431395</guid></item><item><title><![CDATA[New comment by wduquette in "Rob Pike’s Rules of Programming (1989)"]]></title><description><![CDATA[
<p>In almost forty years of experience, the fraction of developers I've known who read in the field beyond what's strictly needed for their task is <i>very</i> small.  I'm always delighted when I find one.</p>
]]></description><pubDate>Wed, 18 Mar 2026 16:39:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47427963</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47427963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47427963</guid></item><item><title><![CDATA[New comment by wduquette in "Sam Altman asks if government can nationalize artificial general intelligence"]]></title><description><![CDATA[
<p>Sure they can, but it’s still five to ten years away. (Rimshot)</p>
]]></description><pubDate>Fri, 06 Mar 2026 19:50:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47280174</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47280174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47280174</guid></item><item><title><![CDATA[New comment by wduquette in "Specs Should Be Equations, Not Essays"]]></title><description><![CDATA[
<p>Have you seen Z notation? See also TLS+.</p>
]]></description><pubDate>Fri, 27 Feb 2026 02:17:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47175523</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47175523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47175523</guid></item><item><title><![CDATA[New comment by wduquette in "Choosing a language based on its syntax?"]]></title><description><![CDATA[
<p>> All control structures are reserved as keywords in Haskell and they're not extensible from within the language. In C I can't tell that an if(condition) isn't a function call or a macro without searching for additional syntactic cues, or readily knowing that an if is never a function. I generally operate on syntax highlighting, followed by knowing that an if is always a control structure, and never scan around for the following statement terminator or block to disambiguate the two.<p>Any Haskell function can serve as a control structure in the Algol sense, not so? As for `if(test)` that could indeed be a macro if the programmer’s a durned fool; but absent macros I don’t believe it can be a function call.<p>Mind you, I take your point about language familiarity; obviously people manage it.</p>
]]></description><pubDate>Sat, 21 Feb 2026 17:39:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47102875</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47102875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47102875</guid></item><item><title><![CDATA[New comment by wduquette in "Choosing a language based on its syntax?"]]></title><description><![CDATA[
<p>I don't have any real problem with words that are reserved absolutely and words that are reserved just in particular places.  My point was more that in Algol-derived languages control structures look like control structures.  And even in languages that implement `map()` and other higher-order functions, you can tell that it's a method/function call and that these things are being passed to it and those other things are not without going and looking up what `map()` does.</p>
]]></description><pubDate>Thu, 19 Feb 2026 20:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47079038</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47079038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47079038</guid></item><item><title><![CDATA[New comment by wduquette in "Choosing a language based on its syntax?"]]></title><description><![CDATA[
<p>Semantics are where the rubber meets the road, certainly; but syntax determines how readable the code is for someone meeting it the first time.<p>Contrast an Algol-descendant like C, Pascal, Java, or even Python with a pure functional language like Haskell.  In the former, control structure names are reserved words and control structures have a distinct syntax.  In the latter, if you see `foo` in the body of a function definition you have no idea if it's a simple computation or some sophisticated and complex control structure just from what it looks like.  The former provides more clues, which makes it easier to decipher at a glance. (Not knocking Haskell, here; it's an interesting language.  But it's absolutely more challenging to read.)<p>To put it another way, syntax is the <i>notation</i> you use to think. Consider standard math notation. I could define my own idiosyncratic notation for standard algebra and calculus, and there might even be a worthwhile reason for me to do that.  But newcomers are going to find it much harder to engage with my work.</p>
]]></description><pubDate>Thu, 19 Feb 2026 18:55:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47077563</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47077563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47077563</guid></item><item><title><![CDATA[New comment by wduquette in "Show HN: I wrote a technical history book on Lisp"]]></title><description><![CDATA[
<p>Sounds very cool.  I've dabbled with Lisp on and off since the mid-80's, starting with a text adventure in LISP-80 on a Kaypro 4, and though I've never written a serious project in Lisp I've learned a great deal from it. (Wrote a lot of TCL code once upon a time; I've always thought of TCL as a Lisp in which you do a lot of things backwards.)</p>
]]></description><pubDate>Tue, 17 Feb 2026 17:50:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47050507</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47050507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47050507</guid></item><item><title><![CDATA[New comment by wduquette in "A Programmer's Loss of Identity"]]></title><description><![CDATA[
<p>I'm on a similar arc to the OP, except that it looks like I started about rather earlier, in the late 70's.  My job title is "software engineer"; but I long ago chose to regard myself as not so much an engineer but as a master craftsman, similar to a highly skilled cabinet maker (I'm talking high-end hand-built heirloom cabinetry, here, not a quick kitchen remodel).  I take pride in every facet of my work, and like the OP try to be always learning new and better techniques.<p>By that metaphor, AI-controlled code-generation is more like large-scale automated manufacturing: the sort of thing that produces Ikea flat packs.  I'm not knocking that; I own my share of Billy bookcases.  But it's not what I do.  It's not what I'm going to do in the future. There's a place for large-scale manufacturing and there's a place for hand-crafting, and this is even more true for software than it is for physical goods.<p>Final note: throughout my career I've know a few people with an outlook similar to mine.  I'm always delighted to run into them, but they've never been common.</p>
]]></description><pubDate>Tue, 17 Feb 2026 15:32:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47048567</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=47048567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47048567</guid></item><item><title><![CDATA[New comment by wduquette in "Never Work with Bad People"]]></title><description><![CDATA[
<p>Many years ago I was fortunate to hear management consultant Peter Drucker give a talk aimed at budding management consultants. At one point he said, "Never work for someone you do not respect."  The crowd laughed.  He said, in a stern voice, "You laugh. You are wrong to do so." And went on to explain that he had only twice worked for clients he did not respect, and had regretted it bitterly each time.</p>
]]></description><pubDate>Mon, 09 Feb 2026 18:48:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46949181</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46949181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46949181</guid></item><item><title><![CDATA[New comment by wduquette in "Nobody knows how the whole system works"]]></title><description><![CDATA[
<p>It's certainly the case that I don't always know how the layer below works, i.e., how the compiled code executes in detail.  But I have a mental model that's good enough that I can use the compiler, and I trust that the compiler authors know what they are doing and that the result is well-tested.  Over forty years and a slew of different languages I've found that to be an excellent bet.<p>But I understand how my code works.  There's a huge difference between not understanding the layer below and not understanding the layer that I am <i>responsible</i> for.</p>
]]></description><pubDate>Mon, 09 Feb 2026 18:04:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46948575</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46948575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46948575</guid></item><item><title><![CDATA[New comment by wduquette in "Systems Thinking"]]></title><description><![CDATA[
<p>Grady Booch said that any large system that works is invariably found to have evolved from a smaller system that worked. I've seen this cited as Gall's Law, from John Gall's 2012 book Systemantics, but I read it in a book by Booch back in the late 80's/early 90's.  At that time the "waterfall model" was the conventional wisdom: to the extent possible, gather all the requirements, then do all the design, then do all the coding, then do all the testing, doing the minimum of rework at each step.<p>It didn't work, even for the "large" systems of that time: and Booch had worked on more than a few.  The kind of "system" the OP is describing is vastly larger, and vastly more complex.  Even if you could successfully apply the waterfall model to a system built over two or three years, you certainly can't for a system of systems built over 50 years: the needs of the enterprise are evolving, the software environment is evolving, the hardware platform is evolving.<p>What you <i>can</i> do, if you're willing to pay for it, is ruthlessly attack technical debt across your system of systems as a disciplined, on-going activity.  Good luck with that.</p>
]]></description><pubDate>Fri, 06 Feb 2026 14:09:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46912999</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46912999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46912999</guid></item><item><title><![CDATA[New comment by wduquette in "1 kilobyte is precisely 1000 bytes?"]]></title><description><![CDATA[
<p>Memory has always been measured in binary units.
Storage vendors have always measured capacity in decimal units, going back at least to the 80 MB (!) hard drive I paid about $800 for back in the late '80s.  It was the first time I ran into a megabyte of storage as 1 million bytes, and gosh I felt cheated.<p>As a programmer, I think in the binary units.</p>
]]></description><pubDate>Wed, 04 Feb 2026 19:31:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46890492</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46890492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46890492</guid></item><item><title><![CDATA[New comment by wduquette in "The Universal Pattern Popping Up in Math, Physics and Biology (2013)"]]></title><description><![CDATA[
<p>The article has a graphic contrasting a "Random" distribution vs. a "Universal" distribution vs. a "Periodic" distribution.  I'm guessing the "Random" distribution is actually a Poisson distribution, as that arises naturally in several cases.<p>But the big question is, does this "Universal" distribution match up to any well known probability distribution?  Or could it be described by a relatively simple probability distribution function?</p>
]]></description><pubDate>Tue, 27 Jan 2026 16:53:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46782603</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46782603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46782603</guid></item><item><title><![CDATA[New comment by wduquette in "Beowulf's opening "What" is no interjection (2013)"]]></title><description><![CDATA[
<p>It's a whole lot of fun.</p>
]]></description><pubDate>Thu, 22 Jan 2026 18:10:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46722968</link><dc:creator>wduquette</dc:creator><comments>https://news.ycombinator.com/item?id=46722968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46722968</guid></item></channel></rss>