Wednesday, July 18, 2007

Mozilla based browser for the N800

The N800 is a small tablet type device produced by Nokia.

It has a 320Mhz ARM CPU, 128MB of RAM and 256MB of flash storage. While the latter sounds small it also has two card slots allowing plugging in lots of extra storage. The display is a nice 800x480 and about 4 inches. It has both 802.11b/g and Bluetooth 2.0. A built in camera is also included.

Recently a Skype client became available for it and now it seems a browser based on Gecko, the engine behind Firefox.

The new browser seems to be well received based on posts to this thread and there's a nifty web site that explains a bit about it.

The browser is open source. Links to the source and other stuff here.

I don't have one, but being a gadget person I have to say I'm now quite tempted! Time to stop reading about it...

Categories: ,

Labels:

Friday, July 13, 2007

Firefox Video Element Patch Version 2

I've attached a new version of the Firefox Video Element Patch to bugzilla. As outlined in the bugzilla entry, this patch fixes/updates:
  • Ogg codec support can be enabled/disabled with configure flag --disable-ogg. Currently if the Ogg codec is disabled then the video element is disabled too. In the future if/when other codecs are supported this can change.
  • Fix build problems when doing libxul enabled builds
  • Fix link error on windows when doing a --disable-libxul build
  • Fix colour playback issues on Linux and Windows
  • Handle no audio device being present
  • Adjust element size when video size information is read from the Ogg file
  • No longer use channel across threads
  • Various refactorings based on email feedback
A couple of issues still to track down:
  1. Sound not working on Linux
  2. Sound not working on Mac OS X optimized builds
I've also updated the third party modules patch which you need to apply first: third_party_modules.patch.gz

I've been regularly updating the Git repository and it contains all these changes as well.

Categories: ,

Labels:

Wednesday, July 11, 2007

Javascript on the Server

Running Javascript on the server seems to be gaining in popularity. Last year I wrote a small framework to test writing web applications in Javascript. Tony Garnock-Jones later extended this to support building continuation based web applications.

More recently, Peter Michaux has taken my original code and made a nicer web framework out of it.

John Resig has written a browser DOM emulation layer that allows jQuery and some other frameworks to be run server side. His example code looks very neat. Combining this with a decent Javascript based web framework would make for a interesting environment.

Steve Yegge has apparently ported Rails to Javascript. Hopefully this code will be released as open source someday.

Sun have a server side Javascript web application environment, Phobos.

Helma looks to be a mature Javascript web system too.

I wonder if Javascript usage outside the browser is reaching a 'tipping point' and is about to grow dramatically. It's an under-appreciated language and is very much like a protoype OO based Scheme with a Java-ish syntax. Ecmascript 4 is looking to be even more interesting.

Categories:

Labels:

Saturday, July 07, 2007

SuperHappyDevHouse Aotearoa

I'm at the SuperHappyDevHouse Aotearoa hackathon in Wellington at The Cross. Free food, free coffee, lots of people and lots of hacking going on. Hopefully by the end of today I'll have the video tag implementation a bit further along.

There's a Flickr stream of photo's under the tag shdhnz.

Categories:

Labels:

Building a Video element enabled Firefox

I've had a few comments and emails about problems encountered building Firefox with the video element patch, or from the git repository.

Once you've applied the patch, or retrieved the git repository, you'll need to add a .mozconfig file in the 'mozilla' directory. The Mozilla Build Documentation has the details on what can go in this file. A simple .mozconfig which will get a debug build working is:
. $topsrcdir/browser/config/mozconfig

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --disable-tests
ac_add_options --enable-debug
ac_add_options --with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk
The last line is only needed for Mac OS X builds.

There was a problem with the patch in that this default build on some platforms would give a link error due to not finding the Alsa sound libraries. This is fixed in the git repository. The problem only occurred in 'libxul' enabled builds, which is now the default. You can disable libxul in the build process by adding this line to .mozconfig:
ac_add_options --disable-libxul
Disabling this is quite useful for development as the builds are faster and you can selectively build portions to cut down compile times. Once you have a .mozconfig file you can start the build using make:
make -f client.mk build
Note the use of the 'client.mk' makefile with the 'build' target.

In the .mozconfig we specified a MOZ_OBJDIR. This is a directory that will contain the build files and the final executable. When the build completes you can run Firefox with something like:
obj-a-b-c-d/dist/bin/firefox -ProfileManager
Change 'obj-a-b-c-d' with the name of the object directory that was created. On Mac OS X a '.App' is created and you will need to run Firefox with:
obj-a-b-d/dist/MinefieldDebug.app/Contents/MacOS/firefox -ProfileManager
The .app will be called 'Minefield' in an optimized build and 'MinefieldDebug' in a debug build.

To build something you can install on another system (a .dmg file on Mac OS X, tar file on Linux, etc) you must have a 'libxul' enabled build and run the following after a successfull build:
make -C obj-a-b-c-d/browser/installer
The packaged installer will be in the obj-a-b-c-d/dist directory.

Categories: ,

Labels:

Thursday, July 05, 2007

Patch for Video element support in Firefox

I've uploaded a patch which is the first pass at implementing support for the <video> element in Firefox. The patch is attached to bug 382267.

There are quite a few known issues with the patch at the moment, and I'm working through them, but I've made it available at this time so others can at least try it out. A page with some example usage is here: http://www.double.co.nz/video_test.

To build you'll need the latest Firefox CVS, and apply the following:I've also made a git repository available that tracks my work on video. This is basically Firefox CVS with the patch applied, and is the repository I used to generate the patch in the first place. I'll be updating that regularly with my changes between patch generation for the bugzilla entry. You can track this repository with one of the following commands:
git clone http://double.co.nz/git/video.git
git clone git://double.co.nz/git/video.git
The main issues at the moment are problems with optimized builds, so I suggest trying it out with a debug build. I'm also not using channels correctly for multithreaded code which is the cause for a bit of instability. Read the bug for further details.

Categories: ,

Labels: