26 newsletters today.
Abandoned Futures
2026-07-18
In 1975, a German aerospace engineer named Lutz Kayser founded Orbital Transport und Raketen AG (OTRAG) with a heresy: rockets did not need to be exquisite. They needed to be cheap, identical, and mass-produced. His plan was to build orbital launch vehicles the way Henry Ford built Model Ts β by bolting together hundreds of identical low-pressure pipes.
The core unit, called a Common Rocket Propulsion Unit (CRPU), was a 27-inch diameter, 40-foot-long commercial steel tube. Inside: kerosene and nitric acid β storable, cheap, requiring no cryogenic infrastructure. The engine was a pressure-fed ablative nozzle costing under $1,000 to manufacture. No turbopumps. No exotic alloys. A single CRPU produced about 6,000 pounds of thrust. To build a heavy-lift booster, you simply bolted hundreds of CRPUs together in a bundle and lit them simultaneously.
Kayser projected launch costs of $500/kg to LEO in 1978 dollars β roughly $2,300/kg today. For context, the Space Shuttle came in at $54,000/kg. SpaceX's Falcon 9 hit $2,700/kg forty-five years later.
OTRAG needed a launch site near the equator. West Germany refused. Kayser cut a deal with Mobutu Sese Seko of Zaire, leasing a Belgium-sized chunk of Shaba Province. Between 1977 and 1979, OTRAG conducted four successful test flights from Zaire β the first private company in history to launch its own rocket from its own spaceport. The fourth flight reached 20 km altitude and demonstrated multi-CRPU thrust vectoring by differential throttling β the same technique SpaceX would later use on Falcon Heavy.
Then the diplomatic knives came out. The Soviet Union accused OTRAG of building an IRBM in Africa. France lobbied against it to protect Ariane. The United States quietly pressured Bonn over MTCR concerns. In 1979, Mobutu β under Franco-Soviet pressure β expelled OTRAG. Kayser moved to Libya in 1980, where Gaddafi funded further tests until 1987, when West Germany invoked export control law and forced the program shut. The hardware was dismantled. Kayser's patents lapsed. He died in 2017 having watched SpaceX independently reinvent his throttle-controlled cluster architecture.
Why it works now:
A modern OTRAG-architecture booster β call it a bundle of 200 3D-printed methane-oxygen pressure-fed CRPUs β could realistically hit sub-$1,000/kg for medium-lift payloads with a development budget under $300 million. That's the price of a mid-range biotech Series B.
ArXiv Paper Digest
2026-07-18
Authors: Toluwanimi O. Odemuyiwa, John D. Owens, Michael Pellauer, Joel S. Emer
ArXiv: 2607.15225v1
PDF: Download PDF
Imagine you're trying to figure out why your machine learning model is running slowly. Is it because the GPU's math units are maxed out? Is memory bandwidth the bottleneck? Or is the whole thing waiting on data that hasn't arrived yet? Today, you basically have two tools for answering this, and both are unsatisfying.
The first is the roofline model, a beloved chart in computer architecture that plots your workload as a single dot on a graph, showing whether you're limited by compute or memory. It's elegant, but it squashes your entire program into one point β you lose all sense of when things happen.
The second option is profilers and traces, which show every tiny event over time. These are the opposite problem: you can see everything, but drowning in fine-grained data makes it hard to say "aha, this is the bottleneck for this phase."
This paper introduces campaign diagrams, a new visualization that sits between these extremes. The idea is to break a workload into meaningful phases β say, the attention phase versus the feed-forward phase of a transformer β and then draw each phase in a way that simultaneously shows:
All of this fits on a single figure. You can literally see a workload "march" through its phases and spot where the bottleneck shifts from compute-bound to memory-bound, or where a phase is stalling waiting on something.
The clever bit is that campaign diagrams preserve the intuition of a roofline (compute vs. memory as the fundamental axes of hardware efficiency) while restoring the missing dimension of time. If you're designing hardware, tuning a kernel, or trying to explain to your team why a particular chunk of code is slow, being able to point at a single picture that shows both "what resource is the limit" and "for how long" is genuinely useful.
It's the kind of tool that feels obvious in retrospect β a good sign that it fills a real gap.
Daily Automotive Engines
2026-07-18
You've spent hours smoothing the bowl, radiusing the seat, and blending the transition. Now you're staring at the port floor β the bottom surface of the runner from the manifold face to the bowl. Every instinct says polish it. That instinct will cost you power on a port-injected engine, and here's why: the floor is where fuel lives.
In a dry-flow world (direct injection, or a flow bench with no fuel), the floor is just another wall. Air doesn't care. But in port injection, the injector sprays toward the back of the valve, and a meaningful fraction of that fuel β anywhere from 10% to 40% depending on temperature, pulse width, and port geometry β condenses on the port walls and runs along the floor as a liquid film. This is wet flow, and it obeys different rules than air.
A mirror-polished floor is hydrophobic in the wrong way: fuel beads up, forms unpredictable puddles, and dumps into the cylinder in slugs during transients. Throttle tip-in gets a rich spike, then a lean stumble as the puddle clears. A lightly textured floor β think 120-grit cartridge roll finish, roughly 60β80 microinch Ra β holds a thin, continuous fuel film that meters into the cylinder consistently.
Real-world example: Small-block Chevy Vortec heads (906/062 castings) responded famously well to mild floor work β knocking down the pushrod pinch bump and maintaining a slight downhill grade. Racers who mirror-polished everything reported worse tip-in response than guys who left the floor at a 220-grit finish. The rough-floor engines made 8β12 lb-ft more from 2,500β3,500 rpm on the same dyno.
Rule of thumb: On port-injected engines, finish the floor two grit levels rougher than the roof. If the roof gets 320-grit, the floor gets 120-grit. On direct injection, ignore this entirely β polish freely, because no fuel ever touches that surface.
Daily Debugging Puzzle
sync.Once.Do Panic Trap: The Initializer That Runs Exactly Never Again2026-07-18
This handler loads config lazily on first request, using sync.Once to make the load thread-safe. If the disk read fails, the initializer panics; the outer handler recovers and returns 500. The team's runbook says: fix the config file, and the next request will re-read it and succeed.
var (
once sync.Once
config *AppConfig
)
func GetConfig() *AppConfig {
once.Do(func() {
data, err := os.ReadFile("/etc/app/config.json")
if err != nil {
panic(fmt.Sprintf("config load failed: %v", err))
}
var c AppConfig
if err := json.Unmarshal(data, &c); err != nil {
panic(err)
}
config = &c
})
return config
}
func handleRequest(w http.ResponseWriter, r *http.Request) {
defer func() {
if x := recover(); x != nil {
log.Printf("recovered: %v", x)
http.Error(w, "internal error", 500)
}
}()
cfg := GetConfig()
respond(w, cfg)
}
The first request panics because the config file was missing. Ops fixes it within seconds. Every subsequent request still returns 500 β forever. Restarting the process is the only cure.
sync.Once guarantees the function runs at most once β whether it succeeds, panics, or gets killed by runtime.Goexit. The stdlib implementation is roughly:
func (o *Once) doSlow(f func()) {
o.m.Lock()
defer o.m.Unlock()
if o.done.Load() == 0 {
defer o.done.Store(1)
f()
}
}
Notice the ordering: defer o.done.Store(1) is registered before f() runs. When f() panics, the deferred store still executes on the way out, marking the Once as complete. The panic propagates up to your recovery handler β but the Once is now sealed. Every future Do takes the fast path, skips your initializer, and returns immediately. config stays nil for the process lifetime, and respond(w, cfg) nil-derefs into a fresh panic on every request.
This is documented ("If f panics, Do considers it to have returned; future calls of Do return without calling f"), but the guarantee is exactly the opposite of what a caller who recovers wants. sync.Once is designed for initializations that cannot fail β package-level state, sync.Pool factories, atomic wiring. It is not a retry primitive.
If initialization can fail, don't use sync.Once. Use a mutex and check the result explicitly:
var (
mu sync.Mutex
config *AppConfig
)
func GetConfig() (*AppConfig, error) {
mu.Lock()
defer mu.Unlock()
if config != nil {
return config, nil
}
data, err := os.ReadFile("/etc/app/config.json")
if err != nil {
return nil, fmt.Errorf("config load failed: %w", err)
}
var c AppConfig
if err := json.Unmarshal(data, &c); err != nil {
return nil, err
}
config = &c
return config, nil
}
Now every failed attempt leaves config == nil, and the next caller retries. For read-heavy workloads, promote to a sync.RWMutex with a fast-path read lock. Go 1.21's sync.OnceValue and sync.OnceValues have the same panic-sealing semantics, so wrap the initializer to return an error rather than panic if you want them to interoperate with retries.
sync.Once treats a panicking function as "done" β recovering the panic doesn't unseal the Once, so any initializer that can fail needs a mutex-and-nil-check pattern instead.
Daily Digital Circuits
2026-07-18
When N masters share a resource β a memory port, a bus, a crossbar output β an arbiter picks the winner every cycle. A fixed-priority arbiter is trivial (whoever has the lowest index wins), but it starves low-priority requesters when high-priority ones are always active. A round-robin arbiter fixes this by rotating who gets priority, so every requester is guaranteed service within N cycles.
The naive implementation: keep a pointer p to "who won last time." Next cycle, start scanning from (p+1) mod N and pick the first requester found. Update p to the winner. This works but the mod-N wrap-around is expensive β you need a wide priority encoder that "starts from the middle."
The classic trick: the mask-based round-robin arbiter. Keep an N-bit mask register where bit i is 1 if requester i is eligible this round (i.e., hasn't won yet in the current rotation). Each cycle:
masked_req = req & mask. If non-zero, pick the lowest bit of masked_req using a plain priority encoder β no rotation needed.masked_req == 0, refill the mask (all ones except bits already served) and pick from req directly.This reduces to two ordinary priority encoders running in parallel plus a mux β much faster than a rotating encoder, and it maps to a clean two-level circuit.
Concrete example: a DRAM controller with 4 requesters (CPU cores 0β3). All four are hammering the memory port. A fixed-priority arbiter would let core 0 monopolize; the tail cores would see infinite latency. A round-robin arbiter guarantees each core one grant per 4 cycles β worst-case latency is bounded at N Γ T_serve. For a 4-cycle memory access, that's a 16-cycle upper bound on request-to-grant. This bound is what makes the design analyzable for real-time systems.
Rule of thumb: a mask-based round-robin arbiter for N requesters costs roughly 2Γ the area of a fixed-priority arbiter of the same width. That's the fairness tax, and it's almost always worth paying anywhere you can't tolerate starvation.
Variants worth knowing: weighted round-robin (each requester gets a quota β bit i stays set in the mask for w_i grants before clearing); deficit round-robin (used in packet schedulers where request sizes vary); and matrix arbiters, which store an NΓN "who-beat-whom-most-recently" matrix β same fairness guarantee, different timing/area tradeoff, favored in high-radix on-chip networks.
Daily Electrical Circuits
2026-07-18
Every microcontroller datasheet has a nasty little clause buried in the electrical specs: the CPU is only guaranteed to behave correctly when VDD is above some threshold (say 2.7 V) and rising cleanly. Below that, the internal logic can latch into undefined states, corrupt flash writes mid-operation, or wake up executing garbage. A voltage supervisor (also called a reset IC or brownout detector) is the tiny 3-pin chip that keeps the RESET pin asserted until the rail is legitimately alive β and yanks it back low the moment the rail sags.
Anatomy of a supervisor: internally it's a bandgap reference, a comparator with built-in hysteresis, and a timer. The comparator watches VDD against a factory-trimmed threshold (typical values: 2.32 V, 2.63 V, 2.93 V, 4.38 V). When VDD crosses above threshold, a monoshot holds RESET asserted for a fixed reset timeout (typically 140 ms to 200 ms) so the crystal oscillator, PLL, and internal regulators have time to stabilize. When VDD dips below threshold minus hysteresis (usually 0.5β1%), RESET fires immediately.
Output flavors matter:
Real-world example: An STM32L4 running at 3.3 V has a minimum operating voltage of 1.71 V, but flash write/erase requires at least 1.71 V held stable. If your battery-powered board sees the LiPo sag to 3.0 V during an LTE burst, the internal BOR might catch it β but with EEPROM writes in progress, you want an external supervisor like the TPS3839L30 (3.0 V threshold, 200 ms timeout, 150 nA quiescent). Below 3.0 V, RESET pulls low, the MCU aborts cleanly, and flash contents survive.
Rule of thumb β picking the threshold: set it about 5β10% above the MCU's minimum guaranteed VDD, but below your nominal rail's lower tolerance. For a 3.3 V Β±5% rail feeding an MCU rated down to 2.7 V: nominal low is 3.135 V, MCU minimum is 2.7 V β pick a 2.93 V supervisor. That gives 200 mV margin above the MCU limit and 200 mV below the rail's worst-case low, so normal operation never trips it but a real brownout does.
Watchdog combo chips (MAX6746, TPS3813) add a second input: if your firmware fails to pet a WDI pin within a windowed interval, RESET fires. This catches software hangs the internal watchdog misses (because a runaway CPU can disable its own peripheral watchdog, but it can't reach outside the chip).
Layout gotcha: place the supervisor's VDD pin close to the MCU's VDD pin, not near the regulator output. You want it sensing what the MCU sees, including IR drops in the power trace. And decouple it with its own 100 nF β supervisors are comparators, and comparator noise causes reset chatter.
Daily Engineering Lesson
2026-07-18
Look at any Ethernet cable, RS-485 run, 4-20 mA sensor wire, or telephone line and you'll find the same construction: pairs of insulated conductors twisted together at a specific pitch. That twist isn't cosmetic β it's a physics trick that lets low-voltage signals survive a factory floor full of VFDs, motor starters, and 480 V bus ducts.
The problem: differential signals and common-mode noise. A twisted pair carries a signal as the difference between two conductors. The receiver ignores whatever voltage both wires share. Noise from a nearby motor or fluorescent lamp couples electromagnetically into both wires β but only if the wires present different loop areas to the field. If one wire happens to run closer to the noise source than the other, it picks up more, the difference between them changes, and the noise becomes signal.
The fix: twist them. Each half-twist swaps which wire is on the "near" side of any external field. Over a length of cable, the induced voltages average out to nearly zero on both conductors β same on both means common-mode, which the receiver rejects. The tighter the twist (shorter the lay length), the better the noise cancellation and the higher the usable frequency.
Cat cable examples:
Different pairs in the same jacket use different lay lengths on purpose β if all four pairs twisted at the same pitch they'd couple into each other (crosstalk) in sync.
Rule of thumb for installers: when terminating a jack or a punch-down block, do not untwist more than Β½ inch (13 mm) of pair. The last inch of an untwisted pair is where noise sneaks in and where impedance discontinuities cause reflections. Field techs who "fan out" three inches to make terminations pretty are the reason a certified Cat6 run fails its NEXT (near-end crosstalk) test.
Instrumentation twisted pair (belden-style) uses much longer lay lengths (~2-3 inches) because the signals are DC or low-frequency 4-20 mA, but the same principle applies: run the pair, don't split it, and if you need shielding for really nasty environments, add a foil or braid and ground one end only to prevent ground loops.
Forgotten Books
2026-07-18
Book: The Wainwright star (1937-01-06) by Unknown (1937)
Read it: Internet Archive
Buried in a January 1937 issue of a small Alberta weekly is a working newspaperman's confession about a hazard that has almost completely vanished from modern life: the migrating paragraph. In the days of hot-metal typesetting, chunks of text could physically wander from one story into another during the paste-up, producing juxtapositions that ranged from absurd to actionable.
The Wainwright Star's columnist recounts visiting a magazine editor who was buried under angry mail after his publication had run this item:
"Presidentβββ of the Local Union Noββ suffered a skull fracture when he was hit by a truck while on his way to work. The editor congratulates the members of the local union on this accomplishment. If the same procedure is followed in other cities, the entire organization will benefit."
The second and third sentences were supposed to be attached to a different article β one about a lodge that had grown its membership. In migrating across the layout, they turned a get-well notice into what looks like open advocacy for maiming union officials. As the columnist notes, the editor spent days "writing letters explaining that he was not advocating the maiming of all or any local union officials."
He offers a second example from his own railroading days at a Mid-Western daily, where an obituary of a prominent citizen ended:
"The crowd was happy and thoroughly enjoyed itself. It was truly a gala day."
That sentence had been meant for a story about a corn festival at the county seat.
What was lost: The pre-digital editing pipeline had a physical reality that shaped an entire discipline of proof-reading. A "graf" was a metal slug you could pick up and drop into the wrong forme. Copy readers didn't just check spelling β they were trained to sanity-check adjacencies, because a runaway paragraph was a real thing that happened on press night. Style guides of the era included rules about closing off stories cleanly precisely so that a stray slug couldn't semantically attach to the wrong headline.
Modern readers will recognize the descendants of these ghosts:
The mechanism has changed β atoms became bits, bits became tokens β but the failure mode is identical: content that looks locally coherent while being globally nonsense. The 1937 columnist's implicit lesson is that the fix is never technological. It is a human reader whose job is specifically to ask "does this paragraph belong to this story?" That role has been quietly dissolved out of most modern publishing workflows, which is why the ghosts of the paste-up table are more common now than they were in Wainwright.
Forgotten Darkroom
2026-07-18
Book: The Pharmaceutical Journal Formulary: a register of formulae for medicinal preparations sold by chemists and druggists by P.J.F. (1904)
Read it: Internet Archive
Tucked into the advertising pages of this 1904 druggists' formulary β a fat reference volume of "known, admitted and approved" remedies for British chemists β is a boast that would have meant something instantly to any pharmacist of the era, and nothing at all to a modern reader:
THE LEADING HOUSE FOR BLAUD'S PILLS.
The advertiser is shouting about a product so ubiquitous in 1904 that it needed no explanation. Today, almost no one has heard of it. Yet Blaud's Pills may be the most consequential forgotten medicine of the 19th century.
The formula was devised in 1832 by Pierre Blaud, a French country doctor in Beaucaire, who was trying to cure "chlorosis" β the "green sickness" that turned adolescent girls pale, weak, breathless, and prone to fainting. For centuries the condition was blamed on lovesickness, corseting, or "unfulfilled womanhood." Blaud noticed that his patients recovered on a specific pill: ferrous sulfate mixed with potassium carbonate, which reacted inside the pill mass to form ferrous carbonate, protected from oxidation. He reported curing patient after patient in weeks.
He was, without knowing the biochemistry, treating iron-deficiency anemia β the same disorder that today affects roughly a quarter of the world's population and is still the leading nutritional deficiency on Earth.
What's striking is how close the 19th century came to modern nutritional medicine without the theoretical framework. Blaud didn't know about hemoglobin (identified 1840), had no concept of a "vitamin" or "trace mineral" (both 20th-century ideas), and had no lab test to confirm anything. He worked from bedside observation: pale girl in, pink girl out.
The modern descendant sits on every pharmacy shelf as a $3 bottle of ferrous sulfate. Same active ion, same target condition, same slow correction over weeks. The chemistry hasn't improved much in 190 years β the branding just got less romantic.
Forgotten Patent
2026-07-18
In 1928, a Bell Labs engineer named Homer Dudley was staring at a problem that would define the century: a transatlantic telephone cable could carry only a few voice channels at a time, because each voice hogged thousands of hertz of bandwidth. Dudley asked a heretical question. What if the wire didn't have to carry the sound of the voice at all β only the instructions for rebuilding it on the far end?
His answer became US Patent 2,151,091, "Signal Transmission," filed October 30, 1935 and granted March 21, 1939. It is arguably the most consequential audio patent ever issued.
Dudley's insight was the sourceβfilter model of human speech. When you talk, your vocal cords produce a buzzy pitched tone (or a hiss, for consonants like "sh"), and your mouth, tongue, and lips act as a slowly-changing filter that sculpts that tone into vowels and consonants. The source is fast and information-poor. The filter is slow and information-rich. Dudley's patent proposed sending only the filter shape β a handful of band-energy values updated a few dozen times per second β and reconstructing intelligible speech at the receiver using a locally-generated buzz and hiss. He called it the Voice Coder, shortened to Vocoder.
Bell Labs built a hand-played demo, the Voder (patent 2,121,142), and had a trained operator "play" speech on it at the 1939 New York World's Fair. Crowds heard a machine talk. It sounded uncanny β because it was: no human throat was moving.
Then the war came. The US Army Signal Corps took Dudley's patent and built SIGSALY, a 55-ton system deployed in 1943 that digitized, vocoded, and encrypted the RooseveltβChurchill hotline using one-time-pad noise pressed onto phonograph records. It was the first secure digital voice link in history. Churchill's cabinet spoke through Homer Dudley's math.
The modern lineage is direct and enormous:
What makes the patent so startling is its epistemology. In 1935, before Shannon's information theory, before the transistor, before the very idea of "digital audio" existed, Dudley proposed that meaning and signal were separable β that you could transmit a description of speech instead of the speech itself. Every compressed voice call and every synthetic voice you've ever heard is a footnote to that idea.
Daily GitHub Zero Stars
2026-07-18
Language: C#
SUS Core is an ambitious attempt to bring Vue-like reactive UI patterns into Unity's UI Toolkit. If you've ever built a game UI in Unity, you know the pain: manually wiring up UXML elements to C# controllers, chasing stale references, and writing verbose imperative code to reflect state changes on screen. This project tries to fix that by introducing a declarative, reactive layer on top of UI Toolkit.
The interesting twist is the .sharq compiler β a custom file format that appears to compile down to Unity-compatible UI code. This is a bold design choice. Rather than shoehorning reactivity into C# with attributes or source generators, the author is building a small domain-specific language that borrows from the Vue single-file-component model, where template, script, and style live together.
Why this matters:
Who would benefit? Indie Unity developers building UI-heavy games β inventory systems, RPG menus, strategy game HUDs β where imperative UI code becomes a maintenance nightmare. Also web developers transitioning into Unity who miss the Vue/React declarative model. It's early-stage, zero-star, and probably has rough edges, but the direction is genuinely exciting.
Worth watching if the compiler proves out β this could become the "SvelteKit for Unity" niche if the author sticks with it.
Daily Hardware Architecture
2026-07-18
Your CPU has an MMU that translates virtual addresses to physical ones. But when a NIC does DMA, or a GPU reads a buffer, those devices issue raw bus addresses. Without help, they can only see physical memory β and worse, a malicious or buggy device could DMA over your kernel. The IOMMU (Intel VT-d, AMD-Vi, ARM SMMU) is a second MMU sitting on the I/O side of the memory controller, translating device-issued addresses through page tables the OS controls.
An IOMMU serves three jobs:
The mechanism: when a device issues a DMA to address X, the transaction arrives at the root complex tagged with the device's BDF (Bus/Device/Function). The IOMMU uses BDF to look up a context entry, which points to a page table. It walks that table exactly like an MMU walks yours β same 4-level structure on x86, cached in an IOTLB.
Real-world example: Linux's iommu=pt (passthrough) mode is common on servers because full IOMMU translation isn't free. A DMA to an untranslated address hits the IOTLB. On miss, the IOMMU walks page tables β that's four memory accesses per DMA descriptor. On a 100 Gbps NIC pushing 8M packets/sec, an IOTLB miss rate of even 1% can burn measurable memory bandwidth just walking device page tables.
Rule of thumb: IOTLB entries are precious β usually 64 to 512 per unit. If your workload scatters DMAs across more 4K pages than the IOTLB holds, you're page-walking constantly. Fix: use hugepages for DMA buffers. One 2 MB IOTLB entry covers what would otherwise need 512 entries. NVMe drivers doing multi-queue I/O benefit hugely.
Gotcha: IOMMU invalidations are slow. When a driver unmaps a DMA region, the IOMMU must flush IOTLB entries, which requires a serialized command sent over the IOMMU's command queue. High-frequency map/unmap cycles (naive networking code) can bottleneck on invalidation throughput long before CPU or PCIe does.
Hacker News Deep Cuts
2026-07-18
Link: https://www.quantamagazine.org/martin-picards-mitochondrial-theory-of-mind-20260717/
HN Discussion: 1 points, 0 comments
Quanta Magazine profiles are usually worth reading on their own β the publication has a knack for finding scientists who are quietly rewriting a field's fundamental assumptions. This piece on Columbia's Martin Picard appears to be exactly that: a profile of a researcher arguing that mitochondria are not merely cellular power plants but active participants in cognition, mood, and behavior.
The dominant framing in biology textbooks has treated mitochondria as ATP factories β organelles you learn about once and mostly forget. Picard's work pushes back on that. His lab has been publishing evidence that mitochondria communicate with each other, respond to psychological stress, form networks that reshape based on environmental signals, and appear to influence neural function in ways that don't reduce cleanly to "energy supply." If the theory holds, it reframes a lot of adjacent questions:
For a technical audience, this matters beyond the neuroscience itself. It's a case study in paradigm inertia: a component was characterized decades ago, everyone moved on, and now new tools (single-cell imaging, mitochondrial transcriptomics, real-time bioenergetic measurement) are surfacing behaviors nobody thought to look for. Similar stories are playing out in glial cells, gut microbes, and the extracellular matrix β all "boring supporting infrastructure" turning out to be computationally interesting.
There's also a practical angle for anyone building models of biological systems, whether for drug discovery, computational biology, or AI-adjacent work on embodied cognition. If mitochondria are signaling nodes rather than passive utilities, then network models of cellular behavior need substantially more state per cell than most current simulations assume.
Quanta's long-form profiles tend to be careful with the science β they're not breathless press releases β so this is likely a solid entry point into Picard's actual publications rather than hype.
HN Jobs Teardown
2026-07-18
Source: HN Who is Hiring
Posted by: kostar
Of the ten postings in this thread, Oracle's is the most revealing because it forces you to reconcile two things that don't usually go together: Oracle and a Scala/Akka/CQRS shop hiring on Hacker News. That tension is the story.
The stack tells you what OCI actually is. The Registry team is running Scala / Akka / Play on an Event-Sourced, Distributed system built on CQRS. This is not enterprise Java Oracle. Event Sourcing + CQRS is the pattern you reach for when you have a multi-tenant system where the audit log is the source of truth and read/write workloads diverge sharply β exactly what a container registry looks like: writes are rare (pushes), reads are enormous and cache-friendly (pulls during pod scheduling storms). Akka gives them backpressure and cluster sharding per-tenant. This is a stack chosen by engineers, not by a procurement committee.
What it reveals about the company. Oracle is still trying to catch ECR, GCR, and ACR β and the fact that they're staffing the Registry specifically signals that OCI leadership understands the container registry is table-stakes for anyone considering their cloud for Kubernetes workloads. The posting cuts off mid-sentence at "including K[ubernetes]", which is the whole pitch: we need parity with the big three or enterprises won't migrate. Hiring a senior Scala engineer in SF (not Bangalore, not Redwood Shores) means they're paying market rate to compete with the hyperscalers for the same talent pool.
Skills and trends highlighted:
Green flags: Specific tech stack, specific architectural pattern, specific team. The poster clearly works there and wrote this themselves β no recruiter boilerplate. Red flags: "Senior" role but no salary band, ONSITE-only in SF during what the thread implies is early COVID shelter-in-place (see Clockwise's posting), and it's Oracle β attrition and internal politics are the elephant. Also: a team this small betting on Akka in 2020 is a bet the Lightbend ecosystem stays healthy, which was already being questioned.
Daily Low-Level Programming
2026-07-18
When a process touches an unmapped or lazily-populated page, the kernel normally decides what to do: allocate a zero page, read from swap, fault a file page in. userfaultfd() hands that decision to user space. You register a range of virtual memory with the kernel, and when a fault hits it, the faulting thread is parked and you get a notification on a file descriptor instead of the usual SIGSEGV or automatic backing.
Mechanically: userfaultfd(O_CLOEXEC) returns an fd. You ioctl UFFDIO_REGISTER to claim a VMA range and pick modes (UFFDIO_REGISTER_MODE_MISSING for absent pages, _WP for write-protection faults, _MINOR for pages that exist but aren't installed in the page table). Then a handler thread does read() on the fd β each read yields a uffd_msg containing the faulting address, thread ID, and flags. You resolve the fault by ioctl'ing UFFDIO_COPY (atomically copy a page of data into the hole), UFFDIO_ZEROPAGE, or UFFDIO_CONTINUE. Only then does the parked thread resume.
The canonical use case is live migration. CRIU and QEMU use userfaultfd for post-copy migration: the VM starts running on the destination host with an empty address space, and every fault triggers an RDMA pull of the missing page from the source. Compare this to pre-copy, where you iteratively ship dirty pages until convergence β post-copy guarantees a bounded switchover time, at the cost of network-latency-per-fault after the switch.
Other real uses: garbage collectors use write-protect mode to implement concurrent marking (mprotect-style, but without the mmap_lock contention and without SIGSEGV round-trips). Distributed shared memory systems fault pages in from remote nodes. Fuzzers snapshot and restore process state by write-protecting the heap and copy-on-write'ing on demand.
Rule of thumb on cost: a userfaultfd round-trip is roughly 5β15 microseconds on modern hardware β one context switch to the handler, one memcpy, one ioctl, one wake. Compare with a normal minor fault at ~1 ΞΌs and an anonymous-page major fault at ~10 ΞΌs from swap. So userfaultfd is cheap enough to handle sparse faults but catastrophic if you take one per 4KB of a sequential scan. Pre-fault hot regions with UFFDIO_COPY in bulk before the guest touches them.
Security note: unprivileged userfaultfd was famously abused for Dirty COW-style race widening β pausing a kernel copy mid-flight gave attackers unlimited time to swap the target page. Since 5.11, the vm.unprivileged_userfaultfd sysctl defaults to 0, restricting the syscall to CAP_SYS_PTRACE holders unless you opt in.
RFC Deep Dive
2026-07-18
Before DNS, before /etc/hosts as we know it, there was one file. RFC 608 β a two-page memo from January 1974 β announced that the Network Information Center (NIC) at SRI would maintain a single authoritative list of every host on the ARPANET, available on-line for anyone to download. This is the direct ancestor of the entire modern name-resolution stack.
The problem. By late 1973 the ARPANET had grown past the point where operators could keep host tables in their heads or in printed appendices. A user at UCLA who wanted to reach a machine at MIT needed a numeric host number (this predates dotted-quad IPv4 addressing β hosts had 8-bit numbers on the IMP subnet). Programs needed those numbers too, but nobody wanted to type 10 when they meant MIT-DMS. Every site had cobbled together its own local table, and the tables disagreed.
The design. The RFC is startlingly minimal. It says: the file lives at <NIC>HOSTS.TXT on the SRI-NIC server, host 10. Anyone can FTP it. It is updated as changes arrive. Each line is a mapping between an official host name, aliases, and a host number. That's it. No versioning protocol, no replication, no delegated authority. One file, one publisher, one truth. The mechanism was pure convention layered on FTP.
What this created. Every operating system on the ARPANET wrote a scraper. Sites polled HOSTS.TXT nightly (or weekly, or whenever they remembered) and regenerated their local host tables from it. This is where the file we still ship as /etc/hosts comes from β literally. The BSD format was designed to be easy to derive from the NIC file. When Windows put a hosts file in C:\Windows\System32\drivers\etc\, it was carrying the ghost of RFC 608 into 2026.
Why it broke. The centralized file scaled for a decade, but by the early 1980s three problems were fatal:
Paul Mockapetris's RFC 882/883 (1983), later 1034/1035, replaced the file with a distributed hierarchical database: DNS. The delegation model β you own your zone, you serve your own records β is a direct response to the RFC 608 model failing at scale.
Why it still matters. Every time you edit /etc/hosts to override a hostname during development, or push a HOSTS-file adblocker, or debug why nsswitch.conf prefers files over dns, you are using RFC 608's mechanism. The file predates DNS by nearly a decade and outlived it in daily use as a per-machine escape hatch. It's also a beautiful case study in starting with the simplest thing that works β one file, no protocol β and letting the failure modes teach you what the real protocol needs to be.
/etc/hosts, established name-to-address mapping as a first-class problem, and β through its own scaling failures a decade later β motivated the entire design of DNS.
Stack Overflow Unanswered
2026-07-18
The asker has a Cortex-M firmware image they build themselves, and they want to compile a separate standalone function that calls into the already-flashed functions by their existing absolute addresses. The new function will be flashed into its own page. Nothing gets relinked; the old ELF's symbols must be treated as fixed pins the new object binds against.
What makes this interesting is that it turns the linker inside out. Normally the linker resolves symbols by placing sections and computing addresses. Here, half the symbols already have addresses baked into ROM and cannot move. You need to tell the linker "trust me, foo lives at 0x0800_1234, don't allocate anything for it."
arm-none-eabi-nm --defined-only main.elf (or objdump -t) to get every symbol you may call.PROVIDE(foo = 0x08001235);
PROVIDE(bar = 0x08002101);
Note the Thumb LSB is set to 1. Cortex-M is Thumb-only, and the LSB tells BX/BLX to stay in Thumb state. If nm reports an even address, add 1 before feeding it to the linker.-mlong-calls so the compiler emits movw/movt + blx instead of a 24-bit relative bl β otherwise you can't reach across flash from your patch page.PATCH (rx) : ORIGIN = 0x08010000, LENGTH = 2K, and a SECTIONS block placing .text there.objcopy -O binary patch.elf patch.bin so your loader can program exactly the bytes for that page.__aeabi_* or memcpy. Those symbols must exist in the base ELF and be pinned via PROVIDE, or your patch will fail to link (or worse, link against a fresh copy that recurses into itself).-ffunction-sections --gc-sections; a function you want to call may have been discarded. Verify presence in the final ELF, not the object files..data/.bss without a coordinated RAM plan.Daily Software Engineering
2026-07-18
LRU has a well-known weakness: it treats recency as a proxy for value. A page touched once by a scan looks just as valuable as a page touched every 50ms by your hottest query. LRU can't tell them apart, so a single sequential scan can flush your working set. LFU overcorrects the other way β old-but-frequent pages linger forever even after the workload shifts.
LIRS (Low Inter-reference Recency Set) takes a different measurement entirely. Instead of asking "when was this page last touched?", it asks: how many distinct other pages were touched between this page's last two accesses? That distance is called IRR (Inter-Reference Recency). Low IRR means the page is genuinely hot β it gets reused before much else churns through. High IRR means it's cold, even if it was touched recently.
The cache is split into two logical sets:
When a HIR page is accessed again and its measured IRR beats the worst LIR page, it gets promoted to LIR and the demoted LIR page becomes HIR. That's the key trick: pages earn LIR status by proving low reuse distance, not by being recent.
Concrete example. A reporting service caches 1000 pages. Every second, 50 hot pages are hit repeatedly. Then a nightly job scans 10,000 unique pages once. Under LRU, the scan evicts all 50 hot pages β the next second's traffic hits disk 50 times. Under LIRS, each scanned page enters as HIR with high IRR (nothing before, nothing after). Since scanned pages never prove low IRR, they cycle through the small HIR slice and never displace the LIR set. Hot pages stay resident. MySQL's InnoDB buffer pool uses a variant of this idea (midpoint LRU) precisely to survive scans.
Rule of thumb: allocate ~1% of cache capacity to resident HIR and keep non-resident HIR metadata for roughly 2Γ your LIR size. That metadata is small (just a page ID and a timestamp) but essential β without it, you can't measure IRR when a cold page returns.
The cost: LIRS needs a "stack" (LRU-ordered list of both LIR and HIR entries, including non-resident) plus a HIR queue. More bookkeeping than CLOCK, roughly comparable to ARC. Use LIRS when scan-resistance matters and your workload has a clear hot set worth protecting.
Tool Nobody Knows
2026-07-18
You changed a hot loop. You ran the benchmark. Old code: 1.42s. New code: 1.38s. Ship it?
No. You just committed the most common performance sin in software: reading the mean of two noisy samples and declaring victory. That 3% "improvement" might vanish tomorrow β or reverse. Poul-Henning Kamp got tired of watching FreeBSD hackers do this in the early 2000s and wrote ministat, a ~300-line C program that lives in FreeBSD base and packages fine on Linux (apt install ministat, brew install ministat).
It takes columns of numbers and runs Student's t-test. That's it. That's the whole thing.
# Collect 20 samples per variant β more is better
for i in $(seq 20); do /usr/bin/time -f %e ./old 2>>&1; done > old.txt
for i in $(seq 20); do /usr/bin/time -f %e ./new 2>>&1; done > new.txt
ministat -c 95 old.txt new.txt
Output β actual, not paraphrased:
x old.txt
+ new.txt
+--------------------------------------------------------------------------+
| x |
| x x x + |
|xx xx xx xxxx x + + ++ + + + |
| |____AM____| |______MA______| |
+--------------------------------------------------------------------------+
N Min Max Median Avg Stddev
x 20 1.401 1.462 1.421 1.4235 0.017429
+ 20 1.352 1.418 1.379 1.3805 0.019204
Difference at 95.0% confidence
-0.043 +/- 0.011729
-3.020% +/- 0.824%
(Student's t, pooled s = 0.018349)
Three things worth staring at:
updatedb.-3.02% Β± 0.824%. That's the honest answer.Why not just use hyperfine? Hyperfine runs the benchmark. Ministat analyzes samples from anywhere β ab latency dumps, database query timings, GC pause logs, CI build times pulled with jq. Pipe two columns of numbers in, get significance out. Hyperfine and ministat are complements: hyperfine --export-csv, then feed the columns to ministat when you want more than a single mean.
Useful flags:
-c 99.5 β tighter confidence (options: 80, 90, 95, 98, 99, 99.5). Papers usually want 99.-C 3 β pull column 3 out of whitespace-separated data. Skips the awk step.-w 74 β narrower plot for terminals or logs.-q β kill the plot, just print numbers. Good for CI gates.The killer workflow: pipe your CI's benchmark job into a file per commit, then have a gate that runs ministat -q baseline.txt new.txt and fails only when the delta is significant and worse. You stop chasing 2% noise and stop shipping 8% regressions that hid inside variance.
Bonus history: PHK wrote it because he was tired of seeing benchmark arguments settled by whoever ran their test last. Twenty years later it's still 300 lines, still in FreeBSD base, still the correct answer.
What If Engineering
2026-07-18
A ram accelerator is a strange beast: a projectile shaped like the centerbody of a ramjet flies down a tube pre-filled with a premixed fuel/oxidizer gas. The projectile's own bow shock compresses the gas, ignites it behind the shoulder, and the resulting detonation pushes the projectile forward. No moving barrel parts, no plasma armatures β just chemistry chasing a bullet. UW-Seattle's lab has hit ~2.7 km/s with pound-scale projectiles. What if we scaled it up and buried one between Chicago and St. Louis to fling freight pods?
The setup. A 500 km buried tube, 2 m bore, pre-charged with segmented methane/oxygen mixtures at 5β50 atm. A 2-tonne pod (steel, tungsten nose) enters at Mach 3 via a light-gas gun pre-launcher, then rides staged detonations to Mach 8 (~2.5 km/s). It coasts most of the route in an evacuated section, then decelerates in a reverse ram section that extracts energy back into the working gas.
Energy budget. Kinetic energy of a 2000 kg pod at 2500 m/s:
KE = Β½ Β· 2000 Β· 2500Β² = 6.25 Γ 10βΉ J β 1740 kWh
At $0.10/kWh electricity equivalent, that's $174 of energy per pod β cheaper than the diesel to truck 2 tonnes 500 km (roughly $200 in fuel alone). Trip time: ~3.5 minutes at cruise, vs. 7 hours by truck. A pod every 30 seconds gives ~240 tonnes/hour, comparable to a busy freight rail corridor.
Where physics starts pushing back.
Tβ β TΒ·(1 + 0.2Β·MΒ²) β 4400 K. Tungsten melts at 3695 K. You need ablative or actively-cooled noses, and each pod loses maybe 5β10 kg of material per shot. Refurb between flights isn't optional.Ο = PΒ·r/t. For steel at 400 MPa allowable, thickness = 200Β·10β΅Β·1 / 4Β·10βΈ = 5 cm of steel along the entire 500 km β that's ~6 million tonnes of pipe, roughly the steel in 700 Eiffel Towers.The verdict. The energy math is startlingly favorable β kinetic transport is intrinsically cheap because you only pay the KE once, not continuously against rolling friction. The tube itself kills it: you're building a 500-km-long pressure vessel that also functions as a detonation chamber. Rail moves cargo at 0.02 kWh/tonne-km using 150-year-old technology. The ram accelerator moves it at 0.87 kWh/tonne-km but 100Γ faster. It's a courier service for things that must arrive in minutes β organs, semiconductor masks, maybe munitions.
Wikipedia Rabbit Hole
2026-07-18
Wikipedia: Read the full article
Right now, tucked inside your smartphone, there are tiny drums made of crystal being struck two billion times per second. They're called thin-film bulk acoustic resonators (FBARs), and without them, the modern wireless world would collapse into a screeching mess of overlapping signals.
Here's the problem they solve: your phone's antenna receives everything β Wi-Fi, LTE, 5G, your neighbor's baby monitor, cosmic microwave background. To pick out just one channel, you need a filter that's absurdly precise: it must pass, say, 2.4 GHz while brutally rejecting 2.5 GHz. Traditional inductor-capacitor filters can't come close to that sharpness at those frequencies. Ceramic filters are too big. So engineers did something wonderful: they gave up on electronics entirely and turned the signal into sound.
An FBAR is a wafer of piezoelectric material β usually aluminum nitride β sandwiched between two electrodes, suspended in mid-air over a tiny etched cavity. When your incoming radio signal hits the electrodes, the piezoelectric effect makes the crystal physically vibrate. The wafer thickness is tuned so that only one specific frequency creates a standing acoustic wave resonating between the top and bottom surfaces. Every other frequency gets swallowed. The resonance is then converted back into an electrical signal via the same piezoelectric effect. Radio in, sound in the middle, radio out.
The numbers are staggering:
The technology has an interesting lineage. Quartz crystal oscillators β the ticking heart of every wristwatch since the 1970s β use the same piezoelectric principle, but at kilohertz frequencies. FBARs are essentially quartz watches scaled down and sped up by a factor of a million, then manufactured with the same photolithography that makes microprocessors. Agilent (later Avago, now Broadcom) commercialized them in the early 2000s, and by the time the iPhone arrived, they were already indispensable.
There's a poetic loop here worth savoring. The piezoelectric effect was discovered by the Curie brothers in 1880 by squeezing quartz crystals. A century and a half later, that same fundamental physics β squeeze a crystal, get electricity; apply electricity, watch it deform β is what allows a device in your pocket to distinguish "this millimeter of the electromagnetic spectrum" from "that millimeter of the electromagnetic spectrum" while you scroll through cat videos.
Daily YT Documentary
2026-07-18
Channel: Mitchell Gaston (125 subscribers)
This short documentary follows Aly, a muralist working through brutal heat and exhaustion to complete a large-scale public artwork. Unlike time-lapse mural videos that skip past the hard parts, this one leans into the endurance side of the craft β the sun, the fatigue, the mental grind of standing on scaffolding for hours with a can of paint and a deadline.
The self-deprecating description ("an annoying man with a camera") hints at a filmmaker who's honest about the documentary process itself, which usually translates to a more intimate portrait than the polished corporate-style artist profiles you see elsewhere. At 125 subscribers, Mitchell Gaston is clearly a filmmaker early in his career, and these small-channel personal documentaries often carry more heart and specificity than big-budget productions.
Muralism is a physically demanding art form that rarely gets treated as such on camera. Most coverage focuses on the finished wall or the artist's statement. Watching someone actually endure the labor β scaling, sketching, mixing under a hot sun β gives you a real appreciation for what goes into the murals you walk past in your own city.
The other candidates skewed toward hashtag spam, Shorts, film festival promos, or generic "cinematic showcase" reels with no substantive content, making this the clear pick.
Daily YT Electronics
2026-07-18
Channel: BrightLab (40 subscribers)
This is a classic beginner electronics project that bundles three foundational skills into one build: reading an analog sensor, doing simple math to convert raw ADC values into meaningful units, and driving a character LCD. The LM35 is a great teaching sensor because its output is linear and calibrated in Celsius (10 mV per Β°C), which lets you see exactly how the Arduino's 10-bit ADC maps voltage to a numeric reading without the abstraction of a library doing everything for you.
Pairing an LM35 with an LCD is the natural next step after blinking an LED β you get sensing plus output on a real display, which starts to feel like a genuine instrument rather than a toy. The wiring is minimal (three pins on the sensor, standard HD44780 LCD hookup), so the video should be easy to follow at home even for someone still learning what a breadboard rail is for.
Caveat: the channel is very small (40 subscribers) and the description is brief, so production values may be modest β but the underlying project is legitimately educational and reproducible from a small parts kit.
Daily YT Engineering
2026-07-18
Channel: Dalus (21 subscribers)
Version control is one of software engineering's most transformative practices, but systems engineering β the discipline that coordinates requirements, interfaces, architecture diagrams, and verification plans across mechanical, electrical, and software domains β has been remarkably slow to adopt it. Most systems teams still ship Word documents over email or wrestle with Requirements Management tools that don't diff, don't branch, and don't merge. This video from Dalus (a tiny 21-subscriber channel) walks through what a Git-style workflow actually looks like when applied to systems engineering artifacts rather than source code.
What makes this worth watching is the translation problem it tackles: systems engineering data is structured (requirements have IDs, traceability links, verification status), so naive text-diffing doesn't work. The video shows how Dalus models branching, merging, and change review for requirements and architecture β the same primitives that made Git indispensable to software teams, adapted for a domain where a "merge conflict" might mean two engineers changed the same interface spec.
Even if you never touch systems engineering tooling, the video is a useful case study in domain-specific version control design. Anyone who has thought about diffing JSON, YAML, or database schemas will recognize the same challenges here, and the solutions transfer.
Daily YT Maker
2026-07-18
Channel: Buckley Builds (367 subscribers)
Of the ten candidates, this is the only one that promises a real, narrated build with lessons learned rather than satisfying carving loops or thinly-veiled product pitches. Buckley picked up a Shapeoko Pro XL and needed a dedicated stand, so he followed a set of purchased CNC table plans β and by his own admission, the result was ugly.
That framing is exactly why it's worth watching. A build video where the maker openly critiques the outcome tends to be far more educational than a polished "look what I made" reel. Expect discussion of where the plans fell short, what he'd change about the torsion-box or 80/20 structure, how he handled dust collection routing, cable management, and whether the stand actually damps vibration well enough for a full-size hobby CNC. These are the practical, unsexy questions every new CNC owner runs into once the machine arrives.
The Shapeoko Pro XL is a common enough platform that his mistakes translate directly to viewers planning their own enclosure or table. And at 367 subscribers, the channel is small enough that the tone stays honest rather than sponsor-driven.
Daily YT Welding
2026-07-18
Channel: Nande Blacksmith House (11 subscribers)
Caveat: today's crop is thin β nearly every candidate is a hashtag-spammed short with no real explanation. This one gets the nod because it names a specific, uncommon tool rather than just "amazing forging."
A billhook is a traditional European hand tool with a hooked blade, used for coppicing, hedgelaying, and cutting green wood β the curve pulls the branch into the cut rather than letting it slip away like a straight blade would. Different regions evolved wildly different billhook patterns (Yorkshire, Kent, Devon, Suffolk), and each geometry reflects the local wood and vegetation.
What makes forging one interesting is that the smith has to manage the transition from a thick spine to a thin cutting edge along a curving blade, then form the socket or tang for the handle. The curve also complicates heat treatment: you want a hard edge but a springy spine so the tool doesn't shatter when it hits a knot.
Even without narration, watching the raw stock progress into a recognizable billhook shape gives you a feel for how much material has to move and where the hammer has to land. A tiny channel (11 subs) doing an obscure traditional tool is exactly the kind of niche craft worth signal-boosting.
