OSCON 2008: Wrap Up

My third O’Reilly Open Source Conference has come and gone. Sure, it ended over a week ago, but this is the first moment I’ve had a chance to sit down to write this. Last year, I was able to spend a few hours with the free wifi at the Portland airport, but this year my flight was scheduled before 7:00 AM, so I was left with little time to write. As I have the past two years, I had a great time. It was good to see Al, Brad, and Kevin again. This year, Sam and Jonathan joined us as well. While the #oscon IRC channel has surely been vacated by now, I hope see the channel denizens again on Freenode.

About half way through the week I was accused of being a prolific blogger. Just how prolific, I wondered. So I went through the list of all of my posts prefixed with “OSCON 2008,” including this one. As it turns out, I wrote a grand total of 17,270 words. The post for Damian Conway’s Perl Worst Practices has the dubious distinction of containing the most words, at a scale-tipping 1,209. Other posts I made during the conference, but not directly related to any sessions totaled 1,608 additional words. Prolific? Perhaps.

My primary reason for writing so much about the sessions is for my own reference. These posts allow me to go back and remind myself of what I did and what I learned. I just happen to post my notes publicly, because I hope they may be useful or informative for others. In particular, anyone who couldn’t join me at OSCON. Naturally, I was a bit curious to know if anyone was actually reading my articles. So I checked.

I typically receive about four visits per day. Google’s Analytics service uses JavaScript to collect data, so I’m fairly comfortable declaring that my visitors are probably real people using real Web browsers, rather than search engines or even feed readers. The regularity of visits is curious, though. I’ll have to investigate my traffic a bit more closely. Visits to my site began to rise dramatically on the first day of OSCON, peaking mid-week when the main conference got started. Hopefully, people are enjoying my writings, because I enjoy doing it. I’ve tagged all of my 2008 OSCON posts with the oscon08 tag, which will make it easy to refer to them later.

Thinking back over what I’ve written, I’m not completely pleased with the finished product. I don’t think attempting to post entries so immediately after each session is the best approach. In the end, I don’t believe I’ve done the topic or the speakers justice. Next time, I may simply take notes in preparation for a proper article after the fact. The Tuesday night keynotes, in particular, would have benefited from this treatment.

I’ve been a fan of Damian Conway since I first attended one of his talks at a San Diego Perl Mongers meeting in late 2005. Since then, I’ve been fortunate enough to see him speak at two OSCONs as well as attending his Perl training at my place of employment. There must be something about Australians, because one of the best presenters at OSCON this year was Paul Fenwick, also from Down Under. I highly recommend them both. Entertaining and educational, a far too uncommon combination.

This year I found that I wasn’t as excited about OSCON as I have been in the past. It’s been more than just this past week, too. A lot of things that once brought me joy have left me feeling empty. I didn’t know why, and assumed that I was simply too busy, trying to juggle too many balls again. I was wrong, though.

Near the end of the Perl Worst Practices tutorial, Dr. Conway was asked how he became so proficient at what he does. In response he asked who in the room practiced martial arts. No one in front of me raised their hand, but I suspect at least one person behind me, in addition to myself, raised their hand. Disappointed, he cycled through a couple other sports (cycling and tennis, I think) until he received a reasonable response. The point, of course, was that, like these sports, programming requires passion and should be practiced every day.

That’s when it hit me. I don’t write code every day anymore. I’ve been writing code as long as I can remember. My first Hello World was written in BASIC at the tender age of four. Lately, I haven’t spent any time at all writing code. I’ve been waking up early, working long hours, going to bed early, and spending what free time I have left with my pregnant wife. That has to change. So now I’m back to staying up late, doing more work from home, and stealing moments to write code; even if it’s just a few lines. I’m also working on a talk I plan on presenting to my coworkers and would also like to give at SCALE 7x next year.

Conferences are not always about the tutorials or the sessions. Sure, they offer plenty of opportunities to learn something new, but that’s almost a complement to the main event. It’s about networking with our peers. Most importantly, it’s about revitalization. My annual pilgrimage to Portland replenishes my spirit. I return refreshed and full of creative energy. The trick is maintaining the momentum.

O’Reilly, the New Gartner

