June 24, 2006
@ 04:57 PM

Quentin Clark has a blog post entitled WinFS Update where he writes

There are many great technical innovations the WinFS project has created – innovations that go beyond just the WinFS vision but are part of a broader Data Platform Vision the company is pursuing.  The most visible example of this today is the work we are now doing in the next version of ADO.NET for Orcas.  The Entities features we are now building in ADO.NET started as things we were building for the WinFS API.  We got far enough along and were pushed on the general applicability of the work that we made the choice to not have it be just about WinFS but make it more general purpose (as an aside – this stuff is really coming together – super cool). 

Other technical work in the WinFS project is at a similar point – specifically the integration of unstructured data into the relational database, and automation innovations that make the database "just work" with no DBAs – "richer store" work.  It's these storage innovations that have matured to the point where we are ready to start working on including them in our broader database product.  We are choosing now to take the unstructured data support and auto-admin work and deliver it in the next release of MS SQL Server, codenamed Katmai.  This really is a big deal – productizing these innovations into the mainline data products makes a big contribution toward the Data Platform Vision we have been talking about.  Doing this also gives us the right data platform for further innovations. 

These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release.  With most of our effort now working towards productizing mature aspects of the WinFS project into SQL and ADO.NET, we do not need to deliver a separate WinFS offering. 

So that's it, no more WinFS. This is the right decision, albeit two years too late but better late than never. It's sad to think about the projects that got killed or disrupted because of WinFS only for this to happen. In a recent column entitled Taking One for the Team Robert X. Cringley has a quote from Management By Baseball by Jeff Angus which reads "When I worked for a few years at Microsoft Corporation in the early '80s,...no one cared to track and codify past failures as a way to help managers create guidelines of paths to follow and avoid". I hope this doesn't end up happening with the lessons from the WinFS project.


 

Categories: Technology

Mike Champion has a blog post entitled Why does the world need another XML API? where he writes

One basic question keeps coming up, something like: "We have SAX, DOM, XmlReader/Writer APIs (and the Java people have a bunch more), we have XSLT, we have XQuery ... why do you think we need Yet Another XML API?"
...
  • XmlReader / XmlWriter can't go away because XLinq uses them to parse and serialize between XLinq objects and XML text. Also, while we are making XLinq as streaming-friendly as possible (see the XStreamingElement class in the CTP release for a taste of where we are going), we're only aiming at hitting the 80/20 point...
  • DOM can't go away because there are important use cases for API-level interoperability, most notably in the browser...DOM doesn't make code truly interoperable across implementations (especially on other languages), but there is enough conceptual similarity that porting is generally not terribly difficult...  
  • XSLT definitely won't go away. The Microsoft XML team was promoting XQuery as a "better XSLT than XSLT 2.0" a few years ago (before I came, don't hurt me!), and got set straight by the large and vocal XSLT user community on why this is not going to fly. While it may be true in some abstract way that XQuery or XLinq might logically be able to do everything that XSLT does, as a practical matter it won't...  
  • XQuery won't go away, at least for its original use case as a database query language.  Microsoft supports a draft of XQuery in SQL Server 2005, contributes to the work of the XQuery working group at W3C, and will continue to invest in finalizing the XQuery Recommendation and implementing it in our DBMS..
we believe that the overall LINQ story is going to have a pretty profound impact on data programmability, and we want to make sure that LINQ has a good story for XML...For XML users, I see a few really powerful implications:
  • The ability to query data by declaraing the characterics of the result set rather than imperatively navigating through and filtering out all the data...
  • The ability to join across diverse data sources, be they XML documents, objects, or DBMS queries
  • The ability to "functionally" reshape data within the same language as the application is written.  XSLT pioneered the functional transformation approach to XML processing, but it is difficult for many developers to learn and requires a processing pipeline architecture to combine XSLT transforms with conventional application logic...

This brings back memories of my days on the XML team at Microsoft. We went back and forth a lot about building the "perfect XML API", the one problem we had was that there one too many diverse user bases which had different ideas of what was important to expose in an API. We were always caught between a rock and a hard place when it came to customer requests for fixing our APIs. To some people (e.g. Microsoft Office) XML was a markup format for documents while to others (e.g. Windows Communications Foundation aka Indigo) it was simply a serialization format for programming language objects. Some of our customers were primarily interested in processing XML in a streaming fashion (e.g. Biztalk) while others (e.g. Internet Explorer) always worked on in-memory XML documents. Then there were the teams whose primarily interest was in strongly typed XML (e.g. SQL Server, ADO.NET) since it would be stored in relational database columns.

