<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: lewo</title><link>https://news.ycombinator.com/user?id=lewo</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 15 May 2026 10:06:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lewo" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lewo in "Hardware Attestation as Monopoly Enabler"]]></title><description><![CDATA[
<p>On the other hand, the TPM spec is pretty complex, especially because they wanted to address privacy issues: the endorsement key, burned by the manufacturer, is only able to encrypt messages and not able to sign them, because this could have been used to track machines. (and this makes a remote attestation protocol much more complex to implement)<p>So, it looks like they were aware about such kind of issues and tried hard to mitigate them.</p>
]]></description><pubDate>Mon, 11 May 2026 14:07:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48095226</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=48095226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48095226</guid></item><item><title><![CDATA[New comment by lewo in "Meta’s AI smart glasses and data privacy concerns"]]></title><description><![CDATA[
<p>Definitely not.
But when someone looks at me, my gaze is drawn to that person, to say "hello" for instance. I have the same kind of feeling with a camera. 
(Maybe if i was living in a town, i would loose this reflex.)</p>
]]></description><pubDate>Tue, 03 Mar 2026 11:45:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47231033</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=47231033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47231033</guid></item><item><title><![CDATA[New comment by lewo in "Meta’s AI smart glasses and data privacy concerns"]]></title><description><![CDATA[
<p>On the french trains, you can sit opposite someone else. I'm feeling really uncomfortable when this person scrolls on its phone, with the phone back camera pointing to me for hours.<p>I sometime ask this person to hide the camera and they generally understand my feeling.</p>
]]></description><pubDate>Tue, 03 Mar 2026 07:28:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47229292</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=47229292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47229292</guid></item><item><title><![CDATA[New comment by lewo in "A faster path to container images in Bazel"]]></title><description><![CDATA[
<p>I think this is really close to the way nix2container works (<a href="https://github.com/nlewo/nix2container" rel="nofollow">https://github.com/nlewo/nix2container</a>). nix2container generates metadata at build time and streams the required data at runtime.<p>At build time, it generates a JSON file describing the image metadata and the layers data location.
At runtime, it consumes this JSON file to stream layer data and image configuration to a destination. This is implemented by adding a new transport to Skopeo. Thanks to this implementation, nix2container doesn't need to handle all various destrination since this is managed by Skopeo itself.<p>Recently, we introduced a mechanism to also produce such kind of JSON file for the base image (see <a href="https://github.com/nlewo/nix2container?tab=readme-ov-file#nix2containerpullimagefrommanifest" rel="nofollow">https://github.com/nlewo/nix2container?tab=readme-ov-file#ni...</a>).<p>I'm pretty sure the added (not usptreamed yet) transport could be useful in some other close contexts, such as Bazel or Guix.<p>I'm the nix2container author and i will be glad to discuss with you if you think this Skopeo transport could be useful for you!<p>(btw, your blog post is pretty well written!)</p>
]]></description><pubDate>Thu, 25 Dec 2025 20:51:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46386957</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=46386957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46386957</guid></item><item><title><![CDATA[New comment by lewo in "Transparent leadership beats servant leadership"]]></title><description><![CDATA[
<p>In the same kind of spirit, when i was the tech team manager in a company without any transparent salary policy, i've been practicing what i've been called the "symmetrical salary management": when I knew the salary of a managed team colleague, i told him/her my salary. I also asked to keep my salary private, as I kept their salaries private.<p>I think this is a pretty important requirement to build trust in a team.</p>
]]></description><pubDate>Fri, 05 Dec 2025 06:14:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46157318</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=46157318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46157318</guid></item><item><title><![CDATA[New comment by lewo in "Largest cargo sailboat completes first Atlantic crossing"]]></title><description><![CDATA[
<p>More precisely, this is the price per person but if you travel alone, you have to share a room with someone else. Or you would have you to make private a double room which costs about 5400E.</p>
]]></description><pubDate>Sun, 09 Nov 2025 17:03:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45867039</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=45867039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45867039</guid></item><item><title><![CDATA[New comment by lewo in "Why We're Moving on from Nix"]]></title><description><![CDATA[
<p>> With no way of splitting up the Nix dependencies into separate layers<p>nix2container [1] is actually able to do that: you can explicitly build layers containing a subset of the dependencies required by your image. An example is provided in this section: <a href="https://github.com/nlewo/nix2container?tab=readme-ov-file#isolate-dependencies-in-dedicated-layers">https://github.com/nlewo/nix2container?tab=readme-ov-file#is...</a><p>For instance, if your images use bash, you can explicitly create a layer containing the bash closure. This layer can then be used across all your images and is only rebuild and repushed if this bash closure is modified.<p>> > pull in dependencies often results in massive image sizes with a single /nix/store layer<p>This is the case for the basic nixpkgs.dockerTools.buildImage function but this is not true with nix2container, nor with nixpkgs.dockerTools.streamLayeredImage. Instead of writing the layers in the Nix store, these tools build a script to actually push the image by using existing store paths (which are Nix runtime dependencies of this script). Regarding the nix2container implementation, it builds a JSON file describing the Nix store paths for all layers and uses Skopeo to push the image (to a Docker deamon, a registry, podman, ...), by consuming this JSON file.<p>(disclaimer: i'm the nix2container author)<p>[1] <a href="https://github.com/nlewo/nix2container">https://github.com/nlewo/nix2container</a></p>
]]></description><pubDate>Sat, 07 Jun 2025 16:39:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44210735</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=44210735</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44210735</guid></item><item><title><![CDATA[New comment by lewo in "Replacing Kubernetes with systemd (2024)"]]></title><description><![CDATA[
<p>And regarding this part of the article<p>>  Particularly with GitOps and Flux, making changes was a breeze.<p>i'm writing comin [1] which is GitOps for NixOS machines: you Git push your changes and your machines fetch and deploy them automatically.<p>[1] <a href="https://github.com/nlewo/comin">https://github.com/nlewo/comin</a></p>
]]></description><pubDate>Tue, 06 May 2025 07:19:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43902549</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=43902549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43902549</guid></item><item><title><![CDATA[New comment by lewo in "The Pain That Is GitHub Actions"]]></title><description><![CDATA[
<p>> Would Nix work well with GitHub Actions?<p>You can use Nix with GitHub actions since there is a Nix GitHub action: <a href="https://github.com/marketplace/actions/install-nix" rel="nofollow">https://github.com/marketplace/actions/install-nix</a>. Every time the action is triggered, Nix rebuilds everything, but thanks to its caching (need to be configured), it only rebuilds targets that has changed.<p>> How do you automate running tests and deploying to dev on every push<p>Nix is a build tool and it's main purpose is not to deploy artifacts. There are however a lot of tools to deploy artifacts built by Nix: <a href="https://github.com/nix-community/awesome-nix?tab=readme-ov-file#deployment-tools" rel="nofollow">https://github.com/nix-community/awesome-nix?tab=readme-ov-f...</a><p>Note there are also several Nix CI that can do a better job than a raw GitHub actions, because they are designed for Nix (Hydra, Garnix, Hercules, ...).</p>
]]></description><pubDate>Fri, 21 Mar 2025 07:32:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43432742</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=43432742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43432742</guid></item><item><title><![CDATA[New comment by lewo in "GitOpper: GitOps Without Kubernetes"]]></title><description><![CDATA[
<p>We have an issue to support non flake deployments: <a href="https://github.com/nlewo/comin/issues/30">https://github.com/nlewo/comin/issues/30</a></p>
]]></description><pubDate>Fri, 02 Aug 2024 07:20:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=41136803</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=41136803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41136803</guid></item><item><title><![CDATA[New comment by lewo in "GitOpper: GitOps Without Kubernetes"]]></title><description><![CDATA[
<p>No, it has been initially developed to manage a "COMmunity INfrastructure" and it sounds like the word "coming". I didn't know this meme but it's a nice coincidence because this infrastructure is actually a kind of "CHATONS" [1] (kitten in french)!
Thx for the ref which could be useful for a future logo!<p>[1] <a href="https://www.chatons.org/en" rel="nofollow">https://www.chatons.org/en</a></p>
]]></description><pubDate>Fri, 02 Aug 2024 06:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41136559</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=41136559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41136559</guid></item><item><title><![CDATA[New comment by lewo in "Everything that uses configuration files should report where they're located"]]></title><description><![CDATA[
<p>The main issue is to use configuration files residing somewhere in the filesystem. This looks like a global variable in a codebase (something we generally try to avoid).
Instead, the configuration file should be explicitly provided as a command line argument. Systemd sandboxing can also be useful to ensure the program only uses the expected set of files.<p>For instance, on my NixOS machine, the Nginx configuration is not in `/etc/nginx` but explicitly provided and can then be known with ps:<p>$ ps aux | grep nginx<p>nginx: master process /nix/store/9iiqv6c3q8zlsqfp75vd2r7f1grwbxh7-nginx-1.24.0/bin/nginx -c /nix/store/9ffljwl3nlw4rkzbyhhirycb9hjv89lr-nginx.conf</p>
]]></description><pubDate>Sun, 25 Jun 2023 08:28:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=36466086</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=36466086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36466086</guid></item><item><title><![CDATA[New comment by lewo in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>> would be hard to beat "sync a file to a warm container and run it"<p>It depends on the size of your Pex file (i don't think you mentioned it and sorry if i missed the info). With a Docker/OCI image, it would be possible to create a layer with only the Python files of your application (without deps and interpreter). (I say "would be possible" because that's currently not easy to achieve with Nix for instance.)</p>
]]></description><pubDate>Wed, 08 Mar 2023 09:28:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=35066950</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=35066950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35066950</guid></item><item><title><![CDATA[New comment by lewo in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>> The key factor behind our decision was the realization that while Docker images are industry standard, moving around 100s of megabytes of images seems unnecessarily heavy-handed when we just need to synchronize a small change.<p>I think the culprit is more the GitHub Actions cache than Docker since it seems to be hard to get a clean cache management. I'm not sure about caching Docker image layers, but caching the Nix store with GitHub Actions is pretty complicated (not even sure it's possible): this means we have to download all required Nix store paths on each run, but i consider this is because of a GitHub Action cache limitation.<p>So, did you consider using another CI, which offers better caching mechanisms?<p>With a CI able to preserve the Nix store (Hydra[1] or Hercules[2] for instance), I think nix2container (author here) could also fit almost all of your requirements ("composability", reproducibility, isolation) and maybe provide better performances because it is able to split your application into several layers [2][3].<p>Note i'm pretty sure a lot of Docker CI also allows to efficiently build Docker images.<p>[1] <a href="https://hercules-ci.com/" rel="nofollow">https://hercules-ci.com/</a><p>[2] <a href="https://grahamc.com/blog/nix-and-layered-docker-images" rel="nofollow">https://grahamc.com/blog/nix-and-layered-docker-images</a><p>[3] <a href="https://github.com/nlewo/nix2container/blob/85670cab354f7df69dd4af097c27cf9bc5826cb2/examples/uwsgi/default.nix">https://github.com/nlewo/nix2container/blob/85670cab354f7df6...</a></p>
]]></description><pubDate>Wed, 08 Mar 2023 08:09:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=35066501</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=35066501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35066501</guid></item><item><title><![CDATA[New comment by lewo in "Launch HN: Depot (YC W23) – Fast Docker Builds in the Cloud"]]></title><description><![CDATA[
<p>FYI, the nix2container [1] project (author here) aims to speedup the standard Nix container workflow (dockerTools.buildImage) by basically skipping the tarball step: it directly streams non already pushed layers.<p>[1] <a href="https://github.com/nlewo/nix2container">https://github.com/nlewo/nix2container</a></p>
]]></description><pubDate>Wed, 22 Feb 2023 20:34:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=34902233</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=34902233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34902233</guid></item><item><title><![CDATA[New comment by lewo in "Crafting container images without Dockerfiles"]]></title><description><![CDATA[
<p>To get Rust incremental builds, did you consider using something such as crane <a href="https://github.com/ipetkov/crane">https://github.com/ipetkov/crane</a> ?<p>And regarding OCI images, i built nix2container (<a href="https://github.com/nlewo/nix2container">https://github.com/nlewo/nix2container</a>) to speed up image build and push times.</p>
]]></description><pubDate>Tue, 07 Feb 2023 07:49:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=34689935</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=34689935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34689935</guid></item><item><title><![CDATA[New comment by lewo in "Building Go programs with Nix flakes"]]></title><description><![CDATA[
<p>Another advantage of the gomod2nix approach concerns long term build reproducibility [1]. Having each source dependency in its own derivation would make easier source code mirroring. Since Nix knows the hash of each sources, we could imagine to teach Nix how to get the source code from some other places than GitHub. For instance, Nix could use the hash of the dependency to query Software Heritage [2].<p>Note there is also an opened issue to restrict Nix fixed output derivation which would make impossible the buildGoModule "hack".<p>[1] <a href="https://github.com/NixOS/nixpkgs/issues/84826" rel="nofollow">https://github.com/NixOS/nixpkgs/issues/84826</a><p>[2] <a href="https://www.tweag.io/blog/2020-06-18-software-heritage/" rel="nofollow">https://www.tweag.io/blog/2020-06-18-software-heritage/</a></p>
]]></description><pubDate>Wed, 14 Dec 2022 20:07:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=33989539</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=33989539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33989539</guid></item><item><title><![CDATA[New comment by lewo in "Ask HN: What email service should I use instead of Gmail?"]]></title><description><![CDATA[
<p>First, you should own your domain, to own your email identity. With a domain, Gandi (my employer) includes two mail addresses: imap, roundcube, sogo, sieve filters, aliases,...<p><a href="https://www.gandi.net/en/domain/email" rel="nofollow">https://www.gandi.net/en/domain/email</a></p>
]]></description><pubDate>Thu, 08 Dec 2022 08:08:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=33905521</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=33905521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33905521</guid></item><item><title><![CDATA[New comment by lewo in "Nixery – Docker images on the fly with Nix"]]></title><description><![CDATA[
<p>With <a href="https://github.com/nlewo/nix2container" rel="nofollow">https://github.com/nlewo/nix2container</a>, I'm trying to make a more standalone tool. Basically, a Go binary takes a reference graph and produces a JSON file describing a container image. This JSON file is then ingested by a Skopeo fork (it adds a new `transport`) to produce images (to file, registries,...).<p>Currently, it supports the dockerTools layering algorithm and is designed to work with Guix [1] as well;)<p>[1] <a href="https://github.com/nlewo/nix2container/blob/065e5b108650ee4c2dc80fe1f4952eff50922e6c/nix/utils.go#L55" rel="nofollow">https://github.com/nlewo/nix2container/blob/065e5b108650ee4c...</a></p>
]]></description><pubDate>Tue, 19 Apr 2022 13:20:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=31082705</link><dc:creator>lewo</dc:creator><comments>https://news.ycombinator.com/item?id=31082705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31082705</guid></item></channel></rss>