Archives de catégorie : Software

Petit précis du Git pratique

Git est un très bon logiciel de gestion de versions décentralisé qu’on ne présente plus (et pour ceux qui ne connaissent pas, il est toujours temps d’aller découvrir l’abondante documentation du projet), d’ailleurs créé par Linus Torvalds (qu’on ne présente plus non plus) et qui a depuis fait ses preuves pour gérer des projets d’une taille conséquente (comme, on pourrait le deviner, le kernel Linux).

Mais git est avant tout un outil très riche, et il n’est pas évident de maîtriser toutes ses spécificités – encore faut-il savoir qu’elles existent ! Les commandes Git, reposant en soi sur les mêmes principes que la plupart des VCS (ou logiciels de gestion de versions) et a fortiori des DCVS (VCS décentralisés), proposent beaucoup d’options utiles qui peuvent simplifier la vie des utilisateurs et de ceux qui utilisent un dépôt Git avec vous.

Voici donc un petit hall of fame des options que je suis bien content de connaître dans Git.

Continuer la lecture de Petit précis du Git pratique

Quassel: No DockManager available

quasselIl m’est arrivé un drôle de tour ce matin…

J’utilise Quassel IRC, un client IRC connecté à un serveur distant, ce qui permet notamment d’apparaître connecté et de lire ce qui s’est dit lorsque vous n’êtes pas là.

Le problème du jour n’est pas là : sur ma bonne vieille Ubuntu utilisant sa bonne vieille interface Unity, aujourd’hui, Quassel refuse de démarrer. Enfer et damnation.

Ou plus exactement : il se lance, mais sans fenêtre ! Il apparaît bien dans la liste des processus lancés, mais nulle part sur l’interface graphique, impossible d’interagir avec.

Lorsqu’on lance le programme (quasselclient) en console, une unique ligne cryptique apparaît : « No DockManager available » . Après quelques recherches, j’apprends que c’est un bug connu, mais réputé résolu et datant d’un autre âge… Mais alors quand on y est quand même confronté, que faire ?

Mon salut est tout simplement venu d’un « wipe out » : dans mon cas (Ubuntu), je suis allé dans le dossier de config de Quassel (~/.config/quassel-irc.org), et j’ai effacé tous les fichiers de config de Quassel comme un gros bourrin (rm *) !

Et là, pif paf pouf, après ça mon Quassel a remarché. Comme par magie. Bon évidemment je n’avais rien de très important dans ce dossier, mais n’oubliez pas de faire une sauvegarde ailleurs si vous essayez.

À bon entendeur…

Les fichiers temporaires, ces red shirts de la programmation

enlist-red-shirt2Dans la série télévisée Star Trek, les agents de sécurité sont reconnaissables à leur gilet rouges, c’est pour cela qu’on les appelle couramment les red shirts. Le souci avec ces personnages, c’est qu’ils ont une fâcheuse tendance à mourir dès leurs premières minutes à l’écran (pour une raison différente à chaque épisode), ainsi, les personnages principaux (récurrents) se rendent compte du danger imminent sans subir eux-mêmes de dommages (pratique, scénaristiquement, non ?). Il s’agit souvent de leur unique rôle dans l’épisode, et on ne connaît parfois même pas leur nom.

De manière assez inattendue, on peut trouver des similitudes entre un redshirt de Star Trek et un fichier temporaire en programmation : on en a besoin dans un contexte particulier, son nom ne nous intéresse parfois même pas, et il se doit d’être détruit à la fin, lorsqu’on en a plus besoin.

Cette fois, je vas parler des fichiers temporaires, d’une astuce et de quelques fonctions pour les gérer facilement en C. Notez bien: on est en environnement Linux. Il n’est pas garanti que ça marche (voire même c’est sûr, certaines choses ne marcheront pas) sur Windows ou ailleurs.

Continuer la lecture de Les fichiers temporaires, ces red shirts de la programmation

Python – lancer un programme local avec sh

Voici un petit truc pour gérer une situation à laquelle j’ai été confronté récemment.

Il existe en Python un petit module fort sympathique : sh. Comme son nom l’indique, il permet de gérer des commandes shell, leurs paramètres et leur sortie de façon vachement intuitive. Autant dire que Perl vient de perdre un de ses derniers avantages par rapport à Python 😛

