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.

OSCON: Wednesday Morning

I am going to the OSCON sessions today and the rest of the week. I missed most of the keynotes this morning. I did [Transactional Memory for Concurrent Programming](http://conferences.oreillynet.com/cs/os2007/view/e_sess/14017) by Simon Peyton-Jones and Haskell guy at Microsoft. He described the idea of transaction memory as the alternative to locking for concurrent programming. Transactional memory basically wraps critical sections in atomic transactions. It was somewhat interesting since Parrot is talking about using STM. GHC is a Haskell implementation with STM. He talked about how transactional memory requires blocking with retry and waiting until the memory read changes. He also talked about how useful systems add choice which instead of blocking does an alternative.

I also went to [Performance Whack-a-Mole](http://conferences.oreillynet.com/cs/os2007/view/e_sess/12486) by Josh Berkus. He talked about how to solve database performance problems. He gave a couple of rules to tracking the problems which he called moles. Most problems are not really database problems and are at other levels of the stack. Most slowdown is caused by a few big problems. You can only see the worst problem which hides the others. Different classes of apps have different performance problems. Web apps tend to read heavy and have issues with connections and caching. OLTP have locks, transactions, IO write problems. Data warehousing has IO issues with bad queries. He also talked about doing a baseline inspection for common problems, benchmarks, microbenchmarks, and profiling.

I also went to [Care and Feeding of Large Web Applications](http://conferences.oreillynet.com/cs/os2007/view/e_sess/13137) by Perre Harkins. He talked about the issues dealing with deploying and releasing a large web application in Perl. I was most interested in the system he described of installing CPAN modiules. They have their own tool for deploying specific versions of modules. He also mentioned automating database updates, simplying the configuration, testing, and doing version control and branches.

Starcraft on Linux and Mac

My coworkers and I have gotten addicated to Starcraft again. The question is how to run it since my only computers are Linux and Mac.

Starcraft under [Wine](http://winehq.com) on Linux works pretty well. There are some issues with the display changing resolution that makes it hard to switch back to the desktop and resizes programs. There is a problem with some of the menus not clearing the screen which results in a jumble of text.

Starcraft under [CrossOver Mac](http://www.codeweavers.com/products/cxmac/) on the Mac works but not well. The CrossOver installer is nice; it makes managing installs easy. But Starcraft runs slowly. The mouse is jerky and unresponsive.

Starcraft under [VMware Fusion](http://www.vmware.com/beta/fusion/) running Windows 2000 on the Mac works pretty well. I used the free [VMware Converter](http://www.vmware.com/products/converter/) to turn the Windows 2000 partition on my old desktop into a VMware virtual machine. One of the nice things about VMware Fusion is that I can run the same virtual machine on Linux and Mac.

Another option for running it on Mac is to use the Mac version of Starcraft. The Mac version was originally made of Mac OS 9 and is PPC. Blizzard has a [Mac OS X installer](http://www.blizzard.com/support/?id=mwb0483p) that allows it to run on Mac OS X. Supposedly, Rosetta is fast enough with running the PPC binary under Intel. Unfortunately, I have the Windows CD of Starcraft. It is possible one of my coworkers has the Mac version and I can use my CD key with that.

Tale of Two Grills

On Saturday, I bought a new grill in preparation for my annual party on Wednesday. I was tired of the using the old charcoal grill that I inherited with my apartment. It was pain clean out the old ashes, a pain to light the charcoal even with a chimney starter, a pain to grill just at the right time. So I got the cheapest gas grill I could find. Yesterday, I tried it out because I had never cooked with a gas grill. I couldn’t get the gas cylinder screwed in. I think I had it cross-threaded. It wouldn’t light. Then, it wouldn’t unscrew. I think I may have been turning it the wrong direction since the directions said turn counter-clockwise to undo which is wrong. Finally, part of the burner broke off with the regulator. With a better grip, I was able to get it unscrewed. But now the cheapo grill was broken. I sent an email to the company and would like to get a refund but I don’t expect much from $20 grill.

Today, I bought a new grill. I got a [Weber Baby Q](http://www.weber.com/bbq/pub/grill/2007/q/Q100.aspx) which is a well-reviewed portable. It was expensive enough that there were cheap standup grills for the same price. I wanted the portable since I can see taking it camping. It was much easier to setup unlike the cheap one which had to be assembled; three screws vs eleven. The cylinder screwed in perfectly. I did have to remove the cylinder holder since I had a 16.4 oz bottle and it takes longer, thinner 14.1 oz bottles. The flame lit easily; I could fine the starter button unlike the cheap one. The construction is solid. I didn’t worry about it falling off the little table. And the food was yummy.

Passport

I got my passport today after just a week which eliminates all my worries about one for my trip to St Martin. It looks like the passport was issued on Friday and sent overnight. I was surprised that it showed up so quickly when there have been lots of reports of delays. Maybe a renewal is easier than new application. Or they noticed the travel date and prioritized it.

It isn’t one of the new electronic passports. It has the same design as my old one and not the new design. It doesn’t have the logo which indicates an RFID chip containing identifying information. I am sort of relieved that I can go another ten years before I get a privacy violating one.

St Martin

I am going on vacation to St Martin the second week of July. I am going with my friends Jan and Alethya who I went to Hawaii and other places with. [St Martin](http://en.wikipedia.org/wiki/Saint_Martin) is an island in the Caribbean divided between France (Saint-Martin) and Dutch (Sint Maarten). It is near Anguilla, St Kitts, and St Barts in the Leeward Islands.

The only potential problem is my passport. I let it expire a year ago. The passport office is swamped by applications from the new requirements for passports when returning from North America. I sent my renewal off yesterday paying for expedited processing and overnight delivery. The expedited processing is supposed to be up to 3 weeks. Luckily, they just started a waiver program where the receipt of a passport application and photo ID is sufficient to get back.

Reverse proxy mirror

Does anybody know of software that could be used to build a mirroring reverse proxy? I am looking for something to cache and mirror files for distributions and other archives of mostly static files.

To clients, it looks like a copy of the archive. If a file does not exist, or is too old, it is fetched from the master servers and saved to disk. The files can be populated from CDs or mirrored through rsync to get complete copies. Ideally, it would load balance from multiple mirror servers.

It is possible to set something up with Apache2, mod_proxy, and mod_disk_cache but that does not allow load balancing between servers and stores files in an opaque cache.

Would Perlbal be usable for this? Could it be extended? I am leaning toward writing a mod_perl module.

Portland Tram

Last weekend, I took a ride on the [Portland Tram](http://www.portlandtram.org/). The Tram opened this February and goes from the South Waterfront to OHSU on Marquam Hill. The tower is easily visible just south of Ross Island Bridge and just south of I-5. The cost was a rather large $4. I went on Saturday but it sounds like last Sunday was the first one that they are open. I rode to the top, took lots of pictures, and rode the next one down. There is a good view of downtown and the east side. The view to the south is blocked on the top but is good from the tram.

Read More »

Silver Falls

Two weeks ago, I went to [Silver Falls State Park](http://www.oregonstateparks.org/park_211.php) with my coworker Tim and his wife Nariyo. This was my fourth time going to Silver Falls, which is east of Salem, and their first time. Only did a little bit of hiking and saw North Falls, walked the short trial to Upper North Falls. We had a picnic at the lodge. We hiked down to South Falls and took the trail that loops behind it.

Read More »

BarCamp Portland

On May 12, I went to [BarCamp Portland](http://barcamp.org/BarCampPortland1), an ad-hoc tech mini-convention at [CubeSpace](http://www.cubespacepdx.com/). I got there late in the afternoon and only went to a couple of talks. I went to a talk on Open Hardware and one on scaling Ruby. I saw a couple of people I knew but didn’t really chat much. It also looked at the most of the interesting stuff was happening in informal chats. I thought it was interesting that I didn’t see any sessions on Perl but there were lots of Ruby and Rails. I did play with an [OLPC](http://www.laptop.org/).