All browsers created equal?!?

A statement that hasn’t been true since the release of Firefox 1.0 is now truer than ever. It’s shocking to think, but Microsoft have actually released a good browser (Internet Explorer 9). Now, as expected, this browser only runs on Windows (though they did drop support for Windows XP – due to it not supporting DirectX 10). This is fine, as I still wouldn’t use it, but it’s still a very good thing, as it means that non-technical people who never even thought to upgrade to Firefox/Chrome will have a good internet experience – And that’s a large part of the population. Once people start upgrading, web developers will be able to design much better websites that don’t have to conform to old, broken, IE6 non-standards. Even on some of my webpages, I have a check that says: Is this Internet Explorer? if so, do some stupid simple layout, else, do a cool layout (that’s too complicated for Internet Explorer to figure out). Now with IE9 this shouldn’t be a problem. So, while I wouldn’t use it, it’s still a great thing for everyone. To explain it another way, most web developers want to code a website that works across all web browsers. To do this, they have to only use the web-standards that everyone supports. If you used a feature that Firefox supported, but IE didn’t, you’d get a site that didn’t work on 50% of the population. Not practical. To put this in terms of numbers, there’s a web standards conformance test that everyone uses. It’s called the ACID test. It is basically a site that’s designed to see how well your browser conforms to HTML standards, and gives you a score out of 100. Go here to test out your browser.

Just to give you some idea of scores:

Previous versions (for comparison)
Firefox 3.0 – 71
Internet Explorer 8 – 20

Stable versions
Firefox 4.0 - 97
Internet Explorer 9 – 95
Chrome – 100
Opera – 100
Safari – 100

As you can see, All the current stable releases score >95. This is great, and a couple of points shouldn’t really matter. But, just look at Internet Explorer 8′s score of 20. It’s pathetic. (and to think that Internet Explorer 6 and 7 scored less!).

But what’s almost more surprising is how Firefox is losing marketshare (mostly to Google Chrome). I used to use Firefox for everything. But that’s because back then they were the best, and there weren’t so many options. Once Google Chrome came out, it wiped the floor with Firefox (speed-wise), and, more importantly, they have a lightning fast release cycle. They release a new version of their browser every 6 weeks. They have a really clever way of releasing too, they have a stable, beta, and developer version. Basically, and features that they want to add to the stable build, first get added to developer build. Gradually, they promote features from the developer build to beta, and then to stable. It’s a brilliant idea (and one that Mozilla is now going to copy with Firefox). This is exactly why Firefox has suffered recently. Lets say they add 50 new features for a new version of Firefox. What happens is 47 of those features are great, but the other 3 have some issues. The entire release gets delayed while those 3 remaining issues are worked out. With Chrome, the 47 working changes would get pushed quickly from the developer build to beta and then stable, while the 3 broken changes would stay in the developer build (with an optional flag to enable them). It just sounds so logical. Anyway, because Firefox pushes so many features per release, they are ALWAYS delayed. Something that has allowed Chrome to overtake them. Had you asked me 3 years ago, I would have told you that I’d never switch away from Firefox. Still, I always recommend Firefox to anyone who asks, as it’s got a lot more marketshare than Chrome, and web developers always make sure their site works well with it. If i’m taking an online test, or filling out an important government online form, I switch back to Firefox. Just in case.

I know the past is in the past, and technically now that Firefox 4 is out, it’s fairly comparable to Chrome, but it’s been lagging (particularly in speed) compared to Chrome for over 2 years. That’s a long time. Over those 2 years they’ve lost a lot of users (me included). Many of those users won’t switch back now. Lets hope they can copy some of the good ideas from Chrome and create more competition.

If any of you read browser tests (or benchmarks), you’ll hear the word ‘javascript speed’ tossed around. The inventor of javascript works for Mozilla, so you’d think that they’d do really well….. but you’d be wrong. They’ve been the slowest (not counting Microsot) for years. Microsoft’s IE9 actually beats Firefox 4, which is disappointing. Also of interest, Mozilla copied the javascript engine open source code from Webkit (Safari). So not surprisingly, their performance is going to be very similar to Safari. I asked a Mozilla developer why they chose to go this route. See my previous post here. I think they should have taken Google’s open source V8 code, but Mozilla claim that it was simpler to integrate Nitro.

As a separate, unrelated note, one thing I hate about Firefox is that they don’t prioritize Linux users. The Firefox 4 build has several features (GUI and hardware acceleration) that aren’t yet available in the Linux build. Very annoying. Luckily for me, Chrome does a great job on all 3 platforms. Google has a vested interested in Chrome on Linux because they’re developing ChromeOS (a netbook Operating System based on Linux)

are there updates available?

Everyone who knows me knows I love technology. I love everything about it. I especially like the fact that in the last few years most products can now receive updates. Computers always received updates, but not much else. Now I update everything. My computer’s BIOS, firmware for my hard drives, firmware for my TV and AVR (Receiver), my printer, and it goes without saying that I update my consoles, phone and desktop OS.
We live in a world where products can be improved for free and with little effort. Unfortunately there are a few downsides:

  1. Companies know that most people don’t update their hardware, so sometimes they have no incentive to make improvements.
  2. Companies sometimes deliberately ship products with buggy/slow software, because they know they can fix them later with an update.
  3. Updating software/firmware can sometimes cause regressions (meaning it can make your product worse/slower than before the update)
  4. Sometimes a company would rather you buy their next generation product, rather than give you the update for free.

I’ve seen all the the above situations. I have a really great WDTV Live media player.  I love it. It has a Sigma SMP8655 chip that has hardware accelerated decoding of everything.

Basically I just plug the device into the TV via HDMI, and then connect a hard drive (that has media) to it via USB. It plays everything. Pretty much any format and all resolutions upto 1080p. Possibly the thing I like best about it is how power efficient it is. It can decode a 1080p film using <5 watts. It goes to sleep when off, and wakes up in around 3 seconds. Unfortunately Western Digital has been pretty horrible with updates. The problem is, Western Digital have releases 6 different versions of the device. The first (WDTV) was a reasonably good media player. The second (WDTV Live), which added more memory, faster CPU, and an ethernet port (with support for youtube, pandora etc..), then a 2nd generation of the FIRST product (WDTV gen.2), then a crummy cheap version that doesn’t play HD (WDTV mini), then a product that’s IDENTICAL to the WDTV Live, but which also adds support for netflix (yes, they screwed all original owners forcing them to buy an entire new device). Now, they argue it wasn’t their fault, as they needed to use a slightly different version of the Sigma SMP8655 that allows encrypted netflix content, but seriously, they should have thought about this earlier, and used the right chip on the original device. You’d think I was done, but no, they just released yet ANOTHER device (WDTV Live Hub). This time with an internal hard drive.

Now, I have no problem with them releasing a new version if it’s substantially different (or improved), as they did by releasing a version with a hard drive, as it clearly caters to a different market (I personally don’t want an internal hard drive, I’d rather stream or connect my own). My problem is that they released the new version with a significantly better user interface. It’s way better. The device uses the exact same chip as the previous WDTV Live plus, so it would be very easy to port back the improvements. They didn’t, and I now hate them. There’s nothing worse than getting screwed for being an early adopter. It’s because people like me bought the original Western Digital devices that they’ve been making newer, better models, yet this is how they repay us?!

Now, I know what Western Digital would say. They’d say “We only have a small team working on media players, we can’t possibly release updates for all 6 products, and have to give our latest release priority.’

The problem is, their argument is fundamentally flawed. A company like Western Digital shouldn’t be making 6 very similar devices. They should be making 1 or possibly 2. Just think of how Apple does things. They’re (by comparison to Western Digital) HUGE, yet they have an extremely small portfolio. They make 1 media player, 1 phone. Now yes, they do make a few different iPods and laptops, but those models are substantially different. Massive differences in size, cost and features differentiate them. That is because the market requires it. Some people want the best laptop for $2000, others want a cheaper laptop etc… Some want a $1000 laptop, but I don’t believe for a second that there is a market for 6 different media players $70, $80, $100, $115, $150, $200. They should have just 2. A version with a hard drive, and a version without. I understand that a company will release new models (usually yearly), but when a company does that, they discontinue the old model, and only sell the new one. They are usually never meant to go head to head with the old model. The iPhone 4 doesn’t compete with the iPhone 3GS. Just look at the wikipedia page for the WDTV. Their models are released a few months apart. The other huge issue with this model is that they’re confusing customers. When someone buys an iPhone 4, they KNOW that the following year, the iPhone 5 will come out. There are no surprises. If WDTV had released a device and said “soon we’ll be releasing a 2nd device that adds this feature” then I’d be fine with it. But the WDTV Live device that I bought was supposed to be their flagship device. Still it does technically do the things I need it to, and has a great hacking community. On the one side, it’s unfortunate that a device built by a company with millions of dollar in R&D budget can be outdone by a couple of guys in their parents basement, but on the other side, I get a better product through hacking it, so why complain!

Yet another mobile phone

