I wrote my first gadget for http://www.live.com yesterday; the MSN Spaces Photo Album Browser. Screenshot below

It didn't take that long but it was a frustrating experience trying to find documentation. I resorted to a combination of combing the Microsoft Gadgets forums, reading the source code of existing gadgets and reading the sparse documentation at http://www.start.com/developer. We definitely have a lot of work to do in making this stuff more accessible to developers.

While working on it, I did get a fantastic tip for debugging Javascript from Matt. I didn't realize that I could use Visual Studio to debug any Javascript currently running in Internet Explorer in three steps. This is also explained in the IE blog post Scripting Debugging in Internet Explorer

  1. In Internet Explorer, select Tools->Internet Options…->Advanced->Disable Script Debugging
  2. In Visual Studio, select Debug->Processes
  3. In the Processes dialog, select the IE process you want to debug and then click the Attach button

That's it. Now you can set breakpoints and party like its 1999. Being able to debug script in this manner saved me hours of wasted time because it let me know that the object models exposed by http://www.live.com and http://www.start.com are different. Somebody definitely needs to hustle and get some documentation updated.


 

Categories: Web Development | Windows Live

November 19, 2005
@ 02:54 AM

Another Windows Live service shipped this week, http://domains.live.com. From the site

Already own your own Internet domain name?

