March 2006 - Posts - Jon Galloway

March 2006 - Posts

The current IE7 B2 Preview is stable for website testing

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.

That means it's ready to use in testing site compatibilty. Star hack begone!

UPDATE: I tested running it in standalone mode using the IE7 Standalone Launch Script. It works, in that it allowed me to browse sites in IE7 without messing up IE6 or my default browser association. However, I noticed high CPU usage and had to close IE7 using the task manager - it didn't respond to that little red X thing. I believe these are minor inconveniences compared to running a separate virtual machine just to check how a site looks. Obviously, this build of IE7 just came out yesterday so I haven't put this through rigorous testing. Unfortunately, it appears that the standalone browser builds from Skyzyx have been pulled.


Thought while watching the Mix06 panel with Michael Arrington, Royal Farros, Tim O'Reilly, Adam Trachtenberg, and Jeremy Zawodny:

Accusing someone of not allowing access to their proprietary data is the Web 2.0 equivalent to calling them a racist.

Technorati Tag: []
Posted by Jon Galloway | with no comments

[Mix06] Day One Summary

Keynote Session

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:

  • Tim commented about Navtek being the real force behind Google maps and many other mapping systems. Bill said that a community based approach in GPS enabled cars submit information to a common system could displace them. Tim remarked that this is an interesting facet of Web 2.0 - collection of data from users as they go about their daily lives.
  • On the history of Microsoft knocking out competitors such as Netscape, Bill noted that "many of our competitors knocked themselves out."
  • Bill remarked that browsers need to be more agile and release on the 9-12 month cycle (the IE team backed away from this during their talk later that day).

Scott Guthrie's ATLAS demo was impressive. He built an AJAX task manager app from scrstch in 10 minutes, demonstrated it running on Mac (Firefox). This demo was the first time I've actually seen ATLAS as more than just another AJAX library - it's a way to declaritively "AJAX Enable" an ASP.NET site (new or existing) in a cross browser, standards compliant manner. ATLAS is used in

WPF "in-browser" demo was disappointing for me. Looked like a lot of Flash sites I've seen, and those run everywhere.

Bill's speech didn't say anything really new from a technical point of view, but the way he discribed Microsoft's strategies in the AJAX space finally seemed like a clear value proposition - apply Microsoft's skill in simplifying development to the task of "hacking the web". AJAX really is a hack at this point, and frameworks like ATLAS clean it  up quite a bit. The upsell, of course, is that it's easier to develop and run on Microsoft tools (ASP.NET on Visual Studio).

Dean H, the GM in charge of IE, appologized for the lack of development on IE for the past several years. It was good to get that out of the way and start looking at what's ahead. I thought this was very well done.

Show Me Me The Money

Panel with Michael Arrington (TechCrunch), Royal Farros, Tim O'Reilly (O'Reilly Media, Inc.), Adam Trachtenberg (eBay), Jeremy Zawodny (Yahoo!)

The discussion was on shifting "monetization" strategies in the Web 2.0 era. This was generally interesting, but what was most interesting was to see a panel like this at a Microsoft sponsored convention. Strange times.

Future of IE7

Panel with IE team and web standards leaders like Molly H, Andy Clarke, and Eric Meyers. I sat in the front row, next to David Shea and Tantek Celnik.

No roadmap was presented, which was disappointing. I guess the idea of this conference and similar discussions is to help define the roadmap, but I think a straw man roadmap might spur a better discussion.

Dean H's intro focused on the high level features of future IE versions: Standards, Safety, and Experience. He then touched on some balance points they're working through:

  • User control vs. developer control (e.g. popups)
  • Compatibility vs. security
  • Security vs. user experience
  • Frequency of updates
  • Standards vs. compatibility

Then the panel was asked what they'd like to see from the IE team:

  • Andy Clarke: Since side by side IE installations won't be forthcoming, can Microsoft offer subsidized VPC discounts.
  • Molly H: IE doesn't need to pass the ACID2 test suite, but a common test suite should be agreed to and used on all browsers.
  • Eric Meyers - Not all CSS3, but certain key modules like the Selectors Module (things like last-of-type and last-item layout) and the Colored Background Module (allowing things like RGB+Alpha and HSL).
  • Mike Rowan - Data sharing in the security space
  • Chris Wilson - Talked about security for unsophisticated users and the tradeoff between frequent releases and test load.

