The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: machine0 – Persistent NixOS VMs You Control from the CLI

Hi HN! Excited to launch machine0, a CLI that makes it easy to create, provision and snapshot persistent NixOS (& Ubuntu) VMs.<p>You can think of machine0 as a modern VPS provider. VMs stay on unless switched-off (with 99.99% uptime), they have static IPs and HTTPS endpoints, 1-60 vCPU, up to 240GB RAM and optionally GPUs. The CLI provides commands to manage lifecycle, snapshots and also provision the VMs using Nix flakes or Ansible playbooks. VMs are priced by the minute of usage.<p>What makes machine0 unique is that it has first class support for NixOS! In a nutshell, NixOS lets you define your entire OS as code (think Terraform but for your Linux). A flake declares your system state (packages, services, firewall rules, users...) and pins all dependencies via a lockfile. Given the same flake.nix and flake.lock, `nixos-rebuild switch` always produces the exact same system.<p>The NixOS ecosystem is mature, and flakes are expressive: at the system level you can define packages, what's in /etc, firewall rules, users & groups etc. At the user level, you can define your shell, aliases, tmux and vim config. Having your entire environment defined as code makes it easy to audit what's installed and how things are set up. You can rollback by reverting the last commit. And agents can write the code for you and test it against disposable machine0 VMs.<p>If you'd like to dive right in, these commands will get you started:<p><pre><code> npm install -g @machine0/cli machine0 new my-vm --image nixos-25-11 # create a new nixos VM machine0 provision my-vm ./flake#my-profile # provision it using a nix flake machine0 ssh my-vm # ssh in machine0 stop my-vm # stop the VM machine0 images new my-vm my-snapshot # create a snapshot machine0 new my-clone --image my-snapshot # create a new VM from the snapshot </code></pre> - Demo of installation + NixOS provisioning via Claude Code: <a href="https://www.youtube.com/watch?v=RT8N0_e3Vfg" rel="nofollow">https://www.youtube.com/watch?v=RT8N0_e3Vfg</a><p>- Documentation: <a href="https://docs.machine0.io/introduction/overview">https://docs.machine0.io/introduction/overview</a><p>- machine0 NixOS flakes: <a href="https://github.com/fdmtl/machine0-nixos" rel="nofollow">https://github.com/fdmtl/machine0-nixos</a><p>If you're in the habit of using VMs, or want to know what the NixOS fuss is about, would love for you to give machine0 a try!

Show HN: Fata – Spaced repetition to fight skill rot from AI coding

Hi HN, I'm Djoumé. I've been a developer for over 20 years, and like a lot of you I've been coding almost exclusively through an agent in the past few months.<p>It's been amazing to vibe code prototypes in any stack, but when it comes to building something reliable/scalable, I couldn't effectively guide the agent unless I knew the technology. And the scariest part is that I'm seeing a lot of my technical skills decreasing due to AI coding.<p>Reflecting on my journey, I also worry about how the new "AI native" generation of software developer is going to acquire technical depth.<p>So I built fata.dev: short daily spaced-repetition sessions for programming skills (Rust, CSS, React, Python, TypeScript, Architecture).<p>You can try it in the browser with no signup: <a href="https://fata.app/courses" rel="nofollow">https://fata.app/courses</a><p>It's an offline-first mobile app built with Capacitor, RxDB and Firebase. The first courses were painfully written by hand, but most content is now AI-generated. It takes about 3000 LLM calls to generate a course, and every code samples goes through compilation, linting, unit testing, AI and a final manual review.<p>Would very much appreciate any feedback on the product & website, what works and what could be better. Thanks!

Show HN: Discover Wikipedia articles popular on Hacker News

Show HN: I wrote a C++ ray tracer from scratch without AI

Can Europe train a frontier AI model on the compute it owns?

Show HN: Dual YOLOv8n UAV Detection on RK3588S at 42 FPS Using NPU

Show HN: 3D print Z reinforcement via injected loops