While hanging around the O’Reilly booth during the Open Source Conference last week, I picked up a coupon for 30% off the cost of Open Source in the Enterprise. I thought, great, maybe I’ll shell out a few bucks to see what this is all about. I didn’t see that $399 price tag on a PDF download coming. Not only that, but apparently one can subscribe to Release 2.0 and receive a whole six issues for the low price of $495.

I suppose O’Reilly is targeting the same market as Gartner. Companies willing to spend what, to an individual, is a lot of money to have experts tell them what to think.

OSCON 2008: The Expo Floor

As with previous years, Wednesday and Thursday were highlighted with occasional trips to the expo hall. Not necessarily because we had any real desire to do so, but it was something to do. Exhibitor booths ranged from the large, flashy corporate sponsors, competing for prime real estate, to the Open Source projects and organizations, banished to obscurity in the far corners. I’ll say this for conference organizers, though; they know how to get people into the expo hall: provide complimentary booze and snacks following the afternoon sessions. Not that I spoke with any vendors while enjoying these niceties, but I was theoretically in a position to be accosted by the very same companies plying me with alcohol.

Every conference I’ve attended—though that hasn’t been many—have used the same gimmick in an attempt to get people to visit vendors. Each markattendee is given a “passport” with a number of vendors listed. The goal is to visit each of them and receive a sticker for the effort. The reward is entry into a contest, the odds of winning being proportional to the number of people who fall for the scam. I always start out collecting stickers, but quickly realize why I’ve never gotten as far as entering the contest. I really hate talking to salespeople. I’m not interested in any of the products being pitched and, even if I were, there’s nothing they can’t tell me that I can’t discover for myself on the Web. At one point, I’m pretty sure Eric S. Raymond even tried to hand me a flyer—I’m unsure if it was about Free Software or sex—but I politely declined and went on my way.

I was pleased to run into Alyson at the Ticketmaster booth. We met at SCALE6x in February, where she was again working the Ticketmaster booth, but also assisting us with the Perl Mongers booth. It was good to catch up with her. I was sure to tell her how much I admire what she does for the Los Angeles Perl Mongers and how I wish we had someone like her in San Diego.

Sun actually had a nice booth this year. They provided a place to relax, snacks, and a wifi network with a hidden ESSID for people fed up with the one provided by the conference. I didn’t spend much time there, but I did take advantage of the wifi as I lounged in the O’Reilly booth.

Amazon was running what I found to be an interesting gimmick in their booth. “Ninja” code. It was just a bit of self-modifying Perl written out on some poster board. Tell them what it did and get entered into a raffle. It was actually a fairly clever way of advertising for talent to hire. Heck, it got me coming back to the booth a few times, if only to make fun of it. I did spot some potential improvements.

Intel’s gimmick this year was actually kind of interesting. Everyone who visited their booth could receive a sticker with a number on it to wear. The goal then is to find the person wearing the matching number. People would post a phone number or Twitter handle on a cork board at the Intel booth for others to find. I posted my Twitter information but unfortunately my default view only includes friends, not replies. That, and the ever present fail whale made me miss my partner’s tweet. Mere minutes after the raffle on Wednesday, as I was getting ready to throw away my sticker, I hear Jonathan call out to me that he’s found my partner. As it turns out, there would be another drawing on Thursday, so we went ahead and entered. That led to an extremely annoying sales pitch. He wanted us to tell him about Moblin. Just to spite him, I told him about Snapdragon instead. What do I keep telling myself? Stupid gimmick contests aren’t worth it. What I did like about it was the social aspect. I met someone new, had a pleasant conversation, and he’s now following me on Twitter.

On Thursday at the O’Reilly booth, Brad was interviewed on camera by chromatic. I expressed my desire to see it play during a keynote, but that wasn’t meant to be. Brad uses Perl to do cool things with telescopes and munge astronomical data, which is of interest to the O’Reilly editors. He’s been asked to write an article about it, and I’m trying to convince him to give a talk at next year’s Open Source Conference.

[tags]oscon, oscon08, oscon2008[/tags]

OSCON 2008: The Twilight Perl

It’s the last session of the conference, and I saw Damian Conway’s name on the schedule. So here I am, attending The Twilight Perl. I have no idea what to expect, but come on, it’s Damian. It’s got to be good.

