We live in a world that seems to be ever more complex. Much I love so much of the technology around me, I am often bewildered by how complicated it is [perhaps underneath the hood, resulting in a good user experience] and I have great respect for the smart people who create this magic. However, at heart, I am a simple man. I like simple things. I particularly enjoy an elegantly simple solution to a problem …
One of my favorite “simple solution” stories is about the guy who came up with a way for the toothpaste manufacturers to increase their sales. I wrote about that quite a while ago. I have no idea whether the tale is apocryphal or true; maybe it does not matter.
In the world of software, we are typically dealing with incredibly complex systems – so complex that it is amazing [to me] that they work at all! However, once in a while I come across something that has elegant simplicity. For example, imagine I have a number [which I will imaginatively call N] and I would like to print it out using a number base that I will call B – this can be in the range 2 to 10. Here is an algorithm to do it:
PrintNumber(N, B) divide N by B and save the remainder, R if N <> 0 PrintNumber(N, B) display(R) end
That is not a real programming language, but I hope that it demonstrates the logic. [Any coding geeks out there: yes, I know recursion is a Bad Thing, but it is cool, right?]
Finding simple solutions to things in everyday life is very rewarding. Last week, I saw a news story about a guy who solved someone’s problem is a very elegant way:
Tim was riding his bicycle in London and his wallet dropped out of his pocket. He was dismayed, not because there was much money in it, but there were several credit, debit and ID cards and it would be a very annoying job to cancel and replace them all. He back-tracked on his route, but did not find his wallet. Simon was cycling along the same road and spotted Tim’s wallet, which had clearly been lost. His first thought was to take it to a Police station, but he thought that he would try to find the owner himself first. There was nothing in the wallet with Tim’s address or phone number. He tried Facebook, but Tim’s name was too common. Then he had a brilliant idea. He sent Tim £0.04 using the account information on one of the cards in the wallet.
How did sending money help? In the UK [and I am sure other countries], a popular and efficient way to send money to someone else is by means of a “bank transfer”. All you need is their account number and “sort code” [another number] and you can send money almost instantly using online banking or your bank’s smartphone app. I do this all the time. When you make a transfer, there is the opportunity to add a “reference” – just a few characters of text – to identify the payment to the payee. Simon used this text to send Tim four messages, which put together, gave Tim the information he would need to recover his wallet. And it worked like a charm.
Tim rewarded Simon with a bottle of wine, but apparently has not reimbursed him the £0.04 …
IMHO, Simon is a genius and, clearly, a really nice guy.