Those of you who know me know that a little over six months ago I started a new job at HP working on their Web Print Solutions team. Leaving my previous job at a startup meant giving up my old phone (Motorola Droid). It was a great phone. One that I’d only had for about five months. During the transition, I temporarily bought an old HTC T-Mobile G1 with a month to month plan. I had that for two months until HP got me a phone on their corporate plan. Working for such a huge company has many differences vs the average startup. First, they actually produce equipment that you use. Rather than buying everything from other companies, you can order many things from yourself (internally), and save a bunch of money. Because of this, if HP makes a version of something you want to buy, it’s usually expected that you get the HP version. Usually this doesn’t matter, as I don’t really care if my computer monitor is made by HP or someone else. There aren’t going to be too many differences. But, in the case of a mobile phone, the differences are huge. I was only given the option of one phone on one network. Unfortunately for me, the options were both bad. It uses the worst ‘smartphone’ operating system (OS), on the nation’s least reliable network. The reason for the lack of choice? HP builds their own phones, and have only released them for AT&T. It would obviously look pretty bad if HP employees didn’t use their own phones.  Now, as I’m sure you’re wondering, “why can HP force you to get a certain type of phone!” Obviously they can’t force you to buy a certain type of phone, but they can restrict what types of phones they give their employees. Due to my job, HP pays for my phone (and plan), so it’s only fair that they choose what it is. Thus, my only choice was to get an HP iPaq Glisten on AT&T.
I am a current HP employee, so I probably shouldn’t be too critical. But I’ll say one thing. They’re using Windows Mobile 6.5, and I believe Windows Mobile 6.5 to be truly terrible. HP, being mostly a hardware (and services) company didn’t have their own mobile OS. Most mobile OS’s aren’t for sale. Apple and RIM won’t licence out their OS for use on HP hardware. So really, there were only 3 options:

  1. Build their own OS
  2. Ship with a licensable OS, such as Windows Mobile (or, more recently, Android and Symbian)
  3. Buy a phone company that already owns its own mobile OS

Which did HP do? Well, they started out doing #2. The problem here is that they were entirely reliant on Microsoft to do a good job for them to have a successful product. As we all know, the iPhone came out a little over 3 years ago, and blew Windows Mobile out of the water. So HP was left with a huge problem. They had an inferior product because Microsoft had dropped the ball. By only controlling the hardware, HP could only do so much to compete against the iPhone (and more recently, Android), so it wasn’t their fault they had an inferior device. The solution? Either switch to Android, or buy a phone company. In July 2010 HP purchased Palm Inc. for $1.2b, thus giving them the very capable mobile OS named webOS, along with a whole bunch of useful patents. Now HP  controls both the hardware and software.

So, what does this all have to do with me? Well, since HP now owns Palm (and webOS), Palm phones are now on the approved list of devices for HP employees. This means that I’m now able to get a Palm prē + (in doing so, I’m also able to switch to Verizon Wireless, the best national carrier! hooray for no more dropped calls!). The choice was really a no-brainer. I was given the choice between the Palm Prē or Palm Pixi on either of the available carriers (Verizon, Sprint or AT&T). Obviously Verizon is the biggest/best carrier, and the Prē is clearly Palm’s flagship device (having a significantly superior CPU/GPU over the Pixi). Also worth noting is that the Palm Prē came out first on Sprint. 6 months later, it arrived on Verizon and AT&T with double the RAM and flash memory (512MB RAM and 16GB Flash), redubbed the Palm Prē plus. So by choosing Verizon I not only got the best network, but also the best version of the Prē.

So, how do I like it so far? While it’s obviously miles better than Windows Mobile, I do admit I’m still a fan of Android. Having said that, webOS is an extremely capable OS. To be honest, my major gripes with the phone are actually hardware (read: all easily fixable). The main issues I have with it are screen resolution (480×320, which is very last-gen), and the small screen (3.1″, also last-gen). With all recent Android devices being 3.7″ or bigger, with at least 800×480 resolution, this screen feels a little cramped. Also, the CPU feels a little underpowered. It’s the same CPU as in the original Droid (though it’s underclocked to 500Mhz). And the Droid has obviously since been replaced with the Droid 2. All recent Android smartphones have been coming out with 1Ghz CPUs, and having ‘just’ a 500Mhz CPU is noticeable. Still, two great things are the RAM and Flash storage. Both are as good as any other device on the market (with the exception of the $300 iPhone 32GB). The keyboard is decent, and usable despite being of the small portrait variety, rather than the more common landscape kind. Another downside is the fast that the touch screen is plastic (versus almost all modern smartphones that are now hardened or Gorilla glass).

I actually don’t have too many complaints for webOS. It’s an extremely polished OS with a great user interface (UI). It has clearly been designed to compete with the iPhone. In many ways it trumps it. Multitasking is perfect, and there are a number of great ideas and keyboard shortcuts. Cut/Copy/Paste is great, as is Synergy, webOS’s way of combining contacts from numerous sources such as Gmail, Facebook, Exchange and Yahoo.

The obviously downside to not having sold too many devices is the fact that the Palm App Catalog has only a small fraction of the apps that Android and iOS uers have, but, if HP can deliver great hardware in the coming months, users with flock to it, which will in turn bring developers.

