Building Chromium

I’ve successfully downloaded the Chromium source and completed a successful build:

The source is delivered as a Visual Studio 2005 solution, making it relatively straightforward for Windows developers who have this installed. You also need the Windows SDK, but other than that there are few dependencies.

Chromium is not quite the same as Google Chrome. The logo is shades of blue, rather than Chrome’s red green and yellow, and the word Google does not appear at top right in the title bar. If you squint carefully, you can also see that it is a later build: instead of Chrome’s – both at the time of writing.

Oh, and I believe you can download and build without agreeing the onerous Google EULA that is attracting some discussion.

Flash and Silverlight are the Chrome losers, says Zoho boss

Zoho CEO Sridhar Vembu makes an interesting statement in an email he has circulated following the launch of Google Chrome:

The biggest losers in Google’s announcement are not really competing browsers, but competing rich client engines like Flash and Silverlight. As Javascript advances rapidly, it inevitably encroaches on the territory currently held by Flash. Native browser video is likely the last nail in the coffin — and Google needs native browser-based video for its own YouTube; so we can be confident Google Chrome and Firefox will both have native video support, with Javascript-accessible VOM (video object model) APIs for web applications to manipulate video. As for Silverlight, let me just say that if Silverlight is the future of web computing, companies like us might as well find another line of work — and I suspect Google and Yahoo probably see it the same way too.

These last weeks have not been good for Adobe. First there was the Harmony announcement, sidelining the Adobe/Mozilla Tamarin project and making Adobe’s ActionScript 3.0 look more proprietary. Now there is Chrome; and I’m inclined to agree with Vembu, that Google will try to move away from Flash dependency. If that is right, then neither Google, nor Microsoft, nor Apple wants to play the Flash game.

As for Silverlight, I see this more as a Microsoft platform solution, extending its reach beyond the Windows client. I doubt it will be much affected by Chrome, though Vembu is right in saying that the more capable the browser becomes, the less necessity there is for something like Silverlight.

What about Zoho itself? I would take it more seriously if it were not so desperately slow whenever I give it a try, in contrast to Google’s usually responsive servers. It may be better in the USA, or perhaps there is some other reason, but for me the performance just kills it.

Counting primes in Google Chrome

A while back I put together a quick prime counting test for Flash and Silverlight.

As someone noted, this test runs remarkably fast in Chrome, thanks to the V8 JavaScript engine.

Here’s the JavaScript version of the test – note that you cannot easily run this in IE or Firefox for larger values, because the script times out, though you can configure your browser to prevent this.

Here are my figures on Vista (lower is better):

  1. Microsoft Silverlight 2.0 beta 2: 0.464 secs
  2. JavaScript Google Chrome: 1.4 secs
  3. Adobe Flash: 1.667 secs
  4. JavaScript Mozilla Firefox 3: 6.046 secs
  5. JavaScript Microsoft IE7: 11.916 secs

I can’t easily test IE8 as I have it installed in a virtual machine.

Google Chrome: the developer angle

The real purpose of Chrome is to run web applications. Google would like it to be Google applications, of course. Here’s a few things I noticed.

1. The V8 Javascript engine in Chrome is really fast – thanks to just-in-time compilation and other optimizations. This is important, because it removes some of the advantages of plug-ins such as Flash and Silverlight, which also do just-in-time compilation.

2. Chrome includes Gears, which enables offline functionality and other useful services, like a local database engine.

3. This is really part of Gears; but it’s worth noting separately. The Gears Desktop API lets you create application shortcuts – without further permission, apparently. In Chrome this is surfaced as a Create application shortcut dialog:

Note that this is a browser dialog, not a web page dialog.

Why is this a big deal? Well, I recall Adobe’s Kevin Lynch telling me that the usability issue around navigating to an URL in order to run an application was one of the motivations behind the development of AIR, Flash on the desktop. Google reckons it is easier to deal with the usability issue, than to create a separate desktop runtime.

4. Web applications started from shortcuts have no browser furniture. Just the web page in a window. There are probably other ways to get this effect too. I noticed that if you type Ctrl-T while in one of these full-window Chrome pages, which normally starts a new tab, it actually opens a second Chrome window, not just a new tab. Google wants that shortcut to behave like an application, not like a web browser.

Technorati tags: , , ,

Chrome browser memory usage: a good start

If you go to the special url about:memory in Google Chrome, you get a summary of memory usage in all your running browsers, not just Chrome. I tried the following test:

1. Close all browsers.

2. Reopen all browsers – IE7, Chrome, Firefox, Safari – navigate to

3. Open the Chrome memory status page:

There are figures for virtual memory as well; I’ve truncated them to make the image fit better. Chrome is easily the smallest. blank in Google Chrome browser history

Google Chrome is available for download. I’ve done it in fact; very smooth install. It looks like the company is serious about getting this widely deployed quickly, despite its beta status – there’s a download link on the Google home page – must be important to break the 28 words rule.

Chrome shows your “most visited” sites as a kind of home page. I was amused to see that shows up here as blank:

No doubt there is a good technical reason. People used to say “DOS Ain’t Done until Lotus won’t run”; and that was not true either.

Update: Honesty compels me to admit that the Microsoft snapshot eventually filled in. Still, it is not much better:

The problem is that the central Silverlight panel is failing to load; the main site looks like this in Chrome as well. OK, so Silverlight doesn’t support Chrome. But Microsoft no doubt has something better than a blank panel for incompatible browsers. Was it warned in advance about the advent of Chrome? Was anyone? I know this is WebKit and that what works in Safari should work here; but we all know that browser compatibility is complex. Still, it is entertaining.

