2020-01-09 16:39:49 -05:00
# Awesome Falsehood [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
2016-09-08 05:22:55 -04:00
2016-09-08 06:18:23 -04:00
A curated list of awesome falsehoods programmers believe in.
2016-09-08 05:22:55 -04:00
2016-09-08 20:04:13 -04:00
> The logic of the world is prior to all truth and falsehood.
> - Ludwig Wittgenstein
2016-09-08 05:22:55 -04:00
2016-09-08 19:44:50 -04:00
## Contents
2016-09-08 19:51:21 -04:00
- [Foreword ](#foreword )
2017-09-19 10:57:11 -04:00
---
2016-09-08 19:44:50 -04:00
- [Meta ](#meta )
2016-12-27 11:17:17 -05:00
- [Arts ](#arts )
2016-09-12 07:22:40 -04:00
- [Business ](#business )
2016-09-12 05:56:49 -04:00
- [Dates and Time ](#dates-and-time )
2019-11-21 03:28:10 -05:00
- [Education ](#education )
2016-09-08 19:44:50 -04:00
- [Emails ](#emails )
- [Geography ](#geography )
2016-09-12 07:20:12 -04:00
- [Human Identity ](#human-identity )
2017-09-19 10:53:59 -04:00
- [Internationalization ](#internationalization )
2019-11-21 03:37:06 -05:00
- [Management ](#management )
2016-12-26 19:22:39 -05:00
- [Multimedia ](#multimedia )
2016-09-08 19:44:50 -04:00
- [Networks ](#networks )
2016-09-12 05:56:49 -04:00
- [Phone Numbers ](#phone-numbers )
- [Postal Addresses ](#postal-addresses )
2016-12-27 10:09:28 -05:00
- [Science ](#science )
2016-12-27 11:39:21 -05:00
- [Society ](#society )
2016-09-12 07:26:55 -04:00
- [Software Engineering ](#software-engineering )
2017-09-19 10:03:07 -04:00
- [Typography ](#typography )
2017-09-19 10:57:11 -04:00
---
2016-09-08 19:44:50 -04:00
- [Contributing ](#contributing )
2016-09-12 06:05:57 -04:00
- [Good Candidates ](#good-candidates )
2020-01-09 16:50:26 -05:00
- [*Falsehood* Articles ](#falsehood-articles )
- [Libraries ](#libraries )
- [Data Structures ](#data-structures )
2016-09-08 19:44:50 -04:00
- [License ](#license )
2016-09-08 19:11:28 -04:00
## Foreword
2016-09-08 06:15:51 -04:00
2016-09-08 19:11:28 -04:00
*Falsehood* articles are a form of commentary on a particular subject, and are
2016-09-08 19:16:46 -04:00
appreciated by the developer community at large for their effectiveness and
2016-11-03 14:34:24 -04:00
terseness. They're a convenient written form to approach an unfamiliar domain
by dispelling myths, point out common pitfalls, show inconsistencies and
2016-09-08 19:16:46 -04:00
subtleties.
2016-09-08 06:15:51 -04:00
2016-10-06 01:28:47 -04:00
In a sense, *Falsehood* articles are a suite of wordy unit-tests covering
extensive edge-cases provided by real-world usage.
2016-09-08 18:18:43 -04:00
2016-09-08 18:19:40 -04:00
## Meta
2020-01-09 16:50:26 -05:00
- [Falsehoods Programmers Believe ](https://spaceninja.com/2015/12/07/falsehoods-programmers-believe/ ) - A
2016-09-08 20:13:24 -04:00
brief list of common falsehoods. A great overview and quick introduction into
the world of falsehoods.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Programming ](https://chiselapp.com/user/ttmrichter/repository/gng/doc/trunk/output/falsehoods.html ) -
2016-12-27 09:06:51 -05:00
A humbling and fun list on programming and programmers themselves.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Falsehoods Lists ](https://kevin.deldycke.com/2016/12/falsehoods-programmers-believe-about-falsehoods-lists/ ) -
2016-12-27 07:46:23 -05:00
Meta commentary on how these falsehoods shouldn't be handled.
2016-09-08 18:19:40 -04:00
2016-12-27 11:17:17 -05:00
## Arts
- [Falsehoods About
Music](https://literateprogrammer.blogspot.fr/2016/07/falsehoods-programmers-believe-about.html) -
False assumption that might be made in codifying music.
2018-04-18 15:50:53 -04:00
- [Falsehoods About Art ](http://artsy.github.io/blog/2018/04/18/programmer-misconceptions-about-art/ ) –
Common misconceptions about art.
2016-12-27 11:17:17 -05:00
2016-09-12 07:22:40 -04:00
## Business
2020-01-09 16:50:26 -05:00
- [Falsehoods About Online Shopping ](http://wiesmann.codiferes.net/wordpress/?p=22201 ) - Covers prices,
2016-09-12 07:22:40 -04:00
currencies and inventory.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Prices ](https://gist.github.com/rgs/6509585 ) - Covers currencies, amounts and
2016-09-12 07:22:40 -04:00
localization.
2020-01-09 16:50:26 -05:00
- [Falsehoods About IBANs ](https://github.com/globalcitizen/php-iban/blob/master/docs/FALSEHOODS.md ) -
2016-12-13 05:41:45 -05:00
International Bank Account Numbers are not immune to mistakes.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Economics ](http://exple.tive.org/blarg/2016/09/22/falsehoods-programmers-believe-about-economics/ ) -
2016-12-27 10:39:53 -05:00
Economics are not simple or rational.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Cars ](https://github.com/driveto/falsehoods-about-cars ) -
2019-03-03 13:30:58 -05:00
Even something as common as defining a car is full of pitfalls.
2020-01-09 16:50:26 -05:00
- [CLDR currency definitions ](http://unicode.org/cldr/trac/browser/tags/release-31/common/supplemental/supplementalData.xml#L81 ) -
2017-04-21 10:37:20 -04:00
Currency validity date ranges overlap due to revolts, invasions, new
constitutions, and slow planned adoption.
2016-09-12 07:22:40 -04:00
- [`tax` ](https://github.com/commerceguys/tax ) - A PHP 5.4+ tax management
library.
2016-09-12 05:56:49 -04:00
## Dates and Time
2016-09-08 05:22:55 -04:00
2020-01-09 16:50:26 -05:00
- [Falsehoods About Time ](http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time ) -
2016-09-08 20:13:24 -04:00
Seminal article on dates and time.
2020-01-09 16:50:26 -05:00
- [More Falsehoods About Time ](http://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time ) -
2016-09-08 20:13:24 -04:00
Part. 2 of the article above.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Time and Time Zones ](https://www.creativedeletion.com/2015/01/28/falsehoods-programmers-date-time-zones.html ) -
2016-09-08 20:13:24 -04:00
Another takes on time-related falsehoods, with an emphasis on time zones.
2020-01-09 16:50:26 -05:00
- [Critique of Falsehoods About Time ](https://gist.github.com/thanatos/eee17100476a336a711e ) - Takes on the
2016-11-03 14:34:24 -04:00
first article above and provides an explanation of each falsehood, with more
2016-11-03 14:48:21 -04:00
context and external resources.
2017-03-21 12:18:40 -04:00
- [Your Calendrical Fallacy Is Thinking… ](http://yourcalendricalfallacyis.com ) -
2017-03-21 13:11:47 -04:00
List covering intercalation and cultural influence, made by a community of iOS
and macOS developers.
2016-09-12 07:18:08 -04:00
- [Time Zone Database ](https://www.iana.org/time-zones ) - Code and data that
represent the history of local time for many representative locations around
the globe.
- [The Long, Painful History of Time ](http://naggum.no/lugm-time.html ) - Most
2016-12-27 10:58:13 -05:00
of the idiosyncrasies in time keeping can find an explanation in history.
2016-11-03 14:51:38 -04:00
- [You Advocate a Calendar Reform ](https://qntm.org/calendar ) - Your idea will
not work. This article tells you why.
2016-11-06 16:33:14 -05:00
- [So You Want to Abolish Time Zones ](https://qntm.org/abolish ) – Abolishing
timezones may sound like a good idea, but there are quite a few complications
2016-12-01 12:55:03 -05:00
that make it not quite so.
2017-04-24 13:36:20 -04:00
- [The Problem with Time & Timezones ](https://www.youtube.com/watch?v=-5wpm-gesOY ) -
2017-09-17 11:35:22 -04:00
A video about why you should never, ever deal with timezones if you can help
it.
2020-01-09 16:50:26 -05:00
- [$26,000 Overcollection by Labor Department ](http://digital.vpr.net/post/rounding-error-computer-code-leads-26000-overcollection-labor-department ) -
2017-09-17 11:43:40 -04:00
The consequence of wrong calendar accounting.
2020-01-09 16:50:26 -05:00
- [ISO-8601, YYYY, yyyy, and why your year may be wrong ](https://ericasadun.com/2018/12/25/iso-8601-yyyy-yyyy-and-why-your-year-may-be-wrong/ ) -
2019-01-08 02:05:53 -05:00
String formatting of date is hard.
2019-02-21 09:30:39 -05:00
- [UTC is Enough for everyone, right? ](https://zachholman.com/talk/utc-is-enough-for-everyone-right ) - There are edge cases about dates and time (specifically UTC) that you probably haven't thought of.
2020-01-09 16:50:26 -05:00
- [Storing UTC is not a silver bullet ](https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/ ) - "Just store dates in UTC" is not always the right approach.
2019-05-16 04:01:15 -04:00
- [Falsehoods about Unix Time ](https://alexwlchan.net/2019/05/falsehoods-programmers-believe-about-unix-time/ ) - Mind the leap second!
2020-01-09 16:50:26 -05:00
- [Why is subtracting these two times (in 1927) giving a strange result? ](https://stackoverflow.com/a/6841479/57311 ) - Infamous StackOverflow answer about both complicated historical timezones, and how historical dates can be re-interpreted by newer versions of software.
2019-02-22 13:02:34 -05:00
2019-11-21 03:28:10 -05:00
## Education
- [Falsehoods CS Students (Still) Believe Upon Graduating ](https://www.netmeister.org/blog/cs-falsehoods.html ) - A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.
2016-09-08 05:58:21 -04:00
## Emails
2020-01-09 16:50:26 -05:00
- [I Knew How to Validate an Email Address Until I Read the RFC ](https://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx/ ) -
2017-10-16 04:12:23 -04:00
Provides intricate examples that are unsuspected valid email addresses
according the RFC-822.
2018-07-18 10:31:58 -04:00
- [So you think you can validate email addresses (FOSDEM 2018) ](https://fosdem.org/2018/schedule/event/email_address_quiz/ ) -
Presentation of edge-case email addresses and why you should not use regex to parse them.
2016-09-08 05:58:21 -04:00
2016-09-08 06:13:07 -04:00
## Geography
2020-01-09 16:50:26 -05:00
- [Falsehoods About Geography ](http://wiesmann.codiferes.net/wordpress/?p=15187 ) - Takes on places,
2016-09-12 07:16:03 -04:00
their names and locations.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Maps ](http://www.atlefren.net/post/2014/09/falsehoods-programmers-believe-about-maps/ ) -
2016-09-12 07:16:22 -04:00
Covers coordinates, projection and GIS.
2016-09-08 06:13:07 -04:00
2016-09-12 07:20:12 -04:00
## Human Identity
2016-09-08 05:22:55 -04:00
2020-01-09 16:50:26 -05:00
- [Falsehoods About Names ](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ ) -
2016-09-12 07:15:14 -04:00
The article that started it all.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Names – With Examples ](https://shinesolutions.com/2018/01/08/falsehoods-programmers-believe-about-names-with-examples/ ) -
2019-11-09 20:49:30 -05:00
A revisited version of the article above, this time with detailed explanations.
2019-03-03 13:34:10 -05:00
- Falsehoods About Gender: [#1 ](https://gist.github.com/garbados/f82604ea639e0e47bf44 ) &
[#2 ](https://medium.com/gender-2-0/falsehoods-programmers-believe-about-gender-f9a3512b4c9c ) -
Gender is part of human identity and has its own subtleties.
2016-10-18 11:21:32 -04:00
- [Gay Marriage: The Database Engineering Perspective ](https://qntm.org/gay ) -
How to store a marriage in a database while addressing most of the falsehoods
about gender, naming and relationships.
2020-01-09 16:50:26 -05:00
- [Falsehoods Programmers Believe About Families ](https://shkspr.mobi/blog/2017/03/falsehoods-programmers-believe-about-families/ ) -
2017-04-21 10:12:56 -04:00
You can't really define a family with strict rules.
2020-01-09 16:50:26 -05:00
- [Personal Names Around the World ](https://www.w3.org/International/questions/qa-personal-names ) - How do
2016-12-27 11:34:54 -05:00
people's names differ around the world, and what are the implications for the
Web?
2020-01-09 16:50:26 -05:00
- [XKCD #327: Exploits of a Mom ](https://xkcd.com/327/ ) - Funny take on how implementation of a falsehood
2016-10-06 11:19:42 -04:00
might lead to security holes.
2020-01-09 16:50:26 -05:00
- [Hello, I’ m Mr. Null. My Name Makes Me Invisible to Computers ](https://www.wired.com/2015/11/null/ ) - Real-life example on how
2016-10-23 15:50:49 -04:00
implemented falsehood has negative impact on someone's life.
2019-11-09 20:55:07 -05:00
- [My name causes an issue with any booking! ](https://travel.stackexchange.com/questions/149323/my-name-causes-an-issue-with-any-booking-names-end-with-mr-and-mrs ) -
Old airline reservation systems considers the `MR` suffix as `Mister` and drops it.
2020-01-09 16:50:26 -05:00
- [HL7 v3 RIM ](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=186 ) -
2016-09-08 20:13:24 -04:00
A flexible data model for representing human names.
2020-01-09 16:50:26 -05:00
- [Apple iOS `NSPersonNameComponentsFormatter` ](https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/NSPersonNameComponentsFormatter_Class/index.html ) -
2016-09-08 20:13:24 -04:00
Localized representations of the components of a person’ s name.
2018-02-27 06:27:04 -05:00
- [Falsehoods About Me ](https://skylarmacdonald.com/falsehoods/ ) - Issues at the
2018-02-12 18:12:42 -05:00
intersection of names and gender and internationalisation.
2016-09-08 05:22:55 -04:00
2017-09-19 10:53:59 -04:00
## Internationalization
2020-01-09 16:50:26 -05:00
- [Falsehoods About Language ](http://garbled.benhamill.com/2017/04/18/falsehoods-programmers-believe-about-language ) -
2017-09-19 10:53:59 -04:00
Translating a software from English is not as straightforward as it seems to
be.
- [i18n Testing Data ](https://github.com/patch/i18n-testing ) - Real-word
international and diverse name data for unit testing and QA.
- [Internationalis(z)ing Code ](https://www.youtube.com/watch?v=0j74jcxSunY ) -
A video about things you need to keep in mind when internationalizing your
code.
2019-02-22 13:06:02 -05:00
- [Minimum to Know About Unicode and Character Sets ](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/ ) - Character encoding doesn't have to be baffling, but it helps to have a basic set of knowledge
2019-11-09 20:52:20 -05:00
- [Ode to a shipping label ](http://i.imgur.com/4J7Il0m.jpg ) - Character encoding is hard.
2017-09-19 10:53:59 -04:00
2019-02-22 13:02:34 -05:00
2019-11-21 03:37:06 -05:00
## Management
2020-01-09 16:50:26 -05:00
- [Falsehoods About Job Applicants ](https://web.archive.org/web/20170114022820/https://medium.com/@creatrixtiara/falsehoods-programmers-believe-about-job-applicants-99280437c616 ) -
2019-11-21 03:37:06 -05:00
Assumptions about job applicants and their job histories aren’ t necessarily
true.
2016-12-26 19:22:39 -05:00
## Multimedia
2020-01-09 16:50:26 -05:00
- [Falsehoods About Video ](https://haasn.xyz/posts/2016-12-25-falsehoods-programmers-believe-about-%5Bvideo-stuff%5D.html ) -
2016-12-26 19:22:39 -05:00
Cover it all: video decoding and playback, files, image scaling, color spaces
and conversion, displays and subtitles.
2016-09-08 18:16:51 -04:00
## Networks
2020-01-09 16:50:26 -05:00
- [Falsehoods About Networks ](http://blog.erratasec.com/2012/06/falsehoods-programmers-believe-about.html ) -
2016-09-12 07:15:14 -04:00
Covers TCP, DHCP, DNS, VLANs and IPv4/v6.
2020-01-09 16:50:26 -05:00
- [Fallacies of Distributed Computing ](https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing ) -
2016-12-27 09:58:33 -05:00
Assumptions that programmers new to distributed applications invariably make.
2019-09-10 09:45:16 -04:00
- [There’ s more than one way to write an IP address ](https://ma.ttias.be/theres-more-than-one-way-to-write-an-ip-address/ ) - Some parts of the address are optional, mind the decimal and octal notations, and [don't forget IPv6 ](https://news.ycombinator.com/item?id=20390981 ) either.
- [`hostname-validate` ](https://github.com/jakeogh/hostname-validate ) - An attempt to validate hostnames in Python.
2016-09-08 18:16:51 -04:00
2016-09-12 05:56:49 -04:00
## Phone Numbers
2016-09-08 06:22:33 -04:00
2020-01-09 16:50:26 -05:00
- [Falsehoods About Phone Numbers ](https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md ) -
2016-09-12 07:16:50 -04:00
Covers phone numbers, their representation and meaning.
2016-09-08 20:13:24 -04:00
- [`libphonenumber` ](https://github.com/googlei18n/libphonenumber ) - Google's
common Java, C++ and JavaScript library for parsing, formatting, and validating
international phone numbers. Also available for
2018-06-18 13:08:22 -04:00
[C# ](https://github.com/twcclegg/libphonenumber-csharp ),
2016-09-08 20:13:24 -04:00
[Objective-C ](https://github.com/iziz/libPhoneNumber-iOS ),
[Python ](https://github.com/daviddrysdale/python-phonenumbers ),
[Ruby ](https://github.com/sstephenson/global_phone ) and
[PHP ](https://github.com/giggsey/libphonenumber-for-php ).
2016-09-08 06:22:33 -04:00
2016-09-12 05:56:49 -04:00
## Postal Addresses
2016-09-08 05:22:55 -04:00
2020-01-09 16:50:26 -05:00
- [Falsehoods About Addresses ](https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/ ) -
2016-09-12 07:15:14 -04:00
Covers streets, postal codes, buildings, cities and countries.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Residence ](https://twitter.com/samphippen/status/813896916534784004 ) -
2019-03-03 13:28:42 -05:00
It's not only about the address itself, but the relationship between a person and its residence.
2020-01-09 16:50:26 -05:00
- [Letter Delivered Despite No Name, No Address ](https://twitter.com/loriskumo/status/735851511331356672 ) - Ultimate
2016-10-26 05:27:17 -04:00
falsehood about postal addresses: you do not need one.
2019-09-02 12:15:40 -04:00
- [The Bear with Its Own ZIP Code ](https://kottke.org/19/08/the-bear-with-its-own-zip-code ) -
Smokey Bear has his own ZIP Code (`20252`) because he gets so much mail.
2020-01-09 16:50:26 -05:00
- [Regex and Postal Addresses ](https://smartystreets.com/articles/regular-expressions-for-street-addresses ) -
2018-02-19 17:49:36 -05:00
Why regular expressions and street addresses do not mix.
2016-09-08 20:13:24 -04:00
- [`libaddressinput` ](https://github.com/googlei18n/libaddressinput ) - Google's
common C++ and Java library for parsing, formatting, and validating
international postal addresses.
- [`addressing` ](https://github.com/commerceguys/addressing ) - A PHP 5.4+
addressing library, powered by Google's dataset.
- [`postal-address` ](https://github.com/scaleway/postal-address ) - Python
module to parse, normalize and render postal addresses.
2018-05-02 19:59:31 -04:00
- [`address` ](https://github.com/Boostport/address ) - Go library to validate
and format addresses using Google's dataset.
2016-09-08 05:33:09 -04:00
2019-02-22 13:02:34 -05:00
2016-12-27 10:09:28 -05:00
## Science
2020-01-09 16:50:26 -05:00
- [Falsehoods About Systems of Measurement ](https://www.stevemoser.org/posts/dev/falsehoods-programmers-believe-about-systems-of-measurement.html ) -
2016-12-27 10:09:28 -05:00
On working with systems of measurement and converting between them.
2016-12-27 11:39:21 -05:00
## Society
2020-01-09 16:50:26 -05:00
- [Falsehoods About Political Appointments ](https://twitter.com/oliver_dw/status/737930439575404544 ) -
2016-12-27 11:39:21 -05:00
Designing election systems has its own tricks.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Women In Tech ](https://gist.github.com/Su-Shee/5d1a417fa9de19c15477 ) - Myth about women
2016-12-29 12:25:30 -05:00
in STEM (Science, Technology, Engineering, Math) industries.
2016-12-27 11:39:21 -05:00
2016-09-12 07:26:55 -04:00
## Software Engineering
2016-09-08 18:18:02 -04:00
2020-01-09 16:50:26 -05:00
- [Falsehoods About Versions ](https://github.com/xenoterracide/falsehoods/blob/master/versions.md ) -
2016-10-18 15:48:31 -04:00
Attributing an identity to a software release might be harder than thought.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Build Systems ](https://pozorvlak.livejournal.com/174763.html ) - Building software is
2016-10-18 15:48:31 -04:00
hard. Building software that builds software is harder.
2020-01-09 16:50:26 -05:00
- [Myths About File Paths ](https://yakking.branchable.com/posts/falsehoods-programmers-believe-about-file-paths/ ) -
2016-12-27 05:56:52 -05:00
Diversity of file-systems and OSes makes file paths a little harder than we
might think of.
2020-01-09 16:50:26 -05:00
- [Falsehoods About REST APIs ](http://slinkp.com/falsehoods-programmers-believe-about-apis.html ) -
2016-12-27 10:18:06 -05:00
Pitfalls to be mindful of when creating and documenting APIs.
2020-01-09 16:50:26 -05:00
- [Falsehoods About CSVs ](https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs ) -
2016-12-29 03:19:50 -05:00
While RFC4180 to exists, it is far from definitive and goes largely ignored.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Package Managers ](https://meta-package-manager.readthedocs.io/en/develop/falsehoods.html ) -
2016-12-29 08:46:12 -05:00
Covers package and their managers.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Testing ](https://club.ministryoftesting.com/t/falsehoods-testers-believe/1371 ) -
2018-02-27 06:28:07 -05:00
An attempt to establish a list of falsehoods about testing.
2020-01-09 16:50:26 -05:00
- [Big List of Naughty Strings ](https://github.com/minimaxir/big-list-of-naughty-strings ) - Challenge
2016-09-12 07:26:55 -04:00
your assumptions about strings.
2018-12-01 03:26:42 -05:00
- [Popular misconceptions about mtime ](https://apenwarr.ca/log/20181113 ) - Part
of a post on why file mtime comparison could be considered harmful.
2020-01-09 16:50:26 -05:00
- [Falsehoods About Pagination ](https://www.hezmatt.org/~mpalmer/blog/2018/12/12/falsehoods-programmers-believe-about-pagination.html ) -
2018-12-11 19:41:22 -05:00
Why your pagination algorithm is giving someone (possibly you) a headache.
2020-01-09 16:50:26 -05:00
- [Rules for Autocomplete ](http://jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html ) -
2019-04-18 04:54:37 -04:00
Not falsehoods *per-se* , but still a great list of good practices to implement autocompletion.
2019-01-08 02:21:37 -05:00
- [9999999999999999.0 - 9999999999999998.0 ](http://geocar.sdf1.org/numbers.html ) - A
kind of falsehood on numbers, and floats vs decimals.
2019-05-30 00:49:01 -04:00
- [Falsehoods About Search ](https://opensourceconnections.com/blog/2019/05/29/falsehoods-programmers-believe-about-search/ ) -
Why search (including analysis, tokenization, highlighting) is deceptively
complex.
2020-01-09 16:50:26 -05:00
- [Hi! My name is… ](https://www.youtube.com/watch?v=NIebelIpdYk ) - This talk could have been named falsehoods about in usernames (and other identifiers).
2019-08-08 18:23:18 -04:00
- [Myths about /dev/urandom ](https://www.2uo.de/myths-about-urandom ) - There are a few things about /dev/urandom and /dev/random that are repeated again and again. Still they are false.
2019-11-21 03:24:52 -05:00
- [Myths about CPU Caches ](https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/ ) - Misconceptions about caches often lead to false assertions, especially when it comes to concurrency and race conditions.
2016-09-08 18:18:02 -04:00
2017-09-19 10:03:07 -04:00
## Typography
2017-09-19 10:43:13 -04:00
- [Falsehoods About Fonts ](https://github.com/RoelN/Font-Falsehoods ) -
Assumptions about typography on the web and in desktop applications.
2019-06-26 15:33:35 -04:00
- [Truths programmers should know about case ](https://www.b-list.org/weblog/2018/nov/26/case/ ) - A complete reverse of
2020-01-09 16:50:26 -05:00
the falshoods format, on the topic of case (as in uppercase and lowercase text).
2017-09-19 10:03:07 -04:00
2016-09-08 19:35:58 -04:00
## Contributing
2020-01-09 16:50:26 -05:00
Your contributions are always welcome! Please take a look at the [contribution guidelines ](CONTRIBUTING.md ) first.
2016-09-08 19:35:58 -04:00
2016-09-12 06:05:57 -04:00
## Good Candidates
Here is a non-restrictive list of items which are good candidates for inclusion
in this awesome list.
### *Falsehood* Articles
Articles following the *falsehood* scheme are prime candidates for inclusion in
this awesome list.
These articles starts with the hypothesis that developers have a naive, simple
view of the subject at hand. Then proceed to list a set of candid assumptions
that might be held by such programmers. Each one is intentionally false, and
sometimes illustrated by a counter-example.
A list of falsehood is crafted as a progression that is designed to refine
concepts. Having read the whole list of falsehood, the reader should possess a
global, if not complete, overview of the domain being targeted by the article,
including most, if not all, its pitfalls, edges-cases and inconsistencies.
In the worst case, these articles might provoke an emotional reaction and cause
flipping table. `(╯°□°)╯︵ ┻━┻`
2018-07-25 04:21:26 -04:00
Articles featuring items that are applicable to a product and a product only
can't really be considered as generic falsehood articles and should be avoided.
2016-09-12 06:05:57 -04:00
### Libraries
When possible, we provide a list of programming libraries or modules that may
solve, or try to, the complexities and idiosyncrasies pointed by the
*falsehood* articles above.
So we can put back tables in place. `┬─┬ ノ ( ゜-゜ノ)`
### Data Structures
2016-09-29 06:45:07 -04:00
Data models and structures generic enough to cover and address most of the
2016-09-12 06:05:57 -04:00
falsehoods are also welcome in this page.
2016-09-08 19:16:46 -04:00
## License
2016-09-08 05:33:09 -04:00
2017-01-11 08:55:32 -05:00
[![CC0 ](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg )](https://creativecommons.org/publicdomain/zero/1.0/)
2016-09-09 13:46:26 -04:00
2020-01-09 16:50:26 -05:00
Content of this repository is licensed under the [Creative Commons CC0 license ](https://creativecommons.org/publicdomain/zero/1.0/ ).
2016-09-09 13:46:26 -04:00
2017-01-11 08:55:32 -05:00
To the extent possible under law, [Kevin Deldycke ](https://kevin.deldycke.com )
2016-09-09 13:46:26 -04:00
has waived all copyright and related or neighboring rights to this work.