The biggest loser in all of this is of course Microsoft. They’re had nothing good to compete with the iPhone for 3 1/2 years, and because of it they’ve lost HP, Motorola and most of HTC, as customers. Microsoft’s new mobile OS, Windows Phone 7 is set for release this month, which will be the first time Microsoft officially supports capacitive touch screens (disgraceful huh?). Honestly, how does a company with a research and development budget the size of Microsoft’s take 3 1/2 years to catch up with Apple?
I’ll tell you why. Some companies, such as Apple and Google are creative companies. They create something better because they can. Microsoft, being the dominant player in most markets doesn’t need to take such risks. They merely need to maintain what they have without taking too many risks. Then, if a competitor releases a significantly superior product, Microsoft has time to ‘play catchup.’ Obviously this isn’t good for the consumer, as we’re all reliant on the Apples and Googles of this world to provide innovation. I’m getting off topic here, but just ask yourselves why Microsoft fired the Internet Explorer team after they released Internet Explorer 6. Why? Because there was no competition, Netscape was dead. Why did they bring them back to create Internet Explorer 7 (many many years later), simply because Firefox was released. If Firefox had not been released, Microsoft would not have improved Internet Explorer 6. Ever. Ironically, I remember when Internet Explorer 7 was released. Mozilla (creators of Firefox) made the statement “Internet Explorer 7 is the best release we’ve ever made.” (obviously implying that the only reason IE 7 was released was because of the competition they’d created with Firefox).

Will Windows Phone 7 be good? Probably; but it had better be after almost 5 years in development. The problem is, I don’t want to use Microsoft products because you then become tied to a company that only innovates if they have to, rather than because they want to. I really believe that if the iPhone (and Android) had never been released, WP7 would never have existed in its current form. They’d probably still be using a stylus. If WP7 is good, it will all be thanks to Apple and Google.

Finally, a professional chess program for Android!

Those of you who read my blog know I’m a big fan of Linux and all things open source. That’s one of the reasons I like Android. As I mentioned in a previous post, I contacted Stefan Meyer-Kahlen (the author of the Shredder chess engine) to see if he’d port Shedder to Android. Shredder has been released on far more platforms than any other successful engine, so I figured there was a good chance. Upon the initial release of Android, all apps had to be coded in Java. This is fine for most stuff, but it’s terrible for chess engines for two reasons. 1) 90% of chess engines have already been coded in C (or C++) and porting to Java would not be financially worthwhile, and 2) Java, as many of you know is not a native language. In runs in a virtual machine, and cannot possibly perform as well as native code. Obviously when writing something as computationally expensive as a chess engine, you’d never even consider coding in Java (unless your performance wasn’t a priority).

So, a little while after the launch of Android, Google made an alternate Native Development Kit (NDK) available allowing applications to be coded natively. This is obviously the perfect choice for any high performance program. I emailed Stefan asking if he’d consider porting to Android and, as you can read in my prior post, Stefan wasn’t too impressed with Android so far, and had spent the time developing an iPhone version instead.

Well, good news today, as Stefan was kind enough to remember our email exchange and wrote to me personally to inform me that he has released an Android version of Shredder into the Android Market. For those of you who are interested, here is the email.

Hello Mr. Williams,

Shredder is now also available for Android mobile devices. You can play against Shredder, analyse with him and solve chess puzzles. It offers the usual Shredder standard for your pocket.

Finally a professional chess program for Android.

Shredder for Android is only available in the Google Android Market. Simply search for „Shredder Chess“ in the Android Market on your Android mobile device to find Shredder.
Best regards
Stefan Meyer-Kahlen

I was quick to reply with a few questions about the port, and here is that reply. Yes, he misspelt my name yet again, but…

Anthony,

yes, it is the complete and native Shredder 12 engine written in C. The same engine is also in the iPhone version, so they will be equal in strength.

Best regards
Stefan

I have used Shredder on Android (and on Windows Mobile, iPhone, iPad, Linux and Windows), and while it is a great engine, the Android/iPhone ports (which are nearly identical) is clearly aimed more toward the casual chess player, unlike other versions of Shredder that are aimed at the Chess enthusiast and professional. This is in part because potential customers are iPhone and Android owners, and are probably looking for a casual, cheap, graphically pleasing chess program. Most probably don’t care that the chess engine is 2800 ELO strong. Professional chess programs for Windows Mobile, however, (Shredder, Fritz, Hiarcs etc..) have traditionally been aimed squarely at the chess enthusiast and even IM/GM level. They have lots of extras like opening books, tactics, puzzles, endgame and some even allow you to switch out the opening book and even the engine. Granted, these programs generally cost $50. Knowing that the App Store market already had numerous chess programs, Stefan rightly knew that the sweet-spot for apps in the App Store is under $10. Shredder is priced very competitively at $5.99. I highly recommend Shredder for Android. I hope it sells well and warrants the effort Stefan spent porting it.

The cost of engineering

I read something very interesting the other day while looking for a Firmware update to my Samsung LN46b650 HDTV.

An owner of the same TV as me was asking (on a forum) Samsung to release an updated firmware with support for more codecs. The Samsung rep. replied that it was an older model, and that engineering effort was mostly spent on newer and unreleased models. Sounds obvious so far, right?
Here comes the funny part. The user replies:

“I would be willing to pay for the requested firmware update to defray the companies costs”

Does anyone else see how realize how stupid this sounds?

