Wednesday, December 31, 2008

Farewell 2008, don't let the door hit you in the ass on the way out :)

2008 has been a tumultuous year. It's been busier than most of the years in recent memory, both socially and work-wise. It's been filled with intense events - both positive and negative.

There has been way too much sickness this year. I've been sick a couple of times (coinciding with my birthday and Christmas, bleh), but that's nothing compared to the folks in my world that had serious medical issues. My friend Dave had a stroke this summer (he's 40) - thankfully it was caught right away and after some rehab he's doing *really* well now, slightly over six months later. My friend Adam (35) was suddenly struck with Gullain-Barre Syndrome and is currently in the hospital where he's been for over a month now - he's just regaining some small ability to move his hands and legs, but still can't talk (he's breathing through a tracheostomy) or move much. This is one of the healthiest people I know - WTF??? We know his road to recovery will be long but he'll get there. Still other friends lost relatives or dealt with their own illness, and the number of folks who caught the flu this fall/winter was outrageous.

Those of you who know me well know how much my cats Kaju and Kasha have meant to me over the last 8.5 years. When Kaju was diagnosed with lymphoma in March, I was devastated. She had almost 8 more months with us thanks to chemotherapy, but it wasn't nearly enough. We had to put her down the day of my 40th birthday party - oh my that was an odd day.

My tenure as WSO2's Director of Java Platforms is over (see Sanjiva's note). I'll still hopefully be doing some consulting work for WSO2, and I believe strongly in their mission. But for now, I'm sort of lazily looking around for my next gig - if you have any ideas or things I should consider, drop me a line! I'm focusing on consulting for now but would consider the right full-time opportunity if something awesome came up. In the meanwhile I'm hoping to stretch my brain a bit learning some new stuff (FaceBook and Android development).

And then there was the economy. 'Nuff said.

So, that's some of the unfortunate stuff. On the bright side - well, there's the obvious. :) Perhaps the most exciting political moment for the US in my lifetime, and I got to watch it happen while sitting with fabulous people in New Orleans at ApacheCon. Although things were intensely busy, so much of it was wonderful - four weddings in close succession over the summer, the birth of my fantastic nephew Jason, discovering Twitter and FaceBook, doing some great work with WSO2, and spending time with friends new and old. I threw April a fantastic 40th birthday party, and then she threw me one. :) Our relationship has been a focus this year as well, and we've both been growing with and around each other in some wonderful ways. I feel truly blessed to be a part of the community of brilliant, creative, and caring people that surround me.

2009 has the potential to be a pivotal, and very healing, year for us as individuals, as an overlapping set of communities, and as a nation. I hope we fulfill that promise, and I'm ready to do what I can to make it happen.

With an open and spacious hope for the future, I wish you all a very very happy new year. As Savas says, "Be happy, love, and smile!"

Friday, July 25, 2008

Give it a REST...

Sanjiva lets fly with a rebuttal to Tim Bray's comments on REST and its relationship to SOAP, Java, and the multi-language divide.

Although I'm getting a little tired of saying it these days, I think it's clear that both SOAP and REST are here to stay.  There are some situations where you could use either (or both), but there are also a bunch where there is a clear winner - just like there are some cases where TCP is the right protocol, and others where UDP is better.  Use the right technology for the right situation.  Don't break the web.  And you'll be fine.

SOAP isn't "an embarrassing failure".  REST isn't "insufficient for the enterprise". Can we get on with the good stuff now? :)

Sunday, July 13, 2008

WSO2's Semantic Web Initiative... wait, what?

We had a nice chat with Rich Seeley from SearchSOA a little while ago, all about the new 1.1 release of the WSO2 Registry.  Rich wrote up the conversation in this article, but he seems to have focused a bit too narrowly on the "triples" aspect. :)

It looks like Rich conflated our discussion of the extension points in the Registry with the talk about associations.  Not a truly egregious error, to be sure, but one that does mask some of what we're doing.

