This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-12-26
Channels
- # asami (2)
- # babashka (1)
- # beginners (31)
- # calva (11)
- # clj-together (3)
- # clojure (43)
- # clojure-europe (6)
- # clojure-norway (1)
- # clojurescript (14)
- # core-async (3)
- # core-logic (24)
- # cryogen (6)
- # datascript (2)
- # datomic (3)
- # fulcro (35)
- # honeysql (2)
- # hyperfiddle (12)
- # kaocha (3)
- # lsp (11)
- # off-topic (10)
- # pathom (2)
- # reagent (14)
- # releases (1)
- # sci (11)
- # shadow-cljs (27)
- # tools-deps (7)
A glimpse of the clojure galaxy! Each dot is a clojure namespace. Size and color are proportional to number of inbound requires (ie. namespaces that are required more often are bigger/pinker). Requires from outside a repo are given more weight. More details in 🧵.
I want to explore the galaxy in more depth, but I thought this visualization was too cool to not share. stats: • 131,922 unique namespaces (ie. nodes) • 544,947 requires (ie. edges) Just based on some cursory exploration, there's some cool structures that appear: • the asteroid belt on the left seems to be mostly hobby projects. • there are two odd round clusters. One is a material ui wrapper. The other is a reagent based material ui cluster. • the tree structure at the top seems to be a collection of jdk library wrappers • popular libraries tend to form linear clusters
Data is based on the latest https://github.com/phronmophobic/dewey/releases/tag/2022-12-16 from https://github.com/phronmophobic/dewey. The visualization tool I used is https://cosmograph.app/. I created a special dewey release with instructions if you want to explore the galaxy yourself, https://github.com/phronmophobic/dewey/releases/tag/clojure-galaxy-v1.
Every telescope has artifacts. Some of the caveats for this visualization:
• Analysis data is based only on code found on github (although namespaces of libraries not on github can be referenced)
• Code analysis is primarily focused on clojure projects. Other clojure dialects like cljs or bb are not well represented.
• clojure.core
isn't part of the visualization. I was hoping that clojure.core
would be represented as a huge star at the center of the clojure galaxy, but the graph visualizer didn't handle it well.
• Requires from inside a repository are worth 1 "point" and requires from outside a repository are worth 50 "points". The point system is kind of arbitrary. There also seems to be some sort of cap imposed by the visualization tool.
If there is a cap then you can use a logarithm to squash the number spikes (don't know how the tool works)
Fascinating! But I think this is off topic for the #C03RZGPG3 channel. :rolling_on_the_floor_laughing:
My goal? Make tiltontec.model.core
the first NS black hole. 🌌
Can you tie that to a charting library so we can mouse over dots and get links to their repos? Oh, and no GitLab?
Instructions for loading the visualization are at https://github.com/phronmophobic/dewey/releases/tag/clojure-galaxy-v1. The graph visualizer is pretty neat. It animates and you can select nodes to see the namespace and its connections. The visualization tool is also open source with more options available.
I'm interested in adding Gitlab to the dewey index, but haven't found a good way to do it yet. If you have any tips on how to list all the clojure projects on gitlab, I'm interested.