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.
> 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.
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.
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.
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".
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/
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.
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.
Recently he had done a video about convolution. And his videos about neural networks are pretty good. He has recommendation video for other good channels too.
My favorite artistic illustration is probably Jorge Stolfi's drawing inspired by the self-adjusting splay tree data structure of Sleator and Tarjan:
https://www.link.cs.cmu.edu/splay/tree5.jpg
I don't remember the original source of this image but it's a comical take on the SDLC, showing how different roles / teams understand what the customer wanted versus needed when building a tree swing:
Interesting that what operations supposedly installed was closest to what was actually needed, and only an additional binding away from a complete solution.
This is exactly what I thought of coming into this post! I think I actually saw this first nearly 20 years ago and boy oh boy things don't change much (or should I say, people don't change much)
"The 1981 book School, Work and Play (World of Tomorrow) features this beautiful two-page spread. Apparently, thanks to computers, there's no crime in the future outside of the computerized variety. The "computer criminal" pictured really doesn't appear to be running very fast. Maybe they're playing a game of freeze-tag. Or maybe that policeman's gun has special settings the author didn't tell us about. I like to believe the former, but that's just me."
The book is full of really cool images like that one of "The Future" as seen from '81
Concerning the public key cryptography for the exchange of private encrypted messages, I would have rather represented the shared public keys by padlocks, and the private key by the key allowing to open the padlocks. This way, it is easier to understand that there is a relationship between the two keys. In his drawing, 2 different keys can open the safe door, which is not possible in the physical world...
In Networking, two illustrations of congestion control are just fantastic IMO.
First one is [1], by Chiu and Jain (page 7, figure 5), showing that Additive Increase / Multiplicative decrease is the only simple policy that converges among 2 senders (with rates x and y) to a rate that is fair (along the y=x diagonal) and efficient (along the x+y=Bandwidth). This is the basis of the algorithm that made TCP (and the Internet as we know it today) possible.
The other one is this diagram from BBR [2] (from the paper in [3]), that shows how BBR sets the window ("amount in flight") to the bandwidth-delay product (BDP) of the bottleneck link (the "volume" of the pipe in a water analogy). The cool thing is that you can only measure the delay of the link if you window is <= the BDP, and you can only measure the bandwidth if your window is >= the BDP, so the algorithm has to hover around this point to make sure it can determine both.
There's a standardized UML version of this, but I think it's easier to read when the arrows are sloped a little, like in this random example: https://www.graffletopia.com/stencils/1560
[+] [-] Phemist|3 years ago|reply
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|reply
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
[+] [-] LeonM|3 years ago|reply
[+] [-] k0k0r0|3 years ago|reply
Edit: Fixed a typo.
[+] [-] varjag|3 years ago|reply
[+] [-] puglr|3 years ago|reply
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|reply
https://oona.windytan.com/posters/dialup-final.png
from https://www.windytan.com/2012/11/the-sound-of-dialup-picture...
[+] [-] andrewgleave|3 years ago|reply
https://twitter.com/worrydream/status/977058412990152704
[+] [-] Dalewyn|3 years ago|reply
[+] [-] KaiserPro|3 years ago|reply
[+] [-] ramblerman|3 years ago|reply
[+] [-] FearNotDaniel|3 years ago|reply
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|reply
[+] [-] niceworkbuddy|3 years ago|reply
[+] [-] aliqot|3 years ago|reply
[+] [-] adrianmonk|3 years ago|reply
https://en.wikipedia.org/wiki/Syntax_diagram
They're used at https://json.org/, for example.
[+] [-] krwck|3 years ago|reply
[+] [-] robertlagrant|3 years ago|reply
[+] [-] shepherdjerred|3 years ago|reply
[+] [-] sophacles|3 years ago|reply
[+] [-] CurleighBraces|3 years ago|reply
[+] [-] lastofthemojito|3 years ago|reply
Things like:
GPS: https://ciechanow.ski/gps/
Alpha Compositing: https://ciechanow.ski/alpha-compositing/
Floating Point numbers: https://ciechanow.ski/exposing-floating-point/
[+] [-] mrslave|3 years ago|reply
https://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt...
(mirror) https://i.pinimg.com/originals/23/b0/75/23b075bebdcea554929b...
[+] [-] rottc0dd|3 years ago|reply
Recently he had done a video about convolution. And his videos about neural networks are pretty good. He has recommendation video for other good channels too.
Great blog on Myers diff series: https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...
Not technical illustrations but, some funny jokes in unix haters handbook is pretty funny. https://web.mit.edu/~simsong/www/ugh.pdf
There is also unix magic poster: https://archive.org/details/unix-magic-poster-gary-overcare-...
[+] [-] supernova87a|3 years ago|reply
[+] [-] lkozma|3 years ago|reply
[+] [-] hbcondo714|3 years ago|reply
https://www.amarkota.com/Content/images/portfolio/trees.jpg
[+] [-] S04dKHzrKT|3 years ago|reply
https://bonkersworld.net/organizational-charts
[+] [-] trynewideas|3 years ago|reply
[+] [-] echelon|3 years ago|reply
Every edition features dinosaurs, which totally relate to the concepts of CPU scheduling, IPC, memory management, etc.
The seventh edition is the absolute pinnacle, as the sauropod family on the front cover enjoy a host of electronic devices from the 80's and 90's:
https://i.imgur.com/5U87Pgt.png
Most of the covers are great.
[+] [-] eurasiantiger|3 years ago|reply
[+] [-] k__|3 years ago|reply
[+] [-] sideproject|3 years ago|reply
[+] [-] charcircuit|3 years ago|reply
[+] [-] GnarfGnarf|3 years ago|reply
[+] [-] blakesterz|3 years ago|reply
[+] [-] makeworld|3 years ago|reply
https://jpmens.net/2021/04/09/the-unix-magic-poster/
[+] [-] dddnzzz334|3 years ago|reply
Also see: https://news.ycombinator.com/item?id=27029196
[+] [-] pram|3 years ago|reply
[+] [-] robertlagrant|3 years ago|reply
[+] [-] frakt0x90|3 years ago|reply
https://en.wikipedia.org/wiki/Fourier_series#/media/File:Fou...
[+] [-] hot_gril|3 years ago|reply
The main resource on learning Erlang, https://learnyousomeerlang.com, has a lot of funny ones, some of which are useful.
[+] [-] makapuf|3 years ago|reply
https://www.toptal.com/developers/sorting-algorithms
[+] [-] lkozma|3 years ago|reply
Illustration of QuickSort and MergeSort as two sides of the same coin: http://lkozma.net/images/sort/duality.pdf
I find this somehow both obvious and counter-intuitive, and usually the two algorithms are not presented in this way, as duals of each other.
I wrote up this view in more detail, but the figure above should be self-explanatory: http://lkozma.net/blog/a-dual-view-of-sorting-algorithms/
[+] [-] martopix|3 years ago|reply
[+] [-] largolagrande|3 years ago|reply
[+] [-] rfonseca|3 years ago|reply
First one is [1], by Chiu and Jain (page 7, figure 5), showing that Additive Increase / Multiplicative decrease is the only simple policy that converges among 2 senders (with rates x and y) to a rate that is fair (along the y=x diagonal) and efficient (along the x+y=Bandwidth). This is the basis of the algorithm that made TCP (and the Internet as we know it today) possible.
The other one is this diagram from BBR [2] (from the paper in [3]), that shows how BBR sets the window ("amount in flight") to the bandwidth-delay product (BDP) of the bottleneck link (the "volume" of the pipe in a water analogy). The cool thing is that you can only measure the delay of the link if you window is <= the BDP, and you can only measure the bandwidth if your window is >= the BDP, so the algorithm has to hover around this point to make sure it can determine both.
[1] Chiu and Jain, Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks, 1989, https://www.cse.wustl.edu/~jain/papers/ftp/cong_av.pdf
[2] https://dl.acm.org/cms/attachment/9cf72499-b32d-4426-914b-cd...
[3] BBR: Congestion-Based Congestion Control https://queue.acm.org/detail.cfm?id=3022184
[+] [-] adrianmonk|3 years ago|reply
https://en.wikipedia.org/wiki/Sequence_diagram
There's a standardized UML version of this, but I think it's easier to read when the arrows are sloped a little, like in this random example: https://www.graffletopia.com/stencils/1560
[+] [-] zX41ZdbW|3 years ago|reply
https://en.wikipedia.org/wiki/Hilbert_curve https://en.wikipedia.org/wiki/De_Bruijn_sequence
I want to make use of it in ClickHouse, but we did not (yet), see https://github.com/ClickHouse/ClickHouse/issues/41195