Introduction
In Cromulent Words and More Cromulent Words, I collected curious, oddly-specific, and strangely useful terms from computing, philosophy, and beyond.
This third entry dives into logic, skepticism, and the scale of the unimaginably large (and small) — with even more cromulent words for your mental toolkit.

Big, Small & Silly Numbers
(From yottabytes to googolplexes, Planck lengths to femtoseconds — the units that stretch your brain from the cosmic to the subatomic.)
We’ve all seen charts like this one that help us to understand the extremely large (and small) numbers that are everywhere in computer science.
Prefix | Symbol | Factor | Power of 10 | Examples |
---|---|---|---|---|
Femto | f | Quadrillionth | 10⁻¹⁵ | Femtosecond: electron hops ~0.3 mm |
Pico | p | Trillionth | 10⁻¹² | Picosecond: light travels 0.3 mm |
Nano | n | Billionth | 10⁻⁹ | 1 nanometer: DNA’s double helix is ~2 nm wide |
Micro | μ | Millionth | 10⁻⁶ | Microsecond: a camera flash cycle |
Milli | m | Thousandth | 10⁻³ | Millisecond: hummingbird wingbeat |
Kilo | k | Thousand | 10³ | Kilometer: ~0.62 miles |
Mega | M | Million | 10⁶ | Megabyte: small image file |
Giga | G | Billion | 10⁹ | Gigabyte: HD movie |
Tera | T | Trillion | 10¹² | Teraflop: PlayStation 5’s raw compute power (~10 TF) |
Peta | P | Quadrillion | 10¹⁵ | Petabyte: 1,000 large hard drives |
Exa | E | Quintillion | 10¹⁸ | Exabyte: big-data center scale |
Zetta | Z | Sextillion | 10²¹ | Zettabyte: roughly, all internet data (mid-2020s) |
Yotta | Y | Septillion | 10²⁴ | Yottagram: weight of all Earth’s oceans (~1.4 Yg) |
I recently started collecting ZIM archives after an annoying power outage reminded me of the Texas Winter Storm of ’21 — when electricity and cellular data were down for days during an emergency. What began as a “just in case” thought experiment turned into a fun way to repurpose a big thumb drive I already had lying around into a surprisingly powerful offline library.
Check out: my Upgrade Your Junk Drawer post for the details!
During my research, I stumbled across the excellent Wikipedia:Database download page. It’s one of my favorite write-ups on SI units, file sizes, and filesystem limits ever — unexpectedly funny, deeply nerdy, and endlessly useful.
I’m now tempted to make the yottabyte my “default” storage unit.
That 10 TB hard drive on my desk? A staggering 0.00000000001 yottabytes. At this rate, I’d only need to buy about 100 billion more 10 TB drives to hit a full yottabyte. Maybe they’ll go on sale.
Now, if you really want to push your brain past the comfortable limits of prefixes, consider the Planck length — about 1.6 × 10⁻³⁵ meters.
It’s so small that if a proton were scaled up to the size of the observable universe, a Planck length would still be smaller than a tree in your backyard.
Physicists often treat it as the smallest meaningful unit of length, below which our current theories of space and time stop making sense.
Did You Know? The SI prefixes above yotta were extended in 2022:
- ronna (10²⁷)
- quetta (10³⁰)
In this scale, Earth’s mass is about 6 ronnagrams (Rg), while Jupiter weighs in at roughly 1.9 quettagrams (Qg)—making it over 300 times more massive than Earth.
A googolplex is written as: $10^{10^{100}}$
That’s a 1 followed by a googol of zeros (a googol itself being $10^{100}$).
For comparison: the estimated number of particles in the observable universe is “only” about $10^{80}$.

