OSCON08 Days 4 and 5

renodino on 2008-07-25T18:39:40

OSCON08 Day 4 I skipped the keynotes, not to sleep in, but to start hacking on the Google::AppEngine stuff. Eventually it turned out to be the wrong direction, but it (1) got me into the code and (2) got me learning some Python. Now I think I'm headed in the right direction, and hopefully the Googlers will steer me back on course.

Session 1: Parallel/Distributed Perl

I'm figuring out the dichotomy of parallelism in Perl. Its not really about thread haters vs. thread users; its about what I'll call "sysadmin parallelism" vs. "application parallelism". The former is mostly about fanning out batch jobs; the latter is about making it easy to do concurrency in applications (eg, not having to deal with the async I/O headaches). (Thats not intended as a derogatory comparison, just an attempt to capture the differences). Eric's presentation was about the former; my primary interest is the latter. The usual fork and pipe approach was described.

Session 2: DBIx::Router

I've wanted to peek into this module before, mostly to see if it would ever support distributed joins. Its some nice work, might even make a platform for building an MPP database. But its more about load balancing/replication. Interesting application of DBI::Gofer, too. Would be nice if it could use 3dot notation to select specific datasources, but SQL::Statement doesn't support that (but might be easier to do than other stuff SQL::Statement needs).

OBF Afternoon

Spent the afternoon at the OBF. I feel much more at home at the OBF than OSCON; not sure what that says about me, the OSCON crowd, or the OBF crowd, but standing out under the blue Portland sky, sipping good microbrews, puffing a nice cigar, and listening to some American-Celtic rock beats the hell out of any crowded air conditioned room of geeks listening to techie stuff. I brew my own beer, I build my own computers, I write my own code...I prefer brewing my own beer.

Onion/Auction

Managed to stumble back for the end of the lightning talks, Pudge's musical finale, and the annual Onion. This years Onion was a bit of a puzzler: Larry Wall hacking at the podium with a bit of a rambling review of Perl6. Streaming piles of parsing state machine transitions. Not much humor or insights. Meh.

Things were running late, so every one bailed before the auction. I hung out briefly, but decided the days events had taken their toll and head to the hotel for a nice cold cocktail and warm bed.

OSCON08 Day 5

Up early to pack up the jeep. check on my posts to the perl-appengine maillist; got a response, which confirmed my suspicions wrt how this beast would work. Meaning my prior porting exersize, while educational, wasn't needed. After digesting the wiki content, I think I've figured how I can help: building the stub classes of the public API. Assuming I grok what brad/stephen are building.

Morning Keynotes

Humorous speech regarding reporting errors (ATMs w/ the Window splash screen showing - or worse, device install dialogs), the odd effects of news services applying regexes to turn "gay" into "homosexual", etc.

Social science and large/open data. Adding context vs just adding GPS. Techies pushing tech off the desktop out to the masses.

MSFT OSS rep gives the schpiel about how FOSS friendly MSFT is. (Oh embrace and extend me!) PHP integrated into Win2K8. IronRuby. IronPython. and Java ?!?! and Eclipse ?!?! SandCastle on codeplex ? Apache POI : Java impl. of MSFT binary formats (ie for Word, Excel, etc) MSFT joins Apache ?!?!? DANGER DANGER WILL ROBINSON ?!?!

Tim Bray: Programming Languages questions Bit of a ramble. But made the point that if you're doing OSS, you really ought to know C...cuz thats what pretty much everything is sitting atop. Fortunately, I do know C, having coded massive gobs of it over the last 20+ years. Interesting tidbit: Twitter being rebuilt using scala!

Jeremy Ruston (tiddlywiki) acquired by BT: what we learn from airports. meh.

Q&A: Rippin on MSFT! You patent trolling bastids!

Session 1: Spring 2.5: Spring wo/ XML

Sweet tap dancing Moses, the Java crowd sure goes thru massive contortions to do simple things...most of this was over my head since I haven't done any Spring and haven't kept up with all the latest Java nonsense er I mean "technology". Spring was sposda make J2EE easier...but it looks like they're falling into the same old Java trap: it can't be right unless it takes 1000 lines of CTS inducing code to do what any decent dynamic language can do in a handful of lines. Why do companies continue to put up with this bullshit ? It appears Java is embracing the AOP stuff pretty heavily. I also need to research more on Spring, Guice, and SEAM.

Since the next session was gonna be Spring/JDBC too, I decided I'd had enough OSCON for 2008, and bailed.

Now I'm off to Seattle for a weekend with friends. Looks like the weather isn't going to be cooperative, at least Sunday, so I may escape to Mt. Hood or points south to start the camping a day early.

All in all, its been a decent OSCON. Most importantly it got me away from the new overlords and my current mind numbing/soul sucking assignment for a few days. And hopefully I've found a fun, simple project for spare moments in porting some Google AppEngine code.


stick a fork() in it

Eric Wilhelm on 2008-07-27T19:47:25

Hi, thanks for coming.

I'm not a sysadmin, so I wouldn't say that's what the talk was about. The example I had was about batch processing, and the algorithms I managed to cover were about number crunching.

What is your definition of "application"? GUI? There is indeed a dichotomy between threads and forks - because programming for them is so different, and most of our thinking (not to mention our tools) has centered on linear programs which plod through their task. Asynchronous code is a somewhat different topic than parallelism, but certainly an important one in interactive applications.

This talk (if the title wasn't obvious) was about adding a fork() into that rather typical style of programming without needing to completely rewrite your code. It isn't intended as a howto, but I hope it gave you something to think about WRT threads even. Perhaps I needed some better example code or just a more refined presentation?