<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: gregfjohnson</title><link>https://news.ycombinator.com/user?id=gregfjohnson</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 01 Jun 2026 18:12:55 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gregfjohnson" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gregfjohnson in "Combinators"]]></title><description><![CDATA[
<p>(Show HN?)  There is a deep and lovely connection between the Y-combinator and the classic version of Godel's incompleteness theorem:  <a href="https://gregfjohnson.com/incompleteness/" rel="nofollow">https://gregfjohnson.com/incompleteness/</a></p>
]]></description><pubDate>Tue, 31 Mar 2026 16:38:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47589992</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=47589992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47589992</guid></item><item><title><![CDATA[New comment by gregfjohnson in "After two years of vibecoding, I'm back to writing by hand"]]></title><description><![CDATA[
<p>One use case that I'm beginning to find useful is to go into a specific directory of code that I have written and am working on, and ask the AI agent (Claude Code in my case) "Please find and list possible bugs in the code in this directory."<p>Then, I can reason through the AI agent's responses and decide what if anything I need to do about them.<p>I just did this for one project so far, but got surprisingly useful results.<p>It turns out that the possible bugs identified by the AI tool were not bugs based on the larger context of the code as it exists right now.  For example, it found a function that returns a pointer, and it may return NULL.  Call sites were not checking for a NULL return value.  The code in its current state could never in fact return a NULL value.  However, future-proofing this code, it would be good practice to check for this case in the call sites.</p>
]]></description><pubDate>Mon, 26 Jan 2026 20:05:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46770776</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46770776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46770776</guid></item><item><title><![CDATA[New comment by gregfjohnson in "The recurring dream of replacing developers"]]></title><description><![CDATA[
<p>This all reminds me of one of the most foundational and profound papers ever written about software development:  Peter Naur's "Programming as Theory Building".  I have seen colleagues get excited about using Claude to write their software for them, and then end up spending at least as much time as if they had written it themselves trying to develop a theory the code that was produced, and an understanding sufficient to correct the problems and bugs in the created code.
Every professional software engineer confronts the situation of digging into and dealing with a big wad of legacy code.  However, most of us prefer those occasions when we can write some code fresh, and develop a theory and deep understanding from the get-go.  Reverse-engineering out a sufficient theory of legacy code to be able to responsibly modify it is hard and at times unsatisfying.  I don't relish the prospect of having that be the sum total of all my effort as a software engineer, when the "legacy code" I need to struggle to understand is code generated by an AI tool.</p>
]]></description><pubDate>Sun, 18 Jan 2026 05:35:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46665076</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46665076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46665076</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://gregfjohnson.com" rel="nofollow">https://gregfjohnson.com</a></p>
]]></description><pubDate>Thu, 15 Jan 2026 16:08:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46634626</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46634626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46634626</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Rob Pike goes nuclear over GenAI"]]></title><description><![CDATA[
<p>The original comment by Rob Pike and discussion here have implied or used the word "evil".<p>What is a workable definition of "evil"?<p>How about this:<p>Intentionally and knowingly destroying the lives of other people for no other purpose than furthering one's own goals, such as accumulating wealth, fame, power, or security.<p>There are people in the tech space, specifically in the current round of AI deployment and hype, who fit this definition unfortunately and disturbingly well.<p>Another much darker sort of of evil could arise from a combination of depression or severe mental illness and monstrously huge narcissism.  A person who is suffering profoundly might conclude that life is not worth the pain and the best alternative is to end it.  They might further reason that human existence as a whole is an unending source of misery, and the "kindest" thing to do would be to extinguish humanity as a whole.<p>Some advocates of AI as "the next phase of evolution" seem to come close to this view or advocate it outright.<p>To such people it must be said plainly and forcefully:<p>You have NO RIGHT to make these kinds of decisions for other human beings.<p>Evolution and culture have created and configured many kinds of human brains, and many different experiences of human consciousness.<p>It is the height (or depth) of arrogance to project your own tortured mental experience onto other human beings and arrogate to yourself the prerogative to decide on their behalf whether their lives are worth living.</p>
]]></description><pubDate>Fri, 26 Dec 2025 18:44:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46394896</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46394896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46394896</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Tell HN: Merry Christmas"]]></title><description><![CDATA[
<p>Build one yourself!  Here's an interactive balanced binary tee builder:
<a href="https://gregfjohnson.com/redblackbuilder.html" rel="nofollow">https://gregfjohnson.com/redblackbuilder.html</a></p>
]]></description><pubDate>Thu, 25 Dec 2025 07:20:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46382782</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46382782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46382782</guid></item><item><title><![CDATA[New comment by gregfjohnson in "The Number That Turned Sideways"]]></title><description><![CDATA[
<p>(Show HN?)
Here is another attempt at providing intuition on complex numbers, the multiplication rule in particular:
"Why does complex multiplication have to be the way it is?"
<a href="https://gregfjohnson.com/complex/" rel="nofollow">https://gregfjohnson.com/complex/</a><p>I find that the easiest intuitive on-ramp to complex arithmetic is to start with compass headings:  "Oh that nice coffee shop?  Go two blocks north and then a block east."  Numbers come with any direction on the compass, not just "east" and "west".  It turns out that it is pretty easy to intuitively justify multiplication by a scalar and addition of complex numbers, but multiplication is harder.  A great way to get a feel for multiplication is to consider the equation "(x+1)(x-1) = x*2 - 1".  Then, substitute "i" for x.  The left-hand side is (intuitively) on a circle of radius 2 centered at the origin, and the right-hand side is on a circle of radius 1, where the circle is shifted horizontally so that its center is on the real line at -1.  There's only one place these two circles meet:  -2 on the real line.</p>
]]></description><pubDate>Thu, 18 Dec 2025 07:07:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46309721</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=46309721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46309721</guid></item><item><title><![CDATA[New comment by gregfjohnson in "The emergence and diversification of dog morphology"]]></title><description><![CDATA[
<p>There are bitter and heartstrong arguments on this topic.  Brachycephalic breeds with flat faces or short snouts (for example pugs, bulldogs, boxers, Boston terriers) cause anger among some and devotion among others.  (We are a three-pug family.)  Pugs have an average lifespan of 12 to 15 years, as compared with the overall average dog lifespan of 10 to 13 years.  We have also had (and loved) boxers, which have an average lifespan of 10 to 12 years.  Boxers seem to be genetically prone to cancer, which is how we lost our most recent boxer.<p>There's a classic cartoon showing two wolves in the bushes at the edge of a campfire, looking at the leftovers being thrown around by the humans.  One says, "Look, what the heck, let's cozy up to these two-legged creatures that seem to have lots of food.  What could go wrong?"<p>Next frame is a picture of an unhappy-looking pug wearing a birthday hat..</p>
]]></description><pubDate>Fri, 14 Nov 2025 01:59:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45923005</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=45923005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45923005</guid></item><item><title><![CDATA[New comment by gregfjohnson in "The Beauty of Programming (2001)"]]></title><description><![CDATA[
<p>There is this wonderful concept of "flow state", which I'm sure most of us are familiar with.  It was originated by Mihaly Csikszentmihalyi.  Many of us in this thread (and Linus's essay quoted in OP) are referring in various ways of getting into the flow state while programming.<p>Something I learned late in the game as a programmer is how beautiful it is when multiple people somehow sync up and get into a flow state together.  It is like a choir, where everyone is somehow elevated and together they achieve a lovely unity.  Or a sports team where all of the players are locked in, seemingly reading each others' minds, and getting to some amazing transcendent place together.  The book "The Boys in the Boat" describes this phenomenon beautifully.  When all nine members of the team achieve this sort of locked-in unity, the boat just flies across the water.<p>In software, there are times when ideas seem to pass with electricity from person to person.  People immediately build upon the thoughts of others.  Ideas seemingly come from nowhere, a synthesis of the conceptual pieces held by each of the team members.  You realize that some wonderful new way of doing things has emerged from the dialog, and no one person could have possibly gotten there on their own.<p>There is a wonderful old-fashioned phrase that describes this:
"The whole is greater than the sum of the parts."</p>
]]></description><pubDate>Sat, 27 Sep 2025 19:26:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45398663</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=45398663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45398663</guid></item><item><title><![CDATA[New comment by gregfjohnson in "The Beauty of Programming (2001)"]]></title><description><![CDATA[
<p>My programming brain has two modes.  One is playful mode, and the other is drudge workaday mode.  9-to-5 Monday through Friday is workaday mode.  Other times are playful mode.  As it turns out, I am a far better programmer in one of those two modes.  It won't be hard to guess which one.  In drudge mode, I may spend three hours some afternoon trying to force my way through a problem.  No turning back, the clock is ticking!  In play mode if I spend three hours goofing around with the exact same problem and it's kinda not happening, well, screw it.  That was sorta fun, but let's goof around with it some more and try something else.  BANG!  Sweet clean obvious beautiful solution straight from Erdos' BOOK.  The powerful sense of joy in the latter mode sustains my love for programming, but I wish I could convince my lizard brain that it would be OK, indeed far better, to stay in play mode and not get sucked into the dark doldrums of drudge mode during "job" time.</p>
]]></description><pubDate>Sat, 27 Sep 2025 04:54:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45393283</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=45393283</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45393283</guid></item><item><title><![CDATA[New comment by gregfjohnson in "A history of metaphorical brain talk in psychiatry"]]></title><description><![CDATA[
<p>I heard an interesting talk recently by a Stanford neuroscientist.<p>He was studying standing waves of brain activity among circularly linked groups of neurons.  Neurons can provide both excitatory inputs and inhibitory inputs to other neurons.<p>For a computer programmer, it is easy to imagine excitatory and inhibitory localized phenomena giving rise to all sorts of interesting and complex self-sustaining standing waves.<p>Think of the study of cellular automata by Stephen Wolfram and others, in which various simple localized rules give rise to all sorts of interesting computational phenomena, up to and including Turing Completeness.<p>In animal models such as pigs, these standing waves can be observed to persist for months if not longer.<p>His particular area of interest is to subject the brain to gentle sub-lethal doses of radiation treatment in order to change selected standing waves.<p>My thought is that there may be a qualitative difference between the underlying "neural hardware" and the thought processes that "execute" on this hardware.<p>It is the bread and butter of computer scientists to reason in a world in which the complexity of software greatly exceeds the simple computational artifacts on which it runs.<p>One might say that chess has information content that is qualitatively dissimilar to the wood-working needed to make a pretty chess board.<p>The information content in DNA is composed of chemically interchangeable A, G, T, and C molecules.  So, one might say that the underlying physics is "walled off" from the information content of the DNA.  Evolution has, as it were, a free hand to encode advantageous alleles, with no bias introduced by the underlying physics or chemistry.<p>All this is to say "Hear hear!" to this excellent article.<p>The "metaphorical brain talk" the author describes may indeed be a conceptual limitation if applied too broadly to the mind.</p>
]]></description><pubDate>Sun, 07 Sep 2025 00:02:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45154012</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=45154012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45154012</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Minesweeper thermodynamics"]]></title><description><![CDATA[
<p>I hacked up a version of minesweeper that was “forgiving:” if there was no selection that was provably safe, it gave you a safe move.  If you picked any square that was not provably a bomb, it would not be a bomb.
Typically, as long as you don’t select a number of bombs equal to the number of squares , your first move is safe.  I just extended that for the whole game.
If you select N-1 bombs, you always win on the first move..</p>
]]></description><pubDate>Thu, 04 Sep 2025 03:36:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45123258</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=45123258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45123258</guid></item><item><title><![CDATA[New comment by gregfjohnson in "What Microchip doesn't (officially) tell you about the VSC8512"]]></title><description><![CDATA[
<p>On the topic of Microchip and secrecy:  I downloaded and installed their IDE, MPLAB X IDE v6.20.  It is for a pic3mx chip.  The compiler looks like a completely generic gcc, built to cross-compile on a Windows host.  However, they want a $1000.00 “licensing fee” in order to enable any optimization level above -O0.
This seems wrong.  Wouldn’t this be a violation of the copyleft license covering gcc?
I’m guessing there’s some loophole, since otherwise EFF and folks would be going after them.  Or perhaps they don’t know about this situation? Should I alert EFF to this situation</p>
]]></description><pubDate>Tue, 08 Jul 2025 05:18:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44497319</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=44497319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44497319</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Largest Wildlife Bridge Spanning 10 Lanes of CA 101 Is Nearly Complete"]]></title><description><![CDATA[
<p>I wonder if there are any plans to place meat along the bridge to attract mountain lions.  Will ecologists try to "train" the wildlife to use the bridge, or just let nature take its course?</p>
]]></description><pubDate>Sun, 22 Jun 2025 17:12:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44348494</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=44348494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44348494</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Quantum mechanics provide truly random numbers on demand"]]></title><description><![CDATA[
<p>One possible definition of "random" in this context:  Is there any conceivable algorithm, perhaps one that models the entire universe in all of its particulars, that predicts the next string produced by the NIST quantum beacon?</p>
]]></description><pubDate>Mon, 16 Jun 2025 18:08:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44291902</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=44291902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44291902</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Iconography of the PuTTY tools"]]></title><description><![CDATA[
<p>PuTTY is a supurb tool.  Thank you so much for your efforts over the years.</p>
]]></description><pubDate>Thu, 13 Mar 2025 15:54:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43354535</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=43354535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43354535</guid></item><item><title><![CDATA[New comment by gregfjohnson in "A history of APL in the USSR (1991)"]]></title><description><![CDATA[
<p>IBM wrote APL\360 in 360 assembly language. The IBM 5100 personal computer had a small cpu.  They wanted APL on the 5100, so they implemented a 360 emulator and ran the original implementation of APL on that.</p>
]]></description><pubDate>Fri, 31 Jan 2025 04:51:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=42884797</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=42884797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42884797</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Combining 15s interval whole-sky-camera photos to form a 4y spanning keogram"]]></title><description><![CDATA[
<p>OK here is my attempt at intuition:<p>Here is an approximation that captures the main effect (the 23.5 degree tilt of the earth's rotation axis) and overlooks secondary effects.<p>Consider the equator.  Imagine a circle on the X-Y plane centered at the origin.  Angle the circle up 23.5 degrees, rotated around the x axis.  The projection of this circle back onto the plane is an ellipse on the X-Y plane, with the vertical axis about 92% of the length of the horizontal axis.  Now, consider a series of vectors in the X-Y plane starting on the X axis, with angles in steps of 0.986 degrees.  (This is approximately the angle the earth progresses around the sun each day.)<p>Where each vector hits the unit circle, move the point up or down so that it hits the ellipse.  The angle will change a bit for most of the rays.  In some cases the angle will be a bit smaller, and in some cases a bit larger.  These discrepancies are the variations in time of day of sunrise and sunset over the course of a year on the equator.</p>
]]></description><pubDate>Sun, 05 Jan 2025 23:18:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42605905</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=42605905</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42605905</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Combining 15s interval whole-sky-camera photos to form a 4y spanning keogram"]]></title><description><![CDATA[
<p>Thanks, very much appreciate the thoughts and pointers!</p>
]]></description><pubDate>Sun, 05 Jan 2025 20:20:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42604682</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=42604682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42604682</guid></item><item><title><![CDATA[New comment by gregfjohnson in "Combining 15s interval whole-sky-camera photos to form a 4y spanning keogram"]]></title><description><![CDATA[
<p>This brings to mind something I've wondered about for a while.  Sunrise on the shortest day of the year is earlier than sunrise for several days after it.<p>Sunset on these days after the shortest day is of course even later than sunset of the shortest day.<p>On the beautiful image of the OP, you can see that after dawn of December 21, dawn continues to get later over the next few days.<p>In my area, sunrise on 12/21/2024 was 6:54am, and it will continue to get later until 1/8/2025, when it is at 6:59am.<p>Length of day on 12/21/2024 is 9 hours, 54 minutes, and length of day on 1/8/2025 is 10 hours, 2 minutes.<p>Searching the web, I haven't found an explanation for this that "clicks" for me as both intuitive and rigorous.  Any thoughts or pointers on this?</p>
]]></description><pubDate>Sun, 05 Jan 2025 02:21:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42599238</link><dc:creator>gregfjohnson</dc:creator><comments>https://news.ycombinator.com/item?id=42599238</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42599238</guid></item></channel></rss>