IE8 XDomainRequest conspiracy theory

June 18th, 2008

UPDATE: This conspiracy theory has been debunked. Microsoft said they would implement various aspects of the access-control spec in IE8. For what it’s worth, those Microsoft guys are ok with me :)

I love conspiracy theories… particularly when I get to make one up! Here is my conspiracy theory for how Microsoft will try to force both the W3C and other browser makers to adopt IE8’s XDomainRequest mechanism/API.

A bit of background first: the Web Applications Working Group (WAF) has been working on a spec that allows browsers to do cross-domain requests (basically for creating mashups securely). The spec is called Access-Control, and has been in development for three years. The spec was being edited by Anne van Kesteren of Opera Software, but under heavy influence from Hixie of Google, Jonas Sicking from Mozilla, and Maciej Stachowiak from Apple, to name a few people/companies. Marc Silbey, the representative from Microsoft to the working group, was also participating for a while, but he dropped off the radar as Microsoft shifted into high gear during development of IE8 (actually, Microsoft assigned 3 people to participate in WAF, but only Marc did). A few months ago, to coincide with the release of the IE8 beta, Microsoft announced XDomainRequest… aspects of which look, in a lot of ways, very similar to Access-Control, but with some key differences.Then, to the shock of the working group, they brought XDomainRequest to the W3C for standardization knowing full well that WAF had been working on Access-Control for over three years!

Naturally, Microsoft’s actions pissed a lot of people off because, as I stated in an email, they are just ignoring over three years of work into the Access-Control spec, they created their own proposal and implementation in secret and now are attempting to fast track it through standardization ignoring due process.

To which, Sunava Dutta, from Microsoft, responded by saying “incorrect” and prompting Chris Wilson, Chief Architect of IE, to respond:

You know, there is an idea that perhaps we’re not IGNORING the work on Access Control, and perhaps we simply disagree with some of it.

Which prompted me to respond:

…If Microsoft would have found the time to collaborate [in the WAF WG], all this stuff could have been resolved progressively and the [Access-Control] spec would probably be done by now (as has been shown, the MS proposal has just as many issues, if not more, than the Access-control spec; so trying to do it in-house did not yield a more adequate solution).

Which beckons the question, why did Microsoft stop participating in WAF to go off and create their own version of access-control? And here is the conspiracy theory:

  1. Microsoft joins the WAF working group in 2007
  2. Microsoft “borrows” Access-Control idea
  3. Microsoft implements its own XDomainRequest mechanism in IE8beta
  4. Mozilla implements Access-Contol in FireFox 3, but then pulls the feature at the last minute (consequently leaving a gap in the cross-domain request space for Microsoft to jump in)
  5. Microsoft delays Access-Control work by sending in comments a year late (just before it was about to go to Last Call) and putting in their XDomainRequest proposal for standardization. Meanwhile…
  6. Microsoft rolls out IE8, quickly gains market share (no help from Vista, of course :) )
  7. Other browsers must now implement Microsoft’s solution/spec because business and developers start using it
  8. Microsoft’s spec become a W3C Recommendation, Access-Control spec dies in the ass.

We are currently at point 5, with Microsoft using delay tactics to slow down standardization of Access-Control.

Why do I care? I’ve only contributed to Access-Control from the sidelines by attending face-to-face meetings and asking Anne dumb questions. However, a lot of C02 has been wasted flying everyone to meetings to talk about this spec; that’s thousands of dollars and thousands of kilos of C02 going to waste. Another thing that annoys me is, as I already stated, that Microsoft has every chance to provide feedback to the working group to fix/discuss any issues they’ve had with the Access-Control spec.

Silverlight’s uptake

March 7th, 2008

A while a go (September 2007), I asked some sales guy from Microsoft what the penetration rate of Siverlight was compared to Flash. I asked him in front of a large audience (a) because I was really interested, and (b) because I felt like being a bit of a smart-ass as I guessed it would be really really low. The sales guy seemed quite unimpressed by my question and refused to give me a straight answer, but he had promised to give away a Microsoft prize for each question (I got a crappy ugly Silverlight hoodie, which I promptly returned to one of their marketing chicks).

Anyway, I just read an article that stated MS has released Silverlight 2 beta and that people are installing Silverlight,

And over the last several months Microsoft has seen an increase in the number of Silverlight downloads, Guthrie said, and users have been downloading Silverlight to the tune of 1.5 million downloads a day… In comparison, however, in a recent interview with Adobe Systems’ chief technology officer, Kevin Lynch, Lynch said Adobe’s Flash is downloaded up to 12 million times a day