Have us host e-mail and IM for you in a domain you already own.

  • Create up to 20 e-mail accounts within your domain
  • Get a 250 MB inbox for each account*
  • Check your e-mail from any Web-enabled PC
  • Junk e-mail filter protection using Microsoft SmartScreen technology
  • Virus scanning and cleaning of e-mail
  • Seamless access with MSN Messenger, MSN Spaces, etc.
  • This is a pretty cool service and one I've been wanting for a while. Now I can provide @25hoursaday.com email addresses for myself and others without actually having to host a mail server. Sign me up, baby. 


     

    Categories: Windows Live

    I found an interesting comment by someone named Dave in response to Shelley Powers's post Always in Alt. Dave wrote

    Microsoft made the bed they are now laying in.

    (1) As Shelley put so well, they abandoned an exceptionally large group of developers when they moved to .NET - I should know, I was one of them. (Don’t worry for me… I’ve moved onto greener, less proprietary pastures. Screw me once MS, shame on you. Screw me twice, shame on me.)

    (2) Worse yet, they are looking to do it again with the latest “Live” demo and supposedly-leaked emails about changing directions. This is one part of what MS has shown us alot of since 2000… they can’t stay in a single direction!

    (3) But the larger part of their problems is this insistent craving they have to make bold announcements of products that, well, NEVER see the light of day in a timely manner. Let’s compare….

    This year alone Apple announced three new iPods models, one brand-new Mac model, one new software suite, an upgrade to their other suite, delivered a major upgrade to their OS - two months ahead of time.

    Microsoft? Well, after underwhelming the media with some pre-beta Longhorn bits (about 2 years late I might add) and holding their PDC which finally showed us developers something of which _might_ be released in another 12 months, they finally delivered - about 18 months late - upgrades to MSSQL and VS.NET. Office got a decent upgrade but users have little compelling reason to spend money on it. There’s XBox of course. And then they delivered the worst demo anybody has ever seen about a change in directions.

    Where does this leave us developers? Very unhappy. Of course, as Scoble would put it - “real soon now” that will change. Of course, he said that 2 years ago too. In the meantime, I have to make a living. Can I do it using Microsoft Live products? Um, “real soon now”. How about using the - actually, quite excellent - new features of ASP.NET 2.0? Well, since they were promised back in 2004….

    LOL. I guess I would have needed to tell my kids _12 months ago_ that I’d put food on the table “real soon now” if I depended on such PR talk.

    PR talk…. now THAT is what is very wrong with Microsoft nowadays.

    There are a couple of themes here that should be addressed. The first is that Microsoft abandoned developers with its .NET strategy. In the move to managed code, I believe Microsoft could have done a better job of satisfying large bodies of its developer constituents such as VB6 users. The classic VB petition is probably the most visible manifestation of this feeling of abandonment by our customers. As Soma pointed out in the discussion around his post "Rumors of my (VB6) demise...", the leap the incompatibility between VB6 and Visual Basic.NET was not a decision taken lightly by the Microsoft Developer Division but was deemed necessary to advance the platform.

    The next point that Dave brings up is that the latest "Live" announcements are a radical change of direction that will cause disruption among our developer customers. I think this isn't right on two counts. First of all, the announcements aren't that radical a shift. A number of industry watchers such as Mary Jo Foley and Joe Wilcox have rightfully focused on this being more of a "sharpening of focus" for Microsoft than a radical new strategy. A significant number of the "Live" offerings are existing offerings that have been given new purpose and clearer goals. As time progresses, the Windows Live platform will unfold. This platform isn't a new set of developer tools and runtimes that will obsolete the .NET framework. That would suck. Instead these are APIs built around the Windows Live offerings and more that will give developers more opportunities to build interesting applications that delight users. A taste of this platform is at http://msdn.microsoft.com/msn and we will be announcing more details in the coming months. 

    Dave's final point is that Microsoft is fond of announcing stuff years before it is ready. That is true and as a Microsoft employee I hate it a lot. I was talking to Brian Arbogast about this on Monday, and he agreed that we should endeavor to only announce things that people can use right away or can shortly thereafter. This is the philosophy around http://ideas.live.com.  

    There definitely is a lot of confusion out there about Microsoft's "Live" strategy and exactly what the "supposedly-leaked memos" mean. Now that Ray Ozzie has started back blogging, I assume he'll be taking a personal role in clarifying what his "Live" strategy means to Microsoft, its partners and its customers. I've subscribed to his blog. Have you?


     

    Categories: Windows Live

    November 16, 2005
    @ 11:45 PM

    I finally got to try out Google Base and it does seem to be an interesting experience. It reminds me a lot of del.icio.us. Of course, it's missing key functionality like web feeds and a proper API, but if I was told to build the next version of del.icio.us it would probably look a bit like Google Base. The three key improvements to del.icio.us being

    1. Supporting more item types beyond "favorite link". This means supporting metadata fields beyond title, link and description.
    2. Allowing users to define their own fields
    3. Adding  much better search capabilities
    This definitely looks like an experiment by Google to see what people do with the service which might explain it's unpolished look. It's not clear how people will end up using it but I'm sure they will since its the latest new thing from Google.

     

    Categories: Web Development

    November 15, 2005
    @ 04:03 PM

    I rarely repost comments I made in other blogs but this is one of those times. In his post I gave Douglas Englebart a mouse and a book Robert Scoble writes

    It all started earlier this afternoon when Buzz Bruggeman asked me in an email “want to have dinner with Douglas Englebart?”

    First of all, if you don’t know who Douglas Englebart is you better do some reading. He invented the mouse and many of the concepts that you are now using to read my words. And he did that 40 years ago. Yes, he was that far ahead.
    ...
    Some key things stuck with me.

    1) Doug is a frustrated inventor. He was frustrated over and over again during his career by people who just didn’t get his ideas. 2) He says he has many ideas that he hasn’t shared yet. We talked about the way the system could change from how it sees what you’re paying attention to, for instance. 3) He repeated for us the creation of the mouse. Said they still don’t know who came up with the name “mouse.” That was the part of the dinner I filmed. 4) He challenged the business people at the table (specifically looking at Andy and me) to come up with a way to increase the speed that innovations get used. He didn’t say it, but his eyes told me that taking 25 years for the world to get the mouse was too long and his career would have been a lot more interesting if people could have gotten his ideas quicker. I told him that ideas move around the world a lot faster now due to blogs and video (imagine trying to explain what Halo 2 was going to look like if all you had to describe it was ASCII text).

    The most interesting writing I have seen on the adoption of ideas is Malcolm Gladwell's Tipping Point. I read it this summer as part of my excercise in figuring out why MySpace was so successful and the book was full of insight and interesting examples of idea propagation. If  Doug hasn't read it, I'd suggest that he read it.

    I agree that it takes too long for innovations to make it into the mainstream. Ethernet, SQL databases, and object oriented languages running on garbage collected VMs, are all two or three decades old but only started really affecting the mainstream in the last decade. AJAX which is all the rage this year was invented last century. Dave Winer first started talking about payloads for RSS in 2001 but podcasting only took off over the last year.

    We are closing the gap from innovation to adoption but it definitely could be better. I agree with Robert that blogs and other forms of mass communication being available to the general public will only accelerate this trend.


     

    Categories: Technology

    November 14, 2005
    @ 06:16 PM

    Due to Windows Live, a bunch of us at MSN (the Windows Live division?) have been inundiated with lots of internal marketing and presentations around branding. One thing that this has convinced me of is that we (Microsoft) are totally inept when it comes to branding. The fact that till today nobody can quite answer What is .NET? (a managed runtime? server software? web services? all of the above?) is a testament to our generally cluelessness in this area. I sincerely hope the same thing doesn't happen with "Live" but only time will tell.

    On a related note, for some reason I've had a couple of idle lunchtime conversations with different people on what they think about XBox. Somewhat surprisingly to me, many employees at Microsoft are quick to deride MSN for being a "money losing division" even though we are now profitable but yet in the same breath have nothing but praise for XBox which is billions of dollars in the red. When I've probed for reasons for this disconnect, the answer has been usually one of either (i) it was a "big bet" to get Microsoft in the living room or (ii) it adds something cool to the Microsoft brand. The latter is what I find interesting. Since people started mentioning this I've started paying attention to mentions of Microsoft in XBox ads and websites. 

    What I've noticed is that there is little mention of Microsoft when it comes to XBox. If you visit http://www.xbox.com/en-US/, you have to scroll down before you see a mention of Microsoft and even then it's in the small print. TV spots for XBox 360 such as Jump In and Water Balloons don't mention Microsoft at all. Why not? My pet theory is that the guys behind XBox know the truth. XBox is cool. Microsoft is not. Thus mentioning Microsoft in XBox ads would actually taint their brand. Of course, if I'm right there goes the theory of a bunch of my coworkers about XBox boosting the "cool factor" of the Microsoft brand.


     

    Categories: Life in the B0rg Cube

    After the long wait, the list of Original Xbox Games Playable on Xbox 360 is now available. I'm glad to see the following games on the list

    • Grand Theft Auto 3
    • Grand Theft Auto: Vice City
    • Grand Theft Auto: San Andreas™
    • Halo® 2
    • Ninja Gaiden®
    • Star Wars® Knights of the Old Republic® II: The Sith Lords™
    • The Incredible Hulk™: Ultimate Destruction

    Check out the list and see if your favorite XBox games will be playable on the XBox 360. Mad props to Michael Brundage and all the others who've worked on XBox Backward compatibility.


     

    Since announcing that we've started the beta of our implementation of the MetaWeblog API for MSN Spaces, I've received a bunch of positive responses from a couple of blogging tool developers. So far it looks like there'll be at least six blogging tools users will be able to use to manage the blog on their space after we launch the API. Below are excerpts from some of the blog posts by the developers of the blogging tools I've been in contact with

    From the post Spaces by Adriaan Tijsseling (developer of Ecto)

    Alex and I are currently testing the beta version of MetaWeblog API for MSN Spaces. So far we caught a couple of bugs and suggested a few improvements, but it looks like a good implementation. The main developer, Dare Obasanjo, is doing a great job and is very response to our emails. Thanks, Dare!

    I don't know when blogging to Spaces with blog clients like ecto is available, but we will keep you up to date.

    I'm not the developer, I'm just a paper pushing PM (program manager) but I'm glad Adriaan thinks I've been responsive and our implementation is good.

    From the post 30 Million MSN Spaces blogs ... and MetaWeblog remote posting in beta by Tris Hussey (developer on Qumana)

    Dare Obasanjo announced at Gnomedex that MSN Spaces would be working on supporting remote posting APIs ... and now it's in beta testing!  We got the ping last night and we're testing implementation within Qumana now.

    There are a couple of other blog tool vendors I've talked to both won't mention here since it's up to them to decide when to announce that their tools will also work with Spaces. So far, the feedback has been great and I look forward to further interactions with the various blog tool vendors as we open up more of the Spaces platform.

    NOTE: The beta is currently for software developers so they can test that their tools work with MSN Spaces. We currently don't have plans for beta testing with regular users to test use for blogging on their spaces. If you are a developer of a blogging tool and are interested in your tool working with MSN Spaces, then give me a holler; dareo AT microsoft.com.


     

    Categories: Windows Live

    Last week Andrew Conrad told me to check out a recent article by Adam Bosworth in the ACM Queue because he wondered what I thought about. I was rather embarassed to note that althought I'd seen some mention of it online, I hadn't read it. I read it today and as usual, Adam Bosworth is on point.

    The article is entitled Learning from THE WEB and it begins by listing eight "unintuitive lessons" we have learned from the Web. The lessons are listed below

    1. Simple, relaxed, sloppily extensible text formats and protocols often work better than complex and efficient binary ones.

    2. It is worth making things simple enough that one can harness Moore’s law in parallel.

    3. It is acceptable to be stale much of the time.

    4. The wisdom of crowds works amazingly well.

    5. People understand a graph composed of tree-like documents (HTML) related by links (URLs).

    6. Pay attention to physics.

    7. Be as loosely coupled as possible.

    8. KISS. Keep it (the design) simple and stupid.

    Where the paper gets interesting is that then tries to apply these lessons to XML. Remember that Adam was one of the founder of the XML team at Microsoft and knows a thing or two about it. So he writes

    In my humble opinion, however, we ignored or forgot lessons 3, 4, and 5. Lesson 3 tells us that elements in XML with values that are unlikely to change for some known period of time (or where it is acceptable that they are stale for that period of time, such as the title of a book) should be marked to say this. XML has no such model.
    ...
    Lesson 4 says that we shouldn’t over-invest in making schemas universally understood.
    ...
    Lessons 1 and 5 tell us that XML should be easy to understand without schemas

    I totally agree with his assessment of the lessons learned from lessons 4 & 5. However the issue of being able to mark an element in an XML file as 'relatively unchanging' in a generic way seems to be lost on me. He then goes on to point out more of the problems with XML [and the Semantic Web/RDF]

    There are some interesting implications in all of this.

    One is that the Semantic Web is in for a lot of heartbreak. It has been trying for five years to convince the world to use it. It actually has a point. XML is supposed to be self-describing so that loosely coupled works. If you require a shared secret on both sides, then I’d argue the system isn’t loosely coupled, even if the only shared secret is a schema. What’s more, XML itself has three serious weaknesses in this regard:

    1. It doesn’t handle binary data well.
    2. It doesn’t handle links.
    3. XML documents tend to be monolithic.

    Now it's gotten pretty interesting and at this point, Adam throws the curve ball.

    Recently, an opportunity has arisen to transcend these limitations. RSS 2.0 has become an extremely popular format on the Web. RSS 2.0 and Atom (which is essentially isomorphic) both support a base schema that provides a model for sets. Atom’s general model is a container (a <feed>) of <entry> elements in which each <entry> may contain any namespace scoped elements it chooses (thus any XML), must contain a small number of required elements (<id>, <updated>, and <title>), and may contain some other well-known ones in the Atom namespace such as <link>s. Even better, Atom clearly says that the order doesn’t matter.This immediately gives a simple model for sets missing in XML.
    ...
    Atom also supports links of other sorts, such as comments, so clearly an Atom entry can contain links to related feeds (e.g., Reviews for a Restaurant or Complaints for a Customer) or links to specific posts. This gives us the network and graph model that is missing in XML. Atom contains a simple HTTP-based way to INSERT, DELETE, and REPLACE
    s within a . There is a killer app for all these documents because the browsers already can view RSS 2.0 and Atom and, hopefully, will soon natively support the Atom protocol as well, which would mean read and write capabilities.

    Now that's deep. Why not move up one level of abstraction from exchanging XML documents to exchanging Web Feeds (RSS/Atom documents)? Adam ends his article by throwing a challenge out to database vendors who he believes have failed to learn the lessons of the Web by writing

    All of this has profound implications for databases. Today databases violate essentially every lesson we have learned from the Web.

    1. Are simple relaxed text formats and protocols supported? No.
    2. Have databases enabled people to harness Moore’s law in parallel? This would mean that databases could scale more or less linearly to handle both the volume of the requests coming in and even the complexity. The answer is no.
    3. Do databases optimize caching when it is OK to be stale? No.
    4. Do databases let schemas evolve for a set of items using a bottom-up consensus/tipping point? Obviously not.
    5. Do databases handle flexible graphs (or trees) well? No, they do not.
    6. Have the databases learned from the Web and made their queries simple and flexible? No, just ask a database if it has anyone who, if they have an age, are older than 40; and if they have a city, live in New York; and if they have an income, earn more than $100,000. This is a nightmare because of all the tests for NULL.
    The article ends by arguing that database vendors should add native support for the Atom Protocol and wire format. I find this interesting since based on conversations on the atom-protocol list, it is clear that Google is very interested in the Atom API. Perhaps they have already built this Atom store that Adam is arguing for and will expose the Atom API as a way to interact with it. Perhaps this Atom store accessible via Atom feeds and the Atom API is Google Base? Speculation is fun.

    As for me, I tend to agree with Adam that moving up layers of abstraction is a good idea. We've all agreed on XML, the next thing to do is to agree on applications of XML. We've all agreed on RSS, the next thing to do is figure out what scenarios are enabled by the subscribe model. This is one of the reasons why I disliked the unnecessary fragmentation caused by the RSS vs. Atom battles. As for whether we need to start seeing databases with native RSS/Atom support, I think it's too early in the game to jump there. Heck, RDF has been around for a while but we are just know seeing some decent things happening with SPARQL and various RDF stores. Similarly with XML and XQuery. I don't think enough lessons have been learned from either to start thinking about what it would mean to have a native RSS/Atom store. It is an interesting idea though. 


     

    Categories: XML

    There have been a couple of comparisons between last week's announcement's of Windows Live and Microsoft's Hailstorm initiative in the press. Since I gave a talk last week on the differences between our platform thinking then versus now, a few folks have suggested I blog about it so here goes.

    My favorite article comparing Windows Live with Hailstorm was Mary Jo Foley's article Microsoft 'Live': 'Hailstorm' Take 2 where she wrote

    Microsoft is mixing together rebranded MSN and bCentral properties, and seasoning with a dash of Hailstorm. Read all about that, and more, in Microsoft's 'Live' talking points.
    ...
    We definitely were thinking Windows Live sounded a lot like the ill-fated Hailstorm, when we heard Microsoft's explanation of Windows Live. In case you need a refresher, Hailstorm, which Microsoft announced back in 2001, was designed to be is "a set of user-centric XML Web services that enable developers to build solutions that work seamlessly with one another over the Internet to deliver a more personalized and consistent user experience." Microsoft tabled Hailstorm shortly after its introduction, as a result of customer and partner concerns over privacy and security of the data.

    As someone who's been working on our platform story in one way or the other from back when it was the 'MSN platform story' this is something I'm quite aware of. The big difference between Windows Live and Hailstorm is the difference between empowerment and exploitation.

    Four years ago, while interning at Microsoft, I saw a demo about Hailstorm in which a user visiting an online CD retailer was showed an ad for a concert they'd be interested in based on their music preferences in Hailstorm. The thinking here was that it would be win-win because (i) all the user's data is entered and stored in one place which is convenient for the user (ii) the CD retailer can access the user's preferences from Hailstorm and cut a deal with the concert ticket provider to show their ads based on user preferences and (iii) the concert ticket provider gets their ads shown in a very relevant context.

    The big problem with Hailstorm is that it assumed that potential Hailstorm partners such as retailers and other businesses would give up their customer data to Microsoft. As expected most of them told Microsoft to take a long walk of a short pier.

    Fast forward a couple of years later. Microsoft now has some of the most popular services on the Web; the world's most popular IM client, the world's most popular web-based email service, one of the world's most popular blogging services, and a host of other services that are utilized by hundreds of millions of people every day.

    At this point it is clear that a number of these services can be exposed as platforms to enable our customers do more. Users deserve to have more options for creating content in their personal space, which is why we are exposing the MetaWeblog API for Spaces. People should be able to design and decide what components are shown on their personalized home page which is why we have Microsoft Gadgets. You should be able to annotate maps with information of interest to yourself and your friends which is why we have the Virtual Earth API. You should be able to subscribe to headlines about news of interest to you in your application of choice, which is why we provide RSS feeds for news search results in MSN Search.

    It's about empowering our users.

    We are currently thinking about how we transition from http://msdn.microsoft.com/msn and I'd love to see what developers would like to see from us. What APIs would you like us to open up? Also what would you like to see on the site? Is there a problem with the fact that there are a number of different MSN Windows Live developer sites like http://www.start.com/developer, http://msdn.microsoft.com/msn, and http://www.viavirtualearth.com or is having a number of specific product sites/communities better? We're building this platform for you so we'd definitely love to hear your comments.

    Holla at me


     

    Categories: Windows Live