6 ms·
A couple years ago I wrote a program to make dependency diagrams just like this! https://github.com/kach/tower-of-power https://github.com/kach/tower-of-power
by hardmath123 6y ago
A couple years ago I wrote a program to make dependency diagrams just like this! https://github.com/kach/tower-of-power https://github.com/kach/tower-of-power
Here's `pdf-redact-tools` from Homebrew: https://github.com/kach/tower-of-power/blob/master/gallery/pdf-redact-tools.box.svg https://github.com/kach/tower-of-power/blob/master/gallery/p...
Here's the CS core at Stanford (dependency = prereq): https://github.com/kach/tower-of-power/blob/master/gallery/cs.box.svg https://github.com/kach/tower-of-power/blob/master/gallery/c...
- marcrosoft 6y agoSpeaking of homebrew, its author definitely fits the tiny block in this cartoon.
- woodruffw 6y agoWe're actually a thriving team now, although donations (and more eyeballs!) always help :-)
- jacquesm 6y agoIf you didn't ping each other to see this within 15 minutes is a nice testimony regarding the reach of HN.
- marcrosoft 6y agoI honestly don’t know the homebrew team but I use it and it’s the first thing to come to mind when I saw this xkcd. Edit: partly because I also know the original author was denied a job at Google. Imagine the productivity gain this team has given to a company the size of google.
- ekianjo 6y agoThere are bots to find out mentions of specific keywords on HN.
- saagarjha 6y agoA number of maintainers browse and contribute a fair bit.
- harry8 6y agoshhhh. Don't tell those of us who don't like apple. We'll pay him to make the project unusable.
- SilasX 6y agoThe first thing I thought of was OpenSSL: https://news.ycombinator.com/item?id=7575210 https://news.ycombinator.com/item?id=7575210
- majewsky 6y agoGnuPG and ffmpeg also come to mind.
- SilasX 6y agoYes, I remember GPG being in the news for that: https://www.propublica.org/article/the-worlds-email-encryption-software-relies-on-one-guy-who-is-going-broke https://www.propublica.org/article/the-worlds-email-encrypti... But I also remember the takedown about no one actually relying on email encryption for security: https://news.ycombinator.com/item?id=22368888 https://news.ycombinator.com/item?id=22368888
- mbakke 6y agoI thought it was referring to the "Olson" time zone database, used by virtually any operating system except Windows to keep track of time zone changes: https://news.ycombinator.com/item?id=3080437 https://news.ycombinator.com/item?id=3080437 Voluntarily maintained by a single person for decades until hit by a big lawsuit and ICANN stepped up to help.
- raverbashing 6y agoI'd argue homebrew is the cartwheel that brought the bricks there, and not the bricks themselves. Yes, it's an important piece of software. But it's not "required" for any services itself.
- piva00 6y agoOpenSSL on the other hand...
- raverbashing 6y agoYeah let's not get into that conversation...
- ralphstodomingo 6y agoDon't even go there. Might jinx it.
- baby 6y agoI made https://github.com/mimoo/cargo-dephell https://github.com/mimoo/cargo-dephell to see how many github stars, contributors, last updated, etc. for your rust dependencies
- dylan604 6y agois it just my browser, or is the image for pdf-redact-tools really a bunch of wasted space in the top half with the bottom row of dependencies barely legible?
- tunesmith 6y agoHrm. Can any DAG be drawn as a box diagram?
- Jtsummers 6y agoThe key part is performing a topological sort, which you can do on any DAG.
- andreareina 6y agoIf a box diagram has to be a planar graph, then no: digraph G { a -> {x y z} b -> {x y z} c -> {x y z} } cannot be drawn on the plane without any crossings. https://en.wikipedia.org/wiki/Three_utilities_problem https://en.wikipedia.org/wiki/Three_utilities_problem
- Tomminn 6y agoIsn't two "utilities" enough here? Suppose we have two components-- X and Y-- which depend on two other lower-level components-- A and B. How would you draw this as a block dependency diagram without repetition? If both X and Y depend on B, then X and Y must be above B, and both touch B. If X and Y are orthogonal rectangles, then the entire X-Y edge is obscured from below. This means that another lower-level component A must can only interact with either X or Y. You'd need to allow X or Y to no longer be orthogonal rectangles to overcome this, or need to give up on the vertical organization of dependencies.
- lopsidedBrain 6y agoHmm. You're right, not if we are restricting ourselves to rectangles. But if we make A u-shaped, with B nestled in it, we'll be in business!
- hoseja 6y agoHey there was a phys article about that problem today! https://phys.org/news/2020-08-solution-math-riddle.html https://phys.org/news/2020-08-solution-math-riddle.html
- gitgud 6y agoCan you imagine the dependency tree for a project with `node_modules`, for a create-react-app it would be thousands of modules deep...
- aleksjess 6y agoI would be interested in seeing that. Probably, however, the graph would horrify me as well.
- punnerud 6y agoOr a Solver trying to build the graph would return: "You seem to be in dependency hell."
- jbister 6y agoThere is a tool for visualizing node_modules dependencies here: https://npm.anvaka.com/#!/view/2d/webpack https://npm.anvaka.com/#!/view/2d/webpack And yes, the dependency chains become absolutely insane for some projects.
- brlewis 6y agoDoes it distinguish between dev dependencies and runtime dependencies?
- snicker7 6y agoI think Guix provides a better dataset for this sort of analysis, given its emphasis on reproducible builds.
- tim333 6y agoTip for those not up to scratch like me: Click "Raw" to see the image
- aargh_aargh 6y agohttps://github.com/kach/tower-of-power/blob/master/tower-of-power.py https://github.com/kach/tower-of-power/blob/master/tower-of-... That's a nice instance of literate programming. I don't come across those very often.