This is probably old news to people interested in nonstandard methods of computation, but it just occurred to me that the fluid-based analogy to transistors is straightforward to construct:
S
| |
-------| |
G \/\/|##| |
-------| |
| |
D
This is essentially a pressure regulator, except that the pressure is controlled by an independent signal. Pressure in G pushes a spring-loaded piston to block flow from S to D (a slightly different construction instead allows flow when G has pressure). Modulating the pressure in G can also used to modulate the flow, based on F = -kx. This simple construction has some issues, such as the fact that the pressure needed to move the piston depends on the pressure in S-D.
Around 2004-2005 during some research at the end of my curriculum I happened to be doing with some specific jobs that were parallelised and data flowing as it was processed along a component diagram for visualisation, and it looked very familiar....
So I had this idea that you'd design code to be applied to a processing unit of specific capacity which would lead to execution flowing at a certain speed when applied a certain computation potential... and surprise surprise the relation would be uh, linear, and say you increase a loop's count and so the code would _resist_, or you'd increase computation potential to increase the flow.
So uh, yeah, Ohm's law but it's _code_ that's resistive.
And then I started to look for the pattern and find code with inductive properties, and code with capacitive properties, and some deeper properties emerged when you started modelling stuff with multiple processing units and data flowed around, split (map?), rejoined (reduce?).
And there was something strangely efficient about a way to see code that way and optimise using _laws_ describing the whole execution flow using familiar tools as a whole instead of thinking in gritty details barely higher-level than MOV AX... you "just" had to design code and the execution system so that it would operate in this kind of framework and allow that kind of analysis to identify bottlenecks and weird interplay actions across components.
And then I brought that up to my mentor and he said "well that's complete lunacy, stop thinking about that and focus on your current work" and, uh, case closed.
That was the young and naive me who thought that research labs were made to do think-outside-the-box connect-the-dots innovative stuff...
I've used /dev/null for exactly this purpose. I have output that needs to go somewhere, and I don't want to worry about whether that somewhere can handle it.
Later on in deployment, it will go somewhere else. Somewhere that has been evaluated for being able to handle it.
In that way, /dev/null is to storage what `true` is to execution - it just works.
Enterprise DBAs will nevertheless provision separate /dev/null0 and /dev/null1 devices due to corporate policy. In the event of an outage, the symlink from null will be updated manually following an approved run book. Please note that this runbook must be revalidated annually as part of the sarbox audit, without which the null device is no longer authorised for production use and must be deleted
Best of all, /dev/null is also serializable (but not strict serializable) under many academic and textbook definitions.
Specifically, these definitions require that transactions appear to execute in some serial order, and place no constraints on that serial order. So the database can issue all reads at time zero, returning empty results, and all writes at the time they happen (because who the hell cares?).
You can dismiss it as a triviality, but in CS it's always worth considering (what you assume to be) an "identity" value, and its edge cases. Does your DSP algorithm work with near-zero values as well as it does with "true" zero?
I saw a MongoDb implementation on Github awhile ago that was a wrapper around /dev/null. The thesis was if you're using MongoDb, you probably didn't weren't planning on querying anything later anyway.
One question though, if for some reason a poorely designed app discards data through /dev/null, is it tamper proof? Meaning can any other process or user access that information? (In runtime)
I think it is possible for a process with root to delete the existing /dev/null and replace it with a normal file (likely to produce system instability) or a new character device (could probably be mostly transparent to anyone who didn’t know where to look for it storing its data), in which case anything sent to it could be captured.
/dev/null is globally redundant across almost every *nix-ish system in operation. Just reinstall your software on whatever is convenient and all the same data will be there.
The term is correct. Grammatically, we would say, "I love vacuous truths", or, "I love vacuously true statements". (To my ear the second version sounds very slightly more appropriate, because in mathematics "vacuously true" is a bit of a set phrase, but both are fine.)
I understand this is supposed to be satire, but IMHO a well-executed joke should still be well-written and easy to follow. This "<statement> unless <condition>" is just terrible to read, and I can't even tell if FFI is necessary here, or a part of the joke. Funny not funny.
You say it is always empty, but. I have seen weird issues coming from /dev/null not actually being empty but being a file or symlink (dont remember) With garbage data.
W just need R&D money to solve reading back from it, but that's just a matter of time we can definitely solve it in a year or two.
This tech is just around the corner I promise, then we will be first to the market and all the big tech companies will want to buy us out, imagine how much we can earn.
And the production of articles is about right too.
. "Hello World" - The start of something great. [Dec 2024]
. "Comparison is the Thief of Joy" - Link to another article. [Apr 2025]
. "/dev/null is an ACID compliant database" - Funny, insightful. [Aug 2025]
/dev/null is not a database. By this logic is a hard disk a database, is a CD a database. No. They are storage mediums. You could store a database on them, but they themselves are not a database.
Considering there is no way to read back data written to /dev/null it will not be useful for storing database data.
jihadjihad|4 months ago
https://www.linusakesson.net/programming/pipelogic/index.php
Past HN post: https://news.ycombinator.com/item?id=15363029
wging|4 months ago
Sharlin|4 months ago
66yatman|3 months ago
dang|4 months ago
Pipe Logic (2011) - https://news.ycombinator.com/item?id=17040762 - May 2018 (18 comments)
Pipe Logic – Simulating circuits in the Unix shell (2011) - https://news.ycombinator.com/item?id=15363029 - Sept 2017 (10 comments)
/dev/zero has infinite electrons and /dev/null has an infinite appetite for them - https://news.ycombinator.com/item?id=4063459 - June 2012 (23 comments)
lloeki|4 months ago
So I had this idea that you'd design code to be applied to a processing unit of specific capacity which would lead to execution flowing at a certain speed when applied a certain computation potential... and surprise surprise the relation would be uh, linear, and say you increase a loop's count and so the code would _resist_, or you'd increase computation potential to increase the flow.
So uh, yeah, Ohm's law but it's _code_ that's resistive.
And then I started to look for the pattern and find code with inductive properties, and code with capacitive properties, and some deeper properties emerged when you started modelling stuff with multiple processing units and data flowed around, split (map?), rejoined (reduce?).
And there was something strangely efficient about a way to see code that way and optimise using _laws_ describing the whole execution flow using familiar tools as a whole instead of thinking in gritty details barely higher-level than MOV AX... you "just" had to design code and the execution system so that it would operate in this kind of framework and allow that kind of analysis to identify bottlenecks and weird interplay actions across components.
And then I brought that up to my mentor and he said "well that's complete lunacy, stop thinking about that and focus on your current work" and, uh, case closed.
That was the young and naive me who thought that research labs were made to do think-outside-the-box connect-the-dots innovative stuff...
stefanfisk|4 months ago
jmux|4 months ago
gchamonlive|4 months ago
nomel|4 months ago
hylaride|4 months ago
quietbritishjim|4 months ago
glenneroo|4 months ago
philipwhiuk|4 months ago
bravetraveler|4 months ago
pyuser583|4 months ago
Later on in deployment, it will go somewhere else. Somewhere that has been evaluated for being able to handle it.
In that way, /dev/null is to storage what `true` is to execution - it just works.
CaptainOfCoit|4 months ago
seanhunter|4 months ago
cluckindan|4 months ago
Truly, it is the only database which can be scaled to unlimited nodes and remain fully CAP.
inopinatus|4 months ago
eru|4 months ago
thfuran|4 months ago
ozim|4 months ago
I am putting my marketing hat on right now.
tgma|4 months ago
geoffbp|4 months ago
mjb|4 months ago
Specifically, these definitions require that transactions appear to execute in some serial order, and place no constraints on that serial order. So the database can issue all reads at time zero, returning empty results, and all writes at the time they happen (because who the hell cares?).
The lesson? Demand real-time guarantees.
mjb|4 months ago
magicalhippo|4 months ago
That /dev/null is ACID compliant is the trivial solution of databases.
Still, a jolly good read, and a nice reminder that concepts like ACID don't exist in a vaccuum.
[1]: https://en.wikipedia.org/wiki/Triviality_(mathematics)#Trivi...
rollcat|4 months ago
(hint: look up subnormal floats.)
yupyupyups|4 months ago
Except if it's in /dev/null?
tech234a|4 months ago
Discussed on HN a few times, but apparently not for a few years now: https://hn.algolia.com/?q=http%3A%2F%2Fwww.supersimplestorag...
rezonant|4 months ago
epistasis|4 months ago
pasteldream|4 months ago
butteredpecan|4 months ago
jefftk|4 months ago
mpyne|4 months ago
vlowther|4 months ago
exabrial|4 months ago
dd_xplore|4 months ago
dragonwriter|4 months ago
unknown|4 months ago
[deleted]
simultsop|4 months ago
Is it portable to all linux distros?
Where is the ubuntu command to install it?
What license does it use, is it free or else?
Is it really open source or source only?
xandrius|4 months ago
The DB at cloud scale
hmokiguess|4 months ago
imcritic|4 months ago
tadfisher|4 months ago
wolrah|4 months ago
mpyne|4 months ago
brunoborges|4 months ago
Durability in ACID is about the durability of the data that is sent to the database (in this ironic post, /dev/null) once committed.
"[...] completed transactions (or their effects) are recorded [...]"
But I will give it that ACI do make sense!
#PedanticMode
PTOB|4 months ago
1. Nothing stored in /dev/null is durable. 2. Nothing is stored in /dev/null. 3. Ergo, /dev/null exhibits durability.
Thank you, I'll take my check at the door.
theandrewbailey|4 months ago
phendrenad2|4 months ago
https://en.wikipedia.org/wiki/Write-only_memory_(joke)
See the datasheet also, I especially like the "insertions vs number of remaining pins" chart:
https://web.archive.org/web/20120316141638/http://www.nation...
qwm|4 months ago
hshdhdhehd|4 months ago
schonfinkel|4 months ago
yard2010|4 months ago
All the people I've met in London were androids.
tczMUFlmoNk|4 months ago
1970-01-01|4 months ago
bitwize|4 months ago
unknown|4 months ago
[deleted]
torcete|4 months ago
https://en.wikipedia.org/wiki/Write-only_memory_(joke)
idontwantthis|4 months ago
‘return 5’
raggi|4 months ago
rollcat|4 months ago
jjrr1018|4 months ago
novoreorx|4 months ago
sevg|4 months ago
You’re right, we should ban jokes that aren’t 100% correct!
gunalx|4 months ago
yuppiemephisto|4 months ago
HackerThemAll|4 months ago
dzogchen|4 months ago
sph|4 months ago
ozim|4 months ago
This tech is just around the corner I promise, then we will be first to the market and all the big tech companies will want to buy us out, imagine how much we can earn.
/s
torcete|4 months ago
keithnz|4 months ago
dheera|4 months ago
taftster|4 months ago
https://jyu.dev/blog/
And the production of articles is about right too.
That read about like my blog 20 years ago.Funny post though, good read!
unknown|4 months ago
[deleted]
DeathArrow|4 months ago
unknown|4 months ago
[deleted]
johnfn|4 months ago
_joel|4 months ago
BiraIgnacio|4 months ago
layer8|4 months ago
munchlax|4 months ago
zdw|4 months ago
justinhj|4 months ago
amai|4 months ago
taftster|4 months ago
doublerabbit|4 months ago
jibbolo|4 months ago
tonyhart7|4 months ago
unknown|4 months ago
[deleted]
devnulled|4 months ago
senfiaj|4 months ago
luckystarr|4 months ago
Perz1val|4 months ago
Western0|4 months ago
blourvim|4 months ago
ramon156|4 months ago
> entreprise
shutupnerd003|4 months ago
[deleted]
QuiCasseRien|4 months ago
best post of the week ^^
charcircuit|4 months ago
Considering there is no way to read back data written to /dev/null it will not be useful for storing database data.
jonathrg|4 months ago
unknown|4 months ago
[deleted]
chrisweekly|4 months ago
unknown|4 months ago
[deleted]
sevg|4 months ago
[deleted]