This commit is contained in:
2025-07-18 23:13:11 +02:00
parent c9485bf576
commit 652812eed0
2354 changed files with 1266414 additions and 1 deletions

724
html/falsehood.md2.html Normal file
View File

@@ -0,0 +1,724 @@
<!--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>