Mokapop

novembre 25, 2007

jPilot

Filed under: Informatique, Linux, Macintosh, Ordinateur de poche — mokawi @ 3:12

J’ai acheté un palm TX dernièrement, un peu de mauvais gré. J’ai acheté mon premier palm pilot à l’âge de 13 ans, et j’ai toujours organisé mon temps autour de ce gadget; mais depuis presque deux ans, je n’en avais plus. En effet, j’avais usé deux Zire en deux ans, et j’en étais arrivé à la conclusion que palm faisait des machines vraiment trop fragiles.

Comme j’ai horreur de me faire avoir, j’ai changé. J’ai d’abord acheté un Zaurus sl-5500,
mais bien que la machine soit très bien conçue physiquement et qu’on puisse y faire tourner toutes sortes de trucs fascinants issus du monde POSIX, ses logiciels ne sont pas conçus pour un ordinateur de poche. Le toolkit Qt est ridiculement lent, le lecteur de mp3 est très mauvais, les applications d’organisation (PIM) se synchronisent très mal avec autre chose que le très mauvais logiciel bureau de trolltech. Pis encore, faire fonctionner mon clavier externe relèvait du miracle, et la carte wifi ne fonctionnait qu’à l’occasion, et encore seulement avec des réseaux WEP.

Bref, j’ai passé au papier. Mais le papier, il se remplit, reste dans ma poche, se perd. Je
n’ai aucune autre raison de le regarder, si ce n’est que pour savoir ce que le moi du pass a
impos au moi du futur, et laissez-moi vous dire que c’est toujours dprimant. A contrario, non
seulement ai-je des raisons agrables d’ouvrir mon palm (regarder mes courriels, jouer au
solitaire), mais il se synchronise avec tous mes ordis, ce qui fait que je peux difficilement ne
pas voir l’information que j’y mets. Il fallait donc que je revienne au palm.

jPilot

Malheureusement, le palm n’est pas exactement au faîte de la technologie. PalmOS 5 est assez
vétuste; il est vieux, c’est un fait, puisque celui qui était destiné à le remplacer, Palm
OS 6, a été un flop monumental. Son architecture est assez proche du très-ancien MacOS, celui
qui ne pouvait faire tourner plus d’un programme à la fois et qui divisait les fichiers en
« resource fork » et en « data fork ». Tout a été fait en fonction d’accomoder des vieux
programmes qui tournaient sur des écrans noir et blanc de 160 pixels par 160 .

La synchro a à peu près le même problème: c’est un gros patentage. Souvent, la vitesse est encore limitée à des 115kbps, ce qui est absolument inacceptable. Or, comme dans le bon vieux temps où toutes les données étaient importantes étaient sur la RAM, et donc étaient effacées au moindre manque d’énergie, ce bon vieux temps où le palm n’avait que 512 ou 1024 ko de mémoire, la synchronisation archive toutes les données sur le disque, qui fait maintenant la moitié d’un Go. Bref, votre synchro vous prend désormais au moint 1h la première fois, et 10 bonnes minutes les fois suivantes.

Il fallait réagir.

Dieux merci, sans avoir à recourrir à The Missing Sync, il y a moyen sur mac d’emprunter la boîte à outils POSIX. En l’occurence, j’ai choisi jPilot, un bon petit logiciel tout simple qui fait tout juste ce dont j’ai besoin: mémos, adresses, calendrier, tâches. Il a un gros avantage pour moi: il est sur fink. (N.B.: Je ne recommande pas fink comme gestionnaire de logiciels unix sur mac. Je crois que c’est la pire alternative. Mais c’est celle que j’ai installé sur mon mac, et comme je ne tiens ni à tout enlever, ni à dupliquer toutes mes librairies, je fais avec. Pour une bonne alternative, regardez MacPorts.)

Mac OS X

Pour Mac OS X, l’installation n’a pas été sans heurts. Finalement, le plus facile a été d’y aller par BlueTooth (mais je suppose qu’il y a un moyen de faire fonctionner tout ça avec USB).

