<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: pdmccormick</title><link>https://news.ycombinator.com/user?id=pdmccormick</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 12:15:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pdmccormick" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pdmccormick in "Introduction to UEFI HTTP(s) Boot with QEMU/OVMF"]]></title><description><![CDATA[
<p>Thank you for sharing this tidbit. It looks like this may have been fixed? <a href="https://github.com/tianocore/edk2/blob/master/NetworkPkg/HttpBootDxe/HttpBootSupport.c#L734-L778" rel="nofollow">https://github.com/tianocore/edk2/blob/master/NetworkPkg/Htt...</a><p>I have an HTTP netboot flow that worked on older AMI Aptio firmwares, but fails on anything newer to even fetch the bootfile after a successful DHCP cycle, so I heartily agree with your sentiment that these are not necessarily well adjusted clients!</p>
]]></description><pubDate>Fri, 12 Jun 2026 21:44:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48509787</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=48509787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48509787</guid></item><item><title><![CDATA[New comment by pdmccormick in "Just Use Go"]]></title><description><![CDATA[
<p>This also works:<p><pre><code>    var _ MyInterface = (*MyStruct)(nil)
</code></pre>
In my mind as I read this, I am reminded that it is the receiver type *MyStruct that implements MyInterface. YMMV.</p>
]]></description><pubDate>Fri, 08 May 2026 17:51:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48066487</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=48066487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48066487</guid></item><item><title><![CDATA[New comment by pdmccormick in "Our principles"]]></title><description><![CDATA[
<p>Also, if you kill 10 people a year, you will have an accelerating rate of average wealth growth!</p>
]]></description><pubDate>Mon, 27 Apr 2026 23:06:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47928497</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=47928497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47928497</guid></item><item><title><![CDATA[New comment by pdmccormick in "I set all 376 Vim options and I'm still a fool"]]></title><description><![CDATA[
<p>"Become close friends with the software you use all the time." That is a beautifully evocative phrase for a lovely idea, thank you for sharing.<p>If I may share an idea for which I don't have nearly as nice and succinct a summation, but I've come to view my personal computing environments through the lens of being a garden. I spend so much time within them, working, learning, playing and writing. I can see the different seasons of my life reflected through naming conventions, directory structures, scripts I've written and bookmarks I've long ignored. There are new things I want to try and explore in the spring when I hopefully have a bit more free time. I have planted seeds while children slept in my arms or in the next room, and I have enabled their dreams with the fruits of my labour. I would even say I have occasionally communed with the close and holy darkness on long, late nights.<p>In time everything I have created will return to dust, and probably no one will ever know this garden as I have. But it has still been a place of growth and blessing.</p>
]]></description><pubDate>Mon, 19 Jan 2026 19:43:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46683526</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=46683526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46683526</guid></item><item><title><![CDATA[New comment by pdmccormick in "The compiler is your best friend"]]></title><description><![CDATA[
<p>Conceptually, can you break your processing up into a more or less "pure" functional core, surrounded by some gooey, imperative, state-dependent input loading and output effecting stages? For each processing stage, implement functions of well-defined inputs and outputs, with any global side effects clearly stated (i.e. updating a customer record, sending an email) Then factor all the imperative-ish querying (that is to say, anything dependent on external state such as is stored in a database) to the earlier phases, recognizing that some of the querying is going to be data-dependent ("if customer type X, fetch the limits for type X accounts"). The output of these phases should be a sequence of intermediate records that contain all the necessary data to drive the subsequent ones.<p>Whenever there is an action decision point ("we will be sending an email to this customer"), instead of actually performing that step right then and there, emit a kind of deferred-intent action data object, e.g. "OverageEmailData(customerID, email, name, usage, limits)". Finally, the later phases are also highly imperative, and actually perform the intended actions that have global visibility and mutate state in durable data stores.<p>You will need to consider some transactional semantics, such as, what if the customer records change during the course of running this process? Or, what if my process fails half-way through sending customer emails? It is helpful if your queries can be point-in-time based, as in "query customer usage as-of the start time for this overall process". That way you can update your process, re-run it with the same inputs as of the last time you ran it, and see what your updates changed in terms of the output.<p>If those initial querying phases take a long time to run because they are computationally or database query heavy, then during your development, run those once and dump the intermediate output records. Then you can reload them to use as inputs into an isolated later phase of the processing. Or you can manually filter those intermediates down to a more useful representative set (i.e. a small number of customers of each type).<p>Also, its really helpful to track the stateful processing of the action steps (i.e. for an email, track state as Queued, Sending, Success, Fail). If you have a bug that only bites during a later step in the processing, you can fix it and resume from where you left off (or only re-run for the affected failed actions). Also, by tracking the globally affecting actions you can actually take the results of previous runs into account during subsequent ones ("if we sent an overage email to this customer within the past 7 days, skip sending another one for now"). You now have a log of the stateful effects of your processing, which you can also query ("how many overage emails have been sent, and what numbers did they include?")<p>Good luck! Don't go overboard with functional purity, but just remember, state mutations now can usually be turned into data that can be applied later.</p>
]]></description><pubDate>Wed, 31 Dec 2025 21:19:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46448477</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=46448477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46448477</guid></item><item><title><![CDATA[New comment by pdmccormick in "Craft software that makes people feel something"]]></title><description><![CDATA[
<p>Bravo lol</p>
]]></description><pubDate>Sat, 13 Dec 2025 01:34:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46251124</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=46251124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46251124</guid></item><item><title><![CDATA[New comment by pdmccormick in "A new AI winter is coming?"]]></title><description><![CDATA[
<p>"Eldritch vectors" is a perfect descriptor, thank you.</p>
]]></description><pubDate>Mon, 01 Dec 2025 18:11:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46110780</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=46110780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46110780</guid></item><item><title><![CDATA[New comment by pdmccormick in "OpenAI Needs $400B In The Next 12 Months"]]></title><description><![CDATA[
<p>That seems like a lot of money. How quickly can sustainable capacity be built up in terms of building power plants, data center construction, silicon design and fabrication, etc.? Are these industries about to experience stratospheric growth, followed by a massive and painful adjustment, or does this represent a printing press or industrial revolution like inflection point?<p>Would anyone like to found a startup doing high-security embedded systems infrastructure? Peter at my username dot com if you’d like to connect.</p>
]]></description><pubDate>Fri, 17 Oct 2025 17:59:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45619778</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=45619778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45619778</guid></item><item><title><![CDATA[New comment by pdmccormick in "SSH3: Faster and rich secure shell using HTTP/3"]]></title><description><![CDATA[
<p>HTTPSSH.<p>Why not just SSH/QUIC, what does the HTTP/3 layer add that QUIC doesn’t already have?</p>
]]></description><pubDate>Sat, 27 Sep 2025 19:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45398631</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=45398631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45398631</guid></item><item><title><![CDATA[New comment by pdmccormick in "Ishkur's Guide to Electronic Music"]]></title><description><![CDATA[
<p>“It sounds like a bunch of DJ’s dared each other to set their drum machines to BPM=1000”<p>That has been my favorite line from this for decades (at least that’s how I remember it going).</p>
]]></description><pubDate>Sat, 27 Sep 2025 19:14:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45398588</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=45398588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45398588</guid></item><item><title><![CDATA[New comment by pdmccormick in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>Could you be more specific about where you think the brain rot is? I thought the issues regarding bcachefs and Linux kernel development revolved around respecting conventions for code freezes and release candidates. It seemed more about getting along socially than technical objections to the technology.</p>
]]></description><pubDate>Sat, 30 Aug 2025 17:46:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45076574</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=45076574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45076574</guid></item><item><title><![CDATA[New comment by pdmccormick in "Nitro: A tiny but flexible init system and process supervisor"]]></title><description><![CDATA[
<p>I love projects like these. They touch upon so many low level aspects of Unix userlands. I appreciate how systemd ventured beyond classical SysV and POSIX, and explored how Linux kernel specific functionality could be put to good use. But I also hope that it is not the last word, and that new ideas and innovations in this space can be further explored.<p>Recently I implemented a manufacturing-time device provisioning process that consisted of a Linux kernel (with the efistub), netbooted directly from the UEFI firmware, with a compiled-in bundled initramfs with a single init binary written in Go as the entire userland. It's very freeing when the entire operating environment consists of code you import from packages and directly program in your high level language of choice, as opposed to interacting with the system through subprocesses and myriad whacky and wonderfully different text configuration files.</p>
]]></description><pubDate>Sat, 23 Aug 2025 18:26:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44997996</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=44997996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44997996</guid></item><item><title><![CDATA[New comment by pdmccormick in "NIST ion clock sets new record for most accurate clock"]]></title><description><![CDATA[
<p>I wonder how many more orders of magnitude of precision will be realistically possible. I wonder if we'd ever be able to use gravity to "see" things at non-cosmological scales, like if you could resolve the gravitational waves and interference patterns caused by a person walking by.</p>
]]></description><pubDate>Wed, 16 Jul 2025 15:03:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44583102</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=44583102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44583102</guid></item><item><title><![CDATA[New comment by pdmccormick in "RFC: PHP license update"]]></title><description><![CDATA[
<p>I remember studying the source code to the PHP Zend Engine 25 years ago, and seeing a triple C pointer for the first time (I think it was `zval***`?) I did a lot of PHP in the following years, including using PHP for a high school programming contest (but my submission was rejected because the PHP language and using it in a standalone CLI context in particular was unfamiliar to the staff). I appreciate what it enabled me to accomplish in that era.</p>
]]></description><pubDate>Tue, 15 Jul 2025 05:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44568118</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=44568118</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44568118</guid></item><item><title><![CDATA[New comment by pdmccormick in "They tried Made in the USA – it was too expensive for their customers"]]></title><description><![CDATA[
<p>Not to mention intact families where parents had sufficient discretionary time (i.e. jobs that paid the bills with reasonable weekly hours) and a culture of prioritizing passing down knowledge to children and creating spaces in the home for them to pursue their individual interests and talents. People are not just atomized economic units.</p>
]]></description><pubDate>Wed, 02 Jul 2025 17:16:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44446284</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=44446284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44446284</guid></item><item><title><![CDATA[New comment by pdmccormick in "The Xenon Death Flash: How a Camera Nearly Killed the Raspberry Pi 2"]]></title><description><![CDATA[
<p>Does anybody remember when the very first Pi was delayed due to an Ethernet magnetics issue? IIRC they needed a jack with integrated magnetics but populated a wrong part. How far they’ve come since then!</p>
]]></description><pubDate>Sun, 25 May 2025 15:22:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44088471</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=44088471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44088471</guid></item><item><title><![CDATA[New comment by pdmccormick in "AI code is legacy code?"]]></title><description><![CDATA[
<p>This reads like an LLM's fever dream. Maybe the singularity won't be a unitary super-intelligence but rather something like a gaggle of backscratching consultants, a self-perpetuating, invasive, seething mass of bureaucratic AI agents that are always working hard to convince management that the solution is always more AI, especially for the problems created by earlier, less sophisticated, AI's.</p>
]]></description><pubDate>Sun, 04 May 2025 20:40:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43889402</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=43889402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43889402</guid></item><item><title><![CDATA[New comment by pdmccormick in "Retiring from the Rust for Linux Project – Wedson Almeida Filho"]]></title><description><![CDATA[
<p>And just how much of the Linux Foundation budget goes to supporting kernel development? What percentage of core kernel developers are paid from the Foundation? As long as Linus is happy and productive, I suspect nothing much will change.</p>
]]></description><pubDate>Fri, 30 Aug 2024 18:24:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=41403268</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=41403268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41403268</guid></item><item><title><![CDATA[New comment by pdmccormick in "Microsoft donates the Mono Project to the Wine team"]]></title><description><![CDATA[
<p>I'm genuinely curious, for someone who develops web application backends and larger distributed systems & infrastructure, predominantly using Go and Python, exclusively targeting Linux, is there anything in the .NET ecosystem that anyone would recommend I take a look at? Many thanks.</p>
]]></description><pubDate>Tue, 27 Aug 2024 21:55:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41373545</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=41373545</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41373545</guid></item><item><title><![CDATA[New comment by pdmccormick in "OneFileLinux: A 20MB Alpine metadistro that fits into the ESP"]]></title><description><![CDATA[
<p>That option is CONFIG_INITRAMFS_SOURCE, see <a href="https://www.kernel.org/doc/html/latest/filesystems/ramfs-rootfs-initramfs.html#populating-initramfs" rel="nofollow">https://www.kernel.org/doc/html/latest/filesystems/ramfs-roo...</a> .</p>
]]></description><pubDate>Tue, 09 Jul 2024 13:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=40915745</link><dc:creator>pdmccormick</dc:creator><comments>https://news.ycombinator.com/item?id=40915745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40915745</guid></item></channel></rss>