100 CPAN Distributions + App-ManiacDownloader
I now have over a 100 Distributions on CPAN!
Some days ago I discovered that my CPAN distributions count had already gone above 100, only that my MetaCPAN page has misled me due to a bug ( which I reported since). I now have 103 distributions on CPAN and you can find a list of them on the Israeli Perl Mongers site, with whatever is missing from the MetaCPAN page.
So now I'm in the CPAN 100 club, and now will also better focus on improving
the quality of my existing distributions. According to GumbyPAN, the
top ten authors are
SHARYANTO [265] RJBS [258] TOBYINK [239] ADAMK [236] ZOFFIX [222]
MIYAGAWA [216] BINGOS [197] INGY [177] TOKUHIROM [170] SMUELLER [156]
,
so no one has gone up to 300 distributions yet (also see
the
top 20 current in the leadercpan page.).
Maniac Downloader
One of the distributions on my road to the 100 distributions was
Maniac
Downloader, which is a download accelerator written in Perl using
AnyEvent and other
CPAN distributions. It was written as a way for me to scratch an itch where
I noticed that I could get better download throughput from many
sites by opening more than one connection. I tried several download managers,
but most of them were GUI only and the only terminal one I found -
prozilla, could not
handle https://
URLs and, furthermore, didn't implement the
"secret sauce" of Maniac downloader of splitting slow segments into multiple
parts to speed up the acceleration, and finally - was very noisy. Since
prozilla is written in C, it was not easy to hack on it, so I decided to
write something myself using Perl.
I wrote the first prototype of Maniac Downloader using POE, but didn't get very far, and I also think performance left some things to be desired. Then, some weeks ago, I started working on the second version as a Dist-Zilla distribution and using AnyEvent, and made more progress. AnyEvent is easy to use, and works nicely and quickly, and I like it more than POE.
I released App-ManiacDownloader-v0.0.3 to the CPAN today, and it now resumes interrupted downloads, so it's getting more usable for me. There are still some tasks left to be done there, but you can try using it already.
Congratulations!
Didn't realize I'm now at the top of the list. I hope someone else could take over the #1 position though, as I really don't feel like I'm the most {active,productive,whatever} CPAN author there. I just love releasing software as CPAN distributions: it's convenient and familiar.
I noticed that you name your Maniac Downloader script as "mdown". This does not associate with "download" on my head, instead it reminds me of Markdown. I personally would've picked "maniacdl", "maniac-dl", or just "maniac".
Thanks! I appreciate your humility, but the distribution count per author doesn't mean too much - it's just a silly game.
Regarding the name of the script, I considered "mandown", but went with "mdown" eventually and later on recalled that it may be associated with Markdown. Anyway, like the quote goes: “There are only two hard things in Computer Science: cache invalidation and naming things.”, and eventually it ends up at bikeshedding. If you want, you can create an alias to this in some way (shell alias, shell function, a small executable wrapper in shell or Perl, etc.).
Have you tested your Pod for your distributions?
Metacpan sometimes doesn't pick distributions if there are certain Pod errors in it, cpan.org might forgive similar errors. You should check cpants on your distributions missing from metacpan.org. I had a similar issue with one of my modules for almost 10-15 releases till I resolved the Pod error and it magically reappeared in metacpan.org
Cheers and congrats on the 100!
HTH,
-Shantanu Bhadoria
This also happens to quite a few of my dists. Last time I checked a couple of days ago, here are my dists that fail to index on MetaCPAN:
I have included the POD syntax test in the dist, so there are no errors in the POD. But it seems Pod::Simple fails to parse some of the dists (ref: https://github.com/CPAN-API/metacpan-web/issues/963 )
I think there's something wrong with ManiacDownloader packaging: http://www.cpantesters.org/distro/A/App-ManiacDownloader.html#App-ManiacDownloader-0.0.3
Thanks vsespb! I forgot to include MooX::late in the dist.ini and the prereqs failed. Fixed now.
Sometimes updating Pod::Simple helps(I had to do that to get nested encoding errors),
I also noticed your pod weaver puts
=encoding utf8 message in the wrong place in Text::Widechar::Util package( i didn't look in your other distros but maybe they have a similar issue?).
This is what triggers nested encoding error in pod and also prevents indexing of your package in metacpan.
HTH
My preferred download accelerator: http://aria2.sourceforge.net/
We sometimes equate the number of useless dists an author has to a sort of internal trust metric. As a result, we blacklisted some of the authors you mentioned in that club from our internal minicpan. We just can't afford to rely on anything they released.
AFAICT a large portion of the stuff on the CPAN top 20 is either abandonware (do SIMON and AUTRIJUS even exist anymore?) or CPAN spam. Apparently even the "top 20" are not exempt from Sturgeon's Law.
Congrats, Shlomi! I'm gonna take a look at ManiacDownloader, looks interesting to use especially on systems that I don't have my preferred downloader, lftp, installed. You might want to take a look at lftp as well since it does what you describe in the ideal downloader you wanted before ManiacDownloader (quiet, no-frills and can do parallel/split-up downloading, and as a plus, it can download via torrent as well.)
chimerix: aria2 does indeed seems interesting and it has implemented my "secret sauce". However, its granularity is limited to one megabyte of data, while Maniac Downloader goes down to 8 KB or 4 KB, and I was told by someone that it didn't improve the download speed. Furthermore, its integration with Mageia’s urpmi seems lacking because downloading with it does not display the progress of the download which is frustrating (but I suppose this can be fixed in urpmi’s side). Anyway, I will mention aria2 as a viable alternative on various places.
Hi Zak. I have been familiar with lftp (having used it after the demise of ncftp) but I wasn't aware it supported split downloading and HTTP/HTTPS . I'll take a better look at it now as well. Thanks!