Computer Science Lore
(From background spirits to stampeding processes, packet-capture mantras to mythical config files — the stories and slang that make up sysadmin folklore)
-
Daemon
In UNIX, a daemon is simply a program that runs quietly in the background. The name comes from James Clerk Maxwell’s demon in physics — a thought-experiment creature that sorts atoms without expending energy — repurposed to mean “helpful background spirit.”
To program a true daemon the old-school UNIX way, you follow a ritual of sorts:
- Fork – The process calls
fork()
, creating a child and letting the parent exit. This detaches it from the invoking shell’s process group. - setsid() – The child starts a new session, becoming the session leader and cutting ties to any controlling terminal.
- Fork again (optional but traditional) – Prevents the daemon from ever re-acquiring a terminal.
- Change working directory – Usually to
/
so it won’t block filesystem unmounts. - Set umask – Define default file permissions, often
umask(0)
so the daemon can set its own. - Redirect file descriptors – Close
stdin
,stdout
, andstderr
, reopening them to/dev/null
— or to log files.
“The friendly face of BSD — a nod to UNIX background processes.”
Original Beastie art © Phil Foglio / John Lasseter, drawn for BSD manuals in the early 1980s. - Fork – The process calls
-
Hysteresis
When a system’s state depends not just on current inputs, but also on its history — a kind of “memory” effect that prevents rapid flapping between states.
In hardware: a thermostat set to 72°F might turn on heat at 70°F and off at 74°F, avoiding constant toggling. In ops: a load balancer might only mark a node healthy after three consecutive passing checks, even if the first one passes.
That gap between “on” and “off” is hysteresis — stability’s best friend, but also the reason your thermostat ignores you for five awkward minutes
-
Thundering Herd
In systems programming, the thundering herd problem happens when multiple processes or threads are all waiting for the same event, and they all wake up at once when it occurs.
Instead of one lucky process getting the job, they all rush in — wasting CPU cycles, clogging I/O, and often making performance worse than if they’d just queued politely.
Imagine a hundred worker processes all calling
accept()
on the same listening socket. A single client connects. All hundred wake up, but only one actually gets the connection. The other 99 trip over each other, go back to sleep, and waste precious cycles in the process. This is one of the many challenges of concurrent programming
Common causes:
- Poorly coordinated socket or file descriptor polling.
- Overuse of blocking calls without proper locking.
- Naïve use of
select()
/poll()
with shared resources.
-
Bit rot
The slow, silent decay of digital data over time. Sometimes literal — cosmic rays flipping bits on old disks, fading charge in flash memory cells — and sometimes metaphorical: neglected codebases that still run, but drift out of compatibility with modern systems.
In storage: uncorrected read errors on an old backup tape. In software: that internal tool last touched in 2017 that now needs half a dozen deprecated dependencies replaced before it will even compile.
Moral of the story: a backup you never test is just a decorative brick, and unrun code is compost with delusions of grandeur.
.webp.jpg)
Photo by Marsyas – Own work, CC BY-SA 3.0, via Wikimedia Commons.
-
pcaps or it didn’t happen
a play on the common Internet phrase, demanding evidence to back up an extraordinary claim. In networking, this is frequently in the form of a pcap or network capture.
You can capture a pcap of your favorite network traffic with something like:
sudo tcpdump -i eth0 -s 0 -w capture.pcap
In fact, a really good practice for folks who have to support a server product is to capture pcaps of normal traffic so you have a point of comparison when things go wrong. I keep a pcap zoo with all kinds of traffic for just that reason. Also, tcpdump is a great command to use with customers or end users who will often not have wireshark or network monitor. It makes it easy to have them run tcpdump and send you the capture for detailed analysis.
Did You Know? You can capture network traffic from a connected iOS device with two commands:
rvictl -s $(system_profiler SPUSBDataType | awk -F': ' '/Serial Number/{print $2; exit}')
How it works:
-
system_profiler SPUSBDataType
— lists connected USB devices, including iOS devices. -
awk -F': ' '/Serial Number/{print $2; exit}'
— finds the first serial number (the UDID for iOS). -
rvictl -s <UDID>
— starts an RVI for that device.
Once that is running, you’ll see a new interface (
rvi0
) inifconfig
, and you capture from it with:sudo tcpdump -i rvi0 -s 0 -w ios-capture.pcap
-
-
TTY (Teletypewriter)
Before modern computers, a “terminal” was a clattering, electro-mechanical beast that printed your computers output on paper in response to commands you typed in which were also echoed to paper. The name stuck—in UNIX and Linux,
tty
still refers to a terminal device. You’ll see it in commands liketty # /dev/ttys001
-
Bells: Instead of a pop-up notification, the system could get the operators attention bt making the teletype ding with the BEL control code (
^G
or ASCII 7). That tradition lives on — tryecho -e "\a"
in a terminal. -
Carriage Returns: The
CR
andLF
you hear about in text encoding? On a teletype,CR
literally moved the print head back to the start of the line, whileLF
advanced the paper up one line. That’s why Windows still uses CR+LF as line endings — it’s pure teletype legacy. -
Virtual TTYs (vttys): Modern systems emulate multiple terminals in software — you can switch between them with
Ctrl+Alt+F1
throughF6
on many Linux distros. They’re ghosts of teletypes past, living inside your GPU.
-