Commodity FDM print strength is limited by poor Z-axis layer bonding. Parts crack along Z under stress. MAGMA tries to fix this in software that works on any FDM 3D printer.<p>It's a fork of OrcaSlicer with a new infill type that creates paired U-shaped vertical channels inside the print, plus G-code that injects molten plastic into those channels to bridge Z layer interfaces with continuous plastic.<p>Big caveat: I have a junky Ender 3 and haven't gotten a clean physical print yet. Don't expect this to work out of the box! After months of tinkering, I'm releasing the software so the 3DP community can experiment with nozzles, multi-material, weird hardware, and other print parameters I can't. There's around 40 MAGMA-specific settings to fiddle with, plus some general quality-of-life features (e.g. printing thin infill sections as solid, and a "dual infill shell" feature that applies MAGMA only to the outer shell to save print time).<p>THIS CODE IS ALPHA. Around 50 prints old. The injection G-code is novel. Some printer firmware won't like extruding without movement. In extreme cases it could damage your printer or start a fire. DON'T WALK AWAY WHILE PRINTING.<p>Why MAGMA? "Lava tubes" is a misnomer. Molten rock is magma underground, lava only after it surfaces. The injected tubes are buried inside the print, so "magma tubes" is the correct term.

Show HN: 3D print Z reinforcement via injected loops

Commodity FDM print strength is limited by poor Z-axis layer bonding. Parts crack along Z under stress. MAGMA tries to fix this in software that works on any FDM 3D printer.<p>It's a fork of OrcaSlicer with a new infill type that creates paired U-shaped vertical channels inside the print, plus G-code that injects molten plastic into those channels to bridge Z layer interfaces with continuous plastic.<p>Big caveat: I have a junky Ender 3 and haven't gotten a clean physical print yet. Don't expect this to work out of the box! After months of tinkering, I'm releasing the software so the 3DP community can experiment with nozzles, multi-material, weird hardware, and other print parameters I can't. There's around 40 MAGMA-specific settings to fiddle with, plus some general quality-of-life features (e.g. printing thin infill sections as solid, and a "dual infill shell" feature that applies MAGMA only to the outer shell to save print time).<p>THIS CODE IS ALPHA. Around 50 prints old. The injection G-code is novel. Some printer firmware won't like extruding without movement. In extreme cases it could damage your printer or start a fire. DON'T WALK AWAY WHILE PRINTING.<p>Why MAGMA? "Lava tubes" is a misnomer. Molten rock is magma underground, lava only after it surfaces. The injected tubes are buried inside the print, so "magma tubes" is the correct term.

Show HN: Trace – Offline Mac meeting transcripts you can flag mid-call

I'm the developer of Trace, a non-intrusive, shortcut-driven Mac app that records and transcribes your meetings on-device. I know, another meeting transcription app. Please bear with me though, I'm confident that this is at least a little novel.<p>I primarily built Trace for myself. I'd been using MacWhisper, but there was enough fiddling before each call that I'd forget to start it and walk out of an hour-long meeting with nothing written down. So the things I cared about most were that it's quick to activate and stays out of the way. You activate Trace by pressing a global shortcut (configurable), which reveals a small bar at the bottom of your screen (there's also a keystroke and/or option to hide it entirely if you'd rather not see it at all).<p>As I was building it I wanted to bake in a couple of workflows I'd wished for in other transcription apps.<p>1. Mid-meeting you can press another global shortcut to mark a "key moment" and type a note. The note shows up in the resulting transcript inline at that timestamp. I wanted to add this because I kept catching myself thinking "wait, that bit matters" in meetings and reaching to jot it down in a separate app like Obsidian, which I then needed to add context to, which took me out of the meeting. I use it all the time. If I paste the transcript into an LLM afterwards (which I find myself doing more and more these days) the important moments are flagged so it doesn't gloss over them. This is more noticeable in longer meetings with lots of topics. 2. With another keyboard shortcut you can summon a rough live recap (subtitles, basically) to quickly recap what's just been said.<p>Trace uses standard macOS microphone and system recording APIs to capture both sides of the conversation as two separate tracks and then runs the system side through on-device diarization to identify speakers. Right now we only label them as "Speaker 1", "Speaker 2", etc but there are plans for speaker labelling in the future. You can also show a "live recap" as the call is happening to review what someone just said.<p>All transcription models run on your machine. To be clear though, Trace doesn't do any of the summarising itself, it just produces a markdown transcript, so if you want summaries then you need to pass the output to an AI.<p>The app is sandboxed and your audio/transcripts are never uploaded anywhere - they just exist as audio files and markdown on disk. The only network call Trace is required to make is on the first run to download the speech and speaker models (around 500MB) from Hugging Face, and after that it can be used fully offline. If enabled, a Google Calendar integration can auto-name sessions but that needs a network connection.<p>The app is £9.99 on the macOS App Store. I've been using it every day for months now and I'm super happy with how it's improved my workflow. Feedback very welcome.

