[HN Gopher] Ask HN: What's your favorite illustration in compute... ___________________________________________________________________ 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. Author : gnull Score : 128 points Date : 2023-01-10 09:20 UTC (1 days ago) | cdnsteve wrote: | Xkcd, this one https://xkcd.com/303/ | bjornsing wrote: | If you include deep learning in CS then https://distill.pub/ has | a lot to offer in this category. | sparkie wrote: | Differentiation of an algebraic data type, resulting in its | zipper: | https://upload.wikimedia.org/wikipedia/commons/c/c7/Labyrint... | | Explanation: https://en.m.wikibooks.org/wiki/Haskell/Zippers | (cites: http://strictlypositive.org/diff.pdf) | giraffe_lady wrote: | oh shiiiiit lol. I get it. that never made intuitive sense to | me before. that's a good one. | enriquto wrote: | The two plots that explain Kernighan's lever: | https://www.linusakesson.net/programming/kernighans-lever/ | omarshammas wrote: | I've been enjoying the illustrations at architecturenotes.co | especially the posts about redis [1] and things you should know | about databases [2] | | [1] https://architecturenotes.co/redis/ [2] | https://architecturenotes.co/things-you-should-know-about-da... | frakt0x90 wrote: | Not strictly computer science, but I love this animation of a | Fourier Series and I show it every time I have to explain it to | somone | | https://en.wikipedia.org/wiki/Fourier_series#/media/File:Fou... | booboofixer wrote: | You might also like: https://www.jezzamon.com/fourier/ | muziq wrote: | Ultimately leading to: https://xkcd.com/26/ | jonas-w wrote: | Don't know if it is _the_ favorite of mine but AWS Architecture | Diagrams. | | For example: | | https://i.pinimg.com/originals/a7/bc/49/a7bc49be1828ca9a51e4... | | https://flexadata.com/images/architecture/ntier-application-... | | https://docs.mattermost.com/_images/MattermostDeployment5kaw... | Someone wrote: | De gustibus non est disputandum, but I find these ugly. The | icons draw too much attention, and (IMO) are incomprehensible. | | They have zillions of products, so I understand that not all | their icons can be immediately recognizable, but is there | meaning to the colors of icons? I can't think of, for example, | a reason why "Batch", "CloudFront" and "Glacier" have the same | color. | | Similarly, is there a language for recognizing icons? I don't | understand why EFS and CloudFront both are stacks of cubes, for | example. | | I think I would choose the same colour and/or similar shapes | for all icons that denote data stores (examples: S3, Glacier, | RDS), for example, a different one for compute (examples: | Lambda, EC2, Batch), and a third one for connections (load | balancer, Route 53, CloudFront) | | Also, why are there such subtle differences in some of the | colors? Do they mean something? | | Finally, if one of your 100+ products is called "S3" and you | have to design a recognizable icon for it, how on earth can you | not put a big "S" and a big "3" in that icon? It can't be that | they want to avoid text at all cost, as they wrote "Aurora" in | an other icon. | bradwood wrote: | 100% agree with you. The AWS icon/drawing design kit is just | rubbish. It's super hard to read. | adrianmonk wrote: | For network communication (and other stuff), I like sequence | diagrams: | | 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 | thewizardofaus wrote: | Diffie-Hellman key exchange pictures that use mixing colours to | illustrate the concept. | lastofthemojito wrote: | 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 wrote: | 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. | LLcolD wrote: | Diagrams that show LDA, STA, cycles, etc. Like this one -> | https://iitestudent.blogspot.com/2011/06/timing-diagram-for-... | hcarvalhoalves wrote: | https://plantuml.com/timing-diagram | LLcolD wrote: | Wow. Didn't ever think that there is something like this. | I've heard about UML, but I've always thought that it is | something related only to programming. | itskeshavrai wrote: | breads | baby wrote: | The cipher mode of operations on wikipedia. I bet you anyone that | does even a little amount of cryptography will bring up the CBC | one from | https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation... | cromulent wrote: | Not useful, nor aesthetic perhaps. | | https://poignant.guide/images/the.foxes-2.png | birdymcbird wrote: | Time space diagrams in distributed systems. Very obvious once you | see but never before saw some critical problems in distributed | systems like fifo ordering, causal ordering and other things | explained with such diagrams. | | did not have formal education on distributed systems in my | country but learned many things in this topic on job. | | So then me took course by lindsey kuper on youtube. it is amazing | course, super clear instructor even for me with not good english. | | i think professor in this class say these diagrams came from | leslie lamport who did lot essential thinking in distributed | system space | Phemist wrote: | 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. | LeonM wrote: | Image here: https://imgur.com/a/auDF9qh | sacnoradhq wrote: | Also 4B (1st ed) pp. 300-301. | | ProTip: Order the 5 vol set directly from Addison-Wesley, | it's much cheaper than anywhere else. | radec wrote: | Cleaner image | | https://imgur.com/a/lPPpT3L | eurasiantiger wrote: | These seem to have structural parallels to Wolfram's | classification of cellular automata. | Eduard wrote: | PDF: https://kolegite.com/EE_library/books_and_lectures/%D0%9 | F%D1... | | Physical pages 116-117; PDF pages 126-127. | Eduard wrote: | > 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 wrote: | Aha! I have edited my post. Thanks for the correction! | Beautiful work, looks like something I'd like to play around | with as well :) | varjag wrote: | The spread on page 300 (iirc) is really stunning. | LeonM wrote: | Page 116/117, to be precise ;-) | varjag wrote: | Not in my book! | | https://twitter.com/varjag/status/1603857439136292865/photo | /... | kiernanmcgowan wrote: | Not from the CS world, but I've always enjoyed the Smith Chart. | It's a tool to figure out impedance (eg resistance but a complex | number) matching on a boundary to reduce reflected power. | | https://en.wikipedia.org/wiki/Smith_chart | rodolphoarruda wrote: | Not only related to CS, but to most management areas and life as | a whole. Going from state(A) to state(B) should never be that | complicated, right? Oversimplification at its prime. | | https://www.thelogocreative.co.uk/wp-content/uploads/How-to-... | aliqot wrote: | The list of linux distributions on Wikipedia: | https://upload.wikimedia.org/wikipedia/commons/b/b5/Linux_Di... | makeworld wrote: | Unix Magic is pretty good. | | https://jpmens.net/2021/04/09/the-unix-magic-poster/ | pram wrote: | I have one of these hanging in my living room, they're | beautiful! | lygaret wrote: | On my wall behind me! :D | https://photos.app.goo.gl/a4NSabFfPVU12Aw6A | sophacles wrote: | I like your retro battlestation. | | How did you hook your c64 up to an LCD? | franze wrote: | I like the one from my book the best: | https://www.fullstackoptimization.com/wp-content/uploads/sys... | Barrin92 wrote: | Bret Victor's animated explanation of Abstraction: | http://worrydream.com/LadderOfAbstraction/ | | His approach to visualization is I think by far one of the best | things on the internet. His rework of a classic paper on small | world networks is fantastic as well: | http://worrydream.com/ScientificCommunicationAsSequentialArt... | jcadam wrote: | Learn You A Haskell is full of useful illustrations. | | http://learnyouahaskell.com/ | wendyshu wrote: | "A Self-Adjusting Search Tree" | https://www.link.cs.cmu.edu/splay/#:~:text=A%20Self%2DAdjust... | motohagiography wrote: | Variations on mean time between failure curves: | https://hpreliability.com/wp-content/uploads/2015/09/Failure... | | Comparing solutions based on the perceived reliability curves of | their lifecycles is useful. | agumonkey wrote: | Fun chart, here's an article to explain a bit more (it was | necessary for me) | lkozma wrote: | May I add one that I made? | | 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/ | robswc wrote: | This is awesome. I think ppl should def share anything they | made. As long as its not low-effort shilling... and your | contributions are anything but! | thanatos519 wrote: | That is great and should be in every textbook! | raddan wrote: | There's an important distinction that your explanation glosses | over, which is that MergeSort is an out-of-place sort while | QuickSort is in-place. As a practical matter, this distinction | is important and it makes the two algorithms not quite duals. | Your explanation of why we can assume that QuickSort pivots are | medians makes sense, but it also glosses over one of the deep | insights about why QuickSort works at all, which is that with | unsorted data, the choice of pivot will rarely be bad (it will | be "near the middle on average.") | lkozma wrote: | Yes, this efficiency-aspect is not captured in the | illustration -- while splitting perfectly _by index_ comes | for free, splitting perfectly _by value_ needs nontrivial | work (median-finding). | chongli wrote: | Yes and with naive median-finding comes pathological inputs | that hit the worst case O(n^2). Something to watch out for | if you're sorting user-provided input as that could open | you up to some silly denial of service attacks! | ro_jazz wrote: | Super cool! | rg111 wrote: | Anything from Setosa [0] is really good. It contains interactive, | animated illustrations of several Machine Learning ideas. | | I _loved_ reading papers from Distill Pub [1] as they contained | interactive diagrams. | | My most favorite one so far is the thread on Differentiable Self- | organizing Systems [2]. I liked the lizard example very much as | it is interactive, and lizards grow lost organs back. I think | this is funny. | | [0]: https://setosa.io | | [1]: https://distill.pub | | [2]: https://distill.pub/2020/selforg/ | krwck wrote: | 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/ | mbaytas wrote: | A while back I made a small NFT collection with my favorite CS | illustrations: | | https://instagram.com/citationsnft | | It was an experiment that didn't do much commercially, but we | learned a lot from it. | hbcondo714 wrote: | 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: | | https://www.amarkota.com/Content/images/portfolio/trees.jpg | S04dKHzrKT wrote: | In a similar vein, I thought of the comic on how software | companies are organized. | | https://bonkersworld.net/organizational-charts | Quarrelsome wrote: | is there much truth to these patterns? I've never worked for | FAANG so am unaware of their structures. | timidger wrote: | It was probably very true 10 years ago, for some of them it | has become less true | porbelm wrote: | The Microsoft one was VERY true, at least until the mid | 2K's. Small groups with lots of middle managers, bad | communication, and hatred towards the other small groups. | | Dunno how it is now though. | GnarfGnarf wrote: | I first saw this cartoon in 1971. | k__ wrote: | I worked in many companies that had it at the door to the Dev | department. | sideproject wrote: | 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) | eurasiantiger wrote: | Interesting that what operations supposedly installed was | closest to what was actually needed, and only an additional | binding away from a complete solution. | trynewideas wrote: | Variations of it date back to at least the 1970s: | https://www.businessballs.com/amusement-stress-relief/tree-s... | agumonkey wrote: | Impressive how not modern we are. | echelon wrote: | Completely orthogonal to yours, but the undergraduate text | "Operating Systems Concepts" by Silberschatz et al. has always | been good. | | 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. | fredguth wrote: | Drawing of self adjusting trees by Jorge Stolfi. | | https://www.link.cs.cmu.edu/splay/tree5.jpg | DoneWithAllThat wrote: | Oh man a friend of mine used to have a shirt with a delightful | illustration of the madness that is ATM, or maybe it was just | illustrating IP-over-ATM. It had packets being like thrown into | woodchippers and reassembled if I'm remembering right. Wish I | could find it again. | pcurve wrote: | maybe not CS concepts, but wanted to re-share Perpendicular disc | storage from Hitachi. https://www.youtube.com/watch?v=xb_PyKuI7II | It's a simple concept to explain, but animation sure makes it fun | and lasting. | lkozma wrote: | 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 | drewg123 wrote: | The cover of the 1st edition of the "dragon book" -- Compilers: | Principles, Techniques, and Tools, by Aho, Sethi and Ullman | | https://www.amazon.com/Compilers-Principles-Techniques-Alfre... | bosch_mind wrote: | Grokking Algorithms is a funny and enjoyable read | SmileyJames wrote: | I think the field of automata has some lovely diagrams. | | https://en.m.wikipedia.org/wiki/Automata_theory | | I'm sure many are familiar with state diagrams, directed graphs | that can be used to explain regular expressions or any other FSM | | Turing machines also can be represented with a diagram featuring | a "tape" - so elegant | | Professor Rick Thomas made a great impression on me whilst | lecturing on the subject of Automata | zX41ZdbW wrote: | The relations between Hilbert Curves[1], Gray Code, De Bruijn | sequences[2]... | | 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 | typhonic wrote: | What came to my mind is "An Introduction to Microcomputers" by | Adam Osborne. I don't think I can find my copy anymore. If I | remember correctly, there were block diagrams showing the main | functional components of a microcomputer, E.G. the ALU, | Arithmetic Logic Unit. | void-star wrote: | I worked at several companies that had this poster hanging on the | wall back in the day and spent a lot of time staring at it while | on the phone. It comes immediately to mind. | | https://www.scribd.com/doc/223671868/Poster-Protocolos-1 | Eduard wrote: | More recent (2006) version without paywall: | https://www.cisco.com/web/offer/emea/7193/docs/Agilent_Netzw... | binarymax wrote: | Everything from Land of Lisp! | | http://landoflisp.com/ | greggarious wrote: | The "cascading failure" GIF[1] from Wikipedia's entry of the same | name[2]. | | (I'd love to see similar style animations of various crypto | algorithms like MD5, AES, etc if anyone has the cycles.) | | [1] | https://upload.wikimedia.org/wikipedia/commons/b/bd/Networkf... | | [2] https://en.wikipedia.org/wiki/Cascading_failure | devniel wrote: | The glider | gamegoblin wrote: | Log-structured merge trees have some good diagrams. | | If you know a little bit about the problem space, the 3 main | diagrams (2.1, 2.2, 3.1) in the whitepaper basically tell you how | to implement it. | | https://www.cs.umb.edu/~poneil/lsmtree.pdf | rfonseca wrote: | 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. | | [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 wrote: | 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. | salgernon wrote: | The Apple Pascal poster has a very 70s vibe: | https://www.whatisepic.it/wp-content/uploads/2022/05/apple_p... | bagels wrote: | 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. | blakesterz wrote: | https://paleofuture.com/blog/2009/3/23/computer-criminals-of... | "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 | heywhatupboys wrote: | what a horrible website. Takes over my trackpad so I cannot | zoom in on the image. | | Where did we go so wrong? as to literally remove UX for no | benefit | superjan wrote: | > Computers will make the world of tomorrow a much safe place. | They will do away with cash, so that you need no longer fear | being attacked for your money. | | Hahaha | safog wrote: | Yeah it's an interesting thought. Credit card scams, | phishing, etc. have made new ways of stealing possible. | | It's 'safer' as in I think you can claim muggings or | burglaries (or losses to these) have reduced because people | just don't carry as much cash anymore. | zokier wrote: | There is even a song written about that :) | | > You don't have to rob me | | > It's not really worth it | | > I only have credit cards | | > And I can just cancel them | | > Know that you needed cash | | > But what the fuck's up with that? | | (DOMi & JD BECK - U DON'T HAVE TO ROB ME) | justinjlynn wrote: | The growing use of Debit and Credit Cards eliminating the | need to carry a hundred or so with you at all times for | spending/errand purposes without requiring the merchant to | take the risk of taking personal cheques was a huge | revolution made possible by mass computerisation in the | finance industry. This includes the current discussions many | governments are currently having about simply not issuing | cash money any longer. | hooverd wrote: | Cash money still has its uses. I always carry some for tips | and for when a business's payment card reader goes down and | nobody knows how to process a card without it. | ElectricalUnion wrote: | > when a business's payment card reader goes down and | nobody knows how to process a card without it. | | Online fraud prevention is the most important part of | online card processing, and can't be done offline. | hooverd wrote: | I was paying for services rendered at the optician, and | luckily had a wad of cash, but what's the user story | there other than wait while they call support? I guess | they could have invoiced me. | zitterbewegung wrote: | You are completely right but the core issue is that they | don't want to process credit cards or avoid fees. | | Having money with you though is good in emergencies. | Carrying a one dollar, five dollar and or a ten / twenty | though is always a good idea. | fatnoah wrote: | It's not wrong. You no longer have to be physically present | to have your money stolen. It's safer for everyone. | tudorw wrote: | http://www.thetednelson.com/art_intertwingled.png | sophacles wrote: | 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. | jacquesm wrote: | Sort animations. | | https://www.hackerearth.com/practice/algorithms/sorting/quic... | DaveSwift wrote: | https://www.toptal.com/developers/sorting-algorithms | LVB wrote: | Watching SORTDEMO.BAS at the formative age of ~11 baited me | into programming. I recall messing around trying to make even | faster versions. https://www.youtube.com/watch?v=leNaS9eJWqo | hansjorg wrote: | If you're more of a Lindy learner: | | https://www.youtube.com/watch?v=3San3uKKHgg | jacquesm wrote: | That is really neat :) | TheMaskedCoder wrote: | I believe this is the original account. They produced several | similar videos: | | https://www.youtube.com/@AlgoRythmics | Eduard wrote: | Youtube user Musicombo has plenty of videos showing different | sorting algorithms in action and their runtime behavior under | different (pathological) cases: | | e.g.: https://youtu.be/vr5dCRHAgb0 | [deleted] | DubiousPusher wrote: | https://libraryofbabel.info/ | TurkishPoptart wrote: | I have no clue what's going on here. Context? | KMnO4 wrote: | It's based off a 1941 short story in which there's a library | of books which hold every possible combination of letters. | | The idea is that every story, song, piece of knowledge, etc | are in there if you know where to find them. | | (And also, every erroneous fact, false story, etc) | nlolks wrote: | Funny one. . . http://gunshowcomic.com/648 | nrjames wrote: | These animations by Mike Bostock are great: | | https://bost.ocks.org/mike/algorithms/ ___________________________________________________________________ (page generated 2023-01-11 23:00 UTC)