Having worked as an Engineer at several different places I can tell you that engineering a new firmware is no quick and simple task. It usually requires a Project Manager and depending on the size of the project, it can take between a few and dozens of Engineers. Then it takes lots Quality Assurance testers who verify that there are no regressions, and finally, it requires a Release Manager who approves the final release as ‘Production Ready.’
So, given the fact that the firmware is already available and a few features just need to be added does simplify things, but you’re still talking possibly thousands of man-hours. Even if one Engineer could do this upgrade by himself, it would still require lots of testing (imagine if an ‘update’ broke your TV!). All in all, you’re probably talking tens of thousands of dollars for a fairly simply update. Something that one individual user is hardly going to fund. Seriously, what was this guy willing to pay. $10? That pays a single engineer’s salary for about 12 minutes.

This isn’t the case with software updates. How many of us have downloaded a software ‘update’ that screwed stuff up? Probably all of us. The difference here is that you can usually fix a software update with another update (or hotfix). Firmware, however is different. Because it sits right on top of the hardware, it can do much more damage. It would be quite easy, for example, for a firmware update to break its own ability to update, so, the new firmware doesn’t allow further updating. With software, this can happen too, but there’s nothing stopping you from uninstalling and reinstalling an older version. This usually isn’t possible with Firmware.

It just goes to show that for a great Engineering product, you generally need to be selling millions of devices. How else can you afford to spend millions on Research and Development? Thats what makes my change of job so drastic. My last two jobs were very small startup companies. The first (http://novadrill.com/) had just a handful of Engineers, and we were each our own QA. They ended up being very successful, selling to a much larger company. The company had some good technology, but it needed to sell to one of the big players. In fact, it was always intended to be sold. There was never a plan to get to market alone. They knew they’d need lots and lots of funding, and that meant being bought out. The initial funding was really just to create products that could show great potential, and interest some of the big players. Now I’m at HP working on Eprint. There are literally hundreds of people involved. Every week I’m on a conference call with people I’ve never heard of. There are entire teams of people in multiple different countries working on different parts of the product. Of course, HP is only investing this much money on the project because they know that each year they sell millions and millions of printers. That means several things. 1, they will very quickly have a huge customer base, and 2, they want an extra edge over the competition, and obviously they wouldn’t mind getting their own app store.

VLC 1.10 released

VLC is one of those apps that almost does too many things. Most people use it to decode (watch) videos. But VLC can also encode, stream, transcode, and runs on Windows, Linux, Mac, BeOS, and BSD.

While I use Linux exclusively at home, I’m often required to use Windows at work and when I use other people’s computers. For this reason I love using cross platform apps. OpenOffice.org, VLC, Dropbox, Firefox, Google Chrome and Pidgin are some of the more successful variants.

VLC 1.10 was released today, and it’s a big release. In fact, it’s codenamed “The luggage”
The main improvements are HD Hardware decoding (Windows and Linux), improved MKV support, support for WebM, and of course, it’s faster and more stable. To see the other changes, check the changelog.

One of the reasons VLC works so well on multiple Operating Systems is because it uses the QT toolkit (is a cross-platform application development framework). This framework runs on almost all Operating Systems including Mobile variants like Symbian and Maemo. If you use VLC on Windows/Mac, be sure to update. If you use it on Linux, you’ll have to wait for your distribution to add it to their repositories, which in the case of Ubuntu will mean waiting for Ubuntu 10.10 (yet another reason I use Arch Linux).

The web of the future may be free from Flash!

Today was day 1 of Google I/O 2010. It’s basically a conference where Google show’s all their new tech to the world.

But first, some background.
All of us use HTML every single day, yet take it for granted. In reality HTML has become so successful because of a man called Sir Tim Berners-Lee. He insured that HTML stayed open. This meant that it was free. It also meant that anyone could implement it in a browser. Because of this, there are many browsers on many different operating systems. The purpose of the HTML standard is that it’s documentation. Anyone can can write a website that they know will show up correctly on any browser. Conversely, any developer can create a web browser that should read any website. No proprietary hidden stuff, no reverse engineering, no guessing. All common browsers (except IE) conform to HTML standard, so that you know (in theory) a webpage should look the same whether viewed in Firefox of Google Chrome. Imagine if HTML have been invented by Microsoft. You’d have proprietary websites. Different browsers for different sets of websites, that were different variations of HTML. To get a better idea, just imagine how things are in the video game industry.  Obviously a Playstation game isn’t going to work in an Xbox. But a Windows PC game will work on any Windows PC that has a certain base level of performance. It’s sort of like that.

Adobe Flash, however, is very different. It’s available for most operating systems, but what if Adobe doesn’t release Flash for your Operating System of choice? In the case of the iPhone, they’re not allowed to release Flash support, users can’t access content in that format. If there were an Operating System that Adobe chose not to support (like BSD), then you cannot (without hacks) get access to the content. We live in an age where so much content is in flash, you’re sort of stuck at the mercy of Adobe. They decide whether an Operating System can view 70% of the web. This doesn’t mean that Adobe is evil, it just means that they have too much control. Of course, in a perfect world content would be in such a format that it is universally viewable on any device. This is what HTML is. The problem is that most webpages contain Flash. This is a huge problem. Despite my personal opinions on flash (I hate it), it’s not good to leave a huge portion of the web in the hands of one company. If Adobe doesn’t release Flash for my device, I’m stuck only able to view a small subset of the web.

Luckily there’s a perfect solution. Replace Flash with HTML5. Sounds simple, right?
Wrong. Unfortunately, because there was disagreement among the Web browser developers, no video codec was chosen for HTML5, thus leaving the choice of codec up to each browser. This basically makes the HTML5 video tag worthless. Firefox and Opera only support Theora videos, Safari only supports h264, and Google Chrome supports both. IE, unsurprisingly currently supports neither.
The reason for the argument was simple. Firefox and Opera want a video codec that is completely free. Google prefer the higher performance of h264, and Apple (as usual) has their private agenda.
Google’s reason is of course extremely valid. Is h264 compresses better, it would save them a fortune in bandwidth costs by using it on Youtube. Firefox and Opera simply don’t want to be paying out money to use h264. So, while they all have valid reasons, the end result sucks for the web. Imagine you are a website developer. You want to put up a video on your website. What technology will you use to do it? Obviously Flash. You can’t use HTML5 for the above reasons (1. Internet Explorer is run by 60% of all users, and doesn’t support it. You can’t have a website that can only be viewed by 40% of the world! and 2, even with the remaining 40%, they each support different video codecs.)

What the world really needs is a video codec that is both FREE and EFFICIENT.

Here comes Google to the rescue!
Recently Google purchased On2. A company that makes video codecs supposedly close in quality to h264. People immediately suspected that Google would open source On2′s best codec, VP8, to ‘save’ the web. Today they did just that!
VP8 solves Google’s issues with efficiency, yet would still be free for Firefox and Opera to implement. Perfect, right?
Firefox and Opera both also announced their support of the codec. But a video codec alone isn’t enough. What about the audio. Google is using the extremely good open source audio codec Vorbis, used the Matroska container and named it ‘webm‘ It is actually quite clever.

The logos above are for (respectively) Xiph (Vorbis audio codec), Matroska (container), Google (VP8 video codec), and the combination, webm.
Seems pretty good to me! Support is available in Chrome, Firefox and Opera in developer versions starting today, and will be available in Android’s Gingerbread release in Q4 2010.

Microsoft has publicy said it will support webm, but not natively (only if a codec is installed). While this isn’t terrible, it would be much better if there was native support. Still, this does allow Youtube to switch over completely, as the only notably omission is Safari, which doesn’t have that much market share anyway. If Internet Explorer, Firefox, Chrome, Opera (and probably all the OSS browsers like Konqueror and Epiphany) support it, that should be enough. It’s anyone’s guess if Apple will support it. I’d love it if everyone would just dump flash and use webm for video. This is an interesting move for Google. On the one hand, they’ve just announced that they’re including Flash on Android, and it’s built into developer versions of Google Chrome. So, what are they thinking? Actually, I’m pretty sure I know. Google made a deal with Adobe. First, they wanted to take advantage of Adobe’s desire to entire mobile (as they can’t get on the iPhone). Second, for webm to become truly successful people have to use it. For many websites it’s not going to be an option to have a webm video AND a Flash video (as backup). But, Adobe has announced that upcoming versions of Flash will support vp8. This means that you could have one video file, and send it to the browser through either Flash or webcm. I’m actually shocked that more sites have not picked up on this. This is actually quite vital. If Adobe didn’t do this, and people had to choose just ONE format, they’d undoubtedly choose Flash. This now gives people one codec that can be sent to the browser through either Flash or webm.

Another thing of note is that there is currently no hardware acceleration. AMD, ARM, NVIDIA, Qualcom etc.. are working on it.

Google's Android, secrecy and openness.

So, Google’s Android is open source right…… sorta true.
It is in the general sense, the problem is that most of the phones running it need proprietary drivers to run, so you could never run a 100% open source phone.
Second, there’s a lot of complaining going on right now about how Google is being secretive and controlling. While Android is open source, Google doesn’t have a good open source model. They don’t make it easy to patch, they have their own secret repository that they sync randomly. And, most importantly, they have no roadmap.

In Google’s defense, it’s competing with Apple, the toughest competitor you could imagine. It would be hard to compete with Apple, who is the most secretive company in the world, by divulging all of their future ideas on their homepage.

Here’s something of interest. Google has been asked numerous times how many Nexus One phones they’re sold. They’ve (despite claiming to be open) never given an answer, just saying “it’s done well.”
Google started a webpage with the below pie chart to illustrate the userbase of the different versions of Android earlier this year. They promised to update the page every 2 weeks. But, when the Nexus One was released, it was the only phone running Android 2.1. To hide the success (or lack thereof) of the Nexus One, Google didn’t update the pie chart. Had  Google updated their pie chart, it would have been easy to deduce how well the Nexus One had sold (being that Anything under Android 2.1 would have been a Nexus One). But, guess what happened…. As soon as Android 2.1 was released for the Motorola Droid, this pie chart was updated. Extremely deliberate. This now fudges the numbers, as there are just two phones (to date) that run 2.1 and you can’t tell how many of each. The majority are the Droid, but there are no hard numbers. Very sneaky Google, very sneaky.

Look at the chart below. It contains “the relative number of active devices running a given version of the Android platform.” Now, this is already proof that there’s a problem. There are 3 versions of Android still in use (2 months ago it was 4!!).

Google has done a great job with Android recently. They’ve been releasing new versions like crazy. Check this out:

Android 1.5 April 2009
Android 1.6 September 2009
Android 2.0 October 2009
Android 2.1 January 2010

In 4 months Google released 3 different versions of Android. Now, this would be perfect if as the owner of an Android phone you got updated to each of these, but you don’t. 35% of Android users are stuck with Android 1.5, and 29% are stuck with 1.6. Only 32% have the latest 2.1 release. Isn’t that pathetic. Note this isn’t like a desktop. You can’t buy the new version. You have to wait until it is released for your phone. In the case of the majority of phone manufacturers, it makes more sense for them to spend their efforts developing new phones, rather than updating their old phones forever. This causes major fragmentation. As an app developer it is very difficult to write an application that works on so many different phones, screen resolutions, and APIs (note, there are many apps that only work on certain versions on Android, or crash on certain devices). This is of course a huge disadvange over Apple, who really only has two devices (The original and 3G are almost identical, and the 3GS is just a newer CPU). Also, all iPhone always get the new iPhone OS at the same time (though this will change with iPhone 4.0). But, the plus side is that there are dozens of different devices that run Android. It’s a lot like the competition between Windows and Apple from 20 years ago. Windows won then, and I believe that Android can as well.

Now, there are many reasons for the graph to the left. Updating 20 different devices would take a long time, and getting carrier certification would be a pain. The other main reason is that many devices from Motorola and HTC have very customized interfaces. These interfaces are more complicated that regular apps, and take longer to be ported over to a newer version of Android. It’s rumoured that Android will launch version 2.2, FroYo in June-ish, and then we’ll start all over. Just as devices come out with Android 2.1, Google will launch a new version. The good news is that Google is aware of the issue, and it’s rumoured that they will get around this by having more of their apps (such as the web browser) available from the Market. This way, even if you can’t get the full new version of Android, you can download the apps that are developed along with it. Not a bad compromise. While there are a lot of problems with Android, I think things will improve. Part of the issue is that Google is used to doing web based products that can be updated daily. Products like Gmail and Google calendar are all hosted in the cloud. Google could release a new version of Gmail twice a week, and we wouldn’t have to do anything. The moment you went to the webpage you’d automatically access the new code. This is in stark contrast to Client based software, where the user must download an update. Generally, client based software gets modified much less frequently. Still, Google is still relatively new to this, and will probably improve. Only time will tell. My guess is that this will take a while to improve. Old phones are still waiting for Android 2.1 (none got 2.0, and some never even got 1.6). It’s unfortunate that by the time most phones get upgraded to 2.1, 2.2 will be launched. Oh well…

A new OSS compression: XZ

XZ compression has actually been out for a little while, but it just recently began to build traction in Linux distributions.
It has been adopted by default in both Slackware and Arch Linux.
It’s basically an evolution of LZMA, which is the popular compression algorithm in 7-zip
As of version 1.22 of Gnu Tar, Short option -J is reassigned as a shortcut for –xz, meaning that instead of a usual tar czvf, you’d do replace the z (for gzip) to J for xz.

Here are a few benchmarks I lifted from the Arch Linux mailing list.

Did some testing with openoffice-base 3.2.0-1-x86_64.tar:
XZ allows choosing the level of compression, between 1-9 (1 being the least amount of compression, 9 being the most, and 6 being the default)

compression speed:

gzip: 0m28.945s
bzip2: 1m21.876s
xz -1: 0m49.244s
xz -2: 1m18.444s
xz -3: 3m34.208s
xz -6: 4m41.148s

decompression speed:
gzip: 0m 5.772s
bzip2: 0m29.433s
xz -1: 0m13.983s
xz -2: 0m12.949s
xz -3: 0m12.706s
xz -6: 0m11.462s

Interesting, right? Obviously, the more you compress a file, the longer it takes, but the interesting part is the decompression speed. Decompression gets faster with higher compression ratio! With’ xz -6′ you only need to read and process 124MB, with ‘xz -1′ you have to read 150MB. The decompression algorithm is the same for both ratios, only change is the archive size and the dictionary used. The downside is that the higher the ratio, the bigger the dictionary becomes and the more memory you’ll need for decompression.

Here are some more benchmarks comparing file size (using the default ‘xz -6′) (lifted from the Arch Linux forums)
The Kernel compressed extremely well, to 27.%5 of its original size). It may not be worth it for many applications though, as it takes over 3x as long to compress, vs gzips 35%.

