Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

hide (4398)

  (email not shown publicly)

hide has been programming in Perl since 1998. Much of this time has been focused on system automation and data warehousing.


Journal of hide (4398)

Wednesday August 27, 2008
07:41 PM

Where have you been?

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 -

Test::Output -

Tuesday July 18, 2006
02:35 PM

Test::Output 0.10 released.

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.

Friday June 30, 2006
09:15 AM

What I learned at YAPC::NA::2006

  • Do *NOT* fly United Airlines, American is better
  • Riding in a Jeep without a roof is amazing
  • Once a day, I will spill food on myself
  • Hack-A-Thons can be social events and vice versa
  • Job recruiters advertise by leaving business cards on urnals
  • A $9 buffet is $30 in Chicago
  • Perl conferences include JavaScript talks
  • Dorms with prison style showers are nicer than prison style dorms
  • Limit writing to 300 words
  • Open my CPAN module svn repository
  • Do not play ping pong against a tall guy
  • I can now write my Perl in Canadian eh?
  • Silent auctions are fun, but a better way of calling out the winners is required
  • Returning Larry nets a lot of money
  • We need to bring focus to the end user applications created with Perl
  • Downtown Chicago is beautiful
  • Economy class has no room to open a laptop
  • Do *NOT* fly United Airlines
  • Getting together with friends and people you "know" to discuss what you all love is amazing.

Hats off to the Chicago YAPC team. Thanks for a great time.

Monday May 22, 2006
04:53 PM

State of CPAN::Mini::Inject.

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.

Wednesday July 06, 2005
10:05 AM

YAPC::NA Summary Part 2, Day 2

Day 2

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.

Friday July 01, 2005
07:43 PM

YAPC::NA Summary Part 1, Arrival and Day 1

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.

Day 1

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 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.

Saturday March 26, 2005
10:20 PM

Test::Output 0.07

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:

  • combined_is
  • combined_isnt
  • combined_like
  • combined_unlike
  • combined_from
Friday March 04, 2005
07:19 PM

Test::Output 0.05

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:

  • Added functions: output_like and output_unlike.
  • stdout_from, stderr_from, and output_from were removed from @EXPORT and moved to @EXPORT_OK as suggested by Schwern.
  • Renamed test “comment” to “description”.
  • Refactoring and additional tests.
Friday February 25, 2005
10:22 PM meeting #2.

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.

Wednesday February 16, 2005
04:37 PM

Test::Output 0.03

Test::Output 0.03 has just been uploaded to PAUSE. Changes with this release:
  • Reworked entire POD. Thanks to rjbs for his suggestions.
  • Additional POD fixes (date to data thanks to everyone who caught that).
  • New methods: stderr_like, stderr_unlike, stdout_like, stdout_unlike
  • Updated README from the default one created by Module::Starter.
  • Moved private methods _err,_out, and _errandout to stderr_from stdout_from and output_from respectively. Thanks to rjbs for this suggestion.