Thursday, July 30, 2026

Fixing a super 8 projector from the 70sWarning! Do not try any of this at home! Messing with internals of electronic devices is dangerous and can lead to electrical fires, serious injury and even loss of life. My dad started using a super 8 film camera as early as 1967 (the system was launched in 1965). He stopped doing it in the 1980s as it became pretty much impossible to buy film. Ever since then the films have been stored in multiple cardboard boxes in his basement. Recently he moved to a smaller apartment so all the films and related hardware had to go somewhere else. Namely, to me. Here is a representative sample. The picture does really not make justice to the projector. It is perhaps the only household appliance I have ever owned that could survive a head-on collision with an IBM Thinkpad from the 2000s. The projector weighs 10 kilos and consumes 200 watts when running, half of which is taken by its halogen light bulb. For comparison a typical modern LED light bulb consumes less than 5 watts. The projector has not been used this millennium so unsurprisingly it did nothing when I plugged it in. The back cover could be opened (with a screwdriver) revealing two glass fuses, one of which was burnt. I replaced it and plugged the machine back in. It immediately let loose the magic smoke even though everything was turned off. Fortunately I had kept the back cover open so could see the smoke the second it appeared and managed to cut the power before flames appeared. Unfortunately the smoke originated deep inside the machine so I could not see which component was the source. To get deeper I would have to remove all the covers. That is no small feat, mind you, I had to buy a whole new ratchet set to get all the various screws out. This thing predates printed circuit boards that would tell you which holes belong to which components. Instead all components have been soldered to the board by hand with Japanese meticulousness. The board won't give us any help on deciphering how things should work. Visual inspection also does not reveal any immediately broken components. Neither did poking around with a multimeter. The only life line was that even though a component had started smoking the fuse had not blown. In theory I could plug the machine in for a second and see if smoke appears again. If it does I can see the exact component faulty component. At this point I'd like to remind you of the warning at the top of the post. If you have a known broken electrical device, you should never connect it to any sort of a power source. Seek advice from a qualified professional instead. Even if you manage not to burn your house down, electric shocks are nasty any resulting smoke is almost certainly noxious. Anyhow, after taking sufficient precautions I plugged it back in and immediately got smoke and could decipher what was wrong. One of the main electrolytic capacitors (the one that was in the most inconvenient location, obviously) had dried out and shorted. This caused one of the bridge rectifiers to have its positive and negative output leads short circuited. Here are the problematic components. The dark blue capacitor on the right is the broken one. For some weird reason the three decoupling capacitors have different voltage ratings (16V, 25V and 50V) even though there is only one transformer and input voltage (12 V). The black circles are the bridge rectifiers. The one on the right is the broken one. In this picture the cracks are fairly visible but trying to detect them in person is very difficult, even with a magnifying glass and a flashlight. According to multimeter measurements the other two capacitors and rectifier are working, but it's better to replace all of them. 50 year old eletrolytic capacitors have a short life expectancy and the additional work needed to fix all instead of only one is insignificant. Here is a comparison shot of the old components and their modern replacements. After soldering in the new components you enter a paranoid session of measuring every possible combination on the board to ensure you have not accidentally created a short or put any of the components in the wrong way. Any failure can give you a live Electroboom experience in your own home. Even though it sounds exciting, you really don't want to see it with your own eyes. I don't speak from experience here, and intend to keep it that way. Anyhow, eventually you have to plug the power and try if the machine works. Amazingly enough it did without a hitch. Once you have it running you can truly appreciate how well the mechanical parts of the projector have been designed. It runs silent, smooth and with zero visible jitter. There is only one plastic knob in the entire device. Unfortunately it is the lens focus adjustment wheel, and it has broken off (as you can see in the first image). You can still sort of twist it with your fingers but the experience is inconvenient to say the least. What next? An obvious question some of you might have is "Wouldn't it be more convenient to watch films on a computer than an ancient and potentially deadly projector?" The answer to that is "Yes, it would indeed be." But more on that in a future blog post.๐Ÿ“Nibble Stew

If this page is useful, please consider donating a coffee

Wednesday, July 29, 2026

Tuesday, July 28, 2026

