Nouvelle version d’autojump

Posté par (page perso) . Modéré par j. Licence CC by-sa
Tags :
26
10
avr.
2011
Ligne de commande

Je viens de publier la 15e version d’autojump. Pour mémoire, il s’agit d’un petit outil qui apprend quels sont vos endroits préférés, et vous y amène rapidement, évitant ainsi de nombreuses commandes « cd ». L’outil est écrit en Python et proposé sous licence GPLv3. Il fonctionne sous la plupart des OS avec Bash et ZSH.

Cette version n’amène rien d’extraordinaire, mais l’accumulation des petits progrès me semblait la justifier :

  • la correction d’un bogue sérieux, rendant le logiciel inutilisable après avoir été lancé avec « sudo » dans certaines distributions 
  • un reformatage du code pour le rendre plus lisible et respecter la fameuse PEP-8, qui propose un standard de code pour le langage Python ;
  • plein d’autres petites améliorations.

Vous pouvez dès à présent le récupérer via git ou sous forme d’archive sur GitHub. Vous pouvez également attendre la mise à jour automatique de votre distribution (autojump est maintenant disponible en standard dans la plupart des distributions importantes).

  • # Cool

    Posté par . Évalué à 4.

    Merci pour cet utilitaire très pratique.
    Je l'avais testé en étant assez dubitatif (j'utilisais déjà autocd avec zsh) mais j'ai vite été convaincu.
    C'est vraiment pratique de changer de dossier en tapant 2-3 lettres (surtout quand on a plein de sous dossiers à parcourir.

    • [^] # Re: Cool

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

      As tu essayé cdr (dispo en zsh 4.3.11)? (man zshcontrib pour plus d'infos).
      Si oui un retour d'expérience de autojump vs cdr?

      • [^] # Re: Cool

        Posté par . Évalué à 4.

        Non, je ne connaissais pas cdr.
        Après avoir lu la page du manuel zshcontrib (que je parcourrai plus attentivement plus tard), j'ai cru comprendre que cdr retient les N derniers dossiers utilisés.
        Si c'est correct, dans ce cas, je crois autojump fait mieux car il y a une pondération sur la fréquence d'usage des dossiers (que Joël me corrige si je me trompe).

        Ainsi si j'ai deux dossiers web_dev et web_prod

        "j web" m'enverra directement dans web_dev car c'est celui où je travaille le plus souvent, même si le dernier dossier que j'ai utilisé était web_prod.

        Après c'est juste un comportement semble-t-il différent. Les deux outils ont visiblement la même philosophie.

        Joël, connaissais-tu cdr avant de développer autojump ? (à condition d’utiliser zsh à ce moment là).

        • [^] # Re: Cool

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

          Si c'est correct, dans ce cas, je crois autojump fait mieux car il y a une pondération sur la fréquence d'usage des dossiers (que Joël me corrige si je me trompe).

          Effectivement, c'est ça. L'objectif est d'essayer dans la mesure du possible de deviner l'intention de l'utilisateur quand il y a plusieurs possibilités.

          Joël, connaissais-tu cdr avant de développer autojump ? (à condition d’utiliser zsh à ce moment là).

          Non, je ne connaissais pratiquement aucun des concurrents d'autojump. Mais finalement autojump reste celui que je préfère ;-)

  • # Adopté à l'essai

    Posté par . Évalué à 2.

    Le descriptif est un peu tentant, alors j'ai décidé de l'essayer. Pour l'instant il ne sert à rien (pas de base), mais il n'est pas du tout intrusif.

    Je regrette l'utilisation de github, hébergeur propriétaire, comme plateforme principale du projet, alors qu'il existe des forges libres ou gitorious qui sont aussi de bonne qualité.

    • [^] # Re: Adopté à l'essai

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

      Je regrette l'utilisation de github, hébergeur propriétaire, comme plateforme principale du projet, alors qu'il existe des forges libres ou gitorious qui sont aussi de bonne qualité.

      L'essentiel, c'est d'utiliser git, non? Du moment que je reste propriétaire de mes données, je ne vois pas quel est le problème. Si demain github change ses termes et qu'ils ne me conviennent plus, je peux changer dans la minute. Ça me suffit.

      • [^] # Re: Adopté à l'essai

        Posté par . Évalué à 2.

        Et donc, troll à part, comment as-tu fait ton choix parmi les forges git existantes ? githib offre plus de fonctionnalités ou de réactivité ?

        • [^] # Re: Adopté à l'essai

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

          En fait il y en avait assez peu quand j'ai commencé autojump. J'avoue ne pas avoir réfléchi énormément: si c'était à refaire, je prendrais sans doute une forge libre, ne serait-ce que pour éviter de me faire reprocher mon choix :)

      • [^] # Re: Adopté à l'essai

        Posté par . Évalué à 7.

        L'essentiel, c'est d'utiliser git, non? Du moment que je reste propriétaire de mes données, je ne vois pas quel est le problème. Si demain github change ses termes et qu'ils ne me conviennent plus, je peux changer dans la minute. Ça me suffit.

        Oui et non :

        • En publiant publiquement un lien qui pointe directement vers github pour ton projet, tu soutiens implicitement la plateforme et encourage les gens à s'en servir. C'est comme de la pub, plus on voit github mieux on s'en souvient et incline à le choisir soi-même, sauf qu'en plus ce n'est pas une pub commerciale, c'est de la diffusion par des collègues techniciens, donc dignes de confiance sur leurs choix d'outils. Ces plateformes jouant sur l'effet de réseau, si l'année prochaine tu te rends compte que github ne te convient plus, tu pourras migrer ton projet mais inciteras-tu les dix autres projets que tu as inspirés à migrer avec toi ?

        • Github ce n'est pas une simple URL d'un repo git, c'est une panoplie d'outils et de documents annexes. Quand dans 3 ans tu seras habitué à leur interface, tu auras toute ta doc dans leurs wiki et des dizaines de billets dans le "Issue Tracker"¹, le coût d'une migration sera beaucoup plus élevé et tu seras un utilisateur captif.

        • Si comme tu le dis il n'y a aucune différence et tu peux migrer quand tu veux, pourquoi ne pas le faire dès maintenant ? Comme Git est décentralisé, tu peux même conserver un repo github et le synchroniser avec les autres régulièrement. La question est plus de choisir quelle page tu soutiens comme "page principale du projet", et quel outil d'hébergement tu promeus auprès de tes utilisateurs.

        ¹: si les gens mettent leurs données dans ce wiki et cet issue tracker, c'est aussi parce que ce sont de bons outils. Personne ne le nie, github est une plateforme agréable dont les développeurs font du bon travail (ils rétribuent même une partie de leur développement au libre, d'ailleurs). Ça reste une plateforme propriétaire et je pense que le choix (qui pourrait légitimement être justifié par des raisons techniques) devrait être décidé plus rigoureusement que "boarf j'ai choisi ça au hasard".

        • [^] # Re: Adopté à l'essai

          Posté par . Évalué à 8.

          PS: je ne comprends pas comment les informaticiens libristes peuvent être si insensibles aux conditions de licence de la plateforme d'hébergement de leur logiciel. On fait tout un drame si le visualisateur de photographies n'est pas libre, par contre l'outil d'hébergement de code source, pourtant crucial pendant le processus de développement de logiciel libre, on s'en moque.

          Par exemple on qualifie de "troll" et on moinsse mon message qui se contente de dire de façon tout à fait objective et posée "je regrette l'usage d'un outil propriétaire". À croire que vraiment, c'est une remarque outrancière et illégitime (alors qu'on n'hésite pas d'un autre côté à encourager les gens à migrer de SVN à git/hg/darcs par exemple).

        • [^] # Re: Adopté à l'essai

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

          Github ce n'est pas une simple URL d'un repo git, c'est une panoplie d'outils et de documents annexes. Quand dans 3 ans tu seras habitué à leur interface, tu auras toute ta doc dans leurs wiki et des dizaines de billets dans le "Issue Tracker"¹, le coût d'une migration sera beaucoup plus élevé et tu seras un utilisateur captif.

          D'ailleurs savez vous si il existe un equivalent libre à gist.
          Une sorte de pastebin qui permet de creer un depot git à partir du contenu ?

          https://gist.github.com/

    • [^] # Re: Adopté à l'essai

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

      Gitorious est peut-être basé sur du code libre, mais bon il suffit de regarder les conditions d'utilisation, on peut y lire ça :

      By submitting Content to Gitorious for inclusion on the Website, you grant Gitorious a world-wide, perpetual, royalty-free, and non-exclusive license to reproduce, modify, adapt and publish the Content for the purpose of displaying, distributing (hereunder sub-licensing) and promoting your account, project or Content. If you delete Content, Gitorious will use reasonable efforts to remove it from the Website, but you acknowledge that caching or references to the Content may not be made immediately unavailable.

      Personnellement, je préfère Savannah, c'est 100% libre et sans pub.

      WeeChat, the extensible chat client

      • [^] # Re: Adopté à l'essai

        Posté par . Évalué à 3.

        Pour moi c'est du blabla légal que les avocats de sites webs ont l'habitude de mettre à chaque fois, et ça n'indique rien de potentielles intentions malicieuses des gestionnaires du site. La plupart des sites anglophones ont ça de nos jours.

        Pour chaque clause de cet extrait je vois un ou plusieurs usages désirables pour lequel on pourrait leur coller un procès s'ils n'ont pas demandé ces trucs dès le départ. Par exemple "... license to publish the Content" bah oui, normal, on le met sur leur site il faut qu'ils aient le droit de le publier. ".. license to reproduce the Content" bah oui, c'est normal, une fonctionnalité clé de ces sites est de pouvoir forker commodément un projet qui s'y trouve, il faut qu'ils puissent reproduire le repo...

        Pareil l'avertissement sur la suppression me semble être du bon sens. Aujourd'hui si un site te dit "promis juré vous cliquez sur 'delete' et on ne trouvera plus jamais cette information sur le web" il te ment, car il y a toujours des caches, des archives etc. Ici on te prévient, je vois pas ce que ça a de scandaleux.

        Bref, la formulation est peut-être un peu extrême, mais à mon avis ça veut juste dire qu'ils ont reproduit le charabia habituel sans se prendre la tête, et je ne pense pas que ça nuise à la liberté de leur plateforme. Après, si ça te gêne tu es libre de choisir autre chose (mais pourquoi ne pas leur envoyer un mail pour demander clarification d'abord ?), et Savannah est aussi une bonne plateforme.

      • [^] # Re: Adopté à l'essai

        Posté par . Évalué à 2.

        Savannah, je connais vite fais. Mais est ce que je peux m'en servir pour héberger des document textuels à moi qui n'ont pas vocation à améliorer l'univers du logiciel libre par exemple ? Il propose quoi comme dépôt (git, svn, hg, bzr,...) ? Il y a quoi comme outils annexe (wiki, report bug, forum,...) ?

        Je n'arrive pas à voir les pages des projets depuis mon boulot, mais dans la liste des projets en bas il est fais mention de projets privés, je suis extrêmement surpris qu'ils autorisent la création de projet privés.

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

  • # Voir aussi wcd

    Posté par . Évalué à 4.

    Dans le même genre, « WCD - Wherever Change Directory »

    http://www.xs4all.nl/~waterlan/#WCD_ANCHOR

  • # z-jump

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

    Je suis fan-absolu d’autojump, Joel, tu pourrais nous parler de j2 et z-jump que je viens de découvrir en faisant un « yaourt autojump » ? Ce sont des fork ? Je n’ai pas bien compris leur intérêt…

    https://github.com/rupa/z#readme

    https://github.com/rupa/j#readme

    • [^] # Re: z-jump

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

      En fait, quand j'ai publié autojump la première fois, ce type l'a réécrit en shell. Je n'ai pas bien compris l'intérêt, d'autant qu'il aurait été le bienvenu pour contribuer à mon projet...

      Bref, c'est à peu près la même chose, dans un langage différent.

      • [^] # Re: z-jump

        Posté par . Évalué à 2.

        Je ne sais pas comment c'est implémenté, mais peut être qu'il a voulu éviter de lancer un processus séparer et implémenté ça dans une fonction shell.

        Personnellement je me suis enfin mis à utiliser autojump il y a quelques mois, je l'utilise pas de manière systématique, mais il fait partis de ma batterie d'outils pour changer de dossier.

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

        • [^] # Re: z-jump

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

          Je ne sais pas comment c'est implémenté, mais peut être qu'il a voulu éviter de lancer un processus séparer et implémenté ça dans une fonction shell.

          A la place, il lance awk...

  • # Bashmarks

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

    J'aime bien Bashmarks

  • # Debian

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

    Voilà, c'est empaqueté pour Debian, d'ici un jour ou deux vous l'aurez dans unstable.

    • [^] # Re: Debian

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

      Merci!

    • [^] # Fedora

      Posté par . Évalué à 3.

      C'est mis à jour également dans Fedora (rawhide), et ça sera dispo pour F13/F14 lorsque la màj aura fait son petit bout de chemin.

    • [^] # Re: Debian

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

      Merci car c'est souvent ce genre de petit logiciel qui ne sont pas empaquetés, et dont on ne suit pas les mises à jours.

    • [^] # Re: Debian

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

      Même chose pour Mageia, dans quelques heures disponible dans la version de développement Cauldron.

  • # Makefile ?

    Posté par . Évalué à 1.

    Salut,
    je me demandais à tout hasard pourquoi tu n'avais pas fait un simple "Makefile" plutôt qu'un script d'install ?
    Simple curiosité. Merci d'avance de ta réponse.

    • [^] # Re: Makefile ?

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

      Make est fait pour les compilations. L'utiliser pour installer des fichiers, c'est déjà un détournement de sa fonction, alors à partir de là, ça ou un script, c'est kif-kif, je dirais.

      • [^] # Re: Makefile ?

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

        Make est fait pour les compilations. L'utiliser pour installer des fichiers, c'est déjà un détournement de sa fonction, alors à partir de là, ça ou un script, c'est kif-kif, je dirais.

        Je ne suis pas tout à fait d'accord avec l'idée de ``détournement''. C'est peut-être une utilisation inattendue, si on a commencé par apprendre que Make sert à compiler des programmes. Mais finalement, la différence conceptuelle entre décrire une tâche dans le langage de Make et dans le langage du shell réside dans l'organisation du programme. Au lieu de l'approche découpant la tâche à accomplir en procédures et sous-procédures, etc., Make impose de penser en terme d'étapes et de transitions et se débrouille pour combiner entre eux ces éléments de description de la tâche pour arriver au résultat escompté, si celui-ci peut-être atteint. Un des intérêts de ce cette approche est qu'on peut enrichir une liste d'étapes et de transitions, ce qui du point de vue procédural du shell revient à éditer le cœur d'une procédure.

        Par exemple, si notre procédure d'installation générique ressemble à

        # shell
        install() {
         do-preinstall
         do-install
         do-postinstall
        }
        
        # Makefile
        install: do-preinstall do-install do-postinstall
        

        on l'adapte à nos besoins particuliers, dans le monde de Make en ajoutant des dépendance aux étapes do-preinstall do-install et do-postinstall là où le shell nous obligerait à trouver, copier et modifier le code des procédure do-preinstall etc.

        En clair, par rapport au shell, l'approche de Make montre sa force dans la facilité qu'elle confère aux solutions générales à s'adapter aux cas particuliers. (On peut certes utiliser la méthodologies objet avec le shell, mais je ne connais pas de proof of concept à part quelques exemples que j'ai écrits pour m'amuser.)

        Ceci dit, comme méthode d'installation, un script est très bien!

        • [^] # Re: Makefile ?

          Posté par . Évalué à 2.

          Effectivement, je suis d'accord avec toi.
          Et je trouve un qu'un simple Makefile est plus lisible, mais après c'est au gout de chacun ;).

  • # Merci

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

    Merci pour ton logiciel c'est très utile, je peste quand je suis sur le serveur car il n'y est pas installé.

    • [^] # Re: Merci

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

      L'installeur ne le permet pas (encore), mais il est tout à fait possible de l'installer en tant que simple utilisateur: tu places l'executable "autojump" dans un répertoire de ton path, et tu sources autojump.bash ou autojump.zsh depuis ton .bashrc (ou ton zshrc) et c'est parti!

      • [^] # Re: Merci

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

        ha oui c'est sûr, c'est juste que je n'y pense pas.

  • # Déjà une habitude

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

    Je me sers d'Autojump tous les jours, et surement quelques dizaines de fois par jour.

    Une petite critique : le démarrage commence à devenir long, comme si la BDD devenait un peu grosse..

    Sinon, j'en suis très content, encore une fois merci !

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

    • [^] # Re: Déjà une habitude

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

      Une petite critique : le démarrage commence à devenir long, comme si la BDD devenait un peu grosse..

      Ah, intéressant, c'est la première fois que quelqu'un me dit ça. Qu'est-ce qui est lent au juste? "j"? Est-ce que par hasard tu pourrais m'envoyer ta base de données?

  • # jumpapplet : comment ça marche ?

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

    J'ai installé autojump et son applet, mais je ne vois pas comment utiliser cette dernière. Quand je la lance, elle apparaît bien dans la boîte à miniatures, je peux la configurer avec un clic droit, mais je ne vois pas comment lui faire faire quelque chose d'utile. Un clic gauche ne provoque pas la moindre réaction.

    Est-ce que j'ai loupé quelque chose ?

Suivre le flux des commentaires

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