26 newsletters today.
Abandoned Futures
2026-05-28
In 1955, the Glenn L. Martin Company rolled out of its Middle River, Maryland plant something that should not have been possible: a swept-wing, four-engine jet bomber that took off from water. The P6M SeaMaster was a 190,000-pound flying boat designed to skim the wavetops at Mach 0.9, deliver nuclear weapons or sea mines anywhere on the planet, and return to a tender ship rather than a fixed airbase. It actually worked. Then the Navy killed it in August 1959 — three weeks before the production aircraft were due for fleet delivery.
The strategic logic was elegant. In the early 1950s, the Navy was losing the nuclear mission to the Air Force's land-based bombers. Aircraft carriers couldn't yet operate aircraft heavy enough to carry early hydrogen bombs. Admiral Arleigh Burke's Seaplane Striking Force concept solved this: SeaMasters would deploy from anywhere with a sheltered cove, refueled and rearmed by submarine tenders (the converted USS Albemarle) or even submarines themselves. No airfields to bomb, no carriers to sink — a dispersed, mobile, ocean-going strike fleet.
The engineering was extraordinary. Four Pratt & Whitney J75 turbojets mounted in pairs above the wing root to keep intakes clear of spray. A rotating bomb bay door that sealed watertight — the aircraft could taxi, submerge the lower hull, and the weapons bay stayed dry. A T-tail to clear engine exhaust. Hydroskis under development for higher takeoff speeds. The XP6M-1 prototype first flew on July 14, 1955. The YP6M-1 pre-production aircraft hit 646 mph at sea level — faster than any contemporary land-based bomber at that altitude.
Why did it die? Three reasons converged:
The Navy scrapped all completed airframes. Not a single intact P6M survives.
Why revisit this now? The Pacific theater of 2026 has resurrected every problem SeaMaster was designed to solve. Chinese DF-26 and DF-27 missiles can range every fixed US airbase in the Indo-Pacific. Carriers are increasingly vulnerable to hypersonic anti-ship weapons. The strategic appeal of dispersed, water-based aviation — operating from atolls, lagoons, and protected anchorages with no runway signature — has never been higher. DARPA's Liberty Lifter program (2022–present) is explicitly reviving large seaplane concepts for exactly this reason.
Modern materials would transform the design. Carbon-fiber composites would shed 30% of the structural weight that aluminum required. Modern FBW flight controls would have prevented both fatal crashes — the failure mode was a known, solvable problem we now solve routinely. Geared turbofans like the PW1000G would cut fuel burn by 35% and triple range. Stealth-shaped hulls (already studied for the cancelled Lockheed CL-1373 in the 1970s) would reduce radar return. And the weapons bay that once held a single B43 nuclear bomb could now carry 20+ LRASM or JASSM-ER cruise missiles, turning each aircraft into a distributed strike node.
The SeaMaster wasn't a bad idea. It was a correct idea that Polaris briefly made unnecessary — and that the geography of modern great-power competition has made urgent again.
Daily Automotive Engines
2026-05-28
Every fixed-displacement oil pump produces far more flow than the engine needs at high RPM. The pressure relief spring is the single component that decides what pressure the engine actually sees — and its rate is one of the most consequential tuning decisions in the entire lubrication system.
The relief valve is dead simple: a spring pushes a piston (or ball) closed against a seat. When oil pressure exceeds the spring's preload force divided by the piston area, the piston cracks open and dumps excess flow back to the sump or pump inlet. Spring rate and preload set the regulation point. Stiffer spring = higher cracking pressure. Longer preload (shimming) = higher cracking pressure with the same spring.
Here's the rule of thumb engine builders live by: 10 psi of oil pressure per 1000 RPM, minimum, at operating temperature. A 7000 RPM engine wants at least 70 psi at redline. But you don't want much more than that — every extra psi is parasitic horsepower the crankshaft pays for, and excessive pressure can blow out filter bypass valves, balloon oil filter cans, or aerate oil through over-pressurized squirters.
Real-world example: The LS-series Chevy small block ships with a ~70 psi relief spring. Builders running high-RPM solid-roller cams swap to the Melling 10295 high-pressure spring (roughly 85 psi crack), because aggressive lifters and tight bearing clearances at 7500+ RPM demand more pressure to maintain hydrodynamic film thickness. Conversely, LS guys building street motors with loose clearances often shim down the stock spring to reduce parasitic loss and oil temperature.
Spring rate calculation is straightforward. If your relief piston has a 0.5" diameter (area = π × 0.25² = 0.196 in²), and you want it to crack at 75 psi:
A few practical gotchas:
Daily Debugging Puzzle
vector<bool> Proxy Trap: When auto Captures a Reference You Didn't Ask For2026-05-28
This function is supposed to atomically swap a flag to false and return whatever it was before — a classic test-and-clear primitive. The caller uses the returned value to decide whether to run a one-time initialization.
#include <vector>
#include <iostream>
bool test_and_clear(std::vector<bool>& flags, std::size_t i) {
auto previous = flags[i]; // snapshot the old value
flags[i] = false; // clear it
return previous; // return what it WAS
}
int main() {
std::vector<bool> needs_init = {true, true, true};
if (test_and_clear(needs_init, 0)) {
std::cout << "initializing slot 0\n";
} else {
std::cout << "slot 0 already initialized\n";
}
}
The vector clearly starts with true at index 0. So test_and_clear should snapshot true, write false, and return true. Initialization should run.
It doesn't. The program prints "slot 0 already initialized". And every subsequent call agrees — the flag was apparently never set.
std::vector<bool> is the standard library's most infamous wart: it isn't a container of bool. It's a bit-packed specialization, and operator[] returns a proxy object of type std::vector<bool>::reference, not a bool. That proxy holds a pointer to the underlying word plus a bitmask — it's a live reference to the bit.
When you write auto previous = flags[i];, type deduction picks std::vector<bool>::reference, not bool. You did not snapshot a value. You bound a proxy that aliases the very bit you're about to overwrite. The next line, flags[i] = false;, flips the bit — and previous sees the new value, because it is the bit. The return previous; then implicitly converts the (now-cleared) proxy to bool and reports false.
This is the same shape of bug as a dangling iterator, but with a wonderful twist: the proxy doesn't even need the original vector to be reallocated to mislead you. Mutation alone is enough, because the proxy never had its own storage.
The fix is to force the conversion to bool at capture time, before the mutation:
bool test_and_clear(std::vector<bool>& flags, std::size_t i) {
bool previous = flags[i]; // explicit type forces a copy to bool
flags[i] = false;
return previous;
}
Or, if you're committed to auto, cast explicitly: auto previous = static_cast<bool>(flags[i]);. Either way, the goal is to materialize the bit's value into a real bool variable before you go scribble on its storage.
Related landmines from the same specialization: auto& r = v[0]; won't even bind because the proxy is a prvalue; std::vector<bool> doesn't satisfy the Container requirements (no data() returning bool*); range-for with auto& gives you the proxy too, with the same aliasing hazard. The standards committee has tried to deprecate this specialization for over a decade and failed. Until they succeed, prefer std::vector<char>, std::deque<bool>, or std::bitset when you want predictable semantics — and never let auto deduce a bit reference behind your back.
vector<bool>'s operator[] returns a live proxy, not a bool — so auto x = v[i]; captures a reference to the bit you're about to overwrite, not a snapshot of its value.
Daily Digital Circuits
2026-05-28
Logic BIST tests random combinational paths, but memories need their own test discipline. A modern SoC has hundreds of SRAM instances totaling tens of megabits, and external testers can't poke every cell through a narrow JTAG pin — the test would take hours per chip. Memory BIST (MBIST) embeds a small controller next to each SRAM that walks every address with carefully crafted patterns, all running at functional clock speed.
The patterns aren't random. They're March algorithms — sequences of read/write operations applied in a strict address order (ascending ⇑ or descending ⇓). The classic March C- algorithm has six elements:
Total operations: 10N for N cells. A 1 Mbit SRAM at 1 GHz finishes in 10 ms. Compare that to a tester applying patterns through a 50 MHz JTAG: 200× slower.
Each March element catches specific fault models. Stuck-at faults (cell permanently 0 or 1) fall to any read. Transition faults (cell can hold a value but can't switch one direction) need a write-then-read pair — element 2 catches "can't go 0→1," element 3 catches "can't go 1→0." Coupling faults (writing cell A flips cell B) require both address directions: a fault where the aggressor sits at a lower address only shows up when you traverse upward, and vice versa. Address decoder faults (two addresses select the same cell) get caught when one cell's expected value disagrees with what's read.
Real-world example: ARM's Cortex-M7 cache RAMs ship with embedded MBIST controllers that run March C- at boot and report pass/fail through a status register. Automotive ISO 26262 ASIL-D parts run MBIST every power-on and periodically during idle, because a stuck cell in a safety-critical RAM is a fatal hazard. The controller typically adds ~2% area overhead per SRAM — cheap insurance.
Rule of thumb: If your design has more than ~100 kbit of embedded RAM, MBIST pays for itself in test time alone. For N-bit memories, budget 10N to 17N cycles depending on fault coverage needed (March C- = 10N, March SS for stuck-open faults = 22N).
Daily Electrical Circuits
2026-05-28
The basic current mirror sets output current equal to the reference current — fine when you need milliamps, but painful when you need microamps. Generating 1 µA from a 15 V rail with a standard mirror demands a 15 MΩ resistor: impractical on a PCB, impossible on an IC die. The Widlar current source, invented by Bob Widlar at Fairchild in 1967, solves this elegantly by adding a single emitter resistor to the output transistor.
The topology: two matched NPN transistors Q1 and Q2 with bases tied together. Q1 is diode-connected and sets the reference current I_REF through a resistor from V_CC. Q2's emitter, however, goes to ground through resistor R_E. That resistor degenerates Q2, dropping its V_BE relative to Q1's — and since collector current depends exponentially on V_BE, even a tiny voltage drop slashes the output current dramatically.
The governing equation comes from KVL around the base-emitter loop:
V_BE1 = V_BE2 + I_OUT × R_E
Substituting the Ebers-Moll relation V_BE = V_T × ln(I_C / I_S) and assuming matched transistors:
I_OUT × R_E = V_T × ln(I_REF / I_OUT)
where V_T ≈ 26 mV at room temperature. This is transcendental — solve iteratively or graphically.
Worked example: You want I_OUT = 5 µA from I_REF = 1 mA. Plug in: 5 µA × R_E = 26 mV × ln(1000/5) = 26 mV × 5.30 = 137.8 mV. So R_E = 137.8 mV / 5 µA = 27.6 kΩ. Compare that to the 3 MΩ a plain mirror would need to drop 15 V at 5 µA — Widlar buys you a 100× reduction in resistor area.
Rule of thumb: Each decade of current ratio (I_REF/I_OUT) costs roughly 60 mV across R_E. Want 100× reduction? Budget ~120 mV. This is why Widlar shines in IC design where chip real estate is gold.
Real-world use: The classic µA741 op-amp uses a Widlar source to generate the ~19 µA tail current for its input differential pair from a ~700 µA reference. Without it, the input stage bias resistor alone would consume more die area than the rest of the op-amp combined.
Tradeoffs: Output impedance is higher than a plain mirror (good — R_E provides local feedback), but temperature coefficient is worse because V_T drifts at +0.085 mV/°C. For precision µA references, pair Widlar with a bandgap or use a PTAT-corrected topology. Also, mismatched V_BE between Q1 and Q2 from process variation directly adds error — use matched transistor pairs (LM394, MAT12) for discrete builds.
Daily Engineering Lesson
2026-05-28
When a three-phase induction motor starts across-the-line (direct connection to full voltage), it draws 600-800% of its full-load current for several seconds. That inrush sags the supply voltage, trips breakers, slams the driven load with full starting torque, and wears out couplings, belts, and gearboxes. A soft starter sits between the contactor and the motor, ramping voltage up gradually so current and torque rise smoothly instead of slamming on.
How it works: Three pairs of back-to-back SCRs (thyristors), one pair per phase, phase-chop the AC waveform. By delaying the SCR firing angle, the RMS voltage delivered to the motor is reduced. The starter ramps the firing angle from near-180° (nearly off) down to 0° (full conduction) over a programmed ramp time, typically 5-30 seconds. Once at full voltage, an internal bypass contactor shorts out the SCRs to eliminate conduction losses during run.
Soft starter vs. VFD — when to pick which:
The torque tradeoff: Motor torque scales with the square of voltage. If you reduce starting voltage to 50%, you get only 25% of locked-rotor torque. This is fine for centrifugal loads (pumps, fans) where load torque is low at zero speed, but a soft starter will stall a high-inertia or high-breakaway load like a loaded conveyor or a positive-displacement compressor.
Rule of thumb — initial voltage setting: Set the initial voltage just high enough that the motor breaks free and begins accelerating within 1-2 seconds. Typical starting voltage is 30-50% for centrifugal loads, 50-70% for constant-torque loads. If you hear the motor "growl" without turning, the initial voltage is too low.
Real-world example: A 75 HP irrigation pump on a rural feeder previously caused lights to dim across the property and occasionally tripped the utility's recloser when starting. Adding a soft starter with a 10-second ramp dropped peak inrush from ~520 A to ~180 A, eliminated the voltage flicker, and stopped water-hammer in the discharge piping because the pump now reaches full speed gradually instead of slamming pressure into the column.
Watch out for: Soft starters generate harmonics during the ramp (because they're phase-chopping), so they shouldn't run continuously in reduced-voltage mode — always size for the bypass contactor to engage at full speed. Also, they don't reduce steady-state running current; that's a VFD job.
Forgotten Books
2026-05-28
Book: Henley's Twentieth Century Formulas, Recipes and Processes by Gardner D. Hiscox (1916)
Read it: Internet Archive
Before you could Google "how do I remove rust from a sewing machine" or "what's a good formula for shoe blacking," there was Henley's — a single volume containing, by its own boast, ten thousand selected household and workshop formulas, aimed at "manufacturers, mechanics, housekeepers and home workers" alike.
Gardner D. Hiscox, who also wrote on compressed air and gas engines, framed the project with a striking editorial philosophy in the preface:
"In addition to exercising the utmost care in selecting his materials from competent sources, the Editor has also modified formulas which were obviously ill adapted for his needs, but were valuable if altered. Processes of questionable merit he has discarded."
Read that again. In 1916, a single man — working from "foreign technological periodicals and books" he was "specially translating" — was running what we'd now call content moderation on practical human knowledge. He was vetting silver-plating processes, hair tonics, ink recipes, leather dyes, and explosive compounds, deciding which to include, which to fix, and which to throw out as bunk.
The forgotten idea isn't a recipe. It's the model itself: a curated, single-authority compendium where the editor takes responsibility for telling you what works. The promise on the cover — "money-saving methods for the practical use of" everyone — assumes a reader who would actually make their soap, their varnish, their photographic developer, their cement.
What's striking from a modern vantage:
Henley's was reprinted constantly from 1907 through the mid-20th century. Real copies sit on the shelves of restoration shops, museum conservators, and old-house tinkerers to this day, because for many lost trade processes — japanning, daguerreotype repair, period-correct gilding — the book is still the easiest reference in English.
What we lost wasn't the recipes. They're scanned, free, indexable. What we lost was the posture: the assumption that an ordinary person, given a vetted formula and a few hours, could just make the thing rather than buy it. Henley's 10,000 entries are a monument to a civilization of makers — and an implicit indictment of one that mostly clicks "Add to Cart."
Forgotten Darkroom
2026-05-28
Book: PROGRESS REPORT ON OPERATION DIOGENES by CIA Reading Room (1952)
Read it: Internet Archive
Buried in a declassified February 1952 CIA memo — part of something called Operation Diogenes — is a remarkably candid engineering status report on a problem most people in 1952 didn't know existed: how to build a portable lamp that emitted a powerful invisible beam.
"First tests of the third model of filtered lamp were run on the night of 12 February 1952 in the field and the next morning in the laboratory. The model was satisfactory as a powerful source of a near infrared beam… but was not satisfactory in the respects listed below. Most significant was the failure of the lamp to burn in the laboratory without damage to the filter assembly."
The author — name redacted — then lists the gritty mechanical failures of his third prototype:
"Overheating of Butyrate Filter Assembly — The top of butyrate cylinder is damaged where it attaches to bakelite ring. Correction probable by using pyrex chimney 7 1/2 inches long in place of present chimney approximately 5 1/4 inches long."
What you're reading is a tinkerer's bench notes for a covert near-infrared illuminator. The principle: a hot incandescent or gas-mantle source emits a huge tail of infrared light. Wrap it in a butyrate (cellulose acetate plastic) filter that absorbs all the visible wavelengths, vent the heat through a Pyrex chimney, and you have a "lamp" that produces no light a human eye can see — but floods the area in IR. Pair it with an early image-converter scope (the kind developed for the WWII Sniperscope) and you can see in total darkness while remaining, to anyone without such a scope, invisible.
Was it ahead of its time? In a sense, no — the Germans had IR "Vampir" sights on rifles by 1944, and US Army M3 Carbines had IR scopes in the Pacific. What's striking here is the miniaturization and concealment problem. The author isn't building a tank-mounted unit; he's hand-fabricating a portable field lamp, and his enemy is thermodynamics: the butyrate plastic melts because it sits too close to a Coleman-style mantle. His fix — a longer Pyrex chimney to move the hot zone away from the filter — is exactly the trick lantern makers had used for a century.
The forgotten knowledge here isn't the IR principle itself. It's that cellulose-acetate (butyrate) sheet was, for a brief window in the early 1950s, the cheap go-to material for IR-pass / visible-block filters. Photographers and astronomers later switched to Wratten gelatin filters (#87, #87C, #88A) and eventually dichroic glass and silicon. But for a field operative needing meters of curved filter wrapped around a hot lantern, butyrate plastic was the only thing both transparent to IR and formable on a budget.
Modern readers will recognize the descendant immediately: every covert security camera with an "invisible" 940 nm LED ring around the lens, every game-camera that "flashes" without spooking deer, every night-vision device whose IR illuminator floods a hallway. The CIA in 1952 was essentially trying to build the same thing with a kerosene mantle and a plastic cylinder — and the engineer reporting back was honest enough to admit his lamp kept catching fire.
Forgotten Patent
2026-05-28
On March 5, 1954, three Bell Telephone Laboratories researchers — Daryl Chapin, Calvin Fuller, and Gerald Pearson — filed US Patent 2,780,765, titled "Solar Energy Converting Apparatus." It was issued in 1957. The filing described a device that did something almost magical for its time: it took ordinary sunlight, with no moving parts and no fuel, and turned it directly into useful electrical current at an efficiency high enough to actually power equipment. They called it the "solar battery." We call it the silicon solar cell.
The trio had stumbled onto the breakthrough almost by accident. Fuller, a chemist, was perfecting controlled doping of silicon for transistor work. Pearson noticed that one of Fuller's silicon samples produced a surprisingly strong current when exposed to light. Chapin, meanwhile, had been hunting for a power source for telephone repeaters in remote tropical regions where dry-cell batteries kept failing in the heat. Selenium cells existed since the 1880s but converted less than 0.5% of sunlight into electricity — useless for real power. By April 1954, the team had pushed silicon to 6% efficiency — a more than tenfold leap. The New York Times announced it could herald "the harnessing of the almost limitless energy of the sun."
The patent's claims are remarkably modern. It describes a thin wafer of p-type silicon with a shallow n-type diffused layer near the surface, forming the now-ubiquitous p-n junction. Light photons knock electrons across the junction, generating a voltage. The drawings show grid contacts on top to collect current while letting light through — the same fingered electrode pattern visible on rooftop panels today. They even describe series and parallel cell arrays to scale voltage and current. A diagram in column 4 shows a tiny module spinning a fan. Read the patent in 2026 and almost nothing in the geometry would look out of place on a modern production line.
Bell saw it as a telecom power source, but the technology found its first killer app in space. In 1958, Vanguard 1 — the fourth satellite ever launched — carried six small solar cells based directly on the Chapin-Fuller-Pearson design. Vanguard's chemical battery died in weeks; its solar cells kept its beacon transmitting for seven years. Every satellite, Mars rover, and space station since has been a descendant of that 1954 patent. The International Space Station alone spreads roughly 2,500 square meters of silicon wafers across its solar wings.
Terrestrially, the patent's payoff took longer. At $286 per watt in 1956 dollars, the original cells were absurdly expensive — fine for satellites, hopeless for houses. But the physics was exactly right; only manufacturing needed catching up. Today, utility-scale silicon panels routinely hit 22-24% efficiency at under $0.20 per watt — a price drop of roughly five orders of magnitude. In 2024, solar PV became the largest source of new electricity generation worldwide, with installed capacity passing 2 terawatts. Every one of those panels is still, fundamentally, a Chapin-Fuller-Pearson p-n junction.
The most striking thing about Patent 2,780,765 is what it didn't need: no exotic materials, no quantum dots, no perovskites. Just silicon, boron, phosphorus, and sunlight. The 1954 device hit 6%; perovskite-silicon tandems in 2025 labs hit 34%. The whole 70-year journey from telephone-pole power to global energy transition has been refinement, not reinvention.
Daily GitHub Zero Stars
2026-05-28
Language: Unknown
fabscan is a card scanner project for Flesh and Blood, the popular trading card game from Legend Story Studios. While the repo is still in early days (no description-heavy README, no stars yet), the premise is immediately compelling to anyone who has tried to manage a physical TCG collection: point a camera at a card, get structured data back.
Card scanning is a deceptively hard problem. It typically involves:
fabdb.net or fabrary.net APIs) to fetch rulings, prices, and metadataWhat makes this interesting in the Flesh and Blood ecosystem specifically is that FaB doesn't have the same level of tooling maturity as Magic: The Gathering. MTG has Delver Lens, ManaBox, and TCGPlayer's scanner — FaB players largely log collections by hand or in spreadsheets. A working open-source scanner would be a genuinely useful contribution to that community.
Who would benefit:
Even if the current state is just a scaffold, the project is worth watching — and contributing to, if you play the game and write code. The intersection of "niche TCG" and "computer vision side project" is exactly the kind of weekend-hack territory where a single dedicated maintainer can build something the community actually uses.
Daily Hardware Architecture
2026-05-28
Modern x86 CPUs have a deep impedance mismatch between fetch/decode and execution. The front-end fetches 16-32 bytes of variable-length instructions per cycle and decodes them into fixed-width µops. The back-end consumes µops at a rate dictated by scheduling, port pressure, and memory stalls. These rarely match cycle-to-cycle. The micro-op queue (also called the IDQ — Instruction Decode Queue) is the elastic buffer between them.
On Intel Skylake-derived cores, the IDQ holds 64 µops per thread (128 total with SMT). It accepts µops from three sources: the legacy decoders (up to 5 µops/cycle), the µop cache (up to 6 µops/cycle), and the microcode sequencer (4 µops/cycle for complex instructions like CPUID or string ops). It feeds the renamer at up to 6 µops/cycle on Sunny Cove and later.
Why does an elastic buffer matter? Three reasons:
Real-world example: A matrix multiplication kernel with a 40-µop inner loop runs out of the LSD on Skylake. The front-end clock-gates the decoders and µop cache, dropping front-end power by ~30%. Unroll that loop to 80 µops and you lose LSD eligibility — the µop cache fires every cycle instead, and your perf/watt drops measurably even though IPC is unchanged.
Rule of thumb: If your hot loop body decodes to under 64 µops, the LSD will run it. Check with perf stat -e idq.dsb_uops,idq.mite_uops,lsd.uops — if lsd.uops dominates, you're in the sweet spot. Roughly: 1 x86 instruction ≈ 1.1 µops for typical integer code, so ~55 instructions fits.
AMD Zen calls its equivalent the Op Queue, holds 72 µops, and similarly powers down upstream stages when running from it. The principle is universal: any time two pipeline domains run at different rates, you need a queue to absorb the variance, or you pay the cost of the slower one on every cycle.
Hacker News Deep Cuts
2026-05-28
Link: https://exclusivearchitecture.com/03-technical-articles-C-EOS-SD.html
HN Discussion: 1 points, 0 comments
This is the kind of obsessive, deeply researched reference document that the early web was built on — and which has become genuinely rare. The author has assembled what appears to be a comprehensive cross-referenced table of every autofocus and exposure metering sensor Canon has ever shipped in their EOS SLR and DSLR lineup, spanning roughly four decades of camera engineering history.
Why does this matter to a technical audience?
The domain name — "exclusivearchitecture.com" — suggests this might be one entry in a broader collection of technical articles, which is the kind of rabbit hole HN readers tend to enjoy disappearing into for an afternoon. The "C-EOS-SD" in the URL hints there are companion documents covering related Canon subsystems.
It's the sort of post that lands at 1 point because it's too niche for the front page algorithm, but exactly the sort of thing that justifies HN's existence as a place where deep, narrow expertise still gets a hearing.
HN Jobs Teardown
2026-05-28
Source: HN Who is Hiring
Posted by: janbernhart
Of the ten postings on this thread, Adyen's is the most strategically revealing — precisely because it's the shortest. A multibillion-dollar payments processor describes its entire engineering organization in three sentences, and every word is load-bearing.
The stack tells the story. Java on the back-end, Linux as the platform, PostgreSQL as "a big" user. Notice what's absent: no microservices buzzwords, no Kubernetes, no Kafka, no "polyglot persistence," no ML/AI sprinkle. This is a payments company that handles transaction volume for Uber, Spotify, Microsoft, and McDonald's — and they're proudly running a Java monolith pattern on Postgres. That's a deliberate flex. When you settle billions in payments, boring infrastructure is the feature. Postgres at Adyen's scale implies serious in-house expertise in partitioning, replication, and consistency tuning — the kind of thing you only commit to when you've decided correctness beats novelty.
"Speed is the foundation" repeated three times — think fast, work fast, launch fast — is the giveaway about culture and stage. Adyen is publicly traded, ~$50B+ market cap, and still pitching itself as a high-velocity shop. The subtext: they're defending against Stripe, Checkout.com, and a thousand fintech startups by refusing to slow down into enterprise paralysis. Hiring "Software Engineers (Java) & Infrastructure" together — not split — suggests they still expect engineers to own systems end-to-end rather than throwing work over a platform-team wall.
Green flags:
Red flags:
The trend it highlights: while the rest of the thread chases ML/AI (Apple, Stay Nimble, One Medical's "AI/ML"), the most profitable company in the list is hiring for Java and Postgres. Infrastructure boringness is a competitive moat in regulated industries.
Daily Low-Level Programming
2026-05-28
Wide vector instructions don't come free. When a core executes AVX-512 (and to a lesser extent AVX2) instructions, it activates a much larger swath of silicon — 512-bit ALUs, wider data paths, and additional FMA units. That silicon draws more current than the chip's voltage regulators can sustain at peak turbo frequency, so the CPU downclocks the offending core (and on older Skylake/Cascade Lake, the entire socket) to stay within its power and thermal envelope.
Intel divides instructions into three "license levels":
The transition isn't instant. The core enters the lower license immediately upon executing a qualifying instruction, but it stays in that license for roughly 2 milliseconds after the last one — a hysteresis window so the voltage rail doesn't oscillate. So a single stray AVX-512 instruction in a tight scalar loop can crater throughput for millions of cycles afterward.
Real-world example: glibc's memcpy on Skylake-X used AVX-512 for large copies. A web server doing one big memcpy per request would knock the core into License 2; subsequent scalar request-parsing code ran at 2.4 GHz instead of 3.5 GHz until the 2 ms window expired. Cloudflare measured this in production and disabled AVX-512 in their build — the scalar penalty on hot paths outweighed the vectorized memcpy win. The same issue bit numpy users who saw single-threaded scripts get slower after upgrading to AVX-512-enabled BLAS.
Rule of thumb: AVX-512 pays off only when the vectorized region runs for at least ~20 µs of continuous SIMD work. Below that, the frequency penalty during the surrounding scalar code (lasting 2 ms) dwarfs the speedup. Compute the breakeven: if vectorization is 3× faster but the core runs at 0.75× frequency for 2 ms afterward, you need ~500 µs of scalar work after the SIMD region to break even.
Ice Lake and newer chips reduced the penalty dramatically — per-core voltage domains mean one core's AVX-512 no longer drags down its neighbors, and the downclock magnitude shrank. Sapphire Rapids made the License 2 penalty nearly negligible. But you still need to cat /proc/cpuinfo | grep avx512 and check the microarchitecture before assuming wide vectors are a win.
Reddit Small Subs
2026-05-28
Subreddit: r/welding
Discussion: View on Reddit (184 points, 51 comments)
A newer MIG welder at a fab shop noticed a recurring defect: small pinholes appearing at the termination of his welds. He posted photos hoping the more experienced crowd could diagnose it — and they did, in detail. The thread turned into a small clinic on weld terminations, shielding gas behavior, and crater fill technique.
The diagnosis from veteran welders converged on a few overlapping causes:
One particularly useful comment broke down the physics: a MIG puddle is a tiny pool of liquid steel saturated with dissolved gases. While the arc is active, gases keep getting pushed out by stirring and shielding. The moment you stop, all that motion ends — and whatever gas is left has milliseconds to escape before solidification traps it.
The practical fixes are simple and worth memorizing: pause the gun in place after releasing the trigger, use a back-step or whip at the termination, and clean the metal more aggressively than you think you need to. A welder also noted that if your machine has a "crater fill" setting or burnback adjustment, this is exactly what it's for.
This is a perfect example of why r/Welding is valuable for new tradespeople — a beginner gets specific, mechanical explanations from people who've solved the same problem hundreds of times.
RFC Deep Dive
2026-05-28
If you've ever wondered why Content-Disposition headers in HTTP downloads contain bizarre-looking strings like filename*=UTF-8''r%C3%A9sum%C3%A9.pdf with that strange double-apostrophe sequence, RFC 5987 is the answer. It's the unsung hero that lets your web app serve a file named "日本語.pdf" or "café-menu.docx" without mangling it into gibberish.
The Problem: HTTP headers, by tradition rooted in RFC 822 and its descendants, are ASCII-only. But filenames, content descriptions, and other parameter values frequently need to carry non-ASCII characters — accented Latin letters, Cyrillic, CJK ideographs, emoji. For years, browsers each invented their own incompatible workarounds: IE used raw percent-encoded UTF-8, Firefox tried RFC 2231, Safari did something else. The result was that Content-Disposition: attachment; filename="..." was a minefield, and developers resorted to user-agent sniffing just to make downloads work cross-browser.
The Design: RFC 5987 takes the encoding mechanism originally defined in RFC 2231 (which was built for MIME email headers) and ports a subset of it to HTTP. The author, Julian Reschke — a longtime HTTPbis contributor — deliberately stripped out the parts of RFC 2231 that nobody implemented correctly, particularly multi-line parameter continuations. What's left is the clean part: the ext-value syntax.
The format is three fields separated by single quotes:
UTF-8; ISO-8859-1 is also allowed for legacy reasons'')The asterisk suffix on the parameter name (e.g., filename* versus filename) is the signal that this is an extended-format value. Crucially, the spec allows both forms to appear side-by-side: a server can send filename="resume.pdf"; filename*=UTF-8''r%C3%A9sum%C3%A9.pdf. Old clients use the ASCII fallback; modern clients prefer the starred version.
Why It Matters Today: Every time a user downloads a file with a non-English name from Gmail, Dropbox, GitHub, or your company's intranet, RFC 5987 is doing the work. It's referenced by RFC 6266 (the modern Content-Disposition spec), RFC 8187 (which obsoleted 5987 with minor tweaks), and is baked into countless web framework helpers — Django's FileResponse, Express's res.download(), ASP.NET's File() action result. If you've ever called one of those, you've shipped RFC 5987 to production.
Quirks: The language tag field exists almost as a vestige. Reschke kept it for symmetry with RFC 2231 and MIME, but in practice no implementation does anything with it. The doubled apostrophes are a visual oddity that confuses every developer on first encounter — they're not a typo, they're two empty field delimiters around an omitted language tag. Also worth noting: RFC 5987 was superseded in 2017 by RFC 8187, which made UTF-8 mandatory and dropped ISO-8859-1 support. The wire format is unchanged.
It's a small, focused RFC — about 12 pages — but it's a textbook example of standards work: take a messy de-facto situation, pick the cleanest of the competing implementations, document it precisely, and shepherd browsers toward convergence.
Stack Overflow Unanswered
2026-05-28
The asker has a single-producer / single-consumer ring buffer in C that runs cleanly on x86 (Intel i7) but intermittently corrupts data on a Cortex-A53. They've added memory barriers and the problem persists. This is the classic "my lock-free code works on x86 but explodes on ARM" trap.
Why it's hard. x86 has a strong memory model (TSO): stores from a single core become visible to other cores in program order, and loads are not reordered with earlier loads. So a lot of "lock-free" code that's quietly wrong appears correct on x86 because the hardware papers over missing synchronization. ARMv8 has a weak memory model — independent loads and stores can be reordered, and writes can become visible to other cores in different orders unless you tell the CPU otherwise.
Most likely root causes.
head (so the payload writes are visible before the index update) and acquire semantics when the consumer reads head (so payload reads happen after seeing the new index). A single __sync_synchronize() on one side isn't enough.atomic_load_explicit/atomic_store_explicit with memory_order_acquire and memory_order_release.Direction to a fix. Rewrite with C11 atomics:
// producer
memcpy(&buf[head], src, n);
atomic_store_explicit(&g_head, (head + n) & mask, memory_order_release);
// consumer
size_t h = atomic_load_explicit(&g_head, memory_order_acquire);
if (h != tail) { memcpy(dst, &buf[tail], ...); ... }
The acquire/release pair maps to LDAR/STLR on ARMv8, which is exactly what you need — and it's cheaper than a full DMB ISH.
Gotchas. Cortex-A53 is in-order but still reorders memory operations (it's the memory subsystem, not the pipeline, that matters). If the ring buffer is shared with a peripheral or DMA engine, you also need DMB OSH / DSB and possibly non-cacheable mappings — acquire/release only synchronize between CPU cores. And don't trust testing: a working run proves nothing on weak-memory hardware. Run TSan, or stress with perf and pin producer/consumer to different cores.
Daily Software Engineering
2026-05-28
A Bloom filter is a probabilistic data structure that answers one question: "Have I seen this item before?" Its answer is either "definitely not" or "probably yes". It never says "definitely yes," and it never misses a real hit. False positives are allowed; false negatives are impossible. That asymmetry is exactly what makes it useful.
Mechanically, it's a bit array of size m and k independent hash functions. To insert an item, hash it k ways and set those bits to 1. To check membership, hash the same way and inspect those bits — if any bit is 0, the item was never inserted. If all are 1, it might have been inserted (or some combination of other items happened to set those exact bits).
Real-world example: Chrome's malicious URL detection. Chrome can't ship a list of every dangerous URL to your machine — that's gigabytes. Instead, it ships a Bloom filter. When you click a link, Chrome checks the filter locally. If the answer is "definitely not malicious," the page loads instantly with zero network calls. If it's "probably malicious," Chrome makes a (slower) authoritative API call to Google's Safe Browsing service to confirm. The filter eliminates 99%+ of those expensive calls.
Cassandra uses Bloom filters per SSTable to skip disk reads for keys that aren't there. CDNs use them to avoid origin fetches for known-missing assets. Databases use them in join optimizations.
The sizing rule of thumb: for n items and target false-positive rate p:
Concretely: 1 million items at 1% false-positive rate needs ~9.6 bits per item (~1.2 MB) and 7 hash functions. Compare that to a HashSet storing 1M 50-byte URLs — that's 50+ MB. You get a 40x memory reduction for accepting a 1% false-positive rate.
Where it bites you:
Reach for it when your hot path does many membership checks against a large set, the cost of a real lookup is high (disk, network), and a small false-positive rate is tolerable because you verify on the slow path anyway.
Tool Nobody Knows
2026-05-28
Every few years some kid rediscovers terminal recording and writes a tool named after a Greek letter. Meanwhile, script(1) has been quietly recording sessions since 3BSD shipped it in 1979, and its sibling scriptreplay(1) plays them back with the original keystroke timing intact. Both ship in util-linux on every Linux box you'll ever touch. No daemon. No JSON. No tarball of someone's JavaScript player. Just two binaries and a plain text log.
The basic loop:
$ script --timing=demo.tim demo.log
Script started, output file is demo.log
$ uname -a
$ ps aux | head -5
$ exit
Script done.
$ scriptreplay --timing=demo.tim demo.log
That second command isn't printing the file — it's re-playing the entire session at the original speed, including the pauses while you thought about what to type. Speed it up with --maxdelay 0.5 to cap dead air, or --divisor 4 for a 4x replay. The log itself is just raw bytes (escape codes and all), so cat demo.log shows the final state and grep works against it.
Why it beats the alternatives. asciinema is fine, but it requires an interpreter to play back, ships a custom JSON format, and tempts you to upload sessions to a third party. script outputs plain bytes and a timing file that's literally delay bytecount\n lines. You can hand-edit it. You can tail -f the log while the session runs. You can pipe it through ansifilter for a clean transcript. Try that with a JSON blob.
The flags nobody reads. Modern script (util-linux 2.32+) has grown teeth:
--log-io combined.log — record stdin and stdout interleaved. Audit logging gold.-E never — disable the ^[ escape prefix so embedded editors don't get confused.-c "command" — record a single non-interactive command. Perfect for cron-driven captures.-a — append to existing logs across sessions.--command with -q — silent recording for unattended jobs.The trick that earns its keep. Use it as a bug-report machine. Ask the user to run:
$ script -t 2>repro.tim repro.log -c "./our-broken-tool --verbose"
They mail you two files. You run scriptreplay and watch the exact failure unfold at real speed — every misread prompt, every twenty-second pause where they panicked, every typo they backspaced through. No more "works on my machine" because you're literally watching their machine.
Another use. Recording long-running deploys to an append log:
$ script -af -t 2>>/var/log/deploy.tim /var/log/deploy.log
Six months later when someone asks "what exactly did we type on the night of the outage," you have it byte-for-byte, with timing. auditd tells you which syscalls fired. script tells you what the human actually saw on the glass.
Gotcha. script allocates a PTY, so anything checking isatty(0) will behave as if a human is present. Usually what you want. Occasionally not — pipe-aware tools may emit color codes and progress bars that pollute the log. Use TERM=dumb inside the recorded shell to tame them.
script -t and scriptreplay have been waiting in /usr/bin the entire time, producing plain-text logs you can grep, edit, and replay without anyone's runtime.
What If Engineering
2026-05-28
Every tall building moves. Taipei 101 sways up to a meter at the top in a typhoon. The One World Trade Center drifts about 30 cm in everyday wind. Engineers have spent decades trying to stop this motion with tuned mass dampers — giant pendulums that fight the building's natural frequency. But damping is just controlled energy dissipation. What if we converted that energy to electricity instead of bleeding it off as heat?
The hardware already exists — sort of. Taipei 101's damper is a 660-tonne steel sphere suspended on 42-meter cables, hanging in the atrium between floors 87 and 92. In a typhoon it swings up to 1.5 m horizontally. Replace its viscous shock absorbers with linear induction generators (basically a stationary maglev launcher in reverse) and you have a regenerative damper.
Back-of-envelope: how much power?
For a pendulum of length L = 42 m with horizontal displacement x = 1 m, the lift height is:
h ≈ x² / (2L) = 1 / 84 ≈ 0.012 m
Potential energy per swing:
E = mgh = 660,000 × 9.81 × 0.012 ≈ 78 kJ
The pendulum's natural period is T = 2π√(L/g) ≈ 13 s. Two energy peaks per cycle, so we harvest ~156 kJ every 13 s. Assuming 60% conversion efficiency (a generous but plausible figure for linear generators):
P ≈ 156,000 × 0.6 / 13 ≈ 7.2 kW
That's during a typhoon. Disappointing? Yes. The instinct that a 660-ton pendulum should produce megawatts is wrong — gravitational PE scales linearly with mass but only quadratically with the small displacement.
Everyday wind is where it gets interesting. Skyscrapers oscillate continuously at amplitudes of 5–30 cm. Energy per cycle scales as x², so you'd think this is hopeless — but the building does this all the time, 365 days a year. At 10 cm amplitude, you get roughly 70 W of continuous output. That's ~600 kWh per year per building. Pathetic per square meter compared to a rooftop PV panel.
The real prize is something else. A regenerative damper that dynamically tunes itself by varying electrical load could outperform passive dampers in suppressing motion — which is structurally valuable. Reduced peak sway means lighter steel framing. If you save 2% on the structural mass of a 100,000-tonne building at $3,000/tonne of installed steel, that's $6 million — dwarfing decades of electricity output.
Scaling up. Suppose every supertall (300m+) building on Earth installed one. There are ~200 such buildings. Average output ~50 kW each in active winds × 30% capacity factor ≈ 26 GWh/year total. That's enough to power roughly 2,400 American homes. Globally negligible.
But here's the catch the physics gives us for free: the building's natural frequency is fixed by its geometry and mass distribution. Any energy-harvesting damper must resonate near that frequency, and the building's modal mass at the top is limited. You cannot make this much bigger without making the building wobblier — defeating the point.
Wikipedia Rabbit Hole
2026-05-28
Wikipedia: Read the full article
Every time you click the ignitor on a gas grill and hear that satisfying snap followed by a whoosh of flame, you are witnessing a tiny act of controlled violence against a crystal. No batteries. No wires going anywhere useful. Just a spring-loaded hammer crushing a chunk of quartz hard enough to produce roughly 15,000 volts — enough to leap a 6 mm air gap and ignite propane.
The principle behind it was discovered in 1880 by Pierre Curie (yes, that Curie, husband of Marie) and his brother Jacques. They noticed that certain crystals — quartz, tourmaline, Rochelle salt — produced a measurable electric charge when squeezed. Stress on the lattice displaces positive and negative ions just slightly, creating a voltage across the crystal's faces. The name comes from the Greek piezein, "to press."
For decades it was a laboratory curiosity. Then World War I demanded sonar to hunt U-boats, and Paul Langevin used piezoelectric quartz to generate and detect underwater sound waves. That single application — using a crystal as both speaker and microphone — kicked off the entire field of ultrasonics and eventually gave us:
But piezo ignition is the principle distilled to its rawest form. A typical grill ignitor contains a small spring, a hammer, and a lead zirconate titanate (PZT) ceramic — a synthetic piezoelectric far stronger than natural quartz. Pressing the button cocks the spring; releasing it slams the hammer into the crystal with several hundred newtons of force over a few microseconds. The resulting voltage spike is so brief and so high that it ionizes air molecules into a plasma channel — a spark.
The strange part is that this is mechanically identical to how a vinyl record player works, just inverted. A turntable cartridge with a piezoelectric element converts the tiny mechanical wiggles of a stylus into a voltage your amplifier can read. Same effect, reversed direction, six orders of magnitude smaller. The ignitor screams; the record player whispers.
Here's the kicker: this also runs backward. Apply a voltage to a piezo crystal and it physically deforms — and this is how piezoelectric motors achieve nanometer-precise positioning in scanning tunneling microscopes, the instruments that let humans first see individual atoms. So the same physics that lights your hamburger also lets researchers image gold atoms on a silicon surface.
One charming detail: some early lighters used Rochelle salt — literally the same crystal you can grow from cream of tartar in your kitchen — as their piezo element. The chemistry of grandma's pantry, weaponized into a spark.
Daily YT Documentary
2026-05-28
Channel: Hero Spiderman POV (3510 subscribers)
Kensington, Philadelphia has become one of the most studied urban crises in modern America — a neighborhood where the collision of the synthetic opioid epidemic, xylazine ("tranq"), and a brutal housing market has produced street conditions that public health researchers, harm reduction workers, and city planners are still trying to understand. This documentary takes viewers into that intersection, examining how a single ZIP code became a case study in how drug supply chains, deindustrialization, and rent inflation compound on each other.
What it covers: the shift from heroin to fentanyl to fentanyl-xylazine mixtures and the medical consequences (necrotic wounds, altered overdose response), the economics of why displaced residents end up concentrated in specific corridors, and how rising rents in adjacent neighborhoods push vulnerability inward rather than dispersing it.
A note on quality: the channel name ("Hero Spiderman POV") and sensationalized title are red flags, and this may lean more toward street-footage documentary than rigorous analysis. But among this batch — mostly festival trailers and award ceremony recaps — it's the only entry that attempts to explain a real, ongoing public health and urban policy phenomenon. Worth watching with a critical eye for which claims are sourced versus narrated.
Daily YT Electronics
2026-05-28
Channel: JurassicVader (3960 subscribers)
Most of today's candidates were hashtag-laden Shorts showing finished circuits with little explanation. This entry from JurassicVader stands out because it's part of a structured mini-series walking through the actual process of designing a printed circuit board, rather than just showing off a finished result.
PCB design is one of those skills that sits awkwardly between hobby electronics and professional engineering. Beginners can solder a breadboard, but the leap to a custom board involves schematic capture, footprint selection, net classes, design rules, trace width calculations, and layout decisions that affect signal integrity and manufacturability. Episode 3 in a daily series suggests the creator is breaking these concepts into digestible chunks — likely covering a specific stage of the workflow (routing, component placement, or DRC checks) rather than rushing through everything at once.
For viewers who've been meaning to graduate from perfboard projects to having boards fabricated at JLCPCB or OSH Park, watching someone reason through their decisions in real time is far more valuable than a polished tutorial that hides the trade-offs. The small subscriber count (under 4k) often correlates with creators who explain their thinking honestly rather than performing expertise.
Note: Without Episodes 1 and 2 for context, some terminology may land better if you watch the series in order.
Daily YT Engineering
2026-05-28
Channel: STEPX Journal (134 subscribers)
The stress-strain curve is one of those foundational diagrams that every mechanical, civil, and materials engineer is expected to read fluently — yet it's often taught as a static picture to memorize rather than a story about what atoms are actually doing as a specimen is pulled apart. This video walks through the curve as a physical narrative: the linear elastic region where atomic bonds stretch reversibly, the yield point where dislocations begin to slip irreversibly, strain hardening as those dislocations tangle, and finally necking and fracture.
What makes it worth watching over a textbook chapter is the connection to failure modes. The video ties the curve to fatigue — the slow, cyclic accumulation of microcracks that brings down bridges, aircraft wings, and rotating shafts at stresses well below the yield point. Understanding why a ductile material can fail in a sudden, brittle-looking way after millions of cycles is genuinely useful intuition for anyone specifying materials or interpreting failure reports.
STEPX Journal also has a cluster of companion videos posted the same day (steel, non-ferrous metals, crystal structures), so if this one lands, there's a coherent mini-curriculum to follow. The production is modest — small channel, 134 subscribers — but the scope is exactly right: one concept, explained with the physics behind it rather than just the formula.
Daily YT Maker
2026-05-28
Channel: Purdue Office of Future Engineers (3240 subscribers)
Neither candidate is a stellar fit for an in-depth maker tutorial, but this walkthrough of Purdue's Bechtel Innovation Design Center is the more educational of the two. Marina guides viewers through one of the most well-equipped university maker spaces in the country — a facility that mixes traditional machine shop tools with modern digital fabrication gear.
For anyone curious about what a serious maker space looks like at scale, this tour offers a useful reference point. Expect to see CNC machines, 3D printers, laser cutters, woodworking equipment, electronics benches, and welding bays — alongside the safety training and shop-management systems that keep a multi-discipline facility running.
The video is most valuable as a planning resource: if you're setting up a community workshop, school makerspace, or even thinking about how to organize your own home shop, seeing how Bechtel zones its tools and workflows can spark practical ideas. It's also a useful preview for prospective engineering students weighing schools by hands-on opportunities.
Note: this is more of an overview tour than a deep technical tutorial, so go in expecting orientation rather than a how-to. The other candidate (a dice-making vlog from a 113-subscriber channel) had even less instructional content, making this the clearer pick.
Daily YT Welding
2026-05-28
Channel: DHARAMA SE SIKHO (90 subscribers)
Most of today's batch is repetitive TIG-on-stainless footage with hashtag-stuffed titles, but this one zooms in on a fundamental that beginners constantly get wrong: how to grind a tungsten electrode. The quality of your TIG arc starts at the tungsten tip, and most arc-wander, wide-bead, and contamination problems trace back to bad prep.
The key principle the video demonstrates is grinding longitudinally — with the grit lines running along the length of the electrode, not around it. Circumferential grind marks act like little reflectors that scatter the arc, causing it to wander off the joint line. Longitudinal striations channel the electrons straight off the tip, giving you a tight, focused arc cone.
Other details worth watching for: the taper angle (typically 2–2.5× the electrode diameter for DC work on steel), keeping a tiny flat or "land" on the very tip to prevent the point from balling off and dropping into the puddle, and using a dedicated grinding wheel so you don't contaminate the tungsten with steel or aluminum particles.
It's a short, focused clip from a tiny channel — exactly the kind of single-skill tutorial that's more useful than another full-process montage. If you've ever wondered why your arc dances around instead of biting where you point it, this is the first place to look.
