Archive for January, 2010

iPad, Chrome OS and the Plugin Agnostic Web

If you saw the keynote, or at least read stuff on Engadget, you know that the iPad doesn’t support Flash.

The fact that the iPad does not support Flash goes hand in hand with the iPhone and the iPod Touch, which both never supported and still don’t support Flash. In fact, it might just be part of Apple’s strategy; that is replacing the number one Flash application which is video playback with native support, a.k.a. HTML 5 video, and leaving all the extra power to the development of iPad/iPhone/iTouch apps.

Although only a rumored strategy, it’s clear that it’s what they’re doing, and the iPad goes a long way in proving it on top of what the iPhone already did.

One of the big markets for the App Store is video games, and video games can be programmed in Flash. In fact, Adobe is testing touch functionality for its latest Flash 10.1 release which is in beta as of this writing, clearly a threat to Apple’s ecosystem of apps if they were to support Flash. Instead of having to go through the App Store and everything that’s bad with it, developers would simply have to use Flash to put their apps to market, which incidentally would also make those available to everyone and not just on the iPad, clearly something Apple wants to avoid.

An iPad without Flash; a complete web platform?

Arguably, a web browser without Flash is far from complete. It wouldn’t even support the most visited web sites like YouTube. Apple solves this problem with the YouTube app, but that was only an obvious fit for an iPhone where most Flash apps wouldn’t even make sense because of the smaller screen.

On the iPad however, you’ve got an entirely different story. Users will be asking for Flash as they see that many web sites are not supported. But the same has already happened with the iPod Touch and the iPhone and has also brought myriad web sites to change their strategies and go away from Flash.

In fact, the current web development trend is to do the most stuff possible without Flash, or any other plugin for that matter. It’s already a dead-end for Silverlight, which still doesn’t have a lot of market share, and it seems Java is losing ground too in an area that’s beginning to reject anything called a plugin.

Possibly even more staggering, browsers like Internet Explorer that fail to support newer HTML capabilities are quickly losing market share. It’s quite simple in a user’s mind; if it doesn’t work, they’ll look elsewhere, and that all starts in the hands of the developers.

Apple is casually riding on this wave and hence, a flash-less iPad makes more and more sense, and whatever Google decides to embed in its future Chrome OS will probably see its way to Safari too, given both are based off the Webkit engine. Given that all three iPhone, iPod Touch and iPad use Safari, they’re very well-placed platforms for the future of the web.

The Chrome OS Strategy

Although clearly Google isn’t in the same camp as Apple, its strategy for Chrome OS seems to be very much plugin agnostic, albeit for different motives on the ground of how apps can be developed for its products; that is it has no intention of profiting from closed systems and trapping developers in them.

Although still an economical game, Google is profiting from the market in a very different way, and thus allowing developers to do anything they want on Chrome OS is not bad for them, which is very different than the situation Apple is in. I don’t expect the Chrome OS not to have Flash, especially since Google is part of Adobe’s Open Screen Project which aims to bring Flash support to every mobile platform in existence. It wouldn’t make sense for them to drop Flash, and although Google still has the time to make YouTube entirely Open Video, I’m not sure they’re quite there yet. In fact, I expect Chrome OS to support all three Flash, Silverlight and Java, much like the current Google Chrome supported Silverlight despite Microsoft not offering any support for it. This is very much in line with Google’s way of doing things, which is simply to make stuff accessible as possible.

A prime, but maybe simply obvious example of this is Google Search and Microsoft Bing. Google Search still works on Internet Explorer 6 while Bing gives out a JScript error and fails to display the background image. Sure, the fading thing on Google is simply absent on IE 6 (who cares really, I still think it’s an annoying feature) but you have to give it something for the fact it doesn’t throw an error at you. That’s Google saying “please use something better” with a little Chrome add everywhere and Microsoft saying “upgrade or just go away, 9 years of support is enough” to 20% or 13% (depending on which sources you refer to) of the Internet population as of this writing, clearly demonstrating Google’s stance on how it serves up the web.

With Google pushing JavaScript where it’s never gone before, introducing a new programming language and buying On2, it looks like Google is aiming for a plugin-less web too, and gladly so is the rest of the world (see the HTML 5 crowd). There is gap in Google’s strategy though, how do they plan on making complex apps possible for the web?