Based on past experience, this is likely to be a fast-paced, highly-entertaining talk. One which will be impossible to summarize, or no doubt even to explain, here. Needless to say, if you’re not here, you’re missing out. I intend to sit back, relax, and enjoy.

He’s talking about the defining characteristic of a hacker. Particularly when they’re told that something is impossible and can’t be done. The reaction is typically, “you wanna bet?”

He just presented a slide that read, “Let’s leave behind the shackles of sanity…”

Now I’m scared.

This is a great talk. It’s a series of examples of things “you can’t do in Perl.” At least, not until Damian shows us how.

I think Brad may have taken notes. Which is good, because now I wish I had.

[tags]oscon, oscon08, ocon2008, Perl, Damian Conway[/tags]

OSCON 2008: Perl and Parrot

It’s the first session on Friday and I’m in Perl and Parrot: Baseless Myths and Startling Realities with Tim Bunce. As people were filtering in from the break, Tim displayed one of my favorite xkcd comics for us to enjoy.

There are so many holy wars debates about whether one language is better than another. Instead, the right question to ask is whether or not the developer’s skill set is right for the job. I agree. When I look for a developer, I’m more concerned with how they think than in what language they think.

Unfortunately, Tim is preaching to the converted in this talk. Nearly the entire attendance already uses Perl and don’t believe the myths. With that, let’s conquer them anyway.

Perl is Dead

No it isn’t. It’s two decades old and still growing strong. The books aren’t flying off the presses with great speed because the Perl community already has excellent books.

The trend when searching for “web development” jobs shows Perl growing very slowly in relation to other languages, particularly PHP. However, searching for “developer” jobs shows Perl growing very strongly and holding its own extremely well.

As a lurking member of the Perl community and an active member of my local Perl Mongers group, it’s been my experience that Perl programmers tend to be quite happy with their jobs. Which, unfortunately, has made it very difficult for me to find talent.

In fact, Perl is growing faster than ever. A simple look at how much work is going into CPAN will show that. The community is strong and Perl is everywhere.

Perl Is Hard to Read / Test / Maintain

Only if you’re doing it wrongly. We have Perl Best Practices, to use as the default documentation for coding standards, leaving developers with the need to only document when they deviate from the norm. There’s Perl::Tidy, to force any Perl code into one’s own personal style. Perl::Critic for ensuring that code is being well-written and follows best practices. And there’s no end to the Test::* modules and the work being done to make testing easy. There’s even a coverage analysis tool.

Perl 6 is Killing Perl 5

In fact, Perl 6 saved Perl 5, but one has to be close to the center of the community to see that. One should notice that Perl 5.8 and 5.10 have both been released in the time that Perl 6 has been in development.

There is a culture of testing around Perl. So many tests have been written for Perl 6, and the language is being defined by its test suite. This culture has leaked out to the community. In fact, I find there now exists a lot of peer pressure in the community to do proper testing.

Perl 6 Is Not Perl

Yes, and no. Unfortunately, I was so busy trying to catch up with the last section that I missed most of the points Tim made. In the end, I feel that this is fine. If Perl 6 was supposed to be Perl 5, why not just use the perfectly decent, already existing Perl 5? Which is still being actively developed.

Perl 6 Will Never Be Ready

It’s not on a schedule and, if it were on a schedule, it would be crap. It will be ready when it’s ready. Better to do it right than screw it up. The development model encourages a lot of experimentation, and it’s difficult to schedule experimentation.

There’s No Perl 6 Code

Sure there is. Thousands of lines of Perl 6 code exist in the test suite that came about from Pugs. These very same tests are being used in Perl 6 development today in the form of Rakudo, Perl 6 on Parrot.

The important thing to note is that Perl 6 refers to a specification. It does not refer to a particular implementation. Any implementation that passes the test suite may call itself Perl 6.

From an authority in the audience (who I don’t recognize, unfortunately), we have been told that there will be a useable Perl 6 by this Christmas. A round of applause ensued.

[tags]oscon, oscon08, oscon2008, Perl, Tim Bunce, myths[/tags]

OSCON 2008: Friday Morning Keynotes

