Tags: microsoft

9

sparkline

The Progressive Web App Dev Summit

I was in Amsterdam again at the start of last week for the Progressive Web App Dev Summit, organised by Google. Most of the talks were given by Google employees, but not all—this wasn’t just a European version of Google I/O. Representatives from Opera, Mozilla, Samsung, and Microsoft were also there, and there were quite a few case studies from independent companies. That was very gratifying to see.

Almost all the talks were related to progressive web apps. I say, “almost all” because there were occasional outliers. There was a talk on web components, which don’t have anything directly to do with progressive web apps (and I hope there won’t be any attempts to suggest otherwise), and another on rendering performance that had good advice for anyone building any kind of website. Most of the talks were about the building blocks of progressive web apps: HTTPS, Service Workers, push notifications, and all that jazz.

I was very pleased to see that there was a move away from the suggesting that single-page apps with the app-shell architecture model were the only way of building progressive web apps.

There were lots of great examples of progressively enhancing existing sites into progressive web apps. Jeff Posnick’s talk was a step-by-step walkthrough of doing exactly that. Reading through the agenda, I was really happy to see this message repeated again and again:

In this session we’ll take an online-only site and turn it into a fully network-resilient, offline-first installable progressive web app. We’ll also break out of the app shell and look at approaches that better-suit traditional server-driven sites.

Progressive Web Apps should work everywhere for every user. But what happens when the technology and API’s are not available for in your users browser? In this talk we will show you how you can think about and build sites that work everywhere.

Progressive Web Apps should load fast, work great offline, and progressively enhance to a better experience in modern browsers.

How do you put the “progressive” into your current web app?

You can (and should!) build for the latest and greatest browsers, but through a collection of fallbacks and progressive enhancements you can bring a lot tomorrow’s web to yesterday’s browsers.

I think this is a really smart move. It’s a lot easier to sell people on incremental changes than it is to convince them to rip everything out and start from scratch (another reason why I’m dubious about any association between web components and progressive web apps—but I’ll save that for another post).

The other angle that I really liked was the emphasis on emerging markets, not just wealthy westerners. Tal Oppenheimer’s talk Building for Billions was superb, and Alex kicked the whole thing off with some great facts and figures on mobile usage.

In my mind, these two threads are very much related. Progressive enhancement allows us to have our progressive web app cake and eat it too: we can make websites that can be accessed on devices with limited storage and slow networks, while at the same time ensuring those same sites take advantage of all the newest features in the latest and greatest browsers. I talked to a lot of Google devs about ways to measure the quality of a progressive web app, and I’m coming to the conclusion that a truly high-quality site is one that can still be accessed by a proxy browser like Opera Mini, while providing a turbo-charged experience in the latest version of Chrome. If you think that sounds naive or unrealistic, then I think you might want to dive deeper into all the technologies that make progressive web apps so powerful—responsive design, Service Workers, a manifest file, HTTPS, push notifications; all of those features can and should be used in a layered fashion.

Speaking of Opera, Andreas kind of stole the show, demoing the latest interface experiments in Opera Mobile.

That ambient badging that Alex was talking about? Opera is doing it. The importance of being able to access URLs that I’ve been ranting about? Opera is doing it.

Then we had the idea to somehow connect it to the “pull-to-refresh” spinner, as a secondary gesture to the left or right.

Nice! I’m looking forward to seeing what other browsers come up with it. It’s genuinely exciting to see all these different browser makers in complete agreement on which standards they want to support, while at the same time differentiating their products by competing on user experience. Microsoft recently announced that progressive web apps will be indexed in their app store just like native apps—a really interesting move.

The Progressive Web App Dev Summit wrapped up with a closing panel, that I had the honour of hosting. I thought it was very brave of Paul to ask me to host this, considering my strident criticism of Google’s missteps.

Initially there were going to be six people on the panel. Then it became eight. Then I blinked and it suddenly became twelve. Less of a panel, more of a jury. Half the panelists were from Google and the other half were from Opera, Microsoft, Mozilla, and Samsung. Some of those representatives were a bit too media-trained for my liking: Ali from Microsoft tried to just give a spiel, and Alex Komoroske from Google wouldn’t give me a straight answer about whether he wants Android Instant apps to succeed—Jake was a bit more honest. I should have channelled my inner Paxman a bit more.

Needless to say, nobody from Apple was at the event. No surprise there. They’ve already promised to come to the next event. There won’t be an Apple representative on stage, obviously—that would be asking too much, wouldn’t it? But at least it looks like they’re finally making an effort to engage with the wider developer community.

All in all, the Progressive Web App Dev Summit was good fun. I found the event quite inspiring, although the sausage festiness of the attendees was depressing. It would be good if the marketing for these events reached a wider audience—I met a lot of developers who only found out about it a week or two before the event.

I really hope that people will come away with the message that they can get started with progressive web apps right now without having to re-architect their whole site. Right now the barrier to entry is having your site running on HTTPS. Once you’ve got that up and running, it’s pretty much a no-brainer to add a manifest file and a basic Service Worker—to boost performance if nothing else. From there, you’re in a great position to incrementally add more and more features—an offline-first approach with your Service Worker, perhaps? Or maybe start dabbling in push notifications. The great thing about all of these technologies (with the glaring exception of web components in their current state) is that you don’t need to bet the farm on any of them. Try them out. Use them as enhancements. You’ve literally got nothing to lose …and your users have everything to gain.

RoboHornet’s nest

Paul Irish recently announced that the RoboHornet browser benchmarking tool is being open-sourced. This is great news!

RoboHornet is designed to avoid the selective dick-measuring that characterises so many benchmarking results touted by browser vendors in their marketing spiel. Instead, the criteria that RoboHornet tests against are decided by developers like you and me. It’s like Stack Overflow for browser performance.

Sadly, Roger Capriotti from Microsoft used the announcement as an opportunity to engage in even more swaggering selective dick-measuring. Bizarrely, he seems to have completely misunderstood how RoboHornet works. Repeatedly mischaracterising it as “micro-framework”, he takes it to task as a tool that “only focuses on specific aspects of browser performance” …completely glossing over the fact that those “specific aspects” are chosen by us, the developers who build the websites that the browsers are supposed to render.

