Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Utiliser Bash pour supprimer les encodages magiques de Ruby 1.9

| Comments

Si vous avez travaillé sur des projets écrit avec Ruby 1.9, vous avez peut-être utilisé les encodages magiques (souvent appelés magic comment). Il s’agit d’un commentaire en début de fichier qui définit l’encodage :

1
# -*- encoding: UTF-8 -*-

Récemment j’ai passé plusieurs projets de Ruby 1.9.x à Ruby 2.x et j’ai naturellement voulu supprimer ces directives d’encodage qui ne sont plus nécessaires.

J’imagine qu’un IDE ou un autre doit être capable de faire ça (<mode troll> sinon quel intérêt à utiliser un IDE ? </mode troll>). Toujours est-il que quelques commandes dans Bash et hop, terminé ;)

Voici comment faire, sans trop entrer dans les détails. J’espère juste vous donner envie d’utiliser Bash, ou un autre shell (si ça n’est pas déjà le cas).

Coco version 0.13.0

| Comments

Je me rend compte que j’ai sorti la version 0.13.0 de coco il y a près d’un mois et que je n’ai pas encore écrit une seule ligne sur le sujet !

Coco est un outil de couverture de code pour Ruby — code coverage en anglais —. En gros, coco vous dit quels sont les fichiers d’un projet qui ne sont pas suffisamment testés :

How to stay productive while working from home

| Comments

Pour la première fois voici un article en anglais écrit par une développeuse qui travaille pour une entreprise française, depuis le Mexique et le Brésil.

{ Guest Post }

It’s been a bit more than year since I started remote working from Mexico and Brazil. I must admit it wasn’t easy to adapt myself to this way of working, as I consider myself someone who likes to talk and share some fun moments with my colleagues and friends.

De meilleurs alias avec zsh

| Comments

{ Guest Post }

Pour m’améliorer en tant que dev, j’essaye au maximum de simplifier et d’automatiser mon workflow. L’idée est de passer moins de temps à faire des choses qu’un ordinateur peut faire à ma place, et plus de temps à réfléchir aux problèmes que je cherche à résoudre.

C’est dans cette optique que je me suis mis à ajouter énormément d’alias très courts à mon shell. Un alias revient à automatiser l’action de taper sur les touches pour des commandes fréquentes. Malheureusement, les alias sont sous-utilisés pour plusieurs raisons : on a peur d’oublier la commande qui se cache derrière, un autre dev avec qui on est en train de faire du pair programming aura du mal à comprendre quelles commandes sont exécutées, et souvent on oublie tout simplement qu’on a un alias pour la commande qu’on est en train de taper.

Pour remédier à ces problèmes, j’ai trouvé des solutions que des fonctions avancées de zsh permettent d’implémenter : les alias explicites, et les alias obligatoires.

Comment j’ai amélioré mon Ruby avec des contrats

| Comments

{ Guest Post }

Mes aventures avec une quantité de langages m’ont permis d’entrevoir de nouvelles approches et techniques. Par exemple, un des gros apports d’Haskell sont les Types et dans Erlang/Elixir le Pattern-matching est roi. Professionnellement je code principalement en Ruby et je rêvais d’avoir un système de Types avancé ainsi que du pattern-matching. C’est ainsi que j’ai découvert une super gem Contracts.ruby et dans cet article je vais essayer de vous présenter le Design par Contrats à travers l’utilisation de cette gem.

Extraction des tags de mon blog en ligne de commande

| Comments

Niveau : facile

J’aimerais savoir quels sont les tags que j’ai le plus employé sur ce blog. Pour cela il va d’abord falloir les extraire, si possible dans un fichier csv.

Comment ? En Ruby ? En R ? Non non, en Bash, ça va être beaucoup plus drôle.

Petite étude de cas pour découvrir la puissance de la ligne de commande, ou pour rafraichir ses connaissances ;)

Ce blog à 2 ans

| Comments

Bonjour à toutes et à tous.

Aujourd’hui, le 8 juillet 2015, ce blog à exactement 2 ans. Pour fêter dignement cet anniversaire, je publierai plusieurs guest posts (des articles d’invités) pendant ce mois de juillet. Quelques uns sont déjà prévus, à partir de lundi prochain.

Il reste encore de la place ; n’hésitez pas à me contacter si vous avez envie de faire partie de la fête, pour que je publie votre article. Tous les sujets sont à priori les bienvenus.

Ruby est un peu paresseux

| Comments

Niveau : intermédiaire

Voici un mécanisme interne du langage Ruby démontré le temps d’une petite session irb.

D’abord, créons la variable a, qui va contenir la chaîne "one" :

1
2
3
$ irb
>> a = "one"
"one"

Créons ensuite la variable b, qui va contenir ce que contient la variable a, c’est à dire aussi "one" :

1
2
>> b = a
"one"

Question : est ce que les variables a et b partagent le même emplacement en mémoire ?

Comportement inattendu de Rspec

| Comments

Niveau : intermédiaire

Je suis tombé aujourd’hui sur un comportement inattendu de Rspec. Je ne dis pas que le comportement est mauvais, seulement je m’attendais à autre chose qui me semble plus logique. Quoiqu’il en soit, je partage mes réflexions avec vous.