Le Site du dernier matou

Le site qui fait miaou!

Aucun commentaire

Lors d'un précédent article je parlais de Mutt, un client de messagerie. Pour pouvoir l'utiliser, il me manquait une fonctionnalité pouvoir consulter tous mes anciens courriers lorsque je suis sans connexion.

Si Mutt n'a pas cette fonctionnalité, on peut l'obtenir de manière presque transparente grâce à Offlineimap. Ce logiciel s'occupe de synchroniser votre ou vos boites mails distantes dans un répertoire de votre ordinateur et Mutt lira vos courriers sur ce répertoire plutôt que sur la boite distante.

Pour l'installation :

aptitude install offlineimap

Ensuite il faut le configurer en éditant le fichier ".offlineimaprc" dans votre répertoire personnel :

[general]
accounts = Perso, Pro
[Account Perso]
localrepository = PersoLocal
remoterepository = PersoDistant
status_backend = sqlite
[Repository PersoDistant]
type = IMAP
remotehost = adressePerso.net
remoteuser = IdentifiantPerso
remotepass = MotDePassePerso
ssl = yes
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Repository PersoLocal]
type = Maildir
localfolders = ~/Maildir/Perso
restoreatime = no
[Account Pro]
localrepository = ProLocal
remoterepository = ProDistant
status_backend = sqlite
[Repository ProDistant]
type = IMAP
remotehost = adressePro.net
remoteuser = IdentifiantPro
remotepass = MotDePassePro
ssl = yes
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Repository ProLocal]
type = Maildir
localfolders = ~/Maildir/Pro
restoreatime = no

Comme vous l'aurez compris, offlineimap va synchroniser mes boites distantes personnelle et professionnelle dans le répertoire Maildir. Si vous lancez la commande "offlineimap", la synchronisation débute, la première fois pourra être très longue suivant le nombre de courriers à récupérer.

Pour automatiser la procédure on écrit un petit script (que j'ai appelé sync.sh pour ne pas être original) :

#!/bin/bash
imapactive=$(ps -ef | grep offlineimap | grep -v grep | wc -l)
# Tuer offlineimap s'il est actif (car il a planté)
case $imapactive in
        '1')
                killall offlineimap && sleep 5
                ;;
esac
/usr/bin/offlineimap -u quiet

Et on ajoute une règle à la con cron :

crontab -e

Ajouter la ligne suivante :

*/10 * * * * ~/sync.sh

Ainsi la synchronisation aura lieu toutes les dix minutes. Il ne reste plus qu'à configurer Mutt pour qu'il lise les courriers dans le répertoire Maildir, pour cela retirer la configuration imap de ".muttrc" pour la remplacer par:

# Mutt doit utiliser le fomat Maildir
set mbox_type=Maildir
# On configure les répertoires communs
set spoolfile="~/Maildir/Perso/INBOX"
set folder="~/Maildir"
folder-hook Perso set record="+Perso/Sent"
folder-hook Pro set record="+Pro/Sent"
folder-hook Perso set postponed="+Perso/Drafts"
folder-hook Pro set postponed="+Pro/Drafts"
set tmpdir    = ~/tmp
# On initialise les boites en balayant les répertoires de ~/Maildir:
mailboxes `find ~/Maildir/ -type d -name cur -printf '%h '`

Et voilà, vos mails sont relevés toutes les dix minutes et sauvegardés en local, Mutt aura toujours accès à vos mails avec au pire un décalage de dix minutes.

Aucun commentaire

Depuis le temps que je voulais essayer, j'ai enfin passer la porte d'un FabLab et réaliser mes premiers objets à la découpe LASER. J'ai réalisé des fichiers PDF à l'aide d'Asymptote pour obtenir :

  1. Des jetons numérotés pour différentes énigmes,
  2. des rectangles de différentes dimensions pour faire une version IRL de ce jeu,
  3. des dessous verres à l'image de mon site (en forme de chat, donc!),
  4. des règles,
  5. une boîte pour ranger des Geomag.

Voici les sources Asymptote et les fichiers PDF pour les curieux.

Quelques conseils d'un débutant qui s'est fait piéger :

  • Réaliser une petite planche de test pour voir le rendu avant de réaliser votre projet de certains points de votre projet. J'ai pu tester des épaisseurs de traits et différentes teintes afin d'éviter des problèmes. Ça m'a permis aussi de vérifier la taille minimale pour les QRcode.
  • Éviter de faire un énorme fichier de toute la planche (dans mon cas un PDF de 40cm par 60cm) car le logiciel de gravure peut avoir du mal à accepter autant de formes.
  • Éviter les courbes inutiles, pareil le logiciel de gravure peut saturer. J'ai eu le tour avec des règles où les 200 graduations avaient des courbes de Bézier.
  • Le logiciel de gravure ne reconnaît pas l'épaisseur des traits. Il faut donc les convertir en contour pour obtenir le résulta voulu. Inkscape fait ça très bien : sélectionner le trait et dans le menu "chemin" choisir "Contour en chemin". Si vous avez de nombreux traits à transformer après avoir sélectionner le premier, dans le menu "édition", "sélectionner même" et "couleur du contour" ainsi tous les traits de la même couleur sont sélectionnés. Inkscape a aussi ses limites la transformation de 1500 chemins en contour a bloqué le logiciel.
  • Tester l'assemblage de vos réalisations sur place pour pouvoir refaire une pièce au besoin.

Merci à Robin et Mickaël pour leur accueil.

Aucun commentaire

Mutt est un client mail en mode console. Autrement dit c'est pas chaud à l'œil mais terriblement efficace.

Pour l'installer pas de difficultés :

aptitude install mutt

