Kiwix-the perfect wikimedia offline solution

Few weeks ago, I found a very impressive tool for consulting a mediawiki without Internet, in offline mode: Kiwix
This client is currently available for Windows and Linux.
A Mac OS version is on intensive development.

To use it, you need a ZIM file (specific format) which contains a static copy of Mediawiki and allowing to make searches. The generation a ZIM file is not really trivial  but after some tries, I have been able to make one by myself with my personal wiki data.
Yes, that could become a sort of backup solution for a personal wiki.

In the same time, I offered to the creator to make a new skin for Kiwix. He was happy with the idea to get a new design and finally integrated the new skin called “Evolution” (based on the Gnome icons set and the Tango icons set).

Today, I had the chance to test the preview version of Kiwix for MAC OX. And what I can tell you, that’s the developers have made a very good work on this port!
Except some small visual problems, the client is working exactly like in the other OS, well done !

Below, some snapshots of the tests:

fullscreen slideshow



Jaunty Jackalope (Ubuntu Remix 9.04) on eeePC 901

Today is the migration day for the netbook of my wife, Alice. After a long time with pleasure and  some annoying things , we’ve decided to migrate the eeePC 901 from Xandros to Ubuntu Remix.
And to be honest, it hasn’t been really painful to achieve this job.

Find here the steps to do the same with your netbook:

1- download the last release from the Ubuntu server:

2- install ImageWriter:
sudo apt-get install usb-imagewriter

3- use ImageWriter to put ubuntu-9.04-netbook-remix-i386.img in the USB key (need a mini. 1Gb usb stick)

4- insert the usb key to the eeePC, start the PC and tape on ESC touch to view the boot menu. Select the USB key in the list.

5- in the boot menu, choose the right language (F2) and the right keyboard map (F3) and Enter
You’ll start the live distribution.

6- when the system is ready, click on the Install shorcut.

7- after the firsts easy steps, you arrive to the screen of partitioning. Here, you have some choices to make. I chose to make 3 partitions: 1 partition on the first SSD (root “/”), 2 on the second SSD (10Gb for”/usr” and ~5Gb for “/home”) all with the new format Ext4 (better results than Ext3).
You have noticed that I didn’t add swap partition, why? First of all, because the netbook has 2Gb of RAM and secondly because after some reads, the writings in the swap seems bad for the life of the SSD (not all people are agree with that but I had to take a decision).

8- after this important step, the installer copies the OS on the netbook.

9- reboot when it’s asked (don’t forget to remove the usb key).

As you can see, the boot is quite quick, under 40 seconds to go to the desktop with the wifi connexion.

Alice uses her eeePC for 4 main usages:
– to stay in touch with our family (in Spain, France, ),
– in the kitchen as a (luxury) webradio
– to make videos of our children or take a picture during cookery.
– to record her voice for her French lessons.

So, I had to install some softs:
– for the video, wxCam (sudo apt-get install wxcam). It has better perfomances than Cheese in video recording mode.
– for the webradio, Rhythmbox with a customized list of French webradios.
– for the webphone, Skype for linux (works better than on Xandros even the webcam). You must specify the sound device to get sound. Go to Options / Sound Devices and choose in the 3 lists, “HDA Intel (hw:Intel,0)”, then Apply.
– finally, nothing to do for the voice, Sound Recorder is already installed on Ubuntu Remix.

To finish the job:
– remove unused stuff like Evolution
– add plugins like Flash (nonfree), Jre (SUN).
You can do this job with the Synaptic Package Manager (in Administration tab).
– remove unused applications started with the system: go to Preferences tab / Startup Applications and unselect “Bluetooth Manager”, “Check for new hardware drivers”, “Remove Desktop”, “Visual Assistance”. Of course it depends of your specifi hardware or preferences.
– add shortcuts in the Favourites tab: simply selecting the shortcut (from its tab for example, Internet) and to glide it into the Favourites tab.

Here you can see the result.


Update (2009.06.13):
Wifi WPA authentication is impossible with the current rt2860 driver. To solve this problem, we have to downgrade the driver.

1) Get the driver from….


2) Go to terminal, and move the pre-installed driver so it won’t get loaded.

cd /lib/modules/2.6.28-11-generic/kernel/drivers/staging/rt2860/sudo mv rt2860sta.ko rt2860sta.bak

3) Install rt2860-dkms_1.7.1.1_all.deb. It will also install dependencies needed to compile the driver.

sudo dpkg -i rt2860-dkms_1.7.1.1_all.debsudo apt-get install -f

If it doesn’t retrieve the right packages, makesure “build-essential”, “linux-header-generic” and “dkms” is installed. Let it run and it should complete without a problem.

4) Restart. The new driver should work automatically.


Auto updating security packages with Ubuntu (Debian) system

