OSCON 2008: Stick a fork() in It

First session of the day and I’m in room F150 (brought to you by Ford). The F wing, bereft of wifi. I’m here for Stick a fork() in It: Parallel and Distributed Perl with Eric Wilhelm of Scratch Computing. It’s great to see how popular Perl still is. It’s standing room only in here.

A computer once referred to a human worker who would perform calculations. This was a fairly easy thing to cluster and “run” several computers in parallel. As time progressed, more and faster work was desired. Enter the electronic computer, and specifically for this talk, the Cray. As with anything, the inner workings of the Crays of old can be recreated in Perl. Just use the Cray module, no problem (if only it existed).

After the history lesson, we move into high level overviews of parallelism and pipelineing, and a note about Amdahl’s Law. This was followed up with an example for detecting prime numbers by partitioning the work.

The slide presentation was over in under 20 minutes. Instead, we’re jumping straight into code examples. Awesome.

Or so I thought. Unfortunately, he’s been interrupted by multiple people in the audience, who keep wanting to move off into tangential conversations. Eric is having difficulty bringing the talk under his own control—it’s no longer his talk, but that of the somewhat rude fellow in the front row. Neither is Eric as eloquent when he switches from a prepared talk to demonstrating and explaining real code. It’s become far more difficult to pay attention to this session, and I find myself looking at the clock to see how much time we have until the next session.

For real fun, be sure to check out Brad’s post on Schwern’s session about skimmable code.

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

OSCON 2008: Thursday Morning Keynotes

Thursday morning, the conference is more than half way over. It’s once again time for some keynotes. They opened with an open content video from REM. I don’t know why. It wasn’t very good.

Our first speaker this morning is Keith Bergelt of the Open Invention Network, speaking about Open Invention Network and Its Role in Open Source and Linux. He’s speaking about patents and intellectual property in Open Source, the realities of it today and where he sees it going tomorrow. He’s big on the buzzwords, and this is not the right audience for it. In fact, a game of Buzzword Bingo has already broken out in the IRC channel.

In summary, “Blah blah patent blah blah buzzword blah blah we care blah blah.”

Oh wait, he droned his way to a point. One of the things the Open Invention Network does, and I should have known because I’ve seen this before, is to buy up patents and keep Open Source safe from them. At least, until their funding dries up and they turn to their patent portfolios to squeeze money out of everyone.

I seem cynical this morning. Maybe I didn’t get enough sleep. Or maybe the first keynote today is boring. The back-channel conversation on IRC is actually quite entertaining, though. I need to whip up a quick IRC log file analyzer to correlate IRC traffic to keynote speaker. Then I can use it as a tool to rate speakers.

The pain is finally over, and the program chair has caught buzzworditis from the last speaker. Next up is Peter H. Salus to speak to us about Anniversaries. I’m told by Nat Torkington that Peter is an Unix historian. He’s started off by showing us a picture of the first transistor, which is about 20cm and a bit more than that around. It’s amazing to see how far we’ve come in 60 years—how many iPhones can fit in the same volume?

Anniversaries, in this case, are major milestones in computer history. The first electronic computer; the first time-sharing system; the first Unix paper by Ritchie and Thompson; the GNU project. One of the interesting things to learn is that history repeats itself. Back in the days of ARPANET, there was an issue involving the exhaustion of address space on the network. Short-sighted problems like that would never happen today, right?

I enjoyed this keynote speech, but probably because I really enjoy history.

Next up, Supporting the Open Web with David Recordon of Six Apart. It’s not just the open nature of the software or the platform that matters, but the openness of the data. Without open data, the Open Web can’t work. Interoperability and open specifications are vital to moving forward with the technology. The Web must be accessible, not just available on one device or another.

The majority of the talk is dedicated to talking about the various organizations doing work to keep everything free and open, including the Open Source Initiative, Creative Commons, and the Apache Foundation. There are also quite a few people donating a lot of their time to help.

He’s announcing the formation of the Open Web Foundation. They don’t necessarily want to form their own foundation, but they have had little luck finding an existing one to do what they’ve asked.

The Open Web Foundation will focus on four areas: incubation, licensing, copyright, and community. Many companies, such as Google and Yahoo have already shown support for this new foundation.

Following David is Danese Cooper of the Open Source Initiative and Intel Corporation to speak about Why Whinging Doesn’t Work. A catchy title, and she introduced her talk with a funny video of a choir of Finnish women singing about all of the complaints they have (search YouTube for “complaints choir“).

She’s making a very good point. There are so few women in Open Source. Geek are often intimidated by women and women are so often objectified. It’s true, there is a huge gender imbalance in the geek community. Of all the geeks I know, I can name very few women. I’m having a daughter soon, and you know what, she’s going to learn to code.

However, the feminist angle is merely a way of personally relating to the main point of her talk. People complain. I do it, you do it, the guy sitting next to you does it. But whinging doesn’t help. Mostly, all whinging does is beget more whinging. That energy used to complain needs to be channeled into something constructive.

