<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>HN Frontpagers on Adolfo Ochagavía</title>
    <link>https://ochagavia.nl/tags/hn-frontpagers/</link>
    <description>Recent content in HN Frontpagers on Adolfo Ochagavía</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ochagavia.nl/tags/hn-frontpagers/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Fully in-browser container builds</title>
      <link>https://ochagavia.nl/blog/fully-in-browser-container-builds/</link>
      <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/fully-in-browser-container-builds/</guid>
      <description>Containers are fun. The ecosystem is incredibly open, with the internals right there for anyone to explore. Once you wrap your head around the specifications, you unlock the power to build custom tools and may even discover unexpected use cases1. Speaking of &amp;ldquo;unexpected use cases&amp;rdquo;, today I have a demo to share: a web application that builds containers right in your browser, relying only on client-side code.&#xA;Try it out Seeing is believing, so why don&amp;rsquo;t you head to the demo and build a container?</description>
    </item>
    <item>
      <title>Fix your tools</title>
      <link>https://ochagavia.nl/blog/fix-your-tools/</link>
      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/fix-your-tools/</guid>
      <description>Last week I had to diagnose a bug in an open source library I maintain. The issue was gnarly enough that I couldn&amp;rsquo;t find it right away, but then I thought: if I set a breakpoint here and fire up the debugger, I will likely find the root cause very soon&amp;hellip; and then proceed to mercilessly destroy it!&#xA;So I rolled up my sleeves, set the breakpoint, fired up the debugger, and&amp;hellip; saw the program run to completion without interruptions whatsoever.</description>
    </item>
    <item>
      <title>Towards interplanetary QUIC traffic</title>
      <link>https://ochagavia.nl/blog/towards-interplanetary-quic-traffic/</link>
      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/towards-interplanetary-quic-traffic/</guid>
      <description>Have you ever asked yourself which protocols get used when downloading pictures from the Perseverance Mars rover to Earth? I hadn&amp;rsquo;t thought about that either, until I came across an intriguing message on the internet, back in April 2024:&#xA;I&amp;rsquo;m looking for someone knowledgeable of quic/quinn to help us out for our deep space IP project. Would be of part-time consulting. Please dm me if interested.&#xA;The message itself is quite short and somewhat jargon-y, so it took me a few readings to fully realize what the project was about:</description>
    </item>
    <item>
      <title>Configuration files are user interfaces</title>
      <link>https://ochagavia.nl/blog/configuration-files-are-user-interfaces/</link>
      <pubDate>Thu, 18 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/configuration-files-are-user-interfaces/</guid>
      <description>We have all been there. Your software keeps growing and you feel the need to make it customizable. It is too soon for a full-blown UI with all the bells and whistles, so your pragmatic instinct suggests a text-based configuration file. Yes, that&amp;rsquo;s exactly it!&#xA;You rejoice knowing the software&amp;rsquo;s configuration will be trivial to version control. Your pragmatic instinct is satisfied as well; the door remains open to creating a proper UI later, since it would be merely a graphical view of your configuration&amp;rsquo;s structured data.</description>
    </item>
    <item>
      <title>What the heck is AEAD again?</title>
      <link>https://ochagavia.nl/blog/what-the-heck-is-aead-again/</link>
      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/what-the-heck-is-aead-again/</guid>
      <description>Here&amp;rsquo;s a problem you might be familiar with: I keep forgetting what AEAD exactly means and why you would ever use it. Yes, I know the acronym stands for &amp;ldquo;Authenticated Encryption with Associated Data&amp;rdquo;, but does that really clarify anything? Not to me, so I&amp;rsquo;ve finally decided to sit down and write this blog post as a piece of help for my future self&amp;hellip; and for anyone else who finds AEAD hard to retain.</description>
    </item>
    <item>
      <title>Using S3 as a container registry</title>
      <link>https://ochagavia.nl/blog/using-s3-as-a-container-registry/</link>
      <pubDate>Wed, 03 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/using-s3-as-a-container-registry/</guid>
      <description>For the last four months I&amp;rsquo;ve been developing a custom container image builder, collaborating with Outerbounds1. The technical details of the builder itself might be the topic of a future article, but there&amp;rsquo;s something surprising I wanted to share already: you can use S3 as a container registry! You heard it right. All it takes is to expose an S3 bucket through HTTP and to upload the image&amp;rsquo;s files to specific paths.</description>
    </item>
    <item>
      <title>From full-stack development to systems programming</title>
      <link>https://ochagavia.nl/blog/from-full-stack-development-to-systems-programming/</link>
      <pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/from-full-stack-development-to-systems-programming/</guid>
      <description>Back when I was pursuing my Computer Science degree, one of the big questions that kept me busy was: what am I going to do after I graduate? I felt like I could work on pretty much anything, thanks to the solid foundations I received at the university and to my real-world experience contributing to Rust. So&amp;hellip; what to choose?&#xA;Lured into full-stack development After reading Never Eat Alone I decided to start meeting people in order to answer my question.</description>
    </item>
    <item>
      <title>Chasing a bug in a SAT solver</title>
      <link>https://ochagavia.nl/blog/chasing-a-bug-in-a-sat-solver/</link>
      <pubDate>Tue, 13 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/chasing-a-bug-in-a-sat-solver/</guid>
      <description>Recently I spent two weeks collaborating with Prefix.dev to further develop resolvo, their SAT-based dependency solver. The main goal was to fix a nasty bug, where the solver unexpectedly panicked upon hitting code that was supposed to be unreachable. &amp;ldquo;That will make for a good war story!&amp;rdquo;, I thought, so I kept notes of my debugging process to serve as a basis for this article.&#xA;I was being overly pessimistic, though, thinking it would take days to find the source of the bug&amp;hellip; In reality it took me only a few hours, so there&amp;rsquo;s not much to tell about the chase itself.</description>
    </item>
    <item>
      <title>The undercover generalist</title>
      <link>https://ochagavia.nl/blog/the-undercover-generalist/</link>
      <pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/the-undercover-generalist/</guid>
      <description>Since starting out as an independent contractor, I&amp;rsquo;ve always felt a tension between being a generalist software engineer, yet having to market myself as a specialist. I&amp;rsquo;ve been wanting to write about it for years and even have kept some notes for that purpose. Recently I came across an article by Ben Collins-Sussman, which gave me the last bit of inspiration I needed, even though his article only indirectly touches on the topic.</description>
    </item>
    <item>
      <title>Becoming a contractor</title>
      <link>https://ochagavia.nl/blog/becoming-a-contractor/</link>
      <pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/becoming-a-contractor/</guid>
      <description>How many roads must a programmer walk down before you call them a contractor? It&amp;rsquo;s been about three years since I went down this (bumpy) path, and I finally have the feeling that my contracting business is &amp;ldquo;bootstrapped&amp;rdquo;1. Here&amp;rsquo;s an account of my journey so far, hoping you find it inspiring!&#xA;0. Contents Articles about contracting and freelancing usually take the form of abstract advice: how to find clients, how much you should charge, etc.</description>
    </item>
    <item>
      <title>The magic of dependency resolution</title>
      <link>https://ochagavia.nl/blog/the-magic-of-dependency-resolution/</link>
      <pubDate>Tue, 04 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/the-magic-of-dependency-resolution/</guid>
      <description>Dependency resolution is something programmers usually take for granted. Be it cargo, npm, or whatever package manager you use, no one is actually surprised when this black-box figures out, all by itself, the specific set of packages that should be installed.&#xA;To me, though, it is a fascinating feat. It feels magical when a machine solves an abstract problem like that, with minimal input from me as a user! I was, therefore, delighted when the nice folks at Prefix.</description>
    </item>
    <item>
      <title>The birth of a package manager</title>
      <link>https://ochagavia.nl/blog/the-birth-of-a-package-manager/</link>
      <pubDate>Thu, 16 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/the-birth-of-a-package-manager/</guid>
      <description>Since my time at the university, pursuing a Computer Science degree, I have always been fascinated by programming languages and the tooling around them: compilers, IDEs, package managers, etc. Eventually, that got me involved as a hobbyist in the development of the Rust compiler and rust-analyzer, but I never got the chance to work professionally on programming language tooling&amp;hellip; until two months ago! In January, the nice folks at prefix.dev asked me to help them develop the rattler package manager, and there is lots to tell about what we have achieved since then, so buckle up!</description>
    </item>
    <item>
      <title>Crafting container images without Dockerfiles</title>
      <link>https://ochagavia.nl/blog/crafting-container-images-without-dockerfiles/</link>
      <pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/crafting-container-images-without-dockerfiles/</guid>
      <description>Last month I have been developing a Rust tool to create container images from Conda environments, without going through Docker. It was a wild trip down the rabbit hole of OCI images, so I thought I&amp;rsquo;d share part of the adventure here. Enjoy!&#xA;But why? If you are used to building container images, you might be asking yourself why on earth someone would want to deviate from the well-trodden path of Dockerfiles.</description>
    </item>
    <item>
      <title>Chunking strings in Elixir: how difficult can it be?</title>
      <link>https://ochagavia.nl/blog/chunking-strings-in-elixir-how-difficult-can-it-be/</link>
      <pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/chunking-strings-in-elixir-how-difficult-can-it-be/</guid>
      <description>This week I finished my contract for Seamly1, where I spent 7 months developing a SaaS messaging platform for customer service in Elixir. The project was incredibly interesting, so in our last conversation I asked if they would mind me sharing a &amp;ldquo;war story&amp;rdquo; with the world. They gladly agreed, so here goes an account of my dealings with unicode, performance tuning and Rust-based NIFs. Enjoy!&#xA;1 - The problem From a pure technical point of view, we needed a way to split strings in chunks up to a maximum length in a user-friendly way.</description>
    </item>
    <item>
      <title>Implementing the MySQL server protocol for fun and profit</title>
      <link>https://ochagavia.nl/blog/implementing-the-mysql-server-protocol-for-fun-and-profit/</link>
      <pubDate>Tue, 20 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/implementing-the-mysql-server-protocol-for-fun-and-profit/</guid>
      <description>In December 2021, a company from San Francisco asked me to port a Rust library to Java. The task seemed simple, but it ended up requiring a from-scratch implementation of the MySQL protocol and even fixing a bug in the main Rust MySQL client! Below follows an account of the adventure.&#xA;The task Originally, the idea was to port the msql-srv library from Rust to Java. For context, msql-srv makes it possible to create a fake MySQL/MariaDB server, which accepts MySQL connections and handles them with custom logic (instead of having a real database behind it).</description>
    </item>
    <item>
      <title>How I got involved in the Rust community</title>
      <link>https://ochagavia.nl/blog/how-i-got-involved-in-the-rust-community/</link>
      <pubDate>Fri, 09 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/how-i-got-involved-in-the-rust-community/</guid>
      <description>In 2013 I started my Computer Science degree at Utrecht University (The Netherlands). Due to my previous experience with programming, and because I was genuinely interested in the course subjects, I aced my first year and even had time to investigate additional topics I found interesting. When my friend Jouke Waleson told me about the existence of Hacker News, I quickly became a daily visitor, as it seemed to me like an endless source of programming knowledge.</description>
    </item>
    <item>
      <title>Rocket - A Rust game running on WASM</title>
      <link>https://ochagavia.nl/blog/rocket-a-rust-game-running-on-wasm/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://ochagavia.nl/blog/rocket-a-rust-game-running-on-wasm/</guid>
      <description>Two weeks ago, Alex Crichton&amp;rsquo;s PR adding a target for WebAssembly to the Rust compiler was merged. There are many differences between this target and the Emscripten one, but the important one for me is that it doesn&amp;rsquo;t depend on external stuff like the Emscripten SDK (which IIRC used to be a pain to get working on Windows, but seems to be better now).&#xA;After seeing the examples on hellorust.com, I thought it would be interesting to try to adapt my game Rocket to work on the browser through the wasm32-unknown-unknown target.</description>
    </item>
  </channel>
</rss>
