[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71495":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":10,"languages":10,"totalLinesOfCode":10,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":48,"discoverSource":49},71495,"awesome-falsehood","kdeldycke\u002Fawesome-falsehood","kdeldycke","😱 Falsehoods Programmers Believe in","",null,27437,639,375,2,0,28,49,88,84,43.42,"Creative Commons Zero v1.0 Universal",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"awesome","awesome-list","currency","date","edge-cases","falsehoods","geography","identity","internationalization","myths","names","phone-number","phone-numbers","postal-addresses","time","timezone","typography","unicode","unicode-characters","video-games","2026-06-12 02:02:53","\u003C!--lint disable awesome-heading-->\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood\u002Fraw\u002Fmain\u002Fassets\u002Fawesome-falsehood-header.jpg\" alt=\"Awesome Falsehood header image\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fkdeldycke\">\n    \u003Cstrong>Your brand → here 🚀\u003C\u002Fstrong>\n    \u003Cbr\u002F>\n    \u003Csup>SEO is dead. Place your product here to target AI's training data.\u003C\u002Fsup>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood#readme.md\" hreflang=\"en\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flang-English-blue?style=flat-square\" lang=\"en\" alt=\"English\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood\u002Fblob\u002Fmain\u002Freadme.zh.md\" hreflang=\"zh\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flang-中文-blue?style=flat-square\" lang=\"zh\" alt=\"中文\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ci>The logic of the world is prior to all truth and falsehood.\u003C\u002Fi>\u003Cbr>\n  — Ludwig Wittgenstein\u003Csup id=\"intro-quote-ref\">\u003Ca href=\"#intro-quote-def\">[1]\u003C\u002Fa>\u003C\u002Fsup>\n\u003C\u002Fp>\n\nA curated [![Awesome](https:\u002F\u002Fawesome.re\u002Fbadge-flat.svg)](https:\u002F\u002Fgithub.com\u002Fsindresorhus\u002Fawesome) list of falsehoods programmers believe in. A *falsehood* is an ***idea* that you initially believed was true**, but in reality, it is **proven to be false**.\n\nE.g. of an *idea*: valid email address exactly has one `@` character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The *reality* is: emails can have multiple `@` chars. Therefore your implementation should allow this. The initial *idea* is a falsehood you believed in.\n\nThe *falsehood* 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.\n\n## Contents\n\n\u003C!-- mdformat-toc start --slug=github --no-anchors --maxlevel=6 --minlevel=2 -->\n\n- [Meta](#meta)\n- [Arts](#arts)\n- [Business](#business)\n- [Cryptocurrency](#cryptocurrency)\n- [Dates and Time](#dates-and-time)\n- [Education](#education)\n- [Emails](#emails)\n- [Geography](#geography)\n- [Human Identity](#human-identity)\n- [Internationalization](#internationalization)\n- [Management](#management)\n- [Multimedia](#multimedia)\n- [Networks](#networks)\n- [Phone Numbers](#phone-numbers)\n- [Postal Addresses](#postal-addresses)\n- [Science](#science)\n- [Society](#society)\n- [Software Engineering](#software-engineering)\n- [Transportation](#transportation)\n- [Typography](#typography)\n- [Video Games](#video-games)\n- [Web](#web)\n\n\u003C!-- mdformat-toc end -->\n\n## Meta\n\n- [Falsehoods Programmers Believe](https:\u002F\u002Fspaceninja.com\u002F2015\u002F12\u002F07\u002Ffalsehoods-programmers-believe\u002F) - A brief list of common falsehoods. A great overview and quick introduction into the world of falsehoods.\n- [Falsehoods about Programming](https:\u002F\u002Fchiselapp.com\u002Fuser\u002Fttmrichter\u002Frepository\u002Fgng\u002Fdoc\u002Ftrunk\u002Foutput\u002Ffalsehoods.html) - A humbling and fun list on programming and programmers themselves.\n- [Falsehoods about Falsehoods Lists](https:\u002F\u002Fkevin.deldycke.com\u002F2016\u002Ffalsehoods-programmers-believe-about-falsehoods-lists) - Meta commentary on how these falsehoods shouldn't be handled.\n\n## Arts\n\n- [Falsehoods about Music](https:\u002F\u002Fliterateprogrammer.blogspot.fr\u002F2016\u002F07\u002Ffalsehoods-programmers-believe-about.html) - False assumption that might be made in codifying music.\n- [Falsehoods about Art](http:\u002F\u002Fartsy.github.io\u002Fblog\u002F2018\u002F04\u002F18\u002Fprogrammer-misconceptions-about-art\u002F) - Common misconceptions about art.\n\n## Business\n\n- [Falsehoods about Online Shopping](https:\u002F\u002Fwiesmann.codiferes.net\u002Fwordpress\u002Farchives\u002F22201) - Covers prices, currencies and inventory.\n- [Falsehoods about Prices](https:\u002F\u002Fgist.github.com\u002Frgs\u002F6509585) - Covers currencies, amounts and localization.\n- [Falsehoods about IBANs](https:\u002F\u002Fgithub.com\u002Fglobalcitizen\u002Fphp-iban\u002Fblob\u002Fmaster\u002Fdocs\u002FFALSEHOODS.md) - International Bank Account Numbers are not international.\n- [Falsehoods about Economics](http:\u002F\u002Fexple.tive.org\u002Fblarg\u002F2016\u002F09\u002F22\u002Ffalsehoods-programmers-believe-about-economics\u002F) - Economics are not simple or rational.\n- [Decimal Point Error in Etsy's Accounting System](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20230615151102\u002Fhttps:\u002F\u002Fold.reddit.com\u002Fr\u002FEtsy\u002Fcomments\u002Fhz4877\u002Fif_you_are_an_etsy_seller_do_not_purchase_postage\u002F) - The importance of types in accounting software: missing the decimal point ends up with 100x over-charges.\n- [Twenty five thousand dollars of funny money](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20250326135824\u002Fhttp:\u002F\u002Frachelbythebay.com\u002Fw\u002F2022\u002F12\u002F02\u002F25k\u002F) - 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.](https:\u002F\u002Ftwitter.com\u002Fkdeldycke\u002Fstatus\u002F1599113889093890049)\n- [“The system can’t handle a billion dollars”](https:\u002F\u002Fxcancel.com\u002Fsignulll\u002Fstatus\u002F1950294195039838480) - Insane compensation at Meta in the middle of the AI-boom breaks ERPs.\n- [Characters `\u003C` and `>` in company names lead to XSS attacks](https:\u002F\u002Fforum.aws.chdev.org\u002Ft\u002Fcross-site-scripting-xss-software-attack\u002F3355) - Because [UK allows companies to be registered with special characters](https:\u002F\u002Fwww.legislation.gov.uk\u002Fuksi\u002F2015\u002F17\u002Fschedule\u002F1\u002Fmade), a hacker leveraged them to register `\\\">\u003CSCRIPT SRC=MJT.XSS.HT>\u003C\u002FSCRIPT> LTD`, but also `; DROP TABLE \"COMPANIES\";-- LTD`, `BETTS &AMP; TWINE LTD` and `SAFDASD & SFSAF \\' SFDAASF\\\" LTD`.\n- [Minutiae of company names](https:\u002F\u002Ftwitter.com\u002Fnthnmsmth\u002Fstatus\u002F1587880523124408322) - How the rules of the State of Delaware and the IRS does not intersects.\n- [CLDR currency definitions](https:\u002F\u002Fgithub.com\u002Funicode-org\u002Fcldr\u002Fblob\u002Frelease-40\u002Fcommon\u002Fsupplemental\u002FsupplementalData.xml#L87-L94) - 🆓 Currency validity date ranges overlap due to revolts, invasions, new constitutions, and slow planned adoption.\n- [`tax`](https:\u002F\u002Fgithub.com\u002Fcommerceguys\u002Ftax) - 🆓 A PHP 5.4+ tax management library.\n\n## Cryptocurrency\n\n- [Falsehoods about Bitcoin](https:\u002F\u002Fgithub.com\u002Ftheborakompanioni\u002Fspring-boot-bitcoin-starter\u002Fblob\u002Fmaster\u002Fdocs\u002FFALSEHOODS.md) - A list of mistaken perspectives on Bitcoin.\n- [Falsehoods about Ethereum](https:\u002F\u002Fgist.github.com\u002Fspalladino\u002Fa349f0ca53dbb5fc3914243aaf7ea8c6) - Misconceptions and common pitfalls in contract programming.\n\n## Dates and Time\n\n- [Falsehoods about Time](http:\u002F\u002Finfiniteundo.com\u002Fpost\u002F25326999628\u002Ffalsehoods-programmers-believe-about-time) - Seminal article on dates and time.\n- [More Falsehoods about Time](http:\u002F\u002Finfiniteundo.com\u002Fpost\u002F25509354022\u002Fmore-falsehoods-programmers-believe-about-time) - Part. 2 of the article above.\n- [Falsehoods about Time and Time Zones](https:\u002F\u002Fwww.creativedeletion.com\u002F2015\u002F01\u002F28\u002Ffalsehoods-programmers-date-time-zones.html) - Another takes on time-related falsehoods, with an emphasis on time zones.\n- [Critique of Falsehoods about Time](https:\u002F\u002Fgist.github.com\u002Fthanatos\u002Feee17100476a336a711e) - Takes on the first article above and provides an explanation of each falsehood, with more context and external resources.\n- [Falsehoods about Unix Time](https:\u002F\u002Falexwlchan.net\u002F2019\u002F05\u002Ffalsehoods-programmers-believe-about-unix-time\u002F) - Mind the leap second!\n- [Falsehoods about Time Zones](https:\u002F\u002Fwww.zainrizvi.io\u002Fblog\u002Ffalsehoods-programmers-believe-about-time-zones\u002F) - Has some nice points regarding the edge-cases of DST transitions.\n- [Your Calendrical Fallacy Is Thinking…](http:\u002F\u002Fyourcalendricalfallacyis.com) - List covering intercalation and cultural influence, made by a community of iOS and macOS developers.\n- [Time Zone Database](https:\u002F\u002Fwww.iana.org\u002Ftime-zones) - 🆓 Code and data that represent the history of local time for many representative locations around the globe.\n- [The Long, Painful History of Time](http:\u002F\u002Fnaggum.no\u002Flugm-time.html) - Most of the idiosyncrasies in timekeeping can find an explanation in history.\n- [You Advocate a Calendar Reform](https:\u002F\u002Fqntm.org\u002Fcalendar) - Your idea will not work. This article tells you why.\n- [So You Want to Abolish Time Zones](https:\u002F\u002Fqntm.org\u002Fabolish) - Abolishing timezones may sound like a good idea, but there are quite a few complications that make it not quite so.\n- [The Problem with Time & Timezones](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=-5wpm-gesOY) - A video about why you should never, ever deal with timezones if you can help it.\n- [\\$26,000 Overcollection by Labor Department](http:\u002F\u002Fdigital.vpr.net\u002Fpost\u002Frounding-error-computer-code-leads-26000-overcollection-labor-department) - The consequence of wrong calendar accounting.\n- [RFC-3339 vs ISO-8601](https:\u002F\u002Fijmacd.github.io\u002Frfc3339-iso8601\u002F) - An giant list of formats from the two standards, how they overlaps, and live examples.\n- [ISO-8601, `YYYY`, `yyyy`, and why your year may be wrong](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20200216181551\u002Fhttps:\u002F\u002Fericasadun.com\u002F2018\u002F12\u002F25\u002Fiso-8601-yyyy-yyyy-and-why-your-year-may-be-wrong\u002F) - String formatting of date is hard.\n- [UTC is Enough for everyone, right?](https:\u002F\u002Fzachholman.com\u002Ftalk\u002Futc-is-enough-for-everyone-right) - There are edge cases about dates and time (specifically UTC) that you probably haven't thought of.\n- [Storing UTC is not a silver bullet](https:\u002F\u002Fcodeblog.jonskeet.uk\u002F2019\u002F03\u002F27\u002Fstoring-utc-is-not-a-silver-bullet\u002F) - “Just store dates in UTC” is not always the right approach.\n- [How to choose between UT1, TAI and UTC](https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=28047376) - Depends on your priorities between SI seconds, earth rotation sync, leap seconds avoidance.\n- [Why is subtracting these two times (in 1927) giving a strange result?](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20241124114705\u002Fhttps:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F6841333\u002Fwhy-is-subtracting-these-two-epoch-milli-times-in-year-1927-giving-a-strange-r\u002F6841479#answer-6841479) - Infamous Stack Overflow answer about both complicated historical timezones, and how historical dates can be re-interpreted by newer versions of software.\n- [Critical and Significant Dates](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20150908004245\u002Fhttp:\u002F\u002Fwww.merlyn.demon.co.uk\u002Fcritdate.htm) - From Y2K to the overflow of 32-bit seconds from Unix epoch, a list of special date to watch for depending on the system.\n- “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: [The Soul of a New Machine](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F0316491705?&linkCode=ll1&tag=kevideld-20&linkId=ec2881e22fb26c2d43de0daeebd5424d&language=en_US&ref_=as_li_ss_tl).\n\n## Education\n\n- [Falsehoods CS Students (Still) Believe Upon Graduating](https:\u002F\u002Fwww.netmeister.org\u002Fblog\u002Fcs-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.\n- [Postdoc myths](https:\u002F\u002Fwww.cs.kent.ac.uk\u002Fpeople\u002Fstaff\u002Fsrk21\u002Fblog\u002F2019\u002F12\u002F02\u002F) - “Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”\n\n## Emails\n\n- [Falsehoods about Email](https:\u002F\u002Fbeesbuzz.biz\u002Fcode\u002F439-Falsehoods-programmers-believe-about-email) - On addresses, content and delivery.\n- [I Knew How to Validate an Email Address Until I Read the RFC](https:\u002F\u002Fhaacked.com\u002Farchive\u002F2007\u002F08\u002F21\u002Fi-knew-how-to-validate-an-email-address-until-i.aspx\u002F) - Provides intricate examples that are unsuspected valid email addresses according the RFC-822.\n- [So you think you can validate email addresses (FOSDEM 2018)](https:\u002F\u002Ffosdem.org\u002F2018\u002Fschedule\u002Fevent\u002Femail_address_quiz\u002F) - Presentation of edge-case email addresses and why you should not use regex to parse them.\n- [Your E-Mail Validation Logic is Wrong](https:\u002F\u002Fwww.netmeister.org\u002Fblog\u002Femail.html) - A summary of the various, surprising things that are allowed in an email address.\n- [`libvldmail`](https:\u002F\u002Fgithub.com\u002Fdertuxmalwieder\u002Flibvldmail) - 🆓 A library that implements RFC-based checks for e-mail addresses.\n\n## Geography\n\n- [Falsehoods about Geography](https:\u002F\u002Fwiesmann.codiferes.net\u002Fwordpress\u002Farchives\u002F15187) - Takes on places, their names and locations.\n- [Falsehoods about Maps](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20250516080728\u002Fhttp:\u002F\u002Fwww.atlefren.net\u002Fpost\u002F2014\u002F09\u002Ffalsehoods-programmers-believe-about-maps\u002F) - Covers coordinates, projection and GIS.\n- [Falsehoods about Weather](https:\u002F\u002Fshkspr.mobi\u002Fblog\u002F2024\u002F06\u002Ffalsehoods-programmers-believe-about-weather\u002F) - Weather is location-dependent, and so full of edge-cases.\n- [I Hate Coordinate Systems](https:\u002F\u002Fihatecoordinatesystems.com) - A guide for geospatial practitioners on diagnosing and fixing common issues with coordinate systems.\n- [Top 5 most insane kanji place names in Japan](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20210310050932\u002Fhttps:\u002F\u002Fsoranews24.com\u002F2016\u002F12\u002F01\u002Fw-t-f-japan-top-5-most-insane-kanji-place-names-in-japan%E3%80%90weird-top-five%E3%80%91\u002F) - “There's one special group of kanji that's hard even for Japanese people to read: place names.”\n\n## Human Identity\n\n- [Falsehoods about Names](https:\u002F\u002Fwww.kalzumeus.com\u002F2010\u002F06\u002F17\u002Ffalsehoods-programmers-believe-about-names\u002F) - The article that started it all.\n- [Falsehoods about Names – With Examples](https:\u002F\u002Fshinesolutions.com\u002F2018\u002F01\u002F08\u002Ffalsehoods-programmers-believe-about-names-with-examples\u002F) - A revisited version of the article above, this time with detailed explanations.\n- [Falsehoods about Biometrics](https:\u002F\u002Fshkspr.mobi\u002Fblog\u002F2021\u002F01\u002Ffalsehoods-programmers-believe-about-biometrics\u002F) - Fingerprints are not unique.\n- [Falsehoods about Families](https:\u002F\u002Fshkspr.mobi\u002Fblog\u002F2017\u002F03\u002Ffalsehoods-programmers-believe-about-families\u002F) - You can't really define a family with strict rules.\n- Falsehoods about Gender: [#1](https:\u002F\u002Fgist.github.com\u002Fgarbados\u002Ff82604ea639e0e47bf44) & [#2](https:\u002F\u002Fmedium.com\u002Fgender-2-0\u002Ffalsehoods-programmers-believe-about-gender-f9a3512b4c9c) - Gender is part of human identity and has its own subtleties.\n- [Falsehoods about Me](https:\u002F\u002Fskylarmacdonald.com\u002Ffalsehoods\u002F) - Issues at the intersection of names and gender and internationalization.\n- [Gay Marriage: The Database Engineering Perspective](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20170914014648\u002Fhttps:\u002F\u002Fqntm.org\u002Fgay) - How to store a marriage in a database while addressing most of the falsehoods about gender, naming and relationships.\n- [Personal Names Around the World](https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-personal-names) - How do people's names differ around the world, and what are the implications for the Web?\n- [XKCD #327: Exploits of a Mom](https:\u002F\u002Fxkcd.com\u002F327\u002F) - Funny take on how implementation of a falsehood might lead to security holes.\n- [Hello, I'm Mr. Null. My Name Makes Me Invisible to Computers](https:\u002F\u002Fwww.wired.com\u002F2015\u002F11\u002Fnull\u002F) - Real-life example on how implemented falsehood has negative impact on someone's life.\n- [HL7 v3 RIM](https:\u002F\u002Fwww.hl7.org\u002Fimplement\u002Fstandards\u002Fproduct_brief.cfm?product_id=186) - A flexible data model for representing human names.\n- [Apple iOS `NSPersonNameComponentsFormatter`](https:\u002F\u002Fdeveloper.apple.com\u002Flibrary\u002Fios\u002Fdocumentation\u002FMiscellaneous\u002FReference\u002FNSPersonNameComponentsFormatter_Class\u002Findex.html) - Localized representations of the components of a person's name.\n\n## Internationalization\n\nOn character encoding, string formatting, unicode and internationalization.\n\n- [Falsehoods about Language](http:\u002F\u002Fgarbled.benhamill.com\u002F2017\u002F04\u002F18\u002Ffalsehoods-programmers-believe-about-language) - Translating a software from English is not as straightforward as it seems to be.\n- [Falsehoods about Language](https:\u002F\u002Fwww.lexiconista.com\u002Ffalsehoods-about-languages\u002F) - Additional cases to complement the previous article.\n- [Falsehoods about Plain Text](https:\u002F\u002Fjeremyhussell.blogspot.com\u002F2017\u002F11\u002Ffalsehoods-programmers-believe-about.html#main) - Plain text can't cut it, which makes Unicode even more incredible for its ability to just work well.\n- [Falsehoods about text](https:\u002F\u002Fwiesmann.codiferes.net\u002Fwordpress\u002Farchives\u002F30296) - Practical examples illustrating Unicode normalization, ligatures, surrogate pairs, character widths, and grapheme cluster pitfalls in substring operations.\n- [Internationalis(z)ing Code](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0j74jcxSunY) - A video about things you need to keep in mind when internationalizing your code.\n- [Minimum to Know About Unicode and Character Sets](https:\u002F\u002Fwww.joelonsoftware.com\u002F2003\u002F10\u002F08\u002Fthe-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses\u002F) - A good introduction to unicode, its historical context and origins, followed by an overview of its inner working.\n- [Awesome Unicode](https:\u002F\u002Fgithub.com\u002Fjagracey\u002FAwesome-Unicode) - A curated list of delightful Unicode tidbits, packages and resources.\n- [Dark corners of Unicode](https:\u002F\u002Feev.ee\u002Fblog\u002F2015\u002F09\u002F12\u002Fdark-corners-of-unicode\u002F) - Unicode is extensive, here be dragons.\n- [Let's Stop Ascribing Meaning to Code Points](https:\u002F\u002Fmanishearth.github.io\u002Fblog\u002F2017\u002F01\u002F14\u002Fstop-ascribing-meaning-to-unicode-code-points\u002F) - Dives deeper in Unicode and dispels myths about code points.\n- [Unicode misconceptions](https:\u002F\u002Fjean.abou-samra.fr\u002Fblog\u002Funicode-misconceptions\u002F) - A collection of falsehoods on case, encodings, string length, and more.\n- [Breaking Our `Latin-1` Assumptions](https:\u002F\u002Fmanishearth.github.io\u002Fblog\u002F2017\u002F01\u002F15\u002Fbreaking-our-latin-1-assumptions\u002F) - Most programmers spend so much time with `Latin-1` they forgets about other's scripts quirks.\n- [Ode to a shipping label](http:\u002F\u002Fi.imgur.com\u002F4J7Il0m.jpg) - Character encoding is hard, more so when each broken layer of data input adds its own spice.\n- [Localization Failure: Temperature is Hard](https:\u002F\u002Frandomascii.wordpress.com\u002F2023\u002F10\u002F17\u002Flocalization-failure-temperature-is-hard\u002F) - You cannot localize temperature differences as-is.\n- [i18n Testing Data](https:\u002F\u002Fgithub.com\u002Fpatch\u002Fi18n-testing) - 🆓 Compilation of real-word international and diverse name data for unit testing and QA.\n- [Big List of Naughty Strings](https:\u002F\u002Fgithub.com\u002Fminimaxir\u002Fbig-list-of-naughty-strings) - 🆓 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.\n\n## Management\n\n- [Falsehoods about Job Applicants](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20170114022820\u002Fhttps:\u002F\u002Fmedium.com\u002F@creatrixtiara\u002Ffalsehoods-programmers-believe-about-job-applicants-99280437c616) - Assumptions about job applicants and their job histories aren't necessarily true.\n\n## Multimedia\n\n- [Falsehoods about Video](https:\u002F\u002Fhaasn.xyz\u002Fposts\u002F2016-12-25-falsehoods-programmers-believe-about-%5Bvideo-stuff%5D.html) - Cover it all: video decoding and playback, files, image scaling, color spaces and conversion, displays and subtitles.\n- [Horrible edge cases to consider when dealing with music](https:\u002F\u002Fdustri.org\u002Fb\u002Fhorrible-edge-cases-to-consider-when-dealing-with-music.html) - Music catalogs data are full of crazy stuff.\n- [MusicBrainz database schema](https:\u002F\u002Fmusicbrainz.org\u002Fdoc\u002FMusicBrainz_Database\u002FSchema) - An open-source project and database that seems to have solved the complexity of music catalog management.\n- [DDEX](https:\u002F\u002Fddex.net\u002Fstandards\u002F) - The industry standard for music metadata, including archiving, sound recording, sales and usage reporting, royalties and license deals.\n- [Apple Music Style Guide](https:\u002F\u002Fhelp.apple.com\u002Fitc\u002Fmusicstyleguide\u002Fen.lproj\u002Fstatic.html) - Quality insurance guidelines to format music, art, and metadata to increase discoverability.\n\n## Networks\n\n- [Falsehoods about Networks](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20250215201837\u002Fhttp:\u002F\u002Fblog.erratasec.com\u002F2012\u002F06\u002Ffalsehoods-programmers-believe-about.html) - Covers TCP, DHCP, DNS, VLANs and IPv4\u002Fv6.\n- [Fallacies of Distributed Computing](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFallacies_of_distributed_computing) - Assumptions that programmers new to distributed applications invariably make.\n- [There's more than one way to write an IP address](https:\u002F\u002Fma.ttias.be\u002Ftheres-more-than-one-way-to-write-an-ip-address\u002F) - Some parts of the address are optional, mind the decimal and octal notations, and [don't forget IPv6](https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=20390981) either.\n- [IDN is crazy](https:\u002F\u002Fdaniel.haxx.se\u002Fblog\u002F2022\u002F12\u002F14\u002Fidn-is-crazy\u002F) - International characters in domain names mean support of homographs and heterographs.\n\n## Phone Numbers\n\n- [Falsehoods about Phone Numbers](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Flibphonenumber\u002Fblob\u002Fmaster\u002FFALSEHOODS.md) - Covers phone numbers, their representation and meaning.\n- [`libphonenumber`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Flibphonenumber) - 🆓 Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers. Also available for [C#](https:\u002F\u002Fgithub.com\u002Ftwcclegg\u002Flibphonenumber-csharp), [Objective-C](https:\u002F\u002Fgithub.com\u002Fiziz\u002FlibPhoneNumber-iOS), [Python](https:\u002F\u002Fgithub.com\u002Fdaviddrysdale\u002Fpython-phonenumbers) and [PHP](https:\u002F\u002Fgithub.com\u002Fgiggsey\u002Flibphonenumber-for-php).\n\n## Postal Addresses\n\n- [Falsehoods about Addresses](https:\u002F\u002Fwww.mjt.me.uk\u002Fposts\u002Ffalsehoods-programmers-believe-about-addresses\u002F) - Covers streets, postal codes, buildings, cities and countries.\n- [Falsehoods about Residence](https:\u002F\u002Ftwitter.com\u002Fsamphippen\u002Fstatus\u002F813896916534784004) - It's not only about the address itself, but the relationship between a person and its residence.\n- [Letter Delivered Despite No Name, No Address](https:\u002F\u002Fboingboing.net\u002F2016\u002F08\u002F30\u002Fletter-sent-to-iceland-farm-wi.html) - Ultimate falsehood about postal addresses: you do not need one.\n- [UK Address Oddities](https:\u002F\u002Fpaulplowman.com\u002Fstuff\u002Fuk-address-oddities\u002F) - Quirks extracted from a list of most residential property sales in England and Wales since 1995.\n- [The Bear with Its Own ZIP Code](https:\u002F\u002Fkottke.org\u002F19\u002F08\u002Fthe-bear-with-its-own-zip-code) - Smokey Bear has his own ZIP Code (`20252`) because he gets so much mail.\n- [Why doesn't Costa Rica use real addresses?](https:\u002F\u002Fwww.crcdaily.com\u002Fp\u002Fwhy-doesnt-costa-rica-use-real-addresses) - Costa Rican uses an idiosyncratic system of addresses that relies on landmarks, history and quite a bit of guesswork.\n- [Regex and Postal Addresses](https:\u002F\u002Fsmartystreets.com\u002Farticles\u002Fregular-expressions-for-street-addresses) - Why regular expressions and street addresses do not mix.\n- [Parsing the Infamous Japanese Postal CSV](https:\u002F\u002Fwww.dampfkraft.com\u002Fposuto.html) - “I saw many horrors, but I've never seen this particular formatting choice anywhere else.”\n- [USPS Postal Addressing Standards](https:\u002F\u002Fpe.usps.com\u002Ftext\u002Fpub28\u002Fwelcome.htm) - Describes both standardized address formats and content.\n- [`libaddressinput`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Flibaddressinput) - 🆓 Google's common C++ and Java library for parsing, formatting, and validating international postal addresses.\n- [`addressing`](https:\u002F\u002Fgithub.com\u002Fcommerceguys\u002Faddressing) - 🆓 A PHP 5.4+ addressing library, powered by Google's dataset.\n- [`postal-address`](https:\u002F\u002Fgithub.com\u002Fscaleway\u002Fpostal-address) - 🆓 Python module to parse, normalize and render postal addresses.\n- [`address`](https:\u002F\u002Fgithub.com\u002FBoostport\u002Faddress) - 🆓 Go library to validate and format addresses using Google's dataset.\n\n## Science\n\n- [Falsehoods about Systems of Measurement](https:\u002F\u002Fwww.stevemoser.org\u002Fposts\u002Fdev\u002Ffalsehoods-programmers-believe-about-systems-of-measurement.html) - On working with systems of measurement and converting between them.\n\n## Society\n\n- [Falsehoods about Political Appointments](https:\u002F\u002Ftwitter.com\u002Foliver_dw\u002Fstatus\u002F737930439575404544) - Designing election systems has its own tricks.\n- [Falsehoods about Women In Tech](https:\u002F\u002Fgist.github.com\u002FSu-Shee\u002F5d1a417fa9de19c15477) - Myth about women in STEM (Science, Technology, Engineering, Math) industries.\n\n## Software Engineering\n\n- [Falsehoods about Versions](https:\u002F\u002Fgithub.com\u002Fxenoterracide\u002Ffalsehoods\u002Fblob\u002Fmaster\u002Fversions.md) - Attributing an identity to a software release might be harder than thought.\n- [Falsehoods about Build Systems](https:\u002F\u002Fpozorvlak.livejournal.com\u002F174763.html) - Building software is hard. Building software that builds software is harder.\n- [Falsehoods about Undefined Behavior](https:\u002F\u002Fpredr.ag\u002Fblog\u002Ffalsehoods-programmers-believe-about-undefined-behavior\u002F) - Invoking undefined behavior can cause *anything* to happen, for a much broader definition of \"anything\" than one might think.\n- [Myths about CPU Caches](https:\u002F\u002Fsoftware.rajivprab.com\u002F2018\u002F04\u002F29\u002Fmyths-programmers-believe-about-cpu-caches\u002F) - Misconceptions about caches often lead to false assertions, especially when it comes to concurrency and race conditions.\n- [Falsehoods about null pointers](https:\u002F\u002Fpurplesyringa.moe\u002Fblog\u002Ffalsehoods-programmers-believe-about-null-pointers\u002F) - Null pointers are even more cursed than pointers in general, and provenance already makes pointers quite complicated.\n- [Falsehoods about CSVs](https:\u002F\u002Fdonatstudios.com\u002FFalsehoods-Programmers-Believe-About-CSVs) - While RFC4180 to exists, it is far from definitive and goes largely ignored.\n- [Falsehoods about Package Managers](https:\u002F\u002Fkdeldycke.github.io\u002Fmeta-package-manager\u002Ffalsehoods.html) - Covers package and their managers.\n- [Falsehoods about Testing](https:\u002F\u002Fclub.ministryoftesting.com\u002Ft\u002Ffalsehoods-testers-believe\u002F1371) - An attempt to establish a list of falsehoods about testing.\n- [Falsehoods about Search](https:\u002F\u002Fopensourceconnections.com\u002Fblog\u002F2019\u002F05\u002F29\u002Ffalsehoods-programmers-believe-about-search\u002F) - Why search (including analysis, tokenization, highlighting) is deceptively complex.\n- [What every software engineer should know about search](https:\u002F\u002Fscribe.rip\u002Fp\u002Fwhat-every-software-engineer-should-know-about-search-27d1df99f80d) - A better sourced article on the difficulty of implementing search engines.\n- [Falsehoods about Pagination](https:\u002F\u002Fwww.hezmatt.org\u002F~mpalmer\u002Fblog\u002F2018\u002F12\u002F12\u002Ffalsehoods-programmers-believe-about-pagination.html) - Why your pagination algorithm is giving someone (possibly you) a headache.\n- [Falsehoods about garbage collection](https:\u002F\u002Fpaul.bone.id.au\u002Fblog\u002F2018\u002F10\u002F19\u002Fgc-falsehoods\u002F) - Misconceptions about the predictability and performance of garbage collection.\n- [Myths about File Paths](https:\u002F\u002Fyakking.branchable.com\u002Fposts\u002Ffalsehoods-programmers-believe-about-file-paths\u002F) - Diversity of file-systems and OSes makes file paths a little harder than we might think of.\n- [The weird world of Windows file paths](https:\u002F\u002Fwww.fileside.app\u002Fblog\u002F2023-03-17_windows-file-paths\u002F) - “On any Unix-derived system, a path is an admirably simple thing: if it starts with a `\u002F`, it's a path. Not so on Windows.”\n- [Myths about `\u002Fdev\u002Furandom`](https:\u002F\u002Fwww.2uo.de\u002Fmyths-about-urandom) - There are a few things about `\u002Fdev\u002Furandom` and `\u002Fdev\u002Frandom` that are repeated again and again. Still they are false.\n- [Facts about State Machines](https:\u002F\u002Fcodeberg.org\u002Fcatseye\u002FThe-Dossier\u002Fsrc\u002Fbranch\u002Fmaster\u002Farticle\u002FFacts-about-State-Machines\u002FREADME.md) - State machines are often misunderstood and under-applied.\n- [Hi! My name is…](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NIebelIpdYk) - This talk could have been named *falsehoods about usernames (and other identifiers)*.\n- [Popular misconceptions about `mtime`](https:\u002F\u002Fapenwarr.ca\u002Flog\u002F20181113) - Part of a post on why file's `mtime` comparison could be considered harmful.\n- [Rules for Autocomplete](http:\u002F\u002Fjeremymikkola.com\u002Fposts\u002F2019_03_19_rules_for_autocomplete.html) - Not falsehoods *per se*, but still a great list of good practices to implement autocompletion.\n- [Floating Point Math](https:\u002F\u002F0.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`.”\n- [The yaml document from hell](https:\u002F\u002Fruudvanasseldonk.com\u002F2023\u002F01\u002F11\u002Fthe-yaml-document-from-hell) - YAML is full of obscure complexity like accidental numbers and non-string keys.\n- [I am endlessly fascinated with content tagging systems](https:\u002F\u002Ftwitter.com\u002Fhillelogram\u002Fstatus\u002F1534301374166474752) - There are edge-cases even in tagging systems which are supposed to be barebone.\n- [Falsehoods about Event-Driven Systems](https:\u002F\u002Fdimtion.fr\u002Fblog\u002Ffalsehoods-event-driven\u002F) - Misconceptions about event driven systems and message passing.\n- [Falsehoods about Digital Object Identifiers (DOIs)](https:\u002F\u002Fpardalotus.tech\u002Fposts\u002F2024-10-02-falsehoods-programmers-believe-about-dois\u002F) - False conceptions about the identifiers that are used to identify and link research outputs (and a lot of other things).\n- [Falsehoods about CVE](https:\u002F\u002Fmedium.com\u002F@jonathan.leitschuh\u002Ffalsehoods-people-believe-about-cves-85c1d063ffda) - CVE ≠ vulnerability (and 36 other confusions).\n\n## Transportation\n\n- [Falsehoods about Aviation](https:\u002F\u002Fflightaware.engineering\u002Ffalsehoods-programmers-believe-about-aviation\u002F) - Aviation data are less normalized than you might think.\n- [Falsehoods about Airline Seat Maps](https:\u002F\u002Fduffel.com\u002Fblog\u002Ffalsehoods-about-seat-maps) - Airline seat maps are far more complex than just neat rows and columns of seats.\n- [The Maddening Mess of Airport Codes](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jfOUVYQnuhw) - Having multiple international and national agencies trying to reconcile history, practicality and logistics makes codes follow arcane rules.\n- [My name causes an issue with any booking!](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20250528134345\u002Fhttps:\u002F\u002Ftravel.stackexchange.com\u002Fquestions\u002F149323\u002Fmy-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.\n\n## Typography\n\n- [Falsehoods about Fonts](https:\u002F\u002Fgithub.com\u002FRoelN\u002FFont-Falsehoods) - Assumptions about typography on the web and in desktop applications.\n- [Truths programmers should know about case](https:\u002F\u002Fwww.b-list.org\u002Fweblog\u002F2018\u002Fnov\u002F26\u002Fcase\u002F) - A complete reverse of the falsehoods format, on the topic of case (as in uppercase and lowercase text).\n\n## Video Games\n\n- [The Door Problem](https:\u002F\u002Flizengland.com\u002Fblog\u002F2014\u002F04\u002Fthe-door-problem\u002F) - All the things you have not considered implementing for your doors in games.\n\n## Web\n\n- [Falsehoods about HTML](https:\u002F\u002Fwww.aartaka.me.eu.org\u002Ffalsehoods-html) - “Web is beautiful. Web is ugly. Web is astonishing. A part of this appeal is HTML, with its historical quirks.”\n- [Falsehoods about REST APIs](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20201112010147\u002Fhttp:\u002F\u002Fslinkp.com\u002Ffalsehoods-programmers-believe-about-apis.html) - Pitfalls to be mindful of when creating and documenting APIs.\n- [URLs: It's complicated…](https:\u002F\u002Fwww.netmeister.org\u002Fblog\u002Furls.html) - There's a lot of components in an URL, and all have their own logic.\n- [The Hidden Complexity of Downloading Favicons, Told in 15+ Edge Cases](https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20230604033340\u002Fhttps:\u002F\u002Fwww.simplecto.com\u002Fcomplexity-downloading-favicons-told-in-15-plus-edge-cases\u002F) - 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.\n\n## Contributing\n\nYour contributions are always welcome! Please take a look at the [contribution guidelines](https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood\u002Fblob\u002Fmain\u002F.github\u002Fcontributing.md) first.\n\n## Footnotes\n\nThis list gathered some popularity in social medias over the past few years. See it being [discussed and mentioned elsewhere](https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fkdeldycke\u002Fblob\u002Fmain\u002Fin-the-media.md).\n\nThe [header image](https:\u002F\u002Fgithub.com\u002Fkdeldycke\u002Fawesome-falsehood\u002Fblob\u002Fmain\u002Fassets\u002Fawesome-falsehood-header.jpg) is based on a modified [photo taken in February 2010 by Iza Bella](https:\u002F\u002Fcommons.wikimedia.org\u002Fwiki\u002FFile:BLW_Truth_and_Falsehood.jpg), distributed under a [Creative Commons BY-SA 2.0 UK license](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-sa\u002F2.0\u002Fuk\u002Fdeed.en).\n\n\u003C!--lint disable no-undefined-references-->\n\n\u003Ca name=\"intro-quote-def\">[1]\u003C\u002Fa>: [*Notebooks, 1914-1916*](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F1324090804?&linkCode=ll1&tag=kevideld-20&linkId=a1903c3fbfdc82fbe2e566fca40718fb&language=en_US&ref_=as_li_ss_tl) (Liveright, 2022) - [source: page 14e](https:\u002F\u002Farchive.org\u002Fdetails\u002Fnotebooks191419100witt\u002Fpage\u002Fn35). [[↑]](#intro-quote-ref)\n","awesome-falsehood 是一个收集了程序员常见误解的项目。它整理了一系列开发者可能错误地认为正确的编程假设，覆盖从电子邮件格式、日期时间处理到地理信息等多个领域，并提供了这些误解背后的实际情况，帮助开发者避免常见的陷阱。该项目适合所有希望提升代码质量和可靠性的软件开发人员参考，在进行国际化、用户输入验证等场景下尤为有用。通过了解这些误区，开发者可以编写出更加健壮和适应性强的应用程序。","2026-06-11 03:38:04","high_star"]