The extension points in the Registry are designed to enable serious customization in two ways - first, Filters/Handlers let you install interceptors that control the existing Registry behavior.  For example, you can set it up so that whenever a put() matching certain conditions (let's say where the target URL matches "/pictures/*") occurs, a Handler can check that the size of the new resource is under a certain threshold before the put() is allowed to complete.  Handlers are great for inserting custom governance rules, or for performing automated tasks triggered by normal Registry actions.  We use these for our WSDL validation and auto-importing XSD Schemas that are imported from WSDLs or Schemas.

The second extension point is called Aspects, and using Aspects allows you to add new behavior beyond the standard put/get/delete and our various built-in community features.  The out-of-the-box example we have for this is Lifecycles, where we let you configure a chain of states and, optionally, conditions which control the transition from state to state.  The Lifecyle aspect adds the "promote" and "demote" actions to any resource which has a Lifecycle associated with it.  But Aspects can be used to make any arbitrary behavior occur, so for instance spell-checking, triggering an external build process, sending email to someone, etc...

So, we also do of course now support arbitrarily typed associations, so you can say stuff like "document D1 references service S1" (this might be documentation for a Web service) or "picture foo.jpg is-a-photo-of http://glendaniels.blogspot.com".  These are the actual triples, and they do represent what are essentially subject-verb-object relationships.  The subjects are always Registry resources in our world, the relationship types are arbitrary strings (which may, and probably should, be URLs), and the objects (or "targets") are either relative URLs from the Registry root, in which case they are other resources in the Registry, or absolute URLs in which case they point to Web resources.

The important takeaway here is that our extension model isn't entirely built on the triple system.  Triples are just one way you can use the Registry to build out a network of behaviors and relationships that best reflects your particular set of data.

Thursday, July 10, 2008

Trying out Windows Live Writer

Yep, it's time for an offline blogging client.  I've heard good things about Windows Live Writer, so trying it out right now.  It's got a feature where it analyzes the look (i.e. theme) of your weblog at install-time so it can give you an accurate preview of what your posts will look like.  It at least got the sizes and fonts right!

Definitely seems cool so far, so we'll give it a run and see how it goes.  Stay tuned for actual content next post.

Wednesday, July 2, 2008

Open Repositories and APP Patterns

Dan picks up the baton and kicks off a discussion about Open Repository API issues - cool! I'll start posting my thoughts here as well.

Among the things he mentions:
Define a way to deal with hierachical collections of versioned resources. That is, we need a standard way to model folders and files in AtomPub. This would be of benefit to a lot of people.
Totally agree, this is huge. As I see it this breaks down into several parts:
  • How do we indicate that a particular <entry> is in fact a collection (i.e. another feed)? We (WSO2) do this now with a custom extension, but are open to other ideas.
  • How do we create a sub-feed (i.e. subdirectory)? We do this by POSTing a <feed> instead of an <entry>. I'd like to put that forward as a good option.
  • How do we represent versioned URLs as "the same thing"?
Other things I'd like to discuss in this realm include standardizing some metadata properties (so I guess I'm agreeing with Dan's instinct to roll this in) - for instance both Galaxy and WSO2 Registry pull some useful information (service names, etc) out from WSDLs that are put into the repository. If we serialized that metadata the same way that would be really nice. I would imagine that we'd come up with a) a standard XML wrapper element for the property bag, and then b) some agreed-upon vocabulary for common properties like XML namespaces and WSDL artifact QNames.

I like Dan's proposed list of interested parties. My guess is that James and the Abdera crew might be very interested in this as well - and I bet that both Dan and I would want whatever appropriate support for this stuff baked in to Abdera if possible, since we both use it heavily.

+1 for a mailing list / wiki, so we can start throwing stuff up on a mutually-editable blackboard. Codehaus is fine, or we're happy to offer space for it as well. Dan, can you get this set up over there, or would you like us to do it?

Tuesday, July 1, 2008

Mule Galaxy rolls out

Hey, Mule Galaxy goes 1.0!

Congratulations to Dan and the Mule team on the release of their JCR- and APP-powered Registry. I'm looking forward to taking it for a spin, and continue to be very psyched that other vendors are traveling the same road we are with the WSO2 Registry - REST and APP are great foundations on which to build a registry/repository solution.

Despite some of the recent heat between our two companies, I think there are good opportunities for "coopetition", and one of those is definitely in the Registry realm. As Anne mentioned a while back, it might be nice if we got our heads together and thought about some standard models for SOA in a RESTful/APP data store. Simple example - how do I find WSDLs in the Registry which use a particular schema namespace? Can we make that work the same way across both our products?

Wednesday, June 18, 2008

If it quacks like a duck...

Paul writes about the fact that Synapse IS (dammit) an ESB.

Back when we were originally pulling Synapse together, the intent was indeed to build something that multiple ESB vendors (hence the involvement from Sonic/IONA) could use as a mediation framework without needing to replace their entire products - cooperate on infrastructure, compete with higher-level products. While this idea had some merit, the fact is that it's quite challenging to define the boundaries between the "mediation" portion and the "registry" portion and the "endpoint management" portion. Add to this the distinct lack of actual coding participation from the extant ESB vendors, stir, let sit for a couple of years, and indeed you end up with a full-on ESB.

Whatever that is. :)

Regardless, Synapse has evolved into an awesome product, and stands head-to-head with (if not above) a lot of the commercially available ESBs out there. Viva la open-source!

Tuesday, June 10, 2008

WSO2 @ TechEd

My colleague Jonathan Marsh, WSO2's Director of Mashup Technologies, co-presented an interoperability demo today during the keynote at Microsoft's TechEd IT. He showed off using our PHP and Java stacks in a plug-and-play demo of fully-secure stock trading with Microsoft's stuff. He looked great up there! Through the magic of modern technology I was watching it from my kitchen and IMing with folks in Colombo who were all gathered to watch it in the lounge at WSO2 HQ.

Check out Jonathan's blog for the full skinny (and a pointer to the video)!

Monday, May 19, 2008

Memories

I'm currently working in my hotel room here at the Fairmont San Jose. It's weird - the last time I was here I was 21 years old on what might have been my first business trip ever (Interop '90 for those who remember such things). I have very fond memories of that trip, and damned if the hotel doesn't have the exact same (superlatively good) french fries!

Just out here for a couple of meetings tomorrow then I take the redeye home.

Saturday, May 10, 2008

Mashup webinar, and hey I'm, er, tweeting?

WSO2 does free webinars every now and again about our products and general SOA and Web Services topics. Jonathan is going to be giving one on the Mashup Server this coming week. Check it out if you're interested!

While on the subject of mashups, one of our fab engineers, Tyrell, whipped up this cool Twitter + Google Maps mashup in just a few hours. It's pretty excellent, and it was serendipitous to find out about it around the same time I started tweeting (or is it "twittering"?). Now I want the same functionality, but filtered to either just the folks I'm following, or the subjects I'm tracking... (update - Tyrell added friend filtering the mashup. Rockin'!)

So if you do the Twitter thing, I'm at http://twitter.com/gdaniels!

Thursday, May 1, 2008

First post to Blogger

This is an experimental post to check out how blogger does the do. Thinking of moving over here to get comments and all that happy stuff!