Discussion on Standards vs. Compatibility with previous IE versions

  • Molly - the two should be complementary. Browsers should compete on features, not their rendering engines. Need more developer support - how to fix specific issues, for example.
  • Andy made a remark that web developer can see this as an opportunity to work on upgrading sites from IE 6 to 7 (another Y2K type issue?).
  • Release frequency shouldn't be artificial (Eric Meyers and Andy Clarke), it should happen when there are enough new features.
Technorati Tag: []

OPML 2.0 Will Support Includes

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 feed list (assuming I'm reading the spec correctly):

<?xml version="1.0" encoding="ISO-8859-1"?>
text="" url="" />
Posted by Jon Galloway | with no comments

Going to Mix06

I'm going to Mix06 in Las Vegas, March 20 - 22. Phil ( 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.

Unfortunately, I've been to busy to actually order my "FREE iexplore.exe.local" shirt. They say they ship within 24 hours, so if you want to get one shipped to you in Vegas, it just might work out.

FREE iexplore.exe.local!!!

Posted by Jon Galloway | with no comments

More .NET apps in Fedora Core 5 than Windows Vista?

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.

Contrast that with Fedora Core 5, which will ship with Mono and three managed desktop applications: Beagle, F-Spot, and Tomboy. Mono is a great addition to Linux from a developer point of view, but the specific justification for shipping Mono with Fedora is to ship desktop applications for users. So, Miguel sees the benefit of using .NET to build desktop applications which greatly improve the user experience. Does Microsoft?

Of course there are justifications as to why the core desktop experience isn't being built on .NET, but I think they're kind of poor. For instance, although there are plenty of packages and sample code on writing shell extensions in .NET, it's not recommended because the .NET code may be inserted into all running processes. Doesn't that say that something needs to change in the File Open dialog or the way .NET integrates with the shell?

However, there's really no excuse for avoiding .NET on WinForm desktop applications. The only ones I can think of all boil down to priorities and confidence in the .NET framework. As I've said before, shipping Paint.NET with Vista would at least be a token .NET offering, if Microsoft doesn't have time to create a Notepad.NET. Heck, you could round up tons of free .NET tools browsing the Microsoft site for a few days. Ship a few of them. By default. On the Start Menu.

Fedora Core will ship three WinForm applications this month, and Vista will ship zero this fall? Please tell me I'm wrong.


IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

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.

As a developer, though, this is kind of a pain. The thing is, there's a legal loophole that will allow automatic activation of applets as long as they're loaded via an external file, so some trivial javascript can load an activated applet without any user interaction. The reason is that the patent only covers automatic applets as long as they are directly included in the HTML file, so loading them via an external javascript file is fair game. So, in reality this is only going to be an inconvenience for web developers. Clients will know that other sites have dancing clowns and disco in their menus, so it can be done. Just do it.1

Now, the code to load Flash files (or other applets) from javascript is pretty simple, but I sure hope professional web developers will put some thought into this and avoid the temptation to just hack a bunch of javascript includes together and call it done. Here are two better solutions:

  1. 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.
    • It's almost always totally unnecessary. You can build really nice navigation that's cool, accessible, searchable, and maintainable with CSS and minimal javascript. You can get fancy effects - fades, animation, etc. - with some simple javascript includes and a few minutes enabling the effects via CSS (see my previous article on that here). The point is, if you're using Flash to animate and fade you're doing things wrong.
  2. 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.

      FlashObject solves both these problems - plus the disabled by default issue I mentioned before - by replacing HTML content via a javascript include. You build a page in valid (X)HTML and include a placeholder div where your Flash content will go. Then you write two lines of javascript which tells the FlashObject library to replace your div with the Flash content. The div can contain alternative content that's valid, accessible, searchable, etc., which will be be delivered to those who can't or won't view your Flash content (including search engine spiders). Since this solution loads the flash via the external FlashObject javascript include, it will be automatically enabled as well - which means that if you're using another plugin, you should first look for a prewritten include that uses a similar, and if you have to write your own that you follow this model: replace valid HTML via a simple javascript call. Here's some sample code, quoted from the FlashObject page:
<script type="text/javascript" src="flashobject.js"></script>
div id="flashcontent">
This text is replaced by the Flash movie.

script type="text/javascript">
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.

More Posts « Previous page