Lateral Thinking: examples of creative solutions
Table of Contents
- The solutions
- Memory leak? Just put more RAM
- Delete your account fast
- DNS’s case insensitivity for security purposes
- Nintendo copy protection
- Want to reach out? Solve the quiz first!
- Want to access this website? Solve the quiz first!
- More efficient fluorescent lamps
- Fake it until you make it: Amazon Mechanical Turk
- Game boy screen mirroring
- Keep track of time using the Alternate Current frequency
- Constant work
- Lavarand
- Other
- Conclusion
I like to think that problems are what's most worth obsessing on, and that the solution usually follows easily from a good understanding of a problem. This post is not about problems, but rather about solutions that I consider surprisingly clever.
From Wikipedia:
Lateral thinking is a manner of solving problems using an indirect and creative approach via reasoning that is not immediately obvious. It involves ideas that may not be obtainable using only traditional step-by-step logic
I'm planning to update it over time, so if you have interesting examples, please send them over, and I’ll consider including them.
The solutions
Memory leak? Just put more RAM
Missiles require some software running on them. Imagine that during debugging, you found that this software is leaking memory. Memory leaking happens when a program never releases allocated memory. When the system runs out of memory, the program will fail to allocate more memory and probably crash.
Because finding the leak can be very expensive in time and resources, the alternative solution was to calculate how much memory was leaked over time (say 3KiB/minute), and to put enough RAM to allow it to hit the target.
Delete your account fast
Some companies tend to make it tough to disable/delete your account. This dark pattern is used to discourage users from going through the hustle of deleting their account or stop their subscription to the service.
A solution to get it closed faster is to "abuse" the service in a way that would get it deleted due to company policy infringement. For example, on a social media website, one could post banned content (p*rn) or just spam links.
DNS’s case insensitivity for security purposes
The small (16-bit) size of the DNS transaction ID has made it a frequent target for forgery, with the unhappy result of many cache pollution vulnerabilities.
Instead of creating a breaking change of the protocol, an RFC by Vixie and Dagon explains how to exploit the protocol's specification to increase the entropy of the DNS transaction id. The idea is to simply randomly flip the capitalization of letters in DNS queries. The DNS standards require that name servers treat names with case-insensitivity; therefore, it's not a breaking change. This trick helps to improve the randomness and unpredictability of DNS query identifiers, making it harder for attackers to manipulate or spoof DNS responses.
- Source: https://datatracker.ietf.org/doc/html/draft-vixie-dnsext-dns0x20-00 and Google dev docs
- Shared by: Marco Biagi
Nintendo copy protection
When you turn on a Game Boy, the first screen you'll see is the Nintendo’s logo. This logo is present in all cartridges, and at a boot time the cpu will compare it to the one stored in the ROM. If they don’t match, the Game Boy will halt the execution—something went wrong when reading data. For this reason, all game developers need to put the Nintendo’s logo in the game's cartridge.
The clever idea is that this logo check is not used for checking the connection only, but also to get rid of unlicensed copies of games. Nintendo had a plan to sue all unauthorized uses of their logo. In this way, they didn't have to put any license protection software/hardware.
- Source: Hacking the Game Boy cartridge protection
- Shared by: Federico Scozzafava
Want to reach out? Solve the quiz first!
Say that you’re getting a lot of spam emails, and your filters are not able to capture them and filter them out.
You could, for example, try to tune your filters better, and update them over time to overcome spammer’s eluding techniques.
Or as an alternative, you could respond to every email and ask them "to compute a moderately hard, but not intractable function". This is the idea proposed by Dwork and Naor in their 1992 paper "Pricing via Processing or Combatting Junk Mail". This same high-level idea is behind Bitcoin’s Proof Of Work as well.
Want to access this website? Solve the quiz first!
This one ties to the proof of work idea. To differentiate a bot from a real user, ask them to solve a captcha!
The clever idea behind it is that this work is not wasted (as in Bitcoin’s proof of work), for example, it’s well known that Google uses solutions of Recaptcha challenges to "to digitize text, annotate images, and build machine-learning datasets. This in turn helps preserve books, improve maps, and solve hard AI problems.".
- Source: Google Recaptcha
More efficient fluorescent lamps
As recently as in the year 2000s, before LED lights were the norm, fluorescent lamps were very low power, cost-efficient alternative to incandescent light bulbs. Their only downside is the warm-up time before providing the light at full capacity.
A solution developed by General Electric called Compact Fluorescent Lamp (CFL) was to put an incandescent light bulb inside a fluorescent one. When the light is turned on, the inner light bulb would initially provide the light, and it would be shut off as soon as the fluorescent one was warmed up. The inner light bulb had also the side effect of help heating up the gas in the surrounding lamp. Source: Bright from the Start: GE's CFL with an incandescent trick up its sleeve on YouTube
- Source: Bright from the Start: GE's CFL with an incandescent trick up its sleeve
- Shared by: Federico Scozzafava
Fake it until you make it: Amazon Mechanical Turk
It is tough to build a great product, especially if there are not yet competitors around to take inspiration from. If you want to use some machine learning model, you will also need a training dataset.
One way to fix this problem would be to just take some realistic actors and record hours of videos. In this way, you could build your dataset to then train your model and finally release the product to understand if customers like it or not.
Another way is to have an MVP for a model, and use Amazon Mechanical Turk to help tagging videos of real users and help decide on ambiguous scenarios.
This example has the Amazon Just Walk Out technology in mind, in which Mechanical Turk was used to watch the recordings of customers taking items and bill them after walking out of the store.
- Source: Amazon's AI Stores Seemed Too Magical. And They Were.
- Shared by: Federico Scozzafava
Game boy screen mirroring
The original Game Boy was not designed with screen mirroring in mind, so it does not come with a video output.
One way to get screen mirroring would be to open it and modify the motherboard to add this support.
A clever idea was to create a cartridge shield that taps into the system bus, and would transmit all the bits to an emulator running on the computer effectively achieving screen mirroring without accessing to the video memory.
This technique is similar to a Digital Twin simulation.
- Source: A Game Boy capture cartridge: The GB Interceptor on YouTube
- Shared by: Federico Scozzafava
Keep track of time using the Alternate Current frequency
Electronic devices like clocks sometime need access to a time source to work properly. One way to solve this problem is to add a crystal oscillator: when current is applied, they vibrate with a certain frequency and can be used for timekeeping.
Another solution is to use the alternate current source’s frequency to calculate the passing of time. The AC line frequency is simply sent through a counter/clock circuit. Most of these clocks do have a very economical circuit and backup battery to keep time when the AC line power is off. Their accuracy on the backup battery can be quite bad over extended times.
- Source: Quora
- Shared by: Federico Scozzafava
Constant work
In your web service, every request adds some amount of load to your system. Assessing the load per request, it’s hard because usually when the system is unloaded, every request takes some small effort to complete, while when the system is more loaded it will take more effort. So it seems like the cost per request varies depending on the current load of the system. Given some load per request, we could use this number to estimate how many servers are needed to handle some number of requests per second. But again, it’s challenging to predict how your service will behave under a heavy load.
Constant work is a concept introduced in the AWS builders library article by Colm MacCárthaigh "Reliability, constant work, and a good cup of coffee". It recommends that each request should require an equal amount of effort to complete. How? Doing the same amount of work per request - in some cases, wasting cpu time running no-ops. Having a constant amount of work per request gives you predictability on how the system will perform under a heavy load.
Lavarand
Cryptography relies on the ability to generate random numbers that are both unpredictable and kept secret from any adversary. Computers are predictable machines and a way to gather some random number is to sense the environment (temperature, capturing atmospheric noise, etc.).
Because each of the sensing mechanisms could potentially be tampered with, depending on the business requirements of the use case it might make sense to use as input a mix of different sources of randomness.
Lavarand, also known as the Wall of Entropy, is a system that was first proposed and built by Silicon Graphics in 1996 and more recently implemented by Cloudflare as well. Lavarand uses lava lamps as a secondary source of randomness for the production servers.
- Source: LavaRand in Production on Cloudflare Blog
- Shared by: Marco Biagi
Other
The following are not related to computers, but they are still interesting or funny.
Deploying cats to fight infestations
In 1960, the UK ’s Royal Air Force deployed cats to fight rat infestation:
The cats were flown out of Singapore and delivered in crates dropped by parachutes as part of a broader program of supplying cats to combat an infestation of rats.
Source: Operation Cat Drop on Wikipedia.
Too many complains about baggage reclaim wait time
At Houston’s airport, customers were complaining that about the long wait times for baggage claim.
After trying to speed up the baggage handling process, the executives of the airport decided to move the gate farther. In this way, people needed more time to walk there, giving the staff enough time to unload the baggage. I’m not sure how true this story is, but still it sounds like a lateral thinking solution.
Source: https://www.nytimes.com/2012/08/19/opinion/sunday/why-waiting-in-line-is-torture.html
Conclusion
The initial goal of this article was to describe solutions that I find creative or surprising. After talking about it with some friends and colleagues, I had to try to give a definition of what qualified to be included here and what not. In fact, "creative" and "surprising" are a subjective way to describe something. Some examples in this article might not be in fact considered as "lateral thinking" for some of the readers that could think of them as being obvious—but that’s ok.
For every example, I first thought about the problem. Then tried to think about an obvious, logical solution. If the alternative solution seemed creative, then I had it included here.
While undoubtedly creative, I’ve decided to not include examples like how "An Artist Used 99 Phones to Fake a Google Maps Traffic Jam" because they are not solving a problem.
The most fun part for me was discussing ideas with other people and getting messaged back a few days later with new examples. I hope that you will start noticing and appreciate lateral thinking solutions, and if you have good examples - please send them over!