In trying to solve all of these problems with a single set of APIs, we went down the road of prematurely declaring the death of certain XML APIs and technologies such as the DOM (see Ode to the XML DOM) and XSLT (see XSLT 2.0 Sir? or Why You Won't See XSLT 2.0 or XPath 2.0 in the Next Version of the .NET Framework). At the end of the day we saw the light and we eventually changed our tune by not deprecating the System.Xml.XmlDocument class and by reconsidering whether replacing XSLT with XQuery was the right way forward.

When I was on the team there was a lot of infatuation with XQuery which eventually turned to frustration. There were a number of technical and non-technical reasons for this such as its dependence on W3C XML Schema which significantly complicated its type system and how long the spec was taking to become a standard (over 5 years and counting as I write this post). Since then a bunch of folks who were were enamored with XQuery have taken some of its lessons (e.g. declaritiveness, simple model for XML generation, etc) and integrated it into a mainstream programming environment with the XLinq project. XML geeks everywhere should read Erik Meijer's paper, XLinq: XML Programming Refactored (The Return Of The Monoids), it is a thing of beauty if angle brackets are your thing. And even better, if you are one you are one of those that chants rabid slogans like "XML is the assembly language of Web 2.0", you'll still like XLinq because it provides a easier and richer level of abstraction for working with XML.

Enjoy.


 

Categories: XML

One of my coworkers sent me a link to the blog post PhotoBucket Leads Photo Sharing Sites; Flickr at #6 on the HitWise company blog. The highlights of the post are excerpted below

In the SF tech bubble that I live in, most of the talk about photo sites has been centered on Flickr. In fact, you could get the impression from most people I meet that Flickr is the ONLY site at which you can share and store photos. Examination of the category however, shows that Flickr is #6 among the top 10 photo sharing sites, with a market share of 5.95%. Industry standbys like Yahoo! Photos, Webshots Community, and Kodak Gallery currently rank higher than Flickr.

blog062106.jpg

Photobucket dominates the category, with a 44% market share. It surpassed Yahoo! Photos in January, and its share of visits increased by 34% in the four months from February 2006 to May 2006. Flickr, my friends should be happy to note, has also been growing rapidly, increasing 44% in the past four months, and up from a rank of #9 in this category one year ago (week ending 6/18/05). Slide has also taken off this spring, with its visits increasing more than ten fold in the past four months.

In the comments, someone asked about the methodology and why the HitWise marketshare numbers differ significantly from those of other ratings companies like ComScore. The response is that the HitWise numbers are based on page views from sampling 10 million users while ComScore numbers are for unique users. According the the comment ComScore states that both Flickr and Photobucket  get about 16.5 million unique visitors a month while Yahoo! Photos gets about twice that number. Besides the page views versus unique users distinction, another thing that makes this somewhat of an apples to oranges comparison is that the HitWise sample is for Internet users in the USA while ComScore is talking about worldwide usage.

However this is still an instructive set of statistics. For one it shows that even if Flickr does have more people talking about it in the tech blogosphere, Photobucket is generating a lot more page views [mainly through MySpace integration]. Secondly, it shows the value of an integrated suite of social applications [photo sharing, social networking, video sharing, blogging, etc] in engaging users. Flickr may or may not have just as many visitors as Photobucket but it's clear that the average visitor to Photobucket views significantly more photos from the site than the average Flickr visitor. This is primarily due to the fact that Photobucket is one of the top image hosting sites used by MySpace users. This seems to validate the approach of building an integrated social software application like MSN Spaces or Yahoo! 360 instead of a mishmash of narrowly tailored social software applications. Where I think Microsoft and Yahoo! have gone wrong and MySpace has gotten it right is that they rely a lot on an ecosystem of supporting sites for extra features (e.g. image hosting, video hosting, etc) instead of trying to do it all in-house. This enables them to innovate a lot faster since Microsoft and Yahoo! are then competing with multiple companies instead of just one.


 

Tim Berners-Lee has a blog post entitled Net Neutrality: This is serious where he writes

When I invented the Web, I didn't have to ask anyone's permission. Now, hundreds of millions of people are using it freely. I am worried that that is going end in the USA.

I blogged on net neutrality before, and so did a lot of other people. (see e.g. Danny Weitzner, SaveTheInternet.com, etc.) Since then, some telecommunications companies spent a lot of money on public relations and TV ads, and the US House seems to have wavered from the path of preserving net neutrality. There has been some misinformation spread about. So here are some clarifications. ( real video Mpegs to come)

Net neutrality is this:

If I pay to connect to the Net with a certain quality of service, and you pay to connect with that or greater quality of service, then we can communicate at that level.
That's all. Its up to the ISPs to make sure they interoperate so that that happens.

Net Neutrality is NOT asking for the internet for free.

Net Neutrality is NOT saying that one shouldn't pay more money for high quality of service. We always have, and we always will.

I've been depressed by the what has been happening in Washington with regards to Net Neutrality but have hesitated to blog about it since I am clearly biased, I work for a company that is likely to financially benefit if Net Neutrality is the status quo. However that doesn't change the fact that what the telcos are striving would eventually turn the Web into a very different place from what it has been. Read all of Tim Berners-Lee's post and after that  you should read what Lawrence Lessig had to say about this topic in his article for the Washington Post; No Tolls on the Internet.


 

June 20, 2006
@ 07:07 PM

I've counted myself lucky to find a girlfriend who has similar tastes in music to me. Most of my friends don't like equal parts Lil Jon, Metallica, G-Unit and Backstreet Boys but my girlfriend does. In addition, she likes the crunk hip hop clubs just like I do. In fact, the clubs we tend to like going to regularly seem to end up getting closed down for being too crunk (e.g. Mr Lucky, Larry's).

So you can imagine that I was quite surprised by her recent request that we attend a Kenny Chesney concert. So I asked here "Who's Kenny Chesney?" and she replied that he was a country singer. I was like "But you don't like country music" and she replied that actually she did. Since this revelation, you are now just as likely to hear us listening to Settle for a Slowdown or What Hurts the Most as you are to hear Poppin' My Collar or Hustlin' as we drive down the street. How times change.

The concert is this weekend and I'm not sure I have appropriate attire. If one of my coworkers who reads my blog has a cowboy hat that I can borrow, I'd greatly appreciate it.


 

Categories: Music | Personal

June 20, 2006
@ 06:16 PM

Joe Gregorio has a blog post simply titled Hire Me where he writes

As of 10 O'Clock this morning I am no longer employed; being laid off tends to do that to you. The good news is that I can catch up on all those projects around the house, my backlog of XML.com articles, my editing of the next draft of the Atom Publishing Protocol, etc. I can even start blogging about the industry I was working in and the company I was working for, but only after I fulfill the requirements of my severance package.

As positive as that all sounds I do have a mortgage and a family, and they like to eat, so I need to find gainful employment.

Please hire me.

If you are unable to hire me please do me a favor and link to this entry.

My resume in PDF format. An HTML version will appear shortly.

I'm not a hiring manager which means I can't hire Joe,  so I'm doing the next best thing and linking to his entry and resume. If you work at Microsoft and are interested in a guy who is quite knowlegable about building RESTful services, you'd be hard pressed to find anyone better qualified than Joe Gregorio.


 

I was pretty surprised to find the press release entitled Microsoft Robotics Studio Provides Common Ground for Robotics Innovation via Todd Bishop this morning. It states

PITTSBURGH— June 20, 2006 — Today at RoboBusiness Conference and Exposition 2006, Microsoft Corp. showcased the community technology preview (CTP) of a new Windows®-based environment for academic, hobbyist and commercial developers to easily create robotic applications for a wide variety of computing platforms. In addition, early adopter companies, universities and research institutes offered demos and provided support for the new Microsoft® Robotics Studio development platform. The community technology preview of the Microsoft Robotics Studio is available for download at http://msdn.microsoft.com/robotics.

"Microsoft, together with the upcoming LEGO® MINDSTORMS® NXT, will help further amplify the impact of robotics,” said Søren Lund, director of LEGO MINDSTORMS at the LEGO Group. “The MINDSTORMS robotics toolset has enjoyed a strong community of users since 1998, and the launch of our next-generation platform includes many built-in features that further the community’s ability to take MINDSTORMS programming out of the box. In combination with Microsoft Robotics Studio, PC users will have a sophisticated tool that will further extend the powerful NXT hardware and software to an even wider range of developers who wish to create advanced applications for their LEGO robots."

At first glance, I thought this was an announcement that Microsoft would be getting into building robots like Asimo but it seems that instead it is Microsoft getting into the business of building development platforms for programming robots. There is a good overview of Microsoft Robotics Studio on MSDN which describes the core pieces of the platform. Interesting, I can now program LEGO Mindstorms using C# and the .NET Framework instead of lower level languages like NQC (Not Quite C) which is quite cool.

A neat bit of trivia is this is the project that George Moore, who now runs the Windows Live developer platform team, came to Windows Live from. It's interesting to see how different ones job roles can be from year to year at Microsoft. 


 

Categories: Technology

From the press release Launch of Windows Live Messenger Marks Significant Progress for Microsoft’s Windows Live Era we learn

Tomorrow (June 20), Microsoft Corp. releases Windows Live Messenger, available at http://get.live.com/messenger/overview, one of the first of more than 20 new Windows Live services to launch globally over the course of the year. Windows Live Messenger goes beyond the traditional instant messaging (IM) service, enabling people to connect and share, with free PC-to-PC calls and inexpensive calls from a PC to phones around the world, video calling, easy sharing with Sharing Folders, and more.

I was waiting for the download to be available before blogging about it but it looks like that didn't stop Microsoft from publishing a press release. :) Although there is a lot of hyperbole in what is essentially an announcement of a rebranded MSN Messenger, there is some good stuff in this release. The feature list on get.live.com has a good run down of the new features, my favorites being the sharing folders and the various voice calling options. The upcoming ability to communicate with your friends on the Yahoo! Messenger network is also cool but not that interesting to me since I don't have any friends who use Yahoo! Messenger. The feature I can't wait to see turned on is social networking integration between Windows Live Messenger and Windows Live Spaces. This is would be my first major feature showing up in Windows Live Messenger and one I spent a bunch of time on.

We had a recent reorg on my team, and my day job has transitioned from spending about twice as much time working on the services behind MSN Spaces over Windows Live Messenger to the inverse. This means I'll probably be blogging a bit more about WLM and a instant messaging applications.


 

Categories: Windows Live

Anil Dash has a blog post entitled Office 2007 is the Bravest Upgrade Ever where he writes

Short and sweet, the Ribbon and new UI in Microsoft Office 2007 is the ballsiest new feature in the history of computer software. I've been using Office 12 for about six months, and not only has it made me more productive, I'm struck by the sheer ambition of the changes in this version.

To clarify the point: Microsoft Office is a bigger business than most of us probably realize. Office generated $11.5 billion in revenue for fiscal year 2005, and it'll exceed that in the current calendar year. But conservatively, you're talking about a billion dollars a month.

Now, most of us who like to prognosticate and pontificate about software like to say things like "It'd be easy to just..." or "It's trivial to add..." but the thing is, most of us aren't betting our entire careers on the little tweaks and changes we'd like to make to our productivity applications. Try making a mistake that jeopardizes a business that makes $250 million a week. I'd figure a 2% error, on the order of $5 million, gets you very, very fired. Maybe they're forgiving and you can make a 10% error, costing $25 million a week. I doubt it. Most of us would lose our nerve about suggesting radical changes if betting wrong meant betting lots of jobs on making the right call. (Nobody ever got fired for making incremental improvements to Office.)

Two of the ballsiest moves I've seen Microsoft make in the past five years were both made by the Office team under the leadership of Steven Sinofsky. The first is the new UI changes in Office 2007. The second has been the movement away from proprietary binary formats and towards open XML formats as the default in Office 2007. In addition both massive changes have been live blogged all the way through by Jensen Harris and Brian Jones respectively which in itself should probably be on the list of pretty cool and risky things that Microsoft has done as well.

Now that Steven Sinofsky now runs both Windows client and Windows Live, I wonder what kind of decisions and product announcements we'll see in the coming months. So far we've been executing on stuff decided on before the big reorg, it'll be interesting to see what direction Windows and Windows Live go in the coming year or two. Definitely interesting times ahead. 


 

Categories: Windows Live

Via Mark Baker I found an article in the ACM Queue entitled The Rise and Fall of CORBA by Michi Henning. Lots of good stuff in the article some of which is excerpted below.

the CCM (CORBA Component Model). A specification for CCM was finally published in late 1999 but turned out to be largely a nonevent:

  • The specification was large and complex and much of it had never been implemented, not even as a proof of concept. Reading the document made it clear that CCM was technically immature; sections of it were essentially unimplementable or, if they were implementable, did not provide portability.
  • No commercial CORBA vendor made a commitment to implement CCM, making it a stillborn child.
  • Even if implementations had been available by the time CCM was finally published, it was too late. The horse had already bolted: EJB had become entrenched in the industry to the point where another component technology had no chance of success.

The failure of CCM did little to boost the confidence of CORBA customers, who were still stuck with their complex technology.
...
What steps should we take to end up with a better standards process and better middleware? Seeing that procedural failures are the root cause of technical failures, I suggest at least the following:

  1. Standards consortia need iron-clad rules to ensure that they standardize existing best practice.
  2. No standard should be approved without a reference implementation.
  3. No standard should be approved without having been used to implement a few projects of realistic complexity.
  4. Open source innovation usually is subject to a Darwinian selection process.
  5. To create quality software, the ability to say “no” is usually far more important than the ability to say “yes.”.

The lessons listed above seem rather self evident and obvious yet it s a sad fact of the software industry that the mistakes of CORBA keep getting made all over again. Core XML technologies like W3C XML Schema and XQuery are 'standards' without a reference implementation which invented new features by committee instead of standardizing best practice. At least one of the guidelines is probably unrealistic though. It is hard to require that a standard shouldn't be approved until it has been used to solve a real-world problem since people solving real-world problems typically don't want to be used as guinea pigs.


 

Categories: XML Web Services