HN user

wofo

2,311 karma

Contact me at: [my username] [at] adolfo [dot] ochagavia [dot] nl (or check out ochagavia.nl)

Posts125
Comments212
View on HN
storage.courtlistener.com 19d ago

Court filing: Adafruit seeks declaratory judgment against Flux [pdf]

wofo
3pts0
rustfoundation.org 1mo ago

OpenAI joins the Rust foundation as a Platinum member

wofo
3pts0
prog21.dadgum.com 1mo ago

Organizational Skills Beat Algorithmic Wizardry (2013)

wofo
3pts0
www.nasa.gov 1mo ago

Moon Base

wofo
4pts0
ochagavia.nl 1mo ago

Fully in-browser container builds

wofo
58pts27
sfconservancy.org 2mo ago

Comprehensive Response to Bambu's AGPLv3 Violations

wofo
7pts1
lucumr.pocoo.org 2mo ago

Pushing Local Models with Focus and Polish

wofo
7pts1
ochagavia.nl 3mo ago

A real-world case of property-based verification

wofo
1pts0
ochagavia.nl 4mo ago

From WSL to bare-metal Linux

wofo
2pts0
ashwinsundar.com 4mo ago

Do the Illegible

wofo
3pts0
lukeplant.me.uk 7mo ago

Help my website is too small

wofo
5pts2
ochagavia.nl 8mo ago

Towards Interplanetary QUIC Traffic

wofo
106pts26
jstrieb.github.io 8mo ago

How to Talk to Grandma About AI

wofo
2pts1
jsonquerylang.org 8mo ago

Show HN: JSON Query

wofo
154pts70
blog.kagi.com 9mo ago

Kagi Specials

wofo
88pts11
domm.plix.at 9mo ago

I brain coded a static image gallery in a few hours: snig.pl

wofo
1pts1
www.softwaremaxims.com 1y ago

I am not a supplier (2022)

wofo
31pts27
brooker.co.za 1y ago

Tail Latency Might Matter More Than You Think (2021)

wofo
3pts0
quic.video 1y ago

Application First – Media over QUIC

wofo
15pts2
haveibeentrained.com 1y ago

Have I Been Trained?

wofo
4pts0
mfkl.github.io 1y ago

The psychology and dynamics of OSS: passion, burnout and (im)balance (2020)

wofo
1pts0
ochagavia.nl 1y ago

What the heck is AEAD again?

wofo
52pts64
www.sidn.nl 1y ago

CGNAT frustrates all IP address-based technologies (2019)

wofo
54pts61
kamal-deploy.org 1y ago

Kamal – Deploy web apps anywhere

wofo
3pts0
davidlattimore.github.io 1y ago

Testing a Linker

wofo
2pts0
ochagavia.nl 1y ago

The JIT Calculator Challenge

wofo
2pts0
arendjr.nl 1y ago

Post-Architecture: An Open Approach to Software Engineering

wofo
2pts0
en.wikipedia.org 1y ago

Eise Eisinga Planetarium

wofo
2pts0
www.meetecho.com 1y ago

Getting Media Over QUIC and WebRTC to like each other

wofo
1pts0
tldr.fail 1y ago

Tldr.fail

wofo
1pts0
Astro 7.0 15 days ago

Rust is so powerful it rewrites your code to assembly on-demand every time you compile ;)

Controlling both the builder and the registry is super nice btw, because they can work together. If the builder knows some of the layers already exist in the registry, it merely has to create and push the remaining ones (without downloading any of the other layers, not even those from the base image). That gives you near-instant builds once the biggest layers are cached in the registry!

Since builds usually happen in CI, and pulls happen elsewhere (e.g., a kubernetes node), in the end layers are only downloaded when the resulting container image is actually used.

I can't comment on BuildKit, unfortunately, since I haven't used it. My experience comes from building bespoke systems (an image builder and a custom registry) fully from scratch, because we needed to have full control in order to achieve the performance we were aiming at.

