HomeMeta & General › Awesome Falsehood

Awesome Falsehood

by kdeldycke · kdeldycke/awesome-falsehood

Falsehoods programmers believe in — curated cautionary tales.

★ 24k stars142 projects ⑂ 0 forks0 open issues
142 projects
Falsehoods about Artartsy.github.io

Common misconceptions about art.

Falsehoods about Musicliterateprogrammer.blogspot.fr

False assumption that might be made in codifying music.

Because UK allows companies to be registered with special characters, a hacker leveraged them to register \"> LTD, but also ; DROP TABLE "COMPANIES";-- LTD, BETTS & TWINE LTD and SAFDASD & SFSAF \' SFDAASF\" LTD.

🆓 Currency validity date ranges overlap due to revolts, invasions, new constitutions, and slow planned adoption.

The importance of types in accounting software: missing the decimal point ends up with 100x over-charges.

Economics are not simple or rational.

International Bank Account Numbers are not international.

Falsehoods about Online Shoppingwiesmann.codiferes.net

Covers prices, currencies and inventory.

Covers currencies, amounts and localization.

How the rules of the State of Delaware and the IRS does not intersects.

taxgithub.com

🆓 A PHP 5.4+ tax management library.

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: get rid of integers and floats for monetary values. Use decimals. Or fallback to strings and parse them, don't validate.

Insane compensation at Meta in the middle of the AI-boom breaks ERPs.

A list of mistaken perspectives on Bitcoin.

Misconceptions and common pitfalls in contract programming.

The consequence of wrong calendar accounting.

From Y2K to the overflow of 32-bit seconds from Unix epoch, a list of special date to watch for depending on the system.

Takes on the first article above and provides an explanation of each falsehood, with more context and external resources.

Falsehoods about Timeinfiniteundo.com

Seminal article on dates and time.

Another takes on time-related falsehoods, with an emphasis on time zones.

Has some nice points regarding the edge-cases of DST transitions.

Mind the leap second!

Depends on your priorities between SI seconds, earth rotation sync, leap seconds avoidance.

String formatting of date is hard.

Part. 2 of the article above.

RFC-3339 vs ISO-8601ijmacd.github.io

An giant list of formats from the two standards, how they overlaps, and live examples.

Abolishing timezones may sound like a good idea, but there are quite a few complications that make it not quite so.

“Just store dates in UTC” is not always the right approach.

Most of the idiosyncrasies in timekeeping can find an explanation in history.

A video about why you should never, ever deal with timezones if you can help it.

🆓 Code and data that represent the history of local time for many representative locations around the globe.

There are edge cases about dates and time (specifically UTC) that you probably haven't thought of.

Infamous Stack Overflow answer about both complicated historical timezones, and how historical dates can be re-interpreted by newer versions of software.

Your idea will not work. This article tells you why.

Your Calendrical Fallacy Is Thinking…yourcalendricalfallacyis.com

List covering intercalation and cultural influence, made by a community of iOS and macOS developers.

A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.

Postdoc mythscs.kent.ac.uk

“Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”

On addresses, content and delivery.

Provides intricate examples that are unsuspected valid email addresses according the RFC-822.

libvldmailgithub.com

🆓 A library that implements RFC-based checks for e-mail addresses.

Presentation of edge-case email addresses and why you should not use regex to parse them.

A summary of the various, surprising things that are allowed in an email address.

Falsehoods about Geographywiesmann.codiferes.net

Takes on places, their names and locations.

Falsehoods about Mapsweb.archive.org

Covers coordinates, projection and GIS.

Weather is location-dependent, and so full of edge-cases.

I Hate Coordinate Systemsihatecoordinatesystems.com

A guide for geospatial practitioners on diagnosing and fixing common issues with coordinate systems.

“There's one special group of kanji that's hard even for Japanese people to read: place names.”

#1gist.github.com

& #2 - Gender is part of human identity and has its own subtleties.

Localized representations of the components of a person's name.

Fingerprints are not unique.

You can't really define a family with strict rules.

Falsehoods about Meskylarmacdonald.com

Issues at the intersection of names and gender and internationalization.

The article that started it all.

A revisited version of the article above, this time with detailed explanations.

How to store a marriage in a database while addressing most of the falsehoods about gender, naming and relationships.

Real-life example on how implemented falsehood has negative impact on someone's life.

HL7 v3 RIMhl7.org

A flexible data model for representing human names.

How do people's names differ around the world, and what are the implications for the Web?

Funny take on how implementation of a falsehood might lead to security holes.

Awesome Unicodegithub.com

A curated list of delightful Unicode tidbits, packages and resources.

🆓 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.

Most programmers spend so much time with Latin-1 they forgets about other's scripts quirks.

Unicode is extensive, here be dragons.

Falsehoods about Languagegarbled.benhamill.com

Translating a software from English is not as straightforward as it seems to be.

Additional cases to complement the previous article.

Falsehoods about Plain Textjeremyhussell.blogspot.com

Plain text can't cut it, which makes Unicode even more incredible for its ability to just work well.

Falsehoods about textwiesmann.codiferes.net

Practical examples illustrating Unicode normalization, ligatures, surrogate pairs, character widths, and grapheme cluster pitfalls in substring operations.

🆓 Compilation of real-word international and diverse name data for unit testing and QA.

A video about things you need to keep in mind when internationalizing your code.

Dives deeper in Unicode and dispels myths about code points.

You cannot localize temperature differences as-is.

A good introduction to unicode, its historical context and origins, followed by an overview of its inner working.

