2010
01.04

Browser plugin version detection is a bit of a problem because of inconsistencies in the way different plugin developers name, describe and version their plugins.

Buy using JavaScript a web site developer can test for the existance of a plugin and get the plugin description string. The problem is that it is up to the plugin developer how to name the plugin, how to describe it and if the name or description should contain a version number and where the version number occurs.

Here is a list of plugins I have found to install on a Mac. You can see if I’m trying to detect a version of a plugin then I have to look in a different place for the version (if it exists) for each plugin.

Plugin String Comment
Google Earth Plug-in The Google Earth Plugin allows you to view 3D imagery and terrain in your web browser. No version number.
Shockwave Flash Shockwave Flash 10.1 d51 No second full stop and the letter d.
RealPlayer Plugin.plugin RealPlayer Plugin No version number.
Shockwave for Director Adobe Shockwave for Director Netscape plug-in, version 11.5.2
Unity Player Unity Web Player lets you experience dazzling interactive 3D right in your browser. For more information, visit Unity . No version number.
Gears 0.5.33.0 Gears for Safari 4 numbers in the version number.
O3D Plugin O3D Plugin version:0.1.42.3 4 numbers in the version number.
QuickTime Plug-in 7.6.3 The QuickTime Plugin allows you to view a wide variety of multimedia content in web pages. For more information, visit the QuickTime Web site.
VLC Multimedia Plug-in VLC media player – version 1.0.3 Goldeneye – (c) 1996-2009 the VideoLAN team
http://www.videolan.org
Flip4Mac Windows Media Web Plugin 2.3 The Flip4Mac WMV Plugin allows you to view Windows Media content using QuickTime.
ShiVa3D Plugin ShiVa3D Plugin 1,8,0,0 for 3D real-time applications made with ShiVa Editor. 4 numbers plus commas in the version number.
Quartz Composer Plug-In Web Kit plug-in that renders Quartz compositions. No version number.
Silverlight Plug-In 3.0.40818.0 4 numbers in the version number.
revWeb revWeb revlet player No version number.

So if the strings got changed to the following format…

Version;URL;Vendor;Description

Where Version = major.minor.revision

Plugin String
Google Earth 5.1.0;http://code.google.com/apis/earth/;Google;Embed Google Earth maps and animation in a web page.
Shockwave Flash 10.1.51;http://get.adobe.com/flashplayer/;Adobe;Embed Flash movies and video.
RealPlayer 11.1.0;http://www.real.com/realplayer/;RealNetworks;Plays Real media files.
Shockwave for Director 11.5.2;http://get.adobe.com/shockwave/;Adobe;Embed movies created with Adobe Director.
Unity Player 2.6.7;http://unity3d.com/webplayer/;Unity;Unity Web Player lets you experience dazzling interactive 3D right in your browser. For more information, visit Unity .
Google Gears 0.5.33;http://gears.google.com/;Google;Adds functionality to you web browser.
Google O3D 0.1.42;http://code.google.com/apis/o3d/;Google;Embed O3D environments.
QuickTime 7.6.3;http://www.apple.com/quicktime/download/;Apple;Allows you to view a wide variety of multimedia content in web pages. For more information, visit the QuickTime Web site.
VLC Multimedia 1.0.3;http://www.videolan.org/vlc/;Videolan;VLC media player – (c) 1996-2009 the VideoLAN team
http://www.videolan.org
Flip4Mac Windows Media 2.3.0;http://dynamic.telestream.net/downloads/download-flip4macwmv.htm;Telestream;The Flip4Mac WMV Plugin allows you to view Windows Media content using QuickTime.
ShiVa3D 1.8.0;http://www.stonetrip.com/3d-players.html;ShiVa3D;For 3D real-time applications made with ShiVa Editor.
Quartz Composer 1.2.0;;Apple;Web Kit plug-in that renders Quartz compositions.
Silverlight 3.0.40818;http://silverlight.net/;Microsoft;Embed Silverlight applications.
revWeb 4.0.0;http://revweb.runrev.com/;RunRev;revWeb revlet player.

Then detecting versions of plugins and directing a user to a plugin download page would be much easier.

2010
01.04

HTML5 Video Tag

I have been working on the video playback for these sites and have been looking at the new HTML5 video tag.

Nice try but there are a lot of issues with it as far as I can see.

Here is the basic usage of the tag:

<video src=”videourl.whatever” controls autobuffer autoplay/>

Well I won’t even start on the way HTML5 is dodgy on formatting but I’d write it like this and that still works.

<video src=”videourl.whatever” controls=”true” autobuffer=”true” autoplay=”true”/>

So the .whatever is an issue from the point of platform support.

