6.8 KiB
Awesome Falsehood
A curated list of awesome falsehoods programmers believe in.
The logic of the world is prior to all truth and falsehood.
- Ludwig Wittgenstein
Contents
- Foreword
- Good Candidates
- Meta
- Build Systems
- Dates and Time
- E-Commerce
- Emails
- Gender
- Geography
- Human Names
- Networks
- Phone Numbers
- Prices
- Postal Addresses
- Versions
- Contributing
- License
Foreword
Falsehood articles are a form of commentary on a particular subject, and are appreciated by the developer community at large for their effectiveness and density. They're a convenient written form to approach an unfamiliar domain by dispelling myths, point out common pitfalls, show inconsistencies and subtleties.
They might looks like to some as a suite of wordy unit-tests covering extensive edge-cases provided by real-world usage.
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. (╯°□°)╯︵ ┻━┻
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
Data models and structures generic enough to cover and addresses most of the falsehoods are also welcome in this page.
Meta
- Awesome Falsehood - A curated list of awesome falsehoods programmers believe in.
- Falsehoods Programmers Believe - A brief list of common falsehoods. A great overview and quick introduction into the world of falsehoods.
Build Systems
Dates and Time
- Falsehoods About Time - Seminal article on dates and time.
- More Falsehoods About Time - Part. 2 of the article above.
- Falsehoods About Time and Time Zones - Another takes on time-related falsehoods, with an emphasis on time zones.
- Falsehoods About Time - A critique of the first article with a very detailed explanation of each falsehood, adding more context and external resource to the subject.
E-Commerce
Emails
Gender
Geography
Human Names
- Falsehoods About Names.
- XKCD #327: Exploits of a Mom.
- HL7 v3 RIM - A flexible data model for representing human names.
- iOS
NSPersonNameComponentsFormatter
- Localized representations of the components of a person’s name.
Networks
Phone Numbers
libphonenumber
- Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers. Also available for C#, Objective-C, Python, Ruby and PHP.
Prices
Postal Addresses
- Falsehoods About Addresses.
libaddressinput
- Google's common C++ and Java library for parsing, formatting, and validating international postal addresses.addressing
- A PHP 5.4+ addressing library, powered by Google's dataset.postal-address
- Python module to parse, normalize and render postal addresses.
Versions
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.
License
Content of this repository is licensed under the Creative Commons CC0 license.
To the extent possible under law, Kevin Deldycke has waived all copyright and related or neighboring rights to this work.