Character encoding is hard, more so when each broken layer of data input adds its own spice.

Unicode misconceptionsjean.abou-samra.fr

A collection of falsehoods on case, encodings, string length, and more.

Assumptions about job applicants and their job histories aren't necessarily true.

Meta commentary on how these falsehoods shouldn't be handled.

A humbling and fun list on programming and programmers themselves.

A brief list of common falsehoods. A great overview and quick introduction into the world of falsehoods.

Quality insurance guidelines to format music, art, and metadata to increase discoverability.

DDEXddex.net

The industry standard for music metadata, including archiving, sound recording, sales and usage reporting, royalties and license deals.

Cover it all: video decoding and playback, files, image scaling, color spaces and conversion, displays and subtitles.

Music catalogs data are full of crazy stuff.

An open-source project and database that seems to have solved the complexity of music catalog management.

Assumptions that programmers new to distributed applications invariably make.

Covers TCP, DHCP, DNS, VLANs and IPv4/v6.

IDN is crazydaniel.haxx.se

International characters in domain names mean support of homographs and heterographs.

Some parts of the address are optional, mind the decimal and octal notations, and don't forget IPv6 either.

Covers phone numbers, their representation and meaning.

libphonenumbergithub.com

🆓 Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers. Also available for C#, Objective-C, Python and PHP.

addressgithub.com

🆓 Go library to validate and format addresses using Google's dataset.

addressinggithub.com

🆓 A PHP 5.4+ addressing library, powered by Google's dataset.

Covers streets, postal codes, buildings, cities and countries.

It's not only about the address itself, but the relationship between a person and its residence.

Ultimate falsehood about postal addresses: you do not need one.

libaddressinputgithub.com

🆓 Google's common C++ and Java library for parsing, formatting, and validating international postal addresses.

“I saw many horrors, but I've never seen this particular formatting choice anywhere else.”

postal-addressgithub.com

🆓 Python module to parse, normalize and render postal addresses.

Why regular expressions and street addresses do not mix.

Smokey Bear has his own ZIP Code (20252) because he gets so much mail.

UK Address Odditiespaulplowman.com

Quirks extracted from a list of most residential property sales in England and Wales since 1995.

Describes both standardized address formats and content.

Costa Rican uses an idiosyncratic system of addresses that relies on landmarks, history and quite a bit of guesswork.

On working with systems of measurement and converting between them.

Designing election systems has its own tricks.

Myth about women in STEM (Science, Technology, Engineering, Math) industries.

State machines are often misunderstood and under-applied.

Falsehoods about Build Systemspozorvlak.livejournal.com

Building software is hard. Building software that builds software is harder.

Falsehoods about CSVsdonatstudios.com

While RFC4180 to exists, it is far from definitive and goes largely ignored.

CVE ≠ vulnerability (and 36 other confusions).

False conceptions about the identifiers that are used to identify and link research outputs (and a lot of other things).

Misconceptions about event driven systems and message passing.

Misconceptions about the predictability and performance of garbage collection.

Null pointers are even more cursed than pointers in general, and provenance already makes pointers quite complicated.

Covers package and their managers.

Why your pagination algorithm is giving someone (possibly you) a headache.

Falsehoods about Searchopensourceconnections.com

Why search (including analysis, tokenization, highlighting) is deceptively complex.

Falsehoods about Testingclub.ministryoftesting.com

An attempt to establish a list of falsehoods about testing.

Invoking undefined behavior can cause anything to happen, for a much broader definition of "anything" than one might think.

Attributing an identity to a software release might be harder than thought.

Floating Point Math0.30000000000000004.com

“Your language isn't broken, it's doing floating point math. (…) This is why, more often than not, 0.1 + 0.2 != 0.3.”

This talk could have been named falsehoods about usernames (and other identifiers).

There are edge-cases even in tagging systems which are supposed to be barebone.

There are a few things about /dev/urandom and /dev/random that are repeated again and again. Still they are false.

Myths about CPU Cachessoftware.rajivprab.com

Misconceptions about caches often lead to false assertions, especially when it comes to concurrency and race conditions.

Myths about File Pathsyakking.branchable.com

Diversity of file-systems and OSes makes file paths a little harder than we might think of.

Part of a post on why file's mtime comparison could be considered harmful.

Rules for Autocompletejeremymikkola.com

Not falsehoods per se, but still a great list of good practices to implement autocompletion.

“On any Unix-derived system, a path is an admirably simple thing: if it starts with a /, it's a path. Not so on Windows.”

The yaml document from hellruudvanasseldonk.com

YAML is full of obscure complexity like accidental numbers and non-string keys.

A better sourced article on the difficulty of implementing search engines.

Airline seat maps are far more complex than just neat rows and columns of seats.

Falsehoods about Aviationflightaware.engineering

Aviation data are less normalized than you might think.

Old airline reservation systems considers the MR suffix as Mister and drops it.

Having multiple international and national agencies trying to reconcile history, practicality and logistics makes codes follow arcane rules.

Assumptions about typography on the web and in desktop applications.

A complete reverse of the falsehoods format, on the topic of case (as in uppercase and lowercase text).

The Door Problemlizengland.com

All the things you have not considered implementing for your doors in games.

Falsehoods about HTMLaartaka.me.eu.org

“Web is beautiful. Web is ugly. Web is astonishing. A part of this appeal is HTML, with its historical quirks.”

Pitfalls to be mindful of when creating and documenting APIs.

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.

There's a lot of components in an URL, and all have their own logic.

↵ to searchesc to close
awesomelist.dev