The idea is that, in many cases, you can create a layer "by hand" without running actual Linux programs. Layers don't need to be pre-existing, the only requirement is that they can be built programmatically (inside the browser, in this case). The demo actually does that: it "manually" creates a layer from the user-specified entrypoint script, then creates an image from the pre-existing base image's layers and the new entrypoint layer.

In a more real scenario, you can e.g., turn pip wheels into layers without actually using docker's RUN command. All it takes is to massage the data from one archive format into another, programmatically. This unlocks lots of potential (e.g., it becomes embarrassingly parallel to build a container image comprised of pip wheels). Combine that with a good layer caching strategy and a registry that takes advantage of it, and you can have near-instant container builds for arbitrary sets of pip dependencies.

I sometimes wonder why there aren't more bespoke container tools (like yours). Would people be willing to pay for stuff like what you have built, if someone took the time to "productionize" it? Or is there no market?

There are many ways to achieve this. If you are just copying artifacts, and not using RUN, then there is in principle no need to download the base image at all. Feel free to message me if you'd like to chat (email is in my profile).

Out of curiosity, is there a build setup you have seen in the past that you think could be a good replacement for this complex GitHub CI setup? Asking for a friend ;)

Update: now I've finished reading the article, my impression is that complexity is mostly inherent to this problem space. I'd be glad to be proven wrong, though!

Thanks for posting this! As a long-time Rust user (and contributor, in the good old days), the thing that has always fascinated me about Rust is the healthy balance it strikes between academic brilliance and industry pragmatism. Radical changes like the ones suggested by the OP risk damaging that balance IMO. I'd rather put up with some language quirks and see Rust achieve "boring technology" status...

But who knows, maybe the "academic brilliance" from the article is more pragmatic than I give it credit for. I sure hope for it if these changes ever go through.

Fix your tools 5 months ago

That's what I actually used to fix this one! I'm not too deep into the JVM ecosystem, so I gave Claude a try just in case... and it fixed it :)

Btw I didn't mention it in the blog post, because I think that would have derailed the conversation (after all, the point of the article is not "use LLMs", but "fix your tools"). In any case, I agree that LLMs can make it easier to fix the tools without getting side-tracked.

Fix your tools 5 months ago

Calling Kotlin from Rust (and other languages) is useful when you want access to an existing Kotlin codebase and would rather avoid creating a full-blown port. I guess most people don't do things like this because creating bindings for languages that are not C (or C-like) is usually cumbersome. Krossover is trying to fill that gap for Kotlin. Does that make sense?

Thanks for taking the time! I love being able to see through abstractions too, but for web applications I'm looking for a bit more "magic" (e.g., .NET's EF Core is the gold standard for what I'd look for in an ORM).

It's been a while since I last had a detailed look at web applications in Rust (i.e., stuff with databases, auth, etc). You could use axum for the web server, which is very mature, but I'd say it's too low-level (IIRC you cannot even generate an OpenAPI spec of your endpoints, which IMO is table-stakes). Have you found something more batteries-included, with a similar level of maturity, and actively maintained by a community you can trust? It's a very high bar.

Your reply made me curious about ORMs, btw. Which one would you recommend? Maybe things have improved since I last checked. Last time I didn't like any of them and ended up settling on `sqlx` + hand-written SQL (the code is open source, hosted at https://github.com/rustls/rustls-bench-app/tree/main/ci-benc...).

I'm a heavy Rust user and fan, but I'd never pick Rust for web. There are way more mature ecosystems out there to choose from. Why would you waste "innovation tokens" in a Rust-based web application?

HackMyClaw 5 months ago

Spelling mistake, I'd guess? The spanish word for it is inyección.

Unison 1.0 8 months ago

I for one am glad there is a commercial angle to the project. Done right, it means more hours could go into making things better, in a sustainable way. Also, having paying users provides a strong incentive to keep the technology grounded / practical.

Without the commercial stuff, Unison would be just another esolang to me. Now I'm probably going to play with it in upcoming side projects.