So I left the hotel at about 5pm on the shuttle to the airport. My flight is at 7pm. I'm in the airport now writing this. Why? Because there was no line. I was the line. Within 10 minutes of arriving at the airport, I was plugged in (to the power) and pulling images off my camera.
Mental note: Don't get to the airport so early. Really.
Mental note #2: Don't leave cell phone in Derek's room.
Anyway, I'm using the time to do some blog updating. Hey, at least I'm not fantasizing about the two college girls napping on the floor just a few feet away in the terminal. (Or am I...?)
Jeffrey managed to mis-configured the alarm clock. We both got up rather early as a result.
With OSCON over, Derek and I decided to spend much of Saturday at the world-famous San Diego Zoo. (Well, Derek decided not to go but then changed his mind at the last minute.) After a nice breakfast buffet in the hotel, we caught a cab over to the zoo. Amusingly, the driver forgot to start his meter, so he had to guesstimate the fare.
(We considered going to Lego Land instead, but it was a lot farther from the hotel, so the cab ride would have been quite expensive.)
Upon arriving, we got our tickets (the $32 "deluxe" ones, with unlimited rides on the various buses and the sky-lift thingy) and headed for the zoo's tour bus. The buses are double-deckers, so we rode on the top to get a good view of things. After riding around on the tour, we spent the next three and half hours wandering around to look at all the creatures. The only things we did not see were the pandas. The line was simply too long to justify waiting.
All in all, I snapped just over 100 pictures of the creatures and scenery.
On the last day of OSCON, I managed to pull myself out of bed on-time and was able to attend the morning keynotes. Both were interesting in different ways, but I couldn't help thinking that the folks at Sun Microsystems are researching the obvious.
After the break, it was time for my "Managing MySQL Replication" talk. It went very well. There were roughly 60-75 people in attendance for the 90-minute presentation. I finished on-time while fielding quite a number of questions. I was quite happy with how it went. Many folks commented that they really like the talk and learned a lot from it. Hopefully they said that in their evaluations too!
As a bonus, the MySQL folks passed out T-Shirts to everyone. The shirts had been tied up in Customs for quite a while, but managed to arrive just in time for the last day of the show. How amusing.
After my talk it was time for lunch. I ate. Again, the food was pretty good--better than last year by far. Once lunch was complete, I headed back to the same room for Brian Aker's "Extended MySQL with Perl and C" talk, which was informative. I have seen this talk at least once before (last year's Open Source Database Summit, to be exact), but there was some new material in it. It also provided me with the chance to chat with Tim Bunce about a few MySQL and Perl related topics.
The final talk of the conferece (for me) was DJ Adam's on "Interesting uses of Jabber", which I've already covered.
With all the offical stuff over, I met up with Tom Lane (of PostgreSQL fame), some of the folks from MySQL AB, and a few random others. We walked over to the Boat House resteraunt for dinner. The place was rather warm, but we managed to enjoy ourselves. Good discussions about politics, Open Source Database Advocacy, and so on.
Following dinner, we made our way back to the hotel and chatted in the lobby for a bit before most folks retired to their rooms. Not five minutes later, Jeffrey invited me to a gathering outside with some Perl folks. Having little else to do, I headed over and picked up Brian on the way. We chatted with Jesse (of RT fame) for a couple hours. It turns out that Jesse is doing RT as his full-time job now and it's already cash-flow positive. Cool! We chatted about the differences between RT 1.0 and RT 2.0 long enough for me to realize that calling it RT is a bit of a misnomer. It's a completely different product now--much better.
The slides for the three major presentations I did for the 2002 O'Reilly Open Source Convention are now on-line. They are, in order, "MySQL Optimization" (a 3-hour talk), "MySQL Backup and Recovery" (a 45 minute talk), and "Managing MySQL Replication" (90 minutes). They are also listed on my personal MySQL page.
Wrapping XML-RPC in the Jabber protocol. Use Jabber as an XML-RPC gateway between processes. The requests/responses are completely async. You can do the same with SOAP over Jabber.
Publish/subscribe systems built on top of Jabber. All the pieces are there, it's just a matter of assembling them.
Weblogs.com has a SOAP interface for subscriptions. So you can use Jabber to tell you when a weblog is updated.
During this talk we heard about 3 different systems. Here are some quick notes on each.
Story publishing, preferences, Journals, personalization, community moderation and interaction, logging. Not built for manging a large document base--it' more of a community system than a content system. Simple, easy to learn interface. The strucutre is not complex, provides delayed publishing, and RSS feed integration. The publishing workflow model is very straightforward. That can be a problem for sites that really do need something more complex.
Slash stores all content in a database (typically MySQL) and it performs a lot of caching for mostly static stuff. Uses a templating system called TT.
Slash can be extended via a simple API and there are a lot of good examples out there already. SOAP interfaces are coming in future versions of slash, too.
Why slash? Light and simple. Scales well. Great community features. There's even an O'Reilly book for it.
It's very complete and professional, and it covers a lot of ground. Asset (or object) management. Heavier application-like interface with a lot of power.
The UI is very functional and feels very much like a desktop application. Good contextual help.
There are stories, media, and templtes. The three building blocks. The first two are built using elements. Elements may contain sub-elements. Defining elements properly is difficult. Requires real design thinking.
Very powerful workflow, using a "desk" concept. Desks are chained together for form workflow. Every check-in and check-out results in a new version.
Can use SSL and has group-based authorization. Both users and objects are in groups. It's a bit confusing at first, but it's actually rather simple and powerful.
Templates belong to categories. Output channels, many for a single document--useful for co-branding or different formats like XML, RSS, etc. Good API available from within the templates, which are HTML::Template or Mason (very cool).
Publishing distribution (via "burners") is quite flexible too. You can do it in parallel or customized (gzip, sign it, complex upload, etc).
Has alerts that can be triggered based on various events (move, delete, check-in, etc.) The event handlers can do e-mail but will get jabber support soon too.
There's a good SOAP interface. The mailing list is very good. Active support.
Uses a PostgreSQL backend.
Very new, just released. Tied to Oracle now, but moving to use other databases later this year. University of Insbruck runs it. Started as a framework and evlovled into an application later.
XML, XML, XML.
XIMIS == "XML Information Management System"
Uses DOM, SAX, and XSLT. You really have to get in to XML.
Document tree with multiple views where docs are of any type. Different doc types have their own handlers. Some WYSIWYG pulugins for uploads and whatnot. They're not free and only work on Windows. Someone is trying to develop a Mozilla-based front-end.
Very elaborate security system, complex and fine-grained access controls system. Supports IMAP, LDAP, etc. Does inheritance on permissions where needed.
Communication tools. Has a forum and some built-in messaging. Sometimes better than going outside (phone, e-mail, etc).
Internals. Very MVC inspired. Uses CGI::XMLApplication (SAWA, whatever that is). AxKit interaction possible.
Every document is an object. Random data can be attached to objects easily. User interaction generates events.
Style sheets used to transform documents (of course). So, the application gets an event, handles it by manipulating an object, and a stylesheet is selected to render the object. I think that makes sense.
Mena has setup a TrackBack page for folks blogging about OSCON. Check it out to see what other folks have so far. If you're using MT and are at OSCON, please contribute your entries as well.
Today I managed to sleep in a bit too long, having been up well past 2am after all the fun yesterday. The good news is that I'm a bit better rested, but the bad news is that I was a bit behind on things and missed the first keynote. I had a lot of stuff to do yet for the phpj.com setup, but luckily I managed to find Bryan at the last minute.
I did manage to sit on the floor (with a power outlet nearby) and work on things while Richard Stallman delivered his keynote. I don't think anyone was surprised by what he had to say. In fact, I was a little surprised that he was as calm as he was.
Next up was Monty and David's "MySQL Now and in the Future" talk. They covered the basics of the MySQL development roadmap and even managed to plug my talks (as well as Brian's). What I learned is that there is someone already hacking on the MySQL 5.0 source tree to get a first implementation of stored procedures done. (Yeah, that's right. Stored procedures in MySQL.)
Right now I'm in a talk about Mac OS X for Open Source developers. Interesting comments about why Apple doesn't ship X11 with the base OS X install and never will. They really don't want a "normal" end user to ever, ever see an X11-based application. They recommend using things like Qt, Tk, GLUT, and other APIs that have Aqua support instead.
After lunch was time for my "MySQL Backup and Recovery" talk. (Slides will be on-line in 12 hours or so.) I had about 60-75 people in the room and I even managed to stay on schedule. I had only forgotten to mention one important point. Because of some A/V issues, I ended up having Jeremy Cole (from MySQL AB) run the slides for me. Thanks Jeremy!
Now I'm sitting in Damien's talk about preparing for Perl 6. Yikes.
On Tuesday, I attended the first half of the Optimizing Perl talk and then went over to the second half of Tim Bunce's "Advanced DBI" talk. Good stuff all around. Tim's talk highlighted some interesting new features in DBI that I need to look at more closely.
After lunch I went to part of Zak Greant's "Getting the most from PHP and MySQL" talk before going over to the "Advanced PHP" presentation. Zak's talk was a lot more about MySQL than PHP, so it wasn't as useful (to me), but it was a good talk. The Advanced PHP talk covered a lot of new stuff in PHP and hinted at what's coming in 5.0 (a lot of OO fixups, for example). We also got a chance to hear from Rasmus about the stability of Apache 2.0 in a production environment. The short version is that you really don't want to be using it with dynamic content yet. Static stuff isn't bad, though.
The real fun began after dinner (with some of the MySQL developers and trainers). Larry Wall's 6th "State of the Onion" talk was excellent, as usual. I think he did a good job setting expectations for Perl 6.
After his talk, we were able to compete in Jon Orwant's "Internet Quiz Show". Our team won for the 3rd year in a row. We're probably going to retire. Three wins in a row is good enough for anybody. :-)
After the big win, we celebrated in the hotel bar and had a chance to talk with a lot of good folks.
The cat's out of the bag now. We're launching the PHP Journal. Visit the new website for some basic info (we're adding more as we catch our breath).
Yesterday, Monty mentioned that he'd like to release MySQL 4.0.3 very soon. He was putting the finishing touches on the code to handle changing server configuration variables (like the size of the key buffer) on the fly. Today I got a chance to look at the docs that he's put together, and it's just what I've been waiting for!
Soon, we'll be able to do things like this:
SET GLOBAL key_buffer=256M
to change the key buffer's size without restarting the server. Cool. You'll be able to make both GLOBAL and SESSION (thread-specific).
Now I can embark on the project to build an auto-tuning engine that you can let loose on a server to make adjustments while the server is running. Should be a lot of fun (and work).
Oh, I'm sitting in Tim Bunce's "Advanced DBI" talk as I write this. We just learned (by way of Time questioning Monty) that MySQL 4.1 will provide high resolution timestamps. A code library already existing, it's just a matter of some integration work.
According to slashdot there's going to be an Apache/.NET announcement at OSCON on Wednesday. This should be interesting. Very interesting.
Today I attended David and Kaj's "ACID Transactions with InnoDB" talk in the morning. It went quite well and they presented some nice diagrams that will help with the InnoDB part of my book. I need to chat with them about possibly re-using some of that material.
After lunch it was my turn to talk. The "MySQL Optimization" talk was full. There were about 45 people in it (if I counted correctly). Based on the feedback so far, it appears to have gone well. I was quite happy to have finished on time, With 80 slides to hit in 3 hours, I knew it would be tough because there is a lot to say about the topic.
Then I had the chance to sit in on a meeting with the MySQL developers to discuss changes and enhancements to the replication sub-system. It was rather productive, I think. However, I'm not convinced that Monty's solution to my replication relay problem will actually work. I need to track him down and explain why.
Then several of us (Andy Oram, Brett Glass, Jeffrey Friedl, Derek Balling, Joe Rollinson, and I) went out for a sailboat ride on the bay--thanks to Joe. It was a good night for it. We had excellent views of downtown San Diego and a good time on the water. As soon as I track down Jeffrey, I'll get the pictures out of my camera and post them.
Update: Here are the boat pics.
Everything seems to be on track for my MySQL Optimization talk tomorrow. It might even move to a bigger room because there are a sufficient number of folks signed up (about 57). I've just made the final (yeah, right) changes to the slides. I should back them up somewhere now...
So I've arrived in San Diego for the conference, and guess what. Unlike last year, all rooms do not have broadband connections. Only rooms on floor 9 and higher do. Granted, I didn't ask when I made the reservation, but they all had them last year. (I'm on the 2nd floor for those keeping score at home.)
To switch would cost $50/night, so I'll do dial-up until the 802.11b network is active. In other news, the weather here is great (as usual). Time to get fixing my presentations.
Derek is on the 9th floor, so he's got the good stuff. Who else got screwed?