Lonnie Johnson, Prolific Engineer And Hero To Millions Of Kids (Even If They Don’t Know It)

The current generation Super Soaker XP30. (Hasbro)
The current generation Super Soaker XP30. (Hasbro)

To be a child in the 1970s and 1980s was to be of the first generations to benefit from electronic technologies in your toys. As those lucky kids battled blocky 8-bit digital foes, the adults used to fret that it would rot their brains. Kids didn’t play outside nearly as much as generations past, because modern toys were seducing them to the small screen. Truth be told, when you could battle aliens with a virtual weapon that was in your imagination HUGE, how do you compete with that.

How those ’80s kids must have envied their younger siblings then when in 1990 one of the best toys ever was launched, a stored-pressure water gun which we know as the Super Soaker. Made of plastic, and not requiring batteries, it far outperformed all squirt guns that had come before it, rapidly becoming the hit toy of every sweltering summer day. The Super Soaker line of water pistols and guns redefined how much fun kids could have while getting each other drenched. No longer were the best water pistols the electric models which cost a fortune in batteries that your parents would surely refuse to replace — these did it better.

You likely know all about the Super Soaker, but you might not know it was invented by an aerospace engineer named Lonnie Johnson whose career included working on stealth technology and numerous projects with NASA.

Continue reading “Lonnie Johnson, Prolific Engineer And Hero To Millions Of Kids (Even If They Don’t Know It)” →

Samsung’s Leap Month Bug Teaches Not To Skimp On Testing

Date and time handling is hard, that’s an ugly truth about software development we’ll all learn the hard way one day. Sure, it might seem like some trivial everyday thing that you can easily implement yourself without relying on a third-party library. I mean, it’s basically just adding seconds on top of one another, roll them over to minutes, and from there keep rolling to hours, days, months, up until you hit the years. Throw in the occasional extra day every fourth February, and you’re good to go, right?

Well, obviously not. Assuming you thought about leap years in the first place — which sadly isn’t a given — there are a few exceptions that for instance cause the years 1900 and 2100 to be regular years, while the year 2000 was still a leap year. And then there’s leap seconds, which occur irregularly. But there are still more gotchas lying in wait. Case in point: back in May, a faulty lunar leap month handling in the Chinese calendar turned Samsung phones all over China into bricks. And while you may not plan to ever add support for non-Gregorian calendars to your own project, it’s just one more example of unanticipated peculiarities gone wild. Except, Samsung did everything right here.

So what happened?

Continue reading “Samsung’s Leap Month Bug Teaches Not To Skimp On Testing” →

Binary Math Tricks: Shifting To Divide By Ten Ain’t Easy

On small CPUs, you often don’t have a multiply or divide instruction. Of course, good programmers know that shifting right and left will multiply or divide by a power of two. But there are always cases where you need to use something that isn’t a power of two. Sometimes you can work it out for multiplication.

For example, multiplying by 10 is common when dealing with conversion between binary and decimal. But since 10n is equal to 8n+2n, you can express that as a bunch of left shift three times to multiply by eight, adding that value to your original value shifted left once to multiply by two.

But division is a different problem. n/10 does not equal n/8-n/2 or anything else simple like that. The other day a friend showed me a very convoluted snippet of code on Stack Overflow by user [realtime] that divides a number by 10 and wanted to know how it worked. It is pretty straightforward if you just stick with the math and I’ll show you what I mean in this post. Turns out the post referenced the venerable Hacker’s Delight book, which has a wealth of little tricks like this.

Continue reading “Binary Math Tricks: Shifting To Divide By Ten Ain’t Easy” →

Quantum Computing And The End Of Encryption

Quantum computers stand a good chance of changing the face computing, and that goes double for encryption. For encryption methods that rely on the fact that brute-forcing the key takes too long with classical computers, quantum computing seems like its logical nemesis.

For instance, the mathematical problem that lies at the heart of RSA and other public-key encryption schemes is factoring a product of two prime numbers. Searching for the right pair using classical methods takes approximately forever, but Shor’s algorithm can be used on a suitable quantum computer to do the required factorization of integers in almost no time.

When quantum computers become capable enough, the threat to a lot of our encrypted communication is a real one. If one can no longer rely on simply making the brute-forcing of a decryption computationally heavy, all of today’s public-key encryption algorithms are essentially useless. This is the doomsday scenario, but how close are we to this actually happening, and what can be done?

Continue reading “Quantum Computing And The End Of Encryption” →

The Seedy World Of Message Serialization

Look, I’ve been there too. First the project just prints debug information for a human in nice descriptive strings that are easy to understand. Then some tool needs to log a sensor value so the simple debug messages gain structure. Now your debug messages {{look like : this}}. This is great until a second sensor is added that uses floats instead of ints. Now there are sprinklings of even more magic characters between the curly braces. A couple days later and things are starting to look Turing complete. At some point you look up and realize, “I need a messaging serialization strategy”. Well you’ve come to the right place! Continue reading “The Seedy World Of Message Serialization” →

Bertha Benz Pushed The Automobile Toward Production

Who invented the automobile? The answer depends a little bit on your definition of the word. The first practical gas-powered carriage was built by Karl Benz, who later merged his company with Daimler Motor Group to form Mercedez-Benz.

Karl Benz was a design visionary whose first fascinations were with locomotives and bicycles. His 1886 Benz Patent Motorwagen was the first automobile to generate its own power, which was made with a two-stroke engine and transmitted to the rear axle by a pair of chains. He didn’t think it was ready for the road, and he was mostly right.

Bertha Benz, Karl’s wife and business partner, believed in her husband’s invention. She had been there since the beginning, and provided much of the funding for it along the way. If she hadn’t taken it out for a secret, illegal joyride, the Motorwagen may have never left the garage.

Continue reading “Bertha Benz Pushed The Automobile Toward Production” →

3D Printing Nuclear Reactors For Fun And Profit

Over the past decades, additive manufacturing (AM, also known as 3D printing) has become increasingly common in manufacturing processes. While immensely helpful in the prototyping of new products by allowing for rapid turn-around times between design and testing, these days additive manufacturing is used more and more often in the production of everything from small production runs of custom enclosures to hard to machine components for rocket engines.

The obvious advantage of additive manufacturing is that they use generic equipment and common materials as input, without requiring expensive molds as in the case of injection molding, or extensive, wasteful machining of raw materials on a lathe, mill, and similar equipment. All of the manufacturing gets reduced to a 3D model as input, one or more input materials, and the actual device that converts the 3D model into a physical component with very limited waste.

In the nuclear power industry, these benefits haven’t gone unnoticed, which has led to 3D printed parts being developed for everything from keeping existing plants running to streamlining spent fuel reprocessing and even the printing of entire nuclear reactors.

Continue reading “3D Printing Nuclear Reactors For Fun And Profit” →