Bridge Pedal

Today I rode in the Providence Bridge Pedal, a big community bike ride in Portland. I heard an estimate of 18,000 people. I can believe it; it was more crowded this year compared to last year. There were bnottleneck this year where people had to get off and walk. I heard somebody joke that the traffic jam at the top of the Marquam reminded them of their commute.

To me, the best part of the Bridge Pedal is that they close the top decks of the two freeway bridge and open it to bikes. After the climb, it means a nice view. This year, I remembered to bring my camera and took a bunch of photos.

![](/photostack/storage/normal-bridgepedal-p8141304_m.jpg.jpg)

Pdx-pm and Mod_perl

For a special meeting of [Portland Perl Mongers](http://portland.pm.org) on Friday, Stas Beckman talked about mod_perl 2.0. He talked for three hours and only went through probably half of his slides.

He went quickly through the difference between mod_perl 1 and mod_perl 2 but he demonstrated a lot of the new mod_perl 2 API. He went through most of the API, all the different stages and handlers that mod_perl can hook into.

Some of the things he mentioned, like protocol handlers and filters can only be done with Apache 2 and mod_perl 2. I suspect it would be possible to write an FTP, SMTP, or XMPP server in Perl using mod_perl 2. I know people are doing things like that in C modules but I think it would be much easier to do in Perl. The other interesting idea I had was to combine POE with mod_perl and use POE to help implement the protocol handlers.

Hopefully, now that mod_perl 2 is officially out that lots of systems will get ported. I was hoping to hear how the Mason mod_perl 2 support was coming but Dave Rolsky left early.

The one thing missing from Apache 2 is some way to separate the Apache children by virtual host and run them as different users. This would make mod_perl much more acceptable for ISPs which could isolate different users but still give them the performance and flexibility of mod_perl. One big advantage of PHP is that it is easy to support shared hosting.

FOSCON

After OSCON on Wednesday, I met up with Michael Schwern and friends. We went to FOSCON, a Ruby gathering a [Free Geek](http://www.freegeek.org/).

We missed the Ruby on Rails talk which is probably the technical introduction I didn’t get at OSCON.

I did get to see a Ruby Metaprogramming talk by [Glenn Vanderburg](http://www.vanderburg.org/Blog). I knew Ruby used its dynamic nature to make it easy to do metaprogramming but hadn’t know how easy it was to write mini-languages.

Perl can also do metaprogramming but the syntax is not nearly as nice which makes it hard to define usable mini-languages. I have had the idea for a while to write a system using a rule-based engine to configure systems. I suspect a mini-language done in Ruby would be a good fit.

The performance by [Why The Lucky Stiff](http://whytheluckystiff.net/) was entertaining. Animation segments, songs about Ruby, distributed Ruby as performance art with audience participation.

OSCON 3

I went to a day of sessions last Wednesday at OSCON. Here are the session I went to:

## Shtoom

First, I went to talk by Anthony Baxter about [shtoom](http://divmod.org/projects/shtoom), a SIP stack written in Python. As he explained multiple times, VOIP and SIP are complicated. Which makes writing a complete stack by himself even more amazing. It also shows that Python and other interpreted languages are good enough (and much easier) to write demanding applications.

I definitely agree with his goal of having open source, interoperable VOIP so we can talk to anyone and do what we want. On one hand, we have Skype which is free but proprietary. On the other, we have the hardware phones which use SIP but can be locked down to certain providers and have proprietary extensions.

I saw Guido van Rossum, the creator of Python, at the talk.

## Big Databases

The next session I went to was by Josh Berkus and Joe Conway talking about large data warehouses in PostgreSQL. This is exactly what we do at work so the casen studies were quite useful.

The main thing I learned is that we should upgrade to Linux 2.6 and PostgreSQL 8.0 for x86_64. It sounds like there is a big performance advantage.

I am really looking forward to PostgreSQL 8.1 which is going to have advances in table partitioning.

I was hoping for more useful stuff out of the talks I went to after lunch. Especially since I learned later that there were other more interesting talks going on at the same time.

## Subversion

I went to “From CVS to SVN” by Brian Fitzpatrick. He mainly talked about the general issues of managing the migration. He talked about the experiences of some projects, open source and commercial, in doing the migration. I was hoping for more details about the technical aspects. It did inspire me to move forward on getting my workplace to do the migration. And what political issues to work on.

## Perl & Unicode

The next talk was Dan Kogai talking about Perl 5.8 and Unicode. Unfortunately, it was a pretty boring talk. It covered material which I had already gleaned from the documentation. He did show some examples including actual code. At work, we have been suffering doing Unicode with Perl 5.6. Moving to Perl 5.8 sounds like the right solution.

## MapReduce

Then I went to a talk by Doug Cutting talking about doing Scalable Computing with MapReduce. The [Nutch project](http://lucene.apache.org/nutch/), is a search engine based on Lucene, written in Java. They swiped the Gogogle File System and Map Reduce processing ideas to experiment with scalable indexing. I originally though the presentation was going to be by someone from Google. Seeing that an open source project had implemented Google’s ideas was just as interesting. I was hoping to see more info on MapReduce but I guess I will have to read the Google papers.

## Rails History

Finally, I went to a talk by the creator of Ruby on Rails talking about Extracting Rails from Basecamp. It was mostly about the history of Rails and lessons learned about promoting and growing a project. I was hoping for more technical details and a little humility about his limited experience. Rails is exploding right now and it was useful to hear how he developed it as his first Ruby and open source project.

OSCON 2

I went to two days of [OSCON](http://conferences.oreillynet.com/os2005/) last week. My company finally decided to send me on Monday. The first day, August 2, I went to the Slony-I Replication Tutorial. [Slony](http://slony.info) is a replication system for [PostgreSQL](http://www.postgresql.org). We use it at work to replicate a master database to two slave databases. This is done so the slave databases can be used for generating reports and the master database just does importing.

Most of the material was stuff I had learned before. There were a few nuggets of information I hadn’t known before. And I got some of my important questions answered.

It was also nice to learn that other people are using Slony in large deployments like we are and that it performs well.

Uncle Ian

Last Monday, I became an uncle. My brother and his wife had a baby girl, Rose Athena Martinsen-Burrell. Lara went into labor on Saturday evening. Rose was born by C-section 42 hours later.

He sent out a picture:

![](/photostack/rose/the_mbs.jpg)

Hopefully, they will post more pictures at [his blog](https://braeburn.amath.unc.edu/~nburrell/blog) or the [baby’s website](http://www.undersea.com/~lara/).