I read a lot of PDF documents during the day, be it at work or at home.
For me, it comes as a shock that almost no viewer (to the exception of Adobe Reader) is able to open mulitple files with tabs !
So I looked at Evince and began wondering why nobody asked for that and then.. I
found that.
This discouraged me a little bit to see such narrow minded opinions.
But anyway, I've never done any GUI application, time to start, neh ?
That's why, I hacked tabe. But while coding this, I discovered the tasks was way bigger than I imagined and soon realized I had not that much time to give to that project.
I did what I should have done before coding tabe : a good ol' Google search.
After a few minutes, found the "hack" I was looking for and a few seconds later, I had tabs with all the feature you may ask for.
This miraculous solution is based on MozPlugger, the beauty is that it support many browser. You may install it as such : (Ubuntu/Debian)
$ sudo apt-get install mozplugger
And you're done with the latests Ubuntu, for the others :
$ vim $HOME/.mozilla/mozpluggerrc
And input this :
application/pdf: pdf: PDF file
application/x-pdf: pdf: PDF file
text/pdf: pdf: PDF file
text/x-pdf: pdf: PDF file
application/x-postscript: ps: PostScript file
application/postscript: ps: PostScript file
repeat noisy swallow(evince) fill: evince "$file"
If you happen to use Chromium, you should read this to complete your installation.
Restart your browser and you're done.
And if you wish to remove the toolbar from evince, edit ~/.gnome2/evince/evince_toolbar.xml to look like this:
<?xml version="1.0"?>
<toolbars version="1.0">
</toolbars>
I let you configure your window manager to open PDFs with your browser.
So true....
(K64 is short for Kernel-64bits.)
Last week end, I added some RAM stick into my laptop and so I wanted to make it run in 64bits to enjoy all the benefits from the added memory.
But, dear Apple had decided that my Macbook was not Pro enough to run a 64Bits kernel... I don't agree with that.
After a quick search through my dear friend Google, I found that I had to hack the boot.efi file of my MacBook. So without further addue, here is how to make your Macbook5,1 boot a kernel in 64 Bits. It might work with other Mac type, try it at your own risk and please report if it works for you !.
Read the rest of this entry »It's one of thoses dream you have when you're a kid and they only came true when
you have your own house and the money to afford it yourself.
Well, yesterday, I (we !) saw the moon !
And I don't mean with my eye through a window but with a brand new telescope on
my balcony.
It was pure magic. The little astro nerd inside me keep jumping up and down since then :).
Here a little video :
(sorry for the poor quality. but it should give you an idea of what you may be able to see with the right equipement.)
Next step : Mars or other planet :D. I can't wait !!
C'est mon nouveau pote pour les saisons a venir (on espere !). Je l'ai trouve sur leboncoin pour un prix tres raisonnable et vendu par quelqu'un de tres sympathiques qui connait son morceau au rayon velo.

La description du site : Ce joli et grand vélo rouge (taille 60) porte le nom d'un des plus fameux coureurs franço-espagnol des années 70, rival d'Eddy Merckx, disparu en 1994. Comme souvent, la retraite sportive impose une reconversion, et Luis avec l'appui d'industriels Stéphanois, se lança dans la commercialisation de cycles. La production, souvent honorable ne fut néanmoins jamais d'une qualité exceptionnelle.
Notre vélo date du tout début des années 80, et a été construit en acier dans la Loire, par la SIFEM (Société industrielle de fabrication d'équipement métalliques...Un poême). Souvent, des tubes Vitus étaient employés pour construire les vélos Ocana. Pour le notre, ce n'est point le cas : Les tubes "précitubes" proviennent d'une compagnie basée dans le Cher spécialisée dans les alliages spéciaux et les aciers allégés. Le vélo porte toujours son sticker d'origine nous indiquant qu'il a été acheté en région parisienne. La peinture rouge métallisées est en bon état, de même que le cadre, simplement cogné sans conséquence sur le hauban gauche. Malgré sa grande taille, le vélo est relativement léger. La forme très compacte ravira les "transformeurs": L'axe carré et les pattes longues permettent de convertir facilement ce vélo en fixie/pignon fixe.
Le jeu de roue Rigida (jantes et moyeux) sont comme neuf, et sans saut ni voile. Le pneus Hutchinson (22x700) issus d'un ancien stock, ont été remontés récemment et ne cumulent pas plus de 350 kilomètres.
La transmission est un classique de l'époque. Le Français Huret ayant été racheté en 1980, les modèles avant et arrière sont des dérailleurs Sachs-Huret ECO. Le fonctionnement est très doux, les dix vitesses sont étagées de manière progressive et logique. Le pédalier Stronglight propose deux plateaux de la même marque de 48 et 40 dents. Les pignons vont de 13 à 25 dents.
Leviers de freins et étriers CLB sont en parfait état. Les cocottes en caoutchouc présentent une belle épaisseur et sont donc particulièrement confortables.
Le cintre très arrondi ressemble beaucoup aux guidons créés pour le cyclisme sur piste. Il est produit par ATAX, tout comme la potence (en 100mm). Enfin, la selle en peau grise est en bon état. Sans doute d'origine italienne, elle ne faisait pas partie de la dotation d'origine, mais le Club a souhaité offrir au vélo de Luis, un repose-fesses digne de son prestigieux nom!
Justes quelques photos pour vous montrer la chose dans la suite...
Read the rest of this entry »Deja.. Ca fait 8 ans que ce "blog" existe. Je n'ai jamais vraiment su ce que c'etait au final que ce petit bout de page internet. Un blog ? Un wiki geek ? Un melange des deux ? Au final, je mets un peu ce que je trouve interessant/cool et quand j'y pense et que je peux prendre le temps d'ecrire.
J'ai eu un gros passage a vide vis a vis de l'ecriture mais depuis que j'ai refait le blog, j'ai de nouveau envie.
Aucune garantie cependant, ayant enormement de projet a cote, je commence a manquer un peu de temps pour certaines activites. La vie est une question de priorite comme dirait Magnum.
Quand j'y repense, 8 ans, ca fait un peu figure de dinosaure du net, non ? Toujours pas eteint cela dit ! Pas grand chose a dire tout ces billets, si ce n'est que c'est toujours drole de relire des choses datant de 2003 malgre un style...deplorable :).
Bref, au lieu de sortir des platitudes, je vais m'arreter la et partir en week-end :).
A bientot les copaing !
If you happen to work/tinker with Linux embeded devices, you must know that uImage is the U-Boot image format. And, maybe, you will need to compile your kernel, using your toolchain and cross compilation tools of choices, you have successfully compiled your kernel. Congrats ! (If you don't know how to get here, search on Google, you'll find tons of tutorials.)
Now, if you happen to have a Debian on your devices, you would like to build a cool .deb package with your kernel.
This way, you could install it with a simple :
dpkg -i mykernel.deb
Luckily for you, this is easily done using make-kpkg, a tool from the kernel-packages. But.. is it ? Not actually as there is no support for uImage format :/.
So here is a little patch (it was sent to Manoj Srivasta, but he did not answered yet !)
This patch was originally written by "Luc" on #lacie-nas. He did all the hard work !). I just rewrote a few parts and add some glitter here and there.
Well, with this, you should be able to compile your own uImage kernel now !
If you don't want to patch make-kpkg, yon can install this .deb package, I made from my Ubuntu, I did not test it with Debian but I think it SHOULD work.
Happy hacking !
As promised yesterday, here is why, and how I changed from
WordPress.
Why change ?
It's a valid question, WordPress is an excellent platform and there isn't much to add to it.
But I was feeling very tired of updating it every two weeks or so because of a security update. It made me remember my days with Windows and their so-called security fixes!
Also, it was heavy. Heavy on the server, heavy on the browser. I mean... we are in 2011, we have big and powerful machines and it is still deadly slow. To load...a f****** blog?!? In what dimension please?
I installed cache plugins, rules to avoid harassing the server too much, even fine-tuned the MySQL server. Maxime Petazzoni (who is kindly hosting me) regularly had 10+k files created in /tmp from one of these plugins. And I don't even get that many hits! It was all non sense. I am not at the services of WordPress, it's the other way around!
WP is suffering from the Microsoft syndrome: too many users to make happy, too much legacy to bear with it. It just becomes bloated and wide open to attacks as many hackers are looking for them.
And so my quest began for a simple blog, that would handle my posts in plain text and would generate static files so it would be quick. I was even ready to give up on the comments! Such a disappointment... everything I found was in Ruby! RUBY FOR GOD SAKE! If you don't get it, it's like doing a new lightweight kernel focused on performance, and writing it in Java, or doing a new 3DS Max in Flash. It's pure madness to me... I really liked what I saw when I read about Jekyll until I found out the requirements. To me, Ruby is just another excuse to hide everything behind a layer of magic and this leading to that, your computer shop can sell you another 4Gb of RAM. I don't even think it's great to start programming... anyway.
So I realised I had to code the engine I wanted to be happy with it. I wanted to make it in C at first, then thought it would take me more time that I can spare on such a project and would also be a pain in the ass to compile and run on any other hosting. So I went with the good ol' PHP.
I tried to make everything as fast and as smooth as I could. Bear in mind, I made it for me and maybe some power users, it's not really tailored for any end users (if you can use it, I'm really glad though).
How to migrate from WordPress?
I just needed to take the content of my posts and write it in files with the correct naming convention. Believe it or not, what took me a LOT of time to figure out, was the RewriteRule set for Apache. I'm a lazy geek and do not like to bloat my code with something already done by brilliant people.
I digress...
A simple "mixing" software was able to do that for me. I then looked for a solution for the comments, that's when I found about the new version of Disqus which is REALLY good! I used a previous version on a little Tumblr blog when I was in South Korea, it was not that good, buggy and lost some data :/.
But no, it was a breeze to import the comments from WP. I just needed to geek out a little script to create a CSV file mapping the old URLs and the new ones. Once it was done, all the rest is magic :).
So right now, you are served static HTML with a just a sip of Javascript. I essentially went back from web 2.0 to web 0.9 :) The best part is that I have exactly the same functions I used in WP but now it's quick and I can easily hack anything I want.
If you have any questions or opinion on the code of Volatile, send me an email or better, post a comment. I will happily reply!
OHAI !
This is my very first posts with my very own blog engine !
I called it Volatile, in reference to the Volatile keyword in C.
No more "Wordpress 3.X is available !" and no more plugin to update.
The whole concept is about html pages and plain text file. Old school web.
But as I'm a little tired, I will write a big post tomorrow with every
technical
details I can think of and also how I made the swap from WordPress to
Volatile.
If you have any comments, feel free to drop them :)
Yesterday, I needed to compile MPD for ARM (git version, story for another article). Since it's way more easy to get dependencies satisfied through apt-get rather than building them by hand, I went for the native compiling option instead of a cross-compile tool-chain. Which I find very unattractive when compiling complex software with lots and lots of dependencies, tool-chain are much more suited for a "one" job like kernel (IMHO).
BUT ! I don't want to pollute my ARM machine with all the dev stuff that I don't need this it's not a machine where I want to compile anything (not much storage for the OS).
So I went for the QEMU solution, QEMU let you create a VirtualMachine of an OS with a virtualized ARM arch. Thanks to the post of Francisco Benitez Leon, I was able to do it painlessly. Just a few hints that Francisco omitted in his article, that's why I'm writing this one, well it's a big copy/paste with modifications all over the place.
Since, I'm on a Mac, I'm pretty f**** with qemu-system-arm so went with a VirtualMachine of Ubuntu with QEMU inside it (Inception, remember ?).
So it's going that way :
- Install a VM of a Linux OS, don't care what it is, adapt the following command to yours if you don't have apt-get.
- Start it
How to install QEMU ?
Simple :
$ sudo apt-get install qemu qemu-kvm-extras qemu-arm-static
How to install Debian ARM with QEMU ?
Download the ARMEL kernel image and installer (initrd image) from this repo : The actual Debian Squeeze kernel on the official repo are bugged, the network card will not work with QEMU (only with QEMU as it seems).
So get theses one instead :
$ wget http://people.debian.org/~joeyh/d-i/armel/images/daily/versatile/netboot/initrd.gz
$ wget http://people.debian.org/~joeyh/d-i/armel/images/daily/versatile/netboot/vmlinuz-2.6.32-5-versatile
Create a disk image but use the raw format so you could mount it on your system after the installation process has finished. I recommend you much more than just 1G, I went with 5G to be able to build things in the future.
$ qemu-img create -f raw hda.img 1G
Start QEMU :
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -hda hda.img -initrd initrd.gz -append "root=/dev/ram" -m 256
And follow the usual Debian installation instructions and get some coffee, it's slow as hell.
At the end of the installation process you will get a message pointing that Grub hasn’t been installed but don’t worry because QEMU is capable of loading the kernel and initrd images so the machine could boot up. After the installation has ended you will need another initrd to run the machine, remember that the one previously used contains the Debian installer. You can get that from the installed distro.
So, mount the created disk on your system (that’s why you needed to create it in raw format) and copy the image from the boot directory.
$ sudo mkdir -p /mnt/arm_qemu
$ sudo mount -o loop,offset=32256 hda.img /mnt/arm_qemu
$ sudo cp /mnt/arm_qemu/boot/initrd.img-2.6.26-2-versatile .
$ sudo umount /mnt/arm_qemu
Important note : On the mount line, you have an offset option, be careful, this one is for a 1G image. What is this offset ? You must keep in your mind that hda.img is not a simple partition but a whole drive with a MBR, padding and may be other stuff. So, you can't mount from the bytes 0 until the end of the file.
How to compute this offset for you ?
Read your image with fdisk :
$ fdisk -ul hda.img
You will obtain this :
Disk hda.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x000a51ec
Device Boot Start End Blocks Id System
hda.img1 * 2048 15988735 7993344 83 Linux
hda.img2 15990782 16775167 392193 5 Extended
hda.img5 15990784 16775167 392192 82 Linux swap / Solaris
I want to mount the extended partition, that's where / is for me. So my offset would be : 2048 * 512 2048 : This number is the number of sector where my partition start, but mount will want bytes. 512 : It's the size of one sector. It's given by fdisk, look at the third line.
So in this cases I would do :
$ sudo mount -o loop,offset=$((2048 * 512)) hda.img /mnt/qemu_arm
Start you new Debian
Once you've done everything, run your machine with :
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1"

/var/www/flickr