March 2006 - Posts - Jon Galloway

March 2006 - Posts

[MIX06] Wrapup

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.

First, to get an idea of why I think Mix06 was such a big success, check out this summary from a Mac / PHP designer who was pretty impressed. This wasn't your standard conference, it really was a conversation. I can't think of anything they could have done to make it a more productive 72 hours. Really well done.

Got to meet:

  • Robert Scoble - Talked to him at the MySpace party Tuesday and hanging out with some Channel9 guys Wednesday. It seems like he's always got a few people in line to talk to him, but he really gives you his full attention when he's talking to you - that's cool.
  • Tantek Celnik - Talked to him after the Microformats talk. He needs more stickers on his laptop.
  • David Shea  (CSSZenGarden founder) - Sat by him at the "Future of IE7" talk.
  • Wally McClure - Had lunch with Wally the first day. Talked about AJAX, podcasting, web accessibility, etc.
  • Andrew Stopford - Runs the MbUnit project
  • Scott Stansfield - I think he was cussing me out, but the music was so loud I honestly have no idea
  • Dean Hachamovitch - IE General Manager and nice, friendly person to boot
  • Chris Wilson - Group Program Manager for IE. Got to talk to him for a while about the IE and Firefox extension models, XPI security, and other fun browser stuff.
  • Sean Lyndersay and Walter VonKoch - Phil and I talked to them about the IE RSS Platform, the joys of supporting some very poorly defined specs, and future plans for the RSS Platform
    Chris Adams - Chris and Port 80 software make IIS dance on its head while gargling. In a good way.
  • Doug Seven - Runs the MSDN blogs

Hung out with:

  • Jeff Atwood - I was sure that we'd come to blows over the WinMerge vs. BeyondCompare issue, but apparently Jeff is biding his time, hiding his strength, and becoming more dangerous with each passing day.
  • The Indigo late night crew - Steve Maine, Clemens Vasters, Ami Vora. Had fun playing "spot the working girls" at the casino bar at 3 AM. Sorry I didn't make it through to breakfast.
  • Phil Haack - Looking for your laptop? I've still got it! And I covered it with Jeff Atwood's Wumpus stickers!
  • Adam Kinney / Erik Porter - Nice to see y'all again, even though you didn't bring me a Channel 9 action figure. Thanks for all the Windows Live Gadget info.
Posted by Jon Galloway | with no comments
Filed under:

[MIX06] Microformats un-meeting

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.

Here's the dirt simple microformats elevator speech: 

The microformats crowd wants to set up a simple way to share information using some "common law" standards and standard, self-published HTML. Some examples are recipies, job listings, for sale listings, etc. The idea is that I can include a "for sale" listing on my blog, and as long as it's in the correct format, it will get scooped up by "ebay-like" sites that will run my listing. The difference between this and eBay proper is that the data is mine, hosted on my site and on my terms .

As for standards, fugghedaboutit. Rigidly defined standards are hard - everyone argues and nothing gets done. Their plan is to follow more of a folksonomy driven approach - recognize common microformats and promote them.

Easily half of the fun at this meeting was watching Marc's reaction to the hotel security when they asked what was going on. He could have probably pulled off a sweet talking tap dance, asking for 5 minutes or so. Instead, he went with this wacky "We just all happened to sit down at these tables together" defense that brought the security supervisor over in a hurry. I wasn't at all surprised to see that even Marc's technorati article is embroiled in controversy. What kind of uber geek cred do you get for being part of a data format meeting that was broken up by hotel police? I've truely arrived (that's me in the back, standing under the neon sign next to the big pillar - can't nobody take that away from me).

As with RSS, I'm wondering if the total focus on simplicity won't come back to bite us if this really takes off. Are we going to have hundreds of thousands of spiders crawling every page on the web, looking for classified ads and recipes? I hope someone comes up with a good aggregation service that gathers and shares the data.

