Memoirs of an OSCON rockstar, Day 1 (Perl Security)

Memoirs of an OSCON rockstar, Day 1 (Perl Security)
I wake up and go to Damian Conway's tutorial on programming vim. After a mere 10 minutes I've already learnt a huge bundle of new tricks, and have additioanl goodies added to my .vimrc file. After 30 minutes I realise that I can't stay. I'm tired, and I can't stop thinking about the tutorial I'm giving in the afternoon. With great reluctance I excuse myself, head to the Speakers' Lounge, ingest coffee, and hack on slides.

At this point the Speakers' Lounge may as well be called the Aussie Lounge. There's Adam Kennedy, Pia Waugh, Laura Thompson, Luke Welling, Anthony Baxter and Stewart Smith all there. Jokes are made about 'OZCON'.

I keep encountering new people at the Speakers' Lounge. They're all famous, but I have to work on my slides. Three hours is a lot of presenting, and I'm really trying to make a good impression. It's my first time at OSCON, and my first time in front of an American audience.

When I present my tutorial, I find my audience is huge. I've got 80-100 people! My presentation ends up being "okay", even though I'm handing out chocolates for anyone who asks a good question, or comes up with a good answer. I'm not happy with my pace (too quick), and fear some of my topics may have not fully sunk home with my audience.

The 3 hour tutorial format is hard. People naturally get learning fatigue, particularly if they're doing theory for a long time without doing practical exercises, or getting up for a break. That's why lectures at University are usually an hour or less, because that's about as long as you feed an audience theory before it stops being absorbed.

One thing I misjudged is how many questions I'd receive. I figured going to OSCON I'm going to have an entire contingent of extremely smart, extremely vocal, high-profile hecklers who'll quiz me on difficult topics. This never happened; I don't know if it's because my audience was polite, or because my hecklers didn't arrive; I suspect it's a combination of both.

Despite the fact that I really thought my tutorial was luke-warm, I found that throughout the week I have plenty of people actively seeking me out and telling me how much they enjoyed the talk. Thank-goodness for the +2 aussie bonus. For those who are curious, I received a 4.55 average rating across 40 evaluations, which isn't too shabby at all.

In the evening I went to have sushi with the Moose and Best Practical crowd. From there, back to the hotel, where Andy Lester catches me and asks if I want to meet at the DoubleTree hotel to help him work on his tutorial the next day. Apparently there'll be beer, and since I'm exhausted from my tutorial, I figure I could really do with a beer.

When I arrive at the DoubleTree, I find there's a big contingent of drinking Australians, along with a decent number of Python people, who, as usual, are all famous. I join the table, swap stories, admire tattoos, and discuss various topics. Andy arrives, but proclaims that he won't be upset at all if I finish another beer or two, so I don't actually help him with slides at all. Oops!

Eventually, I head back to the hotel knowing that I have the rare luxury of not giving a presentation the next day, and can relax a little.

(read more...)

OSCON 2008, Day -1 (Preparation)

OSCON 2008, Day -1 (Preparation)
The day before the official start of OSCON I spend sleeping-in. After yesterday's timezone spanning travels, sleep in a real bed is a luxury. However the rest of the day is spent working on my tutorial for Monday. It seems that no matter how much preparation I do beforehand, I've still got last minute changes I wish to make.

My original room has the light-rail go past, which can be a little noisy, so I ask the hotel if I may be shifted to the quiet side. At this point I discover that having an Australian accent in Portland confers a +2 modifier to all charisma checks. I now have a staff member who thinks well of me, and a room which is not only quieter, but also larger. Nice.

The worst thing about the hotel is the coffee. Or, more correctly, what one is assumed to add to one's coffee. In Australia, we have this thing called "milk" that goes in coffee. Sure, I'd heard stories about "non-dairy creamer", but I always thought that was an urban myth, or perhaps a running joke from some obscure Monty Python skit or cult movie that I've missed. Today, I discover it's real. If you were to ask me all the things I've never want in my coffee, you'd pretty much have the ingredients for "non-dairy creamer". Check it out:

Corn syrup solids, partially hydrogenated soybean oil, sodium caseinate (a milk derivative), dipotassium phosphate, mono and diglycerides, titanium dioxide, silicon dioxide (anti-caking agent), artificial flavor and artificial color (Annatto).

And the best part of non-dairy creamer? After the ingredients, in bold letters, "contains milk".

Since I'm hungry, and wanting a cup of coffee that doesn't contain partially hydrogenated soybean oil and dipotassium phosphate, I decide to do some exploring. There's a mall a short walk away from where I'm staying, so I go there. The mall is cool, it has an ice-skating rink at the bottom, but best of all, it has a Pirate Shop.

I wander into the pirate shop and am greeted with, "Ahoy there matey". As soon as I respond with, "Ahoy there, m'hearty, it be a fine day for plunder'n," discover that I've just become a favoured customer. Having an Australian accent, and speaking like a pirate made me an instant hit. I was asked the sign the Capn's log, and I share tales of adventure on the high seas with the staff. I take the opportunity to pick myself up a cool bandanna that will be perfect for my next "teach Perl like a pirate day" (Today we be learning about @ARrrrGV).

