Progressive JPGs and IE

December 5th, 2008

Stoyan Stefanov from the Exceptional Performance team at Yahoo! published Part 4 of his Image Optimization series on the Yahoo! User Interface (YUI) Blog. He reports on interesting research into the relative optimization characteristics between baseline JPGs and progressive JPGs. It’s interesting to this blog’s readers because he discloses that IE does not render progressive jpgs progressively, instead waiting until the full source is downloaded before displaying the image. Since Mr. Stefanov’s research shows that progressives are often lighter weight than baseline jpgs its probably best to use them regardless of IEs peculiar behavior.

Opera 10 Alpha Released

December 4th, 2008

Opera 10 is the first release benefitting from their new Presto 2.2 engine. (Presto is Opera’s engine, as WebKit powers Safari and Gecko powers Firefox.)

There are a few new user interface features (spell checking, an option to automatically download and install future version updates, and changes to its emailing functionality), and changes to assist developers (improved and altered transparency capabilities, improvements to their Dragonfly developer toolkit), but the majority of the noteworthy items in this alpha release have to do with the rendering engine and overall speed.

You can learn more and download it here: http://www.opera.com/browser/next/

From the Future: HTML 5 Parser

December 4th, 2008

The WHATWG HTML Draft Recommendation has § 8.2 Parsing HTML documents that “only applies to user agents, data mining tools, and conformance checkers.” However, this matters to all of us because it takes implementations of a spec to forward the spec.

Error handling is a large part of parsing:

This specification defines the parsing rules for HTML documents, whether they are syntactically correct or not. Certain points in the parsing algorithm are said to be parse errors. The error handling for parse errors is well-defined: user agents must either act as described below when encountering such problems, or must abort processing at the first error that they encounter for which they do not wish to apply the rules described below.

Anyways, I’m writing about this because Henri Sivonen has a “preliminary build” of the HTML 5 parser for Gecko, which is celebrated as “a step out of the vaporware land” for this effort. It’s admittedly early going and not consumer friendly yet, but for those of us that care about the future of browsers this is a definitely important step.

The famous and respected Sam Ruby discusses it more intelligently than I can hope to:

Henri’s approach is interesting. He starts from a single source, in Java. The Java code can be compiled to Java byte codes, JavaScript source, or C++ presumably making use of Mozilla libraries for things such as memory management. If he can do that, it seems to me to be a rather small leap from there to producing C++ using, say, either Ruby or Python libraries for memory management, as well as a thin binding to the language. C# would also be a reasonable target.

For the more adventurous, follow along with some of the comments to Sam’s post. Some nicely techie things discussed.

Congrats to Songbird on Reaching 1.0

December 4th, 2008

Finish Line

Songbird is an open-source customizable music player that’s under active development. Their stated goal is “creating a non-proprietary, cross platform, extensible tool that will help enable new ways to playback, manage, and discover music.” I’ve reporting their graduation from “beta” on this blog because Songbird is a browser at heart: it’s guts are the Mozilla Gecko engine.

I’ve been using it for a while now — at least for browsing MP3 blogs and the like — and it’s impressive and fun to use. Plus, it’s just super cool that it’s Gecko.

IE8 - Now with “Crowd-Sourced” Compatibility Mode Toggling

December 4th, 2008

The IE Blog has an important new post tonight discussion the “compatibility-view” improvements coming with IE8.

The next public update of IE8 (for Windows Vista- and Windows XP-based operating systems as well as the Windows 7 Beta) includes improvements to Compatibility View that help end-users when they visit web sites that are not yet ready for IE8’s new, more standards-compliant defaults.

Here’s the short background:

In IE8 Beta 1 the newest standards-based rendering was the default view. It was left up to site authors to trigger into the compat mode as needed. While reserving judgement on whether that was the right strategy, it’s fairly obvious that sites that aren’t up to standards are often sites without attentive staff on hand to throw the trigger. So users suffered.

In IE8 Beta 2, they added a “compat view” button to the browser’s button bar. Now, “savvy end-users” could drop into compat mode as needed. Unfortunately, again, it’s the non-savvy users most at risk of suffering a poor user experience. They don’t know to click the button.

