OSCON: Wednesday Afternoon

In the afternoon, I went to more OSCON sessions. First, I went to [Nested Data Parallelism in Haskell](http://conferences.oreillynet.com/cs/os2007/view/e_sess/14014) by Simon Peyton-Jones, the same guy who gave the keynote talk I went to. This time, he was talking about extending the Haskell compiler to do data parallelism. Flat data parallelism is when a computation is split into chunks and processing distributed across processor. Nested data parallelism is where the depth and complexity of the algorithm depends on the data so it isn’t simple to split up. Flattening transformation can turn these problems into flat ones that can be chunked. Also, multiple steps can be fused together into single ones. The special syntax and [data parallel extensions](http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell) they wrote for the GHC allows the compiler to do these transformations. He pointed out that this is only possible with purely functional languages. He thinks that functional languages are the future for scaling to multiple cores.

Next, I went to [Hacking with (and on) Gears](http://conferences.oreillynet.com/cs/os2007/view/e_sess/14569) by Andy Boodman from Google. He talked about [Google Gears](http://gears.google.com/) a browser extension that supports offline applications written in Java. It adds a local server for caching files. A database module with embeds SQLite in the browser for local database storage. And a worker pool of threads for running background JavaScript tasks. He showed how these could be used to write an application, like the new Google Reader offline mode, that downloads the files, stores data locally, and synchronizes the data to the live site. The big problem left unanswered by the framework is the synchronization and conflict resolution problems. I thought it was interesting that the pieces were generally useful JavaScript extensions that would be useful outside of offline apps.

Next, I went to [Hecl: Open Source Scripting for Mobile Phones](http://conferences.oreillynet.com/cs/os2007/view/e_sess/12403) by David Welton. [Hecl](http://hecl.org) is a dynamic scripting language for mobile phones. It is interpreter, written in Java, and designed to run on J2ME. It has a very simple syntax based on Tcl. The interpreter runs in a tiny amount of space. It has support for making widgets and basic GUIs.

Finally, I went to [Using Puppet to Manage Your Network](http://conferences.oreillynet.com/cs/os2007/view/e_sess/13081) by Luke Kaines. I went to a talk on [Puppet](http://reductivelabs.com/trac/puppet) last year. This talk was much better since he talked about how Puppet works and how it could be used instead of vaguely talking about why it was useful. Puppet has definitely gotten some recognition since this talk was well attended. Most of the content was familiar to me from working with Puppet but I learned a couple of things about reporting changes and modules.