I took the opportunity to ask Tantek about Technorati's abandoned attention.xml developer center after the talk. Shoulda known, he's moved on to microformats for attention as well. I don't really buy it / get it, but I'm gonna say he's got a better grasp on the attention issue than I do.

[MIX06] IE Standalone - Update

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.

I was very happy with his responsiveness on this issue. Dean was of course very  busy at this conference, but took the time to respond to me in a thoughtful manner. I feel like he appreciated my point, and I'm optimistic that we might see something here.Dean is definitely the right person for this very difficult job.

I asked someone else - I won't mention his name, since it was kind of an informal question - just how bad an idea it is to run IE in the unsupported standalone mode . Does it just make the program unstable? Or will it trash my registry? Ignite my motherboard? The answer was that it's just an unstable program. Shouldn't damage the computer in the least. Good to know.

[MIX06] Corporate types to Microsoft - Don't Change A Thing!

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.

Posted by Jon Galloway | with no comments

[MIX06] Why no IE Roadmap?

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?

Dave said that they can't publish an official roadmap since other companies rely on Microsoft's published policies - some companies will stake their entire future on them. So they can only publish things they're reasonably certain they can commit to.

General direction of a more informal nature will show up on the IE blog. That's another advantage of corporate blogs - since they're by nature more informal, companies have options for communication between press release and secrecy now.

However, IE did just release a public bug tracking system for IE similar to Bugzilla, called Internet Explorer Feedback. How cool is that?

Posted by Jon Galloway | with no comments

[MIX06] How long will IE6 be supported? How about IE5.5?

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.

The answer is that Microsoft has a policy of supporting software shipped with an operating system as long as the operating system is in service. Since IE6 shipped with Windows XP, IE6 will be supported as long as Windows XP which will probably be a few years after Vista is released.

IE5.0 shipped with Windows 2000, so I'm assuming that it will leave mainstream support along with Windows 2000 on June 30th (thanks for the correction, Jeff). It looks like IE5.0 may be supported longer than IE5.5, which is rather odd.

 

Posted by Jon Galloway | with no comments

[MIX06] Making Your Site Look Great in IE7

Summary

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.

Both camps will have to fix their sites to work with IE7.

IE7 has cleaned up its act, and is now much closer to complying with standards. This is good news in the long run, since catching up with the standards gives new features to IE and makes it a lot easier to develop for all major browsers. In the short term, though, we've got a lot of code to fix. That was the topic of a Mix06 session (Making Your Site Look Great in IE7). I'm going to present some of that information, mixed with some of my unofficial advice.

If you only supported IE in the past...

The IE-only camp will need to make their code standards compliant. There's a good article by Markus (the presenter at this session) on MDSN that covers some of the issues. There are a few ways to get started - you can install the IE7 Beta 2 Preview on a test machine, install IE7 in standalone mode[1], or - perish the thought - install a standards compliant browser like Firefox or Opera. The official advice is to use IE7 on a test machine.

I didn't really take many notes on this - I've really been pushing for standards compliant design for the past few years. Some general things to think about are element padding and overflow (click on the MSN screenshot to see full size).

Ironically, you'll probably be less affected by this if you've been using HTML tables to structure your pages, something that's generally considered a bad practice. Sizes may be a bit off, but the page structure won't really shift around. On the other hand, if you've been building pages out of floated div's like you've been told, you're much more dependant on element sizing and so much more likely to have bigger shifts in your pages.

If you've relied on CSS Hacks...

If you've been building standards compliant sites and using CSS driven design, then you're familiar with CSS Hacks. CSS Hacks, also known as CSS Filters, are CSS directives that take advantage of browser parsing errors to allow directing CSS instructions to a specific browser. The idea is that you build your page and CSS, then add IE-only overrides to compensate for IE's quirks. Some examples:

* html {/* IE only */}
_height: 50px; /* IE only */
height/**/:100px /* Everything but IE */
html > body {/* Everything but IE */}

