<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: aidanhs</title><link>https://news.ycombinator.com/user?id=aidanhs</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 19 May 2026 00:56:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=aidanhs" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by aidanhs in "Cutting inference cold starts by 40x with LP, FUSE, C/R, and CUDA-checkpoint"]]></title><description><![CDATA[
<p>Fair enough, would love to see another writeup on the performance you observe even if it fails - in practice numbers are hard to come by.</p>
]]></description><pubDate>Mon, 18 May 2026 22:20:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48186587</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=48186587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48186587</guid></item><item><title><![CDATA[New comment by aidanhs in "Cutting inference cold starts by 40x with LP, FUSE, C/R, and CUDA-checkpoint"]]></title><description><![CDATA[
<p>I've recently been going down the rabbit hole of creating a "fast start dev env" and it's interesting to see how this article differs from other approaches (codesandbox has some fantastic blogs, the fly.io blog on sprites has interesting pointers, e2b and daytona are related open source tools). Everyone has a different solution based on their tradeoffs.<p>I thought the memory snapshotting part in particular was clever since most container based systems don't bother (VM/firecracker based ones can use UFFD and call it a day), but by having emulated syscalls you can actually do single-process restore pretty well.<p>I am a bit dubious of the use of fuse (though it clearly works well!), and I wonder if ublk (what I ended up using) might alleviate some of the pain/magic in fuse tuning. I'd personally also be looking at forking gvisor to take a memfd which you enable UFFD on for the page loading (I have some firecracker patches where I do the same). It's nice because you can optimistically push pages, rather than waiting for the requests to come in. The series of three codesandbox blog posts are good background reading.</p>
]]></description><pubDate>Mon, 18 May 2026 20:20:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48185019</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=48185019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48185019</guid></item><item><title><![CDATA[New comment by aidanhs in "Welcome to Gas Town"]]></title><description><![CDATA[
<p>I'm super interested to hear more on anything you can share about your projects, or the niche of gov projects you're aware of - I've been doing some work with gov and haven't seen this requirement yet, so want to be prepared if it does come up.<p>(contact details in profile if you prefer)</p>
]]></description><pubDate>Mon, 19 Jan 2026 16:46:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46681129</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=46681129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46681129</guid></item><item><title><![CDATA[New comment by aidanhs in "The chroot Technique – a Swiss army multitool for Linux systems"]]></title><description><![CDATA[
<p>One annoying part of using chroot if you're creating them on the fly is teardown - you have to manually invoke umount, and also take care to get this right for partially created chroots (maybe you detected an error after mounting proc, in the process of getting other files in place).<p>This was my original motivation in creating machroot (mentioned elsewhere in this thread) and having it use namespaces.</p>
]]></description><pubDate>Wed, 09 Apr 2025 16:22:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43633858</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=43633858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43633858</guid></item><item><title><![CDATA[New comment by aidanhs in "The chroot Technique – a Swiss army multitool for Linux systems"]]></title><description><![CDATA[
<p>As a number of comments have noted, there are a bunch of different axes that chroot could be 'better' on - e.g. security and sandboxing.<p>I wrote <a href="https://github.com/aidanhs/machroot">https://github.com/aidanhs/machroot</a> (initially forked from bubble wrap) a while ago to lean into the pure "pretend I see another filesystem" aspect of chroot with additional conveniences (so no security focus). For example, it allows setting up overlay filesystems, allows mounting squashfs filesystems with an overlay on top...and because it uses a mount namespace, means you don't need to tear down the mount points - just exit the command and you're done.<p>The codebase is pretty small so I just tweaked it with whatever features I needed at the time, rather than try and make it a fully fledged tool.<p>(honestly you can probably replicate most of it with a shell script that invokes unshare and appropriate mount commands)</p>
]]></description><pubDate>Wed, 09 Apr 2025 16:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43633830</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=43633830</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43633830</guid></item><item><title><![CDATA[New comment by aidanhs in "Ask HN: How are you using LLMs for traversing decompiler output?"]]></title><description><![CDATA[
<p>Out of curiosity, what would you say the current state of the art is for full compilable decompilation? This is something I have a vague interest in but I'm not involved enough in the space to be on top of the latest and greatest tooling.</p>
]]></description><pubDate>Sat, 04 Jan 2025 20:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=42597463</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=42597463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42597463</guid></item><item><title><![CDATA[New comment by aidanhs in "WebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssembly"]]></title><description><![CDATA[
<p>Interesting, that's helpful, thanks - so with the eventual arrival of memory64 and assuming I only wanted to target desktop systems and assuming browser implementations permit large allocations (e.g. 8GB) - large 64bit apps could work fine. I have a use case for this I've been poking at for a bit, but implementing my own version of cheerpx would be a lot of work, maybe I'll just wait!<p>On open source - I can only give you feedback as an outside fresh pair of eyes :) I incorrectly interpreted that it was full stack OSS based on the overall blog post 'vibe' and had to deliberately double check because I was aware of cheerpx beforehand. Perhaps it's just me. I look forward to the cheerpx blog post!</p>
]]></description><pubDate>Thu, 14 Nov 2024 16:27:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42137805</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=42137805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42137805</guid></item><item><title><![CDATA[New comment by aidanhs in "WebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssembly"]]></title><description><![CDATA[
<p>All the emulation of desktop machines in WASM I've seen so far have been for x86 - do you think there are significant additional hurdles for x86_64? Or is it just a matter of time?<p>Separately, one bit of feedback - it's cool that webvm is open source, but I think it's fair to ask you to be upfront that cheerpx itself is <i>not</i> (which is fine!) in the blog post itself where you talk about webvm licensing. If I wasn't already familiar with the wasm emulation space I would have felt rather misled.</p>
]]></description><pubDate>Thu, 14 Nov 2024 11:20:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=42135145</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=42135145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42135145</guid></item><item><title><![CDATA[New comment by aidanhs in "Show HN: Chili. Rust port of Spice, a low-overhead parallelization library"]]></title><description><![CDATA[
<p>Right, because Anyscale found a niche that distributed compute matters in (AI) and built great libraries/hosted platforms/services around that. I would venture that the money they make from people who pare back things to just ray core is ~0, which is why it's open source.<p>Put another way - building such a platform doesn't preclude commercial success, but (at least for us) it isn't sufficient. Fly.io might be able to pull it off if they want to explore that direction imo.<p>Fwiw if you dig around in the ray core codebase (as I did when I was doing competitor analysis years ago) you can use the core C code from other languages to build such a platform for Rust if you like - they had Java and C++ interfaces at the time, but I haven't looked in the last 5 years.</p>
]]></description><pubDate>Thu, 19 Sep 2024 21:31:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41596574</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=41596574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41596574</guid></item><item><title><![CDATA[New comment by aidanhs in "Show HN: Chili. Rust port of Spice, a low-overhead parallelization library"]]></title><description><![CDATA[
<p>The company I work at (Hadean) used to have this as a product - think erlang-like multi machine IPC, with automatic acquisition of cloud resources and language integration for Rust, C, C++, Python. Pretty easy to point it at some machines and get them running a distributed application (as in simulation or big data).<p>But infrastructure for developers is hard to make money with - developers like to build it themselves and people holding the purse strings point at kubernetes and say "that's free". So we just use it as an internal platform for a distributed simulation engine and it works pretty well.<p>I did an analysis of removing it (it's a lot of bespoke code that we have to maintain for something that isn't our actual product) and I think you could probably implement something on top of Nomad that's close enough...but then Nomad went BSL and Kubernetes is a big complexity shift.<p>So...if anyone knows of something out there let me know, I'd love to be able to use it outside of work :)</p>
]]></description><pubDate>Thu, 19 Sep 2024 20:59:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=41596330</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=41596330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41596330</guid></item><item><title><![CDATA[New comment by aidanhs in "Nix – A One Pager"]]></title><description><![CDATA[
<p>First a minor quibble: if you're talking about 'Nix data', then starting the conversation by talking about 'Nix-the-language' is rather misleading.<p>That aside, Nix allows you to create infinite datastructures, e.g.<p><pre><code>    $ nix eval --expr 'rec { z = { a = z; i = 5; }; }.z.a.a.a.i'
    5
</code></pre>
which you can't do with JSON.<p>But even if JSON <i>did</i> have some way of handling datastructure 'loops', it's still not helpful because of laziness. You almost never want to eagerly evaluate a Nix expression to produce what you seem to term 'Nix data', because you'll invoke the `derivation` built in function to create paths you never actually reference - this is why laziness is such an important property of Nix.<p>So I'm still not clear what user-facing part of Nix is isomorphic to JSON. If it's just "Nix types [0] are similar to JSON types" then...sure.<p>[0] <a href="https://nixos.org/manual/nix/stable/language/values" rel="nofollow">https://nixos.org/manual/nix/stable/language/values</a></p>
]]></description><pubDate>Sun, 14 Apr 2024 18:19:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=40033153</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=40033153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40033153</guid></item><item><title><![CDATA[New comment by aidanhs in "Nix – A One Pager"]]></title><description><![CDATA[
<p>Can you elaborate on what you're getting at?<p>Syntax-wise it's about as similar to JSON as Erlang expressions are (i.e. superficially similar in some cases).<p>Semantics-wise I've personally found any superficial similarity to JSON to be actively unhelpful in understanding because of some important processing differences (e.g. paths, laziness).</p>
]]></description><pubDate>Sun, 07 Apr 2024 09:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=39959467</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=39959467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39959467</guid></item><item><title><![CDATA[New comment by aidanhs in "Zellij: A terminal workspace with batteries included"]]></title><description><![CDATA[
<p>Of my series of PRs, I suspect the third (i.e. <a href="https://github.com/zellij-org/zellij/pull/3043">https://github.com/zellij-org/zellij/pull/3043</a>) is most likely to have an effect. But if it does it'd only be as a side effect unfortunately - my focus was on fixing lag with splitting of extremely long lines.<p>From what I saw while making my changes, that area of the code has a bunch more possible optimisations, but it's 'good enough' for me at this point so I'm not planning to continue pulling at the thread right now. If you wanted to look yourself, I left the script I used for benchmarking and profiling in <a href="https://github.com/zellij-org/zellij/issues/2622#issuecomment-1904595721">https://github.com/zellij-org/zellij/issues/2622#issuecommen...</a></p>
]]></description><pubDate>Mon, 05 Feb 2024 13:30:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=39261027</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=39261027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39261027</guid></item><item><title><![CDATA[New comment by aidanhs in "Go 1.21 will (likely) have a static toolchain on Linux"]]></title><description><![CDATA[
<p>I didn't believe you that it was broken, but you're right - very disappointing. For anyone interested, the bug for it being is at [1] (reported mid 2021).<p>The build failure is easy to fix, so I created a repo at [2] which builds a program against a glibc with static nss. I verified with strace that it does indeed check nsswitch.conf and try and load dynamic libraries (I'd at least submit my patch [3] for the build failure but I find mailing lists to be a hassle)<p>All this said, I wouldn't call it undocumented - it's documented in the `configure --help` itself as well as the online version [4], and it has an FAQ entry [5].<p>[1] <a href="https://sourceware.org/bugzilla/show_bug.cgi?id=27959" rel="nofollow">https://sourceware.org/bugzilla/show_bug.cgi?id=27959</a><p>[2] <a href="https://github.com/aidanhs/gcc-static-linking">https://github.com/aidanhs/gcc-static-linking</a><p>[3] <a href="https://github.com/aidanhs/gcc-static-linking/blob/1f04425e2890ce38773a20bfbd40c788df012f23/script.sh#L14">https://github.com/aidanhs/gcc-static-linking/blob/1f04425e2...</a><p>[4] <a href="https://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html" rel="nofollow">https://www.gnu.org/software/libc/manual/html_node/Configuri...</a><p>[5] <a href="https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked_programs_need_some_shared_libraries_which_is_not_acceptable_for_me.__What_can_I_do.3F" rel="nofollow">https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked...</a></p>
]]></description><pubDate>Sat, 08 Apr 2023 10:45:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=35492133</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=35492133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35492133</guid></item><item><title><![CDATA[New comment by aidanhs in "Ask HN: Who is hiring? (March 2023)"]]></title><description><![CDATA[
<p>Hadean | Rust Engineer | London (flexible/hybrid) or REMOTE (UK) | Full-Time<p>Hadean are backed by the likes of Epic Games. Our speciality is in spatial compute - we’ve built a massive-scale distributed simulation engine and a connectivity layer to plug thousands of users into a single world. We’re using these to provide the infrastructure and computational power to build, run and monetise the Metaverse.<p>Our core (internal) platform, connectivity layer and some higher level components are written in Rust and we’re looking for people to work on the design, implementation, and maintenance of our products.<p>Check out our careers page at <a href="https://hadean.com/jobs/" rel="nofollow">https://hadean.com/jobs/</a></p>
]]></description><pubDate>Wed, 01 Mar 2023 16:31:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=34984243</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=34984243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34984243</guid></item><item><title><![CDATA[New comment by aidanhs in "Launch HN: Moonrepo (YC W23) – Open-source build system"]]></title><description><![CDATA[
<p>(for context - I'm not interested in first class node support)<p>This seems pretty cool. I particularly like how 'gradual' it seems to be relative to things like Bazel, i.e. you can take some shell scripts and migrate things over. I did have a play and hit an initial problem around project caching I think, which I raised at [0].<p>One comment, from the paranoid point of view of someone who has built distributed caching build systems before is that your caching is very pessimistic! I understand <i>why</i> you hash outputs by default (as well as inputs), but I think that will massively reduce hit rate a lot of the time when it may not be necessary? I raised [1].<p>Edit: for any future readers, I spotted an additional issue around the cache not being pessimistic enough [3]<p>As an aside, I do wish build systems moved beyond the 'file-based' approach to inputs/outputs to something more abstract/extensible. For example, when creating docker images I'd prefer to define an extension that informs the build system of the docker image hash, rather than create marker files on disk (the same is true of initiating rebuilds on environment variable change, which I see moon has some limited support for). It just feels like language agnostic build systems saw the file-based nature of Make and said 'good enough for us' (honorable mention to Shake, which is an exception [2]).<p>[0] <a href="https://github.com/moonrepo/moon/issues/637">https://github.com/moonrepo/moon/issues/637</a><p>[1] <a href="https://github.com/moonrepo/moon/issues/638">https://github.com/moonrepo/moon/issues/638</a><p>[2] <a href="https://shakebuild.com/why#expresses-many-types-of-build-rule" rel="nofollow">https://shakebuild.com/why#expresses-many-types-of-build-rul...</a><p>[3] <a href="https://github.com/moonrepo/moon/issues/640">https://github.com/moonrepo/moon/issues/640</a></p>
]]></description><pubDate>Tue, 21 Feb 2023 20:48:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=34887009</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=34887009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34887009</guid></item><item><title><![CDATA[New comment by aidanhs in "Ccache – a fast C/C++ compiler cache"]]></title><description><![CDATA[
<p>Readers please note that sccache isn't just for Rust, and isn't just caching!<p>It has a number of features, combining capabilities of ccache/distcc/icecream for C, C++ and Rust...along with some unique things that I've not seen in other tools. My comment at <a href="https://news.ycombinator.com/item?id=25604249" rel="nofollow">https://news.ycombinator.com/item?id=25604249</a> has a summary.</p>
]]></description><pubDate>Thu, 24 Nov 2022 09:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=33729232</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=33729232</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33729232</guid></item><item><title><![CDATA[New comment by aidanhs in "Rust stabilizes generic associated types"]]></title><description><![CDATA[
<p>I recently refactored some traits that had a lot of repetitive noise in the generic type parameters (which end up being reflected in function signatures etc). I went about this without really being overly aware of GATs and their status, but the code that I naturally ended up with required enabling them.<p>So from my point of view, I didn't really <i>need</i> to understand what GATs were bringing - it's a lifting of restrictions that would have previously felt arbitrary.</p>
]]></description><pubDate>Tue, 13 Sep 2022 21:19:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=32830310</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=32830310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32830310</guid></item><item><title><![CDATA[New comment by aidanhs in "Statement on 4 Years of GDPR"]]></title><description><![CDATA[
<p>In the context of the GDPR, I just want to remind people of this thread where a HN user invokes their rights in order to make Spotify back down on a change that would have locked user playlists into their service for no good reason - <a href="https://news.ycombinator.com/item?id=24764371" rel="nofollow">https://news.ycombinator.com/item?id=24764371</a><p>(can't be 100% sure this is what made Spotify change direction, but it seems likely)</p>
]]></description><pubDate>Wed, 25 May 2022 12:11:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=31503373</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=31503373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31503373</guid></item><item><title><![CDATA[New comment by aidanhs in "Zstandard Worked Example"]]></title><description><![CDATA[
<p>This is exactly what I was hoping for! If you just copied and pasted this into the documentation directly, that'd be more than enough. Thanks for writing it out so clearly and creating the issue.</p>
]]></description><pubDate>Thu, 19 May 2022 15:38:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=31436115</link><dc:creator>aidanhs</dc:creator><comments>https://news.ycombinator.com/item?id=31436115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31436115</guid></item></channel></rss>