Instead, he chooses “a real-world scenario” …imitating the scrolling text effect seen in the 1999 movie The Matrix, concluding:

This is a great example of why we have consistently said real-world performance matters when evaluating a browser.

WAT?

But, y’know, the risible example and complete misrepresentation of RoboHornet isn’t what bothers me about the post. It’s the tone. I’ve had it with this sort of sniping, mean-spirited, playground politics. This does not move the web forward. This does not make a more beautiful web.

On the plus side, crap like this makes you appreciate the professionalism of the people working on Firefox, Chrome and Opera (Apple, of course, dodges the issue entirely by having absolutely zero developer relations when it comes to their browser).

Don’t get me wrong: there are very, very good people working on Internet Explorer at Microsoft. But they’re not the ones writing petulant blog posts. I feel bad for them. If Roger Capriotti—whose job title is “Director, Internet Explorer Marketing”—is supposed to be speaking for them, he is letting them down badly.

South by CSS

South by Southwest has become a vast, sprawling festival with a preponderance of panels pitched at marketers, start-ups and people that use the words “social media” in their job title without irony. But there were also some great design and development talks if you looked for them.

Samantha gave a presentation on style tiles, which I unfortunately missed but I’ll be eagerly awaiting the release of the audio. I also missed some good meaty JavaScript talks but I did manage to make it along to Jen’s excellent introduction to HTML5 APIs.

Andy’s talk on CSS best practices was one of the best presentations I’ve ever seen. He did a fantastic job of tackling some really important topics. It’s a presentation (and a presenter) that deserves a wider audience, so if you’re involved in putting together the line-up for any front-end conferences, I highly recommend that you nab him.

Divya put together an absolutely killer panel called CSS.next, all about how CSS gets specced and shipped, and what’s coming down the line. All of the panelists were smart, articulate, and well-informed. The panel was very enlightening, as well as being thoroughly enjoyable.

And then there was the Browser Wars panel.

This is something of a SXSW tradition. Arun assembles a line-up of representatives from browser makers—Mozilla, Google, Microsoft, and Opera—and then peppers them with some hardball questions. Apple is invited to send a representative every year, and every year, Apple declines.

There was no shortage of contentious topics this year. The subject of Google Dart was raised (“Good luck with that,” said Brendan). There was also plenty of discussion about the recent DRM proposal submitted to the HTML working group. There was a disturbing level of agreement amongst all the panelists that some form of DRM for video was needed because, hey, that’s just the way things go…

As an aside, I must say I found the lack of imagination on display to be pretty disheartening. Two years ago, Chris was on the Browser Wars panel representing Microsoft, defending the EOT format because, hey, that’s just the way things go. Without some form of DRM, he argued, we couldn’t have fonts on the web. Well, the web found a way. Now Chris is representing Google but the argument remains the same. DRM, so the argument goes, is the only way we’ll get video on the web because that’s what the “rights holders” demand. And yet, if you are a photographer, no such special consideration is afforded to you. The img element has no DRM and people are managing just fine, thank you. Video, apparently, is a special case …just like fonts. ahem

Anyway…

The subject of vendor prefixes also came up. Specifically, the looming prospect of non-webkit browsers parsing -webkit prefixed properties was raised.

I saw a pattern amongst all three subjects: the DRM proposal, Dart, and browsers implementing another browser’s vendor prefix. All three proposals were made to address a genuine problem. The proposals all suffer from varying degrees of batshit craziness but they certainly galvanised a lot of discussion.

For example, Brendan said that while Google Dart may not stand a hope in hell of supplanting JavaScript, some of the ideas it contains may well end up influencing the development of ECMAScript.

Similarly, Mozilla’s plan for vendor-prefixing certainly caused all parties to admit the problem: the W3C was moving too slow; Apple should have submitted proprietary properties for standardisation sooner; Mozilla, Microsoft, and Opera should have been innovating faster; and web developers should have been treating vendor-prefixed properties as experimental features, not stable parts of a spec.

So the proposal to do something batshit crazy and implement -webkit-prefixed CSS properties has actually had some very positive effects …but there’s no reason to actually go ahead and do it!

I tried to make this point during the audience participation part of the panel, but it was like banging my head against a brick wall. Chaals kept repeating the problem case, but I wasn’t disputing the problem; I was trying to point out that the proposed solution wouldn’t fix the problem.

It was a classic case of the same kind of thinking we saw in the SOPA proposal:

  1. Something must be done!
  2. Implementing -webkit prefixes is something.
  3. Something has been done.

The problem is that it won’t work. Adding “like Webkit” to the user-agent string will probably have much more of an effect and frankly, I don’t care if any of the browsers do that. At this point, a little bit more pissing into the bloated cesspool of user-agent strings is hardly going to matter. A browser’s user-agent string isn’t an identifier, it’s a reverse-chronological history of the web. Why not update the history booklet to include the current predilection amongst developers for Webkit browsers on mobile?

But implementing -webkit vendor prefixes? Pointless! If a developer is only building and testing their sites for one class of device or browser, simply implementing that browser’s prefixed CSS is just putting a band aid on a decapitation.

So I was kind of hoping that Mozilla would just come right out and say that maybe they wouldn’t actually go ahead and do this but hey, look at all the great discussion it generated (just like Dart, just like the DRM proposal). But sadly, no. Brendan categorically stated that the proposal was not presented in order to foment discussion. And in follow-up tweets, he wrote that he actually expected it to level the mobile browser playing field. That’s an admirably optimistic viewpoint but it’s sadly self-delusional.

And what will happen when implementing -webkit prefixes fails to level the playing field? We’ll be left with deliberately broken browsers.

Once something ships in a browser, it’s very, very hard to ever remove it. During the Dart discussion, Chris talked about the possibility of removing Dart from Chrome if developers don’t take to it. Turning to the Microsoft representative he asked rhetorically, “I mean, do you guys still ship VBScript?”

The answer?

“Yes.”

Demo hell

The Future of Web Design just took a nose-dive. I’m having flashbacks to MIX08 as we are subjected to an interminable Silverlight demo.

Any conference that allows sponsors to buy speaking slots isn’t putting together a user-centred schedule. At best, these shill spots are tolerated. For most people, they engender downright hostility.