If you were to listen to the way Google apprehends Chrome OS’s goals, they clearly are not gonna promote Linux-based apps development on it. In fact, they might as well disable this possibility, but recent developer talks has negated the disabling possibility by confirming Chrome OS will have an embedded multimedia player that works seamlessly within a Chrome browser tab. In fact, I wouldn’t be surprised if it were made with Go, Google’s new programming language. In my opinion, the Chrome browser will eventually turn out to be a Go virtual machine, allowing complex web apps to be deployed natively directly in the browser, much Java except it would act like JavaScript. There’s also the possibility for Go to be supported across Webkit, which would make Safari also supported, and hence enable the iPad to run the apps. That’s bad for Apple, but good for Google, so guess what’s gonna happen.

Also, talking HTML 5 and all future things non-flash, let’s not forget Google bought On2. On2 is the codec company responsible for VP6, the first video codec supported by Flash. They are now up to VP8, a codec which clearly surpasses H.264, the current codec of choice for both Flash and Silverlight, as well as HTML 5 video on Chrome and Safari. On2 is also responsible for releasing VP3 as open source, which gave birth the Theora and OGG, the current HTML 5 video open codec supported by Chrome and Firefox. It’s no wonder Google bought On2; they’re probably on to open sourcing VP8 and making it an HTML 5 video supported codec. If that goes out, the open source community will obviously jump on it, Mozilla included, so Firefox will surely support it. This also gives a logical rise to the possibility of YouTube eventually running on HTML 5 video, something Theora can’t achieve because of its compression inferiority to H.264.

Where’s Microsoft

Frankly, I don’t know. Except for the very cool video hardware acceleration for Internet Explorer 9, they’re tests don’t even make it faster than Firefox 3.6 at loading web pages in general. The only possible future for Microsoft would be Silverlight, but if we are to believe how the web is evolving, that’s clearly not where the world is going.

It’s a sad thing because despite being real dogs; that is being extremely slow, developing on Microsoft software is really a breeze in comparison to similar offerings. However, the market has proven the tools are far from being what determines what developers will develop for. If it were so, Microsoft wouldn’t be losing ground.

Adobe Flash vs Developers

Whatever the future of the web, it’s still the future, and the current reality is that the Adobe Flash platform is currently omnipresent. What’s more, the mobile industry only represents a little over 1% of the global web, which while maybe untrue for wares such as Facebook, is very true for the rest of the world. The main browsing activities still happen on full-fledged browsers, even when people are on Netbooks, and not supporting Flash means not supporting YouTube and lots of other web sites.

Because of that, there’s a strong possibility that the full browsing expectations of consumers on the iPad, given its display size, might just backfire at Apple when thousands of consumers discover it doesn’t support their favorite online destinations.

In the end however, it’s really just a fight between Adobe Flash and developers. Firefox has proven that the real people who are pulling the strings behind the web market are the developers, much like Google Android is actively proving the real people pulling the strings behind the apps market on mobile devices are developers. How? By actively pulling away market share from places developers stop supporting and actively giving market share to newer, more developer-friendly mediums. There’s market share, but there’s convictions for a better future.

Firefox is the very proof. Web developers have boycotted Microsoft’s Internet Explorer so much that users are moving away from it at a rapid pace for the simple reason web sites just don’t work on it anymore. Internet Explorer is currently losing market share at the rate of 1% to 2% per month. This means that in approximately 3 to 4 years, if it keeps on dropping, Internet Explorer’s market share will have greatly plummeted at which point it will be a minor browser with its only chance of survival being shear technical prowesses, something it’s currently very bad at.

This gives rise to the fact that if developers decide to drop Flash support and go to something else, Adobe will see its Flash plugin die, putting both Google and Apple in a very good position.

Apple vs The World

If you take a look at the list of partners on Adobe’s Open Screen Project web site, it’s only funny to think the only two major companies in the area not on it are Microsoft and Apple. Microsoft has already voiced its intention of putting Flash on its Windows Mobile phones in the same way OSP partners plan to, but Apple has almost openly declared war against Flash, and one has to think that with all the companies figuring on this list, it’s almost like they just declared standards war against the rest of the world, or did they just ally with the rest of world (sane HTML 5 people who hate Flash for very good reasons) against the rest of the proprietary software companies? Arguably Google’s decision to join the OSP is almost as if they only did so because they wanted to put Flash on their Android so that it would have something to go against the iPhone’s mighty market share.