I’m still unsure as to what percentage of browsers now run Silverlight, but does not yet seem to be making as much of an impact as good ol’ Flash.

Widget spec is now Widget Specs

March 7th, 2008

In an effort to expedite the standardization of widgets, the Web Application Formats Working Group yesterday decided to split the Widgets 1.0 Specification into three (or more) specs:

Other specs may also follow, particularly:

Other documents are still under development too:

We are aiming to have all these done (ie. Last Call) by October. However, now that the document split has happened, I should be able to get the packaging format done fairly quickly.

We have more or less now settled on the configuration language format. The elements are going to be:

  • <widget width=”" height=”" id=”">
    • <title: the title/name of a widget
    • <description> a description
    • <author email=”" url=”"> some details about the author
    • <license> paste your GPL here! :)
    • <icon src=”"> the icon
    • <access network=”true|false” plugins=”true|false”> if your widget need to get online
    • <content src=”"> some file in the widget archive

Only <widget> and <content> are mandatory at this point.

The processing model for the XML is going to be quite forgiving. The only thing that will cause an error, is not having a well-formed document.  For example, the following the following would result in “The Awesome Super Dude Widget” as the title:

<widget xmlns="http://www.w3.org/ns/widgets">
   <title>
     The <blink>Awesome</blink> 
     <author email="dude@example.com">Super Dude</author> Widget</title>
</widget>

The unrecognized elements are simply ignored, but their text content is extracted. This makes processing more forgiving and allows for extensibility and some graceful degradation. I also want to push that the widget should function if the namespace is omitted.

We are also currently investigating how we are going to deal with internationalization in the configuration document format. We are looking at following ideas from the Best Practices for XML Internationalization.

Microsoft sticks to the standards

March 4th, 2008

According to the IE Blog:

Now, IE8 will show pages requesting “Standards” mode in IE8’s Standards mode. Developers who want their pages shown using IE8’s “IE7 Standards mode” will need to request that explicitly (using the http header/meta tag approach described here).

That’s great news. However, the fact that they are keeping the meta switch is a bit disappointing. They should really dump that altogether.

The good, the bad

January 23rd, 2008

The best thing I read today:

The most stupidest thing I’ve read in years (and made it known!):

I share Anne van Kesteren’s view on the matter, and everyone else who is against this. This is a really really stupid idea on Microsoft’s part.

WAF and WebAPI are dead. Long Live WebApps Working Group!

December 19th, 2007

The charters of both  the W3C Web Application Formats and WebAPI Working Groups have now expired (as of the 15th of November, 2007) meaning they are effectively dead (although still twitching!). From their ashes will rise a new merged working group called the Web Applications Working group… hopefully by the 31 of January.

According to the new proposed charter, the missions of the new working group is to:

…is to provide specifications that enable improved client-side application development on the Web, including specifications both for application programming interfaces (APIs) for client-side development and for markup vocabularies for describing and controlling client-side application behavior.

The new Web Applications Working Group is chartered with the continual development of the following specifications:

Specification FPWD LC CR PR Rec
ClipOps spec 2007-Q2 2008-Q4 2009-Q2 2009-Q4 2010
DOM 3 Core bis spec          
DOM 3 Events spec 2007-Q2 2008-Q2 2008-Q4 2009-Q4 2010
Element Traversal spec 2007-Q2 2007-Q4 2008-Q2 2008-Q4 2008
Access Control spec 2006-Q2 2008-Q1 2008-Q3 2009-Q4 2010
File Upload spec 2007-Q2 2008-Q2 2008-Q4 2009-Q4 2010
Language Bindings spec 2007-Q2 2008-Q2 2008-Q4 2009-Q4 2010
MAXIM spec 2008-Q1 2008-Q3 2008-Q4 2009-Q2 2009
Network API spec 2008-Q2 2009-Q1 2009-Q3 2010-Q2 2010
Progress Events spec 2007-Q2 2008-Q2 2008-Q3 2009-Q2 2009
Selectors API spec 2007-Q2 2007-Q4 2008-Q2 2008-Q4 2008
XHR Object spec 2007-Q2 2008-Q2 2008-Q4 2009-Q4 2010
Widgets spec 2006-Q4 2008-Q4 2009-Q1 2009-Q3 2009-Q4
Widgets Requirements 2006-Q3 2008-Q4 2009-Q1 2009-Q3 2009-Q4
Window Object spec 2007-Q2 2008-Q2 2008-Q4 2009-Q4 2010
XBL2 spec 2006-Q2 2010 2011 2013 2013
XBL2 Primer 2007-Q3 2010 2011 2013 2013