For seven years, Danese was the only female member of the Open Source Initiative’s board. Now 30% of the board members are female. Progress.

Finally, Nathan Torkington, former OSCON program chair and recently of He Hononga Software, Limited and his keynote, fork() && exec(): Spawning the Next Generation of Hackers. Thank goodness, this talk is not about geeks having sex.

I’ve been looking forward to this keynote for a couple of reasons. First, I’ve missed hearing Nat speak this year. Second, I’m expecting my first child in a couple of months. Not only that, two other members of my local Linux User Group are either recent or expecting fathers. Suddenly, topics involving children are much more interesting to me.

Nat recently moved his family back to New Zealand. One of the things he does now is to help teach children about computing. In his school district, the computing infrastructure was awful—and used Windows. So he got a handful of Macs and became the Bastard Operator from Hell for his kids’ school. Then he started teaching the schoolchildren. Quickly, he discovered that the teachers needed teaching as well.

One more thing he wanted to do was to teach programming. He feels it’s a very important skill. But it has to be done right. Avoid the frustration that so many of us experience with computing and programming, but something consistent, easy-to-learn, but still powerful. Nat’s introduced Scratch. The kids loved it.

Lessons learned:

  • Lectures suck (you have two minutes to say what you want)
  • The gender gap is not what you think (girls are smarter and more focused than boys)
  • Keyboards are a challenge
  • Not a lot of experience with math
  • Robots are lame

So please, volunteer in schools. Perhaps remove Windows and bring the joy of Linux to their lives. Find, or create, good courseware, such as Scratch. Post it on your blog, so everyone can find it. Finally, don’t profit. Do this for the good of the children, our future generation of geeks.

With that, we’re off to the expo hall for the break.

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

OSCON 2008: An Illustrated History of Failure

For my final session of the day, I’m in D139/140 for An Illustrated History of Failure with Paul Fenwick. I attended Paul’s Perl security talk yesterday, which was deciding factor in my attendance here. I figure it will have to be good, I’m sitting a few seats away from Damian Conway.

Paul has started out by describing the world’s oldest computer in terms of modern computing.

From there, he’s providing examples of major computing and engineering failures throughout modern history. It’s amazingly entertaining. I can’t summarize it. If you’re not here, you fail. I’m just going to sit back and enjoy it.

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

Perl 6, the Bird, and Hacking with Damian

Today was a long day for me. First, I was up early to ensure I could spend some time taking care of things in my office before class at 9:00am. Second, eight hours of Advanced Perl Best Practices with Damian Conway. Third, a special San Diego Perl Mongers presentation of Sex and Violence: Social and Technical Lessons from the Perl 6 Project, again with Damian Conway. I am exhausted and I think I have Perl leaking from my ears.

Today was also a very good day. I learned a lot, and had a great time doing so. While I’m already familiar with most of Perl’s best practices and the reasons for using them, there are always many things to be learned any time Damian speaks. For example, I’ve always been one to use a single method as both accessor and mutator. However, now I’ve seen a good argument to use separate methods. Granted, I could have just read the book, but who has time for that?

One thing I will recommend: try to avoid flipping the bird to your instructor, even accidentally, particularly if you’re sitting in the front row and he’s standing only six feet directly in front of you. Shortly after this incident, I had a conversation with a friend in New Zealand. He gave me an explanation of the gesture and congratulated me for executing it in such a public forum (and getting a few laughs).

Even after my faux pas, I had the distinct honour to do a bit of hacking with Damian after class. My coworker voiced a concern I’ve also had in the past: inside-out modules, in this case Contextual::Return, do not work with Data::Dumper. So what did they do? They immediately started looking for a way to make it work. Initially, I merely stood back and watched; however, I’m proud to say I did have some input into the final implementation. Essentially, we came up with the following method to make it work.


{ local $Data::Dumper::Freezer = 'Contextual::Return::FREEZE';
  Dumper $return_value;
}

It’s perhaps not the most convenient way of doing the job, but it’s not bad for something that for most people is a debugging tool.

After a short break for some rolled tacos at Nico’s, it was back to the auditorium for Damian’s presentation to the Perl Mongers. As always, he had us rolling with laughter while at the same time learning quite a lot. The primary focus of the talk was the social and technical lessons learned by the core Perl 6 development team over the last seven years of the project. The lessons can be applied to any project—or in fact any group of people—be it Open Source or within a company. While useful, I was most excited by what Damian shared of Perl 6 itself. The design is amazingly clean and elegant, and I’m really looking forward to using it in my own projects. One thing that really has me excited is junctions. These look like an awesome way to develop parallel code cleanly and intuitively (at least for me).

I have one more day of class tomorrow, one I’m really looking forward to. Damian will explain to us exactly how it is he can be so productive, even while traveling. I expect to be overwhelmed with information and it will likely take me all weekend just to absorb it, and even longer to put what I learn to use. Next year I sure hope we have him back to teach us all about Vim.

