*** This Page is curently undergoing some major re-construction ***

OSCON 2002 Notes, Audio, and Miscellany

I'm currently in the process of running audio clean-up on the files. On the left you'll see all the session I recorded. Most of them are up in some form right now, but need work. I'm just going to work my way down, so everything linked should be cleaned up versions. Stuff in silver is not done yet.

I've been pretty busy, so these have been going slower than I've hoped. I'm aiming to get the rest of the stuff up by 8/20? who knows. Swamped by work. Check out the free_culture stuff I did for Larry.

Some of the clips have a bit too strong of a noise removal, I'll probably go back and fix that a bit.

# General

As the title suggests, this is a gathering of my notes, recordings and other commentary on OSCON 2002. I started putting this together during the conference, but it'll probably be a while a while before everything gets fixed and put up. Hopefully by the time the next conference rolls around I'll have gotten off my lazy ass and written a program to automate and streamline this.

# About

The MP3 recordings were done amazingly enough with the internal mic (in the left speaker well) of a first-generation TiBook. These were encoded in real time, piping from esd to LAME. For some more information on recording audio on OS X, check out this post on my blog. Also, I wrote a crappy shell script to do naming/renaming, etc. It's available here: record. Do what you will with it. (if you have esd and LAME in your path you can drop this straight into your ~/bin folder.

Hopefully, next year, more people can do some recording so people can catch some of the sessions they missed. For example, while mjd's Mailing List Judo & Conference Presentation Judo session was awesome, hearing Dan Gillmore gush about Bruce's A Contrarian Position on Open Source session made me wish I could have heard what I missed.

I post-processed the (64Kbps mono) MP3s, running noise subtraction, a band stop filter to get rid of the remaining TiBook mic whine (5400-5900Hz), and lastly some bad dynamic range processing to do some boost and compression. I'm pretty happy with the first two parts, not so much with the last. It takes about 15 minutes of processing time (including decoding, spooling, and recoding) to do all this on a one hour clip on my Athlon XP 1800+ system. These have all been output as 32Kbps mono MP3s.

This page uses liberal use of CSS2 (including fixed positioning). If you're getting visual artifacts, try turning off your browser's CSS. <plug>Alternatively, give a Gecko based browser a spin, like Chimera, Galeon, K-Meleon, or Mozilla</plug>

If anyone has any problems, technical ... or otherwise, please contact me.

# Other Links

# Monday, 7/22/2002

# PostgreSQL Performance Tuning, Bruce Momjian

There were lots of little interesting bits in this presentation. A large part of the talk centered around low level issues (PostgreSQL memory architecture, System V shared memory, cache optimization, etc). The smaller second part was on query optimization / profiling. I think that one thing that would have been helpful would be quick coverage of techniques for stress testing / system level (not just query) profiling.


MP3 Recording

# Introduction to XSLT, Paul Prescod

As the name implies, this was an introduction to XSLT, and as an introduction, crammed an impressive amount of information on both XSLT and XPath into one half-day session. I was under the mis-impression that there was going to be coverage of XPointer/XLink, but I think I just dreamed that up. OTOH, XPointer is based on XPath, and getting a better understanding on the latter no doubt helps with the former. I should probably stop being lazy and just go through some tutorials, right?

BTW, I should probably mention, while I see the need and desire for something that does what XSLT does, I'm not exactly a huge fan. At the end of the tutorial, I asked if anybody actually liked XSLT, which got a few chuckles. Paul responds, "Well, lets just say it can be useful."

MP3 Recording

# Tuesday, 7/23/2002

# Template Architectures with Smarty, Andrei Zmievski, and Sterling Hughes

I was going into this session pretty pumped, and hoping to learn all kinds of cool stuff, but funnily enough, I came out of this tutorial much less sure about why to use Smarty at all. Because of it's complexity, it really doesn't make it that much easier for a designer to work with. The MVC model is a good idea, can be just as easily used with straight PHP. Now, that's not to say that Smarty couldn't be cool. I think that if you could make it so that Smarty had superior error trapping and couldn't cause fatal runtime errors (this would require writing part of a parser/tagstack to doing auto-closing), then you'd actually have something very neat - something that you could hand off to designers and let them work on things. As it is, it's not safe for a designer to work with at all anyway, because they can still cause these errors. Hmm, I think Smarty builds in exceptions, although I don't think that's too hard to again, do without Smarty. I'm sure there's something I want to say about the security model, but I can't remember. Will edit this if I find my notes.

Also, because I forget what my other big improvement thought was, I'll just babble on about caching, and this is totally out of the scope of Smarty, it'd be nice if there were smarter caching for php, say a watchdog daemon banging away on a taint table to do checking for updates.



MP3 Recording

# Advanced PHP, Sterling Hughes, and Andrei Zmievski

This was a much more lively, fun, and interesting session. Not too much new stuff here for an advanced developer, but some pointers that were worthwhile. Towards the end, there was brief coverage of writing a PHP extension. That probably didn't belong, since it's really a session in itself, and otherwise zipping through it isn't all that useful. That time probably could have been better used covering, I don't know, architectural issues, performance profiling, debugging techniques (are there actually even traces or anything in PHP?) or something like that. You know, now that I think about this, in a lot of ways, this was more an Intermediate PHP session than Advanced PHP.

Also, when Sterling starts talking about optimizing your HTML output by not closing tags, DO NOT LISTEN to him. Depending on your browser, your CSS won't cascade properly, you'll have wonky DOM problems, and you'll render in quirks mode. Also, your dog will hate you. If you're really interested in saving bandwidth, you want to use XHTML Strict and CSS2. Typical layouts switched from traditional table designs save around 50% in markup per page. Add to that the savings from caching a single style sheet, and you have a lot of bandwidth savings. Using XHTML and CSS2 selectors, you can also specify stylings without using class or id names if you want to go all out.

Other notes... if you run whitespace removal, you're going to have to keep two copies of the files and run that anytime you make changes. This would actually be something neat for Smarty to do while it's generating cached files... In any case, mod_gzip is your friend and makes most of the whitespace removal moot. There's actually an apache module that does this, I think, but I forget the URL and I'm too lazy to search for it.



MP3 Recording

# State of the Onion Address, Larry Wall

I'm sure someone else has a better recording. I did this from near the back of the room and nowhere near the speakers.

MP3 Recording

# Internet Quiz Show, Jon Orwant

This was really fun. I started recording when I got distracted by IMs (you know how that goes with wi-fi and all). Is there any easy way to remove keyboard clicks without specialized software or intensive manual waveform editing? I have some isolated keyboard clicks... Of course you'd need to run some sort of algorithm that would do fuzzy matches for that waveform patterns accounting for variations in amplitude and most likely other characteristics as well.

I was recording from the same seat as the State of the Onion address (and typing now as well), so again, pretty bad audio quality.

MP3 Recording

# Wednesday, 7/24/2002

Certainly my biggest disappointment of the conference was missing Wednesday's keynotes keynotes. Although I swore I had set it, the alarm didn't go off that morning. Chalk one up to bad UI design, or bad luck I suppose. I'm hoping that a video or audio recording goes up soon.

# Free Culture, Lawrence Lessig

As I mentioned that I ended up mising the keynotes, so when a friend mentioned Larry needed help converting his presentation to Flash, I jumped at the chance to see what I could do. Many hours later... well, it was more involved than I thought. But, it led to my first /.ing (and got me properly motivated to write some neat server-side stuff).