Journal Mon bureau est intelligent (vive dcop !)

Posté par  .
Étiquettes :
0
18
oct.
2004
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(...)
  • # Pas besoin...

    Posté par  . Évalué à 3.

    ...je tape 100 mots / minute ! (chronométré et vérifié...ma secrétaire est verte de jalousie, mais ça fait de bon moments au bureau quand on se lance dans une course ;-)

    Le tout est d'avoir un clavier confortable. Un mauvais clavier te pénalisera et t'empêchera de progesser
    • [^] # Re: Pas besoin...

      Posté par  . Évalué à 2.

      Et si jamais la musique est vraiment trop rapide :
      mplayer -speed 0.8 musique
  • # mauvais exemple?

    Posté par  (site web personnel) . Évalué à 10.

    peut être un autre exemple aurait été mieux? Je fais la meme chose avec xmms sans dcop :)

    xmms -p
    sleep 7
    xmms -u

    Bref :)
    • [^] # Re: mauvais exemple?

      Posté par  (site web personnel) . Évalué à 5.

      méchant, tu lui a cassé son journal de 150 lignes, c'est malin...
    • [^] # Re: mauvais exemple?

      Posté par  . Évalué à 10.

      Y´a pas de mal ;-)

      Tu pourrais dire aussi que la transparence reseau de KDE/Gnome c´est inutile, puisque vim et emacs font ceci depuis des lustres. Oui mais voila, parfois l´innovation consiste a prendre des bonnes idees eparpillees un peu partout, et a les rendres systematiques pour ne pas que l´utilisateur n´ait pas a apprendre une syntaxe differente a chaque fois (QUAND il y en a une), et a les rendre totalement triviales (cf le [4]) pour le programmeur pour qu´elles se propagent rapidement dans toutes les autres applications.

      Pour les auters exemples, cf [2] et [3]
  • # Merci

    Posté par  . Évalué à 5.

    Ca fait longtemps que je cherche à faire ça pour certains softs sans m'interroger assez pour chercher comment résoudre le problème.

    Donc, tout simplement, merci.
  • # La meme chose sous Mac OS X (ou sous GNUstep je pense aussi)

    Posté par  . Évalué à 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 ?


    Sous Mac OS X (et même avant sous Mac OS 9), il existe AppleScript qui permet de réaliser trés simplement (syntaxe trés proche de l'anglais courant) des scripts tels que celui-ci. Evidemment ça ne marche qu'avec les applications proposant le support d'AppleScript.
    C'est gratuit, livré avec l'OS et à l'époque de Mac OS 9 il y avait même une fonction permettant (dans les cas les plus simple) de créer le script par enregistrement des actions de l'utilisateur. Je ne sais pas si cela existe toujours sous Mac OS X, depuis que je l'ai je ne m'amuse plus qu'avec les scripts shells et je n'ai pas réutilisé AppleScript.

    Sous GNUstep il existe aussi un langage de script qui doit permettre de faire à peu près la même chose mais à mon grand regret je n'ai pas encore eu le temps d'installer GNUstep.
  • # Alors le discours?

    Posté par  . Évalué à 1.

    Bien que le discours ait peu de chances d'être sous licence libre, j'ai une chambre à décorer également. Donc: Peux tu mettre le discours en ligne? :D
  • # merci !

    Posté par  . Évalué à 0.

    * 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]
  • # dbus aussi

    Posté par  . Évalué à 1.

    Pour ceux qui veulent suivre Jean-Michel, et rajoute aussi dbus a des logiciels, il y a une intro du ibm developper network
    http://www-106.ibm.com/developerworks/linux/library/l-dbus.html(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.