Check Sums in Everyday Life
Check sums come up when programmers talk about data integrity and the low level transmission of data. They comes up when verifying the data for protocols that communicate on noisy channels and how to check the integrity after downloading compressed files among, other things. Some common ones are the md5sum, which is used to check a download is correct and the IPv4 header checksum.
The related sub-topic of check digits come up when you are dealing with numbers that has to be remembered and transmitted by an extremely noisy systems, humans. The 9th digit of a bank’s routing number is actually there to check you wrote the other eight down correctly. When you register your car the VIN’s 9th character is to prevent you transposing or mistyping the other 16 characters.
We normally think of check digits as part of formally designed systems but I find myself using them ad hocly in everyday life.
How Much I Need from the Grocery Store
If I’m headed to the store to pick up just a few things I feel silly writing down a list. I should be able to remember coffee, avocados, bananas, oatmeal, spinach, tomatoes, and bread. But inevitably one would slip my mind. Now instead of having to repeat them continuously or write them down I just remember I have to get 7 things from the store. If I only have 6 things in the basket then I’m missing one. Like any check sum there have been collisions when I come home with coffee, avocados, bananas, oatmeal, spinach, tomatoes, and beer. But it generally works.
Dates and Days of Week
Programmers famously hate dates and time but something especially annoying to me is that calendars lack consistency on whether they start on Monday or Sunday. The historical reasons for this are interesting but beside the point. I’ve occasionally misscheduled something due to subconsciously assuming the calendar I was looking at started on Monday.
Now whenever scheduling anything I state the day of the week, month and day of month. So I’m not writing this on “March 30th” I’m writing it on “Thursday March 30th”. Connoisseurs of how dates work will note that every 28 years the date and day of the week are the same but since I rarely schedule things that far out it’s yet to bite me.
For most people tweetstorms are probably not an everyday thing. A tweetstorm is when someone is tweeting a series of connected tweets because 140 characters isn’t enough for what they want to say. But if someone retweets only one tweet the original author want the reader to realize it’s part of a larger rant. It’s usually in the form
3/6 This is the 3rd tweet in a series of 6.
The 3/6 tells the reader, if they only saw the RT or if they have a busy feed, that there’s more to the idea then just the tweet they saw. Like a good checksum it let’s you know if you don’t have all the data. It’s not automated so occasionally the tweeter will misjudge how much they have to say and you’ll end up with
8/6 The 8th in a series of 6 because I misjudged how much I had to say.
None of these check digits prevent all errors but they’re easy to compute, which is important for a human. And they prevent the errors that humans are likely to make and care about. Be it coming home from the store short an item, showing up a day early for a meeting, or letting readers know what you’re tweeting about.