Files
awesome-awesomeness/html/falsehood.md2.html
2025-07-18 23:13:11 +02:00

725 lines
36 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--lint disable awesome-heading-->
<p align="center">
<a href="https://github.com/kdeldycke/awesome-falsehood/">
<img src="https://github.com/kdeldycke/awesome-falsehood/raw/main/assets/awesome-falsehood-header.jpg" alt="Awesome Falsehood header image">
</a>
</p>
<p align="center">
<a href="https://github.com/sponsors/kdeldycke"> <strong>Yʀ Pʀ
ʜᴇʀᴇ!</strong> <br/> <sup>Add a link to your company or project here:
purchase a GitHub sponsorship.</sup> </a>
</p>
<hr />
<p align="center">
<a href="https://github.com/kdeldycke/awesome-falsehood#readme.md" hreflang="en"><img src="https://img.shields.io/badge/lang-English-blue?style=flat-square" lang="en" alt="English"></a>
<a href="https://github.com/kdeldycke/awesome-falsehood/blob/main/readme.zh.md" hreflang="zh"><img src="https://img.shields.io/badge/lang-中文-blue?style=flat-square" lang="zh" alt="中文"></a>
</p>
<p align="center">
<i>The logic of the world is prior to all truth and falsehood.</i><br>
Ludwig
Wittgenstein<sup id="intro-quote-ref"><a href="#intro-quote-def">[1]</a></sup>
</p>
<p>A curated <a href="https://github.com/sindresorhus/awesome"><img
src="https://awesome.re/badge-flat.svg" alt="Awesome" /></a> list of
falsehoods programmers believe in. A <em>falsehood</em> is an
<strong><em>idea</em> that you initially believed was true</strong>, but
in reality, it is <strong>proven to be false</strong>.</p>
<p>E.g. of an <em>idea</em>: valid email address exactly has one
<code>@</code> character. So, you will use this rule to implement your
email-field validation logic. Right? Wrong! The <em>reality</em> is:
emails can have multiple <code>@</code> chars. Therefore your
implementation should allow this. The initial <em>idea</em> is a
falsehood you believed in.</p>
<p>The <em>falsehood</em> 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.</p>
<h2 id="contents">Contents</h2>
<!-- mdformat-toc start --slug=github --no-anchors --maxlevel=6 --minlevel=2 -->
<ul>
<li><a href="#meta">Meta</a></li>
<li><a href="#arts">Arts</a></li>
<li><a href="#business">Business</a></li>
<li><a href="#cryptocurrency">Cryptocurrency</a></li>
<li><a href="#dates-and-time">Dates and Time</a></li>
<li><a href="#education">Education</a></li>
<li><a href="#emails">Emails</a></li>
<li><a href="#geography">Geography</a></li>
<li><a href="#human-identity">Human Identity</a></li>
<li><a href="#internationalization">Internationalization</a></li>
<li><a href="#management">Management</a></li>
<li><a href="#multimedia">Multimedia</a></li>
<li><a href="#networks">Networks</a></li>
<li><a href="#phone-numbers">Phone Numbers</a></li>
<li><a href="#postal-addresses">Postal Addresses</a></li>
<li><a href="#science">Science</a></li>
<li><a href="#society">Society</a></li>
<li><a href="#software-engineering">Software Engineering</a></li>
<li><a href="#transportation">Transportation</a></li>
<li><a href="#typography">Typography</a></li>
<li><a href="#video-games">Video Games</a></li>
<li><a href="#web">Web</a></li>
</ul>
<!-- mdformat-toc end -->
<h2 id="meta">Meta</h2>
<ul>
<li><a
href="https://spaceninja.com/2015/12/07/falsehoods-programmers-believe/">Falsehoods
Programmers Believe</a> - A brief list of common falsehoods. A great
overview and quick introduction into the world of falsehoods.</li>
<li><a
href="https://chiselapp.com/user/ttmrichter/repository/gng/doc/trunk/output/falsehoods.html">Falsehoods
about Programming</a> - A humbling and fun list on programming and
programmers themselves.</li>
<li><a
href="https://kevin.deldycke.com/2016/falsehoods-programmers-believe-about-falsehoods-lists">Falsehoods
about Falsehoods Lists</a> - Meta commentary on how these falsehoods
shouldnt be handled.</li>
</ul>
<h2 id="arts">Arts</h2>
<ul>
<li><a
href="https://literateprogrammer.blogspot.fr/2016/07/falsehoods-programmers-believe-about.html">Falsehoods
about Music</a> - False assumption that might be made in codifying
music.</li>
<li><a
href="http://artsy.github.io/blog/2018/04/18/programmer-misconceptions-about-art/">Falsehoods
about Art</a> - Common misconceptions about art.</li>
</ul>
<h2 id="business">Business</h2>
<ul>
<li><a
href="https://wiesmann.codiferes.net/wordpress/archives/22201">Falsehoods
about Online Shopping</a> - Covers prices, currencies and
inventory.</li>
<li><a href="https://gist.github.com/rgs/6509585">Falsehoods about
Prices</a> - Covers currencies, amounts and localization.</li>
<li><a
href="https://github.com/globalcitizen/php-iban/blob/master/docs/FALSEHOODS.md">Falsehoods
about IBANs</a> - International Bank Account Numbers are not
international.</li>
<li><a
href="http://exple.tive.org/blarg/2016/09/22/falsehoods-programmers-believe-about-economics/">Falsehoods
about Economics</a> - Economics are not simple or rational.</li>
<li><a
href="https://web.archive.org/web/20230615151102/https://old.reddit.com/r/Etsy/comments/hz4877/if_you_are_an_etsy_seller_do_not_purchase_postage/">Decimal
Point Error in Etsys Accounting System</a> - The importance of types in
accounting software: missing the decimal point ends up with 100x
over-charges.</li>
<li><a
href="https://web.archive.org/web/20250326135824/http://rachelbythebay.com/w/2022/12/02/25k/">Twenty
five thousand dollars of funny money</a> - Same 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: <a
href="https://twitter.com/kdeldycke/status/1599113889093890049">get rid
of integers and floats for monetary values. Use decimals. Or fallback to
strings and parse them, dont validate.</a></li>
<li><a
href="https://forum.aws.chdev.org/t/cross-site-scripting-xss-software-attack/3355">Characters
<code>&lt;</code> and <code>&gt;</code> in company names lead to XSS
attacks</a> - Because <a
href="https://www.legislation.gov.uk/uksi/2015/17/schedule/1/made">UK
allows companies to be registered with special characters</a>, a hacker
leveraged them to register
<code>\"&gt;&lt;SCRIPT SRC=MJT.XSS.HT&gt;&lt;/SCRIPT&gt; LTD</code>, but
also <code>; DROP TABLE "COMPANIES";-- LTD</code>,
<code>BETTS &amp;AMP; TWINE LTD</code> and
<code>SAFDASD &amp; SFSAF \' SFDAASF\" LTD</code>.</li>
<li><a
href="https://twitter.com/nthnmsmth/status/1587880523124408322">Minutiae
of company names</a> - How the rules of the State of Delaware and the
IRS does not intersects.</li>
<li><a
href="https://github.com/unicode-org/cldr/blob/release-40/common/supplemental/supplementalData.xml#L87-L94">CLDR
currency definitions</a> - Currency validity date ranges overlap due to
revolts, invasions, new constitutions, and slow planned adoption.</li>
<li><a href="https://github.com/commerceguys/tax"><code>tax</code></a> -
A PHP 5.4+ tax management library.</li>
</ul>
<h2 id="cryptocurrency">Cryptocurrency</h2>
<ul>
<li><a
href="https://github.com/theborakompanioni/spring-boot-bitcoin-starter/blob/master/docs/FALSEHOODS.md">Falsehoods
about Bitcoin</a> - A list of mistaken perspectives on Bitcoin.</li>
<li><a
href="https://gist.github.com/spalladino/a349f0ca53dbb5fc3914243aaf7ea8c6">Falsehoods
about Ethereum</a> - Misconceptions and common pitfalls in contract
programming.</li>
</ul>
<h2 id="dates-and-time">Dates and Time</h2>
<ul>
<li><a
href="http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time">Falsehoods
about Time</a> - Seminal article on dates and time.</li>
<li><a
href="http://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time">More
Falsehoods about Time</a> - Part. 2 of the article above.</li>
<li><a
href="https://www.creativedeletion.com/2015/01/28/falsehoods-programmers-date-time-zones.html">Falsehoods
about Time and Time Zones</a> - Another takes on time-related
falsehoods, with an emphasis on time zones.</li>
<li><a
href="https://gist.github.com/thanatos/eee17100476a336a711e">Critique of
Falsehoods about Time</a> - Takes on the first article above and
provides an explanation of each falsehood, with more context and
external resources.</li>
<li><a
href="https://alexwlchan.net/2019/05/falsehoods-programmers-believe-about-unix-time/">Falsehoods
about Unix Time</a> - Mind the leap second!</li>
<li><a
href="https://www.zainrizvi.io/blog/falsehoods-programmers-believe-about-time-zones/">Falsehoods
about Time Zones</a> - Has some nice points regarding the edge-cases of
DST transitions.</li>
<li><a href="http://yourcalendricalfallacyis.com">Your Calendrical
Fallacy Is Thinking…</a> - List covering intercalation and cultural
influence, made by a community of iOS and macOS developers.</li>
<li><a href="https://www.iana.org/time-zones">Time Zone Database</a> -
Code and data that represent the history of local time for many
representative locations around the globe.</li>
<li><a href="http://naggum.no/lugm-time.html">The Long, Painful History
of Time</a> - Most of the idiosyncrasies in timekeeping can find an
explanation in history.</li>
<li><a href="https://qntm.org/calendar">You Advocate a Calendar
Reform</a> - Your idea will not work. This article tells you why.</li>
<li><a href="https://qntm.org/abolish">So You Want to Abolish Time
Zones</a> - Abolishing timezones may sound like a good idea, but there
are quite a few complications that make it not quite so.</li>
<li><a href="https://www.youtube.com/watch?v=-5wpm-gesOY">The Problem
with Time &amp; Timezones</a> - A video about why you should never, ever
deal with timezones if you can help it.</li>
<li><a
href="http://digital.vpr.net/post/rounding-error-computer-code-leads-26000-overcollection-labor-department">$26,000
Overcollection by Labor Department</a> - The consequence of wrong
calendar accounting.</li>
<li><a href="https://ijmacd.github.io/rfc3339-iso8601/">RFC-3339 vs
ISO-8601</a> - An giant list of formats from the two standards, how they
overlaps, and live examples.</li>
<li><a
href="https://web.archive.org/web/20200216181551/https://ericasadun.com/2018/12/25/iso-8601-yyyy-yyyy-and-why-your-year-may-be-wrong/">ISO-8601,
<code>YYYY</code>, <code>yyyy</code>, and why your year may be wrong</a>
- String formatting of date is hard.</li>
<li><a
href="https://zachholman.com/talk/utc-is-enough-for-everyone-right">UTC
is Enough for everyone, right?</a> - There are edge cases about dates
and time (specifically UTC) that you probably havent thought of.</li>
<li><a
href="https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/">Storing
UTC is not a silver bullet</a> - “Just store dates in UTC” is not always
the right approach.</li>
<li><a href="https://news.ycombinator.com/item?id=28047376">How to
choose between UT1, TAI and UTC</a> - Depends on your priorities between
SI seconds, earth rotation sync, leap seconds avoidance.</li>
<li><a
href="https://web.archive.org/web/20241124114705/https://stackoverflow.com/questions/6841333/why-is-subtracting-these-two-epoch-milli-times-in-year-1927-giving-a-strange-r/6841479#answer-6841479">Why
is subtracting these two times (in 1927) giving a strange result?</a> -
Infamous Stack Overflow answer about both complicated historical
timezones, and how historical dates can be re-interpreted by newer
versions of software.</li>
<li><a
href="https://web.archive.org/web/20150908004245/http://www.merlyn.demon.co.uk/critdate.htm">Critical
and Significant Dates</a> - From Y2K to the overflow of 32-bit seconds
from Unix epoch, a list of special date to watch for depending on the
system.</li>
<li>“Im 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: <a
href="https://www.amazon.com/dp/0316491705?&amp;linkCode=ll1&amp;tag=kevideld-20&amp;linkId=ec2881e22fb26c2d43de0daeebd5424d&amp;language=en_US&amp;ref_=as_li_ss_tl">The
Soul of a New Machine</a>.</li>
</ul>
<h2 id="education">Education</h2>
<ul>
<li><a
href="https://www.netmeister.org/blog/cs-falsehoods.html">Falsehoods CS
Students (Still) Believe Upon Graduating</a> - A list of things (not
only) computer science students tend to erroneously and at times
surprisingly believe even though they (probably) should know
better.</li>
<li><a
href="https://www.cs.kent.ac.uk/people/staff/srk21/blog/2019/12/02/">Postdoc
myths</a> - “Lots of things are said, written and believed about
postdoctoral researchers that are simply not true.”</li>
</ul>
<h2 id="emails">Emails</h2>
<ul>
<li><a
href="https://beesbuzz.biz/code/439-Falsehoods-programmers-believe-about-email">Falsehoods
about Email</a> - On addresses, content and delivery.</li>
<li><a
href="https://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx/">I
Knew How to Validate an Email Address Until I Read the RFC</a> -
Provides intricate examples that are unsuspected valid email addresses
according the RFC-822.</li>
<li><a
href="https://fosdem.org/2018/schedule/event/email_address_quiz/">So you
think you can validate email addresses (FOSDEM 2018)</a> - Presentation
of edge-case email addresses and why you should not use regex to parse
them.</li>
<li><a href="https://www.netmeister.org/blog/email.html">Your E-Mail
Validation Logic is Wrong</a> - A summary of the various, surprising
things that are allowed in an email address.</li>
<li><a
href="https://github.com/dertuxmalwieder/libvldmail"><code>libvldmail</code></a>
- A library that implements RFC-based checks for e-mail addresses.</li>
</ul>
<h2 id="geography">Geography</h2>
<ul>
<li><a
href="https://wiesmann.codiferes.net/wordpress/archives/15187">Falsehoods
about Geography</a> - Takes on places, their names and locations.</li>
<li><a
href="https://web.archive.org/web/20250516080728/http://www.atlefren.net/post/2014/09/falsehoods-programmers-believe-about-maps/">Falsehoods
about Maps</a> - Covers coordinates, projection and GIS.</li>
<li><a
href="https://shkspr.mobi/blog/2024/06/falsehoods-programmers-believe-about-weather/">Falsehoods
about Weather</a> - Weather is location-dependent, and so full of
edge-cases.</li>
<li><a href="https://ihatecoordinatesystems.com">I Hate Coordinate
Systems</a> - A guide for geospatial practitioners on diagnosing and
fixing common issues with coordinate systems.</li>
<li><a
href="https://web.archive.org/web/20210310050932/https://soranews24.com/2016/12/01/w-t-f-japan-top-5-most-insane-kanji-place-names-in-japan%E3%80%90weird-top-five%E3%80%91/">Top
5 most insane kanji place names in Japan</a> - “Theres one special
group of kanji thats hard even for Japanese people to read: place
names.”</li>
</ul>
<h2 id="human-identity">Human Identity</h2>
<ul>
<li><a
href="https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/">Falsehoods
about Names</a> - The article that started it all.</li>
<li><a
href="https://shinesolutions.com/2018/01/08/falsehoods-programmers-believe-about-names-with-examples/">Falsehoods
about Names With Examples</a> - A revisited version of the article
above, this time with detailed explanations.</li>
<li><a
href="https://shkspr.mobi/blog/2021/01/falsehoods-programmers-believe-about-biometrics/">Falsehoods
about Biometrics</a> - Fingerprints are not unique.</li>
<li><a
href="https://shkspr.mobi/blog/2017/03/falsehoods-programmers-believe-about-families/">Falsehoods
about Families</a> - You cant really define a family with strict
rules.</li>
<li>Falsehoods about Gender: <a
href="https://gist.github.com/garbados/f82604ea639e0e47bf44">#1</a>
&amp; <a
href="https://medium.com/gender-2-0/falsehoods-programmers-believe-about-gender-f9a3512b4c9c">#2</a>
- Gender is part of human identity and has its own subtleties.</li>
<li><a href="https://skylarmacdonald.com/falsehoods/">Falsehoods about
Me</a> - Issues at the intersection of names and gender and
internationalization.</li>
<li><a
href="https://web.archive.org/web/20170914014648/https://qntm.org/gay">Gay
Marriage: The Database Engineering Perspective</a> - How to store a
marriage in a database while addressing most of the falsehoods about
gender, naming and relationships.</li>
<li><a
href="https://www.w3.org/International/questions/qa-personal-names">Personal
Names Around the World</a> - How do peoples names differ around the
world, and what are the implications for the Web?</li>
<li><a href="https://xkcd.com/327/">XKCD #327: Exploits of a Mom</a> -
Funny take on how implementation of a falsehood might lead to security
holes.</li>
<li><a href="https://www.wired.com/2015/11/null/">Hello, Im Mr. Null.
My Name Makes Me Invisible to Computers</a> - Real-life example on how
implemented falsehood has negative impact on someones life.</li>
<li><a
href="https://www.hl7.org/implement/standards/product_brief.cfm?product_id=186">HL7
v3 RIM</a> - A flexible data model for representing human names.</li>
<li><a
href="https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/NSPersonNameComponentsFormatter_Class/index.html">Apple
iOS <code>NSPersonNameComponentsFormatter</code></a> - Localized
representations of the components of a persons name.</li>
</ul>
<h2 id="internationalization">Internationalization</h2>
<p>On character encoding, string formatting, unicode and
internationalization.</p>
<ul>
<li><a
href="http://garbled.benhamill.com/2017/04/18/falsehoods-programmers-believe-about-language">Falsehoods
about Language</a> - Translating a software from English is not as
straightforward as it seems to be.</li>
<li><a
href="https://www.lexiconista.com/falsehoods-about-languages/">Falsehoods
about Language</a> - Additional cases to complement the previous
article.</li>
<li><a
href="https://jeremyhussell.blogspot.com/2017/11/falsehoods-programmers-believe-about.html#main">Falsehoods
about Plain Text</a> - Plain text cant cut it, which makes Unicode even
more incredible for its ability to just work well.</li>
<li><a
href="https://wiesmann.codiferes.net/wordpress/archives/30296">Falsehoods
about text</a> - A subset of the falsehoods from above, illustrated with
some examples.</li>
<li><a
href="https://www.youtube.com/watch?v=0j74jcxSunY">Internationalis(z)ing
Code</a> - A video about things you need to keep in mind when
internationalizing your code.</li>
<li><a
href="https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/">Minimum
to Know About Unicode and Character Sets</a> - A good introduction to
unicode, its historical context and origins, followed by an overview of
its inner working.</li>
<li><a href="https://github.com/Wisdom/Awesome-Unicode">Awesome
Unicode</a> - A curated list of delightful Unicode tidbits, packages and
resources.</li>
<li><a
href="https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/">Dark
corners of Unicode</a> - Unicode is extensive, here be dragons.</li>
<li><a
href="https://manishearth.github.io/blog/2017/01/14/stop-ascribing-meaning-to-unicode-code-points/">Lets
Stop Ascribing Meaning to Code Points</a> - Dives deeper in Unicode and
dispels myths about code points.</li>
<li><a
href="https://jean.abou-samra.fr/blog/unicode-misconceptions/">Unicode
misconceptions</a> - A collection of falsehoods on case, encodings,
string length, and more.</li>
<li><a
href="https://manishearth.github.io/blog/2017/01/15/breaking-our-latin-1-assumptions/">Breaking
Our <code>Latin-1</code> Assumptions</a> - Most programmers spend so
much time with <code>Latin-1</code> they forgets about others scripts
quirks.</li>
<li><a href="http://i.imgur.com/4J7Il0m.jpg">Ode to a shipping label</a>
- Character encoding is hard, more so when each broken layer of data
input adds its own spice.</li>
<li><a
href="https://randomascii.wordpress.com/2023/10/17/localization-failure-temperature-is-hard/">Localization
Failure: Temperature is Hard</a> - You cannot localize temperature
differences as-is.</li>
<li><a href="https://github.com/patch/i18n-testing">i18n Testing
Data</a> - Compilation of real-word international and diverse name data
for unit testing and QA.</li>
<li><a
href="https://github.com/minimaxir/big-list-of-naughty-strings">Big List
of Naughty Strings</a> - A 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.</li>
</ul>
<h2 id="management">Management</h2>
<ul>
<li><a
href="https://web.archive.org/web/20170114022820/https://medium.com/@creatrixtiara/falsehoods-programmers-believe-about-job-applicants-99280437c616">Falsehoods
about Job Applicants</a> - Assumptions about job applicants and their
job histories arent necessarily true.</li>
</ul>
<h2 id="multimedia">Multimedia</h2>
<ul>
<li><a
href="https://haasn.xyz/posts/2016-12-25-falsehoods-programmers-believe-about-%5Bvideo-stuff%5D.html">Falsehoods
about Video</a> - Cover it all: video decoding and playback, files,
image scaling, color spaces and conversion, displays and subtitles.</li>
<li><a
href="https://dustri.org/b/horrible-edge-cases-to-consider-when-dealing-with-music.html">Horrible
edge cases to consider when dealing with music</a> - Music catalogs data
are full of crazy stuff.</li>
<li><a
href="https://musicbrainz.org/doc/MusicBrainz_Database/Schema">MusicBrainz
database schema</a> - An open-source project and database that seems to
have solved the complexity of music catalog management.</li>
<li><a href="https://ddex.net/standards/">DDEX</a> - The industry
standard for music metadata, including archiving, sound recording, sales
and usage reporting, royalties and license deals.</li>
<li><a
href="https://help.apple.com/itc/musicstyleguide/en.lproj/static.html">Apple
Music Style Guide</a> - Quality insurance guidelines to format music,
art, and metadata to increase discoverability.</li>
</ul>
<h2 id="networks">Networks</h2>
<ul>
<li><a
href="https://web.archive.org/web/20250215201837/http://blog.erratasec.com/2012/06/falsehoods-programmers-believe-about.html">Falsehoods
about Networks</a> - Covers TCP, DHCP, DNS, VLANs and IPv4/v6.</li>
<li><a
href="https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing">Fallacies
of Distributed Computing</a> - Assumptions that programmers new to
distributed applications invariably make.</li>
<li><a
href="https://ma.ttias.be/theres-more-than-one-way-to-write-an-ip-address/">Theres
more than one way to write an IP address</a> - Some parts of the address
are optional, mind the decimal and octal notations, and <a
href="https://news.ycombinator.com/item?id=20390981">dont forget
IPv6</a> either.</li>
<li><a href="https://daniel.haxx.se/blog/2022/12/14/idn-is-crazy/">IDN
is crazy</a> - International characters in domain names mean support of
homographs and heterographs.</li>
<li><a
href="https://github.com/jakeogh/hostname-validate"><code>hostname-validate</code></a>
- An attempt to validate hostnames in Python.</li>
</ul>
<h2 id="phone-numbers">Phone Numbers</h2>
<ul>
<li><a
href="https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md">Falsehoods
about Phone Numbers</a> - Covers phone numbers, their representation and
meaning.</li>
<li><a
href="https://github.com/googlei18n/libphonenumber"><code>libphonenumber</code></a>
- Googles common Java, C++ and JavaScript library for parsing,
formatting, and validating international phone numbers. Also available
for <a href="https://github.com/twcclegg/libphonenumber-csharp">C#</a>,
<a href="https://github.com/iziz/libPhoneNumber-iOS">Objective-C</a>, <a
href="https://github.com/daviddrysdale/python-phonenumbers">Python</a>,
<a href="https://github.com/sstephenson/global_phone">Ruby</a> and <a
href="https://github.com/giggsey/libphonenumber-for-php">PHP</a>.</li>
</ul>
<h2 id="postal-addresses">Postal Addresses</h2>
<ul>
<li><a
href="https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/">Falsehoods
about Addresses</a> - Covers streets, postal codes, buildings, cities
and countries.</li>
<li><a
href="https://twitter.com/samphippen/status/813896916534784004">Falsehoods
about Residence</a> - Its not only about the address itself, but the
relationship between a person and its residence.</li>
<li><a
href="https://twitter.com/loriskumo/status/735851511331356672">Letter
Delivered Despite No Name, No Address</a> - Ultimate falsehood about
postal addresses: you do not need one.</li>
<li><a href="https://paulplowman.com/stuff/uk-address-oddities/">UK
Address Oddities</a> - Quirks extracted from a list of most residential
property sales in England and Wales since 1995.</li>
<li><a
href="https://kottke.org/19/08/the-bear-with-its-own-zip-code">The Bear
with Its Own ZIP Code</a> - Smokey Bear has his own ZIP Code
(<code>20252</code>) because he gets so much mail.</li>
<li><a
href="https://www.crcdaily.com/p/why-doesnt-costa-rica-use-real-addresses">Why
doesnt Costa Rica use real addresses?</a> - Costa Rican uses an
idiosyncratic system of addresses that relies on landmarks, history and
quite a bit of guesswork.</li>
<li><a
href="https://smartystreets.com/articles/regular-expressions-for-street-addresses">Regex
and Postal Addresses</a> - Why regular expressions and street addresses
do not mix.</li>
<li><a href="https://www.dampfkraft.com/posuto.html">Parsing the
Infamous Japanese Postal CSV</a> - “I saw many horrors, but Ive never
seen this particular formatting choice anywhere else.”</li>
<li><a href="https://pe.usps.com/text/pub28/welcome.htm">USPS Postal
Addressing Standards</a> - Describes both standardized address formats
and content.</li>
<li><a
href="https://github.com/googlei18n/libaddressinput"><code>libaddressinput</code></a>
- Googles common C++ and Java library for parsing, formatting, and
validating international postal addresses.</li>
<li><a
href="https://github.com/commerceguys/addressing"><code>addressing</code></a>
- A PHP 5.4+ addressing library, powered by Googles dataset.</li>
<li><a
href="https://github.com/scaleway/postal-address"><code>postal-address</code></a>
- Python module to parse, normalize and render postal addresses.</li>
<li><a
href="https://github.com/Boostport/address"><code>address</code></a> -
Go library to validate and format addresses using Googles dataset.</li>
</ul>
<h2 id="science">Science</h2>
<ul>
<li><a
href="https://www.stevemoser.org/posts/dev/falsehoods-programmers-believe-about-systems-of-measurement.html">Falsehoods
about Systems of Measurement</a> - On working with systems of
measurement and converting between them.</li>
</ul>
<h2 id="society">Society</h2>
<ul>
<li><a
href="https://twitter.com/oliver_dw/status/737930439575404544">Falsehoods
about Political Appointments</a> - Designing election systems has its
own tricks.</li>
<li><a
href="https://gist.github.com/Su-Shee/5d1a417fa9de19c15477">Falsehoods
about Women In Tech</a> - Myth about women in STEM (Science, Technology,
Engineering, Math) industries.</li>
</ul>
<h2 id="software-engineering">Software Engineering</h2>
<ul>
<li><a
href="https://github.com/xenoterracide/falsehoods/blob/master/versions.md">Falsehoods
about Versions</a> - Attributing an identity to a software release might
be harder than thought.</li>
<li><a href="https://pozorvlak.livejournal.com/174763.html">Falsehoods
about Build Systems</a> - Building software is hard. Building software
that builds software is harder.</li>
<li><a
href="https://predr.ag/blog/falsehoods-programmers-believe-about-undefined-behavior/">Falsehoods
about Undefined Behavior</a> - Invoking undefined behavior can cause
<em>anything</em> to happen, for a much broader definition of “anything”
than one might think.</li>
<li><a
href="https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/">Myths
about CPU Caches</a> - Misconceptions about caches often lead to false
assertions, especially when it comes to concurrency and race
conditions.</li>
<li><a
href="https://purplesyringa.moe/blog/falsehoods-programmers-believe-about-null-pointers/">Falsehoods
about null pointers</a> - Null pointers are even more cursed than
pointers in general, and provenance already makes pointers quite
complicated.</li>
<li><a
href="https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs">Falsehoods
about CSVs</a> - While RFC4180 to exists, it is far from definitive and
goes largely ignored.</li>
<li><a
href="https://kdeldycke.github.io/meta-package-manager/falsehoods.html">Falsehoods
about Package Managers</a> - Covers package and their managers.</li>
<li><a
href="https://club.ministryoftesting.com/t/falsehoods-testers-believe/1371">Falsehoods
about Testing</a> - An attempt to establish a list of falsehoods about
testing.</li>
<li><a
href="https://opensourceconnections.com/blog/2019/05/29/falsehoods-programmers-believe-about-search/">Falsehoods
about Search</a> - Why search (including analysis, tokenization,
highlighting) is deceptively complex.</li>
<li><a
href="https://scribe.rip/p/what-every-software-engineer-should-know-about-search-27d1df99f80d">What
every software engineer should know about search</a> - A better sourced
article on the difficulty of implementing search engines.</li>
<li><a
href="https://www.hezmatt.org/~mpalmer/blog/2018/12/12/falsehoods-programmers-believe-about-pagination.html">Falsehoods
about Pagination</a> - Why your pagination algorithm is giving someone
(possibly you) a headache.</li>
<li><a
href="https://paul.bone.id.au/blog/2018/10/19/gc-falsehoods/">Falsehoods
about garbage collection</a> - Misconceptions about the predictability
and performance of garbage collection.</li>
<li><a
href="https://yakking.branchable.com/posts/falsehoods-programmers-believe-about-file-paths/">Myths
about File Paths</a> - Diversity of file-systems and OSes makes file
paths a little harder than we might think of.</li>
<li><a
href="https://www.fileside.app/blog/2023-03-17_windows-file-paths/">The
weird world of Windows file paths</a> - “On any Unix-derived system, a
path is an admirably simple thing: if it starts with a <code>/</code>,
its a path. Not so on Windows.”</li>
<li><a href="https://www.2uo.de/myths-about-urandom">Myths about
<code>/dev/urandom</code></a> - There are a few things about
<code>/dev/urandom</code> and <code>/dev/random</code> that are repeated
again and again. Still they are false.</li>
<li><a
href="https://codeberg.org/catseye/The-Dossier/src/branch/master/article/Facts-about-State-Machines/README.md">Facts
about State Machines</a> - State machines are often misunderstood and
under-applied.</li>
<li><a href="https://www.youtube.com/watch?v=NIebelIpdYk">Hi! My name
is…</a> - This talk could have been named <em>falsehoods about usernames
(and other identifiers)</em>.</li>
<li><a href="https://apenwarr.ca/log/20181113">Popular misconceptions
about <code>mtime</code></a> - Part of a post on why files
<code>mtime</code> comparison could be considered harmful.</li>
<li><a
href="http://jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html">Rules
for Autocomplete</a> - Not falsehoods <em>per se</em>, but still a great
list of good practices to implement autocompletion.</li>
<li><a href="https://0.30000000000000004.com">Floating Point Math</a> -
“Your language isnt broken, its doing floating point math. (…) This is
why, more often than not, <code>0.1 + 0.2 != 0.3</code>.”</li>
<li><a
href="https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell">The
yaml document from hell</a> - YAML is full of obscure complexity like
accidental numbers and non-string keys.</li>
<li><a
href="https://twitter.com/hillelogram/status/1534301374166474752">I am
endlessly fascinated with content tagging systems</a> - There are
edge-cases even in tagging systems which are supposed to be
barebone.</li>
<li><a
href="https://github.com/gottfriedsz/falsehoods-quantum">Falsehoods
about Quantum Technology</a> - Common misconceptions about quantum
technology and computers.</li>
<li><a
href="https://dimtion.fr/blog/falsehoods-event-driven/">Falsehoods about
Event-Driven Systems</a> - Misconceptions about event driven systems and
message passing.</li>
<li><a
href="https://pardalotus.tech/posts/2024-10-02-falsehoods-programmers-believe-about-dois/">Falsehoods
about Digital Object Identifiers (DOIs)</a> - False conceptions about
the identifiers that are used to identify and link research outputs (and
a lot of other things).</li>
<li><a
href="https://medium.com/@jonathan.leitschuh/falsehoods-people-believe-about-cves-85c1d063ffda">Falsehoods
about CVE</a> - CVE ≠ vulnerability (and 36 other confusions).</li>
<li><a
href="https://www.osohq.com/post/falsehoods-about-authorization">Falsehoods
about authorization</a> - Misconceptions about implementing permissions
systems.</li>
</ul>
<h2 id="transportation">Transportation</h2>
<ul>
<li><a
href="https://github.com/driveto/falsehoods-about-cars">Falsehoods about
Cars</a> - Even something as common as defining a car is full of
pitfalls.</li>
<li><a
href="https://flightaware.engineering/falsehoods-programmers-believe-about-aviation/">Falsehoods
about Aviation</a> - Aviation data are less normalized than you might
think.</li>
<li><a
href="https://duffel.com/blog/falsehoods-about-seat-maps">Falsehoods
about Airline Seat Maps</a> - Airline seat maps are far more complex
than just neat rows and columns of seats.</li>
<li><a href="https://www.youtube.com/watch?v=jfOUVYQnuhw">The Maddening
Mess of Airport Codes</a> - Having multiple international and national
agencies trying to reconcile history, practicality and logistics makes
codes follow arcane rules.</li>
<li><a
href="https://web.archive.org/web/20250528134345/https://travel.stackexchange.com/questions/149323/my-name-causes-an-issue-with-any-booking-names-end-with-mr-and-mrs">My
name causes an issue with any booking!</a> - Old airline reservation
systems considers the <code>MR</code> suffix as <code>Mister</code> and
drops it.</li>
</ul>
<h2 id="typography">Typography</h2>
<ul>
<li><a href="https://github.com/RoelN/Font-Falsehoods">Falsehoods about
Fonts</a> - Assumptions about typography on the web and in desktop
applications.</li>
<li><a href="https://www.b-list.org/weblog/2018/nov/26/case/">Truths
programmers should know about case</a> - A complete reverse of the
falsehoods format, on the topic of case (as in uppercase and lowercase
text).</li>
</ul>
<h2 id="video-games">Video Games</h2>
<ul>
<li><a href="https://lizengland.com/blog/2014/04/the-door-problem/">The
Door Problem</a> - All the things you have not considered implementing
for your doors in games.</li>
</ul>
<h2 id="web">Web</h2>
<ul>
<li><a href="https://www.aartaka.me.eu.org/falsehoods-html">Falsehoods
about HTML</a> - “Web is beautiful. Web is ugly. Web is astonishing. A
part of this appeal is HTML, with its historical quirks.”</li>
<li><a
href="https://web.archive.org/web/20201112010147/http://slinkp.com/falsehoods-programmers-believe-about-apis.html">Falsehoods
about REST APIs</a> - Pitfalls to be mindful of when creating and
documenting APIs.</li>
<li><a href="https://www.netmeister.org/blog/urls.html">URLs: Its
complicated…</a> - Theres a lot of components in an URL, and all have
their own logic.</li>
<li><a
href="https://web.archive.org/web/20230604033340/https://www.simplecto.com/complexity-downloading-favicons-told-in-15-plus-edge-cases/">The
Hidden Complexity of Downloading Favicons, Told in 15+ Edge Cases</a> -
Downloading 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.</li>
</ul>
<h2 id="contributing">Contributing</h2>
<p>Your contributions are always welcome! Please take a look at the <a
href="https://github.com/kdeldycke/awesome-falsehood/blob/main/.github/contributing.md">contribution
guidelines</a> first.</p>
<h2 id="footnotes">Footnotes</h2>
<p>This list gathered some popularity in social medias over the past few
years. See it being <a
href="https://github.com/kdeldycke/kdeldycke/blob/main/in-the-media.md">discussed
and mentioned elsewhere</a>.</p>
<p>The <a
href="https://github.com/kdeldycke/awesome-falsehood/blob/main/assets/awesome-falsehood-header.jpg">header
image</a> is based on a modified <a
href="https://commons.wikimedia.org/wiki/File:BLW_Truth_and_Falsehood.jpg">photo
taken in February 2010 by Iza Bella</a>, distributed under a <a
href="https://creativecommons.org/licenses/by-sa/2.0/uk/deed.en">Creative
Commons BY-SA 2.0 UK license</a>.</p>
<!--lint disable no-undefined-references-->
<p><a name="intro-quote-def">[1]</a>: <a
href="https://www.amazon.com/dp/1324090804?&amp;linkCode=ll1&amp;tag=kevideld-20&amp;linkId=a1903c3fbfdc82fbe2e566fca40718fb&amp;language=en_US&amp;ref_=as_li_ss_tl"><em>Notebooks,
1914-1916</em></a> (Liveright, 2022) - <a
href="https://archive.org/details/notebooks191419100witt/page/n35">source:
page 14e</a>. <a href="#intro-quote-ref">[↑]</a></p>
<p><a href="https://github.com/kdeldycke/awesome-falsehood">falsehood.md
Github</a></p>