Curated list of awesome lists
😱 Awesome Falsehood 
A curated list of falsehoods programmers believe in.
A falsehood is an idea that you initially believed was true, but in reality, it is proven to be false.
E.g. of an idea: valid email address exactly has one @
character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The reality is: emails can have multiple @
chars. Therefore your implementation should allow this. The initial idea is a falsehood you believed in.
The falsehood articles listed below will have a comprehensive list of those false-beliefs that you should be aware of, to help you become a better programmer.
Contents
Arts
Business
-
Falsehoods about Online Shopping - Covers prices, currencies and inventory.
-
Falsehoods about Prices - Covers currencies, amounts and localization.
-
Falsehoods about IBANs - International Bank Account Numbers are not international.
-
Falsehoods about Economics - Economics are not simple or rational.
-
Decimal Point Error in Etsy's Accounting System - The importance of types in accounting software: missing the decimal point ends up with 100x over-charges.
-
Twenty five thousand dollars of funny money - Same error as above at Google Ads, or the danger of separating your pennies from your dollars, were $250 internal coupons turned into $25,000. My advice: get rid of integers and floats for monetary values. Use decimals. Or fallback to strings and parse them, don't validate.
-
Characters
<
and >
in company names lead to XSS attacks - Because UK allows companies to be registered with special characters, a hacker leveraged them to register \"><SCRIPT SRC=MJT.XSS.HT></SCRIPT> LTD
, but also ; DROP TABLE "COMPANIES";-- LTD
, BETTS & TWINE LTD
and SAFDASD & SFSAF \' SFDAASF\" LTD
.
-
Minutiae of company names - How the rules of the State of Delaware and the IRS does not intersects.
-
CLDR currency definitions - Currency validity date ranges overlap due to revolts, invasions, new constitutions, and slow planned adoption.
-
tax
- A PHP 5.4+ tax management library.
Dates and Time
-
Falsehoods about Time - Seminal article on dates and time.
-
More Falsehoods about Time - Part. 2 of the article above.
-
Falsehoods about Time and Time Zones - Another takes on time-related falsehoods, with an emphasis on time zones.
-
Critique of Falsehoods about Time - Takes on the first article above and provides an explanation of each falsehood, with more context and external resources.
-
Falsehoods about Unix Time - Mind the leap second!
-
Falsehoods about Time Zones - Has some nice points regarding the edge-cases of DST transitions.
-
Your Calendrical Fallacy Is Thinking… - List covering intercalation and cultural influence, made by a community of iOS and macOS developers.
-
Time Zone Database - Code and data that represent the history of local time for many representative locations around the globe.
-
The Long, Painful History of Time - Most of the idiosyncrasies in timekeeping can find an explanation in history.
-
You Advocate a Calendar Reform - Your idea will not work. This article tells you why.
-
So You Want to Abolish Time Zones - Abolishing timezones may sound like a good idea, but there are quite a few complications that make it not quite so.
-
The Problem with Time & Timezones - A video about why you should never, ever deal with timezones if you can help it.
-
$26,000 Overcollection by Labor Department - The consequence of wrong calendar accounting.
-
RFC-3339 vs ISO-8601 - An giant list of formats from the two standards, how they overlaps, and live examples.
-
ISO-8601,
YYYY
, yyyy
, and why your year may be wrong - String formatting of date is hard.
-
UTC is Enough for everyone, right? - There are edge cases about dates and time (specifically UTC) that you probably haven't thought of.
-
Storing UTC is not a silver bullet - “Just store dates in UTC” is not always the right approach.
-
How to choose between UT1, TAI and UTC - Depends on your priorities between SI seconds, earth rotation sync, leap seconds avoidance.
-
Why is subtracting these two times (in 1927) giving a strange result? - Infamous Stack Overflow answer about both complicated historical timezones, and how historical dates can be re-interpreted by newer versions of software.
-
Critical and Significant Dates - From Y2K to the overflow of 32-bit seconds from Unix epoch, a list of special date to watch for depending on the system.
- “I'm going to a commune in Vermont and will deal with no unit of time shorter than a season.” - Is the note left on his terminal by a quitting engineer in the 70s, after too much effort toiling away on sub-second timing concerns. Source: The Soul of a New Machine.
Education
Emails
Geography
Human Identity
Internationalization
On character encoding, string formatting, unicode and internationalization.
Management
-
Falsehoods about Video - Cover it all: video decoding and playback, files, image scaling, color spaces and conversion, displays and subtitles.
-
Horrible edge cases to consider when dealing with music - Music catalogs data are full of crazy stuff.
-
MusicBrainz database schema - An open-source project and database that seems to have solved the complexity of music catalog management.
-
DDEX - The industry standard for music metadata, including archiving, sound recording, sales and usage reporting, royalties and license deals.
-
Apple Music Style Guide - Quality insurance guidelines to format music, art, and metadata to increase discoverability.
Networks
Phone Numbers
Postal Addresses
-
Falsehoods about Addresses - Covers streets, postal codes, buildings, cities and countries.
-
Falsehoods about Residence - It's not only about the address itself, but the relationship between a person and its residence.
-
Letter Delivered Despite No Name, No Address - Ultimate falsehood about postal addresses: you do not need one.
-
The Bear with Its Own ZIP Code - Smokey Bear has his own ZIP Code (
20252
) because he gets so much mail.
-
Regex and Postal Addresses - Why regular expressions and street addresses do not mix.
-
Parsing the Infamous Japanese Postal CSV - “I saw many horrors, but I've never seen this particular formatting choice anywhere else.”
-
libaddressinput
- Google's common C++ and Java library for parsing, formatting, and validating international postal addresses.
-
addressing
- A PHP 5.4+ addressing library, powered by Google's dataset.
-
postal-address
- Python module to parse, normalize and render postal addresses.
-
address
- Go library to validate and format addresses using Google's dataset.
Science
Society
Software Engineering
Transportation
Typography
Video Games
-
The Door Problem - All the things you have not considered implementing for your doors in games.
Web
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.
Footnotes
The header image is based on a modified photo taken in February 2010 by Iza Bella, distributed under a Creative Commons BY-SA 2.0 UK license.
[1]: Notebooks, 1914-1916, page 14e (Harper & Brothers, New York, 1961). [↑]