Hacker News

Latest

Workers at Redmond SpaceX lab exposed to toxic chemicals

2026-01-11 @ 03:15:14Points: 51Comments: 4

Show HN: VAM Seek – 2D video navigation grid, 15KB, zero server load

2026-01-11 @ 02:57:34Points: 11Comments: 0

VAM Seek renders a 2D thumbnail grid next to your video. Click any cell to jump. All frame extraction happens client-side via canvas – no server processing, no pre-generated thumbnails.

- 15KB, zero dependencies - One-line integration - Works with any <video> element

Live demo: https://haasiy.main.jp/vam_web/deploy/lolipop/index.html

Would love feedback!

A Year of Work on the Arch Linux Package Management (ALPM) Project

2026-01-11 @ 02:08:14Points: 24Comments: 0

Sisyphus Now Lives in Oh My Claude

2026-01-11 @ 02:00:45Points: 14Comments: 10

Show HN: Ferrite – Markdown editor in Rust with native Mermaid diagram rendering

2026-01-11 @ 01:50:01Points: 88Comments: 30

Built a Markdown editor using Rust + egui. v0.2.1 just dropped with major Mermaid improvements:

→ Native Mermaid diagrams - Flowcharts, sequence, state, ER, git graphs - pure Rust, no JS

→ Split view - Raw + rendered side-by-side with sync scrolling

→ Syntax highlighting - 40+ languages with large file optimization

→ JSON/YAML/TOML tree viewer - Structured editing with expand/collapse

→ Git integration - File tree shows modified/staged/untracked status

Also: minimap, zen mode, auto-save, session restore, code folding indicators.

~15MB binary, instant startup. Windows/Linux/macOS.

GitHub: https://github.com/OlaProeis/Ferrite

v0.2.2 coming soon with performance improvements for large files. Looking for feedback!

Kodbox: Open-source cloud desktop with multi-storage fusion and web IDE

2026-01-11 @ 01:12:51Points: 11Comments: 0

Bob Weir has died

2026-01-11 @ 01:04:58Points: 103Comments: 18

Show HN: Librario, a book metadata API that aggregates G Books, ISBNDB, and more

2026-01-10 @ 23:45:25Points: 83Comments: 27

TLDR: Librario is a book metadata API that aggregates data from Google Books, ISBNDB, and Hardcover into a single response, solving the problem of no single source having complete book information. It's currently pre-alpha, AGPL-licensed, and available to try now[0].

My wife and I have a personal library with around 1,800 books. I started working on a library management tool for us, but I quickly realized I needed a source of data for book information, and none of the solutions available provided all the data I needed. One might provide the series, the other might provide genres, and another might provide a good cover, but none provided everything.

So I started working on Librario, a book metadata aggregation API written in Go. It fetches information about books from multiple sources (Google Books, ISBNDB, Hardcover. Working on Goodreads and Anna's Archive next.), merges everything, and saves it all to a PostgreSQL database for future lookups. The idea is that the database gets stronger over time as more books are queried.

You can see an example response here[1], or try it yourself:

  curl -s -H 'Authorization: Bearer librario_ARbmrp1fjBpDywzhvrQcByA4sZ9pn7D5HEk0kmS34eqRcaujyt0enCZ' \
  'https://api.librario.dev/v1/book/9781328879943' | jq .
  
This is pre-alpha and runs on a small VPS, so keep that in mind. I never hit the limits in the third-party services, so depending on how this post goes, I’ll or will not find out if the code handles that well.

The merger is the heart of the service, and figuring out how to combine conflicting data from different sources was the hardest part. In the end I decided to use field-specific strategies which are quite naive, but work for now.

Each extractor has a priority, and results are sorted by that priority before merging. But priority alone isn't enough, so different fields need different treatment.

For example:

- Titles use a scoring system. I penalize titles containing parentheses or brackets because sources sometimes shove subtitles into the main title field. Overly long titles (80+ chars) also get penalized since they often contain edition information or other metadata that belongs elsewhere.

- Covers collect all candidate URLs, then a separate fetcher downloads and scores them by dimensions and quality. The best one gets stored locally and served from the server.

For most other fields (publisher, language, page count), I just take the first non-empty value by priority. Simple, but it works.

Recently added a caching layer[2] which sped things up nicely. I considered migrating from net/http to fiber at some point[3], but decided against it. Going outside the standard library felt wrong, and the migration didn't provide much in the end.

The database layer is being rewritten before v1.0[4]. I'll be honest: the original schema was written by AI, and while I tried to guide it in the right direction with SQLC[5] and good documentation, database design isn't my strong suit and I couldn't confidently vouch for the code. Rather than ship something I don't fully understand, I hired the developers from SourceHut[6] to rewrite it properly.

I've got a 5-month-old and we're still adjusting to their schedule, so development is slow. I've mentioned this project in a few HN threads before[7], so I’m pretty happy to finally have something people can try.

Code is AGPL and on SourceHut[8].

Feedback and patches[9] are very welcome :)