It’s a bit hard to maintain manually a lot of servers but it’s really
important to keep them updated. It’s why I looked for an automatic
solution and it has been pretty easy to find a good and simple one.

I propose to you to use an utility called apt-cron.

installing it on our system:
sudo apt-get install apt-cron

creating a new security list:
sudo nano  /etc/apt/sources.list.d/security.sources.list

deb hardy-security maindeb hardy-security universe

setuping APT actions:
sudo nano /etc/cron-apt/action.d/5-install

autoclean -q -ydist-upgrade -q -y -o APT::Get::Show-Upgraded=true -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/security.sources.list -o Dir::Etc::sourceparts=nonexistent -o DPkg::Options::=--force-confdef -o DPkg::Options::=--force-confold

adding a cron task:
sudo crontab -e

5 0    *   *   *  test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt

To test the auto update process:
sudo /usr/sbin/cron-apt

To check the log:
sudo cat /var/log/cron-apt/log

idea / source from 3.0 on native MAC OS-X hits better than Linux!

A great news for all developers of the port to native Mac OS-X system,the number of downloads is higher than for Linux system (according with this source:

  • “221,230 GNU/Linux users
  • an impressive 320,622 Mac OS X users
  • a staggering 2,449,863 Microsoft Windows users.”

Well done guys, I’m happy for you specially for Eric. Education mascot ready for the Foss.In in Bangalore

Rakesh Pandit ( will normally go to the Foss.In event in Bangalore (India) on Nov 25-29, 2008.
So, to go with him, the mascot has take a picture just behind the Taj Mahal..

At the moment, we don’t know if Eric Bachard ( will join Rakesh to the Foss.In, he’s waiting an answer from the organizers!
Good luck guys.

Easy multiple image submit buttons management with Mootools

It can be interesting to have multiple image type submit buttons in a form for example to print and to submit  the form to another page.
A way to do it is to change dynamically the action attribute (in the form tag) by another value just before to send the form.

First of all, add the buttons to your form:

<form id="myform" name="myform" method="post" action="my/temp/page.html">...<input type="image" src="path/to/myimagebutton1.gif" id="btn1" rel="path/to/print/action/page.html" /><input type="image" src="path/to/myimagebutton2.gif" id="btn2" rel="path/to/submit/action/page.html" /></form>

Secondly, insert a small Javascript code after the DOMready declaration.

window.addEvent('domready',function(){        $('btn1').addEvent('click', function() {                $('myform').setAttribute('action', $('btn1').getProperty('rel'));                $('myform').setAttribute('target','_print');        });        $('btn2').addEvent('click', function() {                $('myform').setAttribute('action', $('btn2').getProperty('rel'));                $('myform').setAttribute('target','_parent');        });});

We get the action link from the rel attribute of the related image button and inject it to the action attribute of the form tag.

In the same time, it’s possible to declare the place (target) which will be active (here we have _print page for the 1st and _parent for the 2nd button).

This tip is really usefull when you use the Formcheck class!

FormCheck library for Mootools – fix overlay tips for IE6.x

It’s not possible to show a div element (or any other elements) on a select field in Internet Explorer 6.x
Of course, we get the same problem with the library FormCheck (

I’ve produced recently a small “dirty” fix.
The solution is to insert a iframe inside the generated div (tips).

in forcheck.js:

/*        Function: addError                Private method                Add error message        */        addError : function(obj) {...                if (obj.element) {                        obj.element.empty();                        if (this.options.display.errorsLocation == 1) {                                var errors = [];                                obj.errors.each(function(error) {                                        errors.push(new Element('p').set('html', error));                                });/** Iframe hack for IE6.x for select overlay **/                                if(Browser.Engine.trident4){                                        var cf_iframe = IFrame({                                                src:'about:blank',                                                'frameborder':0,                                                'height':'35px', //must be improve but how?                                                'width':'300px', //must be improve but how?                                                'background':'transparent'                                        }).injectInside(obj.element);                                }/****/                                var tips = this.makeTips(errors).injectInside(obj.element);...

in formcheck.css

.../* fix IE6.x iframe/select */.fc-tbx iframe {        z-index:-1;        filter:mask();        display:block;        position:absolute;}

The known problem with this fix is the fixed dimensions of the iframe.
It’s not possible to put at 100%, the iframe generates ann horizontal scrolling bar.

This solution is based on an idea of Fabien Molinet ( and his script called “Select Fix 0.30”.
Thanks to him! Education mascot ready to go to Toronto!

Today, it’s time to make a break and contribute to the open source community!
Well, I drew a new image for the Education project.
The theme is a visit of the Edu-MOoouette (mascot of the project) to Toronto (specially for Eric).
See the result :

So, it’s a new image in the collection:
What do you think about the images?