

Présentation des tableaux en Perl.
Posted by admin in Programmation
J’ai ouvert une catégorie programmation, il y a quelques semaines. J’y ai déjà posté des articles et je compte continuer. Je vais essayer1 de faire plus d’articles sur la programmation et notamment à propos de Perl. Les articles pourraient paraître un peu trop pris par la main, même pour certaines choses assez simple, c’est pour que tout le monde puisse suivre y compris les débutants. Certains articles pourraient paraître sans intérêt et trop détaillés pour des concepts pourtant simple à comprendre, mais moi ça me plaît. Cela va me forcer à m’entraîner à bien expliquer les choses, car ce n’est pas forcément mon fort, et être encore un peu meilleur et plus à l’aise, chaque explication et relecture apporte une nouvelle compréhension, c’est le même principe que la pratique, c’est donc important surtout pour moi. Pour écrire mes articles je servirais de mes connaissances personnelles et pour structurer mes idées je m’aiderai généralement de différent écrits de référence que j’aurais pu lire, malgré que cela sera avec ma vision, il pourrait arriver que certains passage puissent vous sembler familiers2. Désolé pour cette introduction un peu longue ça sera la dernière fois.
Je vais présenter un peu l’idée du fonctionnement des tableaux en Perl. Pour commencer le plus simple serait de prendre un exemple du monde réel. Par exemple si on vous demande de citer le nom des joueurs d’une équipe de football. Vous allez tout simplement réciter une liste, vous allez donner un nom l’un après l’autre dans un ordre particulier. Perl dispose de primitives puissantes pour manipuler les listes et les tableaux. Il existe une différence entre les listes et les tableaux en Perl bien quel soit minime.
("Barthez", "Zidane", "Henry"); |
Nous avons donc une liste de trois footballeurs faisant parti de l’équipe de France en 983 , dans l’ordre4 . On va maintenant stocker cette liste dans une variable pour pouvoir la réutiliser, nous allons utiliser un tableau.
my @players = ("Barthez", "Zidane", "Henry"); |
On peut constater que les deux exemples sont des groupes ordonnés de valeurs, la seul différence c’est qu’un tableau et une variable qui porte un nom, il sera donc possible d’effectuer des actions sur un tableau comme modifier sa longueur, alors qu’une liste est une notion plus éphémère. Finalement on peut se présenter un tableau comme une variable et une liste comme les valeurs qu’elle contient.
Comme-dit c’est une différence minime, mais qui est tout de même bien présente. Il ne sera par exemple pas possible d’effectuer des opérations sur une liste.
pop(@tab); |
Cela fonctionne.
pop(1,2,3); |
Ici par-contre il y a un problème la fonction pop à besoin d’un identifiant et pas d’une liste de valeurs.
En conclusion, ce qu’il faut retenir c’est que les listes et les tableaux sont des groupements ordonnés de scalaires. Comme dans tout langage il existe des opérateurs et fonctions travaillant sur des listes et des tableaux proposant un accès plus rapide et pratique qu’un accès manuel aux éléments.
En Perl il n’est pas possible d’imbriquer des parenthèses pour créer une liste de liste.
my @tab_imb = ("foo", "bar", "un", "exemple"); my @tab_imb = ("foo", "bar", ("un", "exemple")); |
Les deux lignes sont donc équivalentes. Si notre besoin est un peu plus complexe et qu’on a besoin de manipuler une structure de données un peu particulière comme un tableau de hachage, ou un tableau de tableau, il nous faudra utiliser des références. Les scalaires peuvent contenir des nombres, des chaines mais aussi des références. En Perl c’est toujours en utilisant des références que l’on met en place des structures complexes à plusieurs niveau. C’est de cette manière que sont implémentés des tableaux à deux dimensions, sous la forme de tableaux de références à des tableaux, un peu de la même manière qu’avec le langage C, les tableaux à deux dimensions sont des tableaux de pointeurs vers des tableaux.
Les scalaires d’un tableau sont des éléments et on peut y accéder en indiquant leur indice. Comme dans beaucoup de langage le premier élément d’un tableau en Perl est égal à 0.
my @players = ("Barthez", "Zidane", "Henry"); |
Le scalaire Barthez se trouve en première position du tableau, mais comme-dit on y accède de cette manière @players[0]. L’élément Zidane ce trouve en deuxième position et on y accède de cette manière @players[1].
En conclusion on a vu une première approche du fonctionnement des tableaux en Perl, on connaît à présent la différence entre un tableau et une liste, on sait comment accéder à un élément du tableau et on a une vague idée du fonctionnement des structures de données un peu plus complexe. Cela n’est bien-sur pas suffisant, mais vous permet de pouvoir commencer à utiliser des tableaux, comme-dit j’écrirai plus souvent la prochaine fois il est possible qu’on voit, comment supprimer les doublons d’un tableau, ou encore comment utiliser des tableaux dans ses programmes, ou alors comment trier un tableau.
- En espérant que je trouve des choses à raconter assez souvent, ce n’est pas toujours simple [↩]
- En Perl, je pourrais par exemple m’aider du CamelBook, ou encore Perl le Livre de recettes et de différente documentation [↩]
- championne du monde [↩]
- L’ordre étant dans ce cas les postes respectif de chacun, gardien de but, ensuite milieu de terrain, puis pour finir attaquant [↩]
read comments (0)Gérer vos plugins Vim à la manière d’apt-get avec Vimana.
Posted by admin in Gnu/linux
Vimana est un outil écrit en Perl par Yo-An Lin. Il vous permettra de gérer vos scripts Vim en ligne de commande à la manière d’un gestionnaire de paquet comme apt-get par exemple. Vous pourrez obtenir des informations, installer et mettre à jours vos scripts Vim1 . Selon le type du script ftplugin, plugin, syntax etc… Vimana installera les fichiers dans les répertoires correspondants. Par exemple pour un color scheme il le placera dans ~/.vim/colors/
Pour installer Vimana il vous faudra passer par le CPAN. Il est disponible que pour des systèmes de type Unix, par exemple Gnu/linux, Mac OS X, BSD etc… Il n’est pas portable sur Windows.
sudo cpan Vimana |
Une fois installé vous pourrez commencer par mettre à jour l’index.
vimana update |
Pour chercher un script ou un plugin.
vimana s Perl |
Le résultat vous retourna donc des scripts concernant Perl2 .
Vous pourrez aussi avoir des informations sur un script.
vimana info omniperl |
Pour installer un script.
Vimana i autocomplop |
Si le script n’est pas disponible sur vim.org, mais qu’il utilise un repository Git il sera possible d’indiquer le chemin du repository.
vimana i git:git://path/to/git/repository |
Pour finir il est aussi possible d’installer un script depuis un répertoire.
git clone git://path/to/git/repo.git cd repo vimana i . |
Pour supprimer un script.
vimana remove autocomplop |
Ou encore
vimana remove autocomplop --force |
En conclusion, c’est un outil qui peut-être très pratique et faire gagner du temps, ça évitera de se rendre à chaque fois sur vim.org pour télécharger le script ou faire une recherche.
Vimana sur le CPAN
Vimana sur github
Blog de Yo-An Lin
Documenter vos codes
Posted by admin in Programmation
Lorsqu’on programme une chose importante est de bien documenter son code. Que cela soit pour vous, ou pour les personnes qui utiliseront votre code, ou passeront derrière vous. Tous les langages possède un système de documentation interne Perldoc, Javadoc, Pydoc etc…
Par exemple en Python pour documenter une fonction nous utiliseront les triples quotes, tout de suite après sa définition.
def HelloWorld() : """ Une simple fonction qui affiche un message à l'écran """ print "HelloWorld !\n" |
La description sera donc disponible via la pydoc.
En Perl nous avons le format Pod1 , la bonne vielle documentation.
Pod est un lagage de balisage qui va permettre d’écrire de la documentation pour Perl, pour vos programmes Perl, ou encore pour vos modules Perl. Il sera ensuite possible de convertir POD dans différents formats notamment du texte brute, HTML, page de man. Je vous expliquerai dans un prochain article comment utiliser POD.
Documentation POD sur enstimac
- Plain Old documentation [↩]
Divers Tips Git
Posted by admin in Programmation
J’utilise désormais Git comme outil de gestion de version pour mes projets et diverses autres choses, fichier de configuration, document rédigé avec LaTeX etc… Je cherchais donc tout naturellement une méthode pour avoir un peu de couleurs. Contrairement à Subversion il n’y a pas besoin de faire appel à des outils externes pour cela. Il vous suffira d’éditer votre fichier .gitconfig. Vous avez donc plusieurs manières de procéder pour ça, soit en ligne de commande via la commande git config, soit en éditant directement ce dit fichier.
git config --global color.branch auto git config --global color.diff auto git config --global color.interactive auto git config --global color.status auto |
Ce qui donnera dans le fichier de configuration ~/.gitconfig :
[color] branch = auto diff = auto interactive = auto status = auto |
C’est tout de même plus agréable de voir un peu de couleurs.
Si vous êtes désireux d’avoir des alias avec Git similaire à svn pour le status, commit, branch etc… Vous pourrez encore une fois l’indiquer via git config.
git config --global alias.st status git config --global alias.ci commit git config --global alias.co checkout git config --global alias.br branch |
Ce qui vous permettra maintenant de taper par exemple :
git st #En lieu et place de git status git ci #à la place de git commit git co #à la place de git checkout git br #à la place de git br |
Ce qui est un peu plus court ça fera du bien à vos doigts. Je rappel que la commande git checkout permet de changer de branche et non de récupérer les sources d’un dépôt contrairement à svn. J’avais déjà indiqué les commandes à utiliser pour, indiquer des informations sur votre nom d’utilisateur et l’éditeur lorsque j’avais présenté Git.
Il peut-être très pratique d’avoir accès à un aide-mémoire des diverses commandes disponible, car il arrive d’avoir de trous. Il en existe pour cela cheat git. Il existe aussi des versions svg ou png Disponible ici.
Installer un module Perl
Posted by admin in Programmation
Il y a plusieurs manières de procéder pour installer un module Perl. La première consiste à regarder, si il n’est pas déjà packagé pour votre distribution. Si vous êtes sous Debian ou un dérivé, vous devriez trouver la plupart du temps votre bonheur, étant donné la grande facilité de packager un module Perl pour cette dernière distribution. La paquet d’un module Perl pour Debian, généralement, se trouve de la forme libtype-nom-perl. Par exemple :
libnet-twitter-perl
ou encore
libarchive-tar-perl
C’est la méthode à préconiser pour une intégration parfaite à votre distribution.
Il peut arriver tout de même, qu’il n’existe pas de paquet pour le module que vous souhaitez installer, dans ce cas là, vous pouvez passer par le CPAN.1 Le module CPAN.pm a été préinstallé sur votre machine. Il va vous permettre d’installer et configurer des modules. Lors du première appel à cpan, il vous faudra répondre à une série de questions, notamment le chemin de gunzip. Généralement les réponses par défaut sont correctes, mais tâchez tout de même, à toujours vérifier, c’est important de faire attention à ce que l’on fait. Ensuite vous pourrez installer des modules via le cpan, soit en lançant la commande cpan, et ensuite au prompt cpan indiquez install suivi du nom du module :
install Net::Twitter |
Soit en indiquant en argument le module à installer :
sudo cpan Net::Twitter |
La dernière solution consiste à installer le module à la main, notamment lorsque le module n’est pas disponible sur le CPAN. Il vous faudra alors récupérer les sources généralement compressées au format tar.gz. Ensuite décompressez l’archive, déplacez-vous dans le répertoire, lisez le README, pour finir effectuez les manipulations qui sont généralement perl Makefile.pl qui va générer le makefile, make, make test et enfin sudo make install.
wget http://search.cpan.org/CPAN/authors/id/M/MM/MMIMS/Net-Twitter-3.05000.tar.gz tar -zxvf Net-Twitter-3.05000.tar.gz cd Net-Twitter-3.05000/ perl Makefile.PL make make test sudo make install |
Si tout s’est passé et que vous n’avez pas eu de message d’erreur le module devrait être installé. J’ai pris un mauvaise exemple, mais je n’avais pas de module non disponible sur le CPAN sous la main. C’était pour montrer la démarche. Pour vérifier que le module est bien installé :
perl -MNet::Twitter -e 1 |
Si aucun message ne s’affiche, cela signifie que le module est bien installé.
En revanche, si vous avez ce genre de message :
Can't locate Net/Twitter.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .). |
C’est qu’il y a eu un problème quelque part.
Concernant les bibliothèques que vous être en train de développer ou qu’un ami vous a gentiment fourni et que vous aimeriez tester. Vous pourrez créer un répertoire lib/perl par exemple, dans votre home personnel et indiquer le chemin à la variable d’environnement PERL5LIB :
export PERL5LIB="$HOME/lib/perl" |
Une autre solution consiste à indiquer le chemin directement dans le source :
use lib $ENV{'HOME'} . "/lib/perl"; |
Voilà, vous êtes maintenant paré à installer des modules Perl de différentes manières. N’oubliez pas, Perl, c’est bien et ce qui fait sa grande force est justement son nombre de bibliothèques disponibles sur le CPAN.
- Comprehensive Perl Archive Network qui regroupe la plupart des archives logicielles et bibliothèques écrites en Perl. [↩]
Bonnes résolutions 2010
Posted by admin in Non classé
Le titre n’est pas forcément le mieux choisi. Oui, cela me fait toujours rire cette tradition des bonnes résolutions, lorsqu’une nouvelle année débute. C’est un peu comme remettre les choses à demain. Pourquoi attendre qu’une nouvelle année démarre, pour prendre de bonnes résolutions ; pourquoi repousser les choses que l’on pourrait faire aujourd’hui à dans 8 mois. C’est tout au long de l’année que j’essaie d’évoluer, progresser, avoir de bonnes résolutions. Comme certains le savent, j’ai parfois de très longue journée, et j’ai toujours beaucoup de choses à faire. Ne serait-ce qu’assouvir ma soif d’apprendre, me demande beaucoup de temps. J’ai donc tout au long de l’année, essayé d’optimiser un peu mon temps.
J’ai tout de même pris de bonne résolution pour l’année 2010, en fait, j’ai eu et fait des découvertes quelques jours avant la nouvelle année, ça tombait donc bien.
A la base, je ne suis pas forcément quelqu’un de super organisé. Par conséquent je savais toujours ce que j’avais à faire, mais je ne notais pas ces choses. J’étais donc perdu, je savais ce que je devais faire, mais ne me fixant pas d’objectifs pour la journée, je m’affolais et prenais peur par toutes les choses que j’avais à faire. Au final, je n’avançais pas beaucoup, car je ne savais pas par ou commencer. Ce qui était très frustrant, puis je me disais toujours « bon je vais commencer par faire ça, puis non ça me soule, en fait, je vais plutôt faire ceci, ah peut-être bien cela, finalement, j’ai trop de choses à faire je ne vais pas m’en sortir ». Généralement, je finissais par aller glander sur la toile, ou à faire des choses que je n’avais pas prévu.
J’ai fait la découverte de deux outils, le premier est pal un agenda en mode texte simple et efficace, le deuxième est devtodo, un gestionnaire de todo lui aussi est simple et efficace. Les deux forment un très bon complément au final. L’une de mes résolutions est donc d’être plus organisé. Ce que je fais, c’est que je me fixe des objectifs pour chaque journée dans pal, et devtodo me sers plus de pense-bêtes lorsque j’ai des choses à faire, mais que je ne sais pas encore quand est-ce que je souhaite les faire, je les mets dans devtodo, avec un ordre de priorité. J’ai commencé à m’en servir, il y a quelques jours et je peux déjà assurer que ça fonctionne bien, je suis d’ailleurs assez étonné de voir ce que je suis capable d’accomplir en une journée. Je remercie donc pal et devtodo, mes sauveurs. Une autre de mes bonnes résolutions est de continuer à lire beaucoup mais de façon plus sérieuse. C’est-à-dire tant-que je n’ai pas compris un passage je le relis, réaliser tous les exemples du livre, s’il y a des exercices tenter de tous les faire, prendre d’une façon un peu plus structuré des notes de passage qui me semble important, avec bien entendu ma propre vision, avec ma réflexion. Pratiquer plus, en ayant plus de projets personnels, en étant plus sérieux, avec ces dit projets, et de manière constante et régulière. Apprendre de nouveau langage, et notamment Erlang que j’ai commencé, il y a quelques jours. Essayer de moins me laisser distraire par des choses sans importance, être plus concentrer à ce que je fais. Trouver une alternative à Google pour les recherches pour plusieurs raisons que j’expliquerai peut-être plus tard. Poster plus souvent sur ce blog, pour être précis, une fois par semaine, tous les dimanches. Si l’article me demande un long travail de lecture, de documentation et de pratique sur une technologie que je connais pas, il se peut qu’il y est un délai un peu plus long. Je me suis tout de même fixé comme objectif que cela ne doit pas dépasser une semaine. Ce qui signifie au pire, un article une fois sur deux, ce qui fait au moins un, deux articles dans le mois. Pour finir participer plus régulièrement à vim-fr.org que j’ai cofondé avec istaz. J’ai d’autres résolutions que ce soit au niveau technique ou personnel, mais je ne vais pas non plus tout vous raconter, cela ne serait point amusant, et risquerai de rapidement vous souler.
Je ne vais pas vous faire un bilan de mon année 2009. Simplement, vous dire que malgré une très grosse baisse de régime et de fatigue au mois de décembre, ce fut globalement une très bonne année. Je suis surtout très fier et heureux d’une chose que je n’aurai besoin de préciser ici. Ce que j’attends pour l’année 2010, continuer à progresser et apprendre des choses en informatique, et j’espère du fond du coeur avoir une belle progression au niveau du développement, car pour le moment c’est pas toujours ça. Peut-être aussi avoir un peu plus de lecteurs pour ce blog, car ça fait toujours plaisir de savoir que lorsqu’on écrit, des personnes nous lisent. Je vais donc tenter d’écrire des choses plus intéressantes. Réussir à être reconnu par les autres barbus, pour mon travail, comme quelqu’un de passionné, qui travaille sérieusement, qui fait en sorte d’évoluer et de progresser et qui fait du bon travail cela va donc avec la progression dans ma façon de coder c’est tout de même mon métier après tout.
En conclusion je vais tenter de mettre en application, ces dites bonnes résolutions pour l’année 2010. Pour certaines résolutions, c’est déjà le cas et cela me semble assez bien parti, alors j’espère que cela va continuer. Je vais donc tout faire pour, car c’est à moi de fournir le travail, il n’y a personne qui peut m’aider à ça. J’ai toutes les cartes en main à moi de ne pas les gâcher.
Documentation Jquery en français
Posted by admin in Internet/web
Il y a quelques jours j’ai découvert une documentation de Jquery en français qui a été réalisée par JarodxXx et qui est disponible depuis février 2009. La documentation est claires et muni de bon exemple. L’auteur a décidé d’ajouter ses propres observation pour certaines fonctions ce qui rend la documentation agréable. Le plus intéressant reste la possibilité d’ajouter des commentaires ce qui permettra à chacun d’apporter des exemples ou des explications. J’allais oublier j’apprécie aussi le moteur de recherche du site moins sensible que celui de la documentation officiel.
Newsbeuter un lecteur de flux rss en ligne de commande.
Posted by admin in Logiciel libre
Newsbeuter est un agrégateur de flux, simple, léger et agréable1 en ligne de commande. Je l’utilise depuis peu mais j’en suis très satisfait. J’avais du mal à trouver un agrégateur qui me plaise j’avais donc abandonné l’idée de suivre des flux. Son interface est un peu similaire à celle de Mutt une barre en bas nous rappelle les principaux raccourcis disponible. Il ce compose de deux fichiers un pour la configuration et l’autre pour l’ajout ou suppression de flux.
Pour l’installation sous Debian ou dérivés.
apt-get install newsbeuter |
Comme dit il existe deux fichiers nous allons commencer par configurer un petit peu newsbeuter. Il existe pas mal d’options et la documentation et plutôt bien faite, claire et compréhensible. Je pourrais donc vous conseillez de lire une première fois la documentation pour avoir une vision globale des différentes possibilités qui s’offre à vous, et y revenir au besoin pour une options spécifique. Pour le moment mon fichier de configuration est très minimal quelques lignes, pour le reste j’ai gardé les options par défauts. Le fichier à ouvrir pour ajouter des options est config il se trouve dans le home utilisateur ~/.newsbeuter/config
auto-reload yes reload-time 5 browser w3m error-log "~/.newsbeuter/error.log" |
Sur la première ligne on indique qu’on souhaite qu’au lacement de newsbeuter les flux soit mis à jour, sur la deuxième ligne on indique en minutes le temps de raffrachisement pour des flux2, sur la troisième ligne on indique le browser à utiliser pour l’ouverture des liens par défaut c’est lynx, mais je préfère w3m, et pour finir on indique un fichier ou stocker les erreurs. Il est possible d’indiquer une limite de stockage par flux 100items maximum.
max-items 100 |
Par défaut la valeur de max-items est à 0 ce qui signifie que tous les items seront gardés. Il existe aussi une option qui permet d’avoir une notification lors d’un nouvelle item.
notify-xterm yes |
L’option text-width aussi peut-être sympa pour indiquer le nombre de colonnes maximum par ligne.
text-width 72 |
Il existe encore d’autres options que je vais vous laisser découvrir par vous même dans la documentation.
Nous allons maintenant nous intéresser au deuxième fichier de newsbeuter celui qui contient les urls des flux. Vous allez donc ouvrir ~/.newsbeuter/urls pour ajouter vos flux. Le fichier doit avoir une url de flux par ligne. La chose intéressante est de pouvoir classer ses différent flux suivant une thématique par exemple Gnu/linux. Cela est possible dans newsbeuter grâce au système de tags.
http://mathieui.net/b/?feed=rss2 Gnu/linux |
Pour un tag avec deux mots ou plus il faudra utiliser des doubles quotes.
http://www.framablog.org/index.php/feed/atom "Actualité informatique" |
Vous pourrez accéder au tags avec la touche « t » ou encore avec :tag
Newsbeuter possède aussi un langage de filtre.
( unread_count > 0 and unread_count < 10 ) or total_count > 100 ( author =~ "Frank" or author =~ "John" ) and ( title =~ "Linux" or title =~ "FreeBSD" ) |
Je vous laisse le soin de lire la documentation pour avoir un peu plus d’informations sur ce langage de filtre.
Il est aussi possible d’ ignorer certains item grâce au système de killfiles.
ignore-article "*" "title =~ \"Gentoo\"" ignore-article "http://synflood.at/blog/index.php?/feeds/index.rss2" "title =~ \"newsbeuter\"" |
L’étoile3 permet de spécifier que dans tous les feeds ou souhaite ignorer les articles possédant Gentoo dans le titre. Cette commande doit être utilisé dans le fichier ~/.newsbeuter/urls il est possible de spécifier autant de ignore-article que l’on désire.
Il est possible de regrouper les tags grâce au Query Feeds.
http://domain1.tld/feed.xml fun news tag1 http://domain2.tld/?feed.rss private jokes tag1 http://domain3.tld/feeds.rss news "query:tag1 Articles:tags # \"tag1\"" |
Je ne vais pas résumer les raccourcis disponibles, car comme dit ils sont toujours présenter dans une barre et autrement il y a le raccourcis ? pour avoir l’aide.
En conclusion j’espère vous avoir convaincu de la puissance de newsbeuter et avoir pu vous aidez à démarrer. Bien-sur je n’ai certainement pas expliquer toutes les possibilités possible je n’ai cherche pas à être un manuel, mais j’espère vous avoir présenter les concepts les plus utiles. Bonne lectures et configuration.
- Je devrais toujours tout de suite chercher une solution en mode texte je n’apprécie véritablement que ce type d’interface [↩]
- Par défaut 60 [↩]
- Joker [↩]
Mutt-patched
Posted by admin in Logiciel libre
Je me suis mis à utiliser Mutt en début de semaine pour la gestion de mes mails. Comme d’habitude j’ai été conquis par Mutt encore une fois les applications en mode texte montre toutes leurs puissances. Je tiens à remercier certaines personnes qui m’ont apporté une aide lors de la configuration de ce dernier. J’écrirai certainement de temps à autres des petits tips pour une utilisation plus agréable de Mutt.
Par défaut Mutt n’a pas de barre latéral indiquant les différentes mailbox configurées. Pour ce faire il existe un patch qui vous permettra donc d’en bénéficier certaines distributions dont Debian ont un paquet disponible sous le nom de mutt-patched.
sudo apt-get install mutt-patched |
Lors du prochain démarrage de Mutt vous verrez la barre latéral sur le coter avec le nombre de mails que contienne chaque mailbox et le nombre de nouveau message. N’oubliez pas de définir les boîtes qui reçoivent du courrier dans votre muttrc via mailboxes.
mailboxes =inbox =mailing-list/mongueurs |
Vous pourrez aussi assigner des touches pour pouvoir naviguer dans la barre via bind, par exemple.
bind index \CP sidebar-prev bind index \CN sidebar-next bind index \CO sidebar-open bind pager \CP sidebar-prev bind pager \CN sidebar-next bind pager \CO sidebar-open |
Ctrl+p pour aller à la boîtes précédentes,
Ctrl+n pour aller à la boîtes suivantes,
Ctrl+o pour ouvrir la boîtes.
La capture provient de df7cb .
Il est agréable d’avoir une vue sur ces différentes boîtes je pense que mutt-patched est indispensable.
Mutt sur wikipedia
Site du patch
Aide en français
Découverte de Git
Posted by admin in Logiciel libre
Aujourd’hui je vais vous présenter Git, et les commandes de bases pour la création de dépôt, les commits en local et quelques commandes de bases. Je n’irai pas plus loin, car plutôt que de faire une très longue pages qui serait fatigante à lire je préfère couper cela en plusieurs parties. La prochaine sera réservé à la découverte du fonctionnement des branches, puis une autre sera réservé aux différentes interface graphique disponible pour lire les journaux des commits etc…
Git est un logiciel de gestion de versions décentralisé écrits par Linus Torvalds. Pour la petite histoire Git a été initialement écrit pour remplacer BitKeeper 1 qui avait décidé d’arrêter de fournir la version gratuite en 2005. L’arrêt aurait été à cause de Andrew Tridgell qui avait développé un logiciel open-source permettant d’afficher certaines informations qui n’était pas disponibles dans la version gratuite de BitKeeper. Git signifie connard dans l’argot en anglais. Linus aurait dit « je ne suis qu’un égocentrique, donc j’appelle tous mes projets d’après ma propre personne. D’abord Linux, puis git. »
La grande force de Git est donc d’être décentralisé bien-sur ce n’est pas le seul il en existe d’autres comme, Mercurial écrit Python, Bazaar écrit en Python également et sponsorisé par Canonical, Darcs, et certainement d’autres encore. Mais Git semble être celui qui ce démarque le plus, il est déjà un petit peu plus rapide que Mercurial ou Bazaar et il est très certainement plus complet même si on utilisera généralement pas Git à plus de 5% de ces capacités.
Contrairement à Subversion Git ne travail pas avec des numéros de révisions mais avec des hash SHA1. Cela peut certainement dérouter au début mais on s’y habitue. Cela permet à Git de gérer ces objet avec des identifiant unique, il n’est pas possible d’avoir deux fichiers avec un contenu différent ayant le même hash. Tant qu’un fichier n’est pas modifié le hash reste inchangé et n’est stocké qu’une seul fois. En revanche si le fichier est modifié les deux versions sont stocké sur le disque.
Pour installer Git sur une distribution Debian ou un de ses dérivées il faudra installer le paquet git-core, git tout court correspond à un outil gitfm pour Gnu Interactive Tools File Manager. Ce qui n’a rien a voir.
sudo apt-get install git-core |
Une fois Git installé nous allons pouvoir le configurer un petit peu. Lorsque je dis configurer c’est un bien grand mot, il s’agit simplement d’indiquer des information sur vous votre nom, mail qui seront indiqué dans les journaux de Git, et l’éditeur que vous préférez qui sera ouvert lors des commits pour indiquer le message.
git config --global user.name "Votre nom ou pseudo" git config --global user.email mail@mail.com git config --global core.editor vim |
On indique Vim parce-que Vim c’est le meilleur de tous les éditeurs. Non, non je ne lance pas de troll.
Je risque très certainement d’en décevoir plus d’un, mais finalement utiliser Git n’est pas si compliqué que ça, du moins pour utilisation basique. J’aurai même envie de dire qu’il est plus naturel, dans le sens où Git va vous pousser à utiliser des branches2. Vous pourrez par exemple créer une branche unstable qui serait les commits récent pas encore tester, puis une fois que le code aura été testé le merger dans master. Ceci n’est qu’un exemple bête je n’ai rien trouvé d’autres, mais c’est simplement pour expliquer que svn vous a fait prendre de mauvaise habitude à travailler directement sur trunk, et que contrairement à svn la gestion des branches en Git est très agréable et facile. Alors j’aurai simplement envie de dire abuser des branches.
Pour créer un dépôt Git il vous faudra vous placer dans le répertoire cible qui sera votre répertoire de travail par la suite et nous allons initialiser le dépôt.
git init |
Le répertoire .git est maintenant créé vous pourrez le constater avec un ls -a. Globalement c’est comme un .svn, il va contenir des informations notamment l’historique. Le dépôt est pour le moment vide et ne contient pas encore les fichiers du projet. Il va donc falloir ajouter les fichiers au dépôt. Si votre répertoire contient déjà les fichiers vous pouvez utiliser le joker.
git add * |
Si vous souhaitez simplement ajouter un fichier en particulier il vous suffit de préciser son nom.
git add essai.pl |
Si vous n’avez pas encore de fichier créé un fichier d’essai. Pour vous exercer.
touch essai.pl |
De la même façon qu’avec Subversion il vous est possible de connaître l’état des fichiers du dépôt.
git status |
Maintenant que le fichier a été ajouté on peut faire un premier commit.
git commit -m "Ceci est mon premier commit avec Git, c'est trop génial." |
Nous allons maintenant nous amuser à modifier un peu le fichier.
echo "Un essai de modification. Juste histoire de s'amuser un peu pour découvrir Git." >> essai.pl |
Si vous faite de nouveau un git status vous verrez que votre fichier a été modifié, mais qu’il n’a pas été mis à jour. Dans le fonctionnement cela signifie que Git ne considère pas les modifications d’un fichier comme un fichier à commiter ce qui n’est pas plus mal finalement, même si cela peut surprendre la première fois. Il va donc nous falloir ajouter le fichier dans le cache prêt à être commiter.
git add essai.pl |
On peut visualiser ce qui sur le point d’être commité.
git diff --cached |
Vous pouvez maintenant commiter votre fichier.
git commit |
Si vous souhaitez commiter tous les fichiers qui ont été modifié vous pouvez vous passer de l’étape d’ajout de fichier.
git commit -a |
L’option pour all.
En conclusion pour le moment nous avons pu constater que git n’est pas si difficile que cela de prise en main dans une utilisation basique qui est suffisante pour débuter un projet, et avoir une historique des modifications. Nous avons aussi constaté que Git offrer des avantages certains à Subversion, il est très rapide de créer un dépôt, il est tellement rapide et facile de créer un dépôt que vous allez prendre l’habitude de créer des dépôts pour tout et n’importe quoi même pour des petits scripts, fichier de conf, rapport LaTeX etc… Ce qui est une très bonne habitude. Vous ne dépendait pas d’un serveur, vous n’avez donc pas besoin de réseau pour commiter il vous sera donc possible de commiter depuis n’importe où, avion, train, fin fond de la montagne, ou je ne sais où encore. Git va clairement changer votre façon de travailler, vous allez être moins retissant à l’idée de créer un dépôt, vous allez faire des commits beaucoup plus régulièrement, vous aller être plus organiser et travailler avec des branches et pleins de bonne chose encore je pense. Git fut pour moi une révélation, et en un mot je dirai que Git est génial. Alors n’hésiter pas à l’adopter pour vous faire votre propre idée. Dans un prochain article nous verrons les push sur un dépôt, et la création des branches.
Comme je sais que je ne suis pas forcément un des meilleurs pédagogue, que je n’exprime forcément très bien les idées de Git, et que je ne suis pas parfait tout simplement. Je vais vous faire partager une liste d’article que j’ai trouvé sur la toile. Bien-oui, car il y a de nombreuses personnes déjà qui ont parlé de Git en français.
Git sur wikipedia
Découvrir Git
Une comparaison de Git vs SVN
Une autre manière d’utiliser Git
Utiliser Git avec Github
Un tutorial Git
Un autre tutorial
Un dernier pour la route
- un logiciel de gestion de versions décentralisé aussi mais propriétaire [↩]
- C’est aussi une des force de Git la puissance des branches [↩]


