Gregor's Ramblings
Home Patterns Ramblings Articles Talks Download Links Books Contact

Double-Dipping: OOPSLA and Colorado Software Summit

October 27, 2007

Recent Ramblings
Explaining Stuff
DDD - Diagram Driven Design
What Does It Mean to Use Messaging?
A Chapter a Day...
EIP Visions
Clouds and Integration Patterns at JavaOne
My First Google Wave Robot
Google I/O
Into the Clouds on New Acid
Design Patterns: More than meets the eye
Reflecting on Enterprise Integration Patterns
Google Gears Live From Japan
Double-Dipping: OOPSLA and Colorado Software Summit
Bubble 2.0
Enterprise Mashup Summit
Facebook Developer Garage
Mashups Tools Market
Mashups == EAI 2.0?
Mashup Camp
ALL RAMBLINGS

I am just returning from a trip to Montreal and Keystone, CO for the OOPSLA and Colorado Software Summit conferences. I spoke on SOA Patterns, workshopped my conversation pattern paper, and gave six talks on event-driven architectures and building mashups using Yahoo! Pipes and Google Mashup Editor.

OOPSLA

I only attended the workshop and the Mini-PLoP portion of OOPSLA. In some sense, these are often the most interesting portion of the conference. I once joked that if you want to guarantee something will fail, you have academics make a plan and have volunteers execute it. This is pretty similar to how OOPSLA is run. But strangely, it does work.

The most interesting part for me was to hang out with some of the more interesting people in the industry. Holding the conference in downtown Montreal provided for many opportunities to exchange thoughts over a glass of wine in the evenings. A chat on functional programming with Erik Meijer was almost worth the trip by itself. Erik gave a live demo of Volta, Microsoft's entry into programming Rich Internet Applications. Volta allows Internet applications to be developed in C#, generating any necessary JavaScript to make it run smoothly in the browser. A key feature is that the programming model appears to the developer as if he or she is writing a rich client application. During code generation, one can choose whether individual functions execute inside the browser or on the server-side. The client invokes server-side functions via XML-HTTP calls. Erik also demo'd how to render a rotating 3D tea pot using 30,000 <div> tags. I also got to catch up with Martin Fowler, who is feverishly working on another book. Stay tuned. It was also good to see Dave Thomas (the OTI one) again.

Kagemusha

Kagemusha is a beautiful movie by Akira Kurosawa. One of the most memorable scenes is at the end, when the petty thief, who served as doppelganger for an assassinated feudal lord, picks up a flag and runs into the battlefield to his certain demise. This is the image that came to my mind when Max started to argue with Erik Meijer about programming languages, trying to convince Erik that Ruby is just so much better than anything else. What a bloodshed. Too bad I missed Max's next suicide mission when he told Dave Thomas to his face that Erich Gamma conceived Eclipse. Ouch!

Web Service Workshop

I gave a talk on SOA Patterns at the Web services workshop, co-organized by Olaf Zimmermann. Olaf is doing his PhD on using patterns to describe architectural decisions and offer alternatives (he has a much fancier title, but that's how I understand it). I am usually a little skeptical when someone uses patterns in some tool or framework, but Olaf brings 10 years of IBM Web services consulting into the mix, so I am curious to see the results.

Mini PLoP

In the ranking of technical conferences with dorky names, PLoP must rank right behind OOPSLA (if you speak German, by far the worst conference name must be WICSA!). PLoP is the Pattern Languages of Programming "conference". It's really a series of writer's workshops, which discuss pattern papers. A writer's workshop is a moderated session where one author shares a paper to be critiqued by other workshop members (typically also authors). The author is not allowed to speak or defend the paper, simulating the fact that the paper will have to stand on its own when someone reads it outside of the workshop. I workshopped my original Integration Patterns paper at PLoP 2002 and received a lot of great feedback from Martin Fowler, John Crupi, Brian Marick, and many others.

Of course, a writer's workshop is only as good as the people attending. This time I was able to recruit Ralph Johnson and Olaf Zimmermann into my session. I workshopped my paper on conversation patterns. It's a little long (45 pages), but I got a lot of great feedback, which I will start to incorporate. Hopefully I will have enough substance to post the patterns to my site by end of this year.

Colorado Software Summit

I had to leave OOPSLA Tuesday morning to catch an early flight to Denver. The Colorado Software Summit (CSS) is held every Fall in the Keystone Resort, near Breckenridge. Apparently, it snowed heavily on the weekend, making for beautiful vistas (and happy ski resorts). CSS started as a mailing list of OS/2 users, who helped each other out in face of poor documentation. It's now in its 11th year, and the first year I am attending as a speaker. I presented on Event-driven Architectures and gave a talk on mashups, featuring a live demo using Google Calendar, Yahoo! Pipes, and Google Mashup Editor. This talk was result of my observation / complaint after a Google developer that no presenter built a solution from scratch. So I put my money where my mouth is and prepared a talk that builds a mashup application from scratch. Luckily, the connectivity held up and the talk was a big success.

The Colorado Software Summit has a peculiar format: every speaker gives each talk 3 times (meaning 6 sessions for me in total!), giving attendees multiple options to see all their favorite talks without running into conflicts. It's a bit tiring for speakers, but a great idea. And, towards the end of the conference the talks tend to go very smoothly.

The event was a little smaller than in past years, counting around 250-300 attendees. Being in a mountain resort gives the event a very cozy feel, with lots of interactions between speakers and attendees. I had the pleasure of meeting Dan, who is famous for being the chief implementation officer for the Dating Design Patterns book. He is married now, so the patterns seem to work.

Dan Pritchett on eBay Architecture

Dan is a technical fellow and shared a ton of detail on eBay's architecture in a special evening session. Seeing how a site with 248 Million users works is certainly interesting. Dan was very open and answered many detailed questions. Here some interesting facts (some of them are from a few months ago and likely higher today):

How do they make this happen? Some of the key architectural decisions include a functional decomposition of the site across application servers, abstaining from using database transactions and foreign key constraints. Asynchronous messaging and even-driven approaches contribute to decoupling key systems (billing /search / fraud) and increasing throughput. Dan actually attended my EDA talk and was able to provide convincing arguments for the use of event-driven architectures. It's nice to see that some people understand (and realize) the potential for higher throughput in these architectures when compared to synchronous interaction or the dreaded shared database integration. Interestingly, Dan also mentioned that changing the architecture to be message-oriented required a long series of argument against the incumbent "architects". Maybe misery does love company, because it made me feel about my many attempts to convince fellow architects of the benefits of a message-oriented approach. Maybe there is hope...

Adventurous Drive Home

On the way back I collected some hard data towards the suitability of a Mustang for crossing an 11,500 ft mountain pass a few days after heavy snow fall (notice the 90 minutes of speed 0 at 11,00 feet). After a lot wheel spinning, digging, jacking, and towing, I ultimately managed to reach Highway 285, which is famous for leading through South Park.

MORE RAMBLINGS    Subscribe  SUBSCRIBE TO GREGOR'S RAMBLINGS


Gregor is a software architect with Google. He is a frequent speaker on asynchronous messaging and service-oriented architectures and co-authored Enterprise Integration Patterns (Addison-Wesley). His mission is to make integration and distributed system development easier by harvesting common patterns and best practices from many different technologies.
www.eaipatterns.com