Journal : Mon bureau est intelligent (vive dcop !)
Posté par jmfayard () le 18 octobre 2004
0
Bonjour cher petit journal,Derriere ce titre racoleur ne se cache[1] nulle histoire de bureau en 3d ou autres trucs fancy, mais des reponses a mes problemes concrets. Je ne sais pas si tu as deja tente l´experience de transcrire le texte d´un discours ou les paroles d´une chanson, mais ca fait partie des experiences penibles que l´on peut effectuer devant un ordinateur :
Il s´avere vite impossible d´aller aussi vite que la musique, si j´ose dire. Encore en train de taper la premiere phrase, on s´affole pour essayer de retenir les trois qui viennent de passer, du coup on oublie la phrase qu´on etait en train de taper, il faut donc sans cesse revenir en arriere. La intervient un probleme majeur : la majorite des lecteurs audio/videos utilisent des barres de progression ; des que l´enregistrement dure quelques dizaines de minutes, il est impossible de revenir precisement en arriere, on se contraint a bouger le moins possible la souris, BAM, rate, on est revenu 2´50 en arriere. mplayer nous sauve ici grace aux fleches qui reviennent en arriere de 10s*nb_de_fois_ou_l_on_appuie. On se heurte alors au deuxieme probleme majeur : on a besoin d´une troisieme main pour sans cesse appuyer sur pause / retour en arriere / play pendant qu´on tape. Tout cela prend beaucoup du temps et genere pas mal de frustrations.
Hier donc, je voulais transcrire le texte d´un discours de Jean-Pierre Raffarin de plus d´une heure pour pouvoir l´encadrer dans ma chambre. Je m´appretais a passer un long et penible moment, lorsque j´eus une intuiton. Je de demarrais konsole et tapais :
$ while true ; do
dcop amarok player start
sleep 7 # proportionnel a votre memoire a court terme
dcop amarok player pause
sleep 5 # proportionnel au terme precedent * la dexterite de vos petits doigts
done
Si vous ne connaissez pas encore, dcop est a la fois un protocole qui permet aux applications KDE de faire toutes sortes de communications utiles entre elles, et une commande utilisant dcop (le protocole) pour scripter les applications pour nos besoins precis. On trouve facilement les commandes interessantes (ligne 2 et 4 chez moi) grace a l´utilitaire graphique kdcop + glissez-deposer. D´autres usages : [2][3]
Ceci pose, le code ci-dessus me semble remarquablement simple et logique... et surtout tres efficace. J´ai pu tout transcrire d´un jet, a mon rhythme, et sans rien oublier. Temps passe : duree_piste * ( 1 + 5/12 )
Par souci d´objectivite envers la concurrence, j´ai essaye de transcrire le plus vite possible les paroles d´une chanson de 2´95" avec Windows Media Player. La comparaison est favorible a WMP, car pour des pistes aussi courtes, le probleme que j´ai cite avec la tres gauche barre de progression n´existe pas. Temps passe : 12´ . Je vous laisse extrapoler pour le discours d´une heure.
Que de temps gagne pendant lequel je peux aller surfer efficacement les sites pornos avec Mozilla Firefox, une autre de mes applications intelligentes : http://linuxfr.org/~jmfayard/15328.html(...)
Conclusions :
* Je vais rajouter une interface dcop aux applications dont je m´occupe. Qui sait quels usages intelligents auxquels je n´aurais jamais pense mes utilisateurs vont pouvoir en faire pour resoudre leurs problemes. En plus, c´est extremement simple [4]
* Si j´ai bien tout compris, on pourra dans l´avenir faire des choses similaires avec *toutes* les applications linux grace a dbus[5]
* Pour les partisans (Apple, microsoft, ...) du tout-graphique : comment pouvez-vous m´eviter cette experience penible de maniere aussi simple, et sans que vos IHMs deviennent des monstres surcharges et inutilisables ?
(j´ai peur que la reponse soit : tu prends Professional Transcript Software(TM) qui est specialise la-dedans, ca fera 200 balles)
[1] cache ou cachent ?
[2] Scripter le terminal, par Philippe Fremy http://linuxfr.org/tips/176.html(...) (l´indentation a ete massacree depuis la redaction du billet)
[3] Qu´est-ce que dcop ? http://www.volny.cz/bwian/dcop.html(...)
[4] Tutorial creer une interface dcop : http://developer.kde.org/documentation/tutorials/dot/dcopiface/dcop(...)
[5] http://www.freedesktop.org/Software/dbus(...)
> Lire le journal (16 commentaires, moyenne: 3,5).
Vous avez demandé le commentaire #486147.



La meme chose sous Mac OS X (ou sous GNUstep je pense aussi)
[^]Re: La meme chose sous Mac OS X (ou sous GNUstep je pense aussi)
Mmmh, j´avais un mac jusqu´en 99, j´ai essaye plusieurs fois d´utiliser AppleScript. Ca n´a jamais vraiment rien donne d´utile, notemment la fonction d´enregistrement dont tu parles. M´enfin, c´est peut-etre juste que je n´ai pas essaye assez fort.
[^]Complètement HS
Est-ce que ça a un rapport lointain avec Hyper Card ?
[^]Re: Complètement HS
Non, Hypercard, c´etait ´achement bien, ca a ete une des raisons principales du succes des macintosh. C´etait un melange de gestionnaire de bases de donnnes / environnement graphique pour faire une interface et gere les donnees de l´utilisateur. Souvenir, souvenir...
http://en.wikipedia.org/wiki/Hypercard(...)
http://en.wikipedia.org/wiki/HyperTalk(...) <== le langage que ca utilisait (qui n´etait pas AppleScript)
AppleScript dans mon souvenir, c´etait une fausse bonne idee, qui ne fait pas le poids par rapport a Bash/Perl/Python/Ruby
[^]Re: La meme chose sous Mac OS X (ou sous GNUstep je pense aussi)
Je ne sais pas comment ça se passe sur la version actuelle de OS X. Mais à l'Apple Expo, j'ai vu un truc qui s'appelle "Automator" dans la version à venir.
=> http://www.apple.com/fr/macosx/tiger/automator.html(...)
Ca avait l'air sympa à utiliser, c'est un peu comme du script très simple, mais en tout graphique, et pas mal réalisé du tout.