awesome-falsehood

Falsehoods

A curated list of common falsehoods programmers believe in, with articles on various topics to help developers become more aware of false assumptions.

đŸ˜± Falsehoods Programmers Believe in

GitHub

24k stars
370 watching
566 forks
last commit: almost 2 years ago
Linked from 7 awesome lists

awesomeawesome-listdateedge-casesemailengineeringfalsehoodsgeographyidentityinternationalizationmythsnetworkphone-numberphone-numberspostal-addressesprogrammingresourcestimetypography

Meta

Falsehoods Programmers BelieveA brief list of common falsehoods. A great overview and quick introduction into the world of falsehoods
Falsehoods about ProgrammingA humbling and fun list on programming and programmers themselves
Falsehoods about Falsehoods ListsMeta commentary on how these falsehoods shouldn't be handled

Arts

Falsehoods about MusicFalse assumption that might be made in codifying music
Falsehoods about ArtCommon misconceptions about art

Business

Falsehoods about Online ShoppingCovers prices, currencies and inventory
Falsehoods about PricesCovers currencies, amounts and localization
Falsehoods about IBANs478about 2 years agoInternational Bank Account Numbers are not international
Falsehoods about EconomicsEconomics are not simple or rational
Decimal Point Error in Etsy's Accounting SystemThe importance of types in accounting software: missing the decimal point ends up with 100x over-charges
Twenty five thousand dollars of funny moneySame error as above at Google Ads, or the danger of separating your pennies from your dollars, where $250 internal coupons turned into $25,000. My advice:
Characters < and > in company names lead to XSS attacksBecause , a hacker leveraged them to register , but also , and
Minutiae of company namesHow the rules of the State of Delaware and the IRS does not intersects
CLDR currency definitions933almost 2 years agoCurrency validity date ranges overlap due to revolts, invasions, new constitutions, and slow planned adoption
tax278about 2 years agoA PHP 5.4+ tax management library

Cryptocurrency

Falsehoods about Bitcoin68almost 2 years agoA list of mistaken perspectives on Bitcoin
Falsehoods about EthereumMisconceptions and common pitfalls in contract programming

Dates and Time

Falsehoods about TimeSeminal article on dates and time
More Falsehoods about TimePart. 2 of the article above
Falsehoods about Time and Time ZonesAnother takes on time-related falsehoods, with an emphasis on time zones
Critique of Falsehoods about TimeTakes on the first article above and provides an explanation of each falsehood, with more context and external resources
Falsehoods about Unix TimeMind the leap second!
Falsehoods about Time ZonesHas 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 DatabaseCode and data that represent the history of local time for many representative locations around the globe
The Long, Painful History of TimeMost of the idiosyncrasies in timekeeping can find an explanation in history
You Advocate a Calendar ReformYour idea will not work. This article tells you why
So You Want to Abolish Time ZonesAbolishing timezones may sound like a good idea, but there are quite a few complications that make it not quite so
The Problem with Time & TimezonesA video about why you should never, ever deal with timezones if you can help it
$26,000 Overcollection by Labor DepartmentThe consequence of wrong calendar accounting
RFC-3339 vs ISO-8601An giant list of formats from the two standards, how they overlaps, and live examples
ISO-8601, YYYY, yyyy, and why your year may be wrongString 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 UTCDepends 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 DatesFrom Y2K to the overflow of 32-bit seconds from Unix epoch, a list of special date to watch for depending on the system
The Soul of a New Machine“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:

Education

Falsehoods CS Students (Still) Believe Upon GraduatingA list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better
Postdoc myths“Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”

Emails

Falsehoods about EmailOn addresses, content and delivery
I Knew How to Validate an Email Address Until I Read the RFCProvides intricate examples that are unsuspected valid email addresses according the RFC-822
So you think you can validate email addresses (FOSDEM 2018)Presentation of edge-case email addresses and why you should not use regex to parse them
Your E-Mail Validation Logic is WrongA summary of the various, surprising things that are allowed in an email address
libvldmail53about 2 years agoA library that implements RFC-based checks for e-mail addresses

Geography

Falsehoods about GeographyTakes on places, their names and locations
Falsehoods about MapsCovers coordinates, projection and GIS
I Hate Coordinate SystemsA guide for geospatial practitioners on diagnosing and fixing common issues with coordinate systems
Top 5 most insane kanji place names in Japan“There's one special group of kanji that's hard even for Japanese people to read: place names.”