86M kernel26-2.6.29.3-1-i686.pkg.tar
30M kernel26-2.6.29.3-1-i686.pkg.tar.gz
22M kernel26-2.6.29.3-1-i686.pkg.tar.xz

287M wesnoth-1.6.1-1-i686.pkg.tar
220M wesnoth-1.6.1-1-i686.pkg.tar.gz
202M wesnoth-1.6.1-1-i686.pkg.tar.xz

conclusion:
xz (in default configuration) takes 3-4 times longer (vs gzip) to compress for an extra 10-15% compression ratio.  It also decompresses at half the speed.
So for the average user, this won’t be of huge interest. If you want the best combination of size and speed, gzip is still king.
The real benefit here is for website mirrors and people who value size more than speed. Imagine hosting a file for millions of people to download (like being a mirror for Firefox, the Kernel or OpenOffice.org etc..), shaving 10% off your entire bandwidth can be huge. For this reason, Arch Linux and Slackware have switched their repositories to xz. If you use bzip2, it’s certainly worth switching! For the average user, however, it probably is not worth it.

A review of VoIP provider Ooma

For those of you who haven’t heard of Ooma, it’s a phone service that runs through your internet connection (VoIP).
All you need is a broadband connection. There are two differences over the competition:

  • There are no monthly fees
  • Unlike MagicJack, you don’t need a computer to be on. You just plug a regular analog phone into the Ooma device (which is in turn connected to the internet).

