I threw together a little code tonight to calculate the Katz centrality of packages on Hackage. This is a measure that states that a package is important if an important package depends on it. The definition is recursive, as is the matrix computation that converges towards a fixpoint to calculate it.
Here are the top hundred Hackage packages as calculated by this method, along with their numeric measures of centrality, to which I’ve given the slightly catchier name “mojo” here.
This method has a few obvious flaws: it doesn’t count downloads, nor can it take into account packages that only contain executables. That said, the results still look pretty robust.
package | mojo |
---|---|
base | 10000 |
ghc-prim | 9178 |
array | 1354 |
bytestring | 1278 |
deepseq | 1197 |
containers | 994 |
transformers | 925 |
mtl | 840 |
text | 546 |
time | 460 |
filepath | 441 |
directory | 351 |
parsec | 299 |
old-locale | 267 |
template-haskell | 247 |
network | 213 |
process | 208 |
vector | 208 |
pretty | 187 |
random | 172 |
binary | 158 |
QuickCheck | 130 |
utf8-string | 128 |
stm | 119 |
unix | 116 |
haskell98 | 100 |
hashable | 96 |
attoparsec | 92 |
old-time | 88 |
primitive | 87 |
aeson | 72 |
unordered-containers | 70 |
syb | 69 |
data-default | 67 |
split | 64 |
transformers-base | 63 |
blaze-builder | 62 |
monad-control | 62 |
conduit | 62 |
semigroups | 59 |
cereal | 57 |
tagged | 57 |
bindings-DSL | 55 |
HUnit | 55 |
gtk | 54 |
Cabal | 54 |
lens | 50 |
OpenGL | 46 |
haskell-src-exts | 45 |
cmdargs | 45 |
HTTP | 44 |
http-types | 43 |
extensible-exceptions | 43 |
glib | 42 |
utility-ht | 41 |
data-default-class | 38 |
parallel | 35 |
resourcet | 34 |
semigroupoids | 34 |
xml | 34 |
comonad | 33 |
lifted-base | 33 |
cairo | 33 |
safe | 32 |
MissingH | 31 |
exceptions | 31 |
base-unicode-symbols | 31 |
ansi-terminal | 31 |
vector-space | 30 |
nats | 30 |
OpenGLRaw | 30 |
monads-tf | 28 |
wai | 28 |
hslogger | 28 |
regex-compat | 28 |
GLUT | 27 |
void | 27 |
blaze-html | 26 |
hxt | 25 |
dlist | 25 |
zlib | 25 |
hmatrix | 24 |
SDL | 24 |
case-insensitive | 24 |
scientific | 23 |
X11 | 23 |
tagsoup | 22 |
regex-posix | 22 |
HaXml | 22 |
system-filepath | 22 |
enumerator | 22 |
contravariant | 21 |
base64-bytestring | 21 |
http-conduit | 21 |
blaze-markup | 21 |
MonadRandom | 20 |
failure | 20 |
test-framework | 20 |
xhtml | 20 |
distributive | 19 |
It’s worth the visit for this informative post. brick masonry
Your logic to solve this issue is very impressive! Greetings from https://www.cctv717!
Thanks for keeping us here posted. erosion control
It’s nice seeing this interesting site here. patio screening
The package has a lot to offer! Greetings from Charlotte Drywall Contractors!
Thank you for sharing your learnings about Katz’s centrality. Our drywall installer appreciates your insights and looks forward to your future posts.
Nice work on implementing Katz centrality for Hackage packages! Your approach captures the importance of packages in a way that reflects both their influence and relevance within the dependency network. By recursively assigning importance based on dependencies, you’ve essentially highlighted those packages that play a central role in the Haskell ecosystem. reviews
I just wanted to take a moment to express how amazing the lecture was! You presented the material in a captivating way and managed to engage the audience like the Professional drywall construction and make complex concepts easy to understand.
Would love to visit this site more often now. concrete slab
Great stuff indeed! lanai screen
It sounds like you’ve implemented an algorithm to calculate Katz centrality for packages on Hackage, which is an insightful approach to identifying key dependencies in the Haskell ecosystem. Your decision to nickname the centrality measure “mojo” adds a creative touch! https://masterfencerental.com/
This is so good! Greetings from all of us at https://www.pasadenadrywallpros!
Your project on calculating Katz centrality for Hackage packages sounds fascinating! It’s a clever way to determine package importance based on their dependencies—a perfect example of how graph theory can provide insights into software ecosystems. team