Pictured: Ken Thompson and Dennis Ritchie
-
Cargo Cult Programming
Following procedures or copying code/configs without understanding why they work, just because “it worked someplace else”
First step is to read about Cargo Cults, if you haven’t heard about them—they are a truly fascinating phenomenon that still exists today. BBC - Vanuatu cargo cult marks 50 years .
Did You Know? Richard Feynman referred to research that imitates the form of science without its rigor as Cargo Cult Science.
A great example of this in Computer Science might be found in teams who bounce the server at any sign of trouble or keep an ancient iptables setup that a former employee configured that has always worked but isn’t well understood. Perhaps the elders speak of a prophecy in which the one called Trevor will return and refactor the code! Cargo Cult Thinking rears it’s ugly head in many situations.
The Scientific Method for Sysadmins
Too often, we guess. We reboot the box, tweak a config, or apply the “fix” we saw in a forum post from 2013 — and when it works, we don’t always know why. That’s survivable when you’re debugging your own laptop, but dangerous when you’re responsible for production systems or complex networks.
The scientific method gives you a framework: observe, hypothesize, predict, test, and analyze. By running your troubleshooting like a controlled experiment — changing one variable at a time, documenting every step — you turn panic into process. And process means problems get solved faster, fixes stick longer, and you can explain your reasoning to anyone from your junior teammate to your most skeptical CTO.
In short: the scientific method turns “have you tried turning it off and on again?” into “here’s the evidence, here’s the cause, and here’s how we’re preventing it next time.”
Here’s the lab method, translated for ops—so we stop guessing and start knowing:
1) Observe
Gather facts, not impressions: logs, metrics, tcpdump
/pcaps, repro steps, timestamps, versions.
2) Question
What exactly is failing? Scope it: which host, which users, which path, since when? did it ever work? just one machine or many? on network or off?
3) Hypothesize (must be falsifiable)
Because X, therefore Y fails.
Examples: “NPM health checks time out because upstream container OOM‑kills.”
“TLS handshake fails because SAN doesn’t include hostname.”
4) Predict
If the hypothesis is right, then a specific observation should follow.
Examples: “Raising memory limit stops OOM kills.” “openssl s_client
shows SAN mismatch.”
5) Test (change one variable)
Create a minimal, reversible experiment; log everything you change.
6) Analyze
Did results match the prediction? If yes, increase confidence. If no, discard or refine.
7) Document & Decide
Record cause, fix, and rollback. Automate guardrails (alerts, dashboards, runbooks).
Scientific Method Flowchart
This is the essence of troubleshooting, especially at an engineering level.
flowchart TD A["Observe & Collect Evidence"] --> B["Form Hypothesis (falsifiable)"] B --> C["Predict Observable Outcome"] C --> D["Design Minimal Test (one variable)"] D --> E["Run Test & Measure"] E --> F{"Prediction matched?"} F -- Yes --> G["Increase confidence"] G --> H["Implement Fix / Prevent Recurrence"] F -- No --> I["Revise Hypothesis"] I --> C H --> J["Document: notes, runbook, alerts"] J --> K["Monitor for Regression"]
A few bonus concepts:
• Occam’s Razor
The simplest explanation is usually correct.
In troubleshooting: before you blame cosmic rays, check the power cable.
• Hanlon’s Razor
Never attribute to malice that which can be adequately explained by stupidity.
• Trust but Verify
A Russian proverb — doveryai, no proveryai (доверяй, но проверяй) — popularized by Ronald Reagan.
Completely apropos in the ops and support world.
• Confirmation Bias
The tendency to notice, remember, and favor evidence that supports what you already believe.
In troubleshooting: you’re convinced the new firewall rule is the problem, so you only look at logs that show blocked packets — ignoring that the actual cause was a DNS misconfig.
Guardrail: actively seek disconfirming evidence before declaring victory.
• Post Hoc Fallacy (Post hoc ergo propter hoc)
Latin for “after this, therefore because of this.” Mistaking sequence for causation.
“We deployed at 2 PM, and the outage happened at 2:10 PM, so the deploy must have caused it.”
Reality: correlation ≠ causation. Check logs and metrics before assuming cause.
• Sunk Cost Fallacy
Continuing a failing approach because you’ve already invested time, money, or effort in it.
You’ve spent 6 hours debugging a flaky script that could be rewritten from scratch in 45 minutes — but you “don’t want to waste the work you’ve already done.”
Linguistics Corner
(From sound-alike shenanigans to meaning-swapping tricks — the word relationships that make language fun, precise, and occasionally treacherous.)
Semantic relationships
-
Heteronyms — Words spelled the same but pronounced differently, with different meanings.
“Bass” (the fish) vs. “bass” (low-frequency sound).
-
Synonyms — Words with the same or nearly the same meaning.
“Error” and “fault” — although in engineering, one might be upstream of the other.
-
Antonyms — Words with opposite meanings.
“Start” vs. “stop,” “online” vs. “offline.”
-
Homophones — Words that sound the same but have different meanings, often spelled differently.
“Write” vs. “right,” “byte” vs. “bite.”
-
Homonyms — A broader category where two words share the same spelling or the same sound, but have different meanings.
“Bat” (the animal) vs. “bat” (baseball equipment).
-
Metonyms — When something is referred to not by its own name, but by something closely related.
“The crown” for a monarchy, “the White House” for the U.S. presidency, “silicon” for the tech industry.”
If you haven’t seen it, Weird Al’s Word Crimes is a hilarious three-minute grammar masterclass.
So, one of my biggest pet peeves, when it comes to language, is the misuse of the following:
Countable vs. Uncountable Nouns
Countable nouns are things you can count in discrete units (servers, packets, features).
Uncountable nouns (aka mass nouns) are measured in amount or volume (bandwidth, patience, downtime).
-
Fewer → countable
Fewer servers, fewer packets, fewer outages
-
Many → countable (positive form)
Many features, many logins, many CPUs
-
Less → uncountable
Less downtime, less bandwidth, less patience
-
More → works for both
More CPUs, more storage, more uptime
-
Much → uncountable, often in questions/negatives
How much RAM?, Not much traffic today
Why it matters:
- Using fewer when you mean less is like calling a petabyte a “kilobyte” — most people won’t care, but some will twitch.
- Sometimes meaning changes: “fewer permissions” (number of actions) vs. “less permission” (overall authority).
(Bonus tip: “10 items or less” signs are technically “wrong” — prescriptivists hate them, descriptivists shrug.)
Miscellany
“No amount of genius can overcome a preoccupation with detail”
-
Droste Effect
The visual recursion where an image contains a smaller version of itself, which contains an even smaller version, and so on. Named after the 1904 Droste cocoa tin design — a nurse carrying a tray with a cup and the same cocoa tin, endlessly repeating.
In computing, you see Droste all over: VNC into a machine that’s VNC’d into the same machine, fractals, or the classic desktop screenshot set as the wallpaper, creating an infinite hallway effect.
-
Water-Powered Computers
Before supercomputers, before punch cards — some problems were solved by literally plumbing the math. Hydraulic analog computers used water levels, flows, and pressures to model complex systems, often in real time.
In the USSR, massive “water integrators” modeled economic and industrial processes; in the U.S., sprawling tabletop models of the San Francisco Bay used pumps, channels, and dye to simulate tides, shipping routes, and pollution spread.
They weren’t general-purpose machines, but for their niche, they beat any slide rule. Plus, debugging often meant getting your shoes wet.
the Phillips Machine or MONIAC (Monetary National Income Analogue Computer)
By Tiia Monto - Own work, [CC BY-SA 3.0]US Army Corps of Engineers Bay Model
a working hydraulic, scale model of San Francisco Bay
- Apophenia
Seeing patterns in random noise—a human brain specialty (is it suspicious that I specified huuu-mon brains?)
Server down? Users angry? That one LED is blinking faster than normal. Your brain will connect them into a neat conspiracy board with red string and a picture of the intern.
- Pareidolia
A specific type of apophenia — seeing familiar shapes or patterns where none exist, often faces.
You glance at a server rack and swear one of the vent holes is smiling at you. Or you see a “ghost” in a heatmap when it’s really just Tuesday’s backup job.
Fun fact: the “man in the moon” and “face on Mars” are both classic pareidolia moments.
Logic Symbols & Notation
(The tiny glyphs that make reasoning compact, precise, and way more fun to scribble in meeting notes.)
-
∴
— Therefore
Marks a conclusion drawn from previous statements.Error only happens after deploy, ∴ deploy introduced the bug.
-
∀
— For all (Universal Quantifier)
Means “for every member of the set, the statement is true.”∀ servers in the cluster, uptime > 99.9%.
-
∃
— There exists (Existential Quantifier)
Means “there’s at least one case where this is true.”∃ packet with DF bit set causing fragmentation issues.
-
¬
— Not / Negation
Reverses truth value.¬healthy
container after config push. -
⇒
— Implies
If the first statement is true, the second must be true.Memory leak ⇒ eventual OOM kill.
-
⇔
— If and only if (Iff)
Both statements imply each other — equivalence.TLS cert valid ⇔ SAN matches hostname.
-
⊕
— Exclusive OR (XOR)
True if exactly one, but not both, statements are true.Either DNS is wrong ⊕ the app config is wrong.
Conclusion
“Logic is a systematic method of coming to the wrong conclusion with confidence.”
Words (and symbols) are tools — sometimes scalpels, sometimes sledgehammers. The right one, at the right moment, can cut through baloney, name a strange pattern, or give scale to the incomprehensible. That’s what keeps me coming back for “just one more” cromulent entry.
Got a candidate for Volume 4?
feedback@adminjitsu.com