So, if there are no monthly fees for Ooma, where do they get there money from?
Two places. First, for the equipment you buy (the Ooma device costs between $200-$250), and second, from the people who choose to pay for the optional premier service that offers a few extra features like two phone numbers etc…
I never thought I’d want a landline. I’ve owned a cell phone since I was 16 years old, and thought landlines were for old people. Well, I still feel this way. I would never own an analog line in my house. Ooma, while technically a landline, doesn’t require an analog line in my house, doesn’t require monthly fees, and has unlimited calls to any U.S. number.
Setup is easy, you just plug the Ooma device into your router, and it works.
Call quality is great, really great.
Another not so well known benefit is that you could take the device anywhere, and it would work immediately, with the same number.
Not only will it work anywhere in the U.S., but it will work anywhere in the world. Ooma doesn’t restrict itself to just U.S. based IP addressed. If I were to go on holiday to England for a month, I could take the Ooma box with me (it’s the size of a router) and plug it into an internet connection anywhere. I’d still have my U.S. phone number, and I could still call anyone in the USA for free. Pretty good, right?
Well, yes, it is, except Ooma have recently changed their Terms and Conditions in a way that I feel is not very honest.
Ooma’s slogan is “Free home phone service. Unlimited U.S. calling and low international rates.”
Lets break this down.

(legacy) Ooma Hub to the left. (new) Ooma Telo to the right

Free home phone service?
Not any more. Ooma now charges taxes and regulatory fees ($11.75 a year) (they didn’t used to). Their sub-slogan is “no monthly fee’s” but, the taxes and regulatory fees are charged yearly instead. This is still very cheap, but they should not be using the word “free” in their slogan
Arguably not dishonest, but I don’t like it!

Unlimited U.S. calling?
Nope. They restrict it to 5000 minutes a month. Now, this is plenty for me, but it is certainly NOT unlimited. Ooma argues that this is intended for consumers only, and that 5000 minutes should be enough (and is as good as unlimited). They just can’t be profitable is businesses bought it and used it all day. While this is a valid point, it still should not be advertised as unlimited.

Low international rates?
yes. They’re pretty good, and you don’t have to bother with calling cards. Although they’re not quite as good as Google Voice’s rates.

Luckily there is one redeeming factor. The new terms and conditions don’t apply to people who purchased the device BEFORE the change, nor do they apply to anyone that purchases the old Ooma Core device. Luckily this is me. I actually heard about the change in conditions before they were put into effect, so I rushed out and bought mine before the deadline. I’m glad they gave a warning, as i would probably not have purchased the device knowing I’d have to pay a yearly fee.
I’ve always been the kind of person who likes to pay for things up front. I’d gladly pay an extra $100 for the device if it meant no fees of any kind later.
Still, if you’re paying $20/mo for an analog line, Ooma is still a great switch. It’s only not a good buy if you don’t have broadband internet (what are you thinking!), or if, like me, you don’t really need a home phone.
If you buy the new model Ooma Telo or the Ooma Hub, you’re stuck with the new terms. You also lose Caller ID (unlike the old terms where this was free, this is now a ‘premier’ feature, and costs extra money.)

All in all, Ooma is a great service. It’s just unfortunate that either they got greedy, or they realized that their ‘buy once free forever’ business model was not a good idea (those are the ONLY two possible reasons for the change in terms).
Still, the yearly fee is pretty low, and the quality is great. For people who can find an old Ooma Scout (like I have), this is even better. Even if you don’t use it much, it’s well worth it because you’ll never pay again!