Martius Web

Nos articles, didacticiels et tutoriaux

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.

Les articles : (Paris Web !) #8 Upgrading the frontend, encore un peu d'HTML5

le mercredi 20 octobre 2010, 16:36

Cette conférence était dirigée par Dave Shea,que l’on connait tous pour être le créateur de Css Zen Garden (même si il nous rappelle tous qu’il n’a pas fait que ça !). La conférence était en anglais.

C’est la dernière conférence pour laquelle j’ai pris des notes suffisamment complètes pour les résumer sur le blog. Je n’ai pas trop pris de notes sur les conférences orientées graphisme, car beaucoup en parleront mieux que moi.

Les articles : (Paris Web !) #7 HTML5 maintenant... et même avec IE 6

le mercredi 20 octobre 2010, 16:30

Conférence dirigée par Jean Pierre Vincent, que je lis avec assiduité dans les transports en commun ou pendant les pauses déjeuner.

Cette conférence parle comme beaucoup d’HTML5 et des nouvelles fonctionnalités qui arrivent avec. Jean-Pierre Vincent en utilise quelques unes, et cherche (ou réalise) des fallbacks utilisés en production.

Les slides de la présentation sont disponibles sur le site de l’orateur.

Les articles : (Paris Web !) #6 Innover de 9 à 5 (sur les heures de bureau)

le mardi 19 octobre 2010, 13:46

 La conférence est dirigée par Olivier Thereaux. Il présente ses observations sur le concept d’innovation dans l’entreprise. Cette conférence changeait des autres puisqu’on a pas vraiment parlé de web. Par contre, c’était en fin de journée, je commençais à avoir du mal à prendre des notes.

Les articles : (Paris Web !) #5 Reusable Code : For Good or For Awesome

le vendredi 15 octobre 2010, 10:50

Une conférence qui s’appelle “reusable code”, je sais d’avance que ça va me plaire. En plus, Jake utilisait une wiimote pour contrôler sa présentation, c’était forcément génial.

Une excellente conférence, mais qui s’adresse essentiellement aux développeurs. L’orateur présente des bonnes pratiques pour réaliser des API réutilisables en Javascript. Bien sûr, bon nombre de conseils s’appliquent dans d’autres cas. C’est la deuxième conférence que j’ai suivi en anglais.

Conférence dirigée par Jake Archibald, qui fait de belles APIs Javascript pour la BBC.

L’une de ses grosses missions, c’est de produire du Javascript réutilisable.

Les slides de la présentation sont disponibles sur slideshare.

Les articles : (Paris Web !) #3 Let's interface !

le jeudi 14 octobre 2010, 16:12

Cette conférence est la première en anglais, j’ai essayé de la suivre sans traduction pour pouvoir prendre des notes. Je pense que ces notes ne seront pas très utiles car la conférence est très visuelle et interactive. La vidéo sera certainement disponible d’ici quelques semaines.

Conférence dirigée par Chris Heilmann (Tech evangelist chez Yahoo !). Vous pouvez retrouver les slides de la présentation.

Les articles : (Paris Web !) #2 Javascript Server Side (ssJS), par où commencer ?

le jeudi 14 octobre 2010, 14:20

OK, là je m’y retrouve un peu mieux, et je me sens en terrain familier, ou presque : on parle d’exécuter du javascript côté serveur. Ma dernière tentative… ah oui ! Un module PHP expérimental qui embarquait Tracemonkey !

On va faire un point sur l’état de l’utilisation de JS côté serveur. Javascript est-il destiné au client-side ?

Conférence dirigée par Quentin Adam.

Les articles : (Paris Web !) #1 La conception universelle : ou votre site web s'adaptera à tous les besoins.

le jeudi 14 octobre 2010, 14:13

Je suis à Paris Web pour trois jours, je vais essayer de raconter ce que je vois au mieux. Tout est posé brut en fonction de ce que j’entends (j’essaierais de faire une relecture clean quand je serais un peu plus reposé). Soyez indulgent, il est possible (voir probable) que je n’ai pas tout suivi !

Retrouvez tous les billets sous le tag ParisWeb.

Cette première conférence est dirigée par Matt May, Responsable accessibilité chez Adobe (rien que ça). Sa conférence est en français bien qu’il soit anglophone, ce qui rendait le tout parfois un peu difficile à suivre.

Programmation PHP : Peut-on commencer un projet avec Zend Framework ou Symfony en ce moment ?

le samedi 2 octobre 2010, 18:08