Eventually it comes around to when OSCON pre-registrations are open. I know Adam Kennedy is already at the conference, since I've been speaking to him on IRC. I also know there's a Postgres party, but if I want to come I better turn up soon to get an invite.

I arrive at the convention center, find Adam, find the speakers' lounge, find coffee, and discover that every few minutes I'm either bumping into an Australian, or a Perl person I've known for years but never met in person. A lot of this period is a blur, as the whole conference was spent meeting people; everyone I speak to ends up being famous. However I've got an Australian accent and a cool bandanna, so everyone thinks I'm amazing.

In the Speakers' Lounge I collect my registration pack, and I meet Shirley, who's the speaker liason. Given the sheer number of speakers at the conference, and the fact that speakers are typically troublemakers (myself included), I'm impressed that Shirley appears to not be suffering massive sleep deprivation, and actually has enough time to chat with me.

Having collected all my conference goodies, I decline to go to the Postgres party (despite having obtained an invite), since I'm still not happy with my tutorial preparations, especially since the flight delays have me a day behind on my planning. Most notably, autodie didn't have a stable release, but I was using it everywhere in my slides. Better get that release out!

In hindsight, I'm really sad I missed the Postgres party. Having met a number of members of the Pg community later in the week, I can attest to them being awesomely cool people, and I would have loved to have spent more time with them.

At 2:30am Portland time, I release autodie 1.99 onto the CPAN. Exhausted, I collapse into bed, knowing I need to be awake early in the morning for breakfast, and the first real day of OSCON 2008.

(read more...)

Memoirs of an OSCON rockstar, Day -2 (Getting there)

Memoirs of an OSCON rockstar, Day -2 (Getting there)
OSCON is over, but for the next few days I'll be backblogging my experiences there. I'll finish with a grand summary, if you don't care about the details, wait until the end.

This year I went to my very first OSCON, in Portland, Oregon. I had always heard lots stories about OSCON, but being in America it's only very far away (I live in Australia), and the airfares are correspondingly very expensive.

This year, I thought I'd give it a shot. Knowing that being accepted as an OSCON speaker would be hard, I took a shotgun approach, and submitted a battery of talks for consideration. I was honoured, and very surprised, when the selection committee asked me to not only do a tutorial (3hrs), but two standard length talks (2 x 45min) as well!

The tutorial is of most importance here, since tutorial presenters are given a modest sum to offset their airfare. Without that, the cost of airfares from Australia would have me thinking twice. The talks were important because they expose me to a larger audience, and I measure my self-worth by the size of my audience.

The trip to OSCON itself was interesting. I decided that I would overcome jetlag before I arrived in Oregon. This meant no sleep the night before, and snoozing as soon as I boarded my 10am flight. As things turned out, my flight was delayed due to "weather" by more than six hours, not leaving until after four in the afternoon. That pushed back my sleeping time quite a bit. Sleeping in the airport wasn't really possible, mainly due to the constant announcements, and the fact that the flight wasn't pushed by six hours in one fell swoop, but was rather agnozingly moved back in bite-sized pieces.

However as the phrase goes, when one is handed lemons, one makes a lemon beverage. Due to the flight delay, all passengers who were paying attention ended up with a $30 "meal voucher". Since the bookstore accepts these, that was most of the payment needed for a 4GB SD card, which lets me pack a lot of entertainment into the palmtop computer I had borrowed from Jacinta.

In my sleep-deprived state I lacked the ability to do very much of technical value, so much of my time was spent exploring the terminal and making friends with the people at the coffee-shop, book-store, and airline staff. The airline staff had both ample meal vouchers and a lack of accountability, and the bookstore agreed to give me a minor discount, so by the time the plane had I arrived, I had accumulated more than $90 worth of goodies (at airport prices).

How did I get so many freebies, you may ask? I had people like me. The airline staff had to watch the gates, but they were bored. I'd offer to bring them coffee, chat with them, and generally be a nice guy. The delayed flight isn't their fault, but they're still the ones to put up with grumpy customers, so being a nice person goes a long way. In the bookstore I just smiled, and asked them about the vouchers, their business, and what options I had available.

Eventually, we got into the air. My original plan was to sleep according to the Portland timezone, wake up near the end of the flight, and work on my talks. However being so tired, and with the addition of an over-the-counter sleeping pill, I ended up sleeping practically the entire flight, waking only for meals. Since this was a 14 hour flight, and I was in economy, I was extremely thankful to be able to sleep through it.

Eventually, in Los Angeles, we touch down, and of course I've missed my connecting flight. I'm given details for a new flight that I've been moved to. I'm happy, the new flight is more direct, although due to the reschedule I have to pick up my bags, get my airline to give me a new ticket voucher, and check that in with my new connecting flight. Sounds easy, right?

Well, it would be, if it were not for the fact that a few hundred people were in the exact same situation as myself. Three hours of waiting in a queue later I've watched some episodes of BattleStar Galactica, made friends with some of the other passengers, and missed my connecting flight. I get yet another connecting flight, and proceed to check-in.

