OSCON: Thursday

After staying up late on Wednesday night, I slept late on Thursday and missed the keynotes. I went to Matt Tucker’s talk on [Jingle: Cutting Edge Open Source VoIP](http://conferences.oreillynet.com/cs/os2007/view/e_sess/13134) describing the Jingle extension to Jabber that allows voice chat and other multimedia. Jingle is the standardization of the Google Talk protocol for voice chat. One thing that sounds good about Jingle is that it reuses the ICE, STUN, and RTP standards for making the connections through firewalls and NAT. Jingle replaces SIP and SDP for the session setup with much nicer XML language. It sounds like Jingle isn’t meant to replace SIP for making phone calls with hardware but instead to provide standard multimedia chat for instant messaging.

I skipped the next session talk and worked on my computer instead. After lunch, I went to [Next Generation Version Control Systems](http://conferences.oreillynet.com/cs/os2007/view/e_sess/12961) by Sam Villian. He talked about [bzr](http://bazaar-vcs.org/), [Mercurial](http://www.selenic.com/mercurial/wiki/), and [git](http://git.or.cz/), the three modern distributed version control systems. He talked about why distributed version control is better than centralized ones like Subversion. I liked is distributed systems are more transactional with commits not relying on a server. Also, these distributed systems are more descriptive and keep track of the DAG of the history instead of having to be told about merges and renames. He also talked about how the distributed systems allow the stable development model with each change getting a branch that is merged into an always-stable branch when ready. In comparing the systems, the main thing is that bzr is slow and doesn’t scale as well to large repositories. git is harder to use and impossible to install on Windows. It is really fast and produces compact repositories. Mercurial sounded nice with a speed comparable to git while being easier to install and use.

Next, I went to Jesse Vincent’s talk on [Building Domain Specific Languages in Perl](http://conferences.oreillynet.com/cs/os2007/view/e_sess/12963). He was talking about so-called internal DSLs where an easy-o=use dialect of Perl is used for a specific domain. He mentioned a couple of tricks to persuade the Perl parser to support a simplified syntax including installing helper functions, using prototypes, and returning closures. He mentioned a couple of DSLs that they had invented for [Jifty](http://jifty.org/): Jifty::DBI, Object::Declare, Template::Declare, and Jifty::Dispatcher. Template::Declare was interesting since it is a templating system that instead of embedding code in text or using a special language just uses special Perl code with functions for HTML elements. This allows refactoring and modularizing the templates like code.

Finally, I went to the [Perl Lightning Talks](http://conferences.oreillynet.com/cs/os2007/view/e_sess/14166), a bunch of five minute long talks. They are just long enough to advertise a project, perform a rant, give a brief summary of a longer talk, or sing a song. I remember some of the same talks from last year. Some of the projects I bookmarked where [Yahoo UI Library](http://developer.yahoo.com/yui/), [qpsmptd](http://smtpd.develooper.com/), [Move My Data](http://movemydata.org/), [DashProfiler](http://search.cpan.org/dist/DashProfiler/), DBD::Grofer, and [Perl 5 Wiki](http://perlfoundation.org/perl5/).