26 newsletters today.
Abandoned Futures
2026-07-16
In 1964 — the same year the SR-71 Blackbird made its first flight — the CIA quietly asked American aerospace firms a simple question: what comes after Mach 3? The Blackbird's titanium airframe was already known to be vulnerable to Soviet SA-5 surface-to-air missiles, and satellite reconnaissance couldn't yet provide the on-demand coverage the agency wanted. The answer, developed over the next five years under two related programs, was one of the most audacious aircraft ever seriously designed: Project Isinglass (McDonnell, 1964–1965) and its successor Project Rheinberry (McDonnell, 1965–1968).
Isinglass was the smaller of the two — a rocket-powered reconnaissance glider air-launched from a B-58 Hustler, boosting to roughly Mach 4–5 and 100,000 feet. The CIA looked at it, decided it wasn't enough of a leap, and told McDonnell to go bigger. What came back was Rheinberry.
Rheinberry was a manned, single-pilot, rocket-powered reconnaissance vehicle launched from atop a modified B-52. Its design specs, declassified in 2013 by the CIA:
This was not a paper airplane. McDonnell built full-scale mockups. Pratt & Whitney actually built and test-fired the XLR-129 engine at 250,000 pounds of thrust — it remained, for decades, the highest-performance staged-combustion hydrogen engine ever tested in the West. (The RD-0120 that powered the Soviet Energia rocket used similar principles.) The heat-shield materials were tested in arc-jet facilities at Ames.
Why it died: Three things happened between 1966 and 1968. First, the KH-9 HEXAGON satellite program matured, promising near-real-time film-return imagery from orbit. Second, the CIA's National Reconnaissance Office (NRO) argued — correctly — that satellites couldn't be shot down by SAMs. Third, Rheinberry's projected cost hit $5 billion in 1968 dollars (roughly $45 billion today), and Vietnam was eating the defense budget. President Johnson cancelled Rheinberry in early 1968. The XLR-129 program limped along until 1970, when its technology was rolled into what became the Space Shuttle Main Engine.
Why it could work now: Every technical objection to Rheinberry has been retired. Transpiration cooling is standard in modern rocket engines. Additive manufacturing lets us print single-piece Inconel combustion chambers that would have taken McDonnell 18 months to hand-fabricate. The XLR-129's staged-combustion principles are now routine — SpaceX's Raptor and Blue Origin's BE-4 both use closed-cycle designs. Autonomous flight control eliminates the pilot and the life-support mass penalty. And the reconnaissance mission, thought dead in 1968, is very much alive again: satellites have predictable orbits, and modern anti-satellite weapons make LEO reconnaissance vulnerable in ways it wasn't in 1970. A hypersonic air-launched glider that shows up unpredictably, images a target, and is gone in twelve minutes is exactly what the DoD's current "Mayhem" and "Blackswift" programs are trying to build — 55 years after Rheinberry solved most of the problem on paper.
ArXiv Paper Digest
2026-07-16
Authors: Niels Mündler-Sasahara, Hristo Venev, Dawn Song, Martin Vechev
ArXiv: 2607.13921v1
PDF: Download PDF
When an AI writes code, it typically works like a novelist typing without a spellchecker: it produces the whole draft, then someone runs it through a compiler afterwards to see what broke. If the code has type errors, undefined variables, or borrow-checker violations (a Rust specialty), you either throw it away or feed the errors back and ask for a rewrite. This is wasteful, especially for languages like Rust where the compiler enforces strict rules about memory ownership that trip up even experienced humans.
The authors propose generative compilation: what if the compiler ran alongside the AI, checking each token as it was generated, and steering the model back on track the moment things started to go wrong?
Two existing approaches almost solve this but fall short:
Their trick is to sit between these two: let the AI generate freely for a bit, but continuously invoke the real compiler on the partial output as it grows. When the compiler flags an error, the system rolls back to just before the mistake and nudges the model with the error message, so it retries that stretch with better information. Crucially, this works with black-box models — you don't need to modify the LLM itself, just wrap its API.
Because they use the actual compiler rather than a reimplementation, they get the full richness of Rust's semantic checks (lifetimes, traits, borrow checking) for free. And because feedback happens mid-generation rather than after, the model doesn't have to unwind a whole broken function to fix a mistake made three lines in.
The paper shows this approach materially improves the fraction of Rust programs that compile on the first try, without needing model fine-tuning or bespoke grammars for every semantic rule.
Daily Automotive Engines
2026-07-16
The valve seat isn't just where the valve rests — it's the final restriction the intake charge sees before entering the cylinder. A multi-angle valve job replaces the sharp geometric transition of a single 45° seat with a series of blended angles that guide flow smoothly into the bowl. The next step beyond that is the radiused seat, where the angles are replaced entirely by a continuous curve.
A traditional three-angle job uses 30° / 45° / 60° cuts: a top cut opens the transition from the chamber, the 45° is the actual sealing surface, and the throat cut blends into the bowl. A five-angle job adds intermediate steps — something like 30° / 37° / 45° / 55° / 65° — reducing the abrupt direction changes that cause flow separation at low valve lifts.
Why does this matter? At low lift (under 0.200"), the curtain area between the valve and seat is the flow-limiting restriction — not the port. Flow has to make a hard turn around the seat corner, and sharp transitions create vena contracta, where the effective flow area is smaller than the geometric area. Smoothing the transition can add 15–25 CFM at low lift on a typical small-block head — often more low-lift gain than porting the runner itself.
Real-world example: On a stock LS3 head, a factory three-angle seat flows about 145 CFM at 0.200" lift on the intake. A quality five-angle valve job (without touching the port) typically pushes that to 165–170 CFM at the same lift — a 15% gain in the range where a stock cam actually operates. This is why NASCAR Cup heads use radiused seats: they've eliminated the discrete angles entirely for a smooth toroidal blend from sealing surface to bowl.
The tradeoff: The sealing surface itself has to stay narrow — typically 0.040"–0.060" wide on intake, 0.060"–0.080" on exhaust. Wider seats reject heat better (important for exhaust) but leak more easily and can trap carbon. Too narrow, and the seat pounds itself into recession. The multi-angle cuts sacrifice seat width for flow, which is why race engines need frequent valve jobs.
Rule of thumb: For low-lift flow gains, the valve job matters more than the port. A quality multi-angle job on stock heads typically yields 10–15 HP on a naturally aspirated V8, with most gains coming below 4,000 RPM where the valve spends most of its time near the seat.
Daily Debugging Puzzle
String.split() Trailing Empty Trap: The CSV Row That Loses Its Last Column2026-07-16
This function ingests one row of a CSV export into a record keyed by header names. Header and row share the same comma-separated shape, so we split each and zip them together.
import java.util.HashMap;
import java.util.Map;
public class CsvIngest {
public static Map<String, String> parseRow(String header, String row) {
String[] cols = header.split(",");
String[] vals = row.split(",");
if (cols.length != vals.length) {
throw new IllegalArgumentException(
"column count mismatch: " + cols.length + " vs " + vals.length);
}
Map<String, String> record = new HashMap<>();
for (int i = 0; i < cols.length; i++) {
record.put(cols[i], vals[i]);
}
return record;
}
public static void main(String[] args) {
String header = "id,name,email,notes";
// notes field is empty for this user
String row = "42,Alice,[email protected],";
System.out.println(parseRow(header, row));
}
}
Every unit test passes: rows with populated notes fields round-trip fine. Then a batch of real production data hits and the ingester starts throwing column count mismatch: 4 vs 3 on rows that look identical to the header shape. Where did the fourth value go?
The one-argument String.split(regex) is a convenience wrapper for split(regex, 0). And the 0 limit has a special behavior documented in a single easy-to-miss sentence: "trailing empty strings are therefore not included in the resulting array."
So "42,Alice,[email protected],".split(",") returns a length-3 array — ["42", "Alice", "[email protected]"] — because the empty string after the final comma is silently discarded. But the header "id,name,email,notes" has no trailing comma, so it splits into 4 elements. The two arrays no longer line up.
It gets worse. ",,,".split(",") returns an empty array, not four empty strings. Every trailing empty gets eaten until nothing is left. Any input that could ever end with empty fields is a landmine, and CSV, TSV, pipe-delimited exports, and log lines all frequently do.
The fix is to pass a negative limit, which disables the trailing-empty stripping and returns every token, empty or not:
String[] cols = header.split(",", -1);
String[] vals = row.split(",", -1);
Now "42,Alice,[email protected],".split(",", -1) returns the full four elements ["42", "Alice", "[email protected]", ""] and the record maps correctly.
Why does the default behavior exist at all? It's a convenience for parsing whitespace-terminated tokens, where you don't want a phantom empty string after a trailing separator. That default is defensible for interactive input; it is catastrophic for structured data formats where field position is meaningful.
The lesson generalizes: any parsing API with a "smart" default that silently trims boundary cases will bite you the moment your data isn't uniform. If you care about column count, always pass an explicit limit. Better yet, use a real CSV library (OpenCSV, Jackson CSV, Apache Commons CSV) that handles quoting, escaping, and empty fields correctly — because the trailing-empty trap is only the tip of what a hand-rolled split(",") gets wrong.
String.split(regex) silently drops trailing empty strings; pass split(regex, -1) whenever field position matters, or reach for a real CSV parser.
Daily Digital Circuits
2026-07-16
Every ADC you've read about assumes its input is stationary during conversion. A SAR ADC needs 12 clock cycles of stable input to resolve 12 bits. A pipeline ADC needs the signal held constant while it propagates through five stages. Real signals don't cooperate — they move. The sample-and-hold (S/H) circuit is the workhorse that takes a snapshot of a fast-moving analog signal and freezes it long enough for the converter to think.
The topology is embarrassingly simple: a MOSFET switch and a hold capacitor. When the switch closes ("track" phase), the cap follows the input through the switch's RC. When the switch opens ("hold" phase), the cap retains that voltage while the ADC digitizes it. Two components. Four ways to ruin it.
Rule of thumb for sizing the hold cap: pick C_hold so that droop during one conversion time is less than half an LSB. If you're holding for 1 μs with 1 nA of leakage on a 1 V, 12-bit ADC (LSB = 244 μV), you need C ≥ I·t / (LSB/2) = 1 nA · 1 μs / 122 μV ≈ 8 pF. Bigger is safer but slows tracking.
Real-world example: Analog Devices' AD9445 is a 14-bit, 125 MSPS pipeline ADC. Its front-end S/H uses bottom-plate sampling (opening the ground-side switch a hair before the input-side switch) so signal-dependent charge injection cancels to first order. It also uses differential dummy switches — half-sized transistors driven by the inverted clock that inject equal-and-opposite charge. Without these tricks, the ADC couldn't hit 73 dB SNR.
Daily Electrical Circuits
2026-07-16
When mains power drops for a few hundred milliseconds — a nearby lightning strike, a utility switchover, a brownout — your microcontroller resets, your SSD corrupts its FTL, or your industrial controller loses state. Batteries are overkill for this: they have finite cycle life, need charge management ICs, and hate high-temperature environments. Supercapacitors (also called EDLCs — Electric Double-Layer Capacitors) are the right answer for sub-minute ride-through, offering hundreds of thousands of charge cycles and 10+ year lifetimes.
The circuit topology is straightforward: a charge current limiter (the supercap looks like a short circuit when empty and can pull tens of amps from your 5V rail), an ideal diode or OR-ing MOSFET to prevent the supercap from backfeeding the input, and a boost converter on the output because the supercap voltage sags dramatically as it discharges.
Real-world example: RAID controller cache backup. LSI/Broadcom RAID cards use a supercap module (often 3× 10F in series, ~3.3F effective at 8.1V) to power DRAM long enough to flush it to onboard flash after a power failure. Typical hold time: 30 seconds at ~1W load. This replaced BBU (battery backup units) that needed replacement every 2-3 years.
Sizing calculation. The energy stored is E = ½CV². For a load drawing constant power P over hold time t, you need:
C ≥ 2Pt / (V_start² − V_min²)
Say your 3.3V load draws 500 mW and needs 5 seconds of ride-through. Your supercap charges to 5V and your boost converter still works down to 1V input. Then C ≥ 2(0.5)(5) / (25 − 1) = 0.208 F. A 0.22F, 5.5V EDLC (about $2) does the job.
Watch-outs:
For 100 ms–60 s backup windows, supercaps beat batteries on reliability, temperature range (−40 to +85°C), and maintenance.
Daily Engineering Lesson
2026-07-16
V-belts transmit power through friction between wedge-shaped rubber and matching sheaves. That friction can slip — usually by 1-3% under normal load, more when belts age or get contaminated with oil. For most fans and pumps, slip doesn't matter. But when you need a driven shaft to stay in phase with the driver — a camshaft, a 3D printer axis, a robot joint — you need positive engagement. That's what a timing belt provides.
A timing belt is a reinforced rubber (or polyurethane) belt with molded teeth on its inner surface that mesh with matching grooves on the pulleys. Because the teeth physically engage, there's no slip and the two shafts maintain an exact, repeatable angular relationship. This is why every internal combustion engine either uses a timing belt or a timing chain to link the crankshaft to the camshaft — if that phase drifts, valves and pistons collide.
Tooth profiles matter more than you'd think:
Sizing rule of thumb: for HTD 5M at moderate speed, a 15mm-wide belt handles roughly 200-400 W per meter of belt speed. So a belt running at 2 m/s carries roughly 400-800 W. Always check the manufacturer's chart for the actual pitch, width, and small pulley tooth count — belts wrapped around tiny pulleys have fewer teeth in mesh and derate hard.
Design gotchas:
Forgotten Books
2026-07-16
Book: CIA Reading Room cia-rdp80-00809a000600360987-7: BIOGRAPHIC DATA ON POLISH SCIENTISTS by CIA Reading Room (1950)
Read it: Internet Archive
Buried inside a declassified 1950 CIA intelligence dossier — the sort of document meant to help American analysts understand who mattered behind the Iron Curtain — sits a quiet paragraph about a Polish professor whose contribution to engineering has been slowly written out of the story.
Maksymilian Tytus Huber, winner of the State Prize in Science, is professor of advanced mechanics in the Polytechnical Department of the Mining and Metallurgical Academy in Krakow. He was born on 4 January 1872 in Kroscienko on the Dunajec River... He received his doctor's degree there for his thesis, "Z Teorji Stykania Sie Cial Stalych" (Theory of Impact Between Solids), the findings of which were published in the Annalen der Physik (1904) and became widely incorporated in textbooks.
The CIA analyst noted this almost as trivia. But that 1904 paper contains one of the most important ideas in modern mechanical engineering: the distortion energy criterion for predicting when a metal will yield under complex stress. Huber's insight was that materials don't fail based on total stored energy — they fail based only on the portion of energy that changes their shape, not their volume.
Today every mechanical engineer, every civil engineer designing a bridge or a pressure vessel, every finite-element software package uses this criterion. It's plotted on stress-strain diagrams as an ellipse. It predicts when a car chassis will crumple, when a turbine blade will crack, when a steel beam will bend permanently.
And it's almost universally called the "von Mises criterion."
Richard von Mises published his version in 1913. Heinrich Hencky refined it in 1924. Huber's 1904 paper — written in Polish, in a journal with modest reach — went uncited by the Germans. For decades the criterion was known in Polish and some Russian textbooks as the "Huber hypothesis." Elsewhere, Huber was erased.
Modern historians of engineering have partially rehabilitated him: you'll sometimes see the full name "Huber–Mises–Hencky yield criterion" in more careful papers, particularly European ones. But ask a working American engineer where the formula came from and they'll say "von Mises," full stop.
The CIA dossier is unintentionally poignant. Written six years before Huber's death, it lists his credentials matter-of-factly — the Vienna Technical Research Bureau, the Mechanical Research Station in Lwów, the State Prize in Science — as intelligence about a Communist-bloc asset. The analyst didn't seem to realize they were documenting the man whose equation was, at that very moment, being used to design every American airframe and pressure hull built during the early Cold War.
Forgotten Darkroom
2026-07-16
Book: The practical printer : a complete manual of photographic printing by Charles W. Hearn (1874)
Read it: Internet Archive
Buried in the preface of a workaday 1874 manual for photographic printers sits one of the most quietly radical claims about learning a craft that the Victorian era produced. Charles W. Hearn, writing for apprentices in Philadelphia darkrooms, insisted that fine equipment and clean source material actively impede skill acquisition:
It is not the printing from excellent negatives that teaches the learner, for fine prints from such are very easily obtained; but it is the printing from poor negatives that instructs him, and it is on this account that many printers in poor galleries often understand best the printing of difficult negatives, because they are more accustomed to print from such.
Hearn's Practical Printer was published by Benerman & Wilson in Philadelphia during the wet-collodion era, when albumen prints were the commercial standard and photographic printing was a distinct trade separate from the "operator" who exposed the plate. Hearn had trained in commercial galleries and structured his book around problem negatives — those that were flat, thin, overexposed, chemically stained, or otherwise "doctored." He noted every case he described was a real one that had been "given to him to print from."
The insight has quietly resurfaced across modern skill-acquisition research. It anticipates what learning scientists now call desirable difficulties (Robert Bjork, 1994) — the counterintuitive finding that conditions which slow acquisition, increase errors, and frustrate learners in the short term produce dramatically better long-term retention and transfer. Studies of chess grandmasters, medical residents, and jazz musicians all show the same pattern: expertise correlates less with hours logged than with time spent operating at the ragged edge of failure.
Hearn also gets something else right that modern educators are still relearning: the poor country studio outperforms the prestigious one at hard cases. This is the same phenomenon documented in rural physicians who see a wider disease range than specialists in famous hospitals, or in tradesmen from small shops who repair rather than replace. Scarcity forces skill; abundance permits routine.
For anyone who has taught themselves a craft — coding, cooking, photography, machining — the corollary is obvious but rarely followed: seek out the broken input on purpose. Fix the ugly bug in the legacy codebase. Cook from the wilted vegetables. Print the muddy negative. The clean case teaches you nothing you didn't already know.
Modern photography has largely lost this framing. Digital workflows, RAW files with 14 stops of dynamic range, and one-click AI restoration mean the beginner rarely encounters a truly hostile image. Hearn would probably observe, tartly, that this is why so few contemporary retouchers can rescue a genuinely damaged file.
Forgotten Patent
2026-07-16
On October 8, 1926, an Austrian-Hungarian physicist named Julius Edgar Lilienfeld — recently emigrated to the United States, working out of a Brooklyn lab — filed a patent describing a device that shouldn't have existed for another two decades. It was granted January 28, 1930, as US Patent 1,745,175: "Method and Apparatus for Controlling Electric Currents."
The invention was, in plain language, a field-effect transistor.
Lilienfeld's device sandwiched a thin film of semiconductor material (he suggested copper sulfide) between a source and drain electrode, with a third "control" electrode placed nearby but electrically insulated. Applying a voltage to the control electrode created an electric field that swept charge carriers through the semiconductor channel — modulating the current between source and drain without the control electrode ever drawing current itself.
That is exactly how every MOSFET in your phone, laptop, and car works today. Lilienfeld described it in 1926.
He filed two follow-up patents — US 1,877,140 (1932) and US 1,900,018 (1933) — refining the geometry and materials, including a version that looks remarkably like a modern thin-film transistor. And then… nothing. Lilienfeld never built a working prototype. He couldn't. The semiconductor materials of the 1920s were riddled with surface states and impurities that trapped charge carriers and killed the field effect before it could do useful work. The physics was right; the metallurgy was a generation away.
Here's where the story gets extraordinary. In December 1947, Bardeen, Brattain, and Shockley at Bell Labs demonstrated the point-contact transistor — but they had originally been trying to build something much closer to Lilienfeld's field-effect device. Shockley's team went to file their patent and were told, essentially, "you can't." Lilienfeld's 1926 patent claims were broad enough that Bell Labs' patent attorneys had to carve carefully around them. That's part of why the world got the bipolar junction transistor first — it was patentable in a way the field-effect device wasn't.
The MOSFET, when Mohamed Atalla and Dawon Kahng finally built one in 1959, was essentially a vindication of Lilienfeld's 33-year-old drawings. The breakthrough that made it work was the silicon dioxide gate insulator — the missing material that Lilienfeld's copper sulfide films couldn't approximate.
Why it matters now:
Lilienfeld died on the Virgin Islands in 1963, largely forgotten. The American Physical Society named its highest condensed-matter prize after him in 1988. Every time you tap a screen, roughly a billion Lilienfeld-descendant switches flip to render the response.
Daily GitHub Zero Stars
2026-07-16
Language: Unknown
This repository is a mirror of the libcom.org/book archive — a long-running online library of anarchist and communist literature, pamphlets, and historical texts. The maintainer has explicitly noted that the materials are distributed under Creative Commons or anti-copyright terms per libcom's own policy, making this a legitimate preservation effort rather than a rehost of restricted content.
What makes it interesting isn't the code — there isn't much — but the archival intent. Text archives on the political fringes have a way of quietly disappearing: domain lapses, hosting bills, moderation disputes, or plain link rot. A GitHub mirror sidesteps most of those failure modes. Even if libcom.org went offline tomorrow, the corpus would survive as long as one fork exists somewhere.
Who might find this useful:
git clone.The absence of stars is a little surprising given the utility, but mirrors like this tend to be discovered by word-of-mouth rather than trending pages. If you care about keeping niche knowledge accessible — regardless of whether you agree with the politics — small preservation projects like this are exactly the kind of quiet infrastructure work that deserves a fork just to keep another copy alive.
Daily Hardware Architecture
2026-07-16
Spin-waiting burns power and steals SMT resources from the sibling thread. The x86 MONITOR/MWAIT instruction pair lets a core tell the hardware "wake me when this specific address gets written," then park in a low-power state until it happens — no polling required.
How the hardware actually implements it:
The catch: the monitor is armed against a physical cache line, not your logical variable. If the write hits a different line, you sleep forever (until the next interrupt). And spurious wake-ups happen — coherence traffic on the same line from unrelated false-sharing counts. You must re-check the condition in a loop.
Real-world example: Linux's idle loop uses MWAIT to sleep on the need_resched flag of the per-CPU task_struct. When the scheduler on another core wants to wake this CPU, it just writes that byte — the coherence invalidation trips the monitor and the idle core wakes in ~100ns without ever executing a polling instruction. Compare that to a HLT-based idle that only wakes on interrupts (requiring an IPI, ~1µs+).
DPDK and Intel's umwait (user-mode variant, added in Tremont/Tiger Lake) use this for lock-free queues: producer writes a slot, consumer sleeps on the slot's address, wakes on the coherence poke. No syscall, no futex, no interrupt.
Rule of thumb: if you have a tight polling loop checking a single memory location that changes infrequently (say, less than once per microsecond), MWAIT saves roughly 1–5W per hyperthread and frees the sibling SMT thread to run at full speed. Below ~200ns between updates, the wake-up latency eats the win — just spin.
MWAIT is a ring-0 instruction historically; UMWAIT/UMONITOR extended it to userspace with a max-timeout MSR so a rogue process can't sleep forever.
Hacker News Deep Cuts
2026-07-16
Link: https://github.com/azac/cobol-on-wheelchair
HN Discussion: 2 points, 0 comments
Somewhere between a joke and a monument to stubborn engineering sits COBOL on Wheelchair — a micro web framework for a language that predates the web by roughly three decades. The name is a knowing wink at Ruby on Rails, and the project delivers exactly what it promises: routes, templates, and HTTP handling written in a language whose primary users today are still running batch jobs at banks and insurance companies.
Why should a technical audience care about a repo that looks, at first glance, like a punchline? A few reasons:
The project leans into its absurdity — the repo name alone is a commitment to the bit — but the underlying craft is real. Wiring GnuCOBOL to a CGI handler, defining a template DSL inside COPY files, and making it feel almost ergonomic is the kind of thing that requires deep familiarity with both worlds.
It also lands at an interesting moment: with LLMs newly able to read and translate COBOL at scale, the language is quietly having a second wind in tooling. Small projects like this become reference points — canonical examples of how to graft modern shapes onto ancient runtimes without demanding a full migration.
Worth a star, worth a read, worth thinking about the next time someone claims a legacy system "can't" do something.
HN Jobs Teardown
2026-07-16
Source: HN Who is Hiring
Posted by: misiti3780
Of the ten postings, Ventus Risk (ID 22674990) is the most revealing because it inadvertently tells a complete story about where enterprise insurtech sits in 2020: an industry that spent decades avoiding modernization now scrambling to catch up, one React app at a time.
The stack tells the story. React + Redux + TypeScript, bundled with webpack, deployed via Jenkins. This is the safest, most defensible stack a CTO could pick in 2020 — nothing experimental, nothing that would spook an insurance-industry board. TypeScript signals they've been burned by JavaScript's runtime looseness (understandable when you're calculating property premiums). Jenkins over GitHub Actions or CircleCI suggests either on-prem deployment requirements, compliance auditors who want a self-hosted CI, or simply institutional inertia — all three are common in insurance.
What the posting quietly admits:
Green flags: Real production usage, modern-enough frontend stack, remote-friendly, W2 (benefits + stability). The "make a large impact" framing suggests a small enough team that individual contributions matter.
Red flags: No mention of the backend stack — a suspicious omission that usually means legacy .NET, Java monoliths, or a database schema that predates the engineer reading this. No team size, no funding stage, no engineering leadership named. "Property underwriting system" is a narrow vertical — career optionality is limited if insurtech cools off.
The trend it highlights: Vertical SaaS eating specialty insurance. Property underwriting has historically been Excel + PDF + tribal knowledge. Ventus is one of many bets that a modern web app plus workflow automation can extract margin from an entrenched, unloved workflow — the same playbook Procore ran on construction and Toast ran on restaurants.
Daily Low-Level Programming
2026-07-16
Added in Linux 6.10 (mid-2024), mseal() closes a decades-old attack window: even after you mprotect() a page to read-only, an attacker with a write primitive can just call mprotect() again to flip it back to PROT_WRITE, patch the code, and continue. Sealing removes that escape hatch — the seal itself cannot be undone for the lifetime of the process.
The signature is deliberately minimal:
int mseal(void *addr, size_t len, unsigned long flags);mprotect(), munmap(), mremap(), mmap() over the same range, and any madvise() that would drop pages (like MADV_DONTNEED on file-backed writable mappings).Concrete real-world example. glibc 2.40+ automatically seals the loader (ld.so), the vDSO, and PT_LOAD segments of the main executable and every shared library after relocations complete. Before mseal, exploit chains like the "RELRO bypass via mprotect gadget" would find an mprotect call in libc's PLT, pivot to it with a controlled second argument, and re-enable write on .got.plt. After sealing, that gadget returns -EPERM and the chain dies at the syscall boundary. Chrome's V8 also seals its JIT code pages once emitted, so a corrupted function pointer can no longer be turned into arbitrary code execution by remapping the page as writable.
Rule of thumb for sizing. The kernel tracks seals per-VMA, and sealing a range that partially overlaps a VMA splits it. If you seal 4KB in the middle of a 2MB mapping, you now have three VMAs where you had one, and every future page fault in that region walks a longer rbtree. Align sealed ranges to whole VMA boundaries: seal the entire .text segment, not individual functions. A useful heuristic — if you would need more than ~8 seal calls to protect a region, restructure your allocation so a single seal covers a contiguous, aligned block instead.
Gotchas. Sealing is one-way; there is no munseal. You cannot seal stack pages of a running thread (the kernel needs to grow/shrink them). fork() preserves seals in the child, but execve() resets everything since it builds a fresh address space. Check /proc/self/maps — sealed VMAs get an sl flag in the newer kernel format.
mseal() turns a memory region's permissions and layout into a one-way commitment, closing the "mprotect-back-to-writable" step that most modern code-injection exploits depend on.
RFC Deep Dive
2026-07-16
Every REST developer has typed PATCH /users/42 without pausing to wonder why HTTP needed a whole RFC — thirteen years after HTTP/1.1 shipped — to add a verb that seems obvious. The history is quirkier than you'd think.
The problem. HTTP/1.1 (RFC 2616) gave us PUT for full replacement and POST for "everything else." If you had a 5 MB resource and wanted to change one field, your options were:
POST /users/42/rename, POST /users/42?_method=update, or the notorious X-HTTP-Method-Override: PATCH header. Every API invented its own dialect.Interestingly, PATCH had appeared in an early HTTP/1.1 draft and was removed before publication. WebDAV in the late 1990s reintroduced the need — partial updates to documents and calendar objects were awkward with PUT — and Lisa Dusseault (a WebDAV veteran) and James Snell (from Atom/AtomPub) finally shepherded a clean spec through the IETF.
The key design decisions. RFC 5789 is only 16 pages, but every choice matters:
Content-Type header tells the server whether you're sending JSON Patch (RFC 6902), JSON Merge Patch (RFC 7396), XML patch, or a diff. RFC 5789 defines the verb, not the language.If-Match and an ETag — the RFC explicitly recommends this for concurrent-edit safety.409 Conflict when the patch can't apply to current state, 415 Unsupported Media Type when the server doesn't grok your patch format, 422 Unprocessable Entity when the document is well-formed but semantically broken.Why it matters today. PATCH is now the backbone of Kubernetes' strategic merge patch, JSON:API's update semantics, GraphQL mutations' pragmatic HTTP counterpart, and virtually every "edit user profile" endpoint in production. Kubernetes actually supports three distinct PATCH content types on the same endpoint — a direct exploitation of RFC 5789's "verb without format" split.
The subtler modern relevance: PATCH is where optimistic concurrency lives on the modern web. If-Match: "etag-value" plus PATCH is how collaborative editors, config-as-code systems, and reconciliation loops avoid lost updates without needing distributed locks. If you've ever seen a 412 Precondition Failed from a cloud API, that's RFC 5789 (plus RFC 7232) protecting you from clobbering somebody else's write.
The gotcha nobody teaches. A shocking number of "PATCH" endpoints in the wild just do a shallow merge of the JSON body onto the resource — which is JSON Merge Patch semantics — but advertise Content-Type: application/json instead of application/merge-patch+json. Technically non-conformant, universally accepted.
Stack Overflow Unanswered
2026-07-16
The asker is working on an embedded ARM system (looks like STM32H7-family, given the 0x24000000 RAM base — that's classic AXI SRAM territory). They've carved out a custom section (RAM1) in their linker script to hold DMA-friendly buffers, and when they inspect the resulting ELF with arm-none-eabi-readelf -Ws, they see mysterious gaps between symbols that they can't account for from the source declarations alone.
Why this is interesting. DMA buffer placement is one of those areas where several concerns collide:
ALIGN() or . = ALIGN(1 << LOG2CEIL(SIZEOF(section))) trick.std::array wrappers or types with alignas) can pull in stricter alignment than the developer expects.KEEP(), SORT_BY_ALIGNMENT, and default FILL(0) patterns can all leave gaps that look inexplicable.Direction toward a solution. I'd approach it like this:
arm-none-eabi-ld -Map=out.map --cref. The map file will show every input section placed into RAM1, including compiler-generated ones like .bss.buffer, .rodata.*, and any *fill* pseudo-symbols.arm-none-eabi-objdump -h buffer.o. If the object's .bss has an alignment of, say, 32 (0x20), but the buffer itself is only 200 bytes, the linker will round the next section up.. = ALIGN(...) directives inside the output section, and for any SUBALIGN.alignas, __attribute__((aligned)), or C++ types whose natural alignment is larger than expected.Gotchas. A common surprise: placing a variable via __attribute__((section(".ram1"))) without specifying alignment means the compiler uses the type's natural alignment, but the linker may still enforce section-level alignment inherited from the first input section it saw. Also, readelf -Ws only shows symbols — it doesn't show anonymous fill. Cross-referencing with objdump -h -j RAM1 and the map file is the only way to see where the bytes actually went.
ALIGN directives — none of which are visible from readelf -Ws alone.
Daily Software Engineering
2026-07-16
ARC is smart but has a dirty secret: every hit moves an entry between LRU lists, which means grabbing a lock. On a cache serving a million reads per second across 64 cores, that lock becomes the bottleneck. CAR (Clock with Adaptive Replacement) keeps ARC's self-tuning brain but replaces the LRU lists with CLOCK's reference-bit sweep — so reads become a single atomic bit flip instead of a list splice.
The structure. CAR keeps four data structures, just like ARC:
A tuning parameter p controls the target size of T1. Cache size is c; ghost lists together also hold roughly c keys.
On a hit, just set the reference bit to 1. That's it. No list movement, no lock contention. The reorganization work happens lazily during eviction.
On a miss, CAR does what ARC does — checks the ghost lists. Hit in B1? Increase p (bias toward recency). Hit in B2? Decrease p. Then evict from T1 or T2 depending on which is over its target size. Eviction sweeps the CLOCK hand: if the reference bit is 1, clear it and give the page a second chance; if it's 0, evict.
Real-world example. PostgreSQL's buffer manager uses a CLOCK variant precisely because grabbing an LRU list lock on every buffer pin would serialize the whole database. CAR extends this: NetApp's WAFL filesystem and IBM's DS8000 storage controllers use CAR (and its successor CART) for their read caches, where hit rates matter but so does concurrency across dozens of I/O threads.
Rule of thumb. If your workload's hit path is contended — many threads reading the cache concurrently — CAR beats ARC not because it caches smarter but because it caches without stopping. Measured hit rates are typically within 1–2% of ARC on standard traces (OLTP, web, DB), while lock contention drops by an order of magnitude on 16+ core machines.
When to skip it. Single-threaded caches, or caches where the working set fits comfortably in memory anyway. The complexity of four structures plus adaptive tuning plus CLOCK bookkeeping only pays off when both concurrency and eviction quality matter simultaneously.
Tool Nobody Knows
2026-07-16
Every C programmer has stared at 800 call sites of some API that needs to change and reached for sed, then given up. Coccinelle (Common Coccinelle), from ENS/Inria, is the tool the Linux kernel actually uses. Its command is spatch, and it applies semantic patches written in SmPL — a little language that looks like a unified diff with metavariables, but is applied against a parsed AST with type information, control flow, and configurable isomorphisms.
The classic example: replace the kmalloc() + memset(0) pattern with kzalloc().
@@
expression E, size;
@@
- E = kmalloc(size, GFP_KERNEL);
+ E = kzalloc(size, GFP_KERNEL);
if (E == NULL) return -ENOMEM;
- memset(E, 0, size);
Run it:
spatch --sp-file kzalloc.cocci --in-place --dir drivers/
Isomorphisms mean E == NULL, NULL == E, and !E are all matched by the same rule. You don't write the variants; Coccinelle knows they're equivalent. Try that in sed.
Type-awareness is where it leaves text tools behind. This only fires when the multiplication is actually a size calculation for the pointed-to type:
@@
type T;
T *ptr;
expression n;
@@
- ptr = malloc(n * sizeof(T));
+ ptr = calloc(n, sizeof(T));
Because T is bound to the declared type of ptr, Coccinelle refuses to match malloc(count * sizeof(struct other)). And thanks to the arithmetic isomorphism, sizeof(T) * n matches too — for free.
You can add code around control flow. This inserts locking on every path out of a function:
@@
identifier fn;
@@
fn(...) {
+ mutex_lock(&my_lock);
...
+ mutex_unlock(&my_lock);
}
The ... is not a literal — it's SmPL for "any sequence of statements," and the transformation is placed on every exit including returns and gotos, not just textually before the closing brace.
Match-only rules (prefix lines with *) turn spatch into a linter that reports without modifying:
@@
identifier f;
@@
* f(void) {
return -EINVAL;
}
For a real invocation on a big tree, parallelism and header handling matter:
spatch --sp-file convert.cocci \
--dir . --include-headers \
--jobs 8 --chunksize 100 \
--in-place
Why not sed, perl, or comby? sed and perl don't know a comment from a string literal, let alone a type. comby understands brackets and gives you structural search — genuinely useful, and covered here already — but it operates on syntax. Coccinelle actually parses C. It knows the difference between a function name and a variable name that shadows it, respects preprocessor conditionals, handles whitespace and comment preservation, and lets you match on semantic shape: "a function that returns -ENOMEM on the error path" is expressible.
The Linux kernel keeps ~90 semantic patches in scripts/coccinelle/, run in CI on every submission. Read scripts/coccinelle/api/ for battle-tested examples — kzalloc-simple.cocci is the exact rule above, refined.
The learning curve is a real day of frustration. SmPL isn't C, and you'll fight the parser. But when you write one 20-line semantic patch that correctly refactors 500 files across a 30M-line codebase with type-checked correctness, you'll never grep for a function name again.
spatch refactors your code by understanding its types and control flow — not by matching its text.
What If Engineering
2026-07-16
Forget maglev. Imagine a 500-meter-tall concrete ballistic ramp at the edge of every major city: trains roll in at grade level, dive into a curved acceleration track, and get flung out the top on a parabolic arc to the next city. No rails between cities. No tunnels. Just physics.
The appeal: rails are expensive (~$3M/km for HSR, $50M+/km for tunnels). An arc through empty sky is free real estate.
To reach a city 100 km away on a parabolic trajectory (ignoring drag), the range equation gives us:
R = v² sin(2θ) / g
Optimal angle is 45°. Solving for v with R = 100,000 m and g = 9.81 m/s²:
v = √(R·g) = √(981,000) ≈ 990 m/s ≈ Mach 2.9
That's a hypersonic train. And the flight time is ~143 seconds — Chicago to Milwaukee in under three minutes. But now the problems start.
To reach 990 m/s along a ramp of length L, the acceleration is a = v²/(2L). Even with a generous 5 km acceleration track:
a = (990)² / (2 × 5,000) = 98 m/s² ≈ 10 g
Passengers black out around 5 g sustained. To keep it below 3 g, the ramp needs to be 16.7 km long — longer than most airport runways and now it's not a skyscraper, it's a mountain range.
Coming down at Mach 2.9 into a "catcher" ramp is essentially a controlled crash. The kinetic energy of a 400-tonne train at 990 m/s is:
KE = ½ × 400,000 × 990² = 1.96 × 10¹¹ J ≈ 54 MWh
That's the energy of roughly 47 tonnes of TNT. Regenerative braking on the descent ramp could theoretically recover 60-70% of it (magnetic induction brakes are ~90% efficient but you lose ~30% to air drag on the arc). Net: you might recover 30 MWh per trip — enough to power ~1,000 homes for a day, or launch the next train.
At Mach 2.9 at sea level, aerodynamic drag on a train-shaped object (Cd ≈ 0.4, frontal area 12 m²) with air density 1.2 kg/m³:
F_drag = ½ × 1.2 × 990² × 0.4 × 12 = 2.8 MN
Stagnation temperature at the nose hits ~490°C. The train needs a titanium leading edge and the acoustic footprint on the ground is a continuous sonic boom rolling across two cities. Every launch is basically an artillery shell people are trapped inside.
To make it survivable, cap velocity at ~150 m/s (Mach 0.44, no boom, minimal heating). But now range collapses to:
R = 150² / 9.81 ≈ 2.3 km
Congratulations, you've built the world's most expensive commuter catapult that goes from one suburb to the next.
The atmosphere is the merciless referee here: ballistic transport only pays off in a vacuum (which is why Hyperloop exists in the first place). Once you've built the vacuum tube, you may as well just... run a train in it.
Wikipedia Rabbit Hole
2026-07-16
Wikipedia: Read the full article
In 1863, Victorian London built something that sounds like steampunk fan fiction: a subterranean railway powered entirely by air pressure, running through cast-iron tubes buried beneath the streets. The carriages weren't models. They were large enough to carry passengers — and on at least one occasion, they did.
The London Pneumatic Despatch Company was founded to solve a very Victorian problem: the Post Office was drowning in mail, and London's horse-drawn carts couldn't keep up. The solution was gloriously mechanical. A gigantic steam-driven fan at one end of the tunnel would either blow or suck wheeled wagons through a 30-inch-diameter cast-iron pipe, with the wagon itself acting as the piston. Reverse the fan, reverse the direction. No engine on board, no fuel, no driver — just a wagon riding a controlled hurricane through the London clay.
The system eventually stretched from Euston Station to the General Post Office at St Martin's-le-Grand, with a branch to Holborn. At its peak, it moved bags of mail across central London in a fraction of the time a cart could manage. The Duke of Buckingham personally rode through one of the tubes at the opening ceremony, laying inside a mail wagon and being blown from one station to the next. The Postmaster General did the same. Contemporary accounts describe the ride as surprisingly smooth, if a bit dark and howling.
So why isn't London riddled with pneumatic subways today? A few reasons:
The company folded in 1874, and the tunnels were sealed and largely forgotten. But here's where it gets eerie: they're still down there. During the 20th century, workers digging for the Post Office Railway, telephone cables, and the Tube kept accidentally breaking into them. In 1928, a section was found containing a wagon still sitting on its rails, more than fifty years after the last shipment. Some segments were repurposed for GPO telephone cables; others remain intact and unused beneath the streets of Holborn and Euston.
If the name feels familiar, it's because the same era spawned New York's Beach Pneumatic Transit — a single-block passenger subway built in secret under Broadway in 1870, which similarly became a Victorian ghost tunnel. Both were serious attempts at a future that got overtaken by electric motors and combustion engines. Hospitals still use miniature versions of the same idea today to shoot blood samples between wings, a direct descendant of a technology that once carried a Duke.
Daily YT Documentary
2026-07-16
Channel: Studio NJDC (1260 subscribers)
This short documentary by filmmaker Nakul Jain steps into a genuinely unusual architectural project: the design journey behind Phase 1 of a skyscraper conceived as a devotional space for Krishna. Rather than a tour of a finished building, it's an exploration of the philosophy driving the design — how spiritual intent translates into structural decisions, spatial planning, and the visual language of a tall building.
What makes it worth watching is the intersection of disciplines. Sacred architecture usually lives in low-slung temples with centuries of tradition dictating form. Applying those principles vertically — inside a modern skyscraper typology built for structural efficiency and floor-plate economics — forces genuinely interesting compromises. The film promises to unpack that reasoning: why certain proportions, why certain materials, and how designers reconciled devotional symbolism with engineering constraints.
Jain's filmmaking style tends to foreground the thought process of the designers rather than glossy renders, which is exactly what makes design documentaries useful. You come away understanding why choices were made, not just what the building looks like. For anyone curious about architecture, religious space-making, or how belief systems shape the built environment, this is a substantive 15-ish minutes.
Daily YT Electronics
2026-07-16
Channel: INPRONICUSA (958 subscribers)
This video tackles a subtle but important diagnostic trap that catches out even experienced technicians: mistaking the presence of electrical activity on a CAN bus for evidence of successful communication. It's a distinction that matters enormously in automotive and industrial diagnostics, where a scope trace showing the classic differential CAN_H/CAN_L waveform can look perfectly healthy while the network is actually failing at the protocol level.
The channel promises to explain what an oscilloscope can tell you (voltage levels, rise times, differential swing, bit timing, dominant/recessive transitions) versus what it fundamentally cannot tell you without protocol decoding: whether frames are actually being ACKed, whether arbitration is succeeding, whether the CRC is valid, or whether nodes are stuck in error-passive or bus-off states. A multimeter is even more limited — averaging the differential voltage tells you almost nothing about a digital bus.
This is exactly the kind of layered thinking that separates a technician who swaps parts from an engineer who understands the system. Anyone working on modern vehicles, industrial machinery, or embedded networks will hit a scenario where the physical layer looks fine but the higher layers are broken — and knowing to reach for a CAN analyzer or logic analyzer with protocol decode instead of just a scope is the correct next move.
Daily YT Engineering
2026-07-16
Channel: STEPX Journal (241 subscribers)
Hydronic systems — using water to move thermal energy through a building — sit at the intersection of fluid mechanics, thermodynamics, and practical HVAC design. This video promises to unpack three genuinely meaty topics that most introductory HVAC content glosses over.
Closed-loop behavior matters because a sealed hydronic loop doesn't obey the intuition people carry over from open piping. Static head cancels out, the pump only has to overcome friction losses, and the whole system operates as a pressure-balanced circuit. Getting this wrong leads to oversized pumps, noisy piping, and short-cycling.
Pump curves are the language engineers use to match a centrifugal pump to a system. The video should cover how the system resistance curve intersects the pump curve to define the operating point — and why moving that point (by throttling a valve, adding parallel pumps, or changing pipe sizing) has non-linear effects on flow and power draw.
Primary-secondary pumping is where things get elegant: a short common pipe hydraulically decouples the boiler loop from distribution loops, so zones can vary flow independently without starving the heat source. It's a design pattern that took decades to become standard practice.
At 241 subscribers, this is a small-channel deep-dive on real mechanical engineering principles — no clickbait, no shorts padding.
Daily YT Maker
2026-07-16
Channel: mobCAM (85 subscribers)
This is a slim day for the small-channel CNC feed — the pool is heavily polluted with hashtag-spam shorts, affiliate reviews, and factory promo reels. That said, this entry from mobCAM (just 85 subscribers) is a genuine bright spot because it walks through the piece that most CNC content skips: the CAM stage, where a digital model is translated into the toolpaths that actually drive the router.
The video takes a sculptural project from a 3D model, into wapCAM for toolpath planning, and out to a physical carved result on a CNC router. For anyone learning subtractive manufacturing, this middle step is where most beginners get stuck — deciding on roughing versus finishing passes, stepover, tool selection, and how to handle undercuts on organic shapes. Watching a full sculpture get processed end-to-end, even without heavy narration, gives you a mental template for how to approach your own artistic 3D carves.
Fair warning: the description is thin, so this may lean more demo-reel than tutorial. But the workflow angle — model → CAM → chips — is inherently instructive, and it's the closest thing to a real skill-based video in today's batch.
Daily YT Welding
2026-07-16
Channel: STEELROCK WORKSHOP (862 subscribers)
Honestly, today's crop is thin — most of the candidates are hashtag-spam factory clips from roll-forming machine vendors with no real teaching content. This STEELROCK WORKSHOP demo is the most substantive of the bunch, and it at least focuses on a single, clearly-defined operation: producing a clean 90° bend in steel plate on a press brake.
Press brake work looks simple from the outside — clamp material, push down, get bend — but achieving a true 90° angle is where the craft lives. The bend angle you get depends on the interplay of tonnage, die opening (V-width), punch tip radius, material thickness, and springback. Mild steel will spring back roughly 1–2° after the ram releases, so operators typically overbend to compensate. The rule of thumb for die selection is a V-opening around 8× material thickness for standard bends, which sets both the inside bend radius and the force required.
Watch for how the operator positions the workpiece against the back gauge (critical for repeatability), whether they're using a bottoming or air-bending technique, and how the finished corner looks — a crisp inside radius with no cracking on the outside tension face is the sign of correct tooling choice for the material.
Caveat: at 862 subs the channel is small enough that production quality may be modest, but the topic is a legitimate fabrication fundamental.