Another cool thing about the new working group is that it is modeled on the HTML Working Group, meaning that is open, transparent (no secret chats on the members list) and anyone will be able to participate via the public mailing list.

I’ll continue to edit the Widget Spec and Requirements, and possibly continue to help out with the XBL Primer.  I’ll continue to be part of this new working group for a least 1 year, as I my PhD program ends in March 2009… and hopefully longer, if someone gives me a job to continue working on specs! ;)

HTML5 to be published by W3C

December 19th, 2007

According to this email by Dan Connolly (HTML-WG chair), HTML5 will be finally published as a First Public Working Draft (FPWD) by the W3C on the 26th of Feb January 22, 2008. Microsoft has been mainly responsible about stalling the publication of HTML5 because of their concerns over <canvas> and its related graphics API. On various occasions, Microsoft argued that the graphics API was out outside the scope of the HTML WG charter and that they would have to look at the legal implications.

In the email, Dan Connolly wrote:

... and adding 3 months, we get: 2007-11-26 + 3 months = 2007-02-26
for a deadline for publication for the HTML 5 specification.

The W3C Director, Tim Berners-Lee, sees no reason why this
working group should be excused further from the three-month
heartbeat rule, and further, encourages us to publish sooner
if at all possible.

I still think it’s really disappointing that it’s going to take a further two months to publish the document. I was personally wishing it would be published for XMas (a nice present for the web community!). A FPWD is important for both marketing reasons and legal reasons: when a FPWD, all sorts of legal things in the W3C process go into effect. From a marketing perspective, it will be good as lots of media attention. However, from a technical perspective, a FPWD is irrelevant because of the rate at which HTML5 is being edited by Hixie (on a daily, if not hourly basis). The latest draft of the HTML5 document is always available to anyone either via the WHATWG site or theW3C CVS repository.

Update: In a follow-up email, Hixie sees no reason not to publish the document straight away! He writes “Cool. Since we are encouraged to publish sooner rather than later, and since there doesn’t appear to be any reason for us not to publish immediately, I have prepared the document for Working Draft publication.” If we are lucky, we might see the document published for xmas! :)

Update: According this post by to Anne van Kesteren, the publication wheels are now in motion: Mike(tm) Smith sent the request for publication earlier today! Now pending Chris Lilley’s approval… will Chris be the scrooge that ruins christmas?Lets hope not.

Update: No HTML for xmas I am afraid… In this email, Mike(tm) Smith writes, “after discussion with others on the team, the target publication date I’m requesting for the First Public Working Draft of the HTML5 specification is January 22.”

“OMG, I’m a server!”: widgets and the exciting future of mobiles

December 17th, 2007

I’ve been doing my fair share of traveling lately. I went to the W3C TPAC in Boston, which was great, and I just got back from vacation in Tropical North Queensland (Port Douglas) a few days ago. I went whitewater rafting, and snorkeling in the (sadly dyingGreat Barrier Reef, got to swim with a turtle, and some sharks.

While I was in Boston for the TPAC, I bought myself an IPod touch and a Nokia N95. The first thing I did when I got my iPod was to jail break it. I have to say, the iPod touch is simply awesome… however, I wont go into a rant because I don’t want to expose myself too much as an Apple fanboy:) The first thing that struck me as I was navigating the list of apps to install on the jail broken iPhone was the availability of the Apache Web Server and PHP. When I saw that, I instantly thought “OMG! this changes everything: I am a server!”. Sure enough, I installed them and they worked. I got my friends from Australia to log onto my IPod - very cool! It was only a few weeks later that I heard that Nokia was also going to release a phone with Apache, PHP, and MySQL (APM) which I’m keen to try out on my N95. I think this is a significant development while we wait for the standardization and eventual implementation of HTML5 (which will provide similar functionality).

Putting aside all security and privacy concerns for a minute, I think the idea of everyone now being a web server is a very exciting and disruptive innovation. Imagine a widgets ecosystem that intertwines phones and desktops and integrate ideas from social networking and the unique aspects of the mobile in a single container (widgets).

I don’t know what Nokia is going to do with their APM phones (and I am sure that Apple Iphone/IPod and Google Android will both feature web servers really soon), but here is a simple future scenario: I buy a new phone with the APM capability. When I connect the phone to the internet, people can access the phone via its IP address (which kinda sucks, but fixable… more on this later). Pre-installed with the phone is a widget engine, which allows the user to either manually install widgets or use pre-installed widgets. The widget engine provides an admin interface, accessible only via, say, “http://widgetengine/” or something, which allows me to add/customize/remove widgets. Widgets in this contexts are little PHP apps, packaged to conform with the widgets 1.0 spec. Lets says the default widget that ships with the phone is a Nokia-build one that shows some info about the phone, and generates a photo gallery of the pictures stored on the device.  Although impressive, is not really of much use to me because everyone I care about is on Facebook ( or some OpenSocial network).

