Tomate : une petite applet de productivité pour Linux

Posté par (page perso) . Modéré par baud123. Licence CC by-sa
42
13
mai
2011
Python

Comme beaucoup d'entre nous, je souffre de problèmes de procrastination et d'attention, surtout devant un ordinateur. Comment résister à l'appel de l'Internet et se concentrer sur une tâche importante, mais pas forcément passionnante ?

Je me suis donc mis à la recherche d'outils qui puissent m'aider à mieux me concentrer. Je suis tout d'abord tombé sur un très bon livre recommandé par Papey : "Comment ne pas tout remettre au lendemain", par Bruno Koelz.

Finalement, pour moi, le diagnostic est le suivant : le plus difficile est de s'y mettre, c'est-à-dire de se concentrer pendant un laps de temps suffisant pour se plonger dans le problème. Une fois cette étape passée, continuer est beaucoup plus simple.

J'ai donc développé une petite applet qui me permet de passer un contrat avec moi-même: en cliquant sur une petite icône, je m'engage à me concentrer sur un problème donné pendant au moins dix minutes. L'icône devient alors rouge pendant dix minutes, après quoi elle passe au vert. Je suis alors libre de m'arrêter ou de continuer.

NdM : le projet est sous licence GPL 3.

Cette applet n'offre aucune possibilité de configuration, aucun log, bref, aucune fonctionnalité qui n'est pas indispensable à 100 % pour atteindre son objectif. En effet j'ai remarqué que passer du temps à jouer avec les paramètres d'un outil de productivité est une excellente manière de perdre son temps !

Pourquoi le nom « tomate » ? Tout simplement parce que je me suis inspiré d'une technique concurrente, la Pomodoro technique, qui consiste à travailler par intervalles de 25 min, avec des pauses de 5 minutes entre. Je trouve ma solution supérieure, pour deux raisons: tout d'abord, s'engager à travailler 25 min sans interruption est beaucoup plus difficile que 10 minutes uniquement. Il est donc plus difficile de "s'y mettre", ce qui est pourtant l'objectif! D'autre part, il me semble stupide de s'imposer une pause au bout de 25 minutes, si l'on est bien concentré.

Au niveau du code, il s'agit d'une applet toute simple écrite en Python pour GTK. Le projet est hébergé chez Gitorious. Voici une petite capture d'écran:

capture d'écran

  • # Toi t'as besoin d'un chef ;-)

    Posté par (page perso) . Évalué à 8.

    Faut vraiment procrastiner pour écrire un tel truc!

    ⚓ À g'Auch TOUTE! http://agauch.online.fr

  • # Et tu vas te concentrer...

    Posté par . Évalué à 9.

    ... sur la petite icône rouge au lieu de ton taf!

    Une petite icône à surveiller toutes les 30secs en se disant que la pause approche.
    Tu vas te créer les conditions du vendredi 16h: "Presqu'en week-end! Presqu'en week-end" qui permet de s'assurer que rien ne sera vraiment fait le reste de l'après-midi...

    • [^] # Re: Et tu vas te concentrer...

      Posté par . Évalué à 10.

      Chouette, je fais F5 et y'a un nouveau commentaire à lire et auquel répondre. Hé, le w-e approche.

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

    • [^] # Re: Et tu vas te concentrer...

      Posté par (page perso) . Évalué à 7.

      Je crois que tu n'as pas bien compris: le passage de l'icône à vert n'indique absolument pas la pause, juste la fin du contrat.

      Je ne prétends pas que cette méthode s'applique à tout le monde, mais je l'utilise avec succès depuis plus d'un an. C'est pour cette raison que je me suis décidé à la publier.

    • [^] # Re: Et tu vas te concentrer...

      Posté par . Évalué à 6.

      C'est vrai que se concentrer sur une tomate...

      • [^] # Re: Et tu vas te concentrer...

        Posté par . Évalué à 4.

        tandis qu'une nymphette qui se dévoile de plus en plus...

        • [^] # Re: Et tu vas te concentrer...

          Posté par . Évalué à 2.

          Au moins ça pousse à utiliser les ressources de la machine.
          Avec un peu de bol, l'employé est motivé à produire plus de code à compiler et tester.

          ...

          Ou alors il relance pour la 4ème fois ce matin les recompilations en parallèle du noyau, de GCC, de KDE, et d'Eclipse pour être vraiment complètement sûr de "partir sur une bonne base".

  • # J'aime bien

    Posté par . Évalué à 3.

    Oui, j'aime bien. J'ai fait un clone du projet et ajouté un petit installeur (en bash) pour que ce soit plus pratique.

    https://gitorious.org/~etenil/tomate/etenils-tomate

    briochette, la petite brioche

    • [^] # Re: J'aime bien

      Posté par . Évalué à 3.

      A peine créer et déjà un fork

      :D

      Merci en tout cas, je vais l'essayer ce petit logiciel. Je suis un peu dans ton cas, j'avoue...

    • [^] # Re: J'aime bien

      Posté par (page perso) . Évalué à 4.

      Chouette! Je le mergerai ce soir, si tu n'y vois pas d'inconvénient.

      • [^] # Re: J'aime bien

        Posté par . Évalué à 1.

        Pas du tout bien au contraire, tu me fais beaucoup d'honneur en acceptant ma maigre contribution.

        briochette, la petite brioche

        • [^] # Re: J'aime bien

          Posté par (page perso) . Évalué à 1.

          Voilà, c'est fait! Encore merci pour ce petit script d'installation très bien réalisé.

          • [^] # Re: J'aime bien

            Posté par . Évalué à 1.

            et à quand le paquet pour Archlinux ?

            Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

            • [^] # Re: J'aime bien

              Posté par (page perso) . Évalué à 4.

              Quand tu l'auras fait ;-)

              • [^] # Re: J'aime bien

                Posté par . Évalué à 2.

                bonne réponse, je veux bien le faire, mais comme il me semble que tu utilises Archlinux, vu que tu es le mieux placé pour la gestion des mises à jour, c'est plus logique que ce soit toi le mainteneur.
                De plus, ça serait pas mal de sortir une version figée (tarball), ça faciliterait l'inclusion dans les distributions.

                Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

                • [^] # Re: J'aime bien

                  Posté par (page perso) . Évalué à 1.

                  bonne réponse, je veux bien le faire, mais comme il me semble que tu utilises Archlinux, vu que tu es le mieux placé pour la gestion des mises à jour, c'est plus logique que ce soit toi le mainteneur.

                  Je suis d'accord avec toi, mais j'ai déjà beaucoup de mal à trouver le temps pour maintenir autojump, alors j'essaie au maximum de limiter les nouveaux trucs.

                  De plus, ça serait pas mal de sortir une version figée (tarball), ça faciliterait l'inclusion dans les distributions.

                  Est-ce que faire des tags pour les releases comme pour autojump te conviendrait? Sinon, s'il y a moyen de distribuer des tarballs avec gitorious (je débarque, j'utilisais github auparavant), je suis preneur.

                  • [^] # Re: J'aime bien

                    Posté par . Évalué à 2.

                    Est-ce que faire des tags pour les releases comme pour autojump te conviendrait?

                    oui, s'il y a possibilité de récupérer un tarball.
                    Il serait possible de faire un pkgbuild à partir de la version git, mais cela complexifie beaucoup le pkgbuild, sans compter que s'il y a un bogue d'introduit dans le repo ça bloquera la génération du paquet. Un tarball me semble le plus propre, sans compter que cela ouvre la création de paquet pour d'autres distributions.

                    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Maitre Capello est bronsonisé...

    Posté par . Évalué à -2.

    ... mais c'est pas une raison!

    je souffre de problèmes de problèmes de procrastination

    puis (et celui-là il ma fé ségnait lé yeu)

    le plus difficile est de s'y mettre, s'est à dire de se concentrer

    Mes 2 ç...

    "Il faut" (Ezekiel 18:4) "forniquer" (Corinthiens 6:9, 10) "avec des chiens" (Thessaloniciens 1:6-9) "morts" (Timothée 3:1-10).

    • [^] # Re: Maitre Capello est bronsonisé...

      Posté par . Évalué à -1.

      d'oh, et forcément, je mets en gras le mauvais 's'...

      le plus difficile est de s'y mettre, s'est à dire de se concentrer

      "Il faut" (Ezekiel 18:4) "forniquer" (Corinthiens 6:9, 10) "avec des chiens" (Thessaloniciens 1:6-9) "morts" (Timothée 3:1-10).

  • # Evolution du contrat

    Posté par . Évalué à 3.

    Ouais, pas bête.

    Ce qui serait bien, c'est une évolution du contrat sur une durée déterminée, comme lorsqu'on arrête la clope. D'abord, c'est dix minutes par engagement, au moins 10 engagements par jour, pour deux mois plus tard finir à 30 minutes par engagements avec 4 engagements par jour (chiffres sortis d'un chapeau).

    Ensuite, rendre ca configurable : durées initiale et finale d'un engagement, nombre d'occurrences journalières en début et fin de contrat, et période d'exécution du contrat.

    Et finalement, pour chaque engagement réussi, un petit LolCat aléatoire; ou autre... :-]

    Hop,
    moi.

    • [^] # Re: Evolution du contrat

      Posté par (page perso) . Évalué à 4.

      Surtout pas!

      L'objectif n'est pas de t'imposer une cadence de travail, mais de t'aider à te concentrer quand tu en ressens le besoin. Fixer des objectifs trop élevés te conduirait simplement à transgresser les règles que tu t'es fixées, ce qui rendrait le tout complètement inutile.

      D'autre part, comme je le dis dans la news, je pense que rendre la chose configurable serait contre-productif. Il faut que ce soit quelque chose que tu utilises sans y penser.

    • [^] # Re: Evolution du contrat

      Posté par . Évalué à 9.

      Pas forcément, dans ce cas le coeur du problème est de commencer le travail, parce qu'on s'en fait une montagne ou qu'on se met tellement de pression qu'on hésite, qu'on évite.

      En passant le contrat avec soi-même de s'y mettre 10 minutes, on abaisse la pression qu'on se met (le but qu'on se fixe n'est pas de tout finir, mais de faire seulement 10 minutes) et on s'offre une échappatoire concrète et à portée de main (10 minutes, au pire, ça passe vite).

      Mais bien souvent, une fois qu'on est lancé le stress descend et on ne s'arrête pas à 10 minutes, mais souvent 2h après. On a donc dépassé de loin notre objectif, d'où un renforcement positif.

      Changer les durées, les occurences, donc "durcir" le contrat petit à petit n'a pas beaucoup de sens dans ce contexte. Pour arrêter la cigarette, par contre, cela fait sens.

    • [^] # Re: Evolution du contrat

      Posté par . Évalué à 1.

      Hum, je crois qu'il y a un malentendu. Le « contrat » consiste à se mettre en train pendant au moins 10 mn. Le but c'est probablement de continuer à bosser, une fois qu'on est plongé dans la tâche en cours. Et donc, l'idéal serait que le temps nécessaire à cette mise en train diminue avec le temps, pas qu'il augmente.

      Du coup, comme option, je suggère de simplement limiter à une liste d'une petite poignée de durées, du genre 5, 10, 15, 20 mn, et c'est tout (et un petit bip discret optionnel, peut-être).

      Finalement, ce que tu décris me semble être plutôt la méthode Pomodoro évoquée plus haut.

      • [^] # Re: Evolution du contrat

        Posté par (page perso) . Évalué à 2.

        Du coup, comme option, je suggère de simplement limiter à une liste d'une petite poignée de durées, du genre 5, 10, 15, 20 mn, et c'est tout (et un petit bip discret optionnel, peut-être).

        Et ça ressemblerait beaucoup à Kteatime, petit utilitaire de KDE que j'utilise presque quotidiennement, et qui affiche un petit message quand le temps choisi est écoulé.

    • [^] # Re: Evolution du contrat

      Posté par (page perso) . Évalué à 5.

      Ce qui serait bien, c'est une évolution du contrat sur une durée déterminée, comme lorsqu'on arrête la clope. D'abord, c'est dix minutes par engagement, au moins 10 engagements par jour, pour deux mois plus tard finir à 30 minutes par engagements avec 4 engagements par jour (chiffres sortis d'un chapeau).

      Le top ce serait d'avoir plusieurs stratégies d'acclimatation déprocrastinatrice, chaque stratégie définirait un nombre d'engagements quotidien et une durée des engagements variables en fonction de la stratégie elle-même et du nombre de jours passés depuis le début du programme.

      Et cerise sur le gâteau, le programme pourrait lire ta carte vitale pour télécharger la stratégie recommandée par ton thérapeute.

      En ajoutant un détecteur de mouvements via la webcam et un éléctrochoc alimenté sur le port USB, on pourrait arriver à guérir\^Waider tout un tas de gens très rapidement.

      J'écris tout de suite une lettre à Kouchner\^WBachelot\^WBertrand euh bref…

      • [^] # Re: Evolution du contrat

        Posté par . Évalué à 3.

        FOUTAISE ! ;)

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Evolution du contrat

          Posté par . Évalué à 2.

          prouve-le !

          Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

  • # TCC, Bruno Koelz

    Posté par . Évalué à 6.

    Je plussoie, j'ai aussi le bouquin de Bruno Koelz et il est vraiment bon et accessible. Quand on s'adresse à des procrastinateurs lourds, mieux vaut être facile à lire :-)

    Très utile pour non seulement comprendre sa procrastination mais surtout faire en sorte qu'elle ne nous pourrisse pas la vie.

    Dans la même veine des thérapies cognitives et comportementales, je vous recommande Frédéric Fanget, dont Toujours mieux - Psychologie du perfectionnisme où de nombreux geeks se retrouveront.

    C'est de la vraie psychologie, claire mais pas Marie Claire, accessible, avec une approche centrée sur le problème plutôt qu'une traditionnelle approche psychanalytique centrée sur l'Oedipe non résolu de votre enfance </troll>.

    La méthode de travail est typique des TCC :

    • mise en évidence des biais cognitifs (failles du raisonnement qui nous enferment dans un schéma de pensée négatif)
    • lorsqu'on les connait, on peut contrer ces pensées automatiques ("je ne suis pas à la hauteur", etc)
    • travail sur la répétition et l'émotion afin de réduire l'intensité des émotions négatives
    • rendre la personne "experte" de son problème car c'est ainsi qu'elle arrivera le mieux à le gérer ; en connaissant parfaitement le fonctionnement et les méthodes à sa disposition, on est armé au mieux pour faire face au quotidien

    Fin de l'intermède du vendredi ^^

  • # je propose mieux

    Posté par . Évalué à -2.

    et si on mettait une fraise à la place de la tomate ?
    Au lieu de 10 minutes le contrat serait ainsi descendu à 7 minutes !

    Le chiffre 7 est indéniablement supérieur. Ainsi la dite version d'application aurait du coup beaucoup plus de succès que celle avec la tomate non ?!

    • [^] # Re: je propose mieux

      Posté par . Évalué à 1.

      +1 pour la fraise
      J'ai testé la technique pomodoro avant hier avec une petite appli sous android et je me suis rendu compte qu'à la fin de ma journée je n'ai pas fini le moindre pomodoro, ayant été interrompu toutes les 10 ou 15 minutes. Ce qui est intéressant c'est que je n'en avais même pas conscience.

  • # Autre outil intéressant

    Posté par . Évalué à 2.

    Tomighty, fait en Java et sous licence Apache 2.0. J'utilise au quotidien depuis que j'ai découvert et que j'applique le Pomodoro il y a 3 semaines.

  • # Scripting

    Posté par (page perso) . Évalué à 2.

    Si quelqu'un connait une Tomate sous Linux qui permet de scripter les messageries instantanées comme ceci http://magaloma.blogspot.com/2011/04/pomodoro-scripts.html , je prends.

    • [^] # Re: Scripting

      Posté par . Évalué à 2.

      Intéressante cette idée ..., je pensais à la possibilité de faire des logs pour la partie tracking du Pomodoro, tu echo >> dans un fichier pour avoir les résultats au format CSV, directement manipulable dans un tableur. par contre pour logguer les interruptions, c'est une autre histoire.

  • # tomatoi.st

    Posté par (page perso) . Évalué à 2.

    J'aime bien aussi ce petit site qui permet de se lancer aussi : tomatoi.st

    « En fait, le monde du libre, c’est souvent un peu comme le parti socialiste en France » Troll

  • # Et un paquet slackware, un !

    Posté par . Évalué à 3.

    J'ai fait un paquet Slackware, valide sur Slack LeeT !
    http://ythogtha.org/pkg/tomate-git-20110514-1yth.txz

    Flap,

    Yth.

    PS : Mais je le maintiens pas...

  • # Suggestion

    Posté par . Évalué à 1.

    Salut et content que mon commentaire de l'époque sur le bouquin de Koelz ait fait au moins un heureux ! Bravo pour l'idée d'application, dommage que je sois sous Windows au boulot, je l'aurais installée de suite (d'ailleurs si quelqu'un veut faire un portage...).

    Une suggestion (une de plus !) : durant les 10 minutes, et jusqu'à l'action d'un bouton adapté par exemple, il faudrait pouvoir bloquer toutes les distractions possibles venant de l'ordi : alertes mails, messagerie instantanée, notifications diverses... ce qui maximiserait les chances de succès.

    Même si j'ai bien compris que tu n'avais que peu de temps à consacrer à cette appli, peut-être une bonne âme acceptera-t-elle de développer cette évolution ! (qui est dispo dans des applications fermées comme RescueTime notamment).

    • [^] # Re: Suggestion

      Posté par (page perso) . Évalué à 1.

      Effectivement, c'est une possibilité. Mais je ne crois pas vraiment à la contrainte : si tu as décidé de glander, tu y arriveras quelles que soient les mesures techniques mises en oeuvre. Donc je préfère un truc tout bête, laissé à la responsabilité de l'utilisateur. Dans mon cas au moins, ça marche.

  • # Perte de concentration

    Posté par (page perso) . Évalué à 2.

    Et donc cette tomate, qui change de couleur pendant 10 min, qu'on surveille donc pendant 10 min, n'accapare-t-elle pas l'attention ?

  • # 2m8

    Posté par . Évalué à 5.

    Y'a pas de fichier de license ou de copyright. Est-ce que ça ne poserait pas problème aux distros pointilleuses sur ces choses-là pour redistribuer tomate?

    Pour l'installeur je rajouterai bien ceci:

    --- install.sh.orig 2011-05-16 12:26:42.524033372 +0200
    +++ install.sh  2011-05-16 12:42:37.311294672 +0200
    @@ -10,6 +10,10 @@
         echo "You must be root to run this script." 2>&1
         exit 1
     else
    +   # where is python 2?
    +   if [ ! $(which python2) >/dev/null 2>&1 ]; then
    +       sed -i "1 s;python2;python;" tomate.py
    +   fi
         mkdir -p "$INSTALLDIR"
         cp *.{png,svg,py} "$INSTALLDIR/"
         ln -s "$INSTALLDIR/tomate.py" "$BINDIR/tomate"
    

    (dans l'esprit de faire un truc qui s'installe vite fait bien fait pour les newbs.)

    J'ai exactement le même souci que toi pour me mettre à travailler donc merci beaucoup pour tomate.

    • [^] # Re: 2m8

      Posté par (page perso) . Évalué à 3.

      Oui car j'ai pour ma part du faire le sed à la main.

      Sinon petite question, sous Unity (Ubuntu 11.04) pour que la tomate s'affiche, il faut activer la systray-whitelist

      gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
      

      Le problème c'est que dès qu'on lance Tomate, on peux plus cliquer sur les autres applets du menu.

      Serait-il possible de voir comment rendre tomate unity compliant ?

      Merci :)

      • [^] # Re: 2m8

        Posté par . Évalué à 4.

        C'est un souci avec unity. C'est le "['all']" qui pose problème.

        Il vaut mieux lister les applications une par une.

        http://www.rapazp.ch/?p=736

      • [^] # Re: 2m8

        Posté par (page perso) . Évalué à 5.

        Serait-il possible de voir comment rendre tomate unity compliant ?

        Il me semble qu'il faudrait plutôt rendre unity tomate compliant :-D

        Plus sérieusement, puisque unity bloque expressément les applications comme tomate, je ne vois pas trop ce qu'on peut faire. Je pense que le mieux serait de réimplémenter le concept pour unity.

    • [^] # Re: 2m8

      Posté par . Évalué à 3.

      d'ailleurs j'ma gourré. Je me suis dit "autant faire un truc propre", puis j'ai rajouté la redirection à l'arrache et j'ai pas testé.

      -   if [ ! $(which python2) >/dev/null 2>&1 ]; then
      +   if [ ! $(which python2 >/dev/null 2>&1) ]; then
      
    • [^] # Re: 2m8

      Posté par (page perso) . Évalué à 1.

      Y'a pas de fichier de license ou de copyright. Est-ce que ça ne poserait pas problème aux distros pointilleuses sur ces choses-là pour redistribuer tomate?

      Bonne remarque, j'ajouterai le baratin à l'occasion.

      Pour l'installeur je rajouterai bien ceci:

      Merci pour le patch! Je le mergerai quand j'aurai un moment. C'est quand même bien dommage que python ne fournisse pas un "python2" par défaut sur toutes les distributions!

  • # et ça marche dans l'autre sens aussi ...

    Posté par . Évalué à 0.

    On peut aussi s'en servir pour procrastiner justement =D : "je ne travaille pas pendant 10mn ... ho ben mince pourquoi s'arrêter de ne rien faire ?!"

    Personnellement je suis un peu dans l'autre extrême, quand je commence à bosser je lève la tête quand mon estomac crie pitance ... et j'utilise différent timer sur des tranches de 2h O_o, il faut que je rajoute ce gadget pour ne pas bosser entre mes tranches de travail. Double avantage, ça évite de s'éparpiller et ça repose la tête =D

  • # Merci !

    Posté par (page perso) . Évalué à 1.

    Merci à toi !
    Du coup, j’ai acheté le livre de Bruno Koeltz, il est très bien fait, en effet.

    J’espère que ça pourra me donner le coup de pouce nécessaire, parce que c’est vraiment pas évident, et on finit vraiment par en souffrir.

    Merci.

Suivre le flux des commentaires

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