Readit News logoReadit News
Posted by u/gnull 3 years ago
Ask HN: What's your favorite illustration in computer science?
I'm curious to see some examples of what people consider good visual illustrations of CS concepts, from both usefulness and aesthetics perspectives.
Phemist · 3 years ago
I, unfortunately, cannot find an online copy currently.

Knuth's TAOCP's latest published part, Volume 4 Fascicle 6, on Satisfiability contains a number of visualizations that really are amazing and worth just buying a copy of the book for, just to ponder over these images.

The satisfiability problem of whether there exists an assignment of boolean values that makes a given boolean formula evaluate to TRUE is, IMO, truly a fundamental problem in computer science.

Any piece of code with some inputs and outputs can be transformed into a boolean formula (albeit a huge one). This process feels akin to expressing molecules, from simple ones like H2O, to the highly complex proteins that make up much of our Cells, in their constituent atoms and more importantly the atom interactions.

Knuth (EDIT: Actually, Carsten Sinz) takes this concept one step further and produces visualizations of non-trivial boolean formulas that clearly show the regular, both symmetrical and asymmetrical, sometimes fractal-like nature of these formulas.

In my mind, these visualizations are quite powerful and strikingly show the fundamental building blocks of (digital) computation.

Eduard · 3 years ago
> Knuth takes this concept one step further and produces visualizations of non-trivial boolean formulas that clearly show the regular, both symmetrical and asymmetrical, sometimes fractal-like nature of these formulas.

The visualizations were done by Carsten Sinz.

This is his paper describing the technique:

Carsten Sinz. Visualizing SAT Instances and Runs of the DPLL Algorithm. J. Automated Reasoning, 39(2):219-243, 2007.

https://www.carstensinz.de/papers/JAR-2007-Visualization.pdf

https://doi.org/10.1007/s10817-007-9074-1

Phemist · 3 years ago
Aha! I have edited my post. Thanks for the correction! Beautiful work, looks like something I'd like to play around with as well :)
piyush_soni · 3 years ago
And that's why I love HN! (sorry for a non-contributing post).
LeonM · 3 years ago
radec · 3 years ago
Eduard · 3 years ago
PDF: https://kolegite.com/EE_library/books_and_lectures/%D0%9F%D1...

Physical pages 116-117; PDF pages 126-127.

sacnoradhq · 3 years ago
Also 4B (1st ed) pp. 300-301.

ProTip: Order the 5 vol set directly from Addison-Wesley, it's much cheaper than anywhere else.

k0k0r0 · 3 years ago
I am lucky to be paid to work on SAT. I wouldn't yet say I am an expert, yet, but it is really a pleasure to do so. Trying to improve on algorithms to solve these problems is truly humbling.

Edit: Fixed a typo.

Phemist · 3 years ago
Im jealous! To me, from the sidelines, people working on SAT are like the experimentally-focused particle physicists of computer science.
varjag · 3 years ago
The spread on page 300 (iirc) is really stunning.
LeonM · 3 years ago
Page 116/117, to be precise ;-)
puglr · 3 years ago
Wow, you weren't kidding about those images.

What I found particularly striking about them was how much they reminded me of both neurons and larger brain structures, as well as some of those newer, ML-assisted FMRI imagery.

Probably just coincidence and wishful thinking, but it instills a sense of daydream-like wonder all the same.

weswilson · 3 years ago
andrewgleave · 3 years ago
Bret Victor's interactive version of this in Dynamicland:

https://twitter.com/worrydream/status/977058412990152704

Dalewyn · 3 years ago
I pity the youngsters who will never be able to mentally playback the dialup sound.
piyush_soni · 3 years ago
I still remember the small adrenaline rush we had as soon as we would detect the tone for a successful connection.
atoav · 3 years ago
I grew up after that sound, but I can mentally play back a dialup sound purely because it is used in every second show, podcast, documentary on computers.
mertysn · 3 years ago
reminds me of two 17-year-olds attempt at using a rotary phone (2018) https://www.youtube.com/watch?v=1OADXNGnJok
matematico · 3 years ago
Same here! I played it in my mind while looking at the picture. Wow, we're so old school!
rjh29 · 3 years ago
I wonder what the equivalent sound is now?
KaiserPro · 3 years ago
The animated video that explains this is also great: https://www.youtube.com/watch?v=AgqEIp2YmtE
ramblerman · 3 years ago
On that topic. I never understood why the initiation needed to be audible, but afterwards the connection was silent.
tlb · 3 years ago
It kept the speaker on at first so you could hear if a human answered the phone, or got some network message like "all circuits are busy". It muted once it had a confirmed modem on the other end.
einr · 3 years ago
It used to be useful to me back when my ISP had 28800 bps and 33600 bps capable modems in their pool, and I had a 33600 -- I learned to hear from the handshake when I hit one of the slower modems and would then immediately hang up and try again until I got one of the fast ones ;)
Lammy · 3 years ago
You can hear all the post-handshake data sounds by adding &M2 to your modem script, or &M0 to mute the handshake too.
dahart · 3 years ago
It was pretty useful in my experience because sometimes the line you called was busy, sometimes a human answered instead of a computer, and sometimes a computer modem just didn’t pick up for whatever reason. Hearing the dial & handshake was a way to know what exactly went wrong when you weren’t able to connect. BBSs didn’t have this problem so much, but it happened often enough when modeming with friends or with small businesses that didn’t have a large modem bank and a lot of lines. Typing the wrong number was common. I also remember experimenting with robo-dialing with my childhood friends, calling through a list of numbers, like in War Games, looking for unknown computers to connect to.
jk_i_am_a_robot · 3 years ago
You could turn it on by sending the correct Hayes command before connecting. It's really annoying! And it can't be turned back off again until you disconnect.
keithnz · 3 years ago
it doesn't have to be, ATM you could turn it off, or ATL you could control how loud it was
gsich · 3 years ago
There is no need. Speakers could be disabled.
FearNotDaniel · 3 years ago
Is it just me or... does the modem audibly say "Hi" when the connection is successful? Probably just me projecting from my imagination, but listen to the part after the handshaking and before the white-noise dataflow. There's a very clear 'boing-boing' sound and then a bunch of static that sort-of sounds like someone whispering the word "Hi". It's not just on the linked recording above, I remember being conscious of this back in the day when dial-up was "normal". Just curious to know if anyone else encountered this trick of perception...

Anyway, hearing those tones again did bring back all the feels, the joy of hearing that "boing-boing-Hi" greeting as I stepped once again onto the "Information Superhighway".

bobsmooth · 3 years ago
That would make a good poster.
weswilson · 3 years ago
The author does sell it as a poster here: https://www.redbubble.com/people/windytan/works/31262230-the...

I'm actually surprised the link, company, and poster are all still valid/working 10 years later.

naavis · 3 years ago
It was actually distributed as a poster along with the 2014.2 issue of the Finnish computer culture magazine Skrolli.
niceworkbuddy · 3 years ago
Never forget :')
m4jor · 3 years ago
Eternal September
aliqot · 3 years ago
The list of linux distributions on Wikipedia: https://upload.wikimedia.org/wikipedia/commons/b/b5/Linux_Di...
themodelplumber · 3 years ago
This makes me wonder: 1) Does Wikipedia / Wiki* not have a JS pan & zoom tool for graphics like these and 2) Has no one else made something like that just for this graphic?

Asking because the graphical linux genealogy concept / this illustration have been around for a while, as have JS pan & zoom plugins, and it's totally worth having something like this in that format.[1]

Edit: OK, there is Gadget-ZoomViewer (below), but maybe it doesn't work for SVGs? I don't see the option to open ZoomViewer from the Commons image page for this image.

https://zoomviewer.toolforge.org/index.php?f=Quaternary_Geol...

https://commons.wikimedia.org/wiki/Help:Gadget-ZoomViewer

1. See "Expand" tool here: https://digitalcollections.lib.washington.edu/digital/collec...

valleyer · 3 years ago
What you're asking for should ideally be supplied by your Web browser, not by Wikipedia.
callalex · 3 years ago
Next you’re going to ask for JS scroll bars…
edarchis · 3 years ago
Yggdrasil was seriously badass, first live-CD, overlay filesystem and much more. Details and video of what was my first Linux distrib: https://retrocomputingforum.com/t/yggdrasil-first-live-linux...
aliqot · 3 years ago
It was my first as well :)
undebuggable · 3 years ago
I come back to this timeline every once in a while, the timeline of web browsers [1] is equally good.

[1] https://upload.wikimedia.org/wikipedia/commons/7/74/Timeline...

jhjjhj · 3 years ago
After looking at git commit trees for a while It seems clear to me that there is a glaring deficiency with this linux distros. No Merges!
kristopolous · 3 years ago
Does Wikipedia have diffs for the stanzas of svg xml? This is quite a bit of work. I'm sure there's many contributors
input_sh · 3 years ago
Not sure you can find diffs, but this is the repository that builds that svg in case you wanna poke around: https://github.com/FabioLolix/LinuxTimeline
computerdork · 3 years ago
This is awesome! Man, really amazing to see how linux has spawned an entire forest of different lineages. Wow!
adrianmonk · 3 years ago
I like railroad diagrams for language grammars. So much easier than just looking at production rules.

https://en.wikipedia.org/wiki/Syntax_diagram

They're used at https://json.org/, for example.