Even though many sites have taken the last several months to update their code bases to be ready for IE8, MS’s data shows that many major sites are still at risk. Furthermore, “We could also see from our instrumentation that not all IE8 visitors to those sites were clicking the Compatibility View button. So, large groups of people were having a less than great experience because they weren’t aware of the manual steps required to make certain sites work.”

Which brings us to tonight’s post. When users install IE they will be able to opt-in to what I’m calling “crowd-sourced compat mode toggling”

The system has some nice design elements. In addition to monitoring overall popular sites for user behavior they’re also maintain regional (and presumably segmentation) lists of top sites so that the Top N sites (they can’t track all sites) globally don’t drowned out popular regional sites.

Another positive: They indicate that sites will be able to opt-out of this program if they wish.

On the negative side, it seems that “site” is only at the top-level-domain granularity. I suspect they’ll want to revisit this because some large networks have very diverse subdomain properties. One size doesn’t fit all in this case. (Perhaps they could look at the scope of the cookies set by the domain?)

Another potential negative is that it seems like they’ll only be pushing the list out every two months. That’s awfully slow it seems.

All in all, not a bad idea. We’ll see how the implementation details play out.

Adobe Labs: Meermeer, Cross-Browser Testing Tool as Service

December 3rd, 2008

SitePoint’s Josh Cantone has news and screenshots from an upcoming Adobe product/extension/service called currently called Meermeer that he says “will completely make Browsershots.org obsolete.”

Meermeer simplifies the process by letting developers send local code to the Meermeer server and almost instantly receive back screenshots of that page rendered in different browsers and on different operating systems, with no need to go live with the code.

Firefox Offers a China Edition

December 3rd, 2008

It’s long been know within large web companies and elsewhere that web users in Asia use web sites and web tools in some ways that can vary greatly from their counterparts in The West. Mozilla recently shared some of their finding when announcing the release of their new China Addition of their Firefox browser:

> In the U.S. and Europe, web surfers are leaning forward, one hand on the mouse and the other on the keyboard, typing and mousing equally. In China, however, the process is much different. Web surfers there tend to lean back from the monitor while keeping one hand on the mouse, the other hand dangling. The keyboard is used much less frequently as much of the navigation is done with clicks instead.

The new version of Firefox, Firefox China Addition (beta) includes at least four interesting differences:

Read the rest of this entry »

Firefox for Kids

December 3rd, 2008

The recently-released Firefox extension KidZui transforms Firefox into a kid-safe and kid-friendly environment overflowing with appropriate content and features:

KidZui is a Firefox add-on that with one click turns Firefox into a kid-safe environment with over a million kid-friendly websites, games, pictures, and YouTube videos. Real parents and teachers review content for KidZui so your kids can surf independently.

BrowserMob Open for Business

December 3rd, 2008

BrowserMob uses networks of real browsers around the world to provide more authentic load testing than simulation. Leveraging Selenium it allows recording. They’ve used cloud computing services like Amazon’s Web Services to keep costs down.

From their announcement:

BrowserMob is the world’s first load testing service that uses real browsers (Firefox 3.0.3 to be exact). It’s on-demand, low-cost, and super easy to get started with. And best of all: you only have to pay for what you use.

Read all about it: http://blog.browsermob.com/2008/11/open-for-business/

Chromium Developer Documentation about Extensions ‎

December 3rd, 2008

The Chrome browser project, codenamed Chromium, has released documentation on its upcoming Extensions mechanism. There’s discussion of the project statement, the seven goals of the extension system (Webby, Rich, General, Maintainable, Stable, Secure, Open), and common use cases prior to disclosing their current proposal. Here’s the top-line proposal:

We should start by building the infrastructure for an extension system that can support different types of extensibility. The system should be able to support an open-ended list of APIs over time, such as toolbars, sidebars, content scripts (for Greasemonkey-like functionality), and content filtering (for parental filters, malware filters, or adblock-like functionality). Some APIs will require privileges that must be granted, such as “access to the history database” or “access to mail.google.com”.

Extension components will typically be implemented using web technologies like HTML, JavaScript and CSS with a few extra extension APIs that we design. Extensions will run in their own origin, separate from any web content, and will run in their own process (with the exception of content scripts, which must run in the same process as the web page they are modifying). Some form of native code components may also be supported, but the goal is to minimize the need for this in extensions.

Read the full proposal and follow the project at dev.chromium.org.