25 newsletters today.
Abandoned Futures
2026-07-12
In 1962, a Navy captain named Robert Truax, working at Aerojet General, submitted a design that made Wernher von Braun's Saturn V look modest. The Sea Dragon was to be 150 meters tall, 23 meters in diameter, and lift 550 metric tons to low Earth orbit — nearly four times Saturn V's payload. It would cost roughly $60 per kilogram to orbit in 1963 dollars (about $500/kg today, comparable to a fully expended Falcon 9). It was reviewed independently by TRW at NASA's request, who concluded the design was credible.
Truax's insight was heretical: rockets were being built wrong. Aerospace machined every bracket, aged every propellant tank in clean rooms, and treated launch vehicles like jewelry. Truax — who had launched actual rockets from the Pacific with his Sea Bee (1961) and Sea Horse (1961) test vehicles — argued rockets should be built like ships: 8mm rolled sheet steel, welded in a coastal shipyard, floated to the launch site by tug, ballasted with water until it stood vertical in the ocean, then fired directly from the sea surface. No launch pad. No crawler. No 40-story gantry.
The engine specs were absurd and, on paper, tractable:
TRW's 1963 independent review concluded the ballistic launch approach was sound, the sea environment reduced acoustic loads (water absorbs the exhaust roar that would shatter a land pad), and the pressure-fed cycle eliminated the turbopumps that consumed most of the F-1 engine's development budget.
Why it died: nothing technical. The Apollo program had committed to Saturn V's architecture in 1961 — kerolox first stage, hydrolox upper stages, land launch from Complex 39. By 1965, NASA's post-Apollo budget was contracting under LBJ's Great Society priorities and Vietnam. Nixon's 1971 decision to fund the Shuttle instead of a Saturn-derived heavy lifter killed every "big dumb booster" study. Truax left Aerojet, formed Truax Engineering, and spent the 1970s building the Volksrocket series — including the rocket that Evel Knievel used to jump the Snake River Canyon in 1974.
Why 2026 changes everything:
Truax died in 2010 at 93, holding 30 patents. His files at Aerojet — including the full Sea Dragon design study TDR-63-116 — are still in NASA's archive. Someone should read them.
ArXiv Paper Digest
2026-07-12
Imagine a factory floor: conveyor belts, robotic arms, chemical mixers. Behind the scenes, small industrial computers called Programmable Logic Controllers (PLCs) run the show. They read sensors, flip switches, and keep everything running safely. Now imagine someone slips a hidden piece of malicious code into one of those controllers — code that sits quietly for months, then suddenly, at 3 AM on a Tuesday, spins a motor to twice its safe speed or falsely reports that a pressure tank is empty when it's about to burst. That's a Ladder Logic Bomb (LLB), and it's basically Stuxnet's little cousin.
The problem: existing tools that try to prove PLC programs are safe have a blind spot. PLC code is often organized into reusable "function blocks" — small subroutines, like functions in any other programming language. The verifiers that check for malicious behavior have historically thrown away the guts of those function blocks when converting the program into their internal representation. So if you hide your bomb inside a function block, the verifier literally can't see it. Attackers know this.
The authors built ESBMC-LLB, a tool that fixes this by keeping function-block bodies intact during analysis. But detection is only half the job. The really clever part is trigger synthesis: once the tool suspects malicious logic, it doesn't just say "something's fishy in here." It actually works backward through the code to compute the exact conditions — the specific combination of sensor values, timer states, and inputs — that would wake the bomb up. So operators get a concrete witness: "if temperature = X and valve 3 is open for Y seconds, this code will fire the payload."
Under the hood, the tool leans on bounded model checking, which is a technique that unrolls a program's execution over a finite number of steps and asks a solver whether any bad state is reachable. It's the same mathematical machinery used to verify aerospace and safety-critical software, now aimed at ICS security.
Why this is a big deal: real-world industrial malware — the stuff that trips power grids and damages centrifuges — often hides in exactly the code structures this tool now covers. Making trigger conditions explicit means defenders can add runtime detection rules, forensic analysts can reconstruct what an attacker planned, and auditors can catch bombs before deployment rather than after an incident.
Daily Automotive Engines
2026-07-12
Mufflers attenuate exhaust noise through two mechanisms: reactive (reflecting sound waves back to cancel themselves) and absorptive (converting acoustic energy to heat via fibrous packing). Every muffler on the market is some combination of these two principles, and the choice defines both sound character and flow restriction.
Chambered mufflers are pure reactive designs. Internal walls divide the muffler into 2-4 chambers connected by tuned pipes and perforated passages. Sound waves bounce between chambers, and waves reflected back toward the engine arrive out of phase with incoming waves — destructive interference cancels specific frequencies. Flowmaster's classic 40-series is the canonical example: aggressive low-frequency rumble because the chamber geometry cancels mid-frequencies but passes bass. Downside: chamber walls create pressure drop, typically 1.5-3 psi at high flow rates.
Straight-through (glasspack) mufflers are purely absorptive. A perforated core pipe runs straight through a canister packed with fiberglass, stainless wool, or basalt fiber. Sound waves radiate through the perforations into the packing, where fiber friction converts acoustic energy to heat. Almost no pressure drop (0.3-0.8 psi typical), but they only attenuate mid-to-high frequencies effectively. Low-frequency drone at highway cruise is the common complaint. Magnaflow's stainless straight-through is the archetype.
Turbo mufflers are a hybrid — an S-shaped or U-shaped flow path through 2-3 chambers with some fiberglass packing. Named because they were originally OEM equipment on 1960s GM turbine/turbo prototypes. They compromise between the two: moderate restriction (0.8-1.5 psi), broadband attenuation, and a mellower tone without harsh drone.
Real-world example: A 2015 Mustang GT with the factory active exhaust switches between a chambered path (aggressive mode) and a routed-through-resonator path (quiet mode) using electric valves. Same muffler shell, two different acoustic personalities.
Rule of thumb for sizing: Muffler inlet diameter should match the header collector or downpipe. For flow capacity, target 2.2 CFM per horsepower at wide-open throttle. A 400 hp engine needs ~880 CFM capacity, which typically means a 2.5" or 3" inlet muffler. Undersizing causes measurable backpressure; oversizing adds weight and drone without power gain.
Packing degradation is the silent killer of absorptive designs — fiberglass burns out after 30,000-60,000 miles of hard use, and the muffler gets progressively louder without any visible damage.
Daily Debugging Puzzle
2026-07-12
This helper builds a bitmask with the lowest n bits set — used everywhere in packet parsers, hash tables, and bit-field extractors. It's ten lines of code that has shipped in production for years. Then someone calls it with n = 32 and the mask becomes zero.
#include <stdio.h>
#include <stdint.h>
// Return a bitmask with the lowest `n` bits set.
// low_bits(4) -> 0x0000000f
// low_bits(16) -> 0x0000ffff
// low_bits(32) -> 0xffffffff (we hope)
uint32_t low_bits(int n) {
return (1U << n) - 1;
}
uint32_t extract(uint32_t value, int nbits) {
return value & low_bits(nbits);
}
int main(void) {
printf("extract(0xDEADBEEF, 4) = 0x%08x\n", extract(0xDEADBEEF, 4));
printf("extract(0xDEADBEEF, 16) = 0x%08x\n", extract(0xDEADBEEF, 16));
printf("extract(0xDEADBEEF, 31) = 0x%08x\n", extract(0xDEADBEEF, 31));
printf("extract(0xDEADBEEF, 32) = 0x%08x\n", extract(0xDEADBEEF, 32));
return 0;
}
The first three lines print what you'd expect. The last one prints 0x00000000. An identity operation just annihilated your value.
C11 §6.5.7 says: "If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined." The width of unsigned int on virtually every modern platform is 32, so 1U << 32 is undefined behavior — not implementation-defined, not "returns zero", but undefined.
Why does it usually appear to "return 1" (making the mask 1 - 1 == 0)? Because x86's SHL instruction masks the shift count against the operand width: count & 0x1F for 32-bit operands. So the CPU actually computes 1 << (32 & 31), which is 1 << 0 = 1. ARM64's LSL saturates instead and yields 0. RISC-V does something else. And a smart optimizer, having deduced n < 32 from the UB, may propagate that fact into surrounding code — deleting bounds checks you thought were live.
The trap survives review because the boundary case is often unreachable in tests. low_bits(31) works. low_bits(30) works. Nobody writes a test for the exact width because "obviously that's the max useful value" — which is exactly when the compiler stops being your friend.
Widen the shift so the boundary case has room to breathe, then narrow:
uint32_t low_bits(int n) {
return (uint32_t)((1ULL << n) - 1);
}
unsigned long long is guaranteed at least 64 bits, so 1ULL << 32 is fully defined and equals 0x100000000. Subtracting one gives 0xFFFFFFFF, and the cast truncates cleanly. This works for n in [0, 64); if you need n == 64 for a 64-bit mask, guard it explicitly:
uint64_t low_bits64(int n) {
return n == 64 ? UINT64_MAX : (1ULL << n) - 1;
}
A branch-free alternative that avoids the guard is ~UINT32_C(0) >> (32 - n) — but that has its own boundary problem when n == 0. There's no shift-only expression that handles both edges cleanly; you either widen, or you branch.
Daily Digital Circuits
2026-07-12
You need to measure how long between two edges — a laser pulse arriving and a photon detector firing, say. If the interval is 50 picoseconds, no clock is fast enough. A 10 GHz counter has 100 ps resolution, and you can't just build a 100 GHz counter. The trick: don't count faster, race two chains against each other and measure where they collide.
A Vernier TDC uses two delay chains with slightly different per-stage delays. The START signal propagates down a slow chain (delay τ₁ per stage). The STOP signal propagates down a fast chain (delay τ₂ per stage, where τ₂ < τ₁). At each stage, a flip-flop samples whether START has arrived before STOP. Since STOP is catching up by (τ₁ − τ₂) each stage, it eventually overtakes START — and the stage number where that happens tells you the original time difference.
The resolution equation: Δt = τ₁ − τ₂. If τ₁ = 100 ps and τ₂ = 95 ps, your resolution is 5 ps — far below what any single gate can switch at. You've measured a time interval finer than the propagation delay of the very gates doing the measuring. That's the beautiful part: like a Vernier caliper, precision comes from the difference between two coarse scales, not the scales themselves.
Concrete example: LIDAR in autonomous cars. Light travels ~30 cm per nanosecond, so 5 ps resolution means ~0.75 mm range precision. Systems like the ams-OSRAM TMF882x use Vernier or hybrid TDC architectures to hit sub-cm ranging at ~10 m. Same technique appears in PET medical scanners, laser rangefinders, and jitter analyzers on high-speed serial links.
The catches hardware engineers wrestle with:
Rule of thumb: Vernier TDC resolution can be pushed to ~1/10 of a single gate delay before mismatch dominates. Below that, engineers switch to interpolating or local passive TDC schemes, or add an analog time-amplifier front end that stretches the interval before digitizing.
Daily Electrical Circuits
2026-07-12
When you need to turn photons into electrons, you have two silicon workhorses to choose between: the PIN photodiode and the avalanche photodiode (APD). Both are reverse-biased junctions where absorbed photons generate electron-hole pairs, but their internal physics — and their circuit implications — differ dramatically.
A PIN photodiode sandwiches a wide intrinsic (undoped) region between P and N layers. Reverse bias sweeps this region clean of carriers, creating a large depletion zone where photons get absorbed. Every absorbed photon produces exactly one electron-hole pair — quantum efficiency approaches 1, but internal gain is exactly 1. PINs are fast (bandwidths of GHz with thin I-regions), linear over huge dynamic ranges, and cheap. They dominate fiber-optic receivers, barcode scanners, and pulse oximeters.
An APD adds a high-field multiplication region. Bias it near breakdown (typically 100-500 V for silicon) and photogenerated carriers gain enough kinetic energy to impact-ionize lattice atoms, creating avalanche multiplication. Gains M of 50-200 are typical for silicon; InGaAs APDs give M ≈ 10-40 at 1550 nm. That gain is free amplification before any electronic noise gets added — critical when you're detecting a few photons per nanosecond.
The catch: avalanche gain adds excess noise. The noise current becomes:
in2 = 2q·Iph·M2·F(M)·B
where F(M) is the excess noise factor, roughly Mx with x = 0.3-0.5 for silicon, 0.7-1.0 for InGaAs. So while gain multiplies your signal by M, noise multiplies by M·√F. There's an optimal gain — usually M = 50-100 for silicon — beyond which SNR degrades.
Real-world example: LIDAR receivers for autonomous vehicles. A pulse returning from a low-reflectivity target 100 m away might deliver only ~1000 photons in 5 ns. A PIN diode's signal (~30 nA peak) drowns in transimpedance amplifier noise (~5 nA/√Hz over 200 MHz = 70 nA RMS). An APD at M = 80 boosts signal to 2.4 μA — well above amplifier noise — enabling detection at ranges PINs simply cannot reach.
Rule of thumb: If your signal current is above 1 μA at the required bandwidth, use a PIN — simpler bias, no temperature-compensated HV supply, better linearity. Below 100 nA where amplifier noise dominates, an APD wins by ~15-20 dB in SNR. Between those, do the math with F(M) included.
Remember APDs need temperature compensation — breakdown voltage drifts ~+2 V/°C for silicon, so gain collapses without a regulated bias tracking temperature.
Daily Engineering Lesson
2026-07-12
Compression springs push things apart. Extension springs pull things together. But extension springs have a peculiar property that compression springs don't: they resist being pulled apart even before you start pulling. That's initial tension, and it's the defining feature that separates extension springs from every other spring type.
An extension spring is a helical coil wound with its coils touching each other. During winding, the wire is twisted such that the coils press against each other with a residual force. To open the spring at all, you must overcome this preload — typically 10-30% of the spring's maximum working load. Below that force, the spring doesn't extend; it just sits there like a rigid rod.
The force equation reflects this: F = F₀ + kx, where F₀ is the initial tension and k is the spring rate. Compare that to a compression spring's simple F = kx. That non-zero y-intercept trips up engineers who model extension springs as ideal linear springs and can't figure out why their mechanism binds at rest.
The end loops are the weak point. Unlike compression springs (which just bear against flat surfaces), extension springs need hooks, loops, or threaded inserts to transmit load. A standard machined half-loop or full loop over center creates a stress concentration at the transition bend where the coil straightens into the loop. Fatigue failures almost always start here — not in the body of the spring. For high-cycle applications, use swivel hooks or threaded plugs to reduce bending stress at the ends.
Real-world example: the screen door closer. When the door is fully closed, the spring is at its installed length — still under initial tension, pulling the door snug against the frame with maybe 5 lbf even at rest. Open the door 90°, and you stretch the spring another few inches, adding another 15 lbf via the spring rate. Let go, and both forces pull the door shut. Without initial tension, the door would flop loosely against the frame when closed.
Rule of thumb: for reliable operation, install extension springs so that the working range stays between 20% and 80% of maximum extension. Below 20%, you're operating near the initial tension threshold where behavior is inconsistent. Above 80%, you're stressing the end loops toward failure. Also: never fully compress an extension spring by pushing on it — the coils aren't designed to bear compressive load and will buckle sideways.
Extension springs also can't be shot-peened effectively (the touching coils shield each other), so their fatigue life is inherently lower than equivalent compression springs. If your application demands millions of cycles, consider a compression spring with a reversed mechanism instead.
Forgotten Darkroom
2026-07-12
Book: PREVIEW OF BI-COLOR BRIEFING FOR IEG P.I.'S BY (Sanitized) TSSG/TAD by CIA Reading Room (1968)
Read it: Internet Archive
In May 1968, a room full of CIA photo interpreters ("P.I.'s") sat down for a briefing on a new imaging technique flying aboard the KH-4 CORONA reconnaissance satellite: bi-color imagery. The briefer immediately corrected the name — it was really bi-spectral imaging — and delivered a warning so nuanced that it foreshadowed one of the most misunderstood concepts in modern remote sensing.
He said that the material taken by this process, if properly understood and/or filtered in the viewing or reproduction process, could be relied upon to indicate whether or not objects were most reflective in the red or green regions of the spectrum, but he cautioned emphatically against interpreting the color presentation of this material as being directly analogous to the actual color of the object.
The document is a memorandum for the record from NPIC (the National Photographic Interpretation Center) — the CIA's photo-analysis shop that pored over U-2 and satellite film. The briefing was a preview: before analysts saw the imagery from a real mission, they were taught what the pictures did and did not represent.
What makes this remarkable is how early it is. In 1968, civilian scientists were still years away from Landsat-1 (launched 1972), the mission that popularized multispectral imaging for agriculture, forestry, and geology. The briefer was already explaining the core epistemological trap of the technique: the colors on the print are a proxy for spectral response, not a photograph of what the ground looked like to a human eye. A field that glows crimson in a false-color composite is not red — it's just reflective in a wavelength band the analyst chose to display as red.
Even more striking is the follow-up exchange, in which an analyst asks whether the KH-4's stereo geometry might create phantom color signatures:
[He] asked whether the convergence of the KH-4 cameras might cause specular reflectance to be misidentified as a "color" signature. [The briefer] replied that this was certainly a potential source of difficulty if the sun angle had the corresponding orientation with respect to the camera attitude.
That question — can a mirror-like glint fool us into thinking we're seeing a spectral property of the material? — is a problem that remote sensing researchers still write papers about today. Modern satellites use bidirectional reflectance distribution functions (BRDFs) and sun-angle corrections to handle exactly this artifact. The 1968 analyst intuited the problem in a single sentence.
The forgotten lesson isn't the technique — multispectral imaging is now everywhere, from Google Earth to crop-yield forecasts. The forgotten lesson is the discipline the briefer demanded: never confuse a visualization choice with a physical fact. Every time someone today looks at a NASA "true-color" composite of Mars and assumes it's what your eye would see, they're making the exact mistake this 58-year-old memo tried to prevent.
Forgotten Patent
2026-07-12
On July 7, 1914, the U.S. Patent Office granted a shy physics professor at Clark University two patents that, taken together, describe almost every rocket that has ever left Earth. US Patent 1,102,653 ("Rocket Apparatus") described a multi-stage rocket — separable sections that drop away as their fuel is spent, so the vehicle grows lighter as it climbs. US Patent 1,103,503, granted eight days later, described a rocket fed by liquid propellants — a fuel and an oxidizer pumped continuously into a combustion chamber, rather than the compressed gunpowder that had defined "rockets" since 13th-century China.
Robert H. Goddard was 31, tubercular, and working almost alone. He had no wind tunnel, no test stand, no funding beyond a modest Smithsonian grant that arrived in 1917. What he had was a conviction — worked out in a cherry tree in Worcester, Massachusetts at age 17 — that a properly designed rocket could reach not just the upper atmosphere but the Moon.
Both patents predate the founding of every rocket program in history. When Goddard filed them:
The multi-stage patent, in particular, is uncanny. Goddard describes exactly what a modern Falcon 9 or Saturn V does: a rocket composed of stacked, self-contained propulsion units, each of which fires, exhausts, and separates in sequence. The drawing in the patent — a slender stack of three tapering sections — could be redrawn as a modern launch vehicle with almost no changes.
The liquid-fuel patent is arguably more radical. Solid-fuel rockets were ancient; liquid fuel was heretical. It required cryogenic tanks, injectors, turbopumps, regeneratively cooled combustion chambers — an entire discipline of plumbing that did not yet exist. Goddard spent the next 12 years building it himself. On March 16, 1926, in his Aunt Effie's cabbage field in Auburn, Massachusetts, his liquid-oxygen-and-gasoline rocket flew 41 feet in 2.5 seconds. It is to rocketry what Kitty Hawk is to aviation.
The reception was not warm. On January 13, 1920, The New York Times editorial page ridiculed Goddard for suggesting a rocket could operate in a vacuum: he "seems to lack the knowledge ladled out daily in high schools," they wrote, because everyone knows a rocket needs air to push against. (It doesn't — Newton's Third Law works fine in vacuum.) The Times printed a correction on July 17, 1969, the day after Apollo 11 left Earth: "It is now definitely established that a rocket can function in a vacuum. The Times regrets the error."
Goddard died in 1945 holding 214 patents, most filed posthumously by his widow Esther. When the U.S. government finally cataloged them in 1960, it agreed to pay his estate $1 million — the largest patent settlement in American history at the time — because essentially every rocket NASA and the DoD had built infringed on Goddard's claims. Gimbaled thrust, gyroscopic guidance, film cooling, variable-thrust valves, turbopumps: he had patented them all.
Every time a Falcon 9 booster lands upright on a drone ship, it is executing a control problem Goddard sketched in the 1930s. Every stage separation on an Ariane, an SLS, or a Starship traces back to 1,102,653. The cherry tree is still in Worcester.
Daily GitHub Zero Stars
2026-07-12
Language: TypeScript
Flutterby is a phone-first butterfly logging application aimed squarely at UK naturalists and citizen scientists. Built with a modern stack — React on the frontend, Fastify on the backend, and Neon (serverless Postgres) for storage — it lets field observers record butterfly sightings from their phones and automatically converts GPS coordinates into OS grid references, the standard geographic notation used by UK biological recording schemes.
What makes this repo interesting isn't just the domain — it's the thoughtful intersection of niche scientific tooling and a genuinely modern web stack:
This would be genuinely useful to amateur lepidopterists, butterfly transect walkers, and anyone contributing to schemes like the UK Butterfly Monitoring Scheme who wants a lightweight personal log alongside official recording apps. It's also a great reference project for developers curious about PWA-style field data collection, coordinate system transformations, or building small-audience scientific tools with modern TypeScript stacks.
Zero stars today, but there's a real user base for this kind of tool — and the tech choices suggest someone who'd welcome contributors.
Daily Hardware Architecture
2026-07-12
A ripple-carry adder is the textbook way to add: each bit position computes its sum and passes the carry to the next bit. Simple, but the carry has to ripple through all 64 bits sequentially. At ~40ps per full-adder gate delay, that's 2.5ns for a 64-bit add — catastrophic when your CPU runs at 5 GHz (200ps clock period).
The carry-lookahead adder (CLA) breaks the dependency chain by computing carries in parallel using two derived signals per bit position:
Gᵢ = Aᵢ · Bᵢ — this bit will produce a carry regardless of inputPᵢ = Aᵢ ⊕ Bᵢ — this bit will pass through an incoming carryThen Cᵢ₊₁ = Gᵢ + (Pᵢ · Cᵢ). Unroll that recursion and every carry becomes a pure function of the input bits and C₀ — no waiting. The catch: fully unrolling for 64 bits explodes gate fan-in. Real adders use hierarchical CLA, grouping bits into 4-bit blocks, then blocks of blocks, giving O(log N) depth instead of O(N).
Real-world example: Intel's Sandy Bridge and later use a Kogge-Stone prefix adder — a specific parallel-prefix CLA variant — in their 64-bit ALU. It has log₂(64) = 6 stages of carry computation, letting a full 64-bit add complete in one cycle at 4+ GHz. AMD Zen uses a similar Han-Carlson tree (a hybrid that trades some latency for fewer wires). Both structures dominate the ALU's silicon area, but the alternative — a ripple adder — would cap your clock speed at roughly 400 MHz.
Rule of thumb for adder latency:
Why it matters for programmers: This is why ADD is a 1-cycle instruction even on 64-bit values, and why address generation (base + index·scale + offset) fits in a single AGU cycle — the AGU contains its own dedicated CLA. It's also why 128-bit adds (used in big-integer crypto) cost 2 cycles: one add plus one add-with-carry, because the second half must wait for the first CLA's top-level carry-out. Widening to 256-bit integers doesn't get you a proportional speedup; each additional 64-bit chunk adds another serial dependency the CLA can't parallelize across.
Hacker News Deep Cuts
2026-07-12
Link: https://remark.ing/rob/rob/-/Linear-is-always-a
HN Discussion: 1 points, 0 comments
Every engineering org I've worked in eventually converges on the same ritual: standups reference Linear (or Jira, or Shortcut), sprint planning revolves around Linear, leadership dashboards pull from Linear — and yet the actual work being done rarely matches what the tickets say. This post's title captures something almost every practitioner knows but rarely articulates: the ticket tracker is not where work happens. It's where work is recorded, usually after the fact, and often badly.
Based on the title and the personal-blog format (remark.ing is a lightweight publishing tool favored by developers writing short-form thought pieces), this is almost certainly an argument that leaders who manage their team through Linear are watching a delayed, filtered signal — one that lags the real state of the codebase, the real state of morale, and the real state of customer pain. By the time something shows up as an "Urgent" ticket, the underlying problem has usually existed for weeks. By the time a project is marked "Done," the actual work of shipping, monitoring, and stabilizing has often just begun.
Why this matters for a technical audience:
The best posts in this genre — Will Larson on engineering strategy, Charity Majors on observability-as-management-tool — argue that leadership requires instrumenting the work itself, not the metadata around it. A short, sharp post with this title likely lands in the same tradition, and deserves more than one upvote on a busy Sunday morning.
HN Jobs Teardown
2026-07-12
Source: HN Who is Hiring
Posted by: mosdl
Dremio's posting is short but every phrase is loaded. They describe themselves as the "Data Lake Engine company" and namecheck AWS S3 and Microsoft ADLS as the storage layers they're purpose-built for. That's not a neutral framing — it's a direct shot at the incumbent data warehouse model (Snowflake, Redshift, BigQuery) where storage and compute are coupled inside a proprietary system.
The stack:
Java for the engine — unsurprising for a query engine that needs JVM-level control over memory and threading.React for the frontend — the SQL/analytics UI is table stakes to compete with Looker/Tableau-adjacent workflows.What the posting reveals: They're hiring both "Full Stack" and "System Engineers" in the same breath. That's a company at the awkward middle stage — the systems work (query planning, distributed execution, Arrow internals) is still greenfield enough to need dedicated hires, but they also need product-surface engineers to make the thing usable enough to sell against Snowflake's polish. Santa Clara onsite (with the "once shelter-in-place ends" caveat placing this squarely in early COVID) suggests they weren't ready to commit to distributed hiring even as competitors were.
Trends highlighted: The separation of storage and compute thesis — that enterprises want to keep data in cheap object storage they control, not locked in a warehouse vendor's format. Also the open-source-core commercial-engine playbook (see also: Confluent/Kafka, Databricks/Spark).
Green flags: Contributing to Apache Arrow is a genuine draw for infra engineers who want their work to outlast their tenure. The tech narrative is coherent and defensible.
Red flags: The posting is thin — no comp mention, no team size, no role level breakdown, generic "Full Stack and System Engineers." For a Series-C-era company (they'd raised ~$115M by then), that reads as a low-effort volume post rather than a targeted hire. It suggests they're throwing a wide net during a hiring freeze rebound rather than filling a specific gap.
Daily Low-Level Programming
2026-07-12
When a driver needs to access user-space memory — an RDMA NIC transferring your buffer over the network, a GPU reading your texture, io_uring holding your submission queue — it can't just dereference the pointer. The user's virtual address is meaningless in kernel context (different page tables under KPTI), the page might be swapped out, and even if resident, the kernel scheduler or memory reclaim could unmap it mid-DMA. The answer is get_user_pages() (GUP), the kernel's mechanism for translating user addresses into pinned physical pages.
The GUP walk does four things: takes mmap_lock in read mode, walks the page tables to find the PTE, faults in the page if not present (honoring COW — writes trigger the copy now, not later), and bumps the page's refcount so reclaim skips it. It returns an array of struct page* pointers the driver can kmap() or hand to a DMA engine.
Real-world example: An RDMA NIC registers a 1GB memory region. The driver calls get_user_pages() on 262,144 4KB pages, receives their physical addresses, programs the NIC's translation table, and the pages stay pinned for the region's lifetime — potentially hours. If the user calls fork(), the classic bug appears: COW would normally mark parent pages read-only, but the NIC is already DMAing into them. Writes from the child (or copy-on-write breakage) can silently diverge from what the NIC sees. This is why Linux added FOLL_LONGTERM (2019) and later pin_user_pages() (2020) — long-term pins mark pages so fork() unshares them eagerly instead of using COW.
Rule of thumb: Pinning 1GB of RAM costs ~262K refcount bumps (~50ns each on modern hardware) = ~13ms of CPU work, plus fault-in time for cold pages. This is why RDMA registration is famously slow and why applications cache MRs aggressively.
Key gotchas:
RLIMIT_MEMLOCK — the default 64KB will instantly fail any real RDMA workload.FOLL_PIN with the newer pin_user_pages() API which the writeback path knows to wait on.copy_from_user() — use one or the other; mixing them creates subtle TOCTOU windows.RFC Deep Dive
2026-07-12
By the late 1990s, Marshall Rose — a veteran of SMTP, POP3, SNMP, and countless other IETF efforts — was tired of watching every new working group reinvent the same wheel. Each new application protocol re-solved framing, authentication, encryption negotiation, asynchronous request/response correlation, and error reporting, and each one got some subtle detail wrong. BEEP (originally BXXP) was his proposed antidote: a reusable application protocol framework that new protocols could sit on top of, the way transport-layer protocols sit on TCP.
The core design. BEEP runs over any reliable, ordered byte-stream transport (usually TCP, per the companion RFC 3081), and multiplexes multiple independent channels over a single connection. Each channel carries messages belonging to a profile — the actual application protocol. Profiles are identified by URIs and negotiated at channel-open time. Messages are typed as MSG, RPY, ERR, ANS, or NUL, giving you request/reply, one-to-many replies, and error signaling built in.
What BEEP gave you for free:
Why you've probably never used it directly. BEEP arrived at an awkward moment. XML-heavy protocols were briefly fashionable (SOAP, XML-RPC), and BEEP's framing headers were text with an XML-in-the-payload flavor that felt heavyweight. Meanwhile, HTTP was busy eating the world — firewalls passed it, load balancers understood it, and developers already knew it. Layering your protocol on HTTP, even awkwardly, beat asking ops teams to open a new port for something called "BEEP."
Where it actually shipped. The most visible deployment is RFC 3195 (Reliable Delivery for syslog), which uses BEEP to give syslog TCP transport with authentication and acknowledgment. It's also the basis of NETCONF over BEEP (RFC 4744, later deprecated in favor of SSH/TLS transports), and appeared in a handful of IoT and industrial protocols. The APEX presence system, the SIP-alternative "IMPP" experiments, and Rose's own reliable syslog work all rode on it.
Why it still matters. If you squint at HTTP/2, QUIC, or WebSocket subprotocols, you can see BEEP's fingerprints: multiplexed streams over one connection, framed messages, negotiated capabilities, symmetric peers. Rose was right about the problem — everyone was reinventing the same primitives — he just picked the wrong decade and the wrong syntax. Modern protocol designers who read RFC 3080 come away with the uncomfortable realization that a lot of what feels novel about HTTP/2 was sitting in an IETF draft in 1998.
BEEP is also a case study in a recurring IETF lesson: generality doesn't sell itself. A framework has to be either dramatically simpler than what it replaces, or ride the coattails of an already-deployed transport. BEEP was neither, and paid the price.
Stack Overflow Unanswered
2026-07-12
Stack Overflow: View Question
Tags: tooling-recommendation, c, rust, webassembly, trunk-rs
Score: 1 | Views: 6
The asker wants to consume a C library (a fork of cubiomes, a Minecraft world-generation library that depends on libc) from a Rust web app built with trunk-rs and eframe/egui, targeting wasm32-unknown-unknown. They know a Rust cubiomes crate exists, but want the newer C fork.
Why this is genuinely hard. Trunk is only orchestration — it invokes cargo build --target wasm32-unknown-unknown and bundles the result. The real problem lives one layer down: you need a C toolchain that emits WebAssembly, and wasm32-unknown-unknown deliberately has no libc. Any C code that includes <stdio.h>, <stdlib.h>, malloc, or file I/O will fail to link because the symbols don't exist in that target.
The direction I'd take.
build.rs using the cc crate to compile the C sources. On the wasm target, cc will look for clang (not gcc) since only clang has a mature wasm backend. Install a recent clang and expose it via CC_wasm32_unknown_unknown=clang and AR_wasm32_unknown_unknown=llvm-ar.wasm32-unknown-unknown to wasm32-wasi if possible — this gives you a real libc (wasi-libc) and most portable C compiles cleanly. Trunk has some support here, but eframe/egui's web integration is built around wasm32-unknown-unknown, so this may not be a drop-in swap.wasm32-unknown-unknown, use the wasi-sysroot from the wasi-sdk and pass --sysroot=/path/to/wasi-sysroot plus -D_WASI_EMULATED_SIGNAL-style shims via cc::Build::flag(...). You'll still have to stub out anything that touches syscalls (file open, threads, time) that cubiomes doesn't actually use at runtime.bindgen, again from build.rs, pointing at the C headers.Gotchas:
fopen/fprintf/malloc paths; you may need to #define those out or provide weak stubs.build.rs, run cargo clean -p your-crate — a stale OUT_DIR object file will silently mask fixes.cubiomes crate exists precisely because someone already solved this. Skim its build.rs — even for the older upstream, its wasm handling is a working reference to fork.cc/bindgen in build.rs.
Daily Software Engineering
2026-07-12
LRU evicts the item touched longest ago. That works when recency predicts future use — but plenty of workloads have items that are old and hot. A daily-report query hit 10,000 times over the last week shouldn't get bumped by a one-off analytics scan just because the scan touched the cache more recently. LFU (Least Frequently Used) flips the axis: evict the item with the lowest access count, regardless of when it was last touched.
The naive implementation stores a counter per entry and scans on eviction — O(n) per eviction, unusable at scale. The classic O(1) LFU (Ketan Shah, 2010) uses two linked structures:
On access: unlink the node from its current frequency bucket, move it to the freq+1 bucket (creating one if needed), and clean up empty buckets. On eviction: take the tail of the lowest-frequency bucket. Every operation is O(1).
Concrete example. A CDN caching thumbnail images. Over a month, the homepage hero image gets 2M hits; a promo image from Black Friday got 500K hits five months ago and none since. Pure LFU keeps the promo forever because its count dwarfs newer entries — this is the cache pollution problem. Pure LRU would happily evict the hero if a scraper hammered the cache with unique URLs for an hour.
Rule of thumb: if your workload's popularity distribution is stable over time (think reference data, product catalogs, config), LFU beats LRU on hit rate by 10–30%. If popularity shifts (news feeds, trending content), pure LFU rots — old celebrities never leave. That's why production systems use aged LFU variants: decay all counters periodically (halve every N seconds), or use LFU with dynamic aging where each new insert gets the current "age" added to its count, so old entries fall behind naturally.
Modern caches rarely use raw LFU. Redis's allkeys-lfu policy uses a probabilistic 8-bit counter with logarithmic increment and time-based decay — the counter saturates fast and forgets slowly. Caffeine (Java) uses W-TinyLFU, which stores frequency in a Count-Min sketch and uses LFU only as an admission filter over an LRU main cache.
When to reach for LFU: workloads with a heavy long tail where a small set of items dominates traffic. When to avoid it: scan-heavy or bursty workloads where "frequent yesterday" doesn't mean "frequent tomorrow" — unless you add aging.
Tool Nobody Knows
2026-07-12
You need to run a program as a specific UID with a specific set of capabilities, no more, no less — plus no_new_privs, an empty supplementary group list, and a parent-death signal so it dies with the shell. Do you write a C wrapper with libcap, prctl, and setresuid? Reach for sudo -u and pray about the environment? Drop in a systemd unit for a one-shot?
setpriv ships with util-linux — meaning it's already on every Linux box you've SSH'd into this year — and does exactly one thing: execve a program with a precisely specified privilege set. No PTY allocation, no PAM stack, no sudoers.conf, no login-shell surprises.
Inspect what you have. Before you drop, look:
$ setpriv --dump
uid: 0
euid: 0
Supplementary groups: [none]
no_new_privs: 0
Inheritable capabilities: [none]
Ambient capabilities: [none]
Capability bounding set: chown,dac_override,dac_read_search,fowner,...
Securebits: [none]
Drop to a user, cleanly. Compare this to sudo -u nobody, which forks a shell, sanitizes environment, and traverses PAM:
setpriv --reuid=nobody --regid=nogroup --clear-groups \
--no-new-privs \
-- /usr/local/bin/myservice
That's the entire "become nobody" ceremony an init system bakes in.
Ambient capabilities, without the C. Say you want ping to run as an unprivileged UID but still hold CAP_NET_RAW. Setuid works but every child inherits root. setcap on the binary works but is fragile across bind-mounts and copies. Ambient caps let a privileged parent hand a capability across execve to an unprivileged child:
setpriv --reuid=1000 --regid=1000 --clear-groups \
--inh-caps=+net_raw --ambient-caps=+net_raw \
--bounding-set=-all,+net_raw \
-- ping 1.1.1.1
Runs as UID 1000, can never gain another capability (bounding set trimmed to just NET_RAW), but pings just fine. This is how you'd write a modern network utility today.
Trim the bounding set for sandboxing. Even root can't reacquire a capability the bounding set has thrown away — the mask sticks across every execve in the tree:
setpriv --bounding-set=-sys_admin,-sys_module,-sys_ptrace \
-- bash
Nothing in that shell — or its children, or its sudo'd children — can mount a filesystem, load a module, or attach a debugger. Container runtimes do exactly this internally.
Parent-death signal for cleanup. Wrappers that daemonize children often leak them when the parent dies. --pdeathsig tells the kernel to signal the child when the parent exits:
setpriv --pdeathsig=TERM -- long-running-worker
Why not sudo / runuser / su? Those exist to elevate a login session interactively. setpriv exists to configure a privilege set programmatically. Different jobs. If you're writing a shell script that needs to launch a helper with a specific UID and capability set, sudo -u drags in a whole session-management pipeline you don't want and can't easily disable. setpriv is what systemd's User=, AmbientCapabilities=, NoNewPrivileges=, and CapabilityBoundingSet= compile down to under the hood — exposed as a plain executable.
Read setpriv(1). It's three pages of what man capabilities and man prctl spend fifty pages describing.
setpriv from util-linux does it in one execve, no PAM or sudoers baggage.
What If Engineering
2026-07-12
Every elevator ride is a gravity ledger. Going up, you spend energy; going down, you throw it away as heat in the brake resistor. A modern high-rise elevator burns roughly 2–8% of a building's total electricity. Let's design a system that harvests the descent instead — and see if a skyscraper can partially power itself on the potential energy of its own occupants.
The physics of a falling human. An 80 kg passenger descending 400 m (roughly the Burj Khalifa's usable elevator run) releases:
E = mgh = 80 × 9.81 × 400 ≈ 314,000 J ≈ 0.087 kWh
That's about a penny's worth of electricity. Underwhelming — until you scale it. A busy commercial tower moves ~15,000 passenger-trips per day. Assume half go down from high floors. At an optimistic 80% regeneration efficiency (permanent-magnet synchronous motor + IGBT inverter feeding back to the bus), that's:
7,500 × 0.087 kWh × 0.80 ≈ 520 kWh/day ≈ 190 MWh/year
Enough to run about 20 US households — or roughly 0.5% of a 100-story tower's annual electricity draw. Not a revolution. But we haven't counted the counterweight yet.
The counterweight is the real battery. Standard elevators use a counterweight equal to the empty car plus ~50% of rated load. The motor only pushes the imbalance. If we deliberately design a "cargo-descent" mode — say, moving 2,000 kg of freight, water, or trash down the shaft at night — the numbers explode:
E = 2000 × 9.81 × 400 = 7.85 MJ per trip ≈ 2.2 kWh 100 trips/night × 2.2 kWh × 0.80 ≈ 175 kWh/night
Now we're competing with a residential Powerwall on a nightly basis, using infrastructure that already exists.
Where the electrons go. Regen elevators already exist (KONE, Otis, Schindler all sell them). The catch: the DC bus in a single elevator drive is tiny. Dump 50 kW of regen power into it during a full-load descent and voltage spikes trip the drive. Real installations either:
The counterintuitive limit: rope mass. Above ~500 m of hoist, the steel cables themselves weigh more than the car. A 400 m run of 16 mm steel wire rope masses ~500 kg per rope, and you need 6–8 of them. The rope becomes the dominant thing you're accelerating. This is why the Burj uses a sky-lobby transfer scheme, and why supertall regen calculations should really use KEVLAR or carbon-fiber belts (Otis's flat polyurethane-coated steel belts already cut mass by 80%).
The uncomfortable finale. A skyscraper is a terrible battery. Water pumped to the roof tank stores ~10× more energy per unit mass than people riding elevators, because you can drop it whenever you want. The regen elevator's real value isn't grid-scale storage — it's load shifting within the building's own service. Every up-trip that's paid for by a simultaneous down-trip is a trip the utility never sees.
Wikipedia Rabbit Hole
2026-07-12
Wikipedia: Read the full article
The odds of being struck by lightning in a given year are roughly one in a million. The odds of being struck seven times and surviving are so vanishingly small that statisticians essentially refuse to calculate them. And yet, a U.S. Park Ranger named Roy Sullivan managed exactly that between 1942 and 1977, earning himself a Guinness World Record and the nickname "the Human Lightning Rod."
Sullivan worked at Shenandoah National Park in Virginia, which sits atop a ridge that acts like an atmospheric magnet during thunderstorms. But geography alone doesn't explain his rap sheet. The strikes ranged from the almost-comedic to the genuinely horrifying:
Here's where the Faraday cage connection gets fascinating. Your car is generally considered one of the safest places to be during a thunderstorm — not because of the rubber tires (a common myth), but because the metal body conducts current around the passenger compartment and into the ground. It's a Faraday cage on wheels. Sullivan's 1969 strike is a physics lesson in what happens when that cage has openings: with the windows down, the lightning found a path through him rather than around him.
The 1973 incident is even stranger. Sullivan reported that a cloud seemed to follow him — he tried driving away and it kept pace. Meteorologists have since documented that certain ridge-line storm systems can indeed "track" moving objects because updrafts respond to localized heat sources. A running vehicle on a bare road is a thermal beacon.
Sullivan's wife was also struck once (while hanging laundry — he was standing right next to her). His colleagues eventually stopped standing near him during storms. He took to carrying a jug of water in his truck to douse his hair when it caught fire, which happened often enough that he considered it routine equipment.
Daily YT Documentary
2026-07-12
Channel: DROP' (15 subscribers)
Note: Honestly, none of today's candidates cleared the quality bar. Two are YouTube Shorts and one is a channel-introduction video with no substantive content. I'm picking this as the least bad because it at least gestures at a real historical topic worth learning about.
The clip promises a compressed origin story of the Ottoman Empire — a state that grew from a small Anatolian frontier principality under Osman I around 1299 into one of the longest-lived empires in world history, spanning six centuries and three continents before its dissolution in 1922. The rise of the Ottomans is a genuinely fascinating case study in how a marginal ghazi warrior band on the Byzantine frontier managed to out-maneuver larger, wealthier neighbors through a mix of military innovation (the famous Janissary corps), pragmatic administration, and shrewd exploitation of Byzantine decline.
That said, a #shorts format cannot do this topic justice. Expect a highlights-reel version — decent as a hook for viewers unfamiliar with the period, but you'll want to follow up with a longer treatment (Osprey histories, the podcast Ottoman History Podcast, or Caroline Finkel's Osman's Dream) to actually understand the story.
Daily YT Electronics
2026-07-12
Channel: learning with DIS (315 subscribers)
Pneumatics sits in an awkward spot for most electronics hobbyists — we know Ohm's law cold but freeze up when asked to read a schematic full of triangles, arrows, and spring symbols. This tutorial walks through building a working circuit around a 5/2 directional control valve (five ports, two positions) inside FluidSIM, which is the de-facto simulator for fluid power coursework.
The 5/2 DCV is the pneumatic analogue of a DPDT switch driving an H-bridge: it routes supply air to one side of a double-acting cylinder while venting the other, then swaps on actuation. Understanding why it needs five ports (supply, two working lines, two exhausts) rather than four is one of those small conceptual clicks that makes every downstream circuit — sequential actuation, memory circuits, cascade systems — suddenly readable.
FluidSIM itself is worth the price of admission: you can drag components onto a schematic, wire them, and watch the cylinder actually extend and retract in animation, with pressure and flow annotated live. It's a fantastic sandbox for learning without a compressor and a bench full of fittings. A small-channel tutorial that teaches a specific tool plus a specific canonical circuit is exactly the kind of focused content that's hard to find on the algorithm-driven front page.
Daily YT Engineering
2026-07-12
Channel: The Forensic Dossier HQ (118 subscribers)
This forensic engineering case study dives into one of the most-taught structural failures in modern civil engineering curricula: the catastrophic consequences of a seemingly innocuous change to a steel rod connection detail. Rather than sensationalizing the tragedy, the video focuses on the load path physics — specifically how a single-rod hanger design was substituted mid-construction with a double-rod arrangement, and why that substitution effectively doubled the load on the critical box-beam connection that ultimately failed.
What makes this worth watching over the countless other Hyatt Regency retrospectives is the framing around free body diagrams and connection detailing. The video walks through why the original design already had a slim safety margin, how the fabricator's proposed shop-drawing change looked geometrically equivalent but wasn't statically equivalent, and how the review process failed to catch it. It's a clean lesson in why engineers must independently verify load transfer at every node when constructibility changes come back from the field.
At 118 subscribers, the channel is clearly early-stage, but the framing as a "forensic dossier" suggests a case-study format that treats failures as data rather than spectacle — the right mindset for anyone studying structural engineering, construction management, or safety-critical design review.
Daily YT Maker
2026-07-12
Channel: Ergohabit (2 subscribers)
Most of today's candidate pool leans heavily on hashtag-stuffed shorts, silent background footage, or vague "look what I printed" clips with minimal explanation. The Flip Dock from Ergohabit stands out as an actual functional design project — a 3D-printable desk organizer with a hinged flip mechanism that conceals a compartment for coins, USB drives, earbuds, and cards.
What makes this worth watching is the design thinking behind it rather than the print itself. Hidden-compartment desk objects require careful attention to tolerances on the hinge, weight distribution so the flip action feels satisfying, and interior geometry that accommodates several oddly-shaped small items without wasted space. These are exactly the kinds of constraints that separate a well-considered printable design from a novelty STL.
Ergohabit has only 2 subscribers, which means this is likely one of their earliest uploads — a good time to catch a maker before their design language matures, and to see the raw problem-solving that goes into a functional print. If the video walks through the CAD reasoning or print orientation choices, it's genuinely educational for anyone designing their own snap-fit or hinged enclosures.
Caveat: the rest of today's pool was weak (many shorts and hashtag-spam titles), so this is the strongest option rather than a standout across all recent uploads.
Daily YT Welding
2026-07-12
Channel: 이노무스킬 (3650 subscribers)
Note: this batch is unusually weak — nearly every candidate is a hashtag-spammed short with no description. This Korean-language piece is the least-bad pick because it at least frames itself as a documented process rather than pure background footage.
The channel 이노무스킬 ("Innomu Skill") documents a traditional Korean daejanggan (대장간) — a village blacksmith shop — as experienced smiths hammer heated iron on the anvil to form working tools. The description explicitly sets up a "work overview" (작업 개요) rather than just dumping raw footage to music, which suggests some narration or captioning about the sequence: heating, drawing out, shaping, and finishing.
What makes traditional Korean smithing worth a look is the two-person striking rhythm still used in these shops: the master smith directs with light taps of a smaller hammer while a striker follows with the heavy sledge. It's a coordination pattern that largely disappeared in Western shops once power hammers took over, and watching it in a working environment (rather than a museum reenactment) shows why the tradition survived — it's genuinely fast for producing agricultural blades and hooks.
At 3,650 subscribers the channel is squarely in the small-creator range, and process-focused footage from an active traditional workshop is rarer than the generic sparks-and-hammering shorts filling the rest of the list.