These CSS quirks have been fixed in IE7, so you your standards compliant CSS will be applied to your pages, even in IE. Hopefully, IE7 will have fixed the specific browser bug you were working around, and it all sorts out without any extra work on your part - your CSS Hacks apply to your pages in IE6 and under, and IE7 uses your standards compliant CSS rules.

Unfortunately, this won't always be the case. IE7 is a lot better, but it's not perfect. So what do you do? Do you search around for other CSS Hacks that haven't been fixed yet? Nope, the recommended approach is to use conditional comments in the HTML to include CSS depending on IE versions:

<!--[if lte IE 7]>
    <link rel="stylesheet" type="text/css" href="iestyles.css" />
<![endif]-->

Now, wouldn't it be better if this could be done in CSS? Well, kind of. You already need to make a reference to CSS files from HTML, so it's not a big stretch to say the conditions should be applied when you're making references rather than inside the CSS. But apparently the IE team did propose a CSS conditional syntax to the standards committee and it was rejected.

In case you were wondering, there are CSS imports hacks that would allow you to conditionally include other CSS files. You could build a master CSS file with default rules, then conditionally include adjustment CSS files. After some thought and listening to different opinoins on this, I agree with the Microsoft recommendation of using conditional comments.

The Holly Hack

There's one more hack which deserves special mention - the Holly Hack. The Holly Hack is designed to trigger an IE rendering engine internal property, hasLayout. Many IE quirks are due to incorrect size calculation of floated element sizes, and applying this hasLayout property to the element will cause the layout to be correctly calculated. Layout can be applied by applying a dimension to an element, and the Holly Hack works by applying a tiny dimension to the element which IE will then (incorrectly) expand to fit the content:

{height: 1%;}

The Holly Hack will still continue to work on IE6 and will be ignored by IE7, so it's not too much of a problem. However, in cases where you still need to trigger hasLayout on relatively positioned elements in IE7[2], Microsoft recommends that you use conditional comments to include CSS which sets the element's zoom to 1. This is better than setting a small element size, which isn't future-proof; setting an element's zoom to 1 should have no effect on anything:

{zoom: 1;}

Tools You Can Use

Microsoft is providing some helpful tools to make the necessary adjustments for IE7:

  • ExpressionFinder is a simple but very useful tool which scans CSS files for CSS Hacks which are no longer effective in IE7. Microsoft handed out a beta version of the scanner at Mix06, and I'm sure it will be publicly released soon. It can search local files, of course, but what's cool is that it can also scan a URL, grab referenced CSS files, and then report on all hacks which won't work under IE7. In my tests, it was very fast. It uses a simple blacklist regular expression list to scan for about 10 hacks.
  • IE Developer Toolbar is similar to the Firefox Web Developer Toolbar, but better in some ways. It's a great tool, and I've been using it on a daily basis since it was first released a few months ago. It allows you to interactively determine and modify the CSS properties of elements on a page. It shows the hasLayout property, default values, and values which are set in CSS. The "Select Element By Click" feature is especially useful.

Further Reading

quirksmode.org
positioniseverything.net
Cascading Style Sheet Compatibility in Internet Explorer 7 - MSDN


[1] IE7 standalone mode isn't supported by Microsoft, this is just me talking here.
[2] One example of where you might still want to trigger hasLayout is the Escaping Floats bug, which didn't get fixed for IE7.
Technorati Tag: [ ]

Posted by Jon Galloway | with no comments

[MIX06] WPF/E

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?

I'm impressed.

WPF/E uses a browser plugin to display XAML[1], Microsoft's XML based language for rich applications.[1] 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.

While the WPF/E object can be manipulated from Javascript (as you'd expect), it can also be programmed in VB.NET and C#. How can a plugin running in Firefox on a Mac support .NET code? The control includes a lightweight MSIL engine! That's pretty impressive when you consider that the target size for the plugin is under 2 MB.

The IL engine supports a small subset of the .NET runtime suitable for WPF/E:

Base

  • XML / XAML Parser
  • Accessibility
  • Input and Eventing
  • Property System

Media Integration Layer

  • 2D
  • Test
  • Audio
  • Video
  • Imaging
  • Animation
  • Composition Engine

Other

  • 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.

[1] XAML is similar to SVG. It's different because it lays on top of a different object model.

[MIX06] Day 2 - ATLAS

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

In addition to Javascript, Atlas supports a new script type: Text/XML. XML is not a known script type, so it's ignored by browsers. The Atlas client side script parses it and converts it to standard Javascript. There are a few advantage`s to this approach:

  • 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.
  • XML style markup will allow for designer tools to edit the Atlas script; this would be much more difficult with Javascript.
  • 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.

HTML / Javascript separation

AJAX functionality is activated through CSS classes rather than directly calling Javascript functions from HTML elements via event attributes such as "onclick". This clearly separates the display behavior (CSS and Javascript) from the content (HTML). I've been a fan of this markups based behavior  approach for a while, for both practical and philosophical reasons.

The practical advantages parallel the advantages of n-tier software design and semantic web design - clear separation of responsibilities yields simplicity, which pays of in the maintenance and upgrade phases. This clear separation also allows for gracefully degrading if, for instance, Javascript isn't supported on the user's platform.

The philosophical benefit is similar - HTML should describe content, and CSS / Javascript should describe behavior. The practical benefits above naturally fall out when things are structured correctly.

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.
Posted by Jon Galloway | with no comments
Filed under:

[Mix06] Web 2.0 needs InfoCard a lot more than AJAX

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.

Many people equate Web 2.0 with AJAX. If all Web 2.0 has to offer is quicker page updates, it would be a major disappointment. There are generally accepted list of what Web 2.0 means - here's my short list of the most important as I see it:

  1. Responsive user interfaces, using AJAX and similar technologies
  2. Data controlled by users rather than data in silos or walled gardens
  3. Open standards and services to allow external interaction between sites and services (the "mashup")
  4. User driven publishing (blogs, wiki's, etc.)
  5. Harnessing the power of collective intelligence

More comprehensive and official lists are on Wikipedia, Tim O'Reilly's Web 2.0 article, and this popular article on "Upgrading the Internet ".

See, we've had AJAX for years. It's neat, but it's not a revolution. AJAX by itself is good for at best a Web 1.1, and that came out a good 5 years ago. Many of the other key points are paradigm rather than technology issues - companies releasing their data and services is limited by policy alone.

The new development I see here is the collective intelligence bit. To really do this right requires an digital identity. The web has always lacked is a good identity system that's simple, ubiquitous, trusted, and free. A real Web 2.0 that understands identity that can go places Web 1.0 can't.

Passport was really a pretty good idea which failed mostly for reasons that had nothing to do with what Passport did or how it did it. There were problems on Microsoft's side - it was expensive, it wasn't "sold" to users beyond nags to set up a passport account, etc. Most importantly, though, the data was stored on Microsoft servers, and the trust / ownership concerns weren't adquately addressed.

Infocard will look like Passport to the casual user (another single sign-on solution), but the technology and philosophy are radically different. Infocard allows me to own and control my identity information; it just provides the plumbing and standards to allow me to securely relay portions of that identity data to those I trust.

Common frameworks for managing identity and attention will enable the internet to go far beyond searching or subscription (RSS, etc.). They'll allow for systems and agents that can help us manage all this new content in ways we haven't imagined yet.

Now, those who follow this stuff will say that InfoCard isn't the only digital identity system out there, and they'd be right. However, When Windows Vista ships with a client for the standard digital identity formats (InfoCard), we've got some real momentum behind this digital identity thing. A parallel is IE CSS support - a CSS standard that IE doesn't support isn't very useful, since IE dominates the browser market.

Maybe this Identity / Attention stuff will miss this Web 2.0 wave. Web 3.0?

Technorati Tag: []

More Posts Next page »