The Plugin Agnostic Web

All in all, although I think the iPad’s future is questionable, the future is most likely not downloaded apps on the iPad and most likely more Google than the iPad would lead to believe. It’s also plugin agnostic, but unfortunately for those who want to invest skills in developing complex applications that require more than just JavaScript on the web, there’s no real future-stable solution out there, although fortunately only for now.

AJAX is doomed to be replaced, Flash has a very bad reputation and tendency to be rejected, Silverlight is years too late to market and Java on the client web will probably disappear completely shortly after 2010. In other words, for anyone with enough perception to realize this, investing your skills in any of the current client-side technologies seems very bleak.

Fear not however, Chrome OS is scheduled for somewhere in 2010 if I’m not mistaken and with the pace at which companies were moving in 2009 and are moving in 2010 we’re sure to know exactly what’s at stake by the next few months.

In any cases I would be much more excited as a developer to know that I can program something cool that runs native in a browser than to know that I can program something only compatible with Windows, *cough* excuse me, only compatible with the iPad, a.k.a. iPhone OS…

Current Education Systems Impede on Innovation

Students of modern education systems today are forced to use the tools the education centers attributed to them. The problem lies within the generality of the programs offered and the inability for students of all genres to choose where such programs will bring them through appropriate choices of tools. Because the available tools to develop projects in high education institutions depend on teacher expertise for evaluation, which is a model based on a hundreds of years old education system, modern technology students keep seeing their talent and choices impeded by these limitations, which ultimately impedes on innovation.

For example, when developing a browser-based game project, several solutions exist today. The most common that comes in mind would be the Adobe Flash Platform, which itself is divided in the Flash Professional authoring tool and the Flex framework. Next up are various solutions, like Microsoft Silverlight or Java Applets and JavaFX, which all offer compelling solutions, some even open source, that can go beyond what is possible on the Flash Platform. Arguably, this all depends on your target market, but for a student aiming to work at a company where Java is the primary language of development, being obligated to program in ActionScript on the Flash Platform impedes on his personal development and his ability to attain his goals, which is in fact counter-educative.

In more extreme cases, you could potentially count tools such as HTML 5 technologies and JavaScript as valuable market options that could prove an extremely good thing to learn for the future of the web. However, the primary source of expertise, graduating students, fails to give track to such nascent technologies and hence slows down technological evolution because the educational institutions they come from refuse to adapt and reform around newer technologies, which is ironic because the same teachers that fail to learn the new technologies often remember the students about how on the market place you have to keep learning new technologies to stay on top. One has to wonder why educational institutions don’t do the same.

Of course, it goes without saying the problem isn’t only restricted to the case of in-browser video games or Internet video streaming technologies. It applies to almost any environment. For example, more design students will be forced to use the Apple Mac platform, while most networking students will be forced to learn Microsoft Windows networking technologies, even if a considerable bulk of the market uses open alternatives like BSD and Linux distributions.

These limitations also have a major impact on the flourishing of open systems like Linux, which end up never getting into educational institutions despite being free and offering the ability for these institutions to lower their cost and in turn lower the amount of taxes paid as well as making education more accessible by lowering tuition fees.

In other words, educational systems should change and become more open to various technologies and guide the students towards choosing the ideal solution for their own career paths. In my opinion at least, this is the way of the Information Age.

Toshiba Qosmio X500 Fails
Promo Video Prooves its Monitor Sucks

While the Qosmio X500 might appear a beautiful beast on this screen,

Toshiba fails miserably at hiding the horrible effects imposed by the poor view angles here:

Ah, sad laptop world…

It’s also ironic that Toshiba prooves at the same time that they don’t have enough money/expertise to host their own video. I don’t know for you, but for me YouTube doesn’t equal hip on a web site, it equals poor independant blogger or something less-than-cool like that.

What’s the ideal video quality for Theora?

I’ve made a few tests on –videoquality encoding with Theora via ffmpeg2theora which I think is the best way to encode OGV media. Earlier tests conducted with ffmpeg2theora 0.25 reveal that 2-pass Target Bitrate encoding with Theora is less efficient than videoquality encoding, which is a one pass constant quality variable bitrate encode.