At this point I discover a few things are done differently in America. In any sizeable airport in Australia, when one checks in bags, they are weighed, and then sent on a conveyor belt to be screened and loaded. In America, one gets the weighed, stickers are attached, and then the passengers manually take them to the screening stations.

For anyone who hasn't figured it out yet, the obvious exploit here is to bring an underweight bag, have it weighed, and then pack it full of extra things (such that it would be overweight) before handing it to screening.

The other thing I discover is that flying domestic within the USA comes with much more thorough security checks than flying internationally to the USA. I have to take off my shoes, show my boarding pass, show my passport, and (because I'm special) be frisked down and have the contents of my carry-on baggage unpacked and tested half-a-dozen times for explosives. The security guard doing the extended screening was nice, though. We shared travel stories, swapped a few jokes, and he complimented me on my taste in shirts.

Eventually, eventually, I arrive in Portland. My original itinerary had me touching down in the early afternoon, but with all the delays it's now quite late at night. I catch the light-rail to my hotel. The Portland light-rail rocks. It costs me $2 to go from the airport to my hotel, and that allows me to take my bike (if I had one).

Compared to Australia, hotels in Portland are very affordable. I'd elected for what was essentially the cheapest hotel I could find, figuring that any time I actually spend awake in my room is wasted. The hotel ended up being much nicer than I thought it would be, and included free wireless internet access. As I would discover, practically the whole of Portland has free wireless. There's also some thing called a "Mr Coffee" and "Non-dairy creamer (contains milk)". However in my exhausted state, I figure I'll work them out in the morning.

(read more...)

autodie 1.99 stable released - codename jarich

autodie 1.99 stable released - codename jarich
I said that I'd get a stable release of autodie out before OSCON. Since OSCON starts in 5 hours, and I intend to use all that time for sleeping, that means it's being released right now.

After 243 commits since project inception, and three and a half months of work, the first stable release of autodie is making its way to the CPAN. This is not marked as a developer release, so you'll be able to install it using the regular CPAN installer, or dh-make-perl, or whatever other tools you prefer to use to manage your modules.

The observant reader will notice this is a 1.99 release, but I've occasionally bandied around the phrase "autodie - It's Fatal 2.0". The 1.99 release is because I expect to get feedback, patches, and bug-swatting done over OSCON, so the hallowed 2.0 version will appear after the 1.99 release has run the gauntlet of being (ab)used by my peers.

That's not to say the 1.99 release isn't good. It's awesome. autodie has already gone through eight dev releases, as well as being used on my own systems. Go and use it.

Note that autodie does overpower (and on some systems, overwrite) the version of Fatal.pm that comes with Perl. Some of the internal interfaces of Fatal have changed to support new functionality. If you've been calling internal Fatal subroutines (ie, things not documented in perldoc Fatal), then you may wish to hold off until the 2.00 release.

The 1.99 release codename is "jarich", after Jacinta "jarich" Richardson, who pretty much gave up an entire week of her time assisting me with talk preparations for OSCON, and doing practically nothing else. Jacinta, you rock.

For those of you at OSCON, I'll be doing a short talk on autodie at the Perl lightning talks, including showing off some of the cool features like building your own language packs and exception systems.

(read more...)

Journey to OSCON / Module releases

Journey to OSCON / Module releases
It's 4:30pm in Oregon, the jetlag is pretty bad, and I'm drinking yet another coffee to perk myself up. The thing is, I'm still in Australia, where it's stupid-o'clock in the morning. I figure getting the jetlag out of the way now and sleeping on the plane is going to be better than being awake during the plane and whacked in Portland.

At least, that's the plan.

I've spent all of today, and all of yesterday, and all the day before that working on slides. I'm giving 4.5 hours worth of presentations in tutorials and conference talks, and since my presentations tend to move fairly quickly, I have more than one thousand slides prepared. I'm still adding them, or at least I was until brain crashed.

So, as a "reward" for having worked on so many slides, I'm writing code. At 2:30 in the morning. I've pushed out a new release of IPC::System::Simple. It now has capturex() and systemx(), which are variants of capture() and system() that never ever ever use the shell, even if you use one argument. Thanks to ikegami for encouraging me to implement this.

In order to make sure my Perl Security tutorial matches reality, there's also a new release of Proc::UID making its way to the CPAN. It's mainly a tidy-up of the old code, with better documentation, tests, and build system.

What I haven't got out yet is the stable release of autodie. Yes, I know it's what everyone's waiting for. Before I can release it, I want to walk through my TODO list and figure out what really needs doing, and what can be put off. Unfortunately my spell-point meter is dangerously low from the jet-lag, and casting "comprehend project" is rather challenging right now. Instead there's a good chance I'll be making a release while over the Atlantic, and pushing that to the CPAN once I touch-down.

For those hoping to meet me at OSCON, I'll be landing Saturday, but I won't be very sociable until Monday afternoon, after the stress of my tutorial is over.

(read more...)

Bitcoin QR code This site is ad-free, and all text, style, and code may be re-used under a Creative Commons Attribution 3.0 license. If like what I do, please consider supporting me on Patreon, or donating via Bitcoin (1P9iGHMiQwRrnZuA6USp5PNSuJrEcH411f).