IE 10 To Ship With Flash?

Apparently Windows 8 Internet Explorer 10 will ship with Flash. Rather than put a nail in the coffin they are putting the corpse on the hood and driving around the neighborhood.

Flash is today what ActiveX was about 10 years ago. A proprietary insecure nuisance.

It’s worth noting even Adobe is doing some interesting HTML5 stuff these days. Adobe isn’t totally ignoring the future. Playing with Adobe Edge is somewhat high on my todo list.

Microsoft Joins W3C SVG Working Group

Microsoft is joining the W3C SVG Working Group. Presumably that means there’s some interest in SVG for IE or Silverlight or both. I wonder what led to the change of heart.

I pretty much wrote off any chance of SVG being mainstream in 2005 when Adobe bought Macromedia. Adobe was previously somewhat of a SVG pusher, but Macromedia obviously is the home of Flash. As expected the SVG love dried up. The gap that Adobe filled was adding support for SVG to IE. If IE supports it natively that’s a game changer.

Gecko already has decent support for SVG. WebKit has support for a while. Opera has support as well. Without analyzing in too much detail there should be a subset that’s usable across current browsers and hopefully IE by the time IE 9.0 ships.

I must admit given the choice I’m still more interested in Microsoft supporting <canvas/>, but no word on that as of yet. I’m still hopeful.

Hooray for web standards!

Adventures With document.documentElement.firstChild

Here’s an interesting DOM test-case I ran across inadvertently yesterday.

For the purpose of this post assume the following markup:

< !DOCTYPE html>
<html>
<!– i broke the dom –>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Testcase</title>
</head>
<body>
<p>Something</p>
</body>
</html>

If I use document.documentElement.firstChild I don’t get consistent behavior. In Firefox and IE I get the <head/> element, which is what I was initially expecting. In WebKit (Safari/Chrome) and Opera. I get the HTML comment which I wasn’t.

Continue reading

Debating Ogg Theora and H.264

Since the big HTML 5 news that there will be no defined codec for <audio/> or <video/> there has been a lot of discussion about the merits of such a decision, and what led to it. To quote Ian Hickson’s email:

Apple refuses to implement Ogg Theora in Quicktime by default (as used by Safari), citing lack of hardware support and an uncertain patent landscape.

Google has implemented H.264 and Ogg Theora in Chrome, but cannot provide the H.264 codec license to third-party distributors of Chromium, and have indicated a belief that Ogg Theora’s quality-per-bit is not yet suitable for the volume handled by YouTube.

Opera refuses to implement H.264, citing the obscene cost of the relevant patent licenses.

Mozilla refuses to implement H.264, as they would not be able to obtain a license that covers their downstream distributors.

Microsoft has not commented on their intent to support

I think everyone agrees this is going nowhere and isn’t likely to change in the near future. For the sake of moving HTML5 forward, this is likely the best decision.

Here’s how I interpret everyone’s position:

Apple’s Argument

One of the undeniable perks behind H.264 right now is that there is hardware decoding available and used on on certain devices. One of the most notable is the iPhone. Using hardware decoding means your not using the CPU which results in better performance, and most importantly better battery life.

Thus far there’s no hardware Theora decoder on the market (if you know of any let me know, my research says none), which I suspect is why Apple is hesitant to jump on board. Until there’s hardware that’s proven to perform well, be cost-effective in the quantities Apple needs, and not be bombarded with patent infringement claims, I suspect they’d rather settle with H.264. The patent part is critical. Apple can update software to comply with patent wars pretty quickly, as many other companies have done with software in the past. Hardware is not so easy. Last minute hardware changes are harder to deal with than software because of the many things it impacts, and the inability to update at a later date.

I’m almost positive the lack of hardware support is the exact same reason Apple has been so against Flash support. Remember the YouTube application isn’t using VP6 like regular flash, it’s using H.264 (that’s why it took so long for all of YouTube to be available on the iPhone).

If there’s enough Theora content out there, there will likely be Theora decoder hardware made to meet market demand. To get to this point will be difficult with the amount of VP6 (Flash) and H.264 content already on the web. H.264 alone has a major head start in applications. VP6 has several years of video on the web now (and I still don’t think it has a hardware decoder on the market though that might be due to licensing again).

In the long run, I think mobile technology will improve enough to make this a somewhat unnecessary constraint. Mobile CPU’s and GPU’s are just starting to get to the caliber needed for video. Performance per watt should improve. Battery technology is just starting to get pushed to the limits. This is a good thing for Theora in the long run, but the question is how long?

Until it can be played with minimal impact on battery life, I don’t think any company who has a heavy investment in mobile will want to jump on board.

Google’s Argument