This might be surprising if you come from an H.264 encoding background, where quality-based encoders are almost nonexistent, but it’s quite the buzz with Theora. I could get the best quality encode possible on a somewhat motion-intensive animation with only 4.4 Mb/s.

Here’s the result of an intensive scene taken from an AMV that will appear in February at the G-AMV 2010 contest made by AMV-Canada. I’m the president of AMV-Canada and I do pretty much all of the grunt work of web encoding for the moment, so I was testing OGV encoding for our HTML 5 Open Video technology.

This scene is a very intensive scene which goes up to 7 Mb/s in VQ 10 . What you have to look for is discrepancies in the screenshots from VQ 9 down to VQ 0 comparatively to VQ 10. The video is a 740 x 410 pixels, which is a close approximate of what you can expect for an average SD video.

Benchmark

VQ 10

Size 99.03 MiB
Average Bitrate 4499 kb/s

VQ 9

Size 78.35 MiB
Average Bitrate 3589 kb/s

VQ 8

Size 61.41 MiB
Average Bitrate 2770 kb/s

VQ 7

Size 48.91 MiB
Average Bitrate 2255 kb/s

VQ 6

Size 39.79 MiB
Average Bitrate 1800 kb/s

VQ 5

Size 31.43 MiB
Average Bitrate 1415 kb/s

VQ 4

Size 24.52 MiB
Average Bitrate 1117 kb/s

VQ 3

Size 19.12 MiB
Average Bitrate 859 kb/s

VQ 2

Size 15.19 MiB
Average Bitrate 682 kb/s

VQ 1

Size 11.40 MiB
Average Bitrate 512 kb/s

VQ 0

Size 8.86 MiB
Average Bitrate 398 kb/s

Analysis

What you can observe is that the codec, in general, doesn’t start to drop in perceptible quality until VQ 8, and it’s still very subtle. VQ 8 is ideal for high quality encoding with minimal space.

VQ 7 starts to have noticeable blocking going on which often plague Theora videos. It’s very particular and while not exactly in your face, it’s always sort of there in lower quality Theora videos. VQ 7 might be more adapted to high quality web streaming.

VQ 6 and VQ 5 on the other hand fit perfectly in what the average H.264 encode looks like in terms of bitrate. While of substantially lower quality than H.264 at the same bitrate, both choices remain watchable and ideal for the web.

From VQ 4 and down, the codec starts to lose its ability to define straight lines and makes text increasingly hard to read. VQ 1 and VQ 2 then lose any ability to define detail and text becomes unreadable in most cases.

You can also enable –optimize in ffmpeg2theora, which makes encoding slightly slower and increases quality a bit. There’s definitely less blocking, but the difference is so minimal that with side-by-side comparison it’s often hard telling which is actually better. So while this might be a must when encoding, it’s definitely not worth re-encoding your whole library for it.

The potential for more computing power; Google Chrome OS and Native Languages

However you look at it, today’s major operating systems take a lot of resources. We run high performance applications like video games that could go to such better lengths with our machines had they not have to run on top of operating systems like Windows.

If you have a modern system with 12 GB of RAM, it obviously does not really matter. Most often you will most likely find the majority of applications on your system run perfectly fine while your friend might argue with you they are too slow to work with on older computers.

However, if you have such wares as a netbook, memory usage might be something you want to have an eye out for. Having a netbook is like stepping back 5 or 6 years in computing power and the speed and efficiency of the applications you run become crucial.

For example, Windows 7 on a netbook is already the very limit of what you can run as an operating system. It will eat at least half a gigabyte of RAM and will limit your use of your netbook to applications that can fit in the rest, which is most often less than 50% of your total RAM.

However, take Chrome OS, which will most likely take substantially less memory (it’s just a browser after-all), and you’ve got a different story. Your netbook might gain as much as twice its previous memory capacity for running software.

If Google was ever to enable the development of native applications for Chrome OS, a simple thing to do because it’s Linux based, your netbook’s potential as a browser-only platform will surely change. Any long-time professional software user will tell you that although current-day pro software like Photoshop take a modern computer to run, they used to be able to use Photoshop on the older computers, which were new at that time.

Chrome OS brings the same power back to older computers and most specifically netbooks. High-performance compiled web apps destined to these very netbooks might not be so far-fetched after all.