I had planned on writing a long entry as to where I've been, and what I've been up to for the last two years, however a cross between Fusion and Ubuntu killed that. So here is the abridged version.
The project I'd been working on for 3 years, finally received executive approval and funding, but the timeline was extremely tight. A management change brought a lot of finger pointing, and changes to how the department functions. Even though the department was successful for the 9 years prior.
So I left. Took a new job almost a year ago doing SQL development in a data warehousing, business intelligence, environment. Quite a bit different than the transaction based database work I had been doing.
What about Perl? Well I haven't done any real Perl work in about a year now. Although I have recently started a new project (more on that to come).
For some reason, I haven't been receiving emails for my PAUSE account. I was still getting lots of spam, so I didn't think there was anything wrong. Because I wasn't getting any emails, I figured no one was using the modules I wrote. Luckily David Bartle went out of his way to track me down over some issues with CPAN::Mini::Inject (and he supplied patches with tests!). I've now changed the email address that PAUSE uses, and am receiving mail again. brian d foy has since contacted me with an issue he's seen with Test::Output so I know it's really working.
To help things along, I've moved the repositories for these projects off of my subversion server (that no one seems to know about) onto github.
The repositories can be found at:
CPAN::Mini::Inject - http://github.com/ssoriche/cpan--mini--inject/tree
Test::Output - http://github.com/ssoriche/test-output/tree
There are no test functionality updates in this release. The major change is a migration to Sub::Exporter from Exporter. Allowing for finer control over which tests are imported to your test scripts, and how.
Hats off to the Chicago YAPC team. Thanks for a great time.
No it's not dead, and neither am I.
Recently there have been a number of discussions, feature requests, and patches submitted for CPAN::Mini::Inject. I am in the process of consolidating these patches, plus refactoring the whole application. It's going to take a bit to get this all done, but I'll get a developer release out as soon as I can.
I hadn't sleeped well thinking about my presentation (Making the Switch: DBI to Class::DBI). I kept going over what I was going to say, and how. I knew Casey West was giving a talk a little after mine on Beyond the Basics of Class::DBI and I'd hoped there wouldn't be too much overlap. On the way down to breakfast I ran into Casey in the elevator where we briefly discussed our presentations. The good news, there shouldn't be much overlap.
The morning was spent attending Offline Programmatic Generation of Web Pages, Perl Modules for Exceptions, Logging and Parameter Validation, How to Serve a Billion Requests a Day with Perl, and Using Graph Theory to Detect Security Policy Violators. Each of which was good, and I managed to pick up a couple of things to take away with me. During breaks and talk changes people were coming up to me saying they were looking forward to my talk. I began worrying that my talk was not going to meet their expectations.
Went to lunch with Trush, Chris Winters (still not knowing his last name), Jim Brandt and Jeff Bisbee at a local food court. This helped to calm my nerves before my presentation, and they provided words of encouragement.
Next was my presentation. I had some concerns with the amount of time I had (I probably should have asked for more) and the amount of content I had to cover. I had taken this into account though and made my slides in such a way that offline viewing would provide a cookbook of sorts. I also didn't want to come across as "You should switch to Class::DBI because it's *SO* cool". The approach I wanted to take is that of "You've made the decision to switch, here is a little help in doing so". When I started the transition, I couldn't find such a resource. Nervous as hell (this was my first YAPC and my first time presenting to a big crowd), and with a much larger audience than I had expected (a Perl 6 talk was going on in the next room and they seemed to draw the large crowd) I proceeded. Looking down one of my worst nightmares had been realized. That Guy was sitting right in front of the podium causing a bit more panic. I stumbled a couple times, and had a problem with my browser but overall I think my talk went ok, although I know I can do better.
I have to admit after finishing my presentation, I glossed over during the Perl and DB2 talk coming back to for High-Availability & DBI. This was an interesting talk, even with it's focus on MySQL, we were able to use the same principles with PostgreSQL. It was nice to confirm the work that we've been doing, and that other people came to the same solution.
Final sessions of the day were spent following Casey West who presented Beyond the Basics of Class::DBI and Managing Email with Perl. Beyond the Basics of Class::DBI while featuring the wildly popular Camoose, picked up further down the road from where my talk left off and included a number of useful modules as well as proper warnings. I've been using Email::Simple and Email::Send in work projects for a while now, so I was hoping that Managing Email with Perl would round out my knowledge and it did.
With the stress of having to do a presentation now leaving me, I was ready to enjoy the boat cruise. While admiring the steam engine on the lower level, Larry approached and said
"It looks like it could use some refactoring"
"Oh, what would you do?"
"I don't know but it looks like Perl 4 to me"
It might be a little off as beer was being consumed but that's the gist of it.
I also met up with Casey and let him know how much I enjoyed his presentations, and complimented his speaking ability. We discussed my presentation briefly and he relayed to me his experience of giving a Beginning Class::DBI talk at OSCON the previous year.
The TPF auction was a lot of fun. Unlike OSCON 2004 there were no team bids, services offered for auction, nor auctioning off the auctioneer's shirt (thankfully). The auction consisted of a lot of books. Which was both good and bad. I managed to pick up 3 books and was in a bidding war over a fourth until I backed out. Trush somehow managed to get in a bidding war over Searching for Stupidity and for some reason seemed upset that he lost.
After the the boat cruise a group of us headed back to C'est What? to have a couple beers. This is where I discovered a fondness for wheat beer. Another very late night.
I may get to posting about Day 3 but I seem to be taking a lot of time.
I didn't even bother to try to do daily updates from YAPC as others did. I know for a fact that I won't be able to keep up with the schedule. One because it takes me too long to write an entry, but also I was just too busy (which was a really good thing). Instead for ease of the readers I'm going to split the post in two.
YAPC started off for me with a miscommunication on where the subway runs. Trush thought he would be able to meet me at Fairview Mall, but quickly found out that the new Sheppard line doesn't run from Downsview right across. Then we met at Bay station when we should have met at Bloor so back to Bloor and down Yonge we went. Once we finally figured out where we were going we were fine.
rjbs called me, and we met up in the lobby of 89 Chestnut and proceeded to the arrival dinner. Of course we got lost and ended up sitting at the table that was last served. No one mentioned that we had to order by writing the number of what we wanted on little pieces of paper. After dinner we pushed rjbs into a cab and took him to the Paramount theatre to see Batman Begins on the IMAX screen. There had been a lot of discussion on the YAPC mailing list as to whether or not it was true IMAX. Who cares. Really big screen, really big sound, really good movie.
The day started with an opening talk by Richard Dice, a keynote by Larry and the State of the Carrot by Allison. Then to my first session The Testers Toolkit. I picked up a couple of things I hadn't used before and there was mention of Test::WWW::Mechanize, which was really nice to see.
We went to Spring Rolls for lunch (great Thai food- mmmm cashew chicken) and were joined by Chris Winters. I've been reading his blog for a long time and when I found out he was going to be at YAPC I at least wanted to see who he was. At lunch I only knew his name was Chris and didn't put it together until now.
After lunch (slightly late) I attended Chromatic and Ian's talk on Solutions to Common Testing Problems. I found the talk quite useful as they mentioned a couple of test modules I hadn't tried, and it was good to see them in action. I'm really looking forward to their upcoming book. Next was a talk on a Perl Mongers group's experience Phalanxing a module. Now that Toronto.pm has finished with YAPC::NA, I'm hoping that we can pick up a module and have a go at it. Listening to the experience of the NY Perl Mongers has me a little concerned however as to whether the updated tests will ever be implemented by the authors.
The day ended with cog's Perl Black Magic Unleashed Obfuscation and Golfing which was absolutely hilarious. I've added practicing obfuscated code reading to my list of things to do. I can see how it'll help my non-obfuscated coding.
The CGI::Application crew was having a BOF at a not so local pub. Somehow they were convinced to change the location to a closer pub. Trush and I tagged along and it ended up being our best YAPC decision. While we ended up sitting in the middle of a long table we quickly became the section not discussing CGI::Application but the one concerned with drinking beer. Afterwards the decision was made to return to the hotel and find a spot where we could all meet and continue discussing CGI::Application. The discussions didn't end until after 1am.
So much for well rested for my presentation.
Last night Schwern dropped in on #perl-qa and we began discussing some changes he’d like to see to Test::Output. As it turns out one of the things that he was interested in, I’d already been working on but had gotten stuck. Within a couple of seconds he gave me a working solution, and today it was implemented.
Directing STDERR to STDOUT using 2>&1 on the command line is quite common, it would be nice if Test::Output could provide the same function. Now it can.
The following functions have now been added to make this possible:
Test::Output 0.05 has been released (mirrored by CPAN soon).
The main difference in this version is a patch from chromatic (thank you). His patch fixed a bug where all tests printed error diags even if they passed. Additional tests were added to ensure that no output is sent from diag in successful tests.
While releasing this version I realized I never wrote anything about version 0.04 which saw some major changes:
Last night I attended my second Toronto Perl Mongers meeting. It was quite enjoyable. lamech gave a talk on his recently released Class::DBI::DataMigration framework.
At work we are presently updating a number of our reporting applications. We're taking this opportunity to reorganize our database schemas. As we have a data retention requirement on most of our data, we have to migrate from the old schema to the new. Knowing that I have a lot of data migration ahead of me, I really wanted to see lamech's talk.
The topic of database migration is quite a heavy topic, that's hard to put into words. Something that lamech pointed out at the beginning of his discussion, but he did a really good job (at least for me). I have a clear picture as to how Class::DBI::DataMigration works, and how we can use this tool in our upgrade process.