Starting with better tests
Every 8 months or so I re-evaluate what I've done with g-cpan, drop the cruft, and try to build something new and more able from the remains.
Today is no different. To start, I've begun work on the break out of functional pieces into like groups for modularizing (duh, I know, but right now the shipping g-cpan has a lot stuff into three modules, and some of the functions aren't apparent from the name of the module). This is particular relevant since ferringb has been kindly hounding me for months (maybe even a year, I lost track) for an easy way to call the modules to get just the parts he needs for pkgcore - but up till now, that isn't really feasible because too much of it is housed in one function (get's a horrible score when Perl-Critic rates the complexity of the module).
One of the things I've wanted to change is that we have all these great, awesome bug reports, and their problems get fixed, but I haven't been tracking the bugs after the fact to make sure they stay fixed between versions. So below is the list of bugs I've selected for testing (thanks to deskzilla and thinking-rock) that I intend to write tests for to make sure that moving forward we have backwards compatibility to previous fixes. I may not be able to codify all of them, or verify all of them, but I plan on making a good stab at it
[TEST] Bug 14679: Building Finance::YahooQuote
[TEST] Bug 17433: g-cpan installing Net-Jabber
[TEST] Bug 22597 - Chemistry::MolecularMass
[TEST] Bug 23951 Lower case ebuild names for perl modules confuses g-cpan.pl
[TEST] Bug 43259 g-cpan.pl doesn't make manifests
[TEST] Bug 56085: g-cpan.pl fails on ParseDate / frogbak with message "Couldn't turn 'M/MU/MUIR/scripts/frogbak.tar.gz' into a directory name"
[TEST] Bug 59031: g-cpan.pl can't install DateTime::Format::Builder
[TEST] Bug 64403: g-cpan.pl fails on CPAN modules with .pm in filename
[TEST] Bug 64420: g-cpan.pl can't emerge Authen::Captcha
[TEST] Bug 64466: g-cpan.pl Bundle::InterchangeKitchenSink doesn't work
[TEST] Bug 71185: g-cpan.pl cannot emerge IPTables::IPv4
[TEST] Bug 73534: g-cpan.pl produces bad ebuild
[TEST] Bug 74149: g-cpan.pl doesn't work with File::NCopy because version is connected to name
[TEST] Bug 78253: g-cpan.pl refuses to install Bundle::W3C::Validator
[TEST] Bug 99569: g-cpan fails to recognize dependencies
[TEST] Bug 100874: g-cpan: error with IO-1.20 (but it shouldn't try to install this!) while installing Catalyst
[TEST] Bug 109020: app-portage/g-cpan-0.13.02 doesn't correctly detects proxy settings
[TEST] Bug 119202: g-cpan 0.13.02 don't find correct ebuild name for modules with different cpan filename and module name(space)
[TEST] Bug 121088: g-cpan.pl - unable to load Class-DBI modules (Class-DBI-v)
[TEST] Bug 121183: g-cpan -i IPTables::IPv4 fails
[TEST] Bug 121607: g-cpan attempts to build mod_perl as a g-cpan build
[TEST] Bug 122677: "g-cpan -i IO::Stty" fails: Tries to look at "perl-gcpan/IO-Stty-"
[TEST] Bug 127225: Cannot install Archive::Zip with g-cpan
[TEST] Bug 131600: g-cpan fails to read /etc/make.conf correctly
[TEST] Bug 135783: app-portage/g-cpan-0.14.0_rc1 creates ebuild for Class-Accessor-Chained with "undef" for version
[TEST] Bug 136715: g-cpan-0.14.0_rc2: generates broken ebuilds: Use of uninitialized value in concatenation (.) or string at /usr/bin/g-cpan line 576.
[TEST] Bug 137601: g-cpan fail to replace double :: in package name
[TEST] Bug 138445: g-cpan doesn't seem to handle versions like -0.55-7
[TEST] Bug 140084: g-cpan doesn't expand shell variables in make.conf
[TEST] Bug 141744: g-cpan-0.14.0_rc3 keyword problem
[TEST] Bug 142004: g-cpan 0.14.0_rc3 creates bad filenames for module downloads
[TEST] Bug 143317: g-cpan: Does not record modules in world
[TEST] Bug 152610: Reported on IRC: g-cpan won't install without an overlay anymore
[TEST] Bug 152886: g-cpan does not follow "source" lines in /etc/make.conf
[TEST] Bug 156230: g-cpan infinite loop?
[TEST] Bug 156691: g-cpan 0.14.0 fails to create ebuild for File::Spec::Mac
[TEST] Bug 158163: g-cpan -i I18N-Charset fails because Encode installed with perl-5.8.8-r2
[TEST] Bug 158755: infinite loop in g-cpan
[TEST] Bug 160137: app-portage/g-cpan-0.15_rc1 does not accept source statement in /etc/make.conf
[TEST] Bug 160389: app-portage/g-cpan-0.15_rc1 creates broken ebuild
[TEST] Bug 160391: app-portage/g-cpan-0.14.1_rc1 creates ebuilds which require non-existing ebuilds
[TEST] Bug 160965: app-portage/g-cpan-0.15 breaks when PORTDIR_OVERLAY isn't on one line in make.conf
[TEST] Bug 161732: app-portage/g-cpan can't find correct module without '-' in name (ex. Image::Size)
[TEST] Bug 161740: app-portage/g-cpan-0.15_rc1 not work well with another FETCHCOMMAND in make.conf
[TEST] Bug 168946: g-cpan fails to install Statistics::Lite
[TEST] Bug 169068: perl-gcpan/junoscript-perl-6.4I0 invalid name
guilty pleasures and the job hunt (unrelated)
well, the job hunt took a spin for the worst yesterday when it was revealed that although the contract half of the job was willing to pay my current salary, when I switched over to full time on the job the 'company' I'd be working for couldn't afford my salary (more like 10K+ less a year). It's a shame, because the Federal Reserve IT shop seemed like a cool gig, but since I would only be trading the direction of my commute and not actually lowering any of my costs, losing salary is probably a bad thing. So, I'm back to square one on that for the most part. Bah.
And now to reveal my latest guilty pleasure: comics, in particular graphic novels, but usually the ones that are just collections of single issues under a single story arc. I blame dave yates over on the lottalinuxlinks podcast for putting the bug in my ear (literally - it was his pre-vacation podcast where he talked about needing to get something that reminded me of this market).
When I was a kid I used to collect, spiderman mostly (and yes, my mother decided one day to throw them all away, and I have cursed that event ever since). When I was a teenager I managed to put together a decent enough collection of x-men, x-factor's, and excalibur's that are still floating around the house, but nothing compared to the glory of my spiderman collection.
So on a whim a few weeks ago, I popped into a local comic book shop and take a peek. Kid in a candy shop, I tell ya. First time out, I picked up a few things related to Marvel's New Universe, something I collected back in the 80's/90's (and still have most of) before they called it quits on the line. Well, they decided last year to revamp/revive it, so I grabbed a few things related to that. Then on my second trip I picked up one of the Marvel Civil War segments (eh, meh), and then I hit gold. I used to love babylon 5 (at least up to the last season), because JMS (J. Michael Straczynski) had an awesome vision for a story arc that gut cut to shreds and rushed out before he could finish it. And there his name was on a series?? I had to know more, and I gotta say, it's awesome. I'm hooked again, because between writing code, or doing my day job, or reading up on my classics, I get to be a kid for an hour or so a week and read comics (granted, when we were kids we would have gotten in trouble if our comics showed *this* kind of stuff).
So if you have something that was pure fun mindcandy when you were a kid, I recommend going out and seeing what it's like these days. It's worth it
g-cpan-0.15 and other thoughts
Business first - I put g-cpan-0.15.0 in the tree last night. This has a large series of bug fixes over the old 0.14 release. Not all of the bugs in bugzilla have been directly addressed, but in order to properly address those I want to do some refactoring of the code (along with the realization that i'm a functional guy, not an OO guy, so this stab at an OO program is horrible - better to do what I do best). I'll begin work on 0.16 soon enough, and of course if anything major comes up in the current release 0.15.1 isn't out of the question.
Because of issues in my personal life (read: job, more on this soon), I haven't been on irc in a few weeks. Funny thing is that though I miss talking to people, I feel somewhat more focused when I am working on Gentoo now. The perl team's bug count is down considerably now, and of those remaining 40 some bugs, a good dozen or so are being left open pending changes to g-cpan's architecture, so really there's less than 30 'bugs' (and I use the term loosely), so that makes feel better. I played around with deskzilla last week, and although it has some current incompatibilities with our bugzilla, it reminds me a lot of what I wanted to do with bugger but never got a good handle on (so I think that's a backhanded kudos to the deskzilla people
As for what's been distracting me and setting me off in a foul mood of late, about 4 weeks ago now things came to a head at work and I had the realization that now was the time for me to move on. About 2 or so weeks ago, I put my resume out on monster (I know, but dice was showing only a few of the jobs that would show up on monster). I'm currently in middle of the interview process for a job down in Richmond, which if it works out would be nice since it would alleviate my traffic gripes (it's not the drive that kills me, its the 2+hours of gridlock), and works somewhat to our advantage since we are looking at getting into the housing market again (the house that was comfortable when my wife was pregnant with our first daughter is now tight and cramped with 3 of them running around), and the Richmond area would put us considerably closer to her parents (which is a good thing, inlaw jokes aside).
I'm not sure what the new job will mean for my Gentoo time to be honest. I suspect there would be little change - it's not like I have much time during the day with the plethora of meetings I attend, so any work you see me doing now is done on weekend and evenings anyway. In the long term, it might actually be a boon - should we succeed in selling our current place, we will be moving closer to my job, which means less time on the road, which means more time to spend changing the channel to spongebob so i can get some things done while the kids watch tv (almost a joke, except when its true).
Bah. Hi gentoo land
Photo from the mini-micro-dev convention
Just a quick pic from my wife's camera from the 25th of March when we had kumba and robbat2 over for dinner. Enjoy

Easter Egg Hunt
This past Sunday Katy and I went to an Easter egg hunt at the home of one of her school mates. I knew we were in for an adventure when the parents gave their address by the name of the house they live in (historic Fredericksburg's homes have names - one more nail in the coffin of our being on the wrong side of the tracks). Sure enough, by the time the hunt began there were a good 30 kids there, all hyped up and ready to scour the yard for eggs. I tried milling around with the parents, but not being a trustee our foundation member of anything (Gentoo doesn't count in this case, and besides, we don't have money like that), I mostly talked with the parents of a few of her classmates that were in the same boat as me, or wandered around aimlessly watching Katy have fun. But alas, my poor pumpkin has never been overly aggressive child (that appears to be Anna's role). So when the kids were let loose, she tromped out, found an egg, and sat down with it to see what she found. Around her, kids are scrambling to stuff eggs into their baskets to the point of overflowing. Katy? She has three eggs opened up in her basket, grinning like mad, because she had candy. Sad, but she was so damned proud of herself
At first, I tried encouraging her to keep looking, but she was so happy with the ones she had (until later when she saw what the other kids had found, but that's always going to be the case) that it gave me pause. Why encourage an aggressive competitiveness, especially over an Easter egg hunt? I think she had the right idea: enjoy the little Easter eggs when you find them.