Human Identity

Falsehoods about NamesThe article that started it all
Falsehoods about Names – With ExamplesA revisited version of the article above, this time with detailed explanations
Falsehoods about BiometricsFingerprints are not unique
Falsehoods about FamiliesYou can't really define a family with strict rules
#1Falsehoods about Gender: & - Gender is part of human identity and has its own subtleties
Falsehoods about MeIssues at the intersection of names and gender and internationalization
Gay Marriage: The Database Engineering PerspectiveHow to store a marriage in a database while addressing most of the falsehoods about gender, naming and relationships
Personal Names Around the WorldHow do people's names differ around the world, and what are the implications for the Web?
XKCD #327: Exploits of a MomFunny take on how implementation of a falsehood might lead to security holes
Hello, I'm Mr. Null. My Name Makes Me Invisible to ComputersReal-life example on how implemented falsehood has negative impact on someone's life
HL7 v3 RIMA flexible data model for representing human names
Apple iOS NSPersonNameComponentsFormatterLocalized representations of the components of a person's name

Internationalization

Falsehoods about LanguageTranslating a software from English is not as straightforward as it seems to be
Falsehoods about Plain TextPlain text can't cut it, which makes Unicode even more incredible for its ability to just work well
Falsehoods about textA subset of the falsehoods from above, illustrated with some examples
Internationalis(z)ing CodeA video about things you need to keep in mind when internationalizing your code
Minimum to Know About Unicode and Character SetsA good introduction to unicode, its historical context and origins, followed by an overview of its inner working
Awesome Unicode918about 4 years agoA curated list of delightful Unicode tidbits, packages and resources
Dark corners of UnicodeUnicode is extensive, here be dragons
Let's Stop Ascribing Meaning to Code PointsDives deeper in Unicode and dispels myths about code points
Unicode misconceptionsA collection of falsehoods on case, encodings, string length, and more
Breaking Our Latin-1 AssumptionsMost programmers spend so much time with they forgets about other's scripts quirks
Ode to a shipping labelCharacter encoding is hard, more so when each broken layer of data input adds its own spice
Localization Failure: Temperature is HardYou cannot localize temperature differences as-is
i18n Testing Data64over 6 years agoCompilation of real-word international and diverse name data for unit testing and QA
Big List of Naughty Strings46,268over 2 years agoA huge corpus of strings which have a high probability of causing issues when used as user-input data. A must have set of practical edge-cases to test your software against

Management

Falsehoods about Job ApplicantsAssumptions about job applicants and their job histories aren't necessarily true

Multimedia

Falsehoods about VideoCover it all: video decoding and playback, files, image scaling, color spaces and conversion, displays and subtitles
Horrible edge cases to consider when dealing with musicMusic catalogs data are full of crazy stuff
MusicBrainz database schemaAn open-source project and database that seems to have solved the complexity of music catalog management
DDEXThe industry standard for music metadata, including archiving, sound recording, sales and usage reporting, royalties and license deals
Apple Music Style GuideQuality insurance guidelines to format music, art, and metadata to increase discoverability

Networks

Falsehoods about NetworksCovers TCP, DHCP, DNS, VLANs and IPv4/v6
Fallacies of Distributed ComputingAssumptions that programmers new to distributed applications invariably make
There's more than one way to write an IP addressSome parts of the address are optional, mind the decimal and octal notations, and either
IDN is crazyInternational characters in domain names mean support of homographs and heterographs
hostname-validate5almost 4 years agoAn attempt to validate hostnames in Python

Phone Numbers

Falsehoods about Phone Numbers16,817almost 2 years agoCovers phone numbers, their representation and meaning
libphonenumber16,817almost 2 years agoGoogle's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers. Also available for , , , and

Postal Addresses