On the plus side, these pathetic little sales pitches are shorter than the real speaking slots. I can see Paul edging up on the side of the stage, ready to drag this guy off—he has definitely outstayed his welcome.

Viva

My trip to MIX08 was also my first visit to Las Vegas. I’m sure I’m not the first place to make this observation but may I just say: what an odd place!

I experienced first-hand what Dan was talking about in his presentation Learning Interaction Design from Las Vegas. In getting from A to B, for any value of A and any value of B, all routes lead through the casino floor; the smoky, smoky casino floor. If it wasn’t for the fact that I had to hunt down an Apple Store to try to deal with my broken Macbook—more on that later—I wouldn’t have stepped outside the hotel/conference venue for the duration of my stay. Also, from the perspective of only seeing The Strip, visiting Las Vegas was like Children of Men or a bizarro version of Logan’s Run.

But enough on the locale, what about the event? Well, it was certainly quite different to South by Southwest. Southby is full of geeks, MIX was full of nerds. Now I understand the difference.

I was there to hear about Internet Explorer 8. Sure enough, right after some introductory remarks from Ray Ozzie, the keynote presentation included a slot for Dean Hachamovitch to showcase new features and announce the first beta release. I then had to endure three hours of Silverlight demos but I was fortunate enough to be sitting next to PPK so I spent most of the time leaning over his laptop while he put the beta through its paces.

After the keynote, Chris Wilson gave a talk wherein he ran through all the new features. It goes without saying that the most important “feature” is that the version targeting default behaviour is now fixed: IE8 will behave as IE8 by default. I am, of course, ecstatic about this and I conveyed my happiness to Chris and anyone else who would listen.

IE8 is aiming for full CSS2.1 support. Don’t expect any CSS3 treats: Chris said that the philosophy behind choosing which standards to support was to go for the standards that are finished. That makes a lot of sense. But then this attitude is somewhat contradicted by the inclusion of some HTML5 features. Not that I’m complaining: URL hash updates (for bookmarking) and offline storage are very welcome additions for anyone doing any Ajax work.

Overall IE8 is still going to be a laggard compared to Firefox, Safari and Opera when it comes to standards but I’m very encouraged by the attitude that the team are taking. Web standards are the star by which they will steer their course. That’s good for everyone. And please remember, the version available now is very much a beta release so don’t get too discouraged by any initial breakage.

I’m less happy about the closed nature of the development process at Microsoft. Despite Molly’s superheroic efforts in encouraging more transparency, there were a number of announcements that I wish hadn’t been surprises. Anne Van Kesteren outlines some issues, most of them related to Microsoft’s continued insistence on ignoring existing work in favour of reinventing the wheel. The new XDomainRequest Object is the most egregious example of ignoring existing community efforts. Anne also some issues with IE’s implementation of ARIA but for me personally, that’s outweighed by the sheer joy of seeing ARIA supported at all: a very, very welcome development that creates a solid baseline of support (you can start taking bets now on how long it will take to make it into a nightly build of WebKit, the last bulwark).

The new WebSlices technology is based heavily on hAtom. Fair play to Microsoft: not once do they refer to their “hSlice” set of class names as a microformat. It’s clear that they’ve been paying close attention to the microformats community, right down to the licensing: I never thought I’d hear a Microsoft keynote in which technology was released under a Creative Commons Public Domain license. Seeing as they are well aware of microformats, I asked Chris why they didn’t include native support for hCard and hCalendar. This would be a chance for Internet Explorer to actually leapfrog Firefox. Instead of copying (see the Firebug clone they’ve built for debugging), here was an opportunity to take advantage of the fact that Mozilla have dropped the ball: they promised native support for microformats in Firefox 3 but they are now reneging on that promise. Chris’s response was that the user experience would be too inconsistent. Using the tried and tested “my mom” test, Chris explained that his mom would wonder why only some events and contact details were exportable but not others. But surely that also applies to WebSlices? The number of WebSlices on the Web right now is close to zero. Microsoft are hoping to increase that number by building in a WebSlice parser into their browser; if they had taken the same attitude with hCard and hCalendar, they themselves could have helped break the chicken’n’egg cycle by encouraging more microformat deployment through native browser support.

Overall though, I’m very happy with the direction that Internet Explorer is taking even if, like John, I have some implementation quibbles.

Having experienced a big Microsoft event first-hand, I still don’t know whether to be optimistic or pessimistic about the company. I get the impression that there are really two Microsofts. There’s Ray Ozzie’s Microsoft. He’s a geek. He gets developers. He understands technology and users. Then there’s Steve Ballmer’s Microsoft. He’s an old-school businessman in the mold of Scrooge McDuck. If Ray Ozzie is calling the shots, then there is reason to be hopeful for the future. If the buck stops with Steve Ballmer however, Microsoft is f**ked.

Still broken

It’s been a few days now since the announcement on A List Apart. Since then there has been some good debate but a lot of noise and fury signifying nothing. Eric put it best when he said:

If you feel the need to impugn the integrity or intelligence of another person to oppose an idea, you’re undercutting yourself, not your target nor the thing you oppose.

I think that Jeffrey is right when he observes that there might have been less vitriol expended had this proposal come from anyone other than Microsoft. Still, it’s hardly surprising that the initial reaction to Microsoft’s version targeting is one of shock and rejection. After all, that was also the initial reaction of both Eric and Jeffrey.

Let me clarify what I think of the proposed meta element for version targeting, just in case it wasn’t clear from my previous post:

This proposal is fine. I don’t think it’s great but I think it’s a pretty good solution to a very real problem that Microsoft are facing. As Jeffrey said:

I don’t love version targeting but I see that it serves a need.

That need is ensuring that Microsoft’s customers won’t have to spend time and money jumping through hoops every time that a new version of Internet Explorer is released (as happened with IE7). Yes, I know that if these people—mostly in the Enterprise world of intranets—had just written to standards in the first place then they wouldn’t have had any problems. But that doesn’t change the reality of the situation that those people are in. Any proposed “solutions” that involve abandoning these customers—or, in the more extremist suggestions, abandoning Internet Explorer—simply aren’t facing up to reality.

