<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: DalekBaldwin</title><link>https://news.ycombinator.com/user?id=DalekBaldwin</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 01 Jun 2026 18:18:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=DalekBaldwin" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by DalekBaldwin in "Job Postings for Software Engineers Are Rapidly Rising"]]></title><description><![CDATA[
<p>EIB?</p>
]]></description><pubDate>Sat, 02 May 2026 05:13:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47983521</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=47983521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47983521</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Ask HN: How is AI-assisted coding going for you professionally?"]]></title><description><![CDATA[
<p>Jump straight to the second option. You have to presume that the content they sent you has no relation whatsoever to their actual understanding of the matter.</p>
]]></description><pubDate>Mon, 16 Mar 2026 01:14:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47393959</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=47393959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47393959</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "An AI agent published a hit piece on me – more things have happened"]]></title><description><![CDATA[
<p>Analogously to the surface of last scattering in cosmology, the dawn of the LLM era may define a surface of first scattering for our descendants.</p>
]]></description><pubDate>Sat, 14 Feb 2026 02:51:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47011054</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=47011054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47011054</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Start your meetings at 5 minutes past"]]></title><description><![CDATA[
<p>My org had the opposite problem in the Covid remote transition. At one point we successfully enforced meetings ending 5 minutes before the hour, but then somebody would just open the next meeting 5 minutes early.</p>
]]></description><pubDate>Sat, 10 Jan 2026 01:43:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46561859</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=46561859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46561859</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "The Deviancy Signal: Having "Nothing to Hide" Is a Threat to Us All"]]></title><description><![CDATA[
<p>Right, I don't think I've ever actually seen anybody make the "nothing to hide" argument. Maybe it was used more commonly in the past, but I only ever see people pre-emptively attack it without prompting. It seems to be a special case of a straw-man argument: a no-man argument. It's not the only such example, but it seems to appear without fail in the top comments in any discussion of privacy issues.</p>
]]></description><pubDate>Sat, 20 Dec 2025 16:08:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337139</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=46337139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337139</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "GitHub Actions has a package manager, and it might be the worst"]]></title><description><![CDATA[
<p>I'm assuming the lockfile should be checked into the repo itself, which presents a bootstrapping problem if you have to run an action to create the lockfile in the first place. They may need to build proper support for running actions locally -- there is the third-party <a href="https://github.com/nektos/act" rel="nofollow">https://github.com/nektos/act</a> tool which might be a starting point, but that's mostly designed so you can debug actions without having to repeatedly push and rerun. Probably they'll need a separate mechanism to statically analyze actions without running them.</p>
]]></description><pubDate>Mon, 08 Dec 2025 16:56:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46194647</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=46194647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46194647</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "When did people favor composition over inheritance?"]]></title><description><![CDATA[
<p>> That points to a deficiency in the “composition over inheritance” aphorism: those aren’t the only two games in town. If you have procedures as first-class types (like blocks in Smalltalk, or lambdas in many languages), then you might prefer those over composition or inheritance.<p>First-class procedures/functions are a form of composition. Requiring a function type behaves like requiring an interface/class type with only one method. (In languages like F#, `Func<_,_>` is literally defined internally as an abstract class with one method, `Invoke`, although there are other mechanisms to auto-inline lambdas when enough static information is available to do so.) In either case, you can place it into a field of an object or data structure, or pass it directly as an argument to a function/method.</p>
]]></description><pubDate>Sun, 16 Nov 2025 18:03:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45947035</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=45947035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45947035</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Math Team"]]></title><description><![CDATA[
<p>High school, at least as far as it serves as a sorting mechanism for top students, follows a kind of Parkinson's law: the number of hoops to jump through increases until it reaches the natural limit of how little sleep the top students can handle.<p>There were rumblings that my high school, which had plenty of AP classes already, was about to introduce a combination AP/IB curriculum, which absolutely terrified us. I and my AP-taking classmates breathed a huge sigh of relief when it was announced that it would be delayed, and the students in the year below us would be the guinea pigs. They would have to run twice as fast just to stay in place.</p>
]]></description><pubDate>Wed, 20 Dec 2023 18:56:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38712237</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=38712237</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38712237</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "On the criteria to be used in decomposing systems into modules (1971) [pdf]"]]></title><description><![CDATA[
<p>It's difficult to relate this to modern perspectives on software design and architecture because the running example is hard to comprehend. It seems to be an interface to a data structure that may have been useful in certain applications in the context of hardware constraints 50 years ago. It would be great if somebody published an implementation of this example with the variations in C for illustration.</p>
]]></description><pubDate>Thu, 14 Sep 2023 05:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=37505214</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=37505214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37505214</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "“True” Randomness vs. “Pseudo” Randomness"]]></title><description><![CDATA[
<p>This is similar to how "numbers racket" lotteries in the early 20th century operated, so that players could trust that the outcome could not be rigged: <a href="https://en.wikipedia.org/wiki/Numbers_game#Gameplay" rel="nofollow">https://en.wikipedia.org/wiki/Numbers_game#Gameplay</a><p>(The film "Force of Evil" is about a plot to nevertheless rig the outcome.)</p>
]]></description><pubDate>Mon, 03 Apr 2023 00:31:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=35417007</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=35417007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35417007</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "“Clean” code, horrible performance"]]></title><description><![CDATA[
<p>> Is Casey assuming the entire commercial software industry === Uncle Bob?<p>It's uncharitable to take Casey as making absolute blanket statements like that, but still, it would not be unreasonable for him to single out Uncle Bob in particular.<p>The Amazon rankings for Bob Martin's "Clean Code":<p>Best Sellers Rank: #5,338 in Books (See Top 100 in Books)<p>#1 in Software Design & Engineering<p>#2 in Software Testing<p>#4 in Software Development (Books)</p>
]]></description><pubDate>Wed, 01 Mar 2023 00:36:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=34977130</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34977130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34977130</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Netflix has created a self-fulfilling cancelation loop with its new shows"]]></title><description><![CDATA[
<p>I think this trend is why they've gone all-in on sex-on-the-beach shows and true crime docuseries. One season can easily be self-contained, and if the viewer gets another, it's just a nice bonus.</p>
]]></description><pubDate>Mon, 16 Jan 2023 23:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=34406670</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34406670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34406670</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Guerrilla guide to CNC machining, mold making, and resin casting (2015)"]]></title><description><![CDATA[
<p>The goal is the end product, yes. But there's joy to be had in getting there. And more importantly, I know I won't be able to achieve it without a good feedback loop for iterating on my designs, which means doing at least some machining on my own.<p>For one thing, sketching out variations on a design typically reveals there's a wide space of possible parameters in the spec. In many cases it's obvious that only a small subset will actually be technically feasible (either for machining or for reasonable functionality of the finished artifact or both), but not obvious exactly what that subset will be.<p>I'm not even talking about what could be revealed by finite element analysis or other formal methods (though I'm not averse to learning those too). I mean the feel, the taste, and the intuition I can't get from just drawing and doing the math. Like Jackie Stewart said, "You don't have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy." I have mechanical sympathy for computing systems, for rapidly narrowing down appropriate design spaces in software projects, but I don't yet have mechanical sympathy for mechanical systems.</p>
]]></description><pubDate>Thu, 12 Jan 2023 03:34:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=34348842</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34348842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34348842</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Guerrilla guide to CNC machining, mold making, and resin casting (2015)"]]></title><description><![CDATA[
<p>Yes, I was implying "to do stuff like the author of the article does" ( <a href="https://lcamtuf.coredump.cx/rstory/" rel="nofollow">https://lcamtuf.coredump.cx/rstory/</a> ), coming from a very similar situation as him -- as a software engineer with an already broad general scientific and technical background, in a small apartment, getting into the concrete particulars of designing and building cool mechanical projects on a small scale and budget.</p>
]]></description><pubDate>Wed, 11 Jan 2023 22:37:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=34346067</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34346067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34346067</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Guerrilla guide to CNC machining, mold making, and resin casting (2015)"]]></title><description><![CDATA[
<p>As somebody trying to get into mechanical engineering while living in a small urban apartment, this has been an incredible resource... not that I've made much progress along the lines it describes though.<p>It's tough to plan a path toward growth in these skills without sustaining inordinate expenses at each step. I can't afford to become afflicted with Gear Acquisition Syndrome. I've come close to dropping huge sums of cash on tools before discovering, at the last minute, critical reasons that they could not do what I need for the designs I have in mind. Maybe I'll visit a makerspace? Ah, but every one in my area appears to have gone defunct since Covid year zero.<p>So the journey up to this point has been:<p>- A lot of reading: not just faffing around with hobbyist blogspam -- full-on MechE textbooks, learning what really goes into engineering schematic diagrams, all that good stuff<p>- Getting back up to speed with the pencil-on-paper geometry and math skills I've lost after years of doing all my intellectual work in digital form (at least I can still draw a freehand circle)<p>- Proto-proto-prototyping: just making some physical objects roughly of the same geometry as what I've designed -- whittling them out of wood, sculpting them out of polymer clay<p>- Hacking together janky tools: trying to make a crappy mini lathe out of Meccano-clone parts, trying to make a crappy mini lathe out of an electric drill, just to get a basic feel for what's involved<p>- Apologizing to my wife for all this weird scary stuff in the corner of the apartment<p>I was a CS major. The only hands-on physical engineering I did in college was cooking a single-transistor chip in a freshman applied physics lab. Basically I feel like someone who has studied everything about the physics of bicycles but has never ridden one. I'm really struggling on how to proceed.</p>
]]></description><pubDate>Wed, 11 Jan 2023 18:22:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=34342251</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34342251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34342251</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Theory-building and why employee churn is lethal to software companies"]]></title><description><![CDATA[
<p>It's not exactly an easy read -- whenever I recommend it to someone I also warn them that it contains the most passive sentence in the history of the English language: "Information obtained by a member of group A about the compiler resulting from the further modification of it after about 10 years made it clear that at that later stage the original powerful structure was still visible, but made entirely ineffective by amorphous additions of many different kinds."<p>But the content more than makes up for the style!</p>
]]></description><pubDate>Tue, 10 Jan 2023 21:07:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=34331499</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=34331499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34331499</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "FTX’s collapse was a crime, not an accident"]]></title><description><![CDATA[
<p>A corollary:<p>Think about all the places you've ever worked, all the organizations you've been part of, where you know how the sausage is actually made, and how that differs from the way the organization portrays itself.<p>Now think about all the other organizations in the world, whose internal workings you're not privy to.</p>
]]></description><pubDate>Thu, 01 Dec 2022 03:01:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=33811783</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=33811783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33811783</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Why I am learning category theory"]]></title><description><![CDATA[
<p>Here are some of the more practical insights for medium/large-scale software design that have stuck with me. They apply regardless of whether I'm working in a language that lets me easily express categorical-ish stuff in the type system:<p>- Triviality<p>The most trivial cases are actually the most important. If I build a little DSL, I give it an explicit "identity" construction in the internal representation, and use it liberally in the implementation, transformation phases, and tests, even though obviously its denotation as a no-op will be optimized away by my little DSL compiler, and it may not even be exposed as an atomic construct in the user-facing representation.<p>- Free constructions<p>When it's difficult to separate a model from an implementation, when simple interfaces are not enough because the model and implementation are substantially complex, multilayered systems on their own, often the answer is to use a free construction.<p>Free constructions are a killer tool for allowing the late-binding of rather complex concerns, while allowing for reasoning, transformation, and testing of the underlying components without worrying about that late-bound behavior. "Late-bound" here does not have to mean OO-style dynamic dispatch -- in fact now you have more expressive power to fuse some behaviors together in a staged manner with no runtime indirection, or to make other behaviors legitimately dynamic, differing from one call to the next. Tradeoffs in the flexibility/performance space are easier to make, to change, and to self-document.<p>This is particularly useful when you need to start addressing "meta" concerns as actual user-facing concerns -- when your project matures from a simple application that does Foo into a suite of tools for manipulating and reasoning about Foo and Fooness. Your Foo engine currently just does Foo, but now you want it to not just do Foo, but return a description of all the sub-Foo tasks it performed -- but only if the configuration has requested those details, because sometimes the user just wants to Foo. So you embed the basic, non-meta-level entities representing the actual component tasks in a free construction, compose them within that free construction, and implement the configurable details of that composition elsewhere.<p>- "Sameness"<p>Making clear distinctions between different notions of sameness is important. Identity, equality, isomorphism, adjointness -- sure, you might never explicitly implement an adjunction, but these are important notions to keep separate, at least conceptually if not concretely in source code entities, as a piece of software grows more complex. If you treat two things as fundamentally the same in more ways than they really are, you reach a point where you now can no longer recover crucial information in a later phase of computation. In an indexed/fibered construction, this X may be basically the same as that X, but this X, <i>viewed as the image</i> of a transformation applied to Y is quite different from that X, <i>viewed as the image</i> of a transformation applied to Z, although the images are equal. So can I just pass my X's around everywhere, or do I need to pass or at least store somewhere the references to Y and Z? What if <i>computationally</i> I can only get an X as the result of applying a function to Y, but <i>conceptually</i> the functional dependency (that is, as a mathematical function) points the other way around, from X to Y? Paying attention to these easy-to-miss distinctions can save you from code-architecting yourself into a corner. You may discover that the true reserve currency of the problem domain is Y when it looks like X, or vice versa.</p>
]]></description><pubDate>Wed, 30 Nov 2022 20:28:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=33807162</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=33807162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33807162</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Hexagonal Architecture vs. Free Monad (2017)"]]></title><description><![CDATA[
<p>Yes, a good project/module system helps, but is no panacea. As TFA said:<p>"As a result of having only conventions, there is no strong insurance against a developer using the dependencies directly, instead of going through the ports, or adding a new dependencies without the associated port (it happens, we all have seen it)."<p>As long as you have some of the same developers working on multiple layers of the application's architecture, it's easy to accidentally reintroduce violations of the layer boundaries, even if you originally wrote the application using clean, well-designed interfaces.<p>Say project Layer2Implementation depends on project Layer1Interface, as it should, but also depends on Layer1Implementation, possibly due to a transitive dependency that's not immediately obvious. But the build system and IDE know the project dependency is there, and now it's all too easy to refer to a Layer1Implementation internal helper function or have one suggested to you via autocomplete, even if you didn't include it in your top-of-file "open" declarations. And because you were just fixing up something else in Layer 1 an hour ago, you think to yourself "aha, I know that function, it's useful!" and plug it right in to your new Layer 2 code.<p>This may be why some languages are so anal about requiring explicit public/private/internal accessibility modifiers on everything, but those are highly susceptible to code rot anyway. First the real conceptual interface ends up scattered among a bunch of different files. Then under time pressure, more and more things get mindlessly marked public just so a developer can get a feature into an easily testable state. Module interface files are a pain too if they're optional (as in, say, F#).<p>You really want to have one tangible, named entity that groups together the functionality you actually want to expose to other layers. You want to make it impossible to refer to things you shouldn't be referring to, without making accessibility hygiene a maintenance burden in its own right. I feel like ML-style modules and abstract data types are great for this, although I've never written a sizable application in any ML dialect. The new static interface stuff in .Net is a nice step in that direction though.</p>
]]></description><pubDate>Thu, 24 Nov 2022 00:17:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=33726256</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=33726256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33726256</guid></item><item><title><![CDATA[New comment by DalekBaldwin in "Lego Is Discontinuing Mindstorms"]]></title><description><![CDATA[
<p>The most easily available Meccano-compatible system still in production is the Swiss brand Stokys: <a href="https://www.stokys.ch/de-ch/home/" rel="nofollow">https://www.stokys.ch/de-ch/home/</a><p>The web site and order system is in German, but I've been able to talk to their friendly customer service in English. Then there's the matter of shipping outside of Europe... but it's still much easier than scraping parts together from vintage Meccano vendors with circa-1995-style web sites.<p>I remember having some Erector sets as a kid in the '90s (they had merged with Meccano long before, and the choice of which brand to appear on which set seems to have been random since then), but these days the official Meccano/Erector selection is almost non-existent -- there are maybe a dozen small self-contained model vehicle kits, and you can't order generic kits or parts in bulk. It is rather sad -- these brands were once used for serious engineering prototyping and scientific work: <a href="https://en.wikipedia.org/wiki/Differential_analyser#Use_of_Meccano" rel="nofollow">https://en.wikipedia.org/wiki/Differential_analyser#Use_of_M...</a></p>
]]></description><pubDate>Wed, 26 Oct 2022 23:30:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=33351038</link><dc:creator>DalekBaldwin</dc:creator><comments>https://news.ycombinator.com/item?id=33351038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33351038</guid></item></channel></rss>