frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Ink at 60 Hz, and the Schematics Are on GitHub

https://www.gentlefuture.net/ink-at-60-hz-and-the-schematics-are-on-github/
1•initramfs•1m ago•0 comments

Trump signs executive order renaming Lake Ontario to 'Lake America'

https://abcnews.com/Politics/trump-signs-executive-order-renaming-lake-ontario-lake/story?id=1360...
1•neaden•1m ago•0 comments

Tattoo the Earth, one pixel at a time

https://earth.tattoo/
2•whatsupdog•2m ago•0 comments

Maker's Schedule, Manager's Schedule ( 2009)

https://www.paulgraham.com/makersschedule.html
1•ksec•3m ago•0 comments

AI's hacking capabilities are severely underestimated

https://www.ft.com/content/3f154376-fd8b-4255-ac5b-538c5e90fc40
1•sbulaev•4m ago•0 comments

Symmetries in Boolean Scan

https://ap29600.github.io/boolean_scans.html
1•g0xA52A2A•5m ago•0 comments

Previewing the Model Hardware Standard

https://www.anthropic.com/news/model-hardware-standard-research-preview
1•surprisetalk•6m ago•0 comments

Show HN: Music Visualizer|New MilkDrop engine and various types of reactive art

https://ikandy.app/
1•IKANDYAPP•7m ago•0 comments

Gemini-3.5-Transcribe

https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-5-transcribe/
1•k9294•7m ago•1 comments

Show HN: Voronoi Go

https://voronoigo.com/
1•igpay•7m ago•0 comments

Little Websites Everywhere

https://michellebarker.co.uk/writing/little-websites-everywhere/
1•speckx•12m ago•0 comments

Flare: Verifying MILP Reformulations with LLM-Based Theorem Proving

https://arxiv.org/abs/2608.25220
1•henryrobbins00•12m ago•0 comments

US Patriot missile stocks in Europe are 'beyond critical' due to Iran war

https://apnews.com/article/patriot-missiles-iran-war-russia-ukraine-trump-09c7d8030a2e11fbd8ee3f7...
5•hn_acker•17m ago•4 comments

We found a division by zero bug in FFmpeg with a vibecoded fuzzer

https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/24290
4•dclavijo•17m ago•1 comments

Literary Fiction Has Lost the Plot

https://devonhalliday.substack.com/p/literary-fiction-has-lost-the-plot
2•anarbadalov•17m ago•1 comments

Peter Cullen, Voice of Optimus Prime in 'Transformers,' Dies at 85

https://variety.com/2026/tv/news/peter-cullen-dead-voice-of-optimus-prime-eeyore-dies-85-1236845132/
3•donohoe•18m ago•0 comments

Show HN: Sparrow-2 – Solving the cocktail party problem

https://www.tavus.io/blog/sparrow-2
6•code_brian•18m ago•0 comments

B.C. swimmer crosses the Strait of Georgia in under nine hours

https://www.cbc.ca/radio/asithappens/b-c-swimmer-crosses-strait-of-georgia-under-nine-hours-9.731...
2•speckx•19m ago•0 comments

M5Stack Launches PaperMono

https://shop.m5stack.com/blogs/news/m5stack-launches-papermono-a-compact-e-ink-development-termin...
2•marksully•20m ago•0 comments

Trump's war on Iran is rapidly draining US Navy budget, documents reveal

https://www.theguardian.com/us-news/2026/aug/27/trump-iran-war-navy-budget
6•mindracer•20m ago•1 comments

Unix V4 Workshop at Low Resource Computing

https://github.com/thaliaarchi/unix-v4-demo/blob/main/README.md
2•pieterk•22m ago•0 comments

Investigation of agents in OpenAI / Hugging Face hacking incident

https://metr.org/blog/2026-08-26-openai-hugging-face-incident-investigation/
3•giardini•22m ago•0 comments

Flock Claims It's the First Company to Expose Police Misuse of Surveillance Tech

https://www.techdirt.com/2026/08/27/flock-claims-its-the-first-company-to-expose-police-misuse-of...
3•speckx•23m ago•0 comments

Show HN: Yet another minimal and lightweight terminal multiplexer written in Go.

https://github.com/patriceckhart/hrdx
8•patriceckhart•26m ago•0 comments

Maintaining an organizational knowledge graph with an LLM and event sourcing

https://blog.arkency.com/maintaining-an-organizational-knowledge-graph-with-an-llm-and-event-sour...
2•dotRex•27m ago•0 comments

How much of a problem is AI's water use?

https://arstechnica.com/ai/2026/08/how-much-of-a-problem-is-ais-water-use/
4•furcyd•28m ago•0 comments

The Sync Heap: delete first, ask questions later

https://arxiv.org/abs/2608.07134
2•fanf2•29m ago•0 comments

AROS, the FOSS Recreation of AmigaOS, Comes to Raspberry Pi

https://www.theregister.com/os-platforms/2026/08/27/aros-the-foss-recreation-of-amigaos-comes-to-...
2•rbanffy•29m ago•0 comments

Reverse Engineering My ADHD Test

https://nullpt.rs/reverse-engineering-adhd-test?
5•nullpt_rs•29m ago•0 comments

Durable Objects without Cloudflare, on the database you run

https://lucascarlson.net/2026/08/24/introducing-open-source-durable-objects/
2•speckx•30m ago•0 comments
Open in hackernews

Saving 100 terabytes of memory by optimizing 1.1.1.1's DNS cache