Show HN: Trace – Offline Mac meeting transcripts you can flag mid-call

I'm the developer of Trace, a non-intrusive, shortcut-driven Mac app that records and transcribes your meetings on-device. I know, another meeting transcription app. Please bear with me though, I'm confident that this is at least a little novel.<p>I primarily built Trace for myself. I'd been using MacWhisper, but there was enough fiddling before each call that I'd forget to start it and walk out of an hour-long meeting with nothing written down. So the things I cared about most were that it's quick to activate and stays out of the way. You activate Trace by pressing a global shortcut (configurable), which reveals a small bar at the bottom of your screen (there's also a keystroke and/or option to hide it entirely if you'd rather not see it at all).<p>As I was building it I wanted to bake in a couple of workflows I'd wished for in other transcription apps.<p>1. Mid-meeting you can press another global shortcut to mark a "key moment" and type a note. The note shows up in the resulting transcript inline at that timestamp. I wanted to add this because I kept catching myself thinking "wait, that bit matters" in meetings and reaching to jot it down in a separate app like Obsidian, which I then needed to add context to, which took me out of the meeting. I use it all the time. If I paste the transcript into an LLM afterwards (which I find myself doing more and more these days) the important moments are flagged so it doesn't gloss over them. This is more noticeable in longer meetings with lots of topics. 2. With another keyboard shortcut you can summon a rough live recap (subtitles, basically) to quickly recap what's just been said.<p>Trace uses standard macOS microphone and system recording APIs to capture both sides of the conversation as two separate tracks and then runs the system side through on-device diarization to identify speakers. Right now we only label them as "Speaker 1", "Speaker 2", etc but there are plans for speaker labelling in the future. You can also show a "live recap" as the call is happening to review what someone just said.<p>All transcription models run on your machine. To be clear though, Trace doesn't do any of the summarising itself, it just produces a markdown transcript, so if you want summaries then you need to pass the output to an AI.<p>The app is sandboxed and your audio/transcripts are never uploaded anywhere - they just exist as audio files and markdown on disk. The only network call Trace is required to make is on the first run to download the speech and speaker models (around 500MB) from Hugging Face, and after that it can be used fully offline. If enabled, a Google Calendar integration can auto-name sessions but that needs a network connection.<p>The app is £9.99 on the macOS App Store. I've been using it every day for months now and I'm super happy with how it's improved my workflow. Feedback very welcome.

Show HN: Kage – Shadow any website to a single binary for offline viewing

Show HN: Kage – Shadow any website to a single binary for offline viewing

Show HN: Lightweight Task queue on Erlang/OTP, SQLite-backed, no overengineering