Zend vient d’annoncer la disponibilité de leur certification pour PHP 5.3. On peut en comprendre que l’adoption à grande échelle de la dernière version du langage par les entreprises est proche. Parallèlement, les secondes versions des frameworks Zend et Symfony sont en phase active de développement et annoncent qu’ils sont conçus pour cette version de PHP et les suivantes : ils utiliseront abondamment des fonctionnalités qui n’existent qu’à partir de PHP 5.3.

Ces frameworks passent en nouvelles versions majeures et on annonce déjà quelques migraines pour ceux qui envisagent de migrer. On est donc en pleine période de flottement, et je me suis posé quelques questions sur les choix à notre disposition pour commencer un projet.

Programmation PHP : MySQL : activer/désactiver une contrainte d'unicité sur certains tuples

le samedi 21 août 2010, 12:52

La situation n’est pas courante, mais elle peut arriver : dans une table de votre base de données, vous souhaitez vérifier qu’une valeur est unique, mais seulement dans certains cas. Il existe un moyen plus simple que de tordre son modèle pour obtenir ce résultat. La solution n’est pas miraculeuse mais a le mérite d’être assez simple à mettre en œuvre.

Les articles : Utiliser Bayes pour développer un filtre anti-spam

le jeudi 29 juillet 2010, 14:00

En révisant mes cours de probabilités, je me suis dit qu’un bon petit exercice pour une application concrète à l’informatique pourrait être de réaliser un filtre anti-spam utilisant une méthode désormais courante : le filtre de Bayes (dans une version naïve). Je vais essayer d’expliquer la théorie, et qui sait, peut-être proposer une implémentation… un peu plus tard !

Les articles : Ne sacrifiez pas votre code !

le dimanche 11 avril 2010, 16:20

Google vient d’exciter les fous-furieux de la SEO (ces gens qui veulent toujours optimiser une page web pour la faire grimper dans les résultats de recherches). Les ingénieurs de la firme ont annoncé qu’à partir de maintenant, l’algorithme de calcul de pertinence, choisissant l’ordre dans lequel les résultats sont affichés, allait tenir compte de la “vitesse de la page”. Tout de suite, tout le monde s’emballe, on annonce tout et surtout n’importe quoi. Faisons un peu de tri…

Les articles : Nouveaux brouillons pour HTML 5 publiés par le W3C

le vendredi 5 mars 2010, 20:43

Le W3C, organisme de définition et de normalisation des langages qui font le web, a publié aujourd’hui sept documents sur HTML 5.

Ceux-ci sont toujours à l’état de “brouillons” (drafts), qui ont pour objectif, notamment, de permettre aux navigateurs de se préparer à implémenter les nouvelles fonctionnalités et de recueillir des commentaires de la part des contributeurs/utilisateurs.

Les principaux documents sont le brouillon de la spécification HTML 5, les différences entre HTML 4 et HTML 5, ou encore le document de spécification du langage HTML, se voulant être la référence du langage pour les intégrateurs souhaitant se conformer aux standards HTML. Contrairement à la spécification HTML 5, celui-ci ne vise pas a détailler le comportement prévu des navigateurs vis à vis des balises.

On apprend également que les canevas 2D et micro-données, jusqu’alors intégrés à HTML 5 ont maintenant leurs propres spécifications :

Enfin, les deux derniers documents concernent l’intégration du framework RDF en HTML 5 et la réalisation de pages bi-directionnelles (dont le texte va de gauche à droite et droite à gauche).

L’information vient bien sûr du W3C.

Programmation PHP : PHP et les sessions : durée de vie, utilisation avancée et quelques subtilités

le jeudi 18 février 2010, 16:21

PHP met à disposition un ensemble de fonctions permettant de manipuler un mécanisme de sessions : un moyen efficace de conserver des données entre deux requêtes avec lequel vous êtes probablement familier. On s’en passe difficilement sur un site internet interactif !

Bien que ce mécanisme soit assez simple à manipuler, il reste néanmoins quelques subtilités qu’il faut connaître pour en profiter pleinement et éviter des erreurs regrettables. On s’intéressera tout particulièrement à la durée de vie des sessions.

Programmation PHP : Facebook distribue sous licence open-source un traducteur PHP vers C++

le mardi 2 février 2010, 23:41

L’équipe des développeurs de Facebook a annoncé aujourd’hui la distribution (dans un futur proche) d’un outil permettant de traduire en C++ et compiler du code PHP : HipHop for PHP. D’après l’annonce officielle, cet outil permettrait à Facebook de réduire de près de 50% en moyenne la sollicitation du processeur sur la plupart des pages du service, dont le front-end a été essentiellement développé avec PHP.