Practical Testing: 42 - Another code updateBack in 2004 I started a series of blog posts, called โ€œPractical Testingโ€, about testing real-world, multi-threaded code. In 2023 I did a brief precis of how we got here and, since the code is still in regular use and still evolving, itโ€™s time to talk about some of the recent changes. This release of the code makes no functional changes to the code that weโ€™re testing in this series of articles.๐Ÿ“Rambling Comments - Len Holgate's blog
A crosswording miscellanyI just finished reading Natan Last's 2025 book _Across the Universe: The Past, Present, and Future of the Crossword Puzzle._ It was... fatiguing. Now, I myself am a "discursive" writer, so I'm throwing stones from a glass house here; but it seemed to me that Last's _every_ paragraph consisted of three or four anecdotes halfway told, capped off with some nonsensical simile. Open the book at random to page 31: > On December 11, 2022, Eric [Albert] suffered a hemorrhagic stroke of his cerebellum. > He's lucky to be alive: around 50 percent of patients die in a month, half of those within > the first two days. When we first spoke in April 2023, I immediately asked if his language > had been affected, then regretted it. But he was fine, he said. The neurologists don't know > why the stroke happened, or how he recovered his cognition so quickly. He says he repeated the > French he was learning to himself in the ICU. I imagined him, was almost ashamed to imagine him, > saying _cirรฉ cirรฉ cirรฉ, รฉpรฉe รฉpรฉe รฉpรฉe_ โ€” as if the accent marks were stray neurons in need of repair > โ€” or an item from James Joyce's _Finnegans Wake_ I'd just seen in _Word Ways_ because it's the > only "word" with five or more Q's: _Quoiquoiquoiquoiquoiquoiquoiq!_ In Joyce's _Wake_, it's > preceded by the line: "He lifts the lifewand and the dumb speak." I remembered analyses of > Broca's aphasia I'd read studying neuroscience in college [...]๐Ÿ“Arthur Oโ€™Dwyer
Iterable cuts P90 build time from 42 minutes to 17 minutes with EngFlowIterable cuts P90 build time from 42 minutes to 17 minutes with EngFlow By migrating its Scala backend from sbt to Bazel with EngFlow and VirtusLab, Iterable created a faster, more reliable build foundation for AI-era engineering velocity. 42 โ†’ 17 minutes P90 build time \~3 minutes Common build time for smaller changes \~97% Integration-test pass rate on master, up from the 70s Iterable is an AI customer engagement platform trusted by global brands to create personalized experiences across every channel. Behind the platform is a distributed engineering organization building and operating a large, complex software estate. For Iterableโ€™s Developer Platform team, the mission is straightforward: help developers release software faster, with greater reliability and safety.๐Ÿ“EngFlow Blog

Monday, July 27, 2026

Sunday, July 26, 2026

Interconverting `std::function` with `copyable_function`C++11 introduced std::function as a type-erased callable-object holder. function was badly designed in a few ways: Its rarely used โ€œgo fishโ€ API bloats every user; it advertises operator() const even when the controlled objectโ€™s operator() is mutating; it handles what should be a precondition violation by throwing an exception, which again bloats every user and means its operator() can never be noexcept. So C++26 fixed these problems by adding std::copyable_function. (Which preserves some of functionโ€™s suboptimal design decisions: copyable_function remains implicitly convertible to copyable_function , contextually convertible to bool, and assignable from nullptr.)๐Ÿ“Arthur Oโ€™Dwyer

Saturday, July 25, 2026

Friday, July 24, 2026

Introducing Logarithmic Quantities and UnitsIntroducing Logarithmic Quantities and Units Decibels are everywhere in engineering. Signal levels in dBm , sound pressure in dB SPL , voltage gain in dB , filter slopes in dB/octave . The neper, pH, and stellar magnitude share the same structure. Yet, to the best of our knowledge, no general-purpose units library models logarithmic quantities correctly. Most do not model them at all. The few that do treat a decibel as a non-linear scale or an offset unit, and that choice gets the arithmetic wrong in ways that compile silently. This article is a request for feedback . We believe we have a correct design, derived from the same affine-space model we introduced for absolute quantities . It also aims to stay consistent with the ISO/IEC 80000 standards: especially IEC 80000-15:2026, Logarithmic quantities and their units , which consolidates the logarithmic-quantity rules once held in ISO 80000-1:2009 (Annex C); together with ISO 80000-2 (the logarithm functions lb , ln , lg ), ISO 80000-8 (acoustics), and IEC 80000-13 (information theory). We have read those against this design, cite them throughout, and call out the one place we knowingly diverge from them ( Open Question 5 ). This post describes the design in full, from the quantity spec to the named units, the arithmetic, the conversions, and every domain we surveyed (audio, RF, acoustics, chemistry, astronomy, music, information theory). Then it lays out the open questions , each with every alternative we considered and our current preference. Before we implement any of this in mp-units , we want the people who use these quantities daily to tell us where we are wrong.๐Ÿ“mp-units