Google has money and can license H.264. Shocker. Google however has trouble when it comes to Chromium. I suspect Google doesn’t care too much about which way this goes since what they support in Chrome doesn’t mandate that YouTube support it. However if the encoding quality for a given bitrate is good enough, it becomes a viable option.

Regarding the quality argument, I’ll simply point to this comparison. I the quality today is comparable already, and likely to get better as the encoders improve. I’ll leave this discussion here.

Opera’s Argument

Opera says H.264 is to expensive to license. I don’t know what the costs are, and what they would be for Opera, but I’ll take their word on it. After all, the do have a product available for free download. While commercial and closed source, they don’t have Google’s revenue stream and I respect that.

Mozilla’s Argument

Mozilla can’t license for downstream Gecko use etc. I’m sure a good part of the argument is also that requiring licensing fees to use <video/> is bad for the web and open source. I agree.

Microsoft’s Argument

No comment. Historically they implemented <marquee/> but not the <blink/>. Make of that what you will.

<video/> could be supported by plugin if needed. I recall Adobe supporting SVG by plugin a few years ago.

Where to go from here?

I think there are a few possible outcomes. As for what I think are the most likely:

  1. There’s a push for hardware decoding that makes Theora on mobile technically possible and working well. If Apple legally is satisfied and jumps on board that changes the game. As I stated earlier I think Google is mostly ambivalent since they support both right now. Opera doesn’t want H.264 anyway, so they are cool. IE 8 can likely be handled by a plugin. Apple really is the deciding factor. Theora is the future.
  2. See what the web does. I suspect at least for a long while the web will just stick with Flash since it works on almost all desktops. For mobile the iPhone and Android make up pretty much the bulk of the mobile video market and that doesn’t look like it’s changing so fast. Content providers that want mobile will encode for mobile. That means 3 target platforms, not ideal but reasonable. H.264 and whatever Adobe adopts is the future.

I know how the media is interpreting all of this. How do other developers, and open source folks see it?

Microsoft Cutting Back On IE?

Asa pointed out an interesting CNBC piece regarding cutbacks in what looks like contractors on the IE team:

One of the units already seeing cutbacks is Microsoft’s sagging browser business. A report in the Seattle Times says 180 contract workers were told last month that their services would not be renewed. Just yesterday, researcher Net Applications reported that Microsoft’s Internet Explorer browser registered 68 percent market share in December, down from 74 percent in May.

If this is true, and I think it is likely as CNBC is a rather reputable source of business news, I predict Trident’s days are numbered. As I pointed out back in November, Balmer suggested they might look at WebKit. I should note I do not think this will have any impact on IE 8, which is nearly complete. They could of course choose Gecko which would save them from needing to work with Google and Apple (which might freak out some government regulators).

The other very real option is to either license Opera’s Presto engine, or simply buy Opera which would give them some strength in the mobile market. I think Microsoft would prefer to buy simply because of the mobile implications. Opera has a decent foothold in the mobile market. They would still have the expense of developing a rendering engine but instead of playing catch up they would be much more “ready to play”. This would save them the overhead expenses of trying to cram several years of development to simply catch up to the other browsers. Since Presto is proprietary they still can utilize their other proprietary technologies without leaking any code to the open source community. As I said in the past, keeping things proprietary is important to Microsoft’s web strategy.

Poor standards compliant, performance, bugs lingering for years, security issues, are all issues that have plagued this rendering engine. The final nail in the coffin might end up being a recession and the need to cut costs.

Of course it’s possible Microsoft may not be renewing these contractors since IE 8 is nearly done and it will simply slow down IE 9 development, but I don’t think it’s likely considering the speed the competitors are going. I don’t think Microsoft will fall asleep at the wheel a second time.

So I’d like to adjust my statements back in November regarding Microsoft’s use of WebKit. I said before that it was unlikely. If this news is true, I think it’s becomes very realistic they will drop Trident. Maybe it really is as busted internally as we’ve all suspected for years.

There will still be fierce competition between WebKit, Gecko, and Presto regardless of what happens. Innovation and competition are essential to a healthy internet. This in fact makes it much more competitive since the one in last place in terms of supporting the latest in standards would suddenly catch up overnight.

Enough speculation for now. Lets see what turns out to be fact, and what turns out to be CompSci Fiction.

Edit [1/3/2009 @ 9:40 PM EST]:: Via Asa, apparently the layoffs were actually the MSN Homepages team, not the IE team as CNBC suggested.

Google Gears For Safari And Other Browser Addons

Google today released a beta of Google Gears for Safari. Still no iPhone support, but that’s not likely due to Apple’s rather restrictive licensing rather than technical reasons. It’s good to see them keeping true to their original efforts to support all platforms equally. That’s been a gripe of mine recently.

With Google creating Gears for all browsers, Apple creating QuickTime on all browsers, Mozilla creating <canvas /> support for IE, Microsoft creating Silverlight and Windows Media Player for all browsers (though Mac users are through Flip4Mac) it creates an interesting web of technologies. Everyone is starting to fill holes on other platforms. The downside to this is that users need to download multiple components for a good web experience. That is still a major concern for the future of the web. It’s not all about licensing.

Rebreaking The Web

It’s happening again. Once upon a time, browser vendors started adding their own features without consulting with each other and agreeing upon standards. What they created was a giant mess of inconsistencies across browsers and platforms that is still in effect today. Ask any web developer and they can tell you of the pains that they have suffered trying to make seemingly trivial things work everywhere consistently. It’s no easy task. Before IE 7, even an ajax required something along the lines of:

var httpRequest;
if (window.XMLHttpRequest) { // Mozilla, Safari, …
    httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

That’s right, IE 6 didn’t support the native xmlHttpRequest object (more here). This is just one of many examples in JavaScript and CSS. document.all anyone?

The end result of this problem became to be known as the “Web Standards” movement. Simply put it’s an idea that code should follow a standard that results in consistent output across all browsers on various platforms. Write once, run anywhere. While it’s taken years for this to manifest, it’s slowly become a reality. Firefox, Safari, Opera have fairly consistent rendering (at least in comparison to the mess of just a few years ago on the browser scene. IE 6 was fairly poor in terms of modern web development, but IE 7 made progress, and IE 8 is Microsoft’s greatest effort to date to bring their browser up to speed.

Continue reading

Blocking Firefox

There’s recently been a lot of buzz about a list of sites that make Firefox sad. Having written reporter, I’ve done a fair amount of monitoring in this area over the past few years. Overall I think the scope of sites that still block certain browsers/OS is declining. By scope I mean quantity of sites/popularity of sites. More and more often the sites are less and less popular sites. Often they are either financial institutions (known for being the last to update their tech) or media related (and dependent on Microsoft Windows Media DRM). That’s not to say the landscape doesn’t need to improve. From where I sit, it says the landscape is improving. More and more websites are realizing the need to work anywhere. No site is happy with a 5% drop in traffic. That means they can’t afford to ignore a browser with even more market share.

Things are looking a little brighter. While it’s still not good for the web, Silverlight and Flash seem to encourage much more compatibility across browsers/platforms than Windows Media Player ever has. Flash has been a major win for Firefox. Flash is rather consistent across browsers making it a popular choice for media (think YouTube). It’s leveled the playing field, since lets face it, Windows Media historically has been lacking in Firefox, though recently improving. On Mac OS X it is awful at best. h.264 support will make Flash even more attractive to content providers in the near future who are still holding out because of quality.

An interesting point made by that list is a lot of sites are “IE only” because of buggy navigation menu’s, typically due to flyout and drop down menu’s. It really is too bad. Most of those implementations aren’t even search engine friendly (they often store the entire navigation in a JS array). You’d think that would be incentive enough to change.

So those are my somewhat random thoughts on the topic for the moment.

On a sidenote, other content of the site includes a how to on Firefox pencils that look pretty cool.

Firefox Tip: Import Later

Were you someone who just wanted to try Firefox, and ended up keeping it? I know some people decided not to import their IE settings and since regret that because they had bookmarks they wanted to keep. Well don’t worry, you can still import them. Just go to the “File” menu and select “Import…” the wizard will guide you to importing your bookmarks/settings from your old browser into Firefox. It will take under a minute.

IE Table Border Bug?

I encountered this the other day. Firefox, Safari and Opera do what I expected and believe to be correct. I’m curious if anyone can explain this, or knows of a workaround that “doesn’t suck”. Take the following testcase:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang="en">
 <head>
    <title>IE Table Border Bug</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style type="text/css">
        table {
            background-color: green;
            border-collapse: collapse;
            border-spacing: 0px;
        }
        table td {
            width: 100px;
            border-bottom: 3px solid red;
        }
            table td.strip {
            background-color: #fff;
            border-bottom: 3px solid #fff;
        }
    </style>
</meta></head>
<body>
<table>
       <tr>
           <td> Test</td>
           <td class="strip"> Test</td>
           <td> Test</td>
       </tr>
 
</table>
</body>
</html>

Example

Pay attention to the bottom border. Should be flush with the green cells.

Firefox 2.0

Firefox Render

Close Up:
Firefox Render (Close Up)

IE 6

IE Render

Close Up:
IE Render (Close Up)

IE 7

IE7 Render

Close Up:
IE7 Render (Close Up)

Strange, but interesting. Excuse the poor quality of the screenshots. I cut these up really quick. Perhaps this weekend I’ll do a nicer job.