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
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
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!
Of course, as a good Microsoft employee, I love SOAP. In fact, I regularly use SOAP every single day to keep myself clean. The rest of the time I wish I had the skills to write this explanation of why SOAP is really simple.
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!
Continue reading Windows Live Data Wants To Be Free – Or A Gadget In Every
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
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
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
Continue reading Adding Extensibility to JSON Data Formats