All posts by onlyconnect

H.264, AAC comes to Silverlight. Game over for VC-1?

Microsoft has announced that Silverlight will support the H.264 video standard “in a future version”, along with AAC for audio. H.264 is also used by Adobe Flash and has wide adoption across the industry; it’s likely that your HD video camera records to H.264, for example.

Good news for Silverlight, though it may be a while before we see this rolled out, but surely bad news for VC-1, Microsoft’s preferred video format and part of the Windows Media family. Why would anyone not standardize on H.264 now?

Defining cloud computing

I liked this post by Larry Dignan on the cloud computing buzzword and how meaningless it has become.

Writing on the subject recently, I was struck by the gulf between what some people mean – online apps like Google Apps and Gmail – and what others mean, on-demand utility computing such as that delivered by Amazon Elastic Compute Cloud or Flexiscale. These things have little in common.

Dignan has even more examples.

Should we abandon the term? Maybe, but I find it useful if only as shorthand for describing how the centre of gravity is shifting to the Internet.

Some services are more cloudy than others. Dignan refers to this Forrester report (though you’ll have to look at the blog post for the extracts, unless you want to buy it) which has a table of “six key characteristics.” I don’t agree with all of them; the business model, for example, is not an inherent part of cloud computing. I am interested in number two:

Accessible via Internet protocols from any computer

Any computer? OK, probably not the Atari ST which I have in the loft. Any computer with a web browser? What about requiring a “modern” web browser, is that OK? Java? Flash? Silverlight? A specific version of Java or Flash? What about when we need a runtime like Adobe AIR or Microsoft Live Mesh? What if it doesn’t run on Linux? Or on an Apple iPhone? What about when there is an offline component such as Google Gears? All these things narrow what is meant by “any computer”.

This is the old “rich versus reach” debate; it is still being played out. My point: cloud computing isn’t a boolean characteristic, but a continuum from very cloudy (NTP) to not cloudy at all (Microsoft Office).

Microsoft Oslo: a tool, a language, a repository

A couple of Microsofties are talking up the Oslo launch at the forthcoming PDC. “Oslo” is what Microsoft sees as the next generation of software development – I think.

Don Box and Douglas Purdy have just posted their own definitions. They should know, they’re working on it.

Box says:

With Oslo, we’re doing two things:

1. We’re making it easier for people to write things down in ways that make sense for the domain they are working in – the common term for this in the wild is modeling.

2. We’re making the things people wrote down accessible to platform components during program execution.

Purdy:

we have boiled down Oslo to three very simple things:

  • A tool that helps people define and interact with models in a rich and visual manner
  • A language that helps people create and use textual domain-specific languages and data models
  • A relational repository that makes models available to both tools and platform components

There will be a CTP for us all to try at PDC.

The last time the industry tried this I believe it was called UML 2.0; it excited a lot of theoreticians but made little impact on real-world application development. I’m sceptical about Oslo too; but let’s acknowledge at least that the goal is a worthy one.

Having said that, what do you think about this remark from Purdy:

For me personally, Oslo is the first step in my vision “to make everyone a programmer (even if they don’t know it)”.

I’m sorry, that “everyone a programmer” line brings to mind spaghetti-macros in Excel or some of those unmaintainable Access and Visual Basic applications which you still see sometimes if you hang around small businesses.

Still, there is a costly divide in development, which is to do with the fact that A is an expert is some particular field, B is a programmer; and somehow A’s expertise has to be expressed in B’s code. I think this is about bridging that gap.

Technorati tags: , , ,

Streaming FLAC from Linux to a PlayStation 3

The digital home is in an anarchic phase right now. The general public has woken up to the idea of a home music server, and I’m seeing this widely discussed in all sorts of forums, but there are several competing standards and plenty of things that don’t quite work. Getting a seamless and satisfactory experience everywhere including desktop computers, portable devices and in the living room can still be a challenge.

For myself I’ve experimented with a number of setups, including Apple iTunes, Microsoft Windows Media Center, and Logitech SqueezeCenter. My interest is mainly in music rather than video; and I’ve settled for the moment on a Linux server running Ubuntu and SqueezeCenter, with CDs ripped to FLAC. I like FLAC because it is open source and lossless, which I hope means I won’t ever have to rip the CDs again; unlike lossy formats FLAC can be converted to other file types if necessary without compromise.

SqueezeCenter works great with Logitech’s Squeezebox, as you’d expect. The Squeezebox goes anywhere in the house, plugs into a hi-fi, and lets you select music either with a remote, or using a web UI on any device with a web browser, or using Logitech’s Duet smart remote. But a Squeezebox is expensive: what if you want access to the music server in more than one room? Well, you can play music from SqueezeCenter on any PC that can play an MP3 stream, but it is a bit fiddly. What about using a games console like a PlayStation 3 or Xbox 360?

This has been a spare-time project for me for some time. There are actually a zillion ways to stream music to a PS3 or Xbox 360, and some of them actually work. SqueezeCenter isn’t one of them; but there is no problem using other servers which access the same files. My own choices are somewhat limited, as I want something that runs on Linux and works with FLAC. Neither PS3 or Xbox plays FLAC natively, so the server has to transcode on the fly to a format the console can play.

