<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: NilsIRL</title><link>https://news.ycombinator.com/user?id=NilsIRL</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 07:12:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=NilsIRL" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Paged Out Issue #4]]></title><description><![CDATA[
<p>Article URL: <a href="https://pagedout.institute/?page=asdf">https://pagedout.institute/?page=asdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40545657">https://news.ycombinator.com/item?id=40545657</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 01 Jun 2024 13:41:02 +0000</pubDate><link>https://pagedout.institute/?page=asdf</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=40545657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40545657</guid></item><item><title><![CDATA[New comment by NilsIRL in "Lego price per part over the years"]]></title><description><![CDATA[
<p>> I did this before I learned how to finish projects<p>Very curious about this. As do many people I struggle to finish projects.<p>How does one learn this skill?</p>
]]></description><pubDate>Wed, 20 Mar 2024 04:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39762885</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39762885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39762885</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>I moved zig-clap to zon. Was alright. I appreciate that absence of a package registry.</p>
]]></description><pubDate>Tue, 12 Mar 2024 20:06:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=39684290</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39684290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39684290</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>Unfortunately cosmopolitan wouldn't work for dockerc. Cosmopolitan works as long as you only use it but container runtimes require additional features. Also containers contain arbitrary executables so not sure how that would work either...<p>As for WASM, this is already possible using container2wasm[0] and wasmer[1]'s ability to generate static binaries.<p>[0]: <a href="https://github.com/ktock/container2wasm">https://github.com/ktock/container2wasm</a><p>[1]: <a href="https://wasmer.io/">https://wasmer.io/</a></p>
]]></description><pubDate>Thu, 07 Mar 2024 12:44:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628393</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39628393</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628393</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>I thought it was an acceptable trade-off given that AppImage has the same limitation.<p>An alternative is to extract the image to disk but that has quite a bit of overhead.</p>
]]></description><pubDate>Thu, 07 Mar 2024 12:25:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628211</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39628211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628211</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>don't give me ideas ;) (yes)</p>
]]></description><pubDate>Thu, 07 Mar 2024 12:22:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628182</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39628182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628182</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>They have the same goal but achieve it differently.<p>dockerc allows you to re-use your existing docker images without having to spend time packaging something up.<p>The applications running from dockerc-generated executables run inside a container so they are guaranteed to be hermetic.</p>
]]></description><pubDate>Thu, 07 Mar 2024 12:21:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628168</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39628168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628168</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>I don't expect this to interact with the docker daemon in any way. With networking executables generated by dockerc behave in the same way as a native application running outside a container.<p>> What about using Zon for deps, instead of a git submodule?<p>I couldn't find documentation quickly enough (dockerc was initially during a hackathon and was my first time using Zig). I plan to fix this eventually.</p>
]]></description><pubDate>Thu, 07 Mar 2024 12:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628145</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39628145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628145</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>dockerc can, the produced executables cannot, at least not without some tweaking.<p>Even if you path through `/dev/fuse` and `/usr/bin/fusermount3` (using -v) it fails the mount the fuse filesystems with the error message "Operation not permitted".<p>It might be possible to make it work if it falls back to extracting the container when failing the mount the fuse filesystems.</p>
]]></description><pubDate>Thu, 07 Mar 2024 04:22:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39625030</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39625030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39625030</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>I hadn't heard of Apptainer/Singularity before but it doesn't seem to provide the ability to create standalone executables.</p>
]]></description><pubDate>Thu, 07 Mar 2024 04:12:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624987</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624987</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>> Running on Windows/macOS was also the context in which I meant to ask about filesystem mounts.<p>That's not an issue because the mounts are within the Linux VM. At least as long as you're not trying to implement volumes.<p>> I understand this is not something that's implemented yet, but I'm wondering about your goals.<p>Make a better alternative for all the projects that suggest using `docker run` in their READMEs. Something that's easy to setup (re-use existing Dockerfiles) and something that doesn't depend on pre-existing setup from the user (which docker does).<p>> The much larger hurdle I see for Windows support is that I don't think you can setup virtualization without Admin privileges in the general case. If Hyper-V is not already present and enabled you'll need to install some hypervisor. Even QEMU needs Hyper-V for proper virtualization.<p>That's good to know. I didn't know that. I guess it will need to use emulation in some cases then.</p>
]]></description><pubDate>Thu, 07 Mar 2024 04:05:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624941</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624941</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>That's really cool. I didn't know about that. Thanks for sharing.<p>There's a few things that seem to make it unsuitable for the intended use case of dockerc:<p>* The container extracts itself which means there is quite a bit of overhead for large images. dockerc-built executables have the same startup time whether the image is 2.2GB or 25MB.<p>* The executables produced by enroot don't seem suitable for running standalone. At least the example doesn't seem to suggest so.</p>
]]></description><pubDate>Thu, 07 Mar 2024 03:51:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624880</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624880</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>Yeah, I don't think this makes that much sense for internal distribution. Especially if you use kubernetes.<p>The use case is for distributing software to end users.</p>
]]></description><pubDate>Thu, 07 Mar 2024 03:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624858</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624858</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>The main reason Zig was chosen is because the project was started at a hackathon[0] at which there was a prize for "best use of Zig". Beyond that there were also other reasons: 1. I have been wanting to try out Zig 2. It fit the requirement of being a so called "systems language".<p>However having written it in Zig I have a few retroactive reasons for why Zig was a good choice (if not the best choice):<p>* The build system allows to make the runtime a dependency of the "compiler". I don't think any other language has that.<p>* The interoperability with C/systems calls is amazing (in comparison to anything but C/C++)<p>* The ability to embed files<p>* Makes it incredibly easy to make static binaries<p>[0]: <a href="https://treehacks.com/" rel="nofollow">https://treehacks.com/</a><p>[1]: <a href="https://github.com/NilsIrl/dockerc/blob/68b0e6dc40e76c77ad0c94123f77829cf6c91b61/build.zig#L41">https://github.com/NilsIrl/dockerc/blob/68b0e6dc40e76c77ad0c...</a></p>
]]></description><pubDate>Thu, 07 Mar 2024 03:38:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624818</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624818</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624818</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>Thanks!<p>> Will this run ok on a Mac?<p>I've managed to make it work but unfortunately not in a way that produces portable binaries. I just need to figure out how to selectively statically link some of the QEMU dependencies or write a runtime that uses Apple's VirtualizationFramework.</p>
]]></description><pubDate>Thu, 07 Mar 2024 03:26:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624759</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624759</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>Yep, this is a known issue. It also existed in the past with normal docker. <a href="https://github.com/NilsIrl/dockerc/issues/6">https://github.com/NilsIrl/dockerc/issues/6</a></p>
]]></description><pubDate>Thu, 07 Mar 2024 03:23:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39624740</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39624740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39624740</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>> How do you deal with resource sharing? This starts with just filesystem mounts, but also concerns ports, possibly devices, and probably many other things I'm forgetting. Is this somehow configurable?<p>I'm not too sure what resources you're talking about in general. Mounts are in a temporary location so they shouldn't conflict. Each container uses 2 when it is running. In terms of ports, you won't be able to have multiple applications using the same port (whether they are built with dockerc or not). As for devices I don't think there's any issues there.<p>> How does this compare to AppImage? IIRC that also puts everything into a squashfs.<p>It's very similar to AppImage in spirit. I haven't looked at the AppImage implementation but I suspect a lot of things are similar.<p>The difference with AppImage is that this makes it trivial to convert existing docker images into something that can run as an executable. It also offers stronger hermeticity guarantees as the application runs inside of a container.<p>> If a user without CAP_SYS_USER_NS executes one of the binaries built by dockerc, do you handle that gracefully in any way?<p>It's not something I've paid much attention to. This falls back to the container runtime which currently outputs "clone: Operation not permitted" when ran with `sudo sysctl -w kernel.unprivileged_userns_clone=0`.</p>
]]></description><pubDate>Wed, 06 Mar 2024 23:57:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=39623392</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39623392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39623392</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>> How static are we talking here?<p>Enough for the executables to run everywhere. So I'm happy for system libraries to be dynamically linked.<p>> But do you even want to distribute Windows binaries?<p>That's what I'm imagining. A windows binary that starts a Linux VM in which the container runs.<p>> Does this include automagically mounting filesystems?<p>Yep, inside of the Linux kernel. Here's what PID 1 looks like: <a href="https://github.com/NilsIrl/dockerc/blob/non_linux/src/init.zig">https://github.com/NilsIrl/dockerc/blob/non_linux/src/init.z...</a></p>
]]></description><pubDate>Wed, 06 Mar 2024 22:28:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=39622583</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39622583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39622583</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>> It would make sense that a tool like this would prioritize MacOS/Windows support above all else.<p>Yep, unfortunately I've not had the time to make it work well on those platforms. I got an initial demo working on MacOS but I'm currently facing the issue that I'm unable to statically compile QEMU on MacOS. I've also started writing a VirtualizationFramework[0] based backend.<p>> Why would QEMU even necessary? Docker runs fine on Windows.<p>When docker runs on Windows/MacOS it's actually running the containers in a Linux VM. Containers rely on features provided by the Linux kernel.<p>> Maybe it's to avoid requiring the user to install Docker?<p>The main reason to use dockerc is to avoid the user having to install Docker.<p>> Either way, asking the user to fiddle with Hyper-V settings is bad UX.<p>Yep I don't think that would be nice. I expect the experience to be transparent to the user.<p>[0]: <a href="https://developer.apple.com/documentation/virtualization" rel="nofollow">https://developer.apple.com/documentation/virtualization</a></p>
]]></description><pubDate>Wed, 06 Mar 2024 22:10:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=39622358</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39622358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39622358</guid></item><item><title><![CDATA[New comment by NilsIRL in "Show HN: dockerc – Docker image to static executable "compiler""]]></title><description><![CDATA[
<p>It will depend heavily on the docker image you're trying to ship. For example with macos-cross-compiler[0] the resulting binary is over 2GB. With python:alpine[1] it's only 25MB.<p>Because the image isn't copied whether the image is 2GB or 25MB the startup time will be nearly instantaneous for both.<p>The runtime adds 6-7MB of overhead although I expect that this can be reduced to less than 3MB with some work.<p>[0]: <a href="https://github.com/shepherdjerred/macos-cross-compiler">https://github.com/shepherdjerred/macos-cross-compiler</a>
[1]: <a href="https://hub.docker.com/_/python" rel="nofollow">https://hub.docker.com/_/python</a></p>
]]></description><pubDate>Wed, 06 Mar 2024 21:57:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=39622184</link><dc:creator>NilsIRL</dc:creator><comments>https://news.ycombinator.com/item?id=39622184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39622184</guid></item></channel></rss>