Thursday, July 16, 2026

Show HN: Tree, truth, druid, dryad, and tar share one Proto-Indo-European root https://ift.tt/GFOh9v0

Show HN: Tree, truth, druid, dryad, and tar share one Proto-Indo-European root https://ift.tt/HcVF5hd July 16, 2026 at 11:11PM

Wednesday, July 15, 2026

Show HN: SirixDB 1.0 Beta – Git-Like Versioning, Diffs, Time-Travel Queries https://ift.tt/QtL03yg

Show HN: SirixDB 1.0 Beta – Git-Like Versioning, Diffs, Time-Travel Queries Hi HN! I've posted SirixDB here before, back in 2019 ( https://ift.tt/zC9iYH5 ) and again in 2023 ( https://ift.tt/ZDBYbMh ). The core idea behind SirixDB is, that history is a first-class citizen. Every commit stores a lightweight, queryable revision. You can query any point in time, even individual nodes (for instance JSON values), diff arbitrary revisions, and efficiently track how data evolved without replaying events. Unlike traditional event stores, historical states do not need to be reconstructed by replaying events nor do we have to think about projections. Revisions are directly queryable. A simple example: Jan 1: Record "Price = $100, valid from Jan 1". Stored on Jan 1 (transaction time). Jan 20: Discover price was actually $95 on Jan 1. Commit correction. After correction, you can ask across both axes: - "What did we THINK the price was on Jan 16?" -> $100 (Transaction time) - "What WAS the price on Jan 1?" -> $95 (Valid time) I've worked on this in my spare time since 2013, following its academic precursor (Idefix/Treetank) at the University of Konstanz. The architecture relies on an append-only physical log and a persistent copy-on-write page trie. A high level view of the architecture: Physical Log (append-only, sequential writes) ┌────────────────────────────────────────────────────────────────────────┐ │ [R1:Root] [R1:P1] [R1:P2] [R2:Root] [R2:P1'] [R3:Root] [R3:P2'] ... │ └────────────────────────────────────────────────────────────────────────┘ t=0 t=1 t=2 t=3 t=4 t=5 t=6 → time Each revision is indexed, and unchanged pages are shared: [Rev 1] [Rev 2] [Rev 3] │ │ │ ▼ ▼ ▼ [Root₁] [Root₂] [Root₃] │ │ │ │ │ │ │ └─────────┐ │ └────────┐ │ └─────────┐ ▼ ▼ ▼ ▼ ▼ ▼ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ P1 │ │ P2 │ │ P1' │ │ P2' │ └──────┘ └──────┘ └──────┘ └──────┘ Rev 1 Rev 1+2 Rev 2+3 Rev 3 (shared) (shared) Beneath the root pages sit node and secondary indexes, using a novel sliding-snapshot algorithm to balance read/write performance. Everything is queryable using JSONiq via the Brackit compiler. Back in 2019, and even in 2023, SirixDB was very slow due to GC pressure. Unlike most other document stores, SirixDB stores fine-grained nodes, and I came to realize that an on-heap (JVM) representation made up of lots of small objects simply didn't make sense. I measured it with async-profiler — with some help from Andrei Pangin himself — and the result was that the poor throughput was due to the sheer amount of allocations which scaled almost linearly with the number of open transactions. Working a full-time software engineering job, I lacked the energy for a massive spare-time rewrite. About a year ago, I started experimenting with AI. It turned out to be ideal for automating the tedious, repetitive parts of migrating the storage layer to Java's Foreign Function & Memory API, storing pages completely off-heap. Looking further ahead, the append-only, immutable-page design maps naturally onto object storage like S3 and distributed logs like Kafka for a cloud version, and initial prototypes already exist. Maybe that becomes a commercial service one day, but for now, I'm just thrilled to see these core design principles finally proven out.There's an interactive demo, documentation, and the code is on GitHub. I'd love feedback and am happy to answer questions! kind regards Johannes [1] https://sirix.io | https://ift.tt/oSpkYFK [2] https://ift.tt/mkRXVPH [3] https://demo.sirix.io [4] https://sirix.io/docs/ [5] http://brackit.io https://ift.tt/oSpkYFK July 15, 2026 at 09:16PM

Show HN: Make senders work to get into your inbox https://ift.tt/JPmu5lj

Show HN: Make senders work to get into your inbox Hi HN :) really excited to share this with you. The one thing AI reliably does is generate noise. Half the tools I see launch are just machines for producing more noise across more channels. And people are starting to see this in the form of emails in their inboxes as spam filters are struggling. There used to be a useful signal in email: the effort a sender put into customizing a message was a rough proxy for how relevant it actually was. AI killed that. Now it's customized slop with the appearance of effort with none of the cost. It is painful that the open internet / open channels have been abused like this. Captchainbox applies the idea of proof-of-work to email. If a sender is willing to do a bit of work to reach you, the message is more likely to be worth your time and the sender more likely to be real. The work is a traditional captcha. You can also set a pay-to-deliver amount if you want more friction. The proceeds of the delivery payment after transaction costs go to the Internet Archive and the EFF. The tool currently works by authing with your Gmail or Outlook and during launch time I make this completely free as a lifetime deal (with optional payment if you wanna support). How it works: Captchainbox builds a whitelist automatically from the metadata of your past correspondence. If you've emailed an individual address, that sender can reach you. If you talk to several people at the same domain, we whitelist the whole domain. If one transactional-looking sender has sent you more than 10 emails, we treat it as a transactional domain and let it through. This whitelist is for you to change whenever you want. It continues to build organically as you converse with more addresses. Incoming mail is checked against that whitelist. Senders already on it land in your inbox as normal. Anyone else gets archived (never deleted) and is sent a challenge. This can be the captcha or the payment link. Once they solve it, their email is pulled out of the archive and put back into your inbox. if you want to see what this looks like from a sender's point of view, send me an email here: doerpfelix15@gmail.com The service only ever reads metadata, never message content. And since nothing is ever deleted, you can't lose a message. There is a legitimate risk / downside: if you sign up to a new service, these emails also land in the archive. Since we do not process the content, a first-time sender who can't solve the challenge (say an automated activation email) will sit in your archive until you spot it. Happy to answer anything! :) https://ift.tt/H8LMXhy July 15, 2026 at 05:28PM

Tuesday, July 14, 2026

Show HN: Beautiful Type Erasure with C++26 Reflection https://ift.tt/ATvd1Bg

Show HN: Beautiful Type Erasure with C++26 Reflection Try it on Compiler Explorer: https://ift.tt/GwqjAO1 Check out the source code: https://ift.tt/1XYixrZ https://ryanjk5.github.io/posts/rjk-duck/ July 14, 2026 at 06:10PM

Show HN: A device for never missing the surf turned into something more https://ift.tt/l5RZmbd

Show HN: A device for never missing the surf turned into something more https://ift.tt/6Zxp82S July 15, 2026 at 12:42AM

show hn: 1d data to 3D topology, AI deepfakes to protien folding https://ift.tt/3eyuTk2

show hn: 1d data to 3D topology, AI deepfakes to protien folding https://ift.tt/lsnkdgN July 14, 2026 at 10:59PM

Monday, July 13, 2026

Show HN: Tree, truth, druid, dryad, and tar share one Proto-Indo-European root https://ift.tt/GFOh9v0

Show HN: Tree, truth, druid, dryad, and tar share one Proto-Indo-European root https://ift.tt/HcVF5hd July 16, 2026 at 11:11PM