In Safari, QuickTime is used for playing back video so you can encode in any format that QuickTime supports. If a user uses FireFox then there needs to be a .ogg version of the video as well. OK thats two versions. So much for the universal video standard.

So why two different codecs, answer is royalty payments by the looks. H264 encoded video should be the standard because it is better on playback and already there in the real world being used every day. Problem is that there is a big chance there will be royalty payments due for using H264 starting some time real soon now. So Firefox uses the open standard of .ogg as there is no royalties due for using the technology. Well not yet anyway.

So then…

<video controls=”true” poster=”imageurl.jpg”>

<source src=”videourl.m4v” type=”video/m4v”/>

<source src=”videourl.ogg” type=”video/ogg”/>

<p>Get a modern browser that supports the HTML5 video tag</p>

</video>

The above will try to play the .m4v movie first, if it cant then it will try the .ogg movie and if that won’t work it will display the message.

Now if I put ten movies on one page with the above code there will be the problem that all ten movies will start to download at once with no way to stop them. Not good with large movies on restrictive bandwidth.

There is the poster attribute that lets you display an image on screen while the video starts to load but it won’t stop the video from loading.

What is needed is a way to have a thumbnail image that is displayed in the page that shows clearly that the image, if clicked, will initiate a video to start downloading and playing when ready.

So what I need to happen is…

  • The user loads a page.
  • The page contains ten image thumbnails.
  • Mouse over thumbnail causes cursor and image to change indicating a video.
  • User clicks the first thumbnail image on the page.
  • Thumbnail image is replaced with the poster image then loading the first video is initiated.
  • Detect if the browser supports the video tag.
  • Detect if the browser supports QuickTime playback with the video tag. Replace the thumbnail image with the video tag set up for QuickTime Playback.
  • Detect if the browser supports OGG playback with the video tag. Replace the thumbnail image with the video tag set up for OGG Playback.
  • Detect if the QuickTime plugin is installed. Use the QuickTime plugin via the object/embed tag combination to play the video.
  • If there is no support for any options then display a message with links to download plugin or browser.
  • Disable the native controls and replace them with JavaScript controls so the user sees the same interface no matter how the video is being played.
  • When the user clicks on movie two then movie one gets stopped and replaced with its thumbnail image so the downloading stops.
  • It would also be good to give the user the option to cancel the download of the currently playing movie at any time without reloading the page .

Time to get to doing some JavaScripting and see what I can come up with.

2009
12.05

Getting Mod Rewrite to work

As you will notice the site has been flipping between old and new versions. The new version has been having a few problems but now I think I’ve sorted them out.

Don’t worry, I’m transferring all the images and video over from old site and having a clean up at the same time.

2009
11.30

Embedding YouTube Video

Cool, got my little JavaScript library installed and figured out how to get YouTube movies embedded with ease into posts and pages. As it turns out many movies uploaded to YouTube are actually encoded in both Flash video and H264 (QuickTime). I find the QuickTime movies look and play much better so I’m using them instead.

2009
11.25

OK now things are working a bit better.

Some things I have learned…

Not all WordPress Themes work with WordPressMU. But I am sorting through a selection to make available for blogs on the site.
Not all WordPress widget plugins work with WordPressMU. But I am sorting through a selection to make available for blogs on the site.
Sub-domained sites require redirects and a little bit of DNS dorkery to make everything work right.
There are normal plugins and MU plugins. Recent Posts is a WordPressMU plugin that will show the most recent posts from every weblog in the site. Live Amsterdam Blogs

2009
11.21

Back on the case

After a few days distraction I’m having a bit of a developer day today.

WordPressMU is working well and I’ve started loading it up with themes and widgets.

Getting ready to start adding band blogs, a member forum and getting the live streams working from the streaming server.

2009
11.18

Tedx Amsterdam

TEDxAmsterdam will take place in the Royal Tropical Institute.

2009
11.18

Why use WordPressMU

WordPress is a free open source blogging system that has been in use since 2003 and now boasts hosting more than 200 million blogs. I have been running the previous Live Amsterdam site in a single installation of word press. That has worked very well for me, however I found myself setting up more and more WordPress blogs for friend musicians and this is leading to a fair bit of work to maintain them all. I did a bit of research into how I could manage a lot of blogs together as one.

Well as it turns out there is an version of WordPress called WordPressMU (multi-user). That is what I’ve installed here.

So now I can add blogs through a supper admin account. Those blogs can be managed by the artists in each band while I can maintain the blogs and the overall site.

2009
11.17

The Developer Blog

Welcome to the Live Amsterdam Developer Blog.

Today I’ve started to give Live Amsterdam an upgrade.