The http-equiv="X-UA-Compatible" instruction is a solution that requires minimum effort from publishers (although it does require a lot of future effort from the browser manufacturer). The switchover from IE6 to IE7 cost a lot of people a lot of time and money as they scrambled to move from CSS hacks to conditional comments. It’s no secret that Microsoft view this as a failure, hence the new proposal which will ensure that sites can be frozen at the level of IE7 even after IE8 is released.

Microsoft can now provide their customers with a ludicrously simple answer to any future problems. All they have to do is add a meta element to their documents (or set up their server to automatically output that header).

But that isn’t what Microsoft is proposing. Instead, IE8 will behave as IE7 by default. The meta element is required if you want IE8 to behave as IE8. Mark Pilgrim encapsulates the madness of this approach:

  • If you give me non-standard markup, I will render it according to standards.
  • If you give me standard markup, I will not render it according to standards.

Let me make it perfectly clear: I understand the need for version targeting. But the onus must be on the publisher to enable it. The effort required is minimal—much less than any pain that was endured in the move from IE6 to IE7.

On the plus side, future versions of Internet Explorer might not cripple themselves on encountering HTML5 documents. That’s good news for the future. Sometime in the ten years, this will be a solved problem. In the meantime, there will be millions of documents written in HTML 4.01 and XHTML 1.0—both perfectly fine DOCTYPEs. There’s no reason why they should be treated as second-class citizens by default.

Chris Wilson read my misgivings and commented:

However, the problem is that we can’t tell the difference between your content (valid HTML with a correct HTML 4.01 DOCTYPE) and that of someone who hacked up their own content to work with IE6/7 when faced with an IE browser, and whose content will break entirely if we correctly implemented standards as specified.

It’s true that a browser can’t read minds but rather than ship a browser that’s crippled by design, it seems far, far better to me to allow people to tell the browser to regress. I think that asking people to add one meta element isn’t asking too much. As compromises go, it would be a great way for publishers and browsers to meet each other half way.

I believe that Microsoft want to help their customers. I believe they have found a reasonable solution. But in defaulting to crippled functionality in their next browser, they are hurting everybody else.

Jeffrey describes this as an implementation detail but it is far more than that: it is the implementation.

A few years ago, Microsoft introduced some proprietary CSS properties for coloured scrollbars. Fine. Anybody who wanted to make use of this “innovation” was free to do so. The rest of us could just ignore it. Now suppose that instead of making coloured scrollbars an option, they were the default… and if you wanted to revert to the standard way of displaying scrollbars, you had to use the proprietary code. See the problem?

Non-standard browser features are nothing new. Internet Explorer has already given us XMLHttpRequest and innerHTML. We are free to use these or to ignore them. Now, for the first time, a browser feature is mandatory: if you don’t want to use the new feature, you have to disable it… by using the new feature.

Jeffrey is in favour of this proposed default behaviour. He argues very persuasively that it will help the non-professionals who are building websites:

Teachers, pastors, coaches. Managers and owners of very small businesses that can’t afford to hire anyone reading this page to create a snazzy website for them.

I passionately believe that anyone should be able to publish online. That is the vision of Tim Berners-Lee’s beautiful Web. But I don’t think those people will be affected by this decision one way or the other; chances are they are using old-fashioned table-based markup. Besides, they are not the people that Microsoft are trying to help. Microsoft are trying to help the people with money (which is fair enough: Microsoft is, after all, a profit-making business).

I’ve listened to the arguments in favour of IE8 behaving as IE7 as default. I still believe it is the wrong behaviour. Now what can I do about it?

Jeffrey counsels a polite approach:

And, presumably, if enough developers believe the default should be “current version” instead of “IE7” — and if they argue their case coherently and dispassionately — Chris Wilson and his colleagues might come to agree with you, and the version tracking default might end up the way you want it instead of the way it was originally proposed.

If that’s the part that bothers some folks here (like it bothers Jeremy Keith), the thing to do is politely take it up with Microsoft’s Chris Wilson. That’s how stuff changes: by politely talking to the people who make our browsers.

I concur. I hope that the decision regarding default behaviour lies in the hands of people like Chris Wilson and Marcus Mielke. I know that Chris is passionate about standards. I know that if he believes that changing the default behaviour is the right thing to do, he will do it.

Eric agrees with me. Many of the comments on Jeffrey’s blog also agree:

  • I support version targeting but the part that confuses me is that if the tag is excluded, it defaults to IE7.

  • I’m with Jeremy — it SHOULD default to IE8.

  • Many of the comments against the A List Apart articles seem to more or less echo what Jeremy Keith is saying.

  • I think that in IE8 the default should be IE8; but render as IE7 when asked (with version targeting).

  • Make IE8 work like IE8 by default. If your site breaks, then - and only then - add the meta tag to beg for IE7. Adding the meta tag will be easy for the small number of sites that require IE7 (ie. those sites that still ignore the 10-20% of non-IE browsers such as FF, Safari and Opera).

  • After a lot of reading and some hard thinking I think Jeremy is right. The meta could be a useful tool if the default is IElatest, not IE7 8 or any specific version.

  • If you’re going to have a fallback, you may as well use the gold standard in incorrect rendering; the one that the entire web was coded to for 5 years: IE6. If you’re going to implement something as logically backward but seemingly necessary as this version targeting, you may as well do it in the most backward way imaginable.

  • Far better is to force those who made poor choices in the past by working to IE7 implement a simple 1-line fix to get their legacy site to render under the IE7 engine. I’m sure the MS folks can get the message across: “Broken site in IE8? Add XXX to fix it.”

  • I’m also with Jeremy Keith (and others on this).

  • I’m going to go with Jeremy’s request for sites to use the latest rendering mode unless the meta tag say otherwise.

  • The most logical execution for this tag is that when it is not there, it defaults to the latest engine.

  • I really cant agree with the attitude that in order to do things right in a certain browser, you have to go out of your way and add a tag.

  • IE8 rendering *must* be the default in IE8 to further promote standards-based, interoperable websites.

  • IMO, I think they should do it the other way around. Make a flag available to mark ie8 sites into ie7 mode.

  • I am still not clear on why any site I make that conforms to standards has to include a new line of code to make it display according to standards.

  • If you don’t specify this meta tag, you will be served an IE7 rendering engine. Having opt out by default is one of the key arguments for most of the people saying that the suggested implementation of version targeting is wrong.

  • I am in favor of the version targeting, because it seems a very good way to untie the hands of IE’s design team. I am still not convinced by your argument for defaulting to IE7.

  • Making the default version IE7 rather than “edge” seems like a bad idea. If it’s as easy as making a one-line change to your web server configuration (to add the HTTP header rather than the meta tag), then corporations will have plenty of time to future-proof their intranet apps against IE8.

    Adding the versioning capability, but having a default of “edge” gives corporate sites/intranets a way to protect themselves. This allows Microsoft to stop worrying about backwards compatibility and lets them focus solely on implementing the standards correctly.

  • I don’t agree with the direction of the switch; it really should default to IE8 and give people the meta to invoke Trident.

  • The switch is all cool, but it’s opposite of what it should have been. Instead of forcing developers that are following standards to insert this meta element to actually be able to use these standards, Microsoft should reverse the switch so those targeting a rendering engine has to insert it instead.

  • PLEASE, reconsider that default behavior, it is NOT a “detail.”

  • I’m not seeing how the current form of the tag is better for standards over making the tag an opt-in for IE7 rendering.

  • If the default was reversed I think no one would raise so much as an eyebrow for this proposal. In fact most people would positively support it. As it stands this problem is just crazy.

  • Even if IE8 can display everything my style sheet declares, if I omit the META declaration, IE users will get a sub par experience.

  • *”Edge” should be the default, not IE7!* (That’s my new sig ;)

  • If the default behaviour of any future IE version is to render as ITSELF, then surely all lousy developers need to do to fix their sites is put in the required meta tag.

