This week I turned 42. This is of course the answer to the Ultimate Question, the Question of Life, the Universe, and Everything. So that’s fun, for a year or so.

I rounded off a couple more little projects. The back yard is mown, after a week of starting each work-day with a half-hour with the scythe. I almost wish we had more grass to cut, it’s a lovely way to start the day.

And my dependency-visualisation project finally coalesced into something worthwhile, after last week’s late-breaking insight. Here’s a lightly-redacted version:

Graph showing around 100 nodes with complex but somewhat parseable relationships

To get this I’m:

  • parsing 100 or so setup.py files and extracting the dependency information
  • (hand-removing a single cyclical dependency so I can use DAG algorithms)
  • performing a transitive reduction on the resulting graph
  • letting graphviz lay out the resulting graph

I’m particularly pleased that there’s no manual intervention needed. (Even the cycle-breaking is done with an “exclude” argument to the commandline script I wrote.) This means everything is repeatable, and when a colleague asked for a variation on the theme I could produce it just by tweaking the script arguments.

Now that I’ve finished this mini-project, though, I need another!