A television repair technician repeatedly revives apparently dead, expensive TVs by bypassing a fault caused by one failed backlight LED. The panel itself still works, but the firmware detects an LED current outside a narrow tolerance and shuts down the entire set. LED aging is an ordinary, expected failure; treating it as a fatal fault turns a minor repair into the loss of a working television. The piece cautions readers not to open a TV because dangerous voltage can remain after unplugging it, and focuses instead on the firmware design. It argues that the shutdown need not imply deliberate planned obsolescence: whatever the manufacturer’s motive, the engineering mistake is classifying a recoverable condition as fatal.
The broader lesson is to classify failures before choosing an error-handling mechanism. Bugs, such as violated preconditions, should be exposed with assertions or contracts and generally stop execution; expected problems, such as invalid input or an unavailable file, belong in ordinary control flow, potentially represented with C++’s std::expected; genuinely rare failures that a distant caller can handle are appropriate for exceptions. The television’s LED fault belongs in the second category: firmware could log it, continue operating, adjust brightness, and signal that service is needed. A hard shutdown should be reserved for genuinely dangerous conditions such as overheating or overvoltage. Choosing exceptions, error codes, or other mechanisms is secondary to deciding what kind of failure occurred.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.