Ensuite il faut écrire le fichier de configuration .muttrc dans votre répertoire personnel.

# Adresse électronique de l'expéditeur
set from = "mon_adresse@mon_mail.net"

# Nom complet de l'expéditeur
set realname = "Mon identité"

# Génération du champs from
set use_from = yes

# Lors d'une réponse, utiliser l'adresse originale à laquelle a été envoyé le mail
set reverse_name

# Editeur pour rédiger les mails
set editor = "vim -c 'set tw=72' -c 'set wrap'"

# CONFIGURATION IMAP
set imap_pass = "Mon_mdp_IMAP"
set spoolfile="imaps://Mon_identifiant@Mon_IMAP.net/"
set folder="imaps://Mon_IMAP.net/"
set record = "Sent"
set postponed = "Drafts"

# CONFIGURATION SMTP
set smtp_pass = "Mon_mdp_SMTP"
set smtp_url = "smtp://Mon_identifiant@Mon_SMTP.net:587"

# Vue index
set date_format = "%d/%m/%y"
set index_format = "[%Z]  %D  %-20.20F  %s"

#Mail en html
auto_view text/html

Pour la dernière ligne, il faut ajouter un fichier .mailcap dans votre répertoire personnel pour lire les mails en HTML grâce à w3m.

text/html;                      w3m %s; nametemplate=%s.html
text/html;                      w3m -dump %s; nametemplate=%s.html; copiousoutput

Une fois Mutt lancé, la liste de vos mails s'affiche. les flèches directionnelles pour choisir un mail et entrée pour l'ouvrir. Une fois le mail ouvert vous pouvez toujours voir le suivant ou le précédent grâce aux flèches directionnelles. Pour accéder aux pièces jointes un appui sur la touche v.

Pour envoyer un mail, la touche m sur l'écran listant les mails et on répond aux questions au bas de l'écran (destinataire, sujet). On rédige le mail, on peut ajouter les pièces jointes avec la touche a. Au final un appui sur y pour l'envoyer.

Voilà pour le minimum du minimum pour se lancer avec Mutt. Je verrai dans de prochains articles les petits trucs qui me font garder mutt comme lecteur de mails.

Aucun commentaire

J'ai récupéré des fichiers PDF qui ne sont qu'une suite de pages numérisées d'un livre. Ça permet de lire le livre mais s'il faut faire une recherche dedans ou vouloir le remettre en page, c'est pas top.

Cependant avec quelques outils on peut passer du PDF au TXT assez vite. Voici les paquets à installer :

aptitude install pdftk graphicsmagick-imagemagick-compat tesseract-ocr

Ensuite les trois étapes de la conversion :

  1. On extrait la page 123 de fichier.pdf et on crée un fichier ec.pdf avec cette seule page.
    pdftk fichier.pdf cat 123 output ec.pdf
  2. On convertit ec.pdf en image PNG.
    convert -density 300 ec.pdf ec.png
  3. On lance une reconnaissance optique des caractères sur l'image ec.png et on enregistre le résultat dans 123.txt
    tesseract ec.png 123.txt

Alors évidemment si le fichier contient beaucoup de pages, il faut automatiser à d'un script bash:

#!/bin/bash

Nombre_arguments_attendus=3

if [ $# -ne $Nombre_arguments_attendus ]
then
    echo "Trois paramètres obligatoires le nom du fichier PDF,"
    echo "le numéro de la première et de la dernière page à extraire."
    exit 1
fi

echo ">>> Extraction du fichier $1,"
echo "de la page $2 à la $3."

for nbr in $(seq $2 $3)
do
    echo ">>> Extraction de la page $nbr"
    pdftk "$1" cat $nbr output ec.pdf
    echo "Conversion en image"
    convert -density 300 ec.pdf ec.png
    tesseract ec.png "$1"-$nbr
done

echo ">>> Nettoyage"
rm ec.pdf ec.png

exit 0

Ce petit script prend trois argument: le nom de fichier, les numéros de la première et de la dernière page à traiter. Il enregistre des fichiers texte en ajoutant le numéro de la page au nom du fichier PDF.

Le résultat n'est pas parfait, la reconnaissance des caractères s'est fait piéger par certaines pages contenant des images. Par contre une mise en page sur deux colonnes ne pose aucun souci.

D'autres solutions sont possibles avec les outils poppler (paquet poppler-utils).

  • La conversion directe du pdf en image avec pdftoppm.
  • L'extraction des images avec pdfimages.

Si j'ai encore besoin de ce script je verrai si ça peut l'améliorer.

Un grand merci à Vincent pour l'idée de l'article.

Aucun commentaire

Connaissez vous le Slot-Racing ? Ce sont des circuits sur lesquels on fait tourner des voitures électriques. J'en ai eu un étant enfant et je m'y suis remis bien plus tard en m'inscrivant dans un club (je vous assure ça existe).

Cependant le premier problème est de faire un circuit. On peut suivre les instructions fournies mais le plus sympa c'est de réaliser ses propres tracés. Et là se pose un problème, il faut que ça ferme. Je passerais sur le problème du manque de rails (les éléments du circuit), car on peut les acheter individuellement. De nombreuses marques le proposent mais il est plus économique de savoir quoi acheter. Des logiciels existent pour simuler votre circuit avant et éviter les mauvaises surprises.

Mais les systèmes 400,600 et 800 de SlotFire me semble les plus impressionnants. En effet quelques soient les modules choisis, ça ferme parfaitement. Je vous laisse essayer. Comme je ne crois pas à la magie, j'ai essayé de trouver le truc. Et voici le résultat. Bonne lecture!

Pour les plus curieux, j'ai réalisé le document avec LaTeX et Asymptote, voici la source.