Top 30 Authors by Number of Distributions:
ADAMK, 143
MIYAGAWA, 126
RJBS, 108
SMUELLER, 90
AUTRIJUS, 81
GUGOD, 77
INGY, 73
RCLAMP, 62
MSERGEANT, 58
LBROCARD, 58
MRAMBERG, 55
SIMON, 54
DMUEY, 51
TMTM, 50
SIMONW, 48
RUBYKAT, 48
DCONWAY, 48
NUFFIN, 47
BDFOY, 46
BINGOS, 45
SALVA, 44
SHLOMIF, 44
MLEHMANN, 43
XERN, 43
TOKUHIROM, 43
ELIZABETH, 42
DMAKI, 42
SBURKE, 41
TBONE, 40
CWEST, 40
Top 30 Authors by Number of Packages:
DROLSKY, 797
RCLAMP, 535
MIYAGAWA, 454
AUTRIJUS, 449
ADAMK, 389
VELTZER, 380
BIRNEY, 371
JONALLEN, 295
KSTEPHENS, 294
MARKOV, 293
INGY, 257
JRED, 253
RJBS, 250
BRADFITZ, 235
BOUMENOT, 228
GAAS, 211
STEVAN, 198
MBARBON, 194
DANKOGAI, 186
JSIRACUSA, 185
EVO, 185
CLKAO, 178
SMUELLER, 174
MSERGEANT, 166
MLEHMANN, 166
GUIDO, 165
NUFFIN, 162
LDS, 160
AREIBENS, 152
ABW, 151
Top 30 Authors by Ratio of Packages to Distributions:
author, packages, dists, ratio
VELTZER, 380, 1, 380 *
AREIBENS, 152, 1, 152
KSTEPHENS, 294, 2, 147
TWITTEK, 95, 1, 95
BIRNEY, 371, 4, 92.75
JLAVALLEE, 83, 1, 83
WYRD, 82, 1, 82
BOUMENOT, 228, 3, 76
CODYP, 76, 1, 76
PMEVZEK, 145, 2, 72.5
EXIFTOOL, 72, 1, 72
JCOHEN, 63, 1, 63
EMILLER, 53, 1, 53
CZBSD, 52, 1, 52
JHOWELL, 50, 1, 50
IPPO, 50, 1, 50
JONALLEN, 295, 6, 49.167
MDUPONT, 47, 1, 47
JBNIVOIT, 46, 1, 46
DBURDICK, 88, 2, 44
STRCEK, 44, 1, 44
DZHUO, 44, 1, 44
MAMAWE, 43, 1, 43
HANJE, 128, 3, 42.67
AKIMOV, 42, 1, 42
BSHENRY, 41, 1, 41
MIKFIRE, 41, 1, 41
HAMPTON, 40, 1, 40
DISSENT, 40, 1, 40
MILSO, 120, 3, 40
* The infamous "Meta" dist
Top 30 Distributions by Age
FileKGlob, TYEMQ, 1995-08-20 07:27:16
SGI-FM, AMOSS, 1995-08-20 07:29:54
SGI-GL, AMOSS, 1995-08-20 07:30:34
SGI-SysCalls, AMOSS, 1995-08-20 07:31:05
perl_archie, GBOSS, 1995-08-20 14:48:11
InitializeServer, JACKS, 1995-08-20 17:19:41
Prolog-alpha, JACKS, 1995-08-20 17:24:24
CallerItem, JACKS, 1995-08-20 20:09:52
DumpStack, JACKS,1995-08-20 20:17:04
IPC_SysV, JACKS, 1995-08-20 20:23:19
Des-perl, MICB, 1995-08-20 20:41:46
HTML, GAND, 1995-08-29 08:51:46
SetDualVar, KJALB, 1995-09-28 17:48:59
Ptty, NI-S, 1995-09-28 18:00:13
HTML-QuickCheck, YLU, 1995-10-01 11:20:25
Religion, KJALB, 1995-10-09 02:52:25
c_plus_plus, ILYAZ, 1995-10-20 08:45:00
DBD-QBase, BENLI, 1995-11-04 08:42:05
NIS, RIK, 1995-11-10 10:47:56
Ar, RIK, 1995-11-19 01:10:52
Tk-SelFile, ALSCH, 1995-11-20 16:33:46
CGI-Response, MGH, 1995-12-02 07:05:46
SGMLSpm, DMEGG, 1995-12-07 11:30:00
Devel-RegExp, ILYAZ, 1995-12-20 03:20:00
Math-Fortran, JARW, 1995-12-29 11:34:29
Math-Derivative, JARW, 1995-12-29 11:36:17
Math-Spline, JARW, 1995-12-29 11:36:21
Math-Brent, JARW, 1995-12-29 11:36:36
Include, GBARR, 1996-01-04 13:15:23
Log-Topics, JARW, 1996-01-05 14:14:56
Wow! I have a lot to blog about Perl here, so let's start. First of all, a really trivial trick that I wondered about and that avar on Freenode taught me (thanks!): how to split a string into lines while preserving the trailing "\n". It's very simple: my @a = split(/^/, $text). One thing I wonder is why I don't get an empty line at the beginning of the string, because:
perl -le 'my @a=split(/p/,"pillow pillow on the pall");print join(",",@a)'
Gives me an empty string as the first argument. I also wonder if using split(/^/, $text, -1) instead, will do any difference.
This is a tale of an integer overflow vulnerability (paraphrased for the purposes of the tale, as are all following snippets):
dest = calloc(EXPR, sizeof(char));
/* where EXPR is a calculation that is never checked for overflow */
Of course, the maintainers of the software in question are studious and busy types and they would not let this go unfixed for long – they instituted a check to make sure that such a thing would never happen again:
int size;
size = EXPR;
if (size > INT_MAX || size <= 0) {
return NULL;
}
dest = calloc(size, sizeof(char));
Marvelous! Now the code is safe…
…
Err, right. Undaunted and unphased by having made a mistake, they sagely nodded when they learned of it, and proceeded to implement a fix that would rid the world of this evil for good:
float size;
size = PARTIAL_EXPR_1;
size *= PARTIAL_EXPR_2;
size += PARTIAL_EXPR_3;
if (size > INT_MAX || size <= 0) {
return NULL;
}
dest = calloc((int)size, sizeof(char));
And the world was a safer pl… err… I mean: and when they also got rid of floating point round-offs, the world became a safer pla…
…
OK, people, enough of the fairy tales. How do these people even come up with this stuff?!? Testing an integer for whether it’s greater than INT_MAX ?! A float to calculate the length of a string!? I mean… I am… when I…
You can’t even parody this stuff.
This is bogosity as it belongs on DailyWTF, not into one of the most widely deployed codebases on the internet that is backed by several of the biggest corporations in IT. Please, please, someone tell me how PHP got to be as big as it is?
P.S.: oh yeah, and the current guard clause looks like this:
int charsize = sizeof(char);
/* still the same float-based calculation here */
if ((size > INT_MAX || size <= 0) || ((size * charsize) > INT_MAX || (size * charsize) <= 0)) {
return NULL;
}
Portability is important, after all.
Just playing around with my local mini CPAN mirror, I thought it might be interesting to see who and what take up the most space in the archive:
30 Largest Distributions:
Bio-PrimerDesigner, SMCKAY, 10241687
CFPlus, MLEHMANN, 9899481
Number-Phone-UK-DetailedLocations, DCANTRELL, 7652596
PDF-API2, AREIBENS, 7120930
Perl6-Pugs,AUDREYT, 6839270 *
perl_mlb, ILYAZ, 6439614 *
Tk, NI-S, 6011130
Bio-ExtractNE, XERN, 5540005
Unicode-Unihan, DANKOGAI, 5120384
Ogg-Vorbis-Decoder, DANIEL, 4435279
Harvey, MEYERCJM, 4358848
Redland, DJBECKETT, 3912158
Video-PlaybackMachine, STEPHEN, 3274956
CAD-ProEngineer, MMETTES, 2771821
Alien-SeleniumRC, LUKEC, 2754364
Win32-GUI, ROBERTMAY, 2720618
Lingua-ZH-CCDICT, DROLSKY, 2704573
Number-Phone, DCANTRELL, 2676912
Statistics-Gap, ANAGHAKK, 2610015
Boost-Graph, DBURDICK, 2495149
Bundle-WebDyne-Dist, ASPEER, 2407650
HTML-Menu-TreeView, LZE, 2348687
PerlMagick, JCRISTY, 2303868
GO-TermFinder, SHERLOCK, 2184918
swig, DBEAZLEY, 2058195
Encode, DANKOGAI, 1998319
JDBC, TIMB, 1966505
MHonArc, EHOOD, 1932796
Language-Haskell
FFmpeg, ALLENDAY, 1847705
* likely to be removed in the next CPAN-Mini release as they fall under the "perl" filter
30 Largest Author Directories
MLEHMANN, 12998372
DCANTRELL, 10487786
SMCKAY, 10241687
DANKOGAI, 8450786
ILYAZ, 8396563
AUTRIJUS, 7727676
AUDREYT, 7720603
DANIEL, 7198399
AREIBENS, 7120930
NI-S, 6156232
LGODDARD, 5916059
XERN, 5885541
DROLSKY, 4645282
MEYERCJM, 4358848
STEPHEN, 4312094
ADAMK, 4290066
DJBECKETT, 3930247
MSERGEANT, 3343755
LUKEC, 3180446
CMUNGALL, 2978914
ALLENDAY, 2825191
MMETTES, 2771821
ROBERTMAY, 2755326
ANAGHAKK, 2638451
DBURDICK, 2603552
JRED, 2529895
TIMB, 2515658
SHERLOCK, 2514434
MIKER, 2483834
SMUELLER, 2423092