Mais alors où est le problème ? Le problème, c’est que les commandes systèmes marchent bien, mais comment gérer les commandes locales, « ./a.out » par exemple (lancer le binaire a.out dans le dossier courant) ? C’est en fait plutôt facile !

 

python Continuer la lecture de Python – lancer un programme local avec sh

Notes sur Python — deuxième partie

Ça faisait un petit moment qu’il n’y avait pas eu d’article, enfin, pour le blog comme pour beaucoup d’autres choses, on va dire que la nouvelle saison démarre plus près de début Février que début Janvier…

Du coup, la saison 2014 du Scylardor commence par la suite de mes quelques notes sur certaines particularités du Python !

OH MON DIEU un python !! Vite, il me faut étudier son fonctionnement !

Continuer la lecture de Notes sur Python — deuxième partie

Elluminate et Ubuntu

(La seule raison pour laquelle cet article est en rapport avec Québec, c’est qu’il parle de la plate-forme de cours en ligne utilisée à l’université : Elluminate)

Donc, étant actuellement sur une Ubuntu (et essayant vraiment de démarrer Windows aussi rarement que possible), j’aimerais dédier ce court article à quelques problèmes qu’on peut recontrer sur Ubuntu (13.04 ici) en se servant de Elluminate, la plate-forme de cours à distance utilisée pour les cours à l’université Laval…

Continuer la lecture de Elluminate et Ubuntu

Publier la documentation Doxygen d’un projet sur sa page Github

Je travaille actuellement sur un projet documenté avec Doxygen et hébergé sur Github.

Doxygen est un outil de documentation assez puissant qui permet de générer des documentations en HTML ou en LaTeX par exemple. Perso je trouve ça assez rude de juste publier le Doxyfile (le fichier de configuration à donner à Doxygen pour générer la doc) du projet et de laisser les gens la générer eux-mêmes (à leur place, j’aurais la flemme). En attendant, ce n’est pas un projet suffisamment gros pour nécessiter un site Web entier à lui tout seul.

Comment faire alors pour rendre la documentation déjà toute faite disponible au plus grand nombre ? C’est sans compter que chaque projet hébergé sur Github peut avoir une page web qui lui est dédiée. Github propose une page web pour chaque projet, Doxygen permet de générer des docs en HTML.

Vous avez compris en quoi consiste la manip ? Remplaçons la page Web par défaut de Github pour y héberger notre documentation Doxygen !

doxygengithub
« i lurvz you babe »

Continuer la lecture de Publier la documentation Doxygen d’un projet sur sa page Github

OCaml : Parsing a program’s arguments with the Arg module

French version here

The OCaml language has a rather big number of modules in its standard library, which can serve to do almost anything you could want.

In the following, we’re going to see quickly how to use the Arg module to declare and manage optional parameters (some just call them options) of an OCaml program.

One of OCaml’s sexy logos, making other languages jealous

Continuer la lecture de OCaml : Parsing a program’s arguments with the Arg module

OCaml : Parser les arguments d’un programme avec le module Arg

English version here

Aujourd’hui, du fonctionnel, car je refais un peu d’Objective Caml ces temps-ci…

OCaml possède un assez grand nombre de modules dans sa bibliothèque standard, servant à faire un peu tout et n’importe quoi. Dans la suite, on va voir en vitesse comment utiliser le module Arg pour déclarer et gérer les paramètres optionnels d’un programme.

Un des logos sexy d’OCaml que la plupart des autres langages lui envient

Continuer la lecture de OCaml : Parser les arguments d’un programme avec le module Arg

Python: Mémo pour les reptiles étourdis

Aujourd’hui nous allons parler de quelques spécifités propres au langage Python. Comme je travaille pas mal avec Python en ce moment, je découvre (ou redécouvre) des particularités pas toujours évidentes (surtout quand on jongle entre plusieurs langages en même temps), alors je me propose de faire, ici même, un mémo sur les quelques trucs bien pratiques à savoir (et retenir) en Python, ainsi que quelques faux amis qui m’ont parfois fait arracher quelques cheveux…

Continuer la lecture de Python: Mémo pour les reptiles étourdis