update
This commit is contained in:
724
html/falsehood.md2.html
Normal file
724
html/falsehood.md2.html
Normal 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
|
||||
shouldn’t 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 Etsy’s 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, don’t validate.</a></li>
|
||||
<li><a
|
||||
href="https://forum.aws.chdev.org/t/cross-site-scripting-xss-software-attack/3355">Characters
|
||||
<code><</code> and <code>></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>\"><SCRIPT SRC=MJT.XSS.HT></SCRIPT> LTD</code>, but
|
||||
also <code>; DROP TABLE "COMPANIES";-- LTD</code>,
|
||||
<code>BETTS &AMP; TWINE LTD</code> and
|
||||
<code>SAFDASD & 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 & 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 haven’t 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>“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: <a
|
||||
href="https://www.amazon.com/dp/0316491705?&linkCode=ll1&tag=kevideld-20&linkId=ec2881e22fb26c2d43de0daeebd5424d&language=en_US&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> - “There’s one special
|
||||
group of kanji that’s 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 can’t really define a family with strict
|
||||
rules.</li>
|
||||
<li>Falsehoods about Gender: <a
|
||||
href="https://gist.github.com/garbados/f82604ea639e0e47bf44">#1</a>
|
||||
& <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 people’s 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, I’m Mr. Null.
|
||||
My Name Makes Me Invisible to Computers</a> - Real-life example on how
|
||||
implemented falsehood has negative impact on someone’s 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 person’s 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 can’t 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/">Let’s
|
||||
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 other’s 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 aren’t 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/">There’s
|
||||
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">don’t 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>
|
||||
- Google’s 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> - It’s 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
|
||||
doesn’t 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 I’ve 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>
|
||||
- Google’s 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 Google’s 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 Google’s 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>,
|
||||
it’s 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 file’s
|
||||
<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 isn’t broken, it’s 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: It’s
|
||||
complicated…</a> - There’s 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?&linkCode=ll1&tag=kevideld-20&linkId=a1903c3fbfdc82fbe2e566fca40718fb&language=en_US&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>
|
||||
Reference in New Issue
Block a user