The Friday morning keynotes opened with a video demonstration of the capabilities of Blender. Apparently, it renders scenes using crappy 80s computer-generated music. It’s no Wall-E, but it’s quite pretty.

First up this morning Allison introduced Benjamin Mako Hill of the MIT Center for Future Civic Media. He will be speaking about Advocating Software Freedom by Revealing Errors. He seems to be far too highly caffeinated for the room this morning, and is speaking very quickly, and the sound system is too loud, so I don’t entirely know what’s going on.

The gist of the talk is that, when errors become visible to the user, it exposes something about the underlying technology. He’s provided several obvious examples of ATMs crashing with Windows errors. He runs the Revealing Errors Blog, too.

Next up is Dawn Nafus of Intel, speaking about Three Challenges. Unlike most speakers at OSCON, she is an anthropologist. There is a notion, particularly in the mobile devices industry, is that adding more and more data is equivalent to adding context. This is phenomenally untrue. Data without context is, more often than not, useless.

Her second challenge is the global food crisis in food and water, particularly in the developing world. We Open Source folks are quite good at decentralizing power, just look at how so many of our projects are organized. Technology is fast going mobile, and as these devices become cheaper, they are more easily put into the hands of people in the Third World. There are many applications for this technology, we just need to be creative about how we go about taking advantage of this proliferation in technology.

The third challenge is to strengthen global growth in technology producers, not just consumers. We must better understand where growth is coming from.

Annoyingly, we have another speaker from Microsoft this year, Sam Ramji. He’s, apparently, here to tell us about Open Source Heroes. He’s telling us about platform trends, something we already know about. There’s some slide about applications moving into Internet moving into Web applications over the time frame 1995 through 2005.

Microsoft sees Open Source growing strong over the next decade, but it’s hard to take him seriously, given the company’s history. While he’s talking about Microsoft’s contributions to Open Source projects and the work they’ve done to improve their ability to work on Windows, I’m constantly on edge around Microsoft, wondering what they really have planned. In fact, I may have just answered my own question. Improving the use on Windows, thus attempting to ensure the continual use of Windows. They’re desperate to hold on to the market share they’ve so deceitfully gained.

This talk can be summed up as, Hey look, we’re not evil, look at this boringly enumerated list of Open Source stuff we’ve done.

He’s announced that Microsoft has become a “platinum” sponsor of the Apache Software Foundation. That doesn’t sound good to me. Do people forget the embrace-extend-extinguish history of the company? Should we really trust them so much?

Next up, refreshingly, is Tim Bray of Sun Microsystems, speaking to us about Language Inflection Point. There’s background music, and he’s speaking very quickly. He’s going over slides demonstrating various ways of measuring the popularity of programming languages. From search engines to book sales.

He took a survey of the room. A show of hands for who is using various languages and if we would still use it in an ideal world. Python and Ruby were the only two languages with a positive delta, more people raised their hands to show that they’d use it in an ideal world than those who currently use it.

From there, he launched into a discussion of each language and their benefits and drawback as he sees them. Obviously subjective, but they’re not entirely bad points. He never got to Perl, so I’m a bit disappointed.

Finally, we have Jeremy Ruston of BT Design, who created TiddlyWiki. He’s here to tell us about Learning from Airports.

At airports today, the actual actions of taking off and landing is more a side-show. There are more shops and things like security lines (and waiting), and the actual arrivals and departures are a very short part of anyone’s visit.

Airports do serve as an excellent analogy for technology standards. Single sign-on: passports. Access tokens: boarding passes. Standard documentation: universal signage.

The keynotes wrapped up with a question and answer session with each of the morning’s speakers. The first question, unsurprisingly, was about patents, and what will it take for Microsoft to commit to not using patents against Open Source. The speaker claims that developers should never have to worry about it, but it was unconvincing.

Unsurprisingly, the majority of the questions were directed to the Microsoft representative. They ranged from (and I’m paraphrasing), why Microsoft is evil and patent bashing thinly veiled as questions. Unfortunately, the presence of the Microsoft shill speaker on stage led to a completely wasted question and answer session.

But now it’s break time, so I’m off in search of more coffee. OSCON starts way too early in the morning.