Falsehoods about AddressesCovers streets, postal codes, buildings, cities and countries
Falsehoods about ResidenceIt's not only about the address itself, but the relationship between a person and its residence
Letter Delivered Despite No Name, No AddressUltimate falsehood about postal addresses: you do not need one
UK Address OdditiesQuirks extracted from a list of most residential property sales in England and Wales since 1995
What is the Most Minimal UK Address Possible?The trick is to rely on postcodes, which in the UK are pretty specific and “often identify one or a few specific buildings, unlike countries where a postcode represents an entire neighbourhood”
The Bear with Its Own ZIP CodeSmokey Bear has his own ZIP Code ( ) because he gets so much mail
Why doesn't Costa Rica use real addresses?Costa Rican uses an idiosyncratic system of addresses that relies on landmarks, history and quite a bit of guesswork
Regex and Postal AddressesWhy 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.”
USPS Postal Addressing StandardsDescribes both standardized address formats and content
libaddressinput584over 2 years agoGoogle's common C++ and Java library for parsing, formatting, and validating international postal addresses
addressing924almost 2 years agoA PHP 5.4+ addressing library, powered by Google's dataset
postal-address182almost 3 years agoPython module to parse, normalize and render postal addresses
address91over 2 years agoGo library to validate and format addresses using Google's dataset

Science

Falsehoods about Systems of MeasurementOn working with systems of measurement and converting between them

Society

Falsehoods about Political AppointmentsDesigning election systems has its own tricks
Falsehoods about Women In TechMyth about women in STEM (Science, Technology, Engineering, Math) industries

Software Engineering

Falsehoods about Versions68over 5 years agoAttributing an identity to a software release might be harder than thought
Falsehoods about Build SystemsBuilding software is hard. Building software that builds software is harder
Falsehoods about Undefined BehaviorInvoking undefined behavior can cause to happen, for a much broader definition of "anything" than one might think
Falsehoods about CSVsWhile RFC4180 to exists, it is far from definitive and goes largely ignored
Falsehoods about Package ManagersCovers package and their managers
Falsehoods about TestingAn attempt to establish a list of falsehoods about testing
Falsehoods about SearchWhy search (including analysis, tokenization, highlighting) is deceptively complex
What every software engineer should know about searchA better sourced article on the difficulty of implementing search engines
Falsehoods about PaginationWhy your pagination algorithm is giving someone (possibly you) a headache
Falsehoods about garbage collectionMisconceptions about the predictability and performance of garbage collection
Myths about File PathsDiversity of file-systems and OSes makes file paths a little harder than we might think of
The weird world of Windows file paths“On any Unix-derived system, a path is an admirably simple thing: if it starts with a , it's a path. Not so on Windows.”
Myths about CPU CachesMisconceptions about caches often lead to false assertions, especially when it comes to concurrency and race conditions
Myths about /dev/urandomThere are a few things about and that are repeated again and again. Still they are false
Facts about State MachinesState machines are often misunderstood and under-applied
Hi! My name is
This talk could have been named
Popular misconceptions about mtimePart of a post on why file's comparison could be considered harmful
Rules for AutocompleteNot falsehoods , but still a great list of good practices to implement autocompletion
Floating Point Math“Your language isn't broken, it's doing floating point math. (
) This is why, more often than not, .”
The yaml document from hellYAML is full of obscure complexity like accidental numbers and non-string keys
I am endlessly fascinated with content tagging systemsThere are edge-cases even in tagging systems which are supposed to be barebone
Falsehoods about Quantum Technology9almost 3 years agoCommon misconceptions about quantum technology and computers
Falsehoods about Event-Driven SystemsMisconceptions about event driven systems and message passing

Transportation

Falsehoods about Cars6over 4 years agoEven something as common as defining a car is full of pitfalls
Falsehoods about Airline Seat MapsAirline seat maps are far more complex than just neat rows and columns of seats
The Maddening Mess of Airport CodesHaving multiple international and national agencies trying to reconcile history, practicality and logistics makes codes follow arcane rules
My name causes an issue with any booking!Old airline reservation systems considers the suffix as and drops it

Typography

Falsehoods about Fonts102over 8 years agoAssumptions about typography on the web and in desktop applications
Truths programmers should know about caseA complete reverse of the falsehoods format, on the topic of case (as in uppercase and lowercase text)

Video Games

The Door ProblemAll the things you have not considered implementing for your doors in games

Web

Falsehoods about HTML“Web is beautiful. Web is ugly. Web is astonishing. A part of this appeal is HTML, with its historical quirks.”
Falsehoods about REST APIsPitfalls to be mindful of when creating and documenting APIs
URLs: It's complicated
There's a lot of components in an URL, and all have their own logic
The Hidden Complexity of Downloading Favicons, Told in 15+ Edge CasesDownloading that little icon you see in you browser tabs should be a simple exercise. It turned out to be a lot more complicated than you think. Be vigilant that you are not shaving a Yak

Backlinks from these awesome lists:

More related projects: