Thursday, July 29, 2004

OSCON 2004 Day 3

The first day of the actual conference sessions went fantastically.

We started off with the opening keynote, from Tim O'Reilly, where he talked about what was on O'Reilly's radar. In addition to the "Internet Scale Applications" being the "Open Source Killer Apps" (like e-bay, google, amazon, etc), which he's been talking about for a while, he touched on a lot of interesting little bits. I particularly liked the part where he showed some of the data they mine from bookstores like Amazon that indicates what programming languages are currently selling the most books. The ones with declining market shares were in red, rising in green, and size of the language's square showed the size of the market share. Most stuff was either slightly green or red (Tim said it was the summer and all the hackers were on vacation), but there was this tiny little sliver of BRIGHT GREEN off in the corner, and that was Ruby. That was a breath of fresh air. He also mentioned zeroconf as being something to keep an eye on, which is rather close to my heart, and went into his standard thing about how what O'Reilly does is find the new and interesting things people are doing and put them into text form so people can read about them. Conferences like this one are where they find the new and interesting things.

Next up was The Semasiology of Open Source, by Robert Lefkowitz. He ran out of time part way through, but the talk itself was a fascinating look at the origins of some of the words that the open source world uses constantly. Quite interesting, with some nicely placed "The Princess Bride" clips for good measure, but if I try to explain it I just won't do it justice. All I wish is that he'd had time to finish up.

After the keynotes finished up I gave my first talk of the conference, "Using the Apache Portable Runtime in a Non-httpd Application", where I talked about the basics of APR and some of the issues we came across while using it to develop Subversion. I think the talk went well, and I was pleased to see Stas and Geoff of mod_perl fame sitting in the audience. These two guys have more APR experience than I'll ever have. I was able to raise at least one question in their minds though, and we've been hashing it out on the APR and HTTPD dev lists ever since. Overall I think the talk went well, and several people have since come up to me and thanked me, so I guess my first impression was right.

Next I stuck around in that same room for James Duncan's talk on "Enterprise Perl". He had a lot to say about how to make your code easier to understand and how that can help you build systems that are more reliable and debuggable. I was particularly amused by his definition of "Enterprise Code". He says it's "Code that doesn't make money itself, but that helps the company make money indirectly". At the end of his talk he noted that it was brought to you by 10 years of code that doesn't make money. I don't know if I agree with all his statements, but they all seem worth considering at the very least, and that's what's really important here.

Next up I hit Miguel de Icaza's talk on Mono 1.0. I probably could have skipped this one, as I knew most of what he was saying already since I follow the project reasonably closely. Unfortunately, he got cut off just as he was getting to the interesting technical bits at the end about where they're hoping to go in the future. Oh well, maybe next time...

After that I went to listen to Justin talk about deploying the Apache HTTPD server within the Apache Software Foundation. These guys get a scary amount of traffic, and they handle it all with minimal hardware and a volunteer staff, and it turns out that the load on their boxes is always ridiculously low, so they've figured some stuff out and are worth listening to. He also covered some of the details of how the Apache infrastructure team works with the version controls systems they provide and the email infrastructure they provide, since those are the other two main services the Apache projects rely on.

Up next was the Perl lightning talks, which were interesting, as expected. Despite technical difficulties (to be expected any time you have that many people and that many laptops) they got through everything and I learned a bit. I'm sure others have already blogged about the specifics, so I'll just leave it at that.

The last session of the day was about Groovy, the new Agile (perl/python/ruby like) programming language James Strachan (who went out drinking with us on monday) is building for the Java virtual machine. It's fascinating stuff, and is definately good to see, if I did any kind of real Java development I'd be all over this stuff.

Once the sessions wrapped up Greg Stein, Justin, and I hung around waiting for Fitz to finish his book signing. As usual when you hang around Greg you get this constant stream of interesting people who show up. Included in the stream this time was James Duncan Davidson (the original Ant guy), Brian Behelendorf (I must have spelled that wrong, but one of the head Collabnet guys and an original Apache hacker), Jason Hunter (Java Servlets guy), and a cluster of Gentoo Linux guys. Interesting conversation all around.

When Fitz finished up we headed out in search of food, and after much wandering around ended up in a not-so-great mexican place, with another large crowd of interesting people. Along with many of those already mentioned we had Dick Hardt (formerly of ActiveState) and John Viega (a security hacker now, who apparently was also one of the original authors of mailman, one of the big time mailing list managers).

After dinner some of us hopped in Dick's Hummer (yes, some of these people have way too much money) and drove over to the Stonehenge party. "Free as in Beer" was the order of the evening, and a good time was had by all. I spent some time chatting with Brian Behelendorf and Paul Hammant (who I met on monday) about version control type things, and I was quite glad that I got a chance to thank Brian for everything he's done to make Subversion a success. While he's not contributing code he is the man behind the fact that Collabnet is willing to pay people to hack on it, and for that I'll be eternally grateful. While the external community has contributed a TON to Subversion over the years without those core paid hackers we wouldn't have made it nearly as far or as fast as we have.

Around midnight Paul and I wandered back towards the hotel, talking about version control, why people use clearcase, the chances for perforce to survive in the next few years and his background and how he ended up at ThoughtWorks. All in all an evening well spent.

Wednesday, July 28, 2004

OSCON 2004 Day 2

Well, most of this day turned out to be spent recovering from last night's fun.

I got up about 10 minutes before the first tutorial session was about to start and ran downstairs because I didn't want to miss MJD's "Welcome to my bin" talk, but once I got there it was pretty clear that I was far too hung over to get anything out of it. I hung in until the break and then retreated to the room and fell asleep. I also didn't make it to the afternoon session, spent most of that time either sleeping or going over the slides for my first presentation.

The evening was less of a waste. I went out to dinner with the SVN/Apache guys (Joined by Justin Erenkrantz this time, who had just gotten in to town, Ken Coar, who's weblog I've read forever, but who I had never encountered in real life, Steve Mallet, the sysadmin for, and some friends of Rich who's names escaped me).

After dinner I headed down to the evening events just in time for Larry Wall's talk, which managed to turn xscreensaver into a heartfelt talk about the last year in his life and how he feels about the community around him. I could certainly empathise, as many of the medical problems Larry's gone through hit far too close to home for me.

Next (how much does it have to suck to follow up after Larry Wall!) was Paul Graham, of "Hackers and Painters" fame, who I was quite impressed with. Much of what he had to say was very similar to stuff from his book, but it covered a lot of interesting ideas about how to find those elusive hackers who are truly gifted and get them to work for you. A particularly insightful statement of his was the fact that becuase the only way to really know how good a hacker someone is you have to work with them, thus if there's a Michael Jordan of hacking, nobody will know it, not even him. Overall I was quite impressed with his talk.

Finally, Damian Conway gave his "Life, the Universe, and Everything" talk, where he melded together "Conway's Game of Life", Maxwell's Demon, and the Klingon language, with a simulation of Maxwell's Demon within in the Game of LIfe, implemented in the Klingon dialect of Perl. You really had to be there to understand how weirdly cool this was. Truly mind blowing, as I have come to expect from Damian's talks.

Anyway, now the conference opening keynote is about to start, so I should start paying attention and stop typing...

Tuesday, July 27, 2004

OSCON 2004 Day 1

So the first actual day of the conference was fantastic.

I spent the morning in Damian Conway's "Best Practice Perl" tutorial, which was quite worthwhile. His major point was that you should make a concerted effort to write code such that it's easy to understand. There may be more than one way to do things in Perl, but that doesn't mean you have to use some of the odder ones in your day to day coding. He also had a number of tips on specific problems to avoid and useful idioms that you should be aware of. All in all, a worthwhile talk. Best of all, he's apparently working on a book about the same topic, for O'Reilly.

Then I went to grab lunch with Rich Bowen, which is always enjoyable. We talked mostly about writing technical books and the various problems we've both had going through various parts of the process. It's odd that so many authors seem to have the same problems, yet they still don't seem to have found good ways to avoid them.

The afternoon was spent in the "Cross Platform Rendezvous" tutorial, which was given by Stuart Cheshire from Apple, the head of the zeroconf working group and the creator of most of this technology. Much of what he had to say was about the philosophy behind the creation of the zeroconf technology, and why he thinks it has succeeded in a space where a huge number of other systems have failed in the past. Perhaps the most remarkable thing is how simple the underlying technology is. It's quite impressive how much functionality they've managed to get while still fitting pretty seamlessly into the existing infrastructure. He also talked about some of the plans for extending zeroconf techniques outside the local network and onto a company wide WAN scale network.

I'm itching to start coding on some changes to Subversion to allow it to advertise repositories via zeroconf so that you can easily find out the available repositories on a network. The idea's been in the back of my mind for a while, but it's always seemed like something of a toy project since it's not overly useful on just a local network. WAN scale zeroconf would make it quite useful though, so hopefully I'll have time to make it happen. I also talked with Stuart a bit about some of the particular issues I saw in using zeroconf and Subversion and he seemed quite receptive to the ideas I had for extensions to the current functionality to make it more useful for Subversion.

After the tutorials finished up the real fun began. I finally got a chance to meet Brian Fitzpatrick, who I've known online for years via the Subversion project. After giving Greg Stein enough time to extract himself from the traditional pile of people asking questions at the end of a talk the Subversion and Apache crowd went out to dinner at a nearbye chinese resturaunt, which was a lot of fun.

After dinner a number of us retreated to VQ, a nearbye bar, and proceeded to spend the rest of the night drinking and talking with some of the ThoughtStream guys, who brought along Ward Cunningham, of Wiki, TDD, and OO fame. I must admit that it's nights like this that make coming to these kind of conferences truly remarkable. You simply can't find a group of people like that in other environments.

The bar finally closed and kicked us out, so I made it back to my hotel room around 3AM, already fearing the hangover that was waiting for me.

Monday, July 26, 2004

OSCON 2004 Day 0

Ok, so I'm actually posting this on monday morning, but anyway...

Got up at the crack of dawn and made my way to the airport to catch my 7:45 flight. Was running a bit late, as usual.

Got there to find that the long term parking lot was full, so I had to make my way to another lot. Ok, now I'm later.

Went to the wrong terminal. Ok, now I'm later.

Finally got to the ticket counter and it appears that the "i don't want to interact with a human being" kiosks are busted, and there's this giant line. Why is there a giant line? Because my flight has been delayed 3 hours, and all the people from the flight are in line waiting to work out where and when they'll be flying out.

So I spend like an hour waiting in line and finally a very nice woman moves me to a different flight leaving at around 11:30 and heading to Denver, where I can get a connecting flight to Portland.

Spend the next 2-3 hours sitting by the gate getting progressively more annoyed at LGA's wireless network, which refused to allow me to log on. Drained my laptop's battery in the attempt and didn't get much work done.

Flew to Denver.

Spent 1-2 hours waiting for my flight in Denver, which also had a flaky wireless network, although this time I was able to actually connect to the network long enough to check my mail. Ran into a cluster of OSCON people, all of who's names I have since forgotten because I am a bad person.

Got on the plane to Portland and who do I see as I wander by but Casey West. Oddly enough, Casey also happened to be on the plane I took into Portland for OSCON last year.

Actually managed to get some work done on the plane to Portland, since I was able to charge the batteries in Denver.

Got to Portland, got my stuff, and took the MAX light rail into the city, spent most of the time on the train talking to Casey about various and sundry things. He is an interesting individual.

Got to the hotel, checked in, went up to the speaker registration and registered, hung out on IRC and found that all the other Subversion people I was hoping to hang out with are either missing in action or not getting into town for a day or two. Grabbed some quick dinner at the hotel bar and decided the best thing to do was just to crash early so I'm not jet-lagged for the tutorials tomorrow.

And there we are. Now I'm writing this entry because it's really pretty early Portland time and I'm wide awake.

Saturday, July 24, 2004

OSCON 2004 Day -1

So I'm leaving for OSCON at some ungodly early hour tomorrow morning.

As a result, I have completely stopped being productive. It's not that I don't have plenty of things to do, it's just that I'm not doing any of them...

Instead, I'm alternating between stressing about my two talks and being excited about what amounts to a week long vacation where I get to totally geek out with a lot of really cool people.

Anyway, I figured if I'm going to be blogging the whole 'OSCON experience' again this year I might as well start with the pre-conference jitters part of it...

While I'm on the topic of conferences...

Rich is right on target here. Personally, I fall between the "Conference as a Classroom" and "Conference as a Social Gathering" parts of the spectrum. I do learn a lot at these things, but I also find that many of the talks are rehashing things you could get from the FAQ, and that a lot of the value in going to a conference like this is in the people that you meet.

Oh, and for those of you who are thinking to yourself "if you don't learn anything you can't find in the FAQ and you're really just going to hang out with your friends, why is work paying for this again?" let me refer you to what Casey has to say about it. I pretty much think he's exactly right on that one.

Sunday, July 11, 2004

GenX4r 0.03 Release

As part of my "avoid working on things I should really be doing" campaign I released version 0.03 of GenX4r this weekend.

Grab it here if you're into that sort of thing.

Significant changes in this version are:

  1. Uses the << operator to write to the object passed into the document method, so we can work on plain old Strings in addition to StringIO and IO objects.
  2. Addition of begin_document, end_document, begin_element, and end_element methods for GenX::Writer, for times when using the block based methods is inconvenient.
  3. Rewrite of the build system to use setup.rb instead of manually using extconf.rb for build/install and rake for tests.

The first two changes were suggested by Christian Neukirchen, the first person other than me (that I know of anyway) who's actually taken a close look at this stuff.

Saturday, July 10, 2004

Photoshop Can Make Anyone's Pictures Look Good

Even mine, apparently ;-)

So I finally got around to going through all the pictures I took from the 4th of July, picked out the ones I like the most, and tweaked them a bit in Photoshop so that they look decent.

Get them while they're hot, either in a typepad photo gallery here if you like that sort of thing, or if you want the big-ass non-shrunk down versions or the raw pre-photoshop versions you can grab them from here.

Overally I think they came out pretty well, at least once they're subjected to liberal cropping and fiddling with the color levels and brightness and whatnot in photoshop.