[0]: https://sr.ht/~pagina394/librario/

[1]: https://paste.sr.ht/~jamesponddotco/a6c3b1130133f384cffd25b3...

[2]: https://todo.sr.ht/~pagina394/librario/16

[3]: https://todo.sr.ht/~pagina394/librario/13

[4]: https://todo.sr.ht/~pagina394/librario/14

[5]: https://sqlc.dev

[6]: https://sourcehut.org/consultancy/

[7]: https://news.ycombinator.com/item?id=45419234

[8]: https://sr.ht/~pagina394/librario/

[9]: https://git.sr.ht/~pagina394/librario/tree/trunk/item/CONTRI...

Private equity firms acquired more than 500 autism centers in past decade: study

2026-01-10 @ 23:36:16Points: 245Comments: 163

Extracting books from production language models (2026)

2026-01-10 @ 20:50:29Points: 45Comments: 11

Overdose deaths are falling in America because of a 'supply shock': study

2026-01-10 @ 19:54:49Points: 100Comments: 72

Code Is Clay

2026-01-10 @ 19:43:57Points: 49Comments: 24

Show HN: Play poker with LLMs, or watch them play against each other

2026-01-10 @ 19:27:39Points: 93Comments: 46

I built this website which allows you to:

Spectate: Watch different models play against each other.

Play: Create your own table and play hands against the agents directly.

Finding and fixing Ghostty's largest memory leak

2026-01-10 @ 18:58:37Points: 342Comments: 68

Rats caught on camera hunting flying bats (2025)

2026-01-10 @ 18:44:46Points: 80Comments: 10

UpCodes (YC S17) is hiring PMs, SWEs to automate construction compliance

2026-01-10 @ 17:01:49Points: 1

Show HN: I used Claude Code to discover connections between 100 books

2026-01-10 @ 16:56:55Points: 276Comments: 82

I built a system for Claude Code to browse 100 non-fiction books and find interesting connections between them.

I started out with a pipeline in stages, chaining together LLM calls to build up a context of the library. I was mainly getting back the insight that I was baking into the prompts, and the results weren't particularly surprising.

On a whim, I gave CC access to my debug CLI tools and found that it wiped the floor with that approach. It gave actually interesting results and required very little orchestration in comparison.

One of my favourite trail of excerpts goes from Jobs’ reality distortion field to Theranos’ fake demos, to Thiel on startup cults, to Hoffer on mass movement charlatans (https://trails.pieterma.es/trail/useful-lies/). A fun tendency is that Claude kept getting distracted by topics of secrecy, conspiracy, and hidden systems - as if the task itself summoned a Foucault’s Pendulum mindset.

Details:

* The books are picked from HN’s favourites (which I collected before: https://hnbooks.pieterma.es/).

* Chunks are indexed by topic using Gemini Flash Lite. The whole library cost about £10.

* Topics are organised into a tree structure using recursive Leiden partitioning and LLM labels. This gives a high-level sense of the themes.

* There are several ways to browse. The most useful are embedding similarity, topic tree siblings, and topics cooccurring within a chunk window.

* Everything is stored in SQLite and manipulated using a set of CLI tools.

I wrote more about the process here: https://pieterma.es/syntopic-reading-claude/

I’m curious if this way of reading resonates for anyone else - LLM-mediated or not.

AI is a business model stress test

2026-01-10 @ 16:56:34Points: 211Comments: 227

Open Chaos: A self-evolving open-source project

2026-01-10 @ 16:03:55Points: 347Comments: 71

I replaced Windows with Linux and everything's going great

2026-01-10 @ 15:26:26Points: 607Comments: 520

Eulogy for Dark Sky, a data visualization masterpiece (2023)

2026-01-10 @ 12:23:20Points: 404Comments: 163

Org Mode Syntax Is One of the Most Reasonable Markup Languages for Text (2017)

2026-01-10 @ 09:15:30Points: 261Comments: 179

Datadog, thank you for blocking us

2026-01-09 @ 19:44:18Points: 51Comments: 27

Code and Let Live

2026-01-09 @ 19:11:59Points: 270Comments: 97

ChatGPT Health is a marketplace, guess who is the product?

2026-01-08 @ 14:40:20Points: 256Comments: 249

ASCII-Driven Development

2026-01-08 @ 08:18:17Points: 106Comments: 71

CPU Counters on Apple Silicon: article + tool

2026-01-07 @ 11:39:33Points: 25Comments: 0

An Experimental Approach to Printf in HLSL

2026-01-07 @ 09:53:03Points: 5Comments: 0

Brands upset Buy For Me is featuring their products on Amazon without permission

2026-01-07 @ 02:32:10Points: 66Comments: 28

Show HN: mcpc – Universal command-line client for Model Context Protocol (MCP)

2026-01-06 @ 15:05:09Points: 28Comments: 3

Archives

2026

2025

2024

2023

2022