And here’s a cherry-picked sampling from the IE8 blog:

  • I’d prefer having the superstandards mode on by default.

  • SuperStandards should be ON by default. If IE7/quirks mode is needed, the meta tag should be used.

  • Standard should be on by default, or just call your browser ‘IE 7 extended’.

  • I’d prefer having the superstandards mode on by default.

  • I agree, super-standard mode should be the default mode.

  • Let’s have the IE8 Standards mode on by default.

  • Make it an OPTION to work in IE7 or IE6 or whatever mode. But make it DEFAULT to run IE8 “super standards” (this should be called standards mode) mode.

  • Standards mode should be the default.

  • What i think would be a good idea is to turn this exactly around: add a meta tag or http header to sites that need to be rendered by IE8 in ‘crappy-mode’, ‘ie6 mode’ or ‘ie7 mode’ and kick it into standards compliant mode by default.

  • There SHOULD be an option to trigger IE 8 to use old rendering engines but it should be disabled by DEFAULT

  • A site that wants IE8 to behave like IE7 should have to specify the meta tag, not the other way around.

  • Use standards compatibility mode by default.

  • I personally think that you should really consider making the real IE8 engine (“super standards” as some have called it) the default option.

  • So let me get this straight… I have to add an additional meta tag to my page in order for IE8 to support standards?!?!?

  • Standards mode should be the default.

  • Standards mode should be the default if the doctype is declared.

  • Super-standard should be the default, period.

  • I’m coming round to the idea that this is workable *if* the default is changed to IE8 - standards compliance mode - the meta then provides a fix for any site that breaks.

  • As some have previously mentioned, the Standards compliant mode should be the default.

  • All browsers must be in Standards Mode by Default.

  • Please make fully standards compliant mode the default.

  • In case it’s not clear: Make the standards mode default.

  • It’s great that IE 8 will have a much better standards support. It’s bad that it won’t be on by default, requiring a switch.

  • The idea is good. The default is bad.

  • Standards Mode by Default. Standards Mode by Default. Standards Mode by Default. And now repeat!

  • I too think that this is a great idea, but the default behavior is evil.

  • It is fundamentally wrong to stick us with IE7’s broken implementation as a default.

  • Standards should certainly be default, not an opt-in.

  • I’m no web developer, and I never, and I mean never say anything anti MS,but why can’t standards mode be enabled by default?

  • Make IE8 standards compliant by default.

  • Fellas, I really appreciate what you’re trying to do. Improving the renderer was the right thing to do, and you’ve done that. Bravo! The wrong thing to do is to have the correct behaviour require yet another tag.

  • The default when processing a correctly specified doctype should be standards mode.

  • I have to agree that full standards compliant mode should be on by default.

  • I agree that super compliant mode should be enabled by default and the meta tag should be used for Quirks mode.

  • I have no problem with the concept of a meta tag that allows developers to target specific browsers, but the default should ALWAYS be the latest and greatest.

  • After reading the various articles (and comments) on this approach (i.e. the meta tag “switch”) I really think that IE 8 should default to the latest and greatest rendering first - not the IE7 rendering engine.

  • If you do go ahead with this: make super standard mode default please.

I kind of feel like John Turturro to Chris Wilson’s Gabriel Byrne:

I’m praying to you! Look in your heart!

Broken

I’m sure by now you’ve seen the latest issue of A List Apart. Therein, Aaron outlines Microsoft’s implementation of rendering switching based on a meta element and Eric describes how his initial feelings about the technique changed over time.

I’d like to make one thing absolutely clear. You might infer from A List Apart or from the IEBlog that there was collaboration between the Web Standards Project and Microsoft on this. That is not the case. There was collaboration between some members of the WaSP and the IE team but, as Drew makes very clear, most of us were completely in the dark about this. I knew that something was coming but I didn’t know what because Microsoft will only collaborate under NDA. That is not a good situation. NDAs are poison to free and open discussion.

With that out of the way, let me tell you what I think of the proposed http-equiv="X-UA-Compatible" instruction. I think this could have been a great feature—exactly the kind of innovation that Alex was talking about. It could have been a way of solving Microsoft’s fear of “breaking the web” for existing customers who have coded their sites to the current level of browser support—the people who understandably don’t want to have to change their sites when a new browser is released.

Here’s how the X-UA-Compatible works. In a meta element or HTTP header, an instruction such as IE=8 tells future versions of Internet Explorer to render the document as a specific version would (IE8 in this case). In theory, any future versions of Internet Explorer will retain the ability to render documents just as they would have been rendered in previous versions.

This solution was driven by the perceived problems with IE7’s release. Personally, I believe that Microsoft did a great job with IE7 but I know that within the company, it was in some ways seen as a failure. Many customers complained of IE7 “breaking” sites that worked just fine in IE6 (where “break” is usually defined as “not looking the same”). This is a legitimate source of concern for Microsoft. The proposed X-UA-Compatible header will solve this problem. Customers who don’t want their sites to behave any differently in future versions of Internet Explorer can lock down the rendering to the current browser.

So far, so good… great, in fact. But—and this is a huge “but”—if you don’t include a X-UA-Compatible instruction, you are also condemning your site to be locked into the current version: IE7. This is a huge, huge mistake.

Let’s say you’re building a website right now that uses a CSS feature such as generated content. Any browsers that currently support generated content will correctly parse your CSS declarations. Future browsers that will support generated content should also parse those CSS declarations. This expected behaviour will not occur in Internet Explorer. IE8 will include support for generated content. But unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

I can’t believe I just wrote that sentence. This shouldn’t make any sense:

Unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

That’s madness! If I don’t use the X-UA-Compatible instruction, I won’t get the benefit of any future improvements in Internet Explorer. That sounds like blackmail to me. There is an option to activate whatever is the current browser version—which, of course, should be the default behaviour. This is achieved by using the (strongly discouraged) IE=edge value in… yup, http-equiv="X-UA-Compatible". So even if you want to opt out, you have to opt in. That too is madness.

Just to be absolutely clear on this, I think that the X-UA-Compatible header is a great idea. It’s great for Microsoft. It’s great for Microsoft’s customers. But the default behaviour is wrong, wrong, wrong! This should be an innovative feature, not a mandatory part of the process of creating a document on the World Wide Web. *

IE8 has not yet been released. It’s not too late for this broken default behaviour to be changed. If enough of us make our case clearly, perhaps Microsoft will listen to us… even if we haven’t signed NDAs.

For more on this, please read


*As for all the comparisons to DOCTYPE switching, can I just point out that the reason why I put a DOCTYPE on my documents (and the reason why the WaSP lobbied authoring tool vendors to do the same) is because valid (X)HTML documents require a DOCTYPE; not because it makes Internet Explorer render in a different mode. The tail does not wag this dog. If I write a valid (X)HTML document with a correct DOCTYPE, surely I should expect a browser to render it to the best of its ability rather than crippling itself?

Microsoft in London

Microsoft threw an invite-only gathering at its London offices: something about start-ups and Web 2.0. For some reason, I was asked along. Myself, Andy and Simon got on an early-morning train from Brighton to Victoria from whence we shuffled our way down the street to the glass lair of the Redmond giant. Once there, we were ushered into a room to listen to a series of talks.

For me, the whole day was like an anthropological exercise. I was getting a glimpse into a strange alien world of business plans and venture capital—the kind of stuff that I normally have no contact with. Here are the notes I took…

Lars Lindstedt, Microsoft

Here’s a bunch of Arial-filled slides.

Microsoft research labs, like the one in Cambridge, produce swathes of intellectual property that gets licensed to selected partners in the UK. Whoop-de-doo.

There’s a disparity between developed and developing worlds. Technology should be able to help (not if you’re demanding money for IP, it won’t).

Those crazy kids on Bebo who aren’t watching TV should be out kicking a ball around. Point is, it’s not just about a web browser on a PC: it’s about multiple channels.

And now, a graph. It slopes downwards from left to right therefore it must be showing something bad. It’s the UK labour productivity rate. Software increases labour productivity apparently.

All this Arial is making my eyes hurt.

Brent Hoberman, lastminute.com

What made lastminute.com successful? A great original idea. Outrageous ambition. ‘Cause this is meant to be fun and exciting.

Go after a huge market (so much for the long tail). The Web is a market where technology can really help.

When you get a good idea it seems so blindingly obvious that your first reaction is “surely somebody has done this already?” The second reaction you want is when you describe it to people and they say that they would want to use your service.

Then you’ve got to execute your idea. It’s really hard. Each individual slice of what you do is fairly easy to replicate but putting it all together is like a puzzle. You’ve got to balance supply and demand and marketing.

Speaking of marketing, how do you create buzz? Look at people like Facebook and Bebo (Bebo again?) who haven’t spent a penny on marketing. How do you distill that? Sure, luck is a big part of that but there are things you can do. For example, user interface is so important. The new marketing is just to make your product so good that you don’t have to shout about it. Cut the marketing budget in half and put that back into differentiating the product. Invest in tools that customers can use that are better and easier to use than anyone elses.

Brent’s new startup was born out of personal experience of frustration with interior decorating or something like that. Forget about market research. It’s just justification for somebody’s job. Your business should have a culture where failing is okay. Fail quick and fast so that you learn from your mistakes. Big companies have cultures of fear and consensus.

The hardest bit is the interface between business and technology, getting those people to talk to each other. You can’t just write down an idea and hand it over to the tech guys and get them to give you an estimate. Break it down and find out where the bottlenecks are and take them out. In small companies, you can have that dialogue. But big companies have so many layers that it’s hard to communicate.

Beware of data. As an ex-consultant, Brent knows how data is used to justify what the boss wants to hear. But do harvest as much data as you can about what your customers are doing. His biggest fear with his new project is that he’s sure he won’t get it right the first time. But the key thing is that his team is excited to react to what customers are doing so it will get better quickly.

There’s time for some questions.

Question: What are the differences between US and UK business attitudes?

The UK is actually a great place to do business even though there is something in the British psyche that is more cautious and less gung-ho. The media, who are quite important, are kind of schizophrenic—they promote stuff but at the same time, they love to see people fail.

Question: What are the problems associated with growth?

Innovation can go out the window. You get stuck in marketing (wasting money on TV) and fixing things rather than adding new features. Before launch, write down all those great ideas you’ve all got so that you can revisit them later because you won’t have time to think about this stuff after you launch.

Question: How did you survive the bust?

It made things less fun. Focus on the business even when everyone is telling you it won’t work. Stick to your guns. And don’t forget, outragous ambition will keep everyone on your team excited.

Question: What current trends to you see?

Customers are using better, quicker, more advanced tools; like uploading video to the Web, for example. Mobile was overestimated in the past but in the long term, it is very important. Social networks are powerful. You don’t want to launch a business that’s just a social network but it can be a prominent part of your service. Getting customers to do your work for you is exciting.

Question: Is content still king?

Building great tools so that customers can create content is great. Blending professional content with user-generated content is also great.

Question: Hire superstars or mold them?

Hire primadonnas. Put together a great team and then keep them. Molding them is very hard.

Question: How do you incubate innovation at a big company?

Stop obsessing about return on investment. Have some people who are allowed follow their instincts. The tricky thing is marrying that up with your market. Have a nutcase CEO like Jeff Bezos.

Steve Balmer, Microsoft CEO

Let’s talk about the evolution of software.

The first question that’s often asked is “What do you mean?”

Oh, the sentence continues, “…when you say software plus services.”

Well, here are some more Arial-rich slides.

There’s desktop, servers, online and devices. Each of these models has its advantages:

  • The desktop PC allows most control for the user.
  • Server (or “enterprise”) computing is good for security.
  • People love the internet; just click and run with no intallations.
  • Devices… um.

Ooh, Brent’s phone is ringing now, as if on cue. Glare, Steve, glare.

There’s a bunch of different user interfaces from the richness of the desktop to the reach of web apps, and there’s handwriting and voice recognition on devices. Not everything needs to be a web app or a Silverlight app. Office has some new online capabilities but that doesn’t make it a web app.

Then there’s enterprise stuff (I’m going to have to take a break from note-taking to tick off a bunch of squares on the Buzzword Bingo I’ve got open in my browser window).It’s all about cloud services apparently. It sounds like the stuff that Amazon are already doing. Ooh, he just said that! It’s like he knows what I’m thinking.

Mashups live at this REST level which is simple and easy and great. But we want sophistication and security apparently so forget that stuff—Microsoft have got a great model for talking to Windows-based clients, browsers and Silverlight. Let’s have a product demo from Mark.

Mark (didn’t catch his last name)

Let’s look at some tools with cool-sounding names. Here’s a Sliverlight flight-planning app. Having a plane whizz around a page is more compelling than text it seems.

Steve interrupts to say something about richness.

Back to Mark. This has reach; Windows, Mac, DRM (he snuck that last one in there quite cleverly).

Popfly is a mashup for consumers with a Silverlight UI. Here’s a Flickr component (of course! what mashup demo would be complete without an example that uses the Flickr API?). Mash it up with Virtual Earth. Page-turning animations are also an option. Ahem. Anyway, it’s about lowering the barriers to entry for people to make mashups.

Now what’s this? Looks like a barcode. Zoom in and it’s actually the complete works of Charles Dickens. Zooooom right in on one word. Applause! It’s a monstrous amount of data. This is Seadragon. No matter how big your data and objects are, you should be able to seamlessly flow into it.

There’s another zooming tool: Photosynth. Here’s the Venice example; a 3D model created from people’s photos. Zoom right in. Look, it’s Stephen Hawking on holiday.

Back to Balmer

The emphaisis is on seamlessness.

Uh-oh. Slide problems. Lars comes to the rescue and starts closing a bunch of windows ‘till we’re back to Powerpoint plus Arial.

Here’s a list of “services” and “partner opportunities.” The titles are so unsnappy I’ve forgotten them already. Most of them end with the word “Live” (like advertising a good seedy strip club). I think he’s starting to bore himself now.

There’s a bunch of partner programs. The startup accelerator program begins in the UK as of today. Talk to Lars for more.

Here’s the key point before questions from the audience: there’s been an incredible evolution in software. The model of what we do in creating software is morphing in incredible ways. We have to keep pace with that.

Question: What’s the future of consumer software? Ads?

A lot of things will be ad-funded. People don’t like paying for things. But some things are too expensive to be delivered through advertising and others where advertising is too invasive and painful. For example, basic internet connectivity won’t be ad-funded. Online publications, on the other hand, probably will. There’ll be a mix of things.

Question: want to talk about open source?

Microsoft believes in a commerical model; that’s how they can rent out this space we’re sitting in. But there’s room for different models. Microsoft’s strategy is to compete when they have open-source competitors. It would be great to see open-source innovations happening on top of Windows. The battle isn’t business model to business model: it’s product to product. Microsoft also pays a bunch of lawyers to buy IP and sue the ass off people. Open source people should play along and pay Microsoft money. That would be an IP framework (man, that’s some flavour of bullshit he’s spinning).

Simon Willison: This event is about startups but these days you can’t build anything without patents but you can’t buy patents unless you’re one of the big boys. Should there be a reform?

The patent system is pretty good but it needs overhauling. It’s unclear who benefits more from the current patent regime; the small company or the big company. Probably the small company (huh?). The bigger issue is how unpredictable the current system is. Who qualifies? How do you know about this stuff? The system was designed for mechanical things but now it needs to be reformed for software in the same way it was for the pharma industry (yikes! that’s some precedent to mention).

Question: Does Microsoft have any plans to support startups with revenue-linked licensing plans?

Microsoft have looked at that like the big guys have done (like Sun) but Microsoft’s stuff tends to be a lot cheaper.

The questioner interrupts to talk about SQL quad processing stuff, yadda yadda.

Any other questions, write to steveb@microsoft.com.

And with that, he exits stage right and out the door.

Panel discussion with Saul Klein , Ben Way and Cary Marsh , moderated by Ryan Carson

Ryan: Cary, you’re in a crowded market—online video—how do you compete?

Cary: We made a lot of mistakes. We should have provided a free trial and subscription services. We burned through a lot but we learned from that.

Ryan: Saul, you also run Seedcamp. How do the companies that get €50K use that money?

Saul: We ended up funding six business. The first six months are critical. You probably won’t be paying people, you’ll be motivating them through stock (Bwah-ha-ha!… Oh. He’s serious). You can use Amazon’s services to save money. It’s all about conserving capital and managing cost. You’ll always need more money than you’ve got. Do you need an office? Can you work in your living room?

Ryan: Ben, what tips can you give Web startups?

