Technology
Discover facts about technology. Small discoveries that change the way you see familiar things.
Technology

How one NaN can ruin every calculation after it
The zombie virus of software engineering. Once a single NaN gets calculated in a long chain of mathematical operations, it immediately turns every subsequent…
Discover more![Why [] + [] becomes an empty string](https://cdn.stackyfacts.com/images/d1aa02bf-a013-4e2f-8dcf-21df6e97df10_back.jpg)
Why [] + [] becomes an empty string
Because adding nothing to nothing should obviously equal an empty string. When you force JavaScript to evaluate '[] + []', it panics, converts both empty…
Discover more
Why computers need a negative zero
For those times when absolute nothingness feels a bit too positive. The IEEE 754 standard for binary math requires negative zero to be a distinct value from…
Discover more
Why JSON has no comments
Silence is golden, mostly because it's enforced. The creator of JSON intentionally removed the ability to add code comments because developers kept using them…
Discover more
JavaScript still calls null an object
Ah, the beauty of legacy code that can never be fixed. Due to a rushed implementation in the early days of JavaScript, checking the type of an absolutely…
Discover more
Mutex locks force multi-threaded code into single lanes
Congratulations on building a multi-lane highway, now everyone must merge into one lane. Mutexes prevent data corruption by physically stopping parallel…
Discover moreA bigger world.
One discovery
at a time.
Keep discovering with Stacky. Interesting facts in an app that is always within reach.

Garbage collection pauses all execution to clean variables
The digital equivalent of freezing time to take out the trash. Languages like Java automatically manage memory, but to do so safely, they literally pause your…
Discover more
Zalgo text exploits Unicode combining character limits
How to visually break the screen using perfectly valid text. By layering dozens of invisible accent marks on a single letter, developers can force text to…
Discover more
A bad regular expression can freeze an entire app
Write one bad search pattern and watch your processor burst into flames. If a complex regular expression gets confused, it can enter a loop of guessing and…
Discover more
Python forcefully limits recursion depth to one thousand
Because the interpreter doesn't trust you to not blow up your own computer. If a Python function calls itself more than a thousand times, the system abruptly…
Discover more
Two identical A's can mean different things to a computer
An absolute nightmare for string validation. The letter 'A' in the Latin alphabet looks exactly like the Cyrillic letter 'A', but they possess completely…
Discover more
Basic ASCII formatting supports exactly 128 characters
Because seven bits of memory was supposedly all humanity would ever need. The original character encoding standard stubbornly refused to acknowledge accents,…
Discover more
That tax form could technically run Doom
That boring tax form you just downloaded is technically capable of running Doom. PDF files support such complex internal logic and scripting that they…
Discover more
A font file can run computer code
Your letters are doing a lot more thinking than you are. The TrueType font format includes its own bytecode instruction set to handle pixel rendering, which…
Discover more
Someone built a computer out of presentation slides
Forget Python, real engineers code in slide transitions. By chaining together specific hyperlinked shapes and auto-triggering animations, you can technically…
Discover more
The algorithm that sorts numbers by letting them sleep
Why do math when you can just take a nap? This unhinged algorithm sorts numbers by assigning each one a sleeper thread that pauses for that number of seconds,…
Discover more
C++ include is basically copy and paste
Sophisticated modern programming is basically just a giant copy-paste operation. When you use an include statement in C++, the compiler literally just dumps…
Discover more
The programming language you can barely see
The ultimate camouflage for malicious logic. In the Whitespace programming language, all letters and numbers are treated as irrelevant comments, while the…
Discover more
Windows line endings cause Unix terminal scripts to crash
The invisible war of the return key. Windows saves text files with a carriage return and a line feed, while Unix uses just a line feed, meaning copying a…
Discover more
Why Windows rejects folders named CON
Imagine your modern desktop machine being scared of a three-letter word. Since the days of command-line computing, naming a folder 'CON', 'PRN', or 'NUL' is…
Discover more
Multi-threaded deadlocks freeze applications indefinitely
The digital equivalent of two polite people refusing to walk through a door first. When Thread A waits for a resource held by Thread B, and Thread B waits for…
Discover more![C arrays allow reversed bracket notation like 5[a]](https://cdn.stackyfacts.com/images/8d1cb281-004c-4034-beec-f92b007ea3e7_back.jpg)
C arrays allow reversed bracket notation like 5[a]
Just in case you wanted your code to look like a ransom note. Because C treats array indexing as simple pointer addition, 'a[5]' and '5[a]' compile to the…
Discover more
GOTO statements actively generate untrackable spaghetti code
The time machine of execution logic that nobody asked for. Hard-jumping the execution processor to an entirely different line of code completely shatters the…
Discover more
The invisible spaces that can break your code
The phantom menace of copy-pasting. Sometimes text copied from a document includes invisible formatting spaces that completely shatter a compiler's syntax…
Discover more