https://blog.cloudflare.com/dns-cache-memory-optimization-1111/
57•TangerineDream•53m ago

Comments

eviks•33m ago
> Once we store a DNS response in the cache, however, we never modify it again. The capacity field serves no purpose, but still costs 8 bytes per Vec

Were there no design discussions/reviews when the system was setup to catch trivial things like this?

micromacrofoot•32m ago
it was working so no one thought to check
mhitza•30m ago
Premature optimization argument fits right in. Now that memory is up to 10x more expensive it is worth considering optimizing programs with large memory footprint.
eviks•26m ago
How does that fit? What would be the evil of not wasting memory for many years at 1x?
jgrahamc•23m ago
One of the "evils" of premature optimization is how much time you spend on the optimization vs. the benefit you get from it. If your goal is correctness and shipping fast and you're not memory constrained then spending time using the least amount of memory is a waste of time specifically because you want to ship fast.

Another interesting thing that happens is you don't necessarily know what form your actual optimizations will need to take. Later when your systems grow you discover the suboptimal parts you hadn't optimized for.

Very early on at Cloudflare I worked on part of the DNS infrastructure that took DNS records from the UI and got them in a state for actual authoritative serving. The system had been constructed anticipating Cloudflare having millions of customers with unique domains, but it had not been constructed for a single customer with a single domain with millions of records. This caused a periodic slow down in DNS record updating while the system churned on that one customer.

In a different job I worked on a piece of optimization software that needed to keep track of "node" A is reachable from node "B". This had been implemented as a matrix (literally a malloced NxN matrix of ints storing 0 or 1) which worked really well for small systems. But you'd be out of memory really fast on a large project. I replaced the matrix with a hash table and all was good because the matrix was actually really sparse.

stickfigure•12m ago
Absolutely true, but I will say that LLMs have changed the equation somewhat.

With a rather short prompt, claude/codex will take your code, write a harness, profile it, build experiments, profile those, and give some pretty solid advice which one to pick. It's the kind of goal-directed, bite-sized job that LLMs excel at. Extremely low-commitment.

Except for the whole "making changes in production at scale" problem, of course.

gbear605•23m ago
Engineers are expensive, especially good system engineers who are trained in your code base. Very possible that this just hadn't gotten to the top of the priority list.
toast0•10m ago
Using obviously better data structures the first time isn't premature optimization.
mannyv•5m ago
There was a reason for that field, but that reason never panned out.
lbriner•29m ago
It is often not worth optimising in the early days. You don't know how popular it will become, you might not know how many DNS records you will hold, it was possibly written in an earlier language and ported as-is.

At the point someone queries the 100TB of RAM, then maybe it is worth revisiting but even that has risks. You have to design the migration path, have fallback mechanisms etc.

eviks•18m ago
It's also often that you can avoid all those future migration/fallback risks and pains if you invest a little bit of design thinking upfront.

So how would you decide which path to take in situations like this?

irdc•30m ago
This is why system programming still matters.

Looks like they're missing the obvious optimisation of putting the record data right after the CacheEntry members instead of allocating memory separately though. But that might just be me as a C-programmer talking and not be all that easy in Rust.

mkeeter•19m ago
For the curious, this is technically possible in Rust using a dynamically sized type [1], but in practice is difficult and doesn't really play nice with the rest of the language. The nomicon entry concludes with "Yes, custom DSTs are a largely half-baked feature for now." [2]

[1] https://doc.rust-lang.org/reference/dynamically-sized-types....

[2] https://doc.rust-lang.org/nomicon/exotic-sizes.html

cobalt•14m ago
less ergonomic, but still totally doable
strenholme•15m ago
With my own MaraDNS, I aggressively optimized the memory usage of blacklist entries by having a single really big malloc() to allocate the memory for the entries, then traversing that memory block for potentially blacklisted entries.

When I was using one malloc() per entry, a large blacklist took up 237 megabytes of memory. The same blacklist, once optimized to be loaded with a single malloc() call, only took up 9.5 megabytes of memory.

https://samboy.github.io/blog/entries/MaraDNS.html#BlogEntry...

OptionOfT•10m ago
> we store the records as a single Box<[u8]> containing each record encoded as a 2-byte length prefix followed by its raw bytes.

Interestingly this is exactly how netlink works-ish: https://manpages.ubuntu.com/manpages/focal/man3/netlink.3.ht...

You start, get the type & length, and then that is how many bytes you read.

Some issues with that when you deserialize, from a raw stream in to `[u8; 4096]` buffer, the alignment is only guaranteed to be on 1 byte, not 4 bytes.

In practice it is 4 bytes, but if you run those tests with Miri, you'll get yelled at. So the fix there is to declare the buffer with a type that mandates the alignment of the largest type that you're going to be deserializing.

So then you start your buffer as follows: `[u32; 1024]`, and with `slice::from_raw_parts` you get to turn that into `[u8; 4096]` with the expected alignment.

As an exercise I wrote a streaming parser for netlink, the current existing package serializes everything, all at once.

eviks•13m ago
I don't understand why you need training on your code base to design a cache format for read only vs rw workloads, but anyway yours is a comment about neglect, not the "evil" that would happen if you did that design
win311fwg•7m ago
> I don't understand why you need training on your code base to design a cache format

Because anyone willing to come in just to design your cache format is going to expect payment that is many multiples more than the engineers you already cannot afford? Long-term employees cost less, which brings them closer to being affordable, but you have to be able to keep them busy for long periods of time to realize that reduction in cost. A engineer who doesn't understand your codebase isn't going to be useful for very long.