VideoLAN Web Plugin: xpi vs crx

One of the main issue while preparing streaming solution is answering the obnoxious question:

  • Question: Is possible to use the service through a browser?
  • Answer: No, rtsp isn’t* http, a browser isn’t a tool for accessing any network content.
  • * Actually would be neat having rtsp support within the video tag but that’s yet another large can of worms

Once you say that you have half of your audience leaving. Non technical people is too much used to consider the browser the one and only key to internet. The remaining ones will ask something along those lines:

  • Question: My target user is a complete idiottechnically impairednaive and unaccustomed and could not be confronted with the hassle of a complex installation procedure, is there something that fits the bill?
  • Answer: VideoLAN Web Plugin

Usually that makes some people happy since it’s something they actually know or at least they have heard about. Some might start complaining since they experienced an old version and well it crashed a lot. What would you be beware of is the following one:

  • Question: Actually I need to install the VideoLAN Web Plugin and it requires attention, isn’t there a quicker route?
  • Answer: Yes xpi an crx for Firefox an Chrome

Ok, that answer is more or less from the future and it’s the main subject of this post: Seamless bundling something as big and complex as vlc and make our non tecnical and naive target user happy.

I picked the VideoLAN web plugin since it is actually quite good already, has a nice javascript interface to let you do _lots_ of nice stuff and there are people actually working on it. Additional points since it is available on windows and MacOSX. Some time ago I investigated how to use the extension facility of firefox to have the fabled “one click” install. The current way is quite straightforward and has already landed in the vlc git tree for the curious and lazy:

Putting that as install.rdf in a zip containing a directory called plugins with libvlc, it’s modules and obviously the npapi plugin does the trick quite well.

Chrome now has something similar and it seems also easier so that’s what I put in the manifest.json:

"name": "VideoLAN",
"version": "",
"description": "VideoLan Web Plugin Bundle",
"plugins": [{"path":"plugins/npvlc.dll", "public":true }]

Looks simpler and neater, isn’t it? Now we get to the problematic part about chrome extension packaging:

It is mostly a zip BUT you have to prepend to it a small header with more or less just the signature.

You can do that either by using chrome built-in facility or by a small ruby script. Reimplementing the same logic in Makefile using openssl is an option, for now I’ll stick with crxmake.

Then first test build for win32 are available as xpi and crx hosted on as usual.

Sadly the crx file layout and the not so tolerant firefox xpi unpacker make impossible having a single zip containing both the manifest.xpi and the install.rdf served as xpi and crx.

by the way, wordpress really sucks

About SSD drives performance

Sometime I get criticized about that, but I’m quite a massive disk space user: since I use my laptop as a desktop replacement, I always bring a lot of data with me and of course a lot of “things” (mainly accessories) that might be useful for some reasons. This make me feel quiet, but on the other hand makes my computer bag being really heavy sometimes.

Anyway, there are some situations where having a computer with you could be quite useful, but obviously you don’t want to bring all that weight all around. In the last year, lightweight “netbooks” gained a lot of hype and I considered to buy one for those occasions, just like browsing the web or checking e-mail in a weekend at seaside or something similar. In the vast (?!) universe of netbooks, about 10 days ago I chose and bought a Dell Inspiron Mini 9″ with Linux preinstalled.

After adding some packages, I quickly reduced the remaining available disk space to less than 2GB, less than my camera MMC storage! I seriously began to look for a mass storage drive replacement, and in order to spend an affordable amount I searched on eBay: in a few days I got a new Intel 16GB SSD drive connected to my new netbook.

SSDs (Solid State Drives) have the reputation to be amazingly faster that traditional hard drives, so a lot of manufacturers use them in netbooks to make them seem faster despite of their low power consumption but quite “calm” processors (like Intel Atom). However, after reinstalling and reconfiguring my Ubuntu, something seemed to be different… my netbook wasn’t reactive as before.

Was it just an impression? Was it real? To appease my curiosity, I used hdparm to benchmark my two SSD drives. The original STEC 8GB reported an uncached read speed of more than 68 MB/sec, while the Intel 16GB one only offered 37 MB/sec! The results were interesting: even if SSDs on average have smaller access times than traditional magnetic hard drives, their performances in terms of data read speed aren’t always a good bargain like lots of people think.

Since both these drives make my netbook sport an equivalent boot time (38 seconds excluding POST and Gnome user’s environment loading after login) and I won’t use it for more than chatting or browsing the web, I will stick to the slower Intel 16GB one, but it is clear that we shouldn’t rely on beliefs: SSDs aren’t all the same.

Brother mfc5890 on Linux Gentoo 64bit

Actually we bought a new MFC-5890  printer for the office, we have a quite homogeneous environment with mainly Linux systems, a some with Gentoo, a some with Ubuntu, a few OSX systems and two Windows. We have been quite satisfied with the fact that Brother release packages for ubuntu, but we laso had to face the fact that there wasn’t a quick way to install it on Gentoo.

So I spent some time to edit the Brother package to install on Gentoo 64bit and create a .tgz to permit to other Gentoo users to install the printer drivers in a quick way.

You can download the package from here:

Simply unpack it in /usr/local (the paths are not relative so you must unpack it inside /usr/local), enter the directory /usr/local/Brother/Printer/mfc5890cn/cupswrapper and run cupswrappermfc5890cn it will perform every step needed by the installation and will restart CUPS, you will then be able to configure your printer from cups.