générez, qu’ils disaient !

Depuis toujours, j'essaye de trouver la meilleure forme pour mon (ou mes blogs).
Une forme qui soit à la fois adaptée au contenu et et générique, une forme qui tienne compte des métadonnées spécifiques, mais qui soit aussi très générique. J'en avais déjà parlé ici il y a un moment, avant d'abandonner provisoirement, comme à chaque fois, mes expériences sur ce sujet.
Et puis finalement, je les ai reprises, mais en Java (au lieu de Groovy) essentiellement à cause de mon script d'export (ou plutôt de mes scripts d'export, faudrait pas oublier goodreads). Parce que bon, avoir des scripts qui transforment toutes ces données en jolis fichiers XML , c'est bien. Mais pouvoir les récupérer et générer un site à partir de tout ça, c'est mieux, non. Voici donc java-site-generator (bientôt en beta). Qui, à partir de ces fichiers XML (et bientôt à partir de fichiers markdown, textile, d'images, …) génère un site statique qui soit visible depuis mon dns-323. bon, pour l'instant, il est non documenté. C'est mal. il est non testé. C'est mal. Il est non packagé. C'est mal. Mais il fonctionne, et ça c'est bien. Hélas, à cause d'une interface d'administration de la freebox un peu capricieuse ces temps-ci, je ne peux pas vous donner l'url dans le dns-323. Au lieu de ça, je peux vous montrer sur mon site public tout ce qui est généré. Donc normalement, d'ici demain, ce sera visible lé (faut juste que je télécharge FileZilla, que je l'installe, et que je'uploade les 4 Mo de données) : http://nicolas.delsaux.free.fr/lifestream
Et évidement, que c'est moche, je ne prétend pas être web-designer, ni avoir suffisamment tout terminé pour me pencher sur les arcanes du style !
Publicités

Le retour de l’aggrégateur auto-hébergé ?

Il y a peu, j’ai installé dropbox.
Et je dois dire que c’est un logiciel absolument épatant si on veut garder quelques fichiers à portée de main sans même s’embêter à trimballer une clé USB. D’ailleurs, j’ai quelques fichiers critiques qui sont hébergés dans mon dossier dropbox pour être disponibles partout où je vais.
Donc, j’en ai était content.
J’en étais encore plus content quand j’ai commencé à bosser sur une idée que j’avais en tête. Parce que dropbox, avec ses fonctionnalités de partage de fichier, permet le développement quelquesoit la machine sur laquelle on se trouve.
Et puis, ce matin, mon Google Reader m’a sorti, depuis Ruby Inside, un lien vers un framework de génération de site statique : Jekyll. Ce qui m’a aussitôt fait penser à webgen et à mes précédentes tentatives d’aggrégation locale de mes messages sur la toile. Du coup, quand j’aurais le temps, je crois que je jouerais à nouveau un peu avec Ruby (ou peut-être Groovy, tiens) pour récupérer toutes les pages web que j’ai écrites en dehors de mon site. Ca sera marrant (ou pas), et ça me permettra peut-être de mettre à jour ma opage chez free d’une façon enfin propre.

Je vais m’y remettre ….

Oui, je le sais, ça fait un moment que je n'ai rien écrit.

Et, pire encore, ça fait un sacré moment que je n'ai pas fait avancer mon petit jouet lé-bas. Donc, ce week-end, je m'y remets ! Au programme ?

  • Avoir des dates de modification des entrées qui correspondent aux dates des flux RSS. D'après Thomas, ça n'est pas bien compliqué. Je cite : "This can already be done since there is a fixed (and documented :-)) order how meta information is applied. Because the modified_at meta info key comes from the path meta info, it can easily be overwritten using a meta information file or the meta information block of a page file. I do this for the website/src/news/release_*.page files." Pour ceux qui comprennent le charabia de webgen, ça veut dire globalement que si je remplace mon champ "filemdate" par un champ "modified_at", webgen utilisera les dates automatiquement.
  • Gérer encore un peu mieux les entrées de goodreads
  • Faire un peu de publicité pour mon extension à webgen
  • Intégrer les flux RSS (que je génère enfin correctement) dans mon template de site web
  • En parlant du template, je pense lui offrir un ravalement de façade pour que le code écrit depuis snippets passe bien, et que le site ressemble un peu à celui d'observin. Qu'est-ce que vous en pensez (vous qui vous cachez derrière vos écrans).
  • Eventuellement, ajouter à posterous un lien vers le flux RSS, histoire que toute ma vie défile devant vos yeux.

Pour parler d'autre chose, si vous avez un ipod ou un quelconque moyen de lire les podcasts, allez vite vous abonner à utopod. C'est BIEN.

Et pour parler d'encore autre chose, Belzel m'a parlé de Qtags, sa tentative C/Qt de gérer ses tags IPTC. Eh ben ça m'a sacrément remotivé pour que je m'y remette. Bon, pas tout de suite, évidement, mais bientôt, vous verrez, il se passera des choses. Enfin, d'autres choses.

Ca commence à bien marcher mes histoires locales …

Vous vous en souvenez, j'avais commencé à jouer avec les flux RSS pour créer un site perso qui reprenne toutes les données de mes divers sites web …

Et ça marche franchement bien.

Bien sûr, je n'ai pas encore de flux RSS mais ça ne tardera plus (grâce à webgen, encore une fois).

Par contre, j'ai bien réfléchi aujourd'hui, et je ne mettrais pas mon flux Google Reader dans mon site web, parce qu'il me fera une copie du message initial, et donc introduira dans mon site web des données que je n'ai pas écrites.

Du coup, j'ai implémenté le support de delicious, mais avec une subtilité.

Il y a dans delicious des éléments que je ne veux pas mettre dans mon site (allez savoir pourquoi …), et donc je lis le flux associé au tag @toblog. Comme ça, si j'ajoute une url que je veux blogger, il n'y a pas grand chose à faire en plus pour que ça marche. Et comme vous le verrez bientôt sur mon site perso, ça marche au poil.

Maintenant, il faut que je rende la chose vraiment utilisable.

Et ça, c'est pas bien compliqué : je crée une tâche planifiée dans Windows pour lancer le script Ruby qui va générer le site web, et après il faut encore que j'uploade les fichiers chez free … Bon, ça, c'est un peu moins bien. J'ai bien trouvé un peu de doc, mais je ne la trouve pas fameusement sympatoche … Pour tout dire, j'ai même l'impression qu'écrire un peu de ruby pour gérer l'upload FTP après l'appel de webgen, ça ne sera pas plus compliqué que de faire un script batch …

Du coup, qu'est-ce qu'il me reste à faire ?

  • le flux RSS
  • une réécriture d'URL pour faire en sorte que le maximum de liens restent dans le site web.
  • Ce FTP dont je parle plus haut
  • Et puis tous les trucs de webgen qui seront si bien : les tags, les archives, …
  • Améliorer les pages des différents sites d'entrée
  • Et peut-être améliorer encore les pages goodreads (parce que j'en ai déjà 153)

le web 2, ça rend dingue

La preuve, cet article sur l'extraction de données de la wikipedia pour les insérer dans Google Maps.

J'avais l'impression de faire un truc pas mal avec mon site web généré … Eh ben franchement, j'ai l'air d'un nain.

Au fait, pou ceux qui voudraient des nouvelles, ça avance, malgré quelques soucis liés à la manière dont webgen crée un nom à partir d'un nom de fichier, qui se mélange un peu les pinceaux avec les entrées numériques (genre linuxfr ou dzone).

Une fois que ce sera réglé, je pourrais m'attaquer à deux gros chantiers (enfin, au moins deux) : 

  1. Inclure des flux complexes (goodreads, google reader et delicious, je pense très fort à vous)
  2. faire de la réécriture d'url pour utiliser au maximum mon site et au minimum les sites originaux.

Bref, de quoi m'occuper jusqu'à Noél, époque à partir de laquelle je pense recommencer à jouer à l'IPTC? mais cette fois-ci en repartant de iPhoto. Mais j'en reparlerai plus tard …

Sitemaps, lifestream, …

Comme je le dis dans une note là-bas (ça me fait d'ailleurs penser qu'il va aussi falloir que je trouve une bonne solution pour ajouter ce flux), il va quand même falloir que je pense à ajouter un fichier sitemap dans mon lifestream que j'ai uploadé hier soir, histoire d'être sûr que tout soit correctement indexé.

Au passage, pour mes fans, vous pouvez aller y jeter un coup d'oeil, même si ça n'est encore ni complet, ni fonctionnel : http://nicolas.delsaux.free.fr/lifestream

Vous verrez, les nouveautés devraient arriver sous peu.

Et quelles nouveautés :

  • mes flux goodreads, delicious et google reader
  • un flux RSS global (que j'essaierais de remettre dans une case de mon posterous)
  • un meilleur plan du site et des sous-parties,
  • des tags
  • Et peut-être même des commentaires avec disqus

Traitement de nos photos

La semaine dernière, j’ai acheté un super appareil photo numérique (un panasonic DMC-FZ50(Il faut vraiment que je bosse mon plugin ISBN/ASIN, comme ça, je pourrais récupérer toutes les infos depuis Amazon et j’aurais la classe !). Depuis, bien sûr, je ou plutôt nous prenons des photos, et essayons de l’utiliser au mieux. Evidement, ce sont des photos numériques, donc des fichiers, qu’on gère comme tels.

Importation et visionnage

Comme on a un Mac, ça passe par l’importation des photos dans iPhoto qui est vraiment très bien pour ranger les photos, leur mettre des mots-clés (grâce à Keyword assistant, en particulier). Hélas, il semble que ces mots-clés, et la plupart des autres informations, soient stockés dans la base de données iPhoto, et non dans les métadonnées EXIF. Et ça, c’est mal (Je ne devrais pas avoir besoin d’en dire plus que ça. Mais je vais quand même m’étendre un peu sur le sujet. Un jour ou l’autre, j’abandonnerai iPhoto. Et ce jour-là, j’aurais l’air fin, avec toutes mes photos dont une partie des informations sont dans ces métadonnées, et le reste dans iPhoto. Et puis, déja aujourd’hui, je voudrais faire d’autres choses avec ces photos, et pouur ça, garder les métadonnées, c’est bien. Bref, les métadonnées EXIF, c’est plus interopérable que la base de données iPhoto.). Mais on verra plus loin comment contourner le problème. En tout cas, je peux vous dire que créer un diaporama avec les photos, c’est d’une facilité redoutable, et en plus c’est beau. Du coup, on a déja pu épater notre monde avec notre vieil iBook.

Exportation et backup

Parce que bon, regarder les photos dans iPhoto, c’est bien. Mais pouvoir garantir qu’elles survivent à un crash, ce serait mieux. Et les avoir sius la main sans avoir l’iBook dans le sac à dis, c’est mieux.

Webgen à la rescousse

Heureusement, webgen supporte un mode de création de gallerie, dans lequel je vais me plonger. L’idéal, ce serait de simplement lui fournir les photos brutes (Donc du 10Mpixel en jpeg), et qu’il génère les tailles d’images utiles avant de tout uploader sur un site web bien choisi. Hélas, pour ça, je dois lire mes données d’iPhoto, transférer les photos de l’iBook vers le portable PC, etc, … Mais je commence à avoir une idée un peu claire des étapes d’exportation.

  1. Lancer un script Ruby sur l’Ibook, pour collecter les infos de la librairie iPhoto et les remettre dans les tags EXIF. A mon avis, ça va se faire avec toute une ribambelle de gems : iphoto2, une librarire d’écriture EXIF (mais ça, il y en a plein)
  2. Copier les photos d’une machine vers l’autre
  3. Générer le site avec webgen, et avec un bon template de gallerie, pour que ça ait de l’allure.

Impression

Evidement, on ne prend pas assez de photos pour que ça vaille financièrement le coup de les imprimer à la maison (Tout du moins pour la qualité des photos qu’on souhaite obtenir.). Donc on a cherché quelques pistes pour les faire imprimer par des studios sur internet. Pour l’instant, nous avons sélectionné

  1. photostation
  2. photoweb

Mais comme on n’en a pas encore imprimé, tout ça reste de l’ordre du virtuel …

Récupération des données WordPress

Restauration du dump

Comme la machine qui hébergeait mon site est morte, sans espoir de résurection, je le crains, mes derniers dumps sont morts avec elle. Ce qui fait que les données les plus récentes à ma disposition datent de Décembre 2006, soit un an en arrière. J’ai donc perdu quelques recherches sur l’OLPC, des tonnes d’expériences comme LeBliki ou JeBliki, plein de liens delicious de peu d’intérêt et (mais c’est heureusement récupérable grâce à Google groups) toutes mes critiques SF de cette année (en plus, il y en a beaucoup moins qu’il a pu y en avoir en 2004). Bref.

Un dump MySQL, ça a quelle tête ? Eh bien tout simplement celle-là Désolé pour Fred et les autres qui ont mis des vrais commentaires, mais vu que tout le spam reste collé dans la base, j’ai tout jeté. En fait, j’ai juste gardé la partie wp_posts, qui contient mes posts. Tout le reste est passé à la corbeille.

Donc, je vais écrire de ce pas une petite moulinette Ruby qui sera capable de parser ligne par ligne mon dump MySQl, et de transformer les lignes insérant des données dans la table wp_post en fichiers utilisables par Webgen. Et cette moulinette, la voici :

Muni de cet outil que la NASA m’envie, je vais donc faire une expérience de dedumpage de ce bon vieux dump de 5 Mo. Roulement de tambour … Et après quelques avanies liées à l’utilisation de caractères pas cathodiques dans mes titres (comme des « : », des « [ » ou des « ] »), ça marche ! Je viens donc de récupérer 740 pages pour ce site web, à trier et placer au bon endroit … J’ai comme l’impression que j’ai pas fini de jouer du Ruby en furie, moi. En bonus, il faut que je trouve une feinte pour générer mes menus automatiquement, sinon ça va être la misère ! Et la façon de gérer les menus automatiquement, c’est pas bien compliqué, c’est simplement de demander à chaque fichier de s’inscrire dans les catégories dont il fait partie …

Récupération des données Ziki

J’ai eu une bonne idée, le jour où je me suis abonné à Ziki. Parce que dans cette boîte, ils maintiennent un cache des billets de mon blog, ce qui fait qu’au lieu de perdre toute l’année 2007, je n’ai perdu que les mois de janvier à mars.

Pour la période mars/juillet, j’ai dû me payer un gros copier-coller.

Et pour la période juillet/décembre, c’est la fête, j’ai un bon gros fichier RSS de 150 Ko à parser. De la rigolade, par rapport à mon dump SQL de 5 Mo 😉 Du coup, je m’en vais commencer à écrire un début de plugin pour importer des données issues de flux RSS quelconques.