[tags]oscon, oscon08, oscon2008[/tags]

OSCON 2008, Day 5

Friday morning, and I’m sad the week is over. However, I’m a bit happy, as well. In shortly over 24 hours, I’ll be home. I love attending OSCON, but it takes its toll. For example, one of the things that makes getting to breakfast difficult is all the free beer available to us. One might ask, Why not just avoid partaking of the local nectars and get a good night’s sleep instead. To that I say, Are you crazy? There’s beer! And it’s free! As in beer!

SourceForge held a couple of parties for us last night. One was at the Jupiter Hotel and the other, branded BeerForge, was at a party venue down the block from the hotel. Obviously, we attended both—twice.

Josh and I started out at BeerForge. After a while we got hungry and found Brad, Alice, and Sam over at the SourceForge awards party. As things got too crowded, we all went over to BeerForge. As the venue grew too hot and loud, we ended up back at the SourceForge location, where we could be outside at least. After that venue closed down, Josh and I went back to my hotel room to polish off a growler—a half gallon—of beer I had picked up at Rogue the night before.

I’m now at breakfast, after a whole four hours of sleep, and extremely thankful for the coffee, fruit, and pastries that have been laid out for us. The fresh air and the walk to the convention center helped, too. This week’s festivities make me almost want to take a pass on the Oregon Brewers Festival. I said, almost.

Fortunately, there are only two sessions today, leaving me with only two decisions to make. However, after a more careful review of the schedule, the choices seem obvious.

First, Tim Bunce is giving a talk on Perl and Parrot: Baseless Myths and Startling Realities. I’m not as enthusiastic about Perl 6 as I once was, but I quite enjoy Tim’s sessions. Following Tim, in the same room, is Damian Conway. He’ll be presenting—oh, does it even matter?

I will be faced with a bit of a dilemma tonight. My flight home is scheduled for 6:40am tomorrow morning. However, the MAX light rail ends its service at midnight and doesn’t resume until 4:30am. Several years ago this may have been acceptable, but not in the airports of today. So my options are to get a couple hours of sleep followed by calling a town car, or check out of the hotel tonight and make my way to the airport before the MAX service terminates for the night. Quite honestly, arriving at the airport six and a half hours early is still shorter than some of the layovers I’ve had.

Well, I’m going to finish my breakfast and tag some photos. In just under an hour, the final day of keynotes—and thus of OSCON—get started.

OSCON 2008: State of the Onion

It’s finally time for the State of the Onion. Larry Wall introduced this year’s theme, Rules That Are Meant to be Broken.

If he had Perl to do all over again, what would he do different? Only two things, nothing, and everything. Perl 6 is the everything part of the answer.

In Perl 5, one of the problems that creeps up is that regular expressions (regexes) are strings. The best example of this is variable interpolation in regexes. In Perl 6, this has been fixed. They are now their own language.

Like cargo-cult programming, parsing has turned into its own cargo-cult. Perl 6 breaks the mold when it comes to copying languages (the old lex/yacc loop), and instead uses polymorphism in its sub-language design.

Both regexes, double quoted strings, and single quoted strings are examples of sub-languages in Perl 6. Each of these sub-languages has its own parsing rules and therefore parsing implementations. This allows is code reuse. Parsers can derive behavior from other parsers, but treat the tokens differently as necessary.

Fundamentally, Perl 6 is very simple. It has no CORE. It has no built-ins and no operators. What Perl 6 has given us (will give us?), in effect, is a just in time lexer. Tokens and their behavior can be defined on the fly, on a per-sub-language basis.

There are quite a few changes to the regularity of regular expressions. Mostly what this means is that Perl 6 regexes are incompatible with those used in Perl 5, and that Perl-compatible regular expressions (PCRE) aren’t (or won’t be).

All languages tend to fall into the One True Syntax trap. Perl 6 has aimed to break out of that trap. By giving the user enough power over the syntax (rope) to design the language that suits them (hang themselves).

I didn’t enjoy the State of the Onion as much as I have in the past. I suppose that’s to be expected. Larry did warn us at the top of the talk that it would be serious and contain only a single joke. For as great a writer as Larry is, his ability as a public speaker is lacking. That’s okay, though. I’d rather he not shift focus away from the design and development of Perl.