1. Assurez-vous que Hotsync, ou tout autre logiciel de synchro, est fermé et n’a pas accès à Bluetooth. Autrement, ça empêche jpilot d’y accéder.

2. Allez dans les préférences système et cliquez sur Bluetooth (dans la série Matériel). Choisissez l’onglet « Partage ». Dans la liste à gauche, vous aurez peut-être déjà quelque chose comme « Bluetooth-PDA-Sync ». Si c’est le cas, c’est probablement Hotsync qui l’a créé. Sinon, vous devrez en créer un vous-même (bouton d’en bas).

3. Cliquez dessus. À droite, le type devrait être « modem », et dans mon cas, les cases ne sont pas cochées.

4. Fermez Préférences système et ouvrez le terminal. tapez:
ls /dev | grep tty.
Ça devrait vous retourner un tty., donc dans mon cas tty.Bluetooth-PDA-Sync.

4. Ouvrez jpilot. Allez dans les préférences (Ctrl-S) et cliquez le second onglet (Réglages). Dans « port série », tapez « /dev/tty. » (dans ce cas-ci, /dev/tty.Bluetooth-PDA-Sync).

5. Fermez les préférences de jPilot. Partez la synchronisation sur votre palm (synchro bluetooth, bien sûr, avec le bon ordi). Cliquez sur le bouton de synchronisation (celui qui ressemble au logo Hotsync). Ça devrait fonctionner, et ça ne prend que quelques secondes.

Fedora 8

Là je n’ai pu qu’utiliser la synchro USB, parce que je n’ai pas de Bluetooth.

1. Assurez-vous que vous avez Fedora 8. Sous Fedora 7, les pilotes USB ont été mis à jour, mais j’ai eu beaucoup de difficulté avec. Il y a moyen de faire tout fonctionner ça, mais c’est compliqué et pas toujours efficace.

2. Assurez-vous que l’extension kernel « visor » est installée. Certains vont vous dire le contraire, mais dans mon cas, et probablement dans le cas de Fedora 8 en général, il faut qu’il y soit.

3. Si vous voulez vous assurer que tout va bien, faites « sudo tail -f /var/log/messages » et branchez votre palm. Vous devriez avoir un message disant qu’il a ouvert une interface usbcore, et deux autres ouvrant des ttyUSBx. Je ne sais pas trop pourquoi, mais les ttyUSBx ne fonctionnent pas pour moi, donc l’autre message est plus important.

4. Vous pouvez donc mettre « usb: » dans le champs « port série » des préférences de jpilot. Faites la synchro, et bingo, ça marche.

Publicités

janvier 29, 2007

Ubuntu/xfce sur un powermac g4

Filed under: Informatique, Linux, Macintosh — mokawi @ 1:12

Je fais ce genre de blog au cas où quelqu’un aurait besoin des trucs que j’ai trouvé. Donc, j’aime aussi bien faire ça net.

I. Impressions générales

Xfce: Mon cousin français qui fait de la programmation de pointe ne jure que par ça. Personellement, j’aime bien, mais c’est pas à tout casser. Franchement, ça ne change pas beaucoup de Mac OS ou Windows. À vrai dire, je suis tenté de passer à ion, juste pour voir.
+: Les barres super personalisables, qui peuvent s’afficher et s’enlever. Thunar (le gestionnaire de fichier) est plutôt bien.
-: Un certain manque de super du drag-n-drop, comparé à Mac OS avec ses « spring-loaded folders » et à Gnome où on peut tirer les menus pour les mettre comme raccourcis. Pas de browser samba, ni de gestionnaire de mot de passe (en tk, pas encore trouvé).

Linux:
+: C’est connu, c’est bien plus rapide. Ce qui est moins connu, c’est que c’est plus simple. Et contrairement à Mac OS X, ça fonctionne avec ma carte réseau (ou n’importe quelle autre patente existante). Malgré ce que je vais dire après, je n’ai jamais eu autant de facilité à installer une imprimante-scanner, même sur Mac OS X.
-: Ça prend à peu près le double de temps à mettre sur pied. Il y a souvent des problèmes, mais surtout il y a beaucoup trop de solution possibles. Quand j’étais sur OS X, quand le moniteur ne fonctionnait pas à la bonne fréquence, tous les forums me donnaient une seule et unique solution. Mais sur Linux, il y a des dizaines de problèmes possibles: la configuration du serveur X, le mauvais pilote, la mauvaise liste de résolutions possibles, etc. Et comme il y a des scripts sensés tout régler et qui eux-même ne fonctionnent pas tout le temps parce qu’il manque telle ou telle librairie…

Xubuntu: La version de Ubuntu fonctionnant avec Xfce4
+: Il paraîtrait qu’Ubuntu est plus facile à installer que les autres distros, parce qu’il serait plus orienté vers l’utilisateur pas trop technicien. J’ai de sérieux doutes.
-: Imaginez, build-essentials n’est pas dans les paquets standards! Make et gcc y sont, bien sûr, mais pas les librairies de base, comme stdio.h et cie! J’en reviens juste pas. Impossible évidemment de compiler quoi que ce soit sans ça, et sachez que compiler des logiciels, ce sont des trucs qui arrivent souvent sur Linux—surtout si vous possédez un ordinateur avec un processeur PowerPC.

Powermac G4: C’est classe comme machine, mais y’a plus rien qui marche là-dessus. La carte graphique est bousillée (sortie avec des ombres horizontales sur toute la largeur de l’écran), la carte SCSI sur PCI empêchait ma carte wifi de fonctionner et le disque dur original a cramé. Si jamais vous essayez de mettre une nouvelle carte AGP là-dessus, je vous souhaite bonne chance parce que les carte ordinaires ne sont généralement pas compatibles.

II. Problèmes rencontrés

Évidemment, il y a eu les problèmes matériels. J’ai dû réinstaller 4 fois le système avant de décider que le disque était cramé et qu’il méritait tout simplement la mort. J’ai gossé des heures sur ma carte réseau avant d’ouvrir la boîte et d’enlever la carte SCSI. J’ai gossé des heures, marché un bon 45 minutes et marchandé ferme avec un vendeur suspucieux pour une belle carte AGP qui ne fait pas avec un powermac (en fait, j’ai eu un peu peur, parce qu’il n’y avait pas la moindre lumière qui ne daigne s’allumer, ni même le moindre bruit de disque ou de ventilateur qui ne daigne se faire entendre).

Et puis ensuite il y a eu les fameux build-essentials. Vous voyez, personne n’aurait pu s’imaginer que ce truc-là manquait à l’appel, donc assez difficile de trouver le bon article sur les forums.
J’ai gossé pas mal sur vim parce que les commandes avec virgules ne fonctionnaient pas (tout à fait nécessaire parce que j’utilise VimOutliner dans le cadre de mon travail). J’ai finalement recompilé vim, sans grand succès. Enfin, j’ai réinstallé les paquets vim-full, vim-gnome, vim-perl et vim-python, et ça a marché, à ma grande surprise.
J’ai eu toutes les misères à mettre sur pied une alternative à GeekTool, qui me tient au courant de choses que j’ai à faire (j’ai un todo qui s’édite avec VimOutliner, justement) et de mon horaire (je marche avec remind) en laissant des sorties terminal sur mon bureau Mac OS X. Cherchez « Geektool alternative »: on vous donnera des logiciel qui donnent la température de la machine, le « uptime », l’usage des disque, du réseau, du processeur, etc. L’alternative, c’est les « desklets ». Il y a gDesklets, les desklets pour gnome et aDesklets, qui est une version un peu plus économe sur l’ordi (paraît-il). gDesklets est trop standard, fait des boîtes pas très belles et marche vraiment tout croche sur Xfce. aDesklets offre moins de desklets, mais semble plus fonctionnel—même si je n’ai jamais pu faire fonctionner les scripts d’automatisation qu’il semble contenir. Primo: n’oubliez pas que Xfce 4.4 a un bureau tout nouveau tout chaud, et donc aDesklets ne s’y attend pas, et tout les desklets se trouvent pris sous la fenêtre du bureau. Personnellement, j’ai balancé le bureau, mais il y a peut-être un autre moyen; en faisant « adesklets –kde » par exemple (je n’ai pas essayé).
Une fois que vous aurez fait ça, il y a certaines choses à retenir: premièrement, les desklets ont l’habitude imbécile de poser la question « voulez-vous me tester ou m’enregistrer? ». C’est idiot, parce que l’enregistrement ne fonctionne pas pour moi, et s’ils s’affichaient tout seuls, j’aurais simplement entré leur ligne de commande dans la liste des choses à lancer au démarrage, et tout le monde serait content. Mais non, il a fallu que votre humble serviteur décrypte le fonctionnement de aDesklets pour s’en sortir. Il y a un fichier ~/.adesklets qui contient l’information qui permet à adesklets de lancer les desklets. Elle est sous cette forme ou à peu près:
[/chemin/vers/le/dossier/du/desklet/trucmuche.py]
id=0 screen=0 x=459 y=765
Ajoutez une ligne de ce script pour avoir ce que vous voulez. On se doute de ce que tout ça veut dire, sauf peut-être « id ». J’ai découvert en utilisant doityourself.py: j’ai copié trois fois le dossier du script, et j’ai fait trois widgets: un pour la liste des processus (ps), un autre pour remind, et un autre pour mon todo. Et un seul fonctionnait: le premier. J’ai alors découvert que dans le fichier config.txt de doityourself, on peut entre plusieurs scripts, à condition de précéder la ligne par id1, id2, id3, etc à la place de id0. Donc, pour plusieurs instances du même script, il faut plusieurs id.
Autre remarque avec doityourself: il semble y avoir une limite d’environ 20 lignes… c’est du moins ce que me disent mes expérimentations avec ps. Après, le script plante en donnant une erreur dans le terminal. À suivre.
Pour la musique, j’ai installé mpd. Mais il plante de temps en temps pour des raisons inconnues (oui, je devrais vérifier les logs…). J’ai fait un script rapide pour le fermer et le rouvrir, et il reprend où il avait laissé. Pour le client, je recommande l’interface phpMp (installez Apache avant, avec toute librairie nécessaire. Et pour un powerpc, ne prenez pas le fichier .deb. Il y a un script d’installation dans le paquet .tar.gz.). Il y a aussi gmpc (Gnome Music Player Client) et le python pympd qui sont pas mal, même si le premier ne lit pas les playlists (il ne fait que les sauver!) et le second est un peu lent.
J’ai cherché un bout de temps avant de trouver le partage d’imprimantes. Prenez votre navigateur préféré, et envoyez le à http://localhost:631/, et vous atterrirez dans l’outil de configuration de CUPS (serveur imprimante de linux).

III. Trucs qui ne fonctionnent toujours pas

Linux monte bien le serveur Samba du portatif mac, mais pas l’inverse. Booh, le mac. Rsync est très difficile à installer. Peut-être me faire un serveur ftp? Democracy player ne fonctionne pas (mais ça a pas l’air d’un logiciel pour Linux. Trop gros et trop crado: il installe même Mozilla! Pour mac os X, en revanche, ça pourrait être bien.) Je n’ai toujours pas testé le pilote SANE du scanneur. J’ai encore à faire un script pour syncroniser remind et mon todo. Mpd plante toujours de temps en temps. Je n’ai pas encore installé opensshd, et si je l’ai fait, je n’ai pas activé le serveur X. J’ai encore de la difficulté avec les rss/podcasts. J’utilise PenguinTV pour les podcasts pour le moment, et Lifearea pour les fils ordinaires. Le second me satisfait, quoique trop lent, mais le premier ne lit pas tous mes podcasts. Peut-être changer pour iPodder ou Podnova. J’ai encore mon Zaurus à faire marcher avec le Powermac. Aux dernières nouvelles, je ne pouvais pas accéder à mpd depuis le portatif. Je n’ai toujours pas de vie.

IV. Le lendemain

Le serveur son a peté d’aplomb, mais un redémarrage a suffit. Ça doit être ça qui gosse mpd.
smbmount a commencé à refuser de fonctionner. Comme on dit, d’la marde, j’ai laché samba pour un truc qui monte des disques par le biais de SSH: sshfs. Il y a un manuel super simple pour l’utiliser.

décembre 21, 2006

Comment configurer un PDA en 99 étapes faciles

Filed under: Gadgets, Linux, Macintosh, Uncategorized — mokawi @ 8:05

Il m’est arrivé quelque chose d’horrible dernièrement: j’ai appris comment utiliser le bash comme il faut. Pour les innocents d’informatique UNIX: j’ai appris à faire fonctionner l’interface terminal du mac. Comme celle-ci est beaucoup plus puissante que l’interface graphique, surtout en ce qui concerne l’automatisation, mais que sa configuration prend beaucoup de temps, j’ai passé un nombre absolument indécent d’heures à la machine.
Donc, évidemment, j’ai joyeusement rempli mon bureau de sorties du terminal avec GeekTool (cf. article précédent—et encore j’ai ajouté une coupelle de trucs). Mais surtout, comme le malheur veut que j’ai acheté un PDA linux il y a de ça un an (un Zaurus SL-5500, pour la fort môdique somme de 100 huards dorés), il m’est venu à l’esprit qu’il fallait que je mette au point une méthode de synchronisation.
J’ai longtemps été un utilisateur insatisfait du système qu’on appelle communément « Sharp ROM 3.10 » et qui vient du manifacturier. J’avais pris habitude d’utiliser Ko/Pi, un calendrier issu du monde KDE qui tournait très lentement, mais en utilisant des fichier vCal, tout comme iCal sur mac, et Ka/Pi, qui lisait sans problème les fichiers vCard issus du carnet d’adresses de Mac OS X. Or, un jour, bang, ça marche plus, et je n’ai jamais pu trouver pourquoi—la raison que le terminal donnait était bidon. Plus tard, c’est mon lecteur DjVu qui lâche, donc exit les consultations d’Aristote en grec ancien. La moitié des programmes que j’installais ne fonctionnaient pas, la gestion des documents était vraiment douteuse, le traitement de texte lisait mal les fichiers word, et le tout était très mal conçu, de façon pas du tout pratique.
Bref, j’ai donc installé OpenZaurus avec GPE sur la carte mémoire (Là, je saute des étapes: l’installation de ce truc n’est pas nécessairement évidente quand on est habitué à Mac OS. Je saute aussi toute les difficultés pour connecter le Zaurus à l’internet du mac.) Problème: je n’ai plus trop envie d’installer Ko/Pi et Ka/Pi, parce que c’est lent, mais aussi parce que je suspecte qu’ils sont bâtis pour Qtopia, et pas pour X, l’interface graphique de GPE. D’ailleurs, entretemps, je n’utilise plus iCal, mais Remind, pour la rapidité encore une fois.
Évidemment, pas question d’installer Remind sur le Zaurus: ça aurait été super, mais malheureusement, je ne sais pas comment compiler un programme pour fonctionner sur OpenZaurus. Il faut donc prendre la sortie de Remind (remind -s1 -b1 -q) et la traiter avec un script, puis l’afficher sur le terminal rxvt. Comment fait-on pour garder rxvt ouvert? Si on ajoute ces lignes-là à la fin du programme, il tourne sans fin, et la fenêtre rxvt reste:
    while [ 1 ]; do
    continue
    done
Ceci réglé, comment afficher les tâches au calendrier pour les jours à venir? Le plus facile, ça reste de choisir la date, parce que la sortie remind commence par la date. E.g.:
    2006/12/30 * * * 1170 19:30 Canadiens contre TAMPA BAY
Il suffit donc d’expédier le fichier dans grep avec la date du jour:
    cat < fichier | grep 2006/12/30
Le véritable problème, c’est de savoir c’est quoi la date de demain. OpenZaurus vient avec la commande date, mais pas avec cal, donc il faut tout calculer soi-même. J’aurais pu me simplifier la vie avec awk, mais comme je ne le connais pas encore très bien, je suis sorti avec ça:
#!/bin/sh

calc () {
awk « BEGIN { print $* ; } »
}

jds () {
if [ $1 = « Mon » ]; then
echo « Lundi »
elif [ $1 = « Tue » ]; then
echo « Mardi »
elif [ $1 = « Wed » ]; then
echo « Mercredi »
elif [ $1 = « Thu » ]; then
echo « Jeudi »
elif [ $1 = « Fri » ]; then
echo « Vendredi »
elif [ $1 = « Sat » ]; then
echo « Samedi »
elif [ $1 = « Sun » ]; then
echo « Dimanche »
fi
}

ldm () {
if [ $1 = 1 ]; then
echo 31
elif [ $1 = 2 ]; then
if [ $(calc $2″/4-int(« $2″/4) ») != 0 ]; then
if [ $(calc $2″/100-int(« $2″/100) ») > 0 ]; then
echo 29
fi
elif [ $(calc $2″/400-int(« $2″/400) ») != 0 ]; then
echo 29
else
echo 28
fi
elif [ $1 = 3 ]; then
echo 31
elif [ $1 = 4 ]; then
echo 30
elif [ $1 = 5 ]; then
echo 31
elif [ $1 = 6 ]; then
echo 30
elif [ $1 = 7 ]; then
echo 31
elif [ $1 = 8 ]; then
echo 31
elif [ $1 = 9 ]; then
echo 30
elif [ $1 = 10 ]; then
echo 31
elif [ $1 = 11 ]; then
echo 30
elif [ $1 = 12 ]; then
echo 31
fi
}

mydate () {
day=$(calc $(date +%d)+$1)
maxday=$(ldm $(date +%m) $(date +%Y))
if [ $(( $day > $maxday )) = 1 ]; then
month=$(calc $(date +%m)+1)
if [ $(( $month > 12 )) = 1 ]; then
month=1
year=$(calc $(date +%Y)+1)
else
year=$(date +%Y)
fi
day=$(calc $maxday-$day)
else
month=$(date +%m)
year=$(date +%Y)
fi
echo $year/$month/$day
}

cat < /home/mok/.remind | grep $(mydate 6) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Dans 5 jours: »
cat < /home/mok/.remind | grep $(mydate 5) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Dans 4 jours: »
cat < /home/mok/.remind | grep $(mydate 4) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Dans 3 jours: »
cat < /home/mok/.remind | grep $(mydate 3) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Apres-demain »
cat < /home/mok/.remind | grep $(mydate 2) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Demain »
cat < /home/mok/.remind | grep $(mydate 1) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
echo « Aujourd’hui (« $(jds $(date +%a)) » le « $(date +%d) »). »
cat < /home/mok/.remind | grep $(date +%Y/%m/%d) | awk ‘{ print $1  »  » substr($0,match($0,$6)) }’
cat < /home/mok/remindz.txt
while [ 1 ]; do
continue
done
Ici, .remind est la sortie de remind, et reminz.txt est un fichier que je joint par la suite au .reminders du mac. Et le tout me donne mon horaire sur 7 jours. En passant, je ne sais pas pourquoi, mais j’obtenais des erreurs en rassemblant les conditions pour les années bissextiles ([ $(calc $2″/4-int(« $2″/4) ») != 0 && $(calc $2″/100-int(« $2″/100) ») > 0 || $(calc $2″/400-int(« $2″/400) ») != 0 ]). Quelqu’un peut m’expliquer?
Pour le todo, j’utilise simplement un fichier .txt que j’affiche avec GeekTool et auquel j’accède par une icône du Dock. Donc, il suffit d’une synchronisation et de quelques subtilités.
Pour les adresses, c’est plus ardu. En ce moment, j’utilise contacts (disponible sur fink) pour obtenir une sortie texte lisible du carnet d’adresse de Mac OS X. Ensuite, sur le Zaurus, un script demande un nom à chercher et affiche les lignes qui contiennent ce qui a été entré grâce à grep. Pour le passage Zaurus –> Mac, en revanche, ce n’est pas au point. Je crois que je vais écrire un applescript pour entrer les nouvelles entrées de GPE-contacts (qui sont en format SQLite) dans le carnet d’adresse, et peut-être un shell script pour l’inverse. À suivre.
Et dire que je dois travailler sur ma maîtrise…

décembre 12, 2006

Geekness craving

Filed under: Gadgets, Informatique, Linux, Macintosh — mokawi @ 12:50

Je ne suis plus l’informaticien que j’étais quand j’avais 12 ans. Je suis généralement assez ennuyé par les incompatibilités logicielles et matérielles, et ça ne m’excite pas vraiment de changer d’interface graphique ou de polir les boutons pour qu’ils soient plus beaux. Je ne pitonnerait plus dans la fourche ressource des fichiers du système même si elle existait encore: je suis philosophe, pas technicien. Mais il arrive que l’esprit du geek s’empare de moi et me transforme en maniaque incontrôlable. C’est ce qui s’est passé hier.
Le point de départ, c’est que mon ordinateur est rendu assez lent. Je le fais régulièrement tourné avec une bonne dizaine de logiciels assez gourmants merci: iTunes, Safari, bien sûr, mon lecteur de RSS Vienna, XCast, qui me donne une meilleure interface qu’iTunes pour chercher mes balladodiffusions (podcasts), Adium, qui me met sur MSN, X11 et OpenOffice.org, Aperçu, parce que j’ai toujours deux ou trois pdf d’ouverts, iCal en permanence, parce que c’est très lent à ouvrir et que j’ai besoin de l’info tusuite. Ajoutez à ça un Dashboard avec 7 ou 8 gadgets, et des trucs comme iComic pour les Foxtrot, Sinfest et cie, Journler, Bits on Wheel ou aMule qui s’ouvrent assez régulièrement, Firefox, parce que souvent Safari n’est pas parfait, iTaf et Aurora, des alarmes assez peu efficaces pour que j’en mette deux pour la sûreté, MDict et Dictionary, qui s’ouvrent aussi assez souvent, DjView pour consulter l’édition de Bekker d’Aristote, VLC ou QtAmateur pour les films, FFView pour les bandes dessinées et les manga et vous voyez l’encombrement.
Évidemment, j’ai besoin de tout ça, mais j’aimerais ne pas avoir à attendre quand j’ouvre un programme. Le truc? Je l’ai trouvé en tombant sur une page qui parlait de remind, un utilitaire qui s’occupe du calendrier… sur le terminal. Et comme de fait, la page montrait aussi une belle capture d’écran semblable à celle-ci (qui est à moi):
GeekTool sur mon bureau
Alors… ça me montre mes tâches à faire, mon calendrier, les applications ouvertes… Il y avait aussi d’autres gizmos que je n’ai pas pensé utile d’ajouter. Et alors, illumination: je vais remplacer mon Dashboard par ça! J’installe donc remind, son interface wyrd (une interface graphique sur terminal), GeekTool (ce qui me permet de mettre des sorties terminal sur le bureau). Mais voilà, ô horreur, impossible de convertir les calendriers iCal en format remind. Que faire mon Dieu que faire? Je plonge dans le google, et je trouve des scripts perl ma foi fort complets. Je les télécharge, je démarre le script d’installation… et paf: je n’ai pas iCal::Parser, donc ça ne marche pas. Je jure deux bon coup, et je retourne sur le web, où je découvre que je dois avoir installé Developer Tools—ce que j’ai pourtant fait, mais j’ai dû oublier de quoi. Je me dirige donc vers le site pour programmeurs d’Apple, et paf: il faudrait que je me tape 1 gig de téléchargement. Je regarder mon disque dur: à peine 1.9 gig disponibles. Bon, allez, on s’en va. De fil en aiguille, je découvre que cpan, l’utilitaire qui permet de télécharger des paquets perl, est sur mon ordi. Je le lance, je lui ordonne d’aller me chercher ce dont j’ai besoin, et paf, on me dit que Module::Build ne fonctionne pas, et cpan refuse catégoriquement de continuer.
Je lâche quelques jurons, je quitte cpan, et je me lance à la recherche de scripts applescript équivalents: en effet, il est écrit que ça existe dans le blog de l’auteur du script perl. Je cherche, sans succès. Je décide donc de télécharger iCal::Parser, et de mettre le fichier .pm que réclame le script dans le premier dossier où je trouve des fichiers .pm. Je suis chanceux: ça marche! Ou presque: on me réclame illico un truc comme DateTime::Locale. Ok, j’accours, je le télécharge, et je recommence: là, il me manque DateTime::Format::iCal. Je recommance avec des résultats semblables 5 ou 6 fois, et puis je réalise: si j’écris moi-même un script AppleScript, ça me prendra moins de temps que de faire fonctionner ce fameux script. Je me met à l’ouvrage, et 30 minutes plus tard (alors que je gossais depuis 4 heures), j’ai ce que je veux, et je m’empresse de sauver mon travail (que voici).
Je rentre le tout dans remind, je corrige quelques dates entrée en français, et je contemple le résultat de mon dur labeur dans GeekTool: rien. Je m’arrache quelques cheveux, j’envoie un message au développeur, et je finis par réaliser que c’est parce que rem est dans /sw/bin et que ce n’est pas dans les répertoires de travail du shell qu’utilise GeekTool. Après m’être assuré de la syntaxe sur le web, je tape « export PATH=$PATH:/sw/bin:/sw/sbin;rem ».
Je vous averti tout de suite si vous êtes du genre à vous procurer remind, n’utilisez pas cette commande pour GeekTool. Sinon le système va se remplir lentement mais sûrement de petits exemplaires de remind jusqu’à plonger GeekTool dans le silence et provoquer des choses étranges (de mon côté, le panneau de configuration pour les tablettes de graphistes s’est mis en marche sans que j’aie branché quoique ce soit, et le système a subi un ralentissement général). Il faut ajouter l’option « -q » à rem, sans quoi remind tourne en mode daimôn.
Je contemple néanmoins mon oeuvre, et je me dis « il faudrait quelque chose qui me donne la température ». Je plonge sur le web, et je regarde mes options. J’opte en premier pour rss, mais je ne trouve pas d’utilitaire simple qui se lâche dans la ligne de commande. Je change de stratégie, et je découvre que je peux demander à lynx de lâcher une belle page bien arrangée dans la sortie terminal. J’apprend un peu de bash, un peu de grep, et voilà, je fais mon premier script bash. Ça ressemble à ça:

/sw/bin/lynx -dump http://mobile.wunderground.com/global/stations/71627.html > /users/mok/vdesk/temp/meteo.html;echo « Meteo » && cat < /users/mok/vdesk/temp/meteo.html | grep -A 0 « Updated: » && cat < /users/mok/vdesk/temp/meteo.html | grep -A 2 « Temperature » && cat < /users/mok/vdesk/temp/meteo.html | grep -A 0 « Wind  » && echo «  » && cat < /users/mok/vdesk/temp/meteo.html | grep -A 25 « Forecast as of »

Je trouve ça fort que ça fasse un si beau résultats avec si peu de code (cf. l’image plus haut), même si c’est esthétiquement très discutable (car oui, mesdames et messieurs, les programmeurs, même s’ils ne se rasent pas et font très peu attention à leurs vêtements, soignent bien l’esthétique de leur code, qu’il seront sans doute les seuls à consulter.)
Je contemple encore la beauté de mon nouveau bureau, en me disant que je pourrai désormais faire des scripts pour transférer mes contacts, mes calendriers et mes courriels sur mon Zaurus. Et tant qu’à y être, mes rss favoris aussi. Mais voilà, j’ai passé toute la journée à ces changements, et je n’ai pas mangé du tout.

Créez un site Web ou un blog gratuitement sur WordPress.com.