Solid objects turn out to be mostly made of empty space and whirling particles, but we act as though they're solid, because we rarely have to interact with them in such a granular way that involves their underlying complexity.
In the same way, solid iron-clad concepts turn out to be riddled with exceptions that we generally ignore because they're easy to deal with on a case-by-case basis. But when a programmer has to create a system that everyone can use, suddenly these "edge cases" grow to devour the project.
For example: human names are (really) weird. Building a system that can accept all the names people have is really hard. There's actually a giant list of human concepts that are hard to capture in software design.
A worthy addition to that list: Dave Delong's Calendrical Fallacies, AKA lies programmers believe about dates.
An hour will never occur twice in a single day
False. On days when we “leap back” for the Daylight Saving Time shift, one hour occurs twice. For example, in the United States, the hour that occurs twice is the 1 AM hour. This means that on these “fall back” days, correctly-implemented clocks will go from 1:58 … 1:59 … 1:00 … 1:01 … … 1:59 … 2:00 … 2:01 …
This leads to some interesting questions: If a user has set an alarm to wake up at 1 AM on that day, what happens? Does the alarm go off the hour after the midnight hour? Or does it go off during the hour before 2 AM? Or does it go off twice? Or do you just give up and not make the alarm go off at all and make your users miss their dead-of-night appointment?
Every day has a midnight
False. Brazil performs its DST “leap forward” transition at midnight, which means that 11:59 PM is followed by 1:00 AM.
So if you’re writing code and are trying to use the time 00:00:00 to represent “no time”, you will be wrong in Brazil, and Lebanon in 2017.
Your Calendrical Fallacy Is... [Dave Delong]
(via Four Short Links)
SQL Murder Mystery is a free/open game from Northwestern University's Knight Lab that teaches the player SQL database query structures and related concepts while they solve imaginary crimes.
Coraline Ada Ehmke's Hippocratic License is a software license that permits the broad swathe of activities enabled by traditional free/open licenses, with one exception it bars use by: "individuals, corporations, governments, or other groups for systems or activities that actively and knowingly endanger, harm, or otherwise threaten the physical, mental, economic, or general well-being of […]
Machine learning systems are pretty good at finding hidden correlations in data and using them to infer potentially compromising information about the people who generate that data: for example, researchers fed an ML system a bunch of Google Play reviews by reviewers whose locations were explicitly given in their Google Plus reviews; based on this, […]
In recent years, natural language processing technology and language translation technology have advanced greatly. The trouble is, language translation software typically comes in the form of apps. And while your mileage may vary on their usefulness, they share one thing in common: a serious drain on the battery for your smartphone, the very thing you’ll […]
Treat yourself, internet: We’ve rounded up some deals from the past week that were too good not to bring back for an encore. Take your pick from home goods, massagers and other tech, all at serious discounts. TREBLAB Z2 Bluetooth 5.0 Noise-Cancelling Headphones Get in the groove and stay that way with these headphones and […]
As cool as your smartphone is, it can’t do everything. When a job requires a little elbow grease, a multitool is a great thing to have around – and might just save your life in the right situation. Here’s a roundup of some of the latest multitool designs, which have come a long way since […]