Given that the phone has a widget engine that runs on top of the server, a developer could create a Facebook widget that gathers all the phone numbers and details from my facebook friends list and packages them into a widgets. When the widget is installed, all those phone numbers and details get stored into the MySQL database. I can then ask the widget to either SMS or simply message, via Facebook, all the preferred contacts to let them know that my phone server is up. Better still, the widget, via PHP, can monitor the phone to see when it is assigned an IP address, and automatically connect to Facebook to let my contacts know that I am online. From there, my contacts can check out, for example, photos that I have just taken on my phone or other things the widget may allow viewers to do.

The things that I would want to share as a user (my profile: things that define me publicly as an individual and associate me as part of a group) and some simple app ideas:

  • My location (exact (gps) or derived (eg. brisbane) or abstract (eg. the office))
    • Apps: Where am I now? Where I’ve been (recently, travelling, etc)? What exercise path did I take (and times, calories burnt)?
  • My pictures (sortable, in sets, searchable)
    • Apps: my picture gallery; my picture gallery and with pictures taken from similar location (eg. mix locally stored pictures with flickr)
  • My music (what I’ve got on my device, what I am listening to right now)
    • App: my music and music people around me are listening to?
  • My details (maybe my social wants and needs. link to my blog online)
    • App: a dating widget? Syndication of my blog combined with my locally stored pictures?

The effect of these apps is very interesting because it means that I can bypass services such as flickr, or I can integrate both flickr and my phone. I can also merge the means of communication with my contacts, via SMS or the web.

These applications require additional infrastructure to connect me to other users:

  • Global peer-to-peer infrastructure: when my phone connects to the internet, I want my contacts to know about it!
  • Local peer-to-peer infrastructure: when my phone connects to the internet in this place, let those near me know: eg, for playing location-based games, or other multiplayer games; or, for example, for letting people know at this place that I’ve arrived.

This also requires a place where phone widgets are distributed by developers and scrutinized by the community for security and quality.

The future looks pretty nice if AMP enabled phones and services take off…. and if the security and privacy issues are handled with care.

Is Microsoft crazy to implement HTML5?

December 17th, 2007

This New York Times article seems to suggest that Google has the potential to threaten Microsoft’s software reign by undermining it in the “cloud computing” space (web apps). Although the numbers don’t add up (yet), Google has the potential to steal a significant part of Microsoft’s market share in the Office space in the future by creating great web-based software. This will eventually weaken Microsoft’s because of its inability to adapt/compete due to its archaic software development/release cycle. If Microsoft implements HTML5 in all its awesomeness, will it leave itself more vulnerable to companies developing software for the web? Or, as the dominant browser vendor, will Microsoft be able to adapt many of it’s products to run on HTML5 before the rest of the industry can respond… I guess it depends, to some degree, on how much market share other browser vendors can steal from Internet Explorer. Hixie is right, this may just be “a good position for the industry to be in.”

Hard disk crash

October 31st, 2007

The hard drive in my laptop decided it had had enough today and decided to crash (with only two days before I depart to Boston for a W3C meeting!). Luckly I was able to recover all my PhD stuff and work I had been doing today on Widgets. I’m currently in the process of reformatting my drive with Windows XP. I was able to recover almost everything using BartPE, which creates a cd-bootable stripped down version of Windows. BartPE is very useful as it allows you to map network drives. To get my data, I just copied all the stuff that I could onto one of our development servers. It took me about 2 hours, as BartPE kept crashing trying to copy files.

Tomorrow I’ll have to waste time reinstalling all my apps and testing the system to see if it is stable enough to take to the US… otherwise, it’s “off to the shop” to for a new hard-drive :( If all else fails, my girlfriend has offered to lend me her new MacBook which I will happily take over my PC any day :)

Update: went to get a new 160GB hard drive, but once I started reinstalling Windows the installer kept crashing with IRQL_LESS_THAN_OR_EQUAL (new  BSoD error, which I had not seen before). Did a google search and all evidence pointed to either that the RAM or CPU was overheating. One of the IT guys here at QUT ran a memory tester and we discovered that it was infact one of the RAM chips that was fried. Sucks, as I only bought the new RAM  about  one week ago :( . Anyway, all seems semi-stable now… currently reinstalling Windows XP. I made a 40Gig partition to install Windows Vista  so I can agian play with SideBar Gadgets. I previously unistalled Vista because I found it so shockingly bad to use and unstable.