Interoperability Wars – Episode 6 – Part 1 – Revenge of Babble

Nothing said in this post (or on this blog for that matter) reflects the views of the blog owner's employer of the moment.

Dedication: To George Lucas for as Harrison Ford once said to Mr. Lucas, "You can type this shit, George, but you sure can't say it."

Announcer: Join us for the exciting first part of episode 6 of the Interoperability Wars – Revenge of Babble!

Continue reading Interoperability Wars – Episode 6 – Part 1 – Revenge of

APP and Dare, the sitting duck

So poor Dare made the apparently unforgivable mistake of questioning anything about APP. First he suggested that maybe APP doesn't solve all the world's problems. Then he clarified that GData isn't APP. And then after a particularly appalling article by Mr. Bray that was so rude that I refuse to contribute to its popularity by linking to it, Date finally tried to explain that Microsoft isn't trying to destroy APP. I'm going to ignore all the heat because I suspect my handful of readers have already read Dare's articles and the various responses. Instead I'll try to explain what's actually going on at Live. I know what's going on because my job for little over the last year has been to work with Live groups designing our platform strategy. So I know where the bodies are buried and in many cases helped to bury them.

Continue reading APP and Dare, the sitting duck

Portable Reputations – Reputations Want to Be Free!

Imagine if you could find a random store on the Internet and get reputation data about it regardless of where it had previously sold goods. Maybe it has a great reputation on Yahoo Shopping but a lousy reputation on EBay? Maybe it has an outstanding reputation on MySimon but hasn't really established itself yet on MSN Shopping where you happened to find it? Shouldn't we be able to find all the reputation data without having to be held hostage to some reputation intermediary? The same applies to reputations about people. Imagine if a website with a comment section could collect reputation data about a user from every site they have posted at and use that to figure out how much moderation, if any, they should apply to that person's posts? Why should someone have to start building their reputation from scratch on every website they go to? It's out reputation data, it's about us or its generated by us and it's bloody time we set it free!

Continue reading Portable Reputations – Reputations Want to Be Free!

But That's Not RESTful!

Many years ago a former boss of mine (Peter Ford, I believe) told me "Anytime someone says to you 'that won't scale' during a design argument what you should hear is 'Yo Mama!'". [Ed. Note: For my non-American reader(s) "Yo Mama!" is a generic American insult, it is considered very tame and would be acceptable, if said jokingly, in a professional environment.] Lately I've run into another design argument that needs to join the "Yo Mama!" equivalency list – "That's not RESTful!"

Continue reading But That's Not RESTful!

Windows Live Data Wants To Be Free – Or A Gadget In Every Pot

I walked into my boss's office on my first day back working for Microsoft in April and he asked me for a favor. Four months later, including one month spent working 7 day weeks, the "favor" is finally over. Microsoft just announced the public availability of the Windows Live Contacts Gadget beta. The gadget allows any website, anywhere, without filling out any paperwork, just by including some Javascript, to allow its users to use data from their Windows Live Contacts (i.e. their address book including e-mails, phone numbers, physical addresses, etc.) on the site. But, of course, that's not even half the story.

Continue reading Windows Live Data Wants To Be Free – Or A Gadget In Every

Personal Web Services – The Unnecessary Business

When I think of say e-mail or IM or web pages or personalized home pages or single sign on or address books, I realize that there is really no good excuse, certainly not in the long run, for these services to be delivered in a centralized fashion. Why can't I just have a little box off in a corner of my house hooked up to my Internet connection that provides these services for me? Why can't I have my own little e-mail, IM and web server that hosts all of my content? At the very least I would maintain my privacy, something I have no hope of maintaining when a 3rd party hosts my content for me (even if the hosting service doesn't peak, doesn't leak and isn't hacked, I can safely assume the government is looking). But in addition to privacy I would also get better functionality since my little box would 'over provisioned' compared to the processing power allocated to users in a typical centralized service.

Continue reading Personal Web Services – The Unnecessary Business

Optimistic Concurrency – A False Panacea

As soon as an Internet scale service expects to allow clients to both read and write data it's a sure bet that optimistic concurrency will come up. After all, how else do you solve the lost update problem without drowning in a sea of performance crippling locks? Better yet, implementing optimistic concurrency in a service is pretty trivial. You just need some kind of change indication system (dates, e-tags, updategrams, etc.) and a 1/2 decent transactioning system (available off the shelf) and you're pretty much done. But unfortunately all optimistic concurrency does is move the 'lost update' lump under the carpet and make it the client's problem. Moving the lump isn't bad but it does mean that before declaring victory you absolutely must be sure that your clients have a workable solution for the merge issue.

[Ed. Note: I updated the article in response to a number of comments on the web.]

Continue reading Optimistic Concurrency – A False Panacea

Thoughts On Creating An Infoset For Windows Live Services Platform

As part of creating a service platform, e.g. a platform focused on the creation and consumption of services by other services, we realized that we needed a consistent way to model messages within our system. This isn't about creating some universal message model for everyone, everywhere. This is strictly about creating a message model for our use. But I think the issues we are dealing with are fairly universal so I thought it would be interesting to share our current thinking. Please keep in mind that this is all very preliminary and subject to change without notice.

[Note: Updated to add a section on extensibility]

Continue reading Thoughts On Creating An Infoset For Windows Live Services

Adding Extensibility to JSON Data Formats

How does one version a JSON message? How does one make it backwards or forward compatible? This may not be an issue when one's own Javascript is talking to one's own server via JSON but once you throw in creative use of script tags with src attributes or environments other than the browser these issues become relevant.

Continue reading Adding Extensibility to JSON Data Formats