My first stop was Fuppes, a strong project that in theory does exactly what I need. Fuppes is a DLNA server, which is the nearest thing to an agreed standard in this area, though not supported by Apple (why not?). I believe Fuppes would be fine if I stored music as MP3, but the transcoding aspect seems problematic. It used to mostly work on the PS3, but after a Sony firmware update I got nothing but “unsupported data” messages, and I never got it working on the 360, despite playing with many different builds and configuration options.

This weekend I tried Mediatomb instead, another Linux DLNA server with transcoding support. It was the usual Linux circus. I prefer to use standard packages where possible, and I noticed that Mediatomb has an official package for Ubuntu 8.04 “Hardy Heron”. My server was on 7.10 “Gutsy Gibbon”, so this seemed a good reason to upgrade. Did the upgrade easily enough, then installed Mediatomb. It took an age to index my FLAC files, following which I went to the PS3 and tried it. No go; “Unsupported data”.

Then I looked at this thread.  This informed me that the PS3 needs a big endian PCM stream; and further, that the version in the Ubuntu repository does not work. So I removed it; downloaded the source with Subversion; compiled and installed; made the suggested configuration changes; and lo, it all works.

The good news is that performance is great, both in sound quality and in the speed of browsing the server. It is more responsive than a Windows Media Center from the PS3. The bad news is that the UI on the PS3 is basic. There is no search facility, you have to scroll to find what you want. Another annoyance is that you cannot search for one song while playing another; as soon as you go back to searching, the music stops. Third gripe (maybe the fault of Mediatomb): everything is case-sensitive, so unless your tagging is perfect you might have several entries for the same artist. Still, it’s a big advance on Fuppes and nothing working at all.

Adobe’s Genesis: enterprise mashups wrapped in AIR

I’m not at the Office 2.0 conference, sadly, but fortunately for non-attendees the organizers have done a great job of making the content available online in a timely manner. Aside: I love the way this site includes social networking features, like the ability for users to comment on sessions beforehand, so that they can influence the content; and the way videos have appeared on the same day as they were presented.

One of the first things that caught my eye was Adobe’s Genesis. I watched the presentation by Matthias Zeller. As I understand it, Genesis is an AIR application plus online services, that enables enterprise mashups, organized into workspaces. AIR (Adobe Integrated Runtime) is a way of using the Flash runtime on the desktop.

What’s in a Genesis Workspace? A collection of “tiles”, actually Flex applets, which can hook into other enterprise or web applications. It is a good fit with SAAS (software as a service) providers such as Salesforce.com. There is also a web browser tile (presumably based on WebKit), enabling the inclusion of any browser application; and a file repository tile that contains documents, using some of the functionality we have already seen in Acrobat.com. The idea is that these workspaces are easily created using drag-and-drop. The real value comes when they are shared online, through Adobe’s hosted services, enabling communication and collaboration.

Zeller says the Genesis client will be free, with monetization coming from subscriptions to hosted services and tiles; third-parties will also be able to market tiles for the system. There is an online slideshow here.

This is only my brief first impression; please follow the links for more detail. I found it interesting on several levels: a new approach to the cloud; a business use for AIR; and also this comment in the presentation, “Adobe-quality aesthetics for the enterprise”.

What does not a valid win32 application mean? Say, with Chrome setup?

Browsing through my logs I see a ton of searches like this:

chrome setup.exe not valid win32

I’m not sure which part of this site they are hitting. Anyway, this is for you.

In my experience “not a valid win32 application” invariably means a corrupt executable. I’d guess that what has happened here is that your web browser did not download the entire setup file, but stopped half way. Internet Explorer is particularly bad in this respect: it tells you that a download is complete, when you can see that it is not because the download size is not what it should be. It usually happens when the connection is poor, either at your end, or because of a busy server. It beats me why browsers don’t make a basic check on the file size after download.

It can also happen with a CD or DVD install, if the disk is corrupt or the drive is failing; or if your hard drive is failing.

The usual solution is to re-download the file.

Technorati tags: , , ,

What happens to the browser market when Google plays the OEM card?

Here’s a bit of speculation. My initial thinking about Google Chrome was that it would mainly take market share from Firefox; and that while IE’s share may continue to erode, Chrome is unlikely to accelerate that much.

I’m beginning to change my mind. One factor is OEM installs. We all know what a huge influence default installs have on users, which is why software vendors are happy to pay the likes of Dell and HP for space on the desktop, or to be the default anti-virus engine, for example. This has often been to the detriment of the user’s experience overall, to the extent that it helped to damage Vista’s reputation, but that is an aside.

Now, one thing I’ve noticed is that Google’s toolbar often turns up by default in OEM installs of Windows. When you start up for the first time (or the first time for real, after all those reboots), IE confronts you with Google’s terms of service. However, I have not yet seen Firefox installed as the default web browser. I’ve presumed that Mozilla doesn’t quite have the financial muscle to do it, or maybe there are other reasons.

Google is a more formidable presence than Mozilla. What if Google buys browser share by being the default browser on machines from the leading OEMs? I suspect that would soon impact IE’s share. Microsoft cannot prevent it because of anti-trust constraints.

Since Chrome is in effect the new Google toolbar, this move strikes me as inevitable.

This would mainly impact the consumer and small business space. IE has some special advantages for enterprises, since it hooks in tightly to Microsoft’s software management tools, and there are further improvements to this aspect in IE8. The consumer/business separation is a leaky one so it could still have a big impact.

Technorati tags: , ,

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: 0.2.151.0 instead of Chrome’s 0.2.149.27 – 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.