Setting up Kafka or such enterprise oriented software with their clusters or dedicated servers is heavy and bothering enough that most small teams or indie hackers skip it entirely and making compromise to use in-memory queues.<p>I wanted something in between: a persistent queue that is simple to run (one binary, which makes one sqlite db), gets real fault isolation and crash recovery due to Elixir, easy to inspect (open ezra.db in any SQLite browser and see every task), and requires no new client library - it speaks the Redis Streams wire protocol, so any Redis client in any language just works out of the box.<p>Very short demo video: [<a href="https://www.youtube.com/watch?v=MLYyD3DVWmE" rel="nofollow">https://www.youtube.com/watch?v=MLYyD3DVWmE</a>]

Show HN: Lightweight Task queue on Erlang/OTP, SQLite-backed, no overengineering

Setting up Kafka or such enterprise oriented software with their clusters or dedicated servers is heavy and bothering enough that most small teams or indie hackers skip it entirely and making compromise to use in-memory queues.<p>I wanted something in between: a persistent queue that is simple to run (one binary, which makes one sqlite db), gets real fault isolation and crash recovery due to Elixir, easy to inspect (open ezra.db in any SQLite browser and see every task), and requires no new client library - it speaks the Redis Streams wire protocol, so any Redis client in any language just works out of the box.<p>Very short demo video: [<a href="https://www.youtube.com/watch?v=MLYyD3DVWmE" rel="nofollow">https://www.youtube.com/watch?v=MLYyD3DVWmE</a>]

Show HN: 2 Weeks of Hallucinate – The Photo Gallery

Show HN: 2 Weeks of Hallucinate – The Photo Gallery

Show HN: Paca – Lightweight Jira alternative for human-AI collaboration

I built Paca out of pure passion—a free and lightweight Jira alternative written in Go where humans and AI agents work together as equal teammates to plan sprints and assign tasks to each other. It is fully customizable with custom views, fields, and a WASM-based plugin architecture. My team uses it daily for our own development, so it will be continuously maintained and completely free forever

Show HN: Paca – Lightweight Jira alternative for human-AI collaboration

I built Paca out of pure passion—a free and lightweight Jira alternative written in Go where humans and AI agents work together as equal teammates to plan sprints and assign tasks to each other. It is fully customizable with custom views, fields, and a WASM-based plugin architecture. My team uses it daily for our own development, so it will be continuously maintained and completely free forever

Show HN: Paca – Lightweight Jira alternative for human-AI collaboration

I built Paca out of pure passion—a free and lightweight Jira alternative written in Go where humans and AI agents work together as equal teammates to plan sprints and assign tasks to each other. It is fully customizable with custom views, fields, and a WASM-based plugin architecture. My team uses it daily for our own development, so it will be continuously maintained and completely free forever

Show HN: I am building a map of people who lived in the Roman Empire

Driving home from work one day, I wanted to know how many people we knew the names of who lived during the Roman era. Searching around, I found lists of Consuls and officials, but nothing that covered ordinary people or even most people like freedmen and slaves. So I ended up building a pipeline to process the more than 500k Latin inscriptions in the Epigraphic Database Clauss-Slaby <a href="https://edcs.hist.uzh.ch/en/" rel="nofollow">https://edcs.hist.uzh.ch/en/</a> and extract the names of people (and attempt to cluster them, but this is a work in progress).<p>There are databases where Classicists have done this manually for specific regions, Trismegistos <a href="https://www.trismegistos.org/" rel="nofollow">https://www.trismegistos.org/</a> and Latin Inscriptions of the Roman Empire (LIRE) <a href="https://pure.au.dk/portal/en/publications/latin-inscriptions-of-the-roman-empire-lire/" rel="nofollow">https://pure.au.dk/portal/en/publications/latin-inscriptions...</a> are two major efforts I found. But there doesn't seem to be a project that did what I set out to do, although I have read in some places that it was believed to be possible.<p>I am not a classicist or a web developer, but I have Claude and Gemini and I can sort of read basic Latin - so I set to work. I used LIRE and another database as ground truth and built a pipeline to extract and process the inscriptions to recover the names. The process I developed uses a high end LLM like Sonnet or Gemini Pro to supervise the extraction and tuning process on a regional basis until the obvious error rate is reasonable. For this, so far, reasonable to me means less than 1-2% in the smaller initial samples of 100-500 and no observed systemic issues. The different regions often need different prompts, so this basically became an exercise in letting the higher level AI tune the prompt for the lower level AI. The extraction when measured against LIRE produces an F1 score between 0.64 and 0.87, but take this with a grain of salt.<p>Once I had done a few regions, I wanted to see the work, so I threw together a pretty crude website but as I am not a web developer, it was crude in how it accessed its data. It does look cool and I also added summarization, and machine translation to each entry. I wanted to eventually get feedback from an actual team of classicists and make the website work better, so I am rewriting it as we speak but it is broadly functional now with a few extra bugs but substantially improved performance compared to the old one. All entries link back to the proper sources, and the old web app linked to several additional sources where the data was present, but I haven't gotten that working again just yet on the new one. (The old web interface is still available at <a href="https://roman-names.com" rel="nofollow">https://roman-names.com</a>, but I will warn you it is clunky and not mobile friendly at all)<p>Key findings so far:<p>AI supervised AI extraction saved me time. I was manually tuning things for a while and then the runbook became an idea that I feed my instructions in and let the big AI go with sparse oversight from me.<p>The extraction improved significantly (by about 10 F1 points) when I fed the model the raw text including the markers, vs a cleaned up version of the text.<p>I just thought it was a cool little project and wanted to share. If you happen to work in any adjacent space and there is something I could do better etc let me know.

1 2 3 ... 996 997 998 >