Yes, I'm aware the conference ended 6 days ago. I returned to a pretty full workload, so it's taken me a few days to get my notes typed up. I'm finally ready to say goodbye to Mix06; thanks for bearing with me.
I went to Marc Canter 's Microformats Un-meeting at Mix06 . It was interesting on a lot of levels. First of all, I had some vague notions of what microformats are, but it was great to hear Marc, Tantek, Eric Meyer, and others describe the idea.
I talked with Dean Hachamovitch (the IE General Manager) a few times at Mix06 about why I feel Virtual PC is not a complete or practical solution to web developers who need to migrate from IE6 to IE7. I recommended a few alternate ideas in the very likely case that they just can't support a side-by-side install of IE in the near future. I think this is an important issue - it's a first experience sort of thing for web developers, many of whom have only ever supported one version of IE. I'm quite at home with VPC, but I don't think we should expect that from web developers who feel inconvenienced to have to use a PC in the first place. It's important that web developers learn to like IE, and first impressions are important.
As a web developer who's into web standards, I cringed when I heard the feedback several corporate IT guys gave the IE team at Mix06:
"Don't change too much! Don't release too often! Keep IE7 like IE6, but add some printing options!"
I totally disagree with all of this, but I understand that the changes IE is making to become more standards compliant will be a major inconvenience to corporate IT shops who view IE as a stable platform. Who woulda thunk that IE7 would have swung towards standards compliance?
This gave me a greater appreciation for the variety of opinion the IE team is hoping to satisfy with this next release - they're being asked to go in several opposing directions at once, and somehow seem to be keeping people pretty happy with how they're responding.
I did a short interview with Robert McMillan for his article Eolas changes to go widespread with next IE update based on my previous blog post on the subject.
I asked Dave Massey why the IE team doesn't publish a product roadmap for Internet Explorer. Firefox publishes a roadmap, which gives web designers an idea of what's ahead - why can't Microsoft do the same?
At Mix06, Andy Clarke asked if IE7 could be be released as a critical update, and support for IE6 dropped soon after IE7 is released.
Web developers have come up with a variety of techniques for dealing with a quirky, stagnant browser that continued to dominate the market for the past few years. Most chose the low road, doing whatever it took to look good in IE and ignoring the other browsers. Those who tried to build standards compliant sites relied on a slew of CSS hacks to include adjustments for IE without affecting other browsers.
WPF/E (Windows Presentation Framework Everywhere) is conceptually similar to Flash. It allows for rich client functionality in the browser through the use of a browser plugin. It supports audio and video, vector graphics (2D only), etc. It was announced at the PDC in 2005.
I attended the WPF/E session at Mix06 since I'd ignored it to this point and wanted to get an idea of what it's about. I was pretty skeptical - how is this going to be any better than Flash, anyhow?
WPF/E uses a browser plugin to display XAML, Microsoft's XML based language for rich applications. This is an advantage in that it's completely text based and can be written in any text editor. Of course Microsoft hopes you'll use Microsoft Expression Web Designer, but it's entirely possible to build WPF/E for free. There are some open source initiatives to build Flash on free tools, but I didn't see any that offer any kind of GUI support.
The IL engine supports a small subset of the .NET runtime suitable for WPF/E:
- XML / XAML Parser
- Input and Eventing
- Property System
Media Integration Layer
- Composition Engine
- Core Controls
- Container Controls
- Basic Layout
I asked about support for screen readers and search engine spidering. I was told that Accessibility support is included (note the support in the Base libraries above). As for searching, they're working with the major search engines to support spidering inside the WPF/E, but since the XAML is all text based this should work pretty well.
The video support is interesting - the media layer apparently has a custom video stack supplied by the Windows Media team. It looked like it only supports Windows Media, but doesn't require that the player be installed since it runs its own video rendering stack. At this point there's no hardware acceleration, although that's planned.
It's planned for CTP release in 2006 with a go live date in first half of 2007.
 XAML is similar to SVG. It's different because it lays on top of a different object model.