When a Problem Comes Along, You Must Parse It

(With apologies to Devo.)

I attended the first of three courses taught by Damian Conway today, Advanced Parsing with Parse::RecDescent. This was, effectively, the Parse::RecDescent tutorial as presented live by Damian. I’ve read the tutorial, and it’s quite good, but it’s hard to beat instruction from the man himself. Not having used the module on too many occasions, the course served to clarify a few concepts of the grammar used by Parse::RecDescent.

Now I see problems in a new light—for better or worse. This evening, I joined my boss to debug a problem we’ve been seeing in our compute cluster. I joked that I could just whip up a grammar to track down the problem for us. I must resist my usual urge to apply my new, shiny tool to all problems. I mean, it’s bad enough I use the Perl hammer for everything, right?

Today’s course left me with nostalgia for the compilers course I took in college. As my partner for that long ago class reminded me, it was filled with “late nights and Mountain Dew.” Ah, good times.

Finally Working on SanDiego.pm.org

After inheriting the San Diego Perl Mongers web site, I’m finally starting to work on it. My first task was to remove the frames. While I was at it, I re-organized the information a bit to (hopefully) make it very easy for visitors to find what they’re looking for.

I have a few ideas for the future of the web site. Some of these include a wiki, a blog, a book review section, anything really. Not everything will be worth pursuing. We can have a wiki on a main Perl site; we can set up individual blogs on use Perl (or Blogger or LiveJournal or whatever). However, I think it would be nice to have a web site we can call our own.

I’m open to ideas, and I try to be receptive to comments and suggestions, either on our mailing list or sent directly to me.

[tags]perl mongers, sandiego.pm[/tags]

A Successful New Venue for SanDiego.pm

Tonight I hosted the San Diego Perl Mongers meeting at the auditorium in the building where I work. It was an experiment, and a successful one at that. We had an attendance of 16 people, which is quite good for our group. I suspect some of that was due to the free pizza provided by my director (thanks Keith!).

Since we had the auditorium available to us, one of our members was nice enough to say a few words about his business and how Perl has helped him to succeed. Much of the evening was devoted to chatting about whatever Perl-related thoughts came to mind. I floated the idea of hosting a booth at FOSSCON, but that’s still too far out to really talk seriously about it.

I’m extremely pleased with how well the venue worked out. We may not have the meeting there every month, but it’s nice to have it available so we can start adding technical meetings to our calendar.

[tags]perl, perl mongers, san diego, sandiego.pm[/tags]

YAPC::NA in Los Angeles, Anyone?

After attending OSCON last month, and having the usual fun with my geek friends from around the globe, I decided that I should start attending YAPC. As it so happens, the Los Angeles Perl Mongers are kicking around the idea of hosting YAPC::NA in their city. Since LA is nearby for me, I’d like to see that happen.

Looks like Chicago.pm has thrown their hat into the ring as well.

Update: I guess the LA.pm bid never gained any traction.

[tags]oscon, oscon07, yapc, perl mongers, los angeles[/tags]

OSCON 2007: State of the Onion

After the auction to benefit the Perl Foundation, it was finally time for the State of the Onion. I don’t know which number this is, but there have been a lot.

When Larry hooked up his computer to the projector, he had an IRC window open to #parrot on irc.perl.org. Yes, of course I did it. I jumped right into the channel and wrote, “hi mom.” I got a good laugh from those in the room, but I’ll probably never be welcome in that channel again.

Larry thinks it’s a bad idea to get rid of the term scripting. Perl already owns the brand when it comes to scripting. We have about the same chance of changing the branding of hacker.

“Programming is hard, let’s go scripting!”

Scripting isn’t so bad. It’s actually kind of easy; just look at all the script kiddies out there. But we can use Perl to turn all those script kiddies into real programmers. After all, Larry claims to have come to Perl in the same way.

So what’s the difference between scripting and programmers? Scripting is like profanity, you know it when you see it.

This year’s State of the Onion is about scripting, past, present, and future.

The past, essentially, is a brief history of Larry and his experience with scripting at different times of his life. More importantly, it’s about what all of these languages ar, how they and his experiences with them influenced what Perl was, is, and will be.

The present is an overview of the different ways languages can be designed. Binding, dispatch, typology, structure, and others are all different forks in the road of language design. Each fork developed for different reasons, whether it be efficiency of code or abstraction of language concepts. Follow all of these forks like some kind of Choose Your Own Adventure book, and different languages emerge. The lessons of each of these languages can be used as new ones are developed.

So I guess what Larry is trying to say is that Perl 6 looked at what every other language (including Perl 5) did right and what they did wrong, then went ahead and did everything right.

In fact, Perl 6 has taken Yogi Berra’s advice and took all of the forks. Sure, it seems confusing, but think of the power.

Okay, so what’s the future?

Perl 6.

Duh.