[tags]oscon, oscon08, oscon2008, Perl, State of the Onion, Larry Wall[/tags]

OSCON 2008: Perl Lightning Talks

It’s 4:30pm on Thursday and that means it’s time for the Perl Lightning Talks. The crowd is excitedly gathering, but there are still plenty of seats as I write this.

Sorry guys, these are five minute talks. If I start summarizing, I’ll fall way behind. You’re lucky I even take the time to write this.

If you really want to know what’s going on, there’s a schedule.

For those of you still reading, here’s a bit of stream-of-consciousness for you. Note, if trying to match these up to the schedule, they are in order, but I didn’t comment on all of them.


Testing databases with TAP is cool. You really can test anything with it.


Nice to see The Perl Foundation get some slots in Google’s Summer of Code this year.


It’s interesting to see how much Perl is used to compile USA Today every day. Without Perl, it would be a very empty paper. Though I’m not convinced the content would be much different.


Schwern tells us that, in thirty years, time will wrap.

$time = 2**31 - 1;
print scalar gmtime $time;

Tue Jan 19 03:14:07 2038

$time = 2**31;
print scalar gmtime $time;

Fri Dec 13 20:45:52 1901

Wait, that’s not good. But he’s fixed it.


Sweet, Perl on Google App Engine!


Use autodie instead of Fatal. It’s better.

Also, Paul Fenwick is one of the best speakers I’ve seen in ages. I hope he becomes an OSCON staple.


F*ck, the F*cking thing is F*cked had the best slides.

IPv6Experiment.com (warning: there may be porn).

[tags]oscon, oscon08, oscon2008, Perl, lightning talks[/tags]

OSCON 2008: Hacking Wetware for Fun and Profit

My second mid-afternoon session is Hacking Wetware for Fun and Profit with Paul Fenwick. Andy Lester introduced Paul, and basically said he was awesome and couldn’t figure out how it is he’s never been in this country to speak before.

Paul’s preferred title for this talk is Human Interfaces for Geeks. Most geeks think of things like keyboards, mice, and monitors when it comes to interfaces. But that’s not what this is about. Those are human-computer interfaces. We’re here to talk about human interfaces. Things like aural or visual communication.

Geeks can be quite awkward when it comes to interfacing with other people.

There are normal people out there who do make sense to geeks do make a lot of sense to geeks, Sims. They have wants, fears, and needs. These are easy to see, because they have status bars. Unfortunately, real people don’t have status bars.

One thing learned from the sims, if you want something done, ask a happy person to do it. They will be far more willing to do it and will end up being far more helpful. How do you make people happy? Coffee and chocolate will go a long way towards making people happy and giving a higher priority to your requests.

Even without this kind of base bribery, we can make people happy. By matching one of their goals to one of our needs. Humans, when they’re instantiated, have a set of default goals, and no one ever changes these. One of the best goals for this is a feeling of importance. How can you make someone feel important? Talk about them.

It’s easy to talk about someone. Practice active listening. Essentially, be an Eliza bot. Listen to what someone is saying, then repeat it back to them in the form of a question. If they’ve been on vacation, ask them about it. If they’ve accomplished something, ask them about it. This makes people very happy.

Another way to make someone happy is to make them feel important in front of their peers. If someone submits a patch, recognize that in front of the community. I did this once (because I’ve only ever received one patch for my one and only CPAN module). Someone from Australia submitted a patch and I put his name in the Changes file. I know I feel amazingly good when I’ve done a good job, so I do my best to point out when people have done a good job.

People, particularly in the United States, tend to look at situations in an adversarial way. When someone wants something and someone else is standing in their way, he will want to force his way past. This is rarely an effective method. Instead, those standing in the way are people, too. The best method is to take action to make that other person feel good about themselves. When they are happy and feel good about themselves, they are far more likely to go out of their way to help.

This was a good talk. Geeks rarely read books aimed at management types. A lot of these books place a lot emphasis on the concept of win-win and interpersonal communication. It’s nice to see a geek taking these lessons and putting them into terms other geeks can understand. We definitely need more geeks with people skills.

[tags]oscon, oscon08, oscon2008, people[/tags]