JP'zlog

Aller au contenu | Aller au menu | Aller à la recherche

mardi 1 mai 2007

Exporting a DotClear v1 blog to static HTML files

Planning the migration of this blog to a new location[1], I have implemented a quick Ruby script to extract the content to static HTML files. The script is relatively small and uses ERB for the pages templates (like Ruby on Rails).

You can download it from http://www.izforge.com/dotclear2static/, it's under a MIT-style license (hence take it, fix it, scratch it, trash it, upgrade it).

This Ruby script extracts the posts from a Dotclear v1.x blog MySQL database. This is useful when you want to migrate to another blogging system without going through the hassles of making an import. Indeed, the import from Dotclear to, say WordPress, is a boring task.

Requirements:

  • A MySQL database.
  • Ruby
  • Ruby/MySQL from http://www.tmtm.org/en/ruby/mysql/

Making a successful export:

  1. Obtain a database backup of your live DotClear blog.
  2. Import the database backup into your MySQL database. I suggest that you perform the extraction from a local database rather than from the real one, but that's up to you in the end of the day ;-)
  3. Open 'dotclear2static.rb' and change the settings that are available under the license text. Make sure that you enter the right settings for MySQL!
  4. Run 'dotclear2static.rb' ... and tada! You've got your static files!
  5. Don't forget to copy the Dotclear images folder to the output directory.

Making the transition : it would be stupid to loose your pagerank! Remember that "cool URIs don't change". My advice is that you:

  • move your new blog to a new URL (say http://newblog.info/)
  • move the static files from the old blog to a subfolder of the new URL (say http://newblog.info/old)
  • put 301 redirections from the old location to the new URL (ex: http://newblog.info/old).

301 redirections can be set from a '.htaccess' file for the Apache HTTPD server. Please consult Apache documentations if you don't know how to do that...

Tip: the static filenames are of the form 'postnumber-titleurl.html', hence: you can redirect

http://oldblog.info/index.php/year/month/day/<post>

to

http://newblog.info/old/<post>.html

I'll put my htaccess files the day I make the transition to the new blog.

Edit: of course you should use HTTP 301 for redirections, not 403 :-)

Notes

[1] Who will be smart enough to guess the URL? :-)

lundi 16 avril 2007

Le couteau suisse du PDF

Si vous devez travailler avec des documents PDFs (au hasard pour faire de l'édition de documents scientifiques), je ne saurai trop vous conseiller de jetter un oeil plus qu'attentif à pdftk. Cet utilitaire en ligne de commande sait faire tout type de manipulations souhaitables et pour lesquelles GhostScript n'est pas toujours le meilleur compagnon. J'ai par exemple essayé la concaténation de PDFs avec ce dernier, mais il m'a saccagé avec joie les couleurs après le premier document. Il faut dire que GhostScript ne serait pas GhostScript sans ses problèmes récurrents avec les PDFs ;-)

Ainsi pdftk permet de :

  • concaténer des PDFs avec une sélection et un réordonnancement de pages assez sympathique
  • extraction de pages
  • cryptage et décryptage, restrictions de droits sur un PDF
  • application d'un watermarking en fond ou bien d'un tampon en premier plan (ex : draft écrit en travers des pages du document)
  • compression, décompression et réparation de PDFs
  • ... d'autres fonctionnalités que j'ai sans doute oublié.

Note pour les utilisateurs de MacPorts (Mac OS X) : la compilation de pdftk entrainera celle de GCC 4.1. Compter au bas mot 4 à 5 heures sur un modeste processeur G4 :-(

lundi 2 avril 2007

Virtualisation opensource sous Mac OS X

Les heureux possesseurs d'un Mac Intel peuvent utiliser divers logiciels de virtualisation afin de faire tourner du Windows, Linux, BSD ou plus exotique en même tant que Mac OS X. Le bien connu Parallels Desktop propose même un mode nommé cohérence dans lequel les fenêtres des applications Windows vivent comme des fenêtres normales de Mac OS X. Microsoft propose gratuitement Virtual PC pour Intel (mais pas l'ancienne version PPC !) et VMWare propose aussi sa solution gratuitement.

Bien évidemment, les heureux possesseurs d'une machine équipée d'un processeur PPC comme moi ne peuvent accéder facilement aux joies de la virtualisation ... ou presque. Il existe en effet un projet opensource nommé QEmu, développé par un frenchy et qui a le bon goût d'être multi-plateformes. Il sert également de base au support de virtualisation qui a été intégré dans le noyau Linux.

Une interface graphique pour Mac OS X, compilée pour PPC et Intel, est disponible : http://www.kju-app.org/kju/.

Sur un Power PC G4, j'arrive à faire tourner ReactOS (un clone opensource de Windows) ou FreeDOS. En revanche il m'est impossible de lancer un Linux récent ou un Windows. Ceci dit cette solution est de loin la meilleure pour les possesseurs de Macs PPC :-)

mercredi 28 mars 2007

Un bien bel article sur MySQL

Si comme moi vous n'êtes pas vraiment fan de ce pseudo-SGBD qui prend assez fréquemment des distances par rapport aux standards SQL, allez donc lire ce bien bel article. Si vous êtes un fan invétéré de ce système qui a attendu la version 5 pour implémenter les contraintes d'intégrité, les vues et les triggers, allez donc aussi y faire un saut.

Rappellons que PostegreSQL ou Firebird sont aussi d'excellents SGBD opensource nettement plus proches des standards. Ils sont également publiés sous des licences moins contraignantes (respectivement BSD et Mozilla Public License). A noter enfin qu'il existe un projet permettant de faire passer du SQL/Oracle sur Firebird.

mardi 20 février 2007

Qt static linking and removing the mingw dll dependency

For the development of the IzPack Java installer native launcher, I have been facing a tricky issue regarding the compilation. Indeed, I wanted to get a single executable with no dll dependencies, but somehow never managed to get rid of the one on a MingW dll. I finally found a solution somewhere on the net :-)

  1. You will need to recompile Qt, so run configure with the -static option. You should also remove the support for rtti and C++ exceptions. You can also gain some space by removing the themes but the windows and windowsxp ones.
  2. ... but before you compile anything, edit mkspecs/win32-g++/qmake.conf and remove the -mthreads. This is actually why you get this stupid MingW dependency. Please note that the build may break if you still have the rtti and C++ exceptions support built-in.
  3. Run make sub-src and go drink a few coffees.
  4. You can go back to your Qt application, run qmake then make. Make sure you had static in your QMake file configuration.
  5. The executable can be large (about 5MB), so do not hesitate to run UPX on it.

With my trimmed-down Qt build, I am getting a UPX-compressed standalone executable of 1,94MB.

mardi 13 février 2007

RubyCalc

Pierre Chatelier viens de sortir une nouvelle application pour Mac OS X : RubyCalc. Il s'agit d'une calculatrice appellant Ruby (étonnant non ?) et qui est disponible en tant qu'application Cocoa normale, service pour les applications Mac OS X et widget pour Dashboard.

Pierre, tu devrais penser à passer ce soft sous une licence opensource, histoire de voir comment tu as implémenté tout ça :-) Petite question : embarques-tu Ruby (et comment ?), ou bien utilises-tu RubyCocoa ?

mercredi 24 janvier 2007

Les licences CeCILL

Le CEA, le CNRS et l'INRIA nous avaient gratifié il y a quelques temps d'une nouvelle licence opensource dénommée CeCILL. L'idée de base était d'offrir une licence de droit français, les licences opensource traditionnelles étant de droit anglo-saxon. Le premier jet fut donc une licence en version 1 qui ressemblait fort à une franchouillardise :

  • texte de référence en français, traduction en anglais n'étant pas "officielle"
  • compatibilité supposée avec la licence GPL
  • licence de type réciproque, comme la GPL
  • langage approximatif.

Bref, cette version 1 a reçu un acceuil plutôt mitigé, même auprès des libriiiiistes barbus franchouillards les plus convaincus. La version 2 est en revanche bien plus intéressante. Même si l'OSI ne reconnait pas pour l'instant la CeCILL, la FSF l'a adoubée, ce qui ne peut que faire taire les esprits graincheux qui vénèrent RMS :-)

Les avantages de cette version 2 :

  • elle devient une famille de licences
  • les versions françaises et anglaises ont même valeur (elle est donc exploitable en dehors de nos petites frontières)
  • texte clarifié
  • en cours de validation à l'échelon européen, la rendant encore plus difficile à casser.

La famille de licences est la suivante :

  • CeCILL : comme la précédente, un GPL-like
  • CeCILL-B : une BSD-like, avec une clause de publicité comme l'ancienne licence BSD (les barbus fans de RMS vont faire un caca nerveux)
  • CeCILL-C : une LGPL/MPL/EPL/CDDL-like, "réciproque-douce" mais sans restriction de liaison avec du code sous autres licences.

En guise de résumé, ce jeu de licences est intéressant à plus d'un titre. Il couvre le panel classique de besoins en matière de licence opensource (réciproque forte, réciproque, libérale) et assure une protection de droit français qui ne freine pas les collaborations internationales. Seul vrai problème : cela fait 3 licences de plus et ajoute encore à la prolifération des licences ... A terme, ces licences pourraient voir leur salut par une validation à l'échelle européenne.

Pour aller plus loin (je ne suis pas juriste, j'ai pu faire des boulettes hein) :