Ben: Don’t be afraid of making mistakes. Here in the UK, we are quite risk-averse. I failed when I was younger and I was scared of telling people but now I use it to my advantage. The other important factor is people, the people you choose to work with. Key people in key roles is… key.

Question: An article in The Guardian says that startups should act like mega-corporations. Is that at odds with what you guys are saying?

Ben: There’s a balance to be had. You’ve got to be innovative and fast on your feet but you’ve also got to keep an eye on your cashflow.

Saul: There’s nothing wrong with thinking big. You should think that you can be as big as Google or Microsoft. But that doesn’t mean you should spend money like them. That article sounds crazy to me.

Ryan: Anything good that’s happened to our business is because of relationships with people, not how big or small we are or appear.

Ryan: Saul, how are Seedcamp companies generating publicity?

Saul: Publicity is the beginning of a wider conversation you can have with your customers. Start blogging. Reach out to other people in your community like influental bloggers. The blogosphere is your first PR tool. There are blogs like Techcrunch and Read/Write Web that cover startups. But the most important thing is to start having conversations with the people who are relevant to your community.

Ryan: Ben, what’s been your biggest mistake in spending money on marketing?

Ben: The biggest mistakes come when you get a lot of money in the bank and you feel you must spend it. You get so used to not having money that when you get some, you go crazy. That can be an issue with VC funding. A cashflow situation would be better.

Ryan: Cary, can you share with us how much you spend on marketing?

Cary: Nothing apart from some ad words. Getting rid of the “business development” person and just getting a PA for myself, so that I can talk about this stuff passionately, was a great move.

Question: Cary, how do partnerships work out?

Cary: We’ve got a big partnership with Microsoft Windows Movie Maker. That made us global. Microsoft can introduce you to a lot of people. It’s difficult as a startup to knock on doors but if you have a big partner, they can help you.

Question: Saul, when is the right time for a company to raise finance?

Saul: People focus on the money aspect of financing but the people side of things is also important. You’ve got to get along with the investors. Early on, you can identify those people. They can give you advice and credibility when it comes to raising venture money. Raising venture is an important watershed moment for every company and it’s not necessarily right for every company. Try to find the right people first and they will find the right kind of money for you.

Ryan: I see a lot of people starting Web apps that aren’t skyrocketing but they’re doing okay. How do you know when you’ve failed or when you’re succeeding?

Ben: For me, I’m so passionate about an idea that I’d have to hit rock-bottom to give up on it. Honestly, a true entrepeneur keeps going until they can’t go on any more.

Cary: I agree. The one thing that all sucessful companies have is that they never gave up. You’ve got to be so focused but also flexible—be prepared to change and adapt.

Question: How do you maximize your shares when you go and get VC money?

Much mumbling from the audience; this is clearly a contraversial point. But I don’t understand any of it.

Saul: If you want ownership, you’re going to want the best people working with you and the best people investing in you. There’s no magic answer but I’d prefer to have a small share in Google than a very large share in a small company. I think the first fifty people in companies are co-founders, whether they’re called co-founders or not. Be generous with them.

And with that, the event wraps up and we all shuffle out for some sandwiches, sushi, coffee and water (from Microsoft branded bottles). There are a lot of people in suits but like water finding its own level, I end up chatting with Mike Stenhouse and Matt Webb.

Apropos of Mike’s pale skin, Matt looks out at the miserable London weather and comes up with a great idea: umbrellas that have UV lamps built in so that every time it rains, you get a tan.

Now that’s a startup worth funding.

Après Web Directions North

All I can say is, “Wow!” Web Directions North was one superb conference. The speakers were great, the organisation was slick and the social events were out of this world.

Every conference has its own vibe and this was one of excitement and fun. I was reminded of the atmosphere at a rock concert; when there’s energy coming from the stage, the audience responds in kind.

I’ve already described the presentations I was fortunate enough to attend, but I haven’t yet mentioned how well-put together the whole thing was. Maxine and John have plenty of experience under their respective belts while Dave and Derek have the benefit of being seasoned presenters themselves. Together they put a lot of thought into planning and executing a kick-ass conference.

Oh, and if you happen to be in the conference-organising business and you want some of that same success, here’s a tip: hire Cindy Li. She made sure that everything went like clockwork, mananging both the speakers and the attendees like they were play-doh in her hands.

At Web Directions North, I felt like I had the chance to connect with a lot of people; old friends and new. The end of any conference is often a bittersweet and frustrating time. All the people who have gathered together to share inspiration and knowledge scatter back to their respective homes. The size of this event combined with social events such as the infamous Media Temple closing party ensured that missed opportunities were kept to a minimum. Most of all though, I’ve enjoyed the best post-conference wind-down ever.

What better way to follow two days of wonderfully geeky talks than with two days of outdoor activity at Whistler? I rented a snowboard and all the associated paraphernalia. Even if I couldn’t actually do anything much, at least I could look the part. I had fun in the snow with my fellow bunny slopers but snowboarding is clearly not the sport for me. Racing down the mountainside in a rubber tube, on the other hand, is clearly my forté. The appeal of rubber tubing lies in the almost complete lack of skill required—apart from keeping your bum in the air for the bumpy bits.

And what better way to follow a day of outdoor activity than an après-ski extravaganza courtesy of Microsoft? The Redmond giant thinks that we’re so shallow that our affections can be bought with an endless supply of free food and booze for two days straight. Well, they’re right. I have a new-found soft spot in my heart for Microsoft.

Seriously though, It was really great that Adobe and Microsoft weren’t just faceless sponsors; they also had plenty of delegates in attendance. It felt really good to be able to put faces and names to the software that plays such an important part in the life of a Web developer. I enjoyed some very productive conversations with the Adobe gang and I was humbled to meet some of the developers working on IE7. I’m less likely to pour a vitriolic rant into an anonymous textarea now that I know some of the faces and names at the receiving end of the blogosphere’s ire.

Now I’m on my way back to England. While I am of course sad to be leaving Vancouver, I don’t have the usual post-conference ennui. I feel satisfied. I’m looking forward to getting home where I hope I’ll have some time to reflect on some of the things I discussed with the intelligent and passionate people at Web Directions North.