Atlas is an AJAX system for use with ASP.NET. Here are a few interesting notes from the Atlas session if, like me, you're generally aware of Atlas but haven't really dug into it that much.
Two client side script formats
- This allows you to program using declarative markup rather than wiring things up in code. This is similar to HTML or SQL - you describe what you want done, not how to do it. The Atlas runtime takes care of the details of turning your specifications into working script.
- This is easier for the framework to support since it can use standard XML output systems.
You can see some sample code and read more about it on Nikhil's blog.
Ready for Prime Time?
The obvious disclaimer here: I haven't used Atlas. I spoke to two ASP.NET developers who have done some pretty intense AJAX coding on ASP.NET who have used Atlas, and they told me that it works great for simpler projects but didn't work great for them in actual projects. One person told me that the UpdatePanel control only worked in ASP.NET pages, not user or server controls due to the control event order. I got the impression that it's advancing very rapidly, but is still a little difficult to use in actual project circumstances.
Now, as I said, these are second hand accounts. I'm only passing them along to present balanced coverage and relay some real world impressions.
Some other random notes I jotted down:
- Uses JSON / REST.
- Supports client side disconnnected recordset and databinding.
- Allows easily "ATLAS enabling" a .NET ASMX webservice.
- Extension method through extenders.
I'm watching a Mix06 panel on Digital Identity with Johannes Ernst (NetMesh), Kim Cameron (MS), Stefan Brands (Crendentica), Paul Trevithick (Social Physics), and Hillary Ward (Citigroup). I'm finishing a post I started on Sunday; I've been interested in digital identity for over a year now, when I heard Kim Cameron interviewed on The Gillmor Gang.
The IE team announced that the IE7 B2 Preview build available online is ready for use in testing site rendering. The feature list frozen, and the rendering engine is solid and won't change between now and release anymore.
Accusing someone of not allowing access to their proprietary data is the Web 2.0 equivalent to calling them a racist.
The highlight was the discussion between Tim O'Reilly and Bill Gates. This was unscripted, casual, and really interesting to watch. Some quotes and themes:
a simple outline format which has been most commonly used to manage RSS feed
lists. The problem I've run into is that it's a static document, so the feed
list needs to be manually updated. I subscribe to a lot of feeds, many of them
on group blog sites. It would be great to be able to subscribe to an OMPL link
and automatically get any newly added feeds in my aggregator. The OPML 2.0 (draft) spec is out for
review, and it has support for includes. The new include type allows you to link
to an OPML list by a URL and you'll always be in sync. When this spec is
finalized and implemented in aggregators, this will cut my feedlist in half.
Cool! Here's an example of an OPML that includes the entire weblogs.asp.net feed
list (assuming I'm reading the spec correctly):
<include text="weblogs.asp.net" url="http://weblogs.asp.net/Opml.aspx" />
OPML is a simple outline format which has been most commonly used to manage RSS feed lists. The problem I've run into is that it's a static document, so the feed list needs to be manually updated. I subscribe to a lot of feeds, many of them on group blog sites. It would be great to be able to subscribe to an OMPL link and automatically get any newly added feeds in my aggregator.
The OPML 2.0 (draft) spec is out for review, and it has support for includes. The new include type allows you to link to an OPML list by a URL and you'll always be in sync. When this spec is finalized and implemented in aggregators, this will cut my feedlist in half. Cool!
Here's an example of an OPML that includes the entire weblogs.asp.net feed list (assuming I'm reading the spec correctly):
I'm going to Mix06 in Las Vegas, March 20 - 22. Phil (Haacked.com) and I decided we should wear really ugly Hawaiian shirts so you can find us and give us free stuff or hire our company. Good plan, right? Phil's got an ugly red one, and I've gone with one that a nice shade of... um, I guess it's yellow.
Will Fedora Core 5, the Linux distro supported by Red Hat, have more managed code than Windows Vista? It sure looks that way. Microsoft has made heavy use of .NET in their developer and enterprise products, but .NET is pretty much absent from Windows Vista , as evidenced by Richard Grimes' recent analysis.
Due to the Eolas patent case , a new update to Internet Explorer will no longer automatically allow user interaction with plugins which are embeded in webpages. Think Flash navigation, music players (Quicktime, Windows Media, Real Audio), Java applets, etc. The applets will be usable, but only once you enable them, usually by clicking on them. (see the demo screencast here ).
The update is already out on Windows Update - it's optional now, but I'm sure it will be mandatory within the next few months. It's described as a minor update, but I think people will be pretty surprised by this one.
Now, I can't say that I'm heartbroken by how this will affect my browsing experience. For one, I don't use IE all that much, and who knows if Eolas will ever enforce this patent against open source browsers since there's no money in it. More than that, though, I dislike most embedded applets that do things I didn't tell them to do . I don't like web pages that start playing music when a page loads. I think Flash navigation is annoying, inaccessible, and completely unnecessary. If a page is going to make good use of Flash or Java - actually do something interesting, like a screencast or a game - then a little click to activate it isn't that big a deal.
- Get rid of it. This especially applies to Flash navigation, for tons of reasons:
- It's not cool anymore. Really. It stopped being cool about five years ago, now it just looks amateur. Sure there are exeptions to this rule, but odds are you're not one of them.
- It's not accessible, and probably not very usable. That could cost you users, but more importantly it could get you in legal trouble.
- It hurts your search engine rankings and site searchability. Some search engines will index the Flash file, but they don't interpret it. If there's any logic, database action, or external files involved there's a good chance the links won't be followed.
- It's not very maintainable. Ease of maintenance and updatability is very important. Sites that aren't fixed and updated don't get used. It's easier to fix and deploy a spelling error or address change in a text based HTML file than in a Flash application. With Flash being one big file, you really should retest the whole thing every time you redeploy; with HTML I can make spot changes and be confident I haven't broken anything. A website built with web standards can be redesigned with a CSS file change (ala csszengarden); Flash redesigns are much more work. As a side note, in my experience no one properly versions their Flash source files. It's very rare that anyone can even find their Flash source files a year after the site has gone live.
- If you must use Flash, use FlashObject. There are still more more problems with Flash, but FlashObject solves them:
- There is no way to embed Flash in a page that is (a) cross-browser and (b) valid HTML / XHTML. Macromedia's sample code uses an <EMBED> tag inside an <OBJECT> so it will work in most browsers, but <EMBED> isn't a valid HTML / XHTML tag.
- Plugin detection isn't handled by browsers. If the user doesn't have Flash installed, or has it disabled, your site looks stupid and isn't usable. Note that Flash won't currently install under non-admin user accounts, so the possbility that your user won't have Flash installed may grow over time.
This text is replaced by the Flash movie.
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
1 All of the major plugin providers have provided references on how to fix this - Apple, Macromedia, Microsoft, and Real. I don't recommend following them, though, which is why they're just in a footnote.
You've probably seen the images and promos for Microsoft Origami product (leaked video here). The ad geniuses at D-Kitchen put it up on their portfolio page before the product launch, which might take them off the "preferred vendors" list...