Further update: It looks the same in Safari on Windows! I should explain that there is some more stuff to the right and below the empty panel; but the empty sky background occupies the main part of the page.

To get the full picture, I visited the page with FireFox on Linux:


This looks better, but it’s a tease. It has a link to download Silverlight; if you follow it, it eventually reveals that your browser or operating system is unsupported. Sloppy Microsoft; Google exonerated.

More on Chrome soon, no doubt.

Technorati tags: ,

It is time we stopped talking about Rich Internet Applications

I have a couple of posts on a new blog aimed at IT Professionals:

Delphi: a secret weapon for Windows developers

Is Adobe Flex and Air in your future?

The latter post is already out of date, following Google’s Chrome announcement. In it, I summarize the different approach to Rich Internet Applications, and argue that rather than discussing RIAs we should simply talk about the next generation of the client. I noted that “Google and Mozilla are also stretching browser technology”; now that we have Chrome this looks like a full-on battle.

Technorati tags: , , , , , ,

10 things you might not have known about XAML

I’ve written a short piece on XAML for the Register. Here’s a few things you might not have known about Microsoft’s Extensible Application Markup Language:

1. It is not just for WPF (Windows Presentation Foundation); it is also used as a language for Workflow Foundation (WF). Microsoft has hinted that we will see more XAML applications announced at the forthcoming PDC.

2. XAML doesn’t have to be XML – see the intro to the XAML Object Mapping Specification 2006, which says that “any physical representation may be used.”

3. XAML is a small core and distinct from XAML vocabularies. The huge WPF is a XAML vocabulary. WF is another vocabulary.

4. Although XAML is usually represented as XML, it is near-impossible to create an XML Schema to validate it usefully. Here’s where Microsoft explains why.

5. In Visual Studio 2005, a huge but imperfect .xsd schema file was used for validation and to drive IntelliSense (things like code completion) in the XAML editor. In Visual Studio 2008 Microsoft abandoned that idea and uses a language service instead.

6. The core idea behind XAML is to be a declarative language for .NET. WPF is merely an early application for XAML.

7. XPS, Microsoft’s fixed-layout language that competes (just about) with Adobe’s PDF, uses XAML that is a subset of WPF. This means that you can actually display XPS documents in Silverlight – there’s no need for a viewer, it is native Silverlight code.

8. When you compile a Silverlight application, the XAML stays as XAML, albeit bundled into a resource.

9. Silverlight allows you to write inline XAML within HTML.

10. XAML rhymes with Camel. Sorry, you knew that already. But did you know that CAML (Compiled Application Markup Language) is XAML compiled to MSIL (Microsoft Intermediate Language)? Microsoft tested this idea in pre-release versions of WPF, but apparently the performance benefits were disappointing and it was less compact than BAML (Binary Application Markup Language), a tokenized representation of XAML. Silverlight doesn’t bother with either: XAML is saved as a resource in a .NET DLL, and then zipped as part of the .XAP package by which a Silverlight application is delivered.

Technorati tags: , , , ,

The new Google Chrome browser: a bad day for Firefox

The Firefox angle is what puzzles me about Google’s announcement that it is is launching a new open source browser. We should get to try it tomorrow; perhaps we’ll see that Google is successfully reinventing the browser. In particular, this is a part of what is sometimes dubbed the Google OS: the client for cloud applications running on Google’s servers:

Under the hood, we were able to build the foundation of a browser that runs today’s complex web applications much better.

Google is using some proven technology in the form of the Webkit rendering component (as used in Apple’s Safari). I imagine it can do a decent job. But why? From Google’s perspective, the browser market was shaping up nicely already. Microsoft’s IE has a still large but declining market share; Mozilla Firefox is growing, has a vibrant community, and relies on Google for the bulk of its income in return for making it  the default search engine – a deal which has just been extended for three years.

Now Google appears to be going head-to-head against Firefox. It won’t necessarily succeed; Firefox has lots of momentum and will be hard to shift. Equally, I doubt that Microsoft’s market share will decline significantly faster against a Google browser than it would anyway against Firefox.

The risk is that this will split the open source community.

As for Firefox, this can only be bad news. It has the embarrassment of relying on a major competitor for its income, and the knowledge that it is driving traffic to a company that will push users to switch to an alternative.

Maybe Google Chrome is so good that it will all make sense when we get to try it. For sure, it is an intriguing development for web applications and I’m looking forward to seeing how well Google can substantiate its claims that it is “much better” for the job of running them.

Don’t tell me to turn off Vista’s UAC

I’ve been looking at music servers and music ripping software, and came across Ripfactory Micro, a fast and easy to use solution.

Unfortunately when I ran it on Vista it came up with this message:

Then it exits. I looked at the support pages and found that this is a documented problem:

If you are trying to run our software on Vista and get an "Unable to enable autorun" message, you have to turn off the User Account Control (UAC) as the program requires access to a registry key to determine autoinsert status.

It’s true. I checked using Systernals Process Monitor. The app asks for access to HKLM\System\CurrentControlSet\Services\cdrom\autorun. If it finds it disabled, it throws up this dialog:

This is such nonsense.

First, if the app finds autorun enabled it doesn’t need write access; and read access comes by default, so why break the app on Vista for this?

Second, there is no need to disable User Account Control to run the app. You can either set it to run as administrator (right-click the shortcut, compatibility tab); or else grant the current user read-write access to that specific registry key – not ideal, but either of these would be better than disabling UAC.

Third, a support note like this should at least hint at the implications of disabling Vista’s primary security feature.

Otherwise the app seems to work well, faster then iTunes, and downloads cover art. I still prefer dbPowerAmp though, because it links to AccurateRip to check the integrity of your rip.

Technorati tags: , , ,