<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: MaulingMonkey</title><link>https://news.ycombinator.com/user?id=MaulingMonkey</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 09:50:05 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=MaulingMonkey" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by MaulingMonkey in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p>To be fair, the `void*` is already a pretty big hint that you're in the danger zone.</p>
]]></description><pubDate>Wed, 10 Jun 2026 00:17:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48469586</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48469586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48469586</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p>> if somewhere in the plumbing you connect the wrong source to the wrong destination, you get no warning.<p>A valid concern.  I've been in the position of having to fix those bugs.<p>I'm not going to recommend `qsort` over `std::sort` or anything like that.  I've seen `void*` "user data" pointers in C APIs and decided to stuff runtime checkable handle values in there instead of real pointers to blobs.  In Rust, this can mean avoiding some unnecessary `unsafe { ... }` blocks, since while reading anything from a `*const c_void` requires such things, reading from a global `Mutex<HashMap<*const c_void, Arc<dyn Any>>>` or similar nonsense does not.  I'll eat the performance hit unless I'm worrying about an actual hot path!<p>And I'm not going to stand in the way of newtype wrappers around void pointers either.  I'll +1 the PRs with `class ASpecificKindOfBlob { void* data; size_t length; };` and suchlike as well, if `std::span`s aren't your type of thing, and abide by measures to centralize such plumbing in one place such that the opportunities to make a mistake are fewer.<p>But sometimes a blob is just a blob, and breaking out `std::byte` is putting lipstick on a pig.  <i>And it's not even the right color lipstick.</i></p>
]]></description><pubDate>Wed, 10 Jun 2026 00:16:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48469580</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48469580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48469580</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p>> Fair point (although to be honest: 'complexify' feels a bit of an exaggeration here to me)<p>Both uint8_t and std::byte require a header (<cstdint> or <cstddef>) which may expose you to platform x config specific build failures if you do any conditional #including, and the latter is a whole damn enum class with a strange adversion to arithmetic, where `byte |= 1` becomes `byte |= std::byte(1)`, `byte += 1` becomes `byte = std::byte(std::to_integer<std::uint8_t>(byte) + 1);`, and both become something you can accidentally <i>step into</i> in your full debug builds because it's an actual function call (at least on MSVC - still extra instructions on clang/gcc, but I can see the dang <i>call</i> instruction on MSVC!) instead of a compiler built in.<p>Not to mention, neither is vanilla C++03... I threw a `std::byte` example in a quick godbolt snippet and MSVC wouldn't compile without adding /std:c++17, because of course it defaults to earlier.  Which is silly, but that's also the story of my life.<p>And don't get me wrong - that's all relatively minor - but it's all for middling to negative value IME.  `void*` is frequently <i>clearer</i> - it's a signal that it's an opaque blob at this point in the code, and that <i>something else</i> will try to give it meaning <i>later</i>.  I struggle to think of a single bug that I've encountered, that would've been caught by the compiler had I used `std::byte` over `unsigned char` or `void`.  And conversely, I've seen APIs accepting `std::byte<i>` but requiring higher alignment, where with `void</i>` I might not have dropped my guard as much.<p>> `std::span`<p>At least manages to bind pointer and size into a single variable, which IME at least has the advantage of eliminating some bugs (e.g. mismatching pointers and sizes) and allowing some nifty utility functions to become a lot more wieldy.  You can do things like feed it an array and not have to do any of your own `sizeof(...)` shenannigans.  At <i>this</i> point you're possibly getting into positive expected value, but I'm going to eye roll at pull requests refactoring `void*` based stuff to use it unless I see at least one actual concrete example of calling code improving alongside it - I don't want just hypothetical theoretical ergonomics, I want actual concrete ergonomics!</p>
]]></description><pubDate>Tue, 09 Jun 2026 14:35:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48461714</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48461714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48461714</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>TIL the horror that is the existence of non-serializable isolation.<p>I'm a gamedev.  I've worked alongside webdevs (frontend and backend) that build our websites and forums.  Alongside coworkers who handle networking stuff while I port things on the same project.  Spotted SQLIs for people and pointed them on a better path [1].  I've dabbled in my own share of SQL-adjacent queries... which is to say databases have always been on my list of things I should <i>probably</i> take the time to put <i>properly</i> into my toolkit, for increased reliability and data durability.  After all, rotating file snapshots by hand, and fuzzing formats to create recoverability from corruption (if only by detecting it and reverting to previous snapshots instead of crashing or corrupting further) is clearly the work of uncultured barbarians, bereft the wonders of proper fsync-aware ACID storage technologies.<p>And then I read this:<p>---------------------------------------------<p>However, many database vendors use weaker isolation levels by default, in particular:<p>• “Read committed” in PostgreSQL and Oracle.<p>• “Repeatable read” in MySQL/InnoDB (there is a subtlety, see below) in YugabyteDB.<p>---------------------------------------------<p>I regret the clearly undue respect and regard I've given to database technology.  I knew some of this kind of nonsense had intruded with the NoSQL and sharding crowd, but I thought you at least had to <i>ask</i> for such ruination for most of the SQLs used in <i>production</i>, at least in the context of a singular database.  Euhg.<p>1. <a href="https://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/" rel="nofollow">https://blog.codinghorror.com/give-me-parameterized-sql-or-g...</a></p>
]]></description><pubDate>Mon, 08 Jun 2026 03:19:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48440973</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48440973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48440973</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The worst job interview I ever had"]]></title><description><![CDATA[
<p>> I disagree that you'll find "many red flags for any job"<p>If they're hiding the many red flags, that's the biggest red flag of all!</p>
]]></description><pubDate>Tue, 26 May 2026 23:12:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48287297</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48287297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48287297</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "LLM Policy for Rust Compiler"]]></title><description><![CDATA[
<p>> If you're steeped deeply enough in that NDA-preserving culture<p>If you've throroughly absorbed a culture of honoring non disclosure agreements (NDAs), which are legal contracts demanding you keep secrets and avoid sharing sensitive data or code...<p>> a reminder that you've switched contexts might help<p>A reminder that rust-lang is a transparent, open source project, with no non-disclosure agreements or trade secrets to keep private unto itself might help [1].<p>> when common sense proves uncommon.<p>Because everyone misses the "obvious" sometimes.  And because "obvious" is a subjective value judgement, meaning people will disagree what is or is not obvious.<p>-------<p>1. That said, if you've got a private, corporate-internal, closed source fork, you might still be bound by such concerns.  For example, various people have ported rust's stdlib to work on various consoles (xbox, playstation, etc.) - and one of the reasons you don't see that upstreamed is because doing so would require violating console vendor NDAs, as well as possibly their company's NDAs - possibly for such banal reasons as not wanting to leak a hint of a console port or new title before their marketing plans are ready to go to capitilize on any hype.</p>
]]></description><pubDate>Fri, 15 May 2026 11:58:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48147509</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48147509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48147509</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "LLM Policy for Rust Compiler"]]></title><description><![CDATA[
<p>> Like seriously, what's the point of explicitly allowing this?<p>Explicit permission can be useful to preemptively cut off some questions from well meaning people who, acting in good faith, might otherwise pester for clarification (no matter how silly / "obvious" it might otherwise be), or get agitated by misconstruing an all-banned list as being an overly verbose "no LLMs ever" overreach.<p>> It's in-line with the 'nanny' stereotype of the Rust community that they give you permission to act in a way they would never be able to verify anyways: [...]<p>Many of us work or have worked in corporate settings where IT takes great pains to help detect and prevent data exfiltration, and have absolutely installed the corporate spyware to detect those kinds of actions when performed on their own closed source codebases.  Others rely on the honor system - at least as far as <i>you</i> know - but still ban such actions out of copyright/trade secret concerns.  If you're steeped deeply enough in that NDA-preserving culture, a reminder that you've switched contexts might help when common sense proves uncommon.<p>While nannying can be obnoxious, I'm not sure that having a document one can point to/link/cite, to allay any raised concerns, counts.</p>
]]></description><pubDate>Fri, 15 May 2026 05:45:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48144972</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=48144972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48144972</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "Don't feel like exercising? Maybe it's the wrong time of day for you"]]></title><description><![CDATA[
<p>My trick: Walk to meals and other excursions/shopping in lieu of driving.<p>If I leave on a walk for the exclusive purpouse of "exercise", I immediately feel bored, and like I'm wasting time, even if I "know" I'm not.  Conversely, if I have goals to achieve at a destination, cutting the walk short to drive - or cook at home - is no <i>less</i> boring, and feels like a waste of the walking I <i>did</i> do.<p>It started as a way to take a break from work when I was crunching, with the company of coworkers.  They'd grab lunch, or coffee, and you might as well stretch your legs and socialize while you're at it.</p>
]]></description><pubDate>Wed, 15 Apr 2026 05:51:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47775166</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47775166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47775166</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The Future of Everything Is Lies, I Guess: Safety"]]></title><description><![CDATA[
<p>My family accepts me just the way I am a bit too much.  I can't bring myself to blame them, when past "reformist" pressures have been misguided/misapplied and backfired, but I recognize the trap.  It'd also be hypocritical to blame them, when I also accept me just the way I am a bit too much!  I'd like to think I'm decent enough to people, but I'm certainly more useless than I'd like to be.  (Un?)fortunately, I'm not in a position to suffer, and I'm at least aware of the problem!<p>One of the ideas I've toyed with, even before all the AI hype, is a <i>dumb, semi-adversarial</i> servitor.  Something to nag or taunt me about chores not done, to interrupt me when I'm doomscrolling, to use as a vessel for precommitment, to challenge me in various ways.  I've been too lazy to build it thus far.  Many tools overlap the problem space, so I shouldn't be using that as an excuse - perhaps I should give StayFocusd another shot.<p>Conflict and other stressors - in moderation, within the limits of one's ability to handle - are important for growth and health.  A tree shielded from wind is weakened as it fails to develop stress wood and structural strength.  A good debate can sharpen my thoughts and mind, walking to lunch keeps my cardiovascular system healthy, rising to life's various challenges gives me the security of knowing I can rise to the occasion and gives me more skills.</p>
]]></description><pubDate>Tue, 14 Apr 2026 00:14:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759640</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47759640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759640</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The Future of Everything Is Lies, I Guess: Safety"]]></title><description><![CDATA[
<p>Trade is just a combination of give and take.  I give you X, and in exchange, take Y.  Without the "take", it's not a trade, it's just a gift.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:05:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759122</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47759122</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759122</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "The Future of Everything Is Lies, I Guess: Safety"]]></title><description><![CDATA[
<p>> Interesting you single out commercial and government entities but not people. What defines the difference? Bureaucracy? Concentration of resources? Legal theory?<p>Not OP, but for me, kind family and friends, and various feel-good pieces of fiction and other writing, at least let me <i>envision</i> the possibility of a perfectly kind/dedicated/innocent/naieve individual who is truly on my side 100%.  But even that is mostly imagination and fiction... although convincing others of that isn't necessairly an argument worth making.<p>Commercial entities have a fundamental purpouse of profit.  While profit doesn't have to be a zero-sum game - ideally, everyone benefits in a somewhat balanced way - there's some fundamental tension, in that each party's profit is necessairly limited by the other party's.<p>Government entities have a fundamental purpouse of executing the will of the state, which is rather explicitly not the same thing as the will of you as an individual.<p>Both commercial and government entities also tend to involve multiple people, which gets statistics working against you - you really gathered that many people who would put your needs above their own, with exactly zero "imposters" - which in this context just means people with a bit of rational self interest?<p>> I guess I'm trying to wonder why this line of thinking (in theory) doesn't turn to paranoia about everybody. I don't know much ethics or political theory or anything.<p>Just because you're paranoid, doesn't mean they aren't out to get you.  Trust, but verify.<p>You might not be able to put absolute blind trust in anybody.  I certainly can't.  However, one can hedge one's bets, and diversify trust.  Build social circles of people with good character, good judgement, and calm temperments - and statistics will start working for you.  It's unlikely they'll all conspire to betray you simultaniously, especially if you've ensured betrayal costs much and gains little.  While petty and jealous people can indeed be irrational enough to betray under such circumstances, it'll be harder for them to create the kind of conspiracy necessary for mass betrayal that might cause significant enough damage to warrant proper paranoia.  You might still have to watch out for gaslighters stealing credit (document your work!) and framing people (document your character!) and other such dishonest and manipulative behavior... but if <i>everyone's</i> looking out for the same thing, well, that's just everyone looking out for everyone else!  That's a community looking out for each other, and holding everyone honest and accountable.  Most find comfort in that, rather than the stress paranoia implies.<p>Put yourself in a room full of manipulators and schemers, on the other hand, and "parnoia about everyone" might be the only reasonable or rational response!</p>
]]></description><pubDate>Mon, 13 Apr 2026 19:45:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47756958</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47756958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47756958</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "Why are we still using Markdown?"]]></title><description><![CDATA[
<p>I use a horrific mix of:<p>• Markdown (most of my notes these days, supplanting my previous use of plaintext.)<p>• Single-file HTML (when my use case for fancy documents exceeds markdown's limits.  While you <i>can</i> embed HTML into markdown, renderers vary in what they allow or sanitize, and vary in how you can (ab)use style tags.  I've even taken to looking up CSS rules for printed documents, since my intended target is often pdfs or actual print at that point.  Occasionally, JavaScript!)<p>• Google docs (Android phone nonsense!)<p>I'd mutter something about "using the right tool for the right job", but that's probably giving myself too much credit.</p>
]]></description><pubDate>Sat, 04 Apr 2026 02:37:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47635089</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47635089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47635089</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "A single-file C allocator with explicit heaps and tuning knobs"]]></title><description><![CDATA[
<p>> One explaination for that would be stripping "out of scope" macros that the sublibrary depends on but wishes to avoid including.<p>Another explaination would be the original source being multi-file, with the single-file variant being generated.  E.g. duktape ( <a href="https://github.com/svaarala/duktape" rel="nofollow">https://github.com/svaarala/duktape</a> ) generates src-custom/duktape.c from src-input/*/*.c ( <a href="https://github.com/svaarala/duktape/tree/master/src-input" rel="nofollow">https://github.com/svaarala/duktape/tree/master/src-input</a> ) via python script, as documented in the Readme:<p><a href="https://github.com/svaarala/duktape/tree/master?tab=readme-ov-file#getting-started-end-user" rel="nofollow">https://github.com/svaarala/duktape/tree/master?tab=readme-o...</a></p>
]]></description><pubDate>Sat, 28 Mar 2026 17:56:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47556854</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47556854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47556854</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "A single-file C allocator with explicit heaps and tuning knobs"]]></title><description><![CDATA[
<p>> no commit history, 10k+ lines of complicated code<p>This kind of pattern is incredibly common when e.g. a sublibrary of a closed source project is extracted from a monorepository.  Search for "_LICENSE" in the source code and you'll see leftover signs that this was indeed at one point limited to "single-process-package hardware" for rent extraction purpouses.<p>Now, for me, my bread and butter monorepos are Perforce based, contain 100GB+ of binaries (gamedev - so high-resolution textures, meshes, animation data, voxely nonsense, etc.) which take an hour+ to check out the latest commit, and frequently have mishandled bulk file moves (copied and deleted, instead of explicitly moved through p4/p4v) which might mean <i>terrabytes</i> of bandwidth would be used over <i>days</i> if trying to create a git equivalent of the full history... all to mostly throw it away and then give yourself the added task of scrubbing said history to ensure it contains no code signing keys, trade secrets, unprofessional easter eggs, or other such nonsense.<p>There are times when such attention to detail and extra work make sense, but I have no reason to suspect this is one of them.  And I've seen monocommits of much worse - typically injested from .zip or similar dumps of "golden master" copies, archived for the purpouses of contract fulfillment, without full VCS history.<p>Even Linux, the titular git project, has some of these shenannigans going on.  You need to resort to git grafts to go earlier than the Linux-2.6.12-rc2 dump, which is significantly girthier.<p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2" rel="nofollow">https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...</a><p><a href="https://github.com/torvalds/linux/commit/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2" rel="nofollow">https://github.com/torvalds/linux/commit/1da177e4c3f41524e88...</a><p>0 parents.<p>> It looks to be generated from another code base as a sorta amalgamation (either through code generation, ai, or another means).<p>I'm only skimming the code, but other posters point out some C macros may have been expanded.  The repeated pattern of `(chunk)->...` reminds me of a C-ism where you defensively parenthesize macro args in case they're something complex like `a + b`, so it expands to `(a + b)->...` instead of `a + b->...`.<p>One explaination for that would be stripping "out of scope" macros that the sublibrary depends on but wishes to avoid including.<p>> We're supposed to implicitly trust this person<p>Not necessairly, but cleaner code, git history, and a more previously active account aren't necessairly meant to suggest trust either.</p>
]]></description><pubDate>Sat, 28 Mar 2026 17:46:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47556795</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47556795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47556795</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "My “grand vision” for Rust"]]></title><description><![CDATA[
<p>(Rust has a similar fn: <a href="https://doc.rust-lang.org/std/primitive.isize.html#method.checked_div" rel="nofollow">https://doc.rust-lang.org/std/primitive.isize.html#method.ch...</a> )</p>
]]></description><pubDate>Mon, 09 Mar 2026 19:34:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47314260</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47314260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47314260</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "Best performance of a C++ singleton"]]></title><description><![CDATA[
<p>In fact, Windows 10+ now uses a thread pool during process init well before main is reached.<p><a href="https://web.archive.org/web/20200920132133/https://blogs.blackberry.com/en/2017/10/windows-10-parallel-loading-breakdown" rel="nofollow">https://web.archive.org/web/20200920132133/https://blogs.bla...</a></p>
]]></description><pubDate>Sun, 08 Mar 2026 08:46:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47295689</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47295689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47295689</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "macOS code injection for fun and no profit (2024)"]]></title><description><![CDATA[
<p>> video games<p>Often use dynamic/scripting languages to improve iteration on gameplay code, even if a lot of the fundamental underlying code is native.  And add dev-time hot reloading wherever we can so when you change a texture, it reloads ≈immediately without needing to so much as restart the level.  We exile as much as we can to tables and other structured data formats which can easily be tweaked and verified by non-coders so we're not a bottleneck for the game designers and artists who want to tweak things, and make that stuff hot-reloadable if possible as well.<p>We also often have in-house build server farms full of testing code, because it's such a pain in the ass to iterate with anything dynamic.  After all, games are huge, and sufficient testing to make sure all your uncompiled unanalyzed typecheckless code works is basically impossible - things are constantly breaking <i>as committed</i> during active development, and a decent amount of engineering work is frequently dedicated to such simple tasks as triaging , collecting, and assigning bugs and crash reports such that whomever broke it knows they need to fix it, as well as allowing devs and designers to work from previous "known good" commits and builds so they aren't blocked/unable to work on <i>their</i> work - which means internal QA helping identify what's actually "known good", hosting and distributing multiple build versions internally such that people don't have to rebuild the universe themselves (because that's <i>several hours</i> of build time), etc.<p>Some crazy people invest in hot-reloadable <i>native</i> code.  There's all kinds of limits on what kinds of changes you can make in such a scenario, but it's entirely possible to build a toolchain where you save a .cpp file, and your build tooling automatically kicks off a rebuild of the affected module(s), triggering a hot reload of the appropriate .dll, causing your new behavior to be picked up without restarting your game process.  Which probably means it'll immediately crash due to a null pointer dereference or somesuch because some new initialization code was never triggered by the hot reloading, but hey, at least it theoretically works!<p>And, of course, nothing is stopping you from creating isolated sandboxes/examples/test cases where you skip all the menuing, compiling unrelated modules, etc. and iterating in that faster context instead of the cumbersome monolith for most of your work.</p>
]]></description><pubDate>Sat, 07 Mar 2026 21:44:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47291750</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47291750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47291750</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "NASA announces overhaul of Artemis program amid safety concerns, delays"]]></title><description><![CDATA[
<p><i>Record</i> low launch temperatures are exactly the kind of boundary pushing conditions that would warrant unmanned testing in a way that not all of those previous 25 would have been.  Then again, so was the first launch, and that was manned.<p>> I don't see your alternative scenario as plausible<p>Valid.</p>
]]></description><pubDate>Sat, 28 Feb 2026 02:26:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47189350</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47189350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47189350</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "NASA announces overhaul of Artemis program amid safety concerns, delays"]]></title><description><![CDATA[
<p>> They didn't need more unmanned testing to find the issue; they needed to stop ignoring it.<p><i>Should</i> such testing have been needed?  No.<p><i>Was</i> such testing needed, given NASA's political pressures and management?  Maybe.  Unmanned testing in similar conditions before putting humans on it might've resulted in a nice explosion without loss of life that would've been much harder to ignore than "the hypothesizing of those worrywart engineers," and might've provided the necessary ammunition to resist said political pressures.</p>
]]></description><pubDate>Fri, 27 Feb 2026 21:28:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47185878</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47185878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47185878</guid></item><item><title><![CDATA[New comment by MaulingMonkey in "Bus stop balancing is fast, cheap, and effective"]]></title><description><![CDATA[
<p>I'll note another fun pattern I've seen:<p>• Bus crawls along behind traffic during rush hour traffic, or a long line of traffic bottlenecked by a busy stop sign<p>• Bus stops to load/unload, blocking traffic for a bit, with a gap opening up in front of it as a result of cars not being able to get around (e.g. the stop is just directly on the typical curb/sidewalk with one lane in that direction.)<p>• Bus continues, and quickly catches up to the car it was behind before, since traffic was going slower than the speed limit as a result of bottlenecks<p>The stop was <i>free</i>, in these cases.</p>
]]></description><pubDate>Fri, 27 Feb 2026 01:27:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47175083</link><dc:creator>MaulingMonkey</dc:creator><comments>https://news.ycombinator.com/item?id=47175083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47175083</guid></item></channel></rss>