pamelafox · 3 years ago
I also love railroad diagrams! I taught them briefly as part of CS61A at Berkeley last year, when we were learning BNF/Scheme/Interpreters.

https://inst.eecs.berkeley.edu/~cs61a/sp21/assets/slides/33-...

They're used in the SQLite docs as well, where I think they're really well suited.

andrewl · 3 years ago
Agreed. I find the SQLite diagrams very helpful. They are generated with Pikchr, which itself was created by the SQLite developers I believe:

https://pikchr.org/home/doc/trunk/doc/sqlitesyntax.md

salgernon · 3 years ago
The Apple Pascal poster has a very 70s vibe: https://www.whatisepic.it/wp-content/uploads/2022/05/apple_p...
bagels · 3 years ago
It's not very useful as a technical reference. The text is so de-emphasized in comparison to the graph, it's impossible to read.
tempodox · 3 years ago
There is a generator for railroad diagrams on GitHub:

https://github.com/GuntherRademacher/rr

banana_giraffe · 3 years ago
SQLite also uses them on the website.

Bit of a discussion on how they're created here: https://wiki.tcl-lang.org/page/Generating+Syntax+Diagrams+Us...

gpderetta · 3 years ago
Ah they are called railroad diagrams, it makes sense. I first saw the in sqlite documentation [1]. Thanks for giving them a name!

[1] https://www.sqlite.org/lang_select.html

markandrewj · 3 years ago
Another place that uses this style of diagram is the original JSON spec.

https://www.json.org/json-en.html

asicsp · 3 years ago
railroad diagrams for regular expressions: https://www.debuggex.com
michaelcampbell · 3 years ago
I learned Pascal with these, which seemed to be all the rage in the 80's, or for Pascal, or the intersection of them.

SQLITE uses them now as well: https://www.sqlite.org/lang_aggfunc.html

Sophistifunk · 3 years ago
I would like to see a lot more of them in the world, as interactive tools as well as simply diagrams. I think they would make a great basis for a UI to design multi-step async processes where things can fail at any point and you want to handle different failures differently.
jackgolding · 3 years ago
Love these for finite state machines - one of my favourite topics at uni.
Hirrolot · 3 years ago
It's strange that most of the times, they just confuse me more. I'd prefer just looking at the BNF grammar...
unsafecast · 3 years ago
hienchu · 3 years ago
It's my favorite, too!
JustSomeNobody · 3 years ago
Yes, I love these!
krwck · 3 years ago
Not sure if it fits in scope, but I find this classic to be an ingenious intro to where to start from in terms of visualisation: https://bost.ocks.org/mike/algorithms/
robertlagrant · 3 years ago
Mike Bostock is a legend in computing and visualisation.
shepherdjerred · 3 years ago
This is fantastic!
sophacles · 3 years ago
I often cite this diagram: https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilte... as my favorite picture. It shows the logical flow of packets through Linux. I'm pretty sure my career would be on a very different trajectory had I not discovered an earlier version of it back in ~2006.
CurleighBraces · 3 years ago
This is great. Don't suppose you've seen anything similar for the flow when you include SR-IOV/DPKD a google didn't help.
sophacles · 3 years ago
Sadly I have not. I've been on the lookout though. I've also considered adding annotations for ebpf hooks to this one, but that turns out to be rather difficult to keep up with too.
suncore · 3 years ago
DPDK/SRIOV eats the interface so Linux kernel does not see it at all. The above diagram is kind of irrelevant as it would look like a giant bypass.
lastofthemojito · 3 years ago
Not as academic as some of the other replies, and certainly not all of them are CS-related, but Bartosz Ciechanowski's interactive web illustrations are fantastic examples of modern visuals.

Things like:

GPS: https://ciechanow.ski/gps/

Alpha Compositing: https://ciechanow.ski/alpha-compositing/

Floating Point numbers: https://ciechanow.ski/exposing-floating-point/

wlesieutre · 3 years ago
I love these, the mechanical watch post is a favorite of mine. https://ciechanow.ski/mechanical-watch/

It's the sort of interactive educational content that I always imagined computers and the internet would be amazing for, it just never panned out at a large scale.

Maybe not easy enough to create, maybe not profitable enough, who knows.

rramadass · 3 years ago
Everything by Bartosz Ciechanowski is great. Truly one of the few who understands that diagrams/animations are a crucial aid to understanding.
mrslave · 3 years ago
nkantar · 3 years ago
I love that one, and this perhaps more educational take: https://www.reddit.com/r/ProgrammerHumor/comments/pafo1v/und...

(direct) https://i.redd.it/e7ltreiv98j71.png

IMTDb · 3 years ago
So unplanned interruptions affect programmers less than planned ones ? Next time I need to talk to a dev, I'll be sure to pop to their desk unannounced rather than trying to find a suitable time beforehand then ! /s