Martius Web

Les articles : Zsh for the shell nerds

le mercredi 2 mars 2011, 00:37

Il y a quelques semaines mes amis Paul et Nicolas m’ont encouragé a essayé une alternative à Bash, le shell que nous utilisons généralement tous par défaut. Le changement s’est pratiquement fait directement (je suis un gros utilisateur de la console).

Changer de shell dans la console, c’est comme changer d’environnement de bureau (GNOME, Kde, etc) : globalement c’est la même chose, mais la manière dont ils sont présentés va varier. Alors Zsh, ça apporte quoi par rapport à Bash ?

Concrètement, on peut le voir comme une surcouche : la syntaxe des commandes ne change pas énormément. Les principales fonctionnalités qui vous feront basculer sont celles qui apparaissent en mode interactif :

  • l’auto-complétion/complétement (faites votre choix sur la terminologie) est vraiment puissant et paramétrable,
  • la correction des commandes est magique, et évite de retaper de longues commandes pour une faute de frappe,
  • une meilleure gestion de l’historique des commandes.

En plus, zsh supporte de nombreux plugins et supporte un mécanisme de thèmes, dont une impressionnante collection est maintenue sur un dépôt github dans un projet appelé Oh-My-Zsh. Il suffit de cloner le dépôt en local, de suivre le Readme, et de choisir son thème pour qu’en quelques minutes, Zsh soit adopté !

En plus, de nombreux thèmes supportent nativement le plug-in git qui offre la complétion/le complétement et affiche la branche de travail et si des données n’ont pas été archivées dans un commit.

En ce qui me concerne, j’ai choisi le thème “jreese”. Si vous avez le loisir de commenter et de me recommander des plug-ins ou docs pour encore améliorer ma productivité, je suis preneur !

Histoires brèves : Annuler un rm (retrouver des fichiers supprimés) sur une partition ext3 ou ext4

le mardi 18 janvier 2011, 15:40

Le billet court du jour devrait vous permettre d’éviter de paniquer bêtement parce que votre doigt à glissé et que vous avez lancé la commande

rm -rf *

plutôt que :

rsync -rf *

Si si, ça arrive. L’outil qui va vous sauver la vie s’appelle extundelete. Il fonctionne très bien sur une partition ext3 ou ext4, cependant, pour l’utiliser la partition ne doit pas être montée. Pour démonter /home, il vaut mieux soit passer par un live-usb (comme ça /home n’est jamais monté) ou quitter votre session, lancer un terminal non graphique (Ctrl+Alt+F2 par exemple), vous logguer en root (c’est plus génant sur ubuntu…) et hop :

# extundelete --restore-all /dev/sda3

D’autres options comme --restore-file et --restore-files sont également bien pratiques.

Les articles : Set up a Teeworlds server on Debian Lenny (or any other Gnu/Linux)

le mardi 30 novembre 2010, 08:53

If you are reading this, I’m pretty sure you already know Teeworlds, an Open source 2D game between Worms (I mean Wormux) and Doom with graphics from Kirby. Today I’m trying to set up a server to host some sessions of this game.

As you will see, this is quite straightforward, and does not require tremendous skills in GNU/Linux systems administration.

Notice : This content is available in English and I’ll try to provide it in French as soon as possible. I decided to write it in English since I did not found a complete how-to on this -very important- topic.

Histoires brèves : Flash AS3 : Détecter les clics sur un élément caché par un autre

le mercredi 10 novembre 2010, 21:02

Ceci est donc le petit billet du jour, fruit d’un paquet d’heures de recherche pour un résultat fort simple !

Dans le cadre d’une application réalisée en Flash (Action Script 3) - oui, je sais - j’ai une série d’éléments qui sont masqués par une image transparente, faisant office de masque : le calque supérieur prend tout l’espace et capte donc les événements de la souris (notamment le clic).

J’ai cherché plusieurs solutions, j’ai réfléchi à déterminer l’objet cliqué d’après les coordonnées du pointeur, ce qui me semblait complexe étant donné que la forme d’un élément d’un calque en dessous n’est pas vraiment prévisible. Après avoir googlé le problème pendant un moment donc, je suis tombé sur une propriété de la classe (abstraite) InteractiveObject fort utile : mouseEnabled.

Cette propriété permet de désactiver toute interaction de la souris sur l’objet concerné, et la bonne surprise fût que, tout naturellement, le clic souris prenait pour cible l’élément du dessous.

On récapitule donc rapidement :

  1. var gfxElt:MyGraphicElement = new MyGraphicElement();
  2. var mask:MyMask = new MyMask();
  3.  
  4. addChild(gfxElement);
  5. addChild(mask);

l’objet graphique mask recouvre l’objet élément, il n’est plus cliquable.

  1. mask.mouseEnabled = false;

Maintenant si !

Je suis bien conscient que cette découverte n’est pas génialissime en soi, mais peut-être que ce billet épargnera à l’un d’entre vous de perdre du temps et d’imaginer une solution complétement farfelue proche d’une ré-invention de la roue.

Les articles : Paris Web : Conclusion !

le mercredi 20 octobre 2010, 18:44

Voilà, j’ai publié tous mes comptes rendus sur Paris Web, il est temps d’en faire un petit pour tout résumer. Je remercie à nouveau Pascale et Stéphane, grâce à qui j’ai pu accéder à cet événement malgré ma situation d’étudiant.

Paris Web, c’était deux jours de conférences à l’IBM Forum à Bois-Colombes (au nord de Paris), suivie par 450 personnes (et une centaine d’autres en direct via le net) et une journée d’ateliers à Telecom-Paristech (Paris XIIIe) qui a réunit 250 personnes.

Je remercie également mon amie Mélanie pour m’avoir hébergé pendant ces quelques jours.