Mercredi 2 juillet: Lightroom - photos supprimées du catalogue mais pas du disque
Lors du traitement de photos avec Lightroom l'une des étapes essentielles est de supprimer des photos du catalogue lors du tri. Il arrive que la photo soit retirée du catalogue mais se trouve toujours sur le disque. La place disque ainsi perdue devient non-négligeable.
N'ayant pas trouvé de solution sur la toile j'ai écrit un script PHP qui parcourt récursivement un répertoire et regarde si les fichiers photos existe dans le catalogue de lightroom.
Lire la suiteVendredi 23 novembre: WAMP2
A l'occasion du forum Romain Bourdon à annoncé la sortie de WAMP2 qui permet notamment d'installer des versions différentes de PHP et MySQL, tous les détails sont sur
Mardi 20 septembre: Script greasemonkey pour le site de la SNCF
L'une des choses qui me gène le plus sur le site de réservation de la sncf (http://www.voyages-sncf.com) est l'affichage des erreurs. Lorsque quelque chose va mal les messages sont à peine visibles car écrit en petits caractères.
Installer ce script GreaseMonkey vous permettra d'avoir des erreurs mieux visibles.
Ce script est très simple et largement copié des examples de Dive into GreaseMonkey.
Ci-dessous vous verrez deux captures, avant le script et après. Ces examples ne font pas justice, l'erreur principale que j'avais en tête en écrivant ce script est le message d'erreur "une erreur technique est survenue, merci de réessayer plus tard", message quasi-invisible lorsqu'il est affiché sur la page d'accueil.
Avant:

Après:

Mardi 17 mai: TiddlyWiki
C'est déjà une vieille news dans le monde des blogs mais GTDTiddlyWiki est assez impressionnant. C'est un wiki qui tient dans un fichier (merci Ajax) à utiliser pour implémenter Getting Things Done.
Il est très pratique sur une clé USB avec Firefox portable (J'avoue que j'ai volé l'idée quelque part mais je ne me souviens plus où).
Installez-le (il suffit de copier le fichier sur votre machine) et jouez avec ![]()
MaJ: en fait beaucoup de javascript mais pas de XMLHTTPRequest. L'emploi du terme à la mode Ajax n'était donc pas approprié.
Dimanche 6 février: Design patterns
Si le bliki de Martin Fowler je suis tombé sur Patternshare, une initiative de Microsoft qui a pour but de partager des résumés et explications sur les Design Patterns.
Le site est très laid sous Firefox, il faut augmenter la taille des polices pour pouvoir lire quelque chose.
(Via Martin Fowler's Bliki.)
Lundi 24 janvier: Programming Ruby (le livre)
Je viens d'acheter Programming Ruby afin de jeter un oeil à ce langage.
Le livre est arrivé sous papier à bulles 7 jours après la commande en ligne. En plus il est dédicacé par l'auteur !
Dimanche 16 janvier: Maintenir sa liste de todo
J'utilise depuis deux semaines l'excellente application Tracks pour maintenir ma liste de todo.
Cette application met en place certains principes de Getting Things Done (GTD), un livre de David Allen pour être mieux gérer son temps.
Je n'ai pas encore pris totalement mes marques (sachant que je n'ai pas acheté le livre GTD), bien définir les projets et les contextes demande de la pratique.
Tracks est écrit en Ruby en utilisant le framework Rails. Ruby est décidement un langage intéressant.
MaJ: sur ce site site se trouve une explication du GTD
Mercredi 12 janvier: Revision des sources
Beaucoup d'entre vous connaissent l'outil CVS qui permet de gérer le code source (ou tout autre document) en gardant l'historique des changements ainsi que la personne à l'origine du changement.
Subversion (que j'utilise
est souvent désigné comme le successeur de CVS mais ca serait oublier d'autres alternatives
Tous les trois ont des approches différentes du problème qu'il est difficile de résumer, je garde donc cela pour plus tard.
Dimanche 24 octobre: Trac
J'ai installé Trac afin de pouvoir l'essayer. J'ai suivi les étapes suivantes pour l'installation sous Gentoo
Cetains paquets sont masqués, il faut donc mofifier le fichier /etc/portage/package.keywords (creer le répertoire et le fichier s'il n'existent pas) et ajouter:
=dev-libs/clearsilver-0.9.7 ~x86
=app-text/silvercity-0.9.5 ~x86
=www-apps/trac-0.7.1 ~x86
Puis il suffit de lancer:
emerge www-apps/trac
Creer un repertoire pour mettre le projet trac en vous assurant que l'utilisateur du serveur web à les droits en lecture et écriture:
mkdir -p /src/trac/liveuser
Puis creer un projet (ici le projet s'appelle liveuser):
trac-admin /srv/trac/liveuser initenv
Ajouter dans /etc/apache2/conf/apache2.conf:
Alias /trac "/usr/share/webapps/trac/0.7.1/htdocs/"
<Directory "/usr/share/webapps/trac/0.7.1/htdocs">
Allow from localhost
</Directory>
<Location "/cgi-bin/trac.cgi">
SetEnv TRAC_ENV "/srv/trac/liveuser"
</Location>
Lancer Firefox et indiquez comme URL:
http://localhost/cgi-bin/trac.cgi/
Vous pouvez maintenant essayer cette application qui est très intéressante pour gérer des développements.
Autres ressources: http://projects.edgewall.com/trac/wiki/TracOnGentoo
Samedi 21 août: Exemple Sieve
J'utilise Cyrus comme serveur IMAP.
Le language utilisé par Cyrus pour filtrer les mails s'appelle Sieve. Vous trouverez un bon exemple de filtre ici.
Jeudi 27 mai: Envoi de mail avec subversion
Le besoin
Sur un repository subversion j'ai besoin de recevoir des mails avec le log et un diff des fichiers affectés.
La solution
Subversion est fourni avec plusieurs scripts prêts à l'emploi. Mon choix s'est porté sur le script Python mailer.py qui se trouve dans le répertoire subversion -1.0.4/tools/hook-scripts/mailer
J'ai appliqué ce que je pensais suffisant:
# copie de mailer.py et mailer.conf.example dans /chemin/vers/repository/conf
# recommer mailer.conf.example en mailer.conf. Edition du fichier pour mettre les bons paramètres
# aller dans /chemin/vers/repository/hooks
cp post-commit.tmpl post-commit
chmod u+x post-commit
# édition du script post-commit pour appeler
/chemin/vers/repository/conf/mailer.py "$REPOS" "$REV" /chemin/vers/repository/conf/mailer.conf
J'ai du lire la documentation de travers car l'envoi de mail ne fonctionnait pas. Après avoir cherché sur le net comment résoudre ce problème j'ai décidé d'aller sur IRC demander de l'aide (pour me rendre compte que la doc lue plus en détail aurait répondu à mes questions).
Le script mailer.py ne pouvait pas importer le module svn.fs est l'erreur obtenue en lanà§ant le script dans une console.
Au final la solution que j'ai appliqué est la suivante: * pour faire fonctionner le script python il faut les liaisons (bindings) SWIG pour Python. * grâce à mes questions sur IRC j'ai découvert que la faà§on d'installer SWIG pour subversion est décrite dans la documentation de subversion (forcément) * ajout d'une variable dans le script post-commit contenant le chemin pour les modules Python * légère modification de mailer.py pour lui indiquer l'emplacement de Python * après ca le script mailer.py fonctionne très bien.
Voici les démarches:
# téléchargement de SWIG 1.3.21
<http://sourceforge.net/project/showfiles.php?group_id=1645>
#compilation de SWIG, décrite dans subversion-1.0.4/subversion/bindings/swig/INSTALL
./configure
make
make runtime
make install-runtime
make install
#retour dans le répertoire des sources de subversion
make swig-py
make install-swig-py
#variable d'environnement pour mailer.py a ajouter dans le "hook" post-commit
PYTHONPATH="/usr/local/lib/svn-python"
export PYTHONPATH
#apres une heure et beaucoup d'aide du channel IRC #svn
#édition du shebang de mailer.py en
#!/usr/local/bin/python2.3
Merci au channel IRC #svn sur freenode o๠j'ai reà§u une aide précieuse.
Dimanche 18 avril: Flow
Via Dave Thomas (des Pragmatic Programmers) [1].
Flow [2] est une application OS X très intéressante. Application hybride qui tient du wiki, d'un aggrégateur RSS et bien d'autres...
Quelques une fonctionnalités fournies par Flow:
vous créer un document Flow dans lequel vous effectuez des copier/coller de texte provenant d'une page. Flow se souvient de l'origine du texte et un double-click sur le dit texte vous amène sur la page web source. Et cela fonctionne en plus avec des images, des fichiers, des emails, etc.
une gestion des versions, vous pouvez revenir à état antérieur du document et visualiser le document à différentes étapes de sa "vie".
un partage des documents aisé. Vous êtes à l'aéroport connecté en wifi en attendant votre avion. Vous décidez de partager un répertoire de 10 Mo avec un collègue qui prend un autre vol. L'embarquement débute et vous fermez votre portable avec seulement 8 Mo transférés. Une fois arrivé à destination vous êtes chez un client dont le pare-feu bloque Flow mais autorise les emails. Flow envoie alors les 2 Mo de données restant par mail. A l'autre bout Flow réassemble les emails et ajoute les données au répertoire.
Ce texte est une libre interprétation du post sur le blog de Dave Thomas. Il n'y a pas de version de démonstration disponible, ce post n'est donc basé que sur ce qu'en dit Dave Thomas et ce que l'on peut voir sur le site de Near-Time. Cela dit le concept n'en reste pas moins très intéressant.
Ressources:





