Il y a un peu moins d'un an, j'ai fais l'acquisition d'un Lenovo T420s de seconde main sur eBay.

Cet achat était motivé par deux facteurs :

  • Mon MacBook Pro (late-2011) commençait à montrer des signes de faiblesse - il tomba effectivement en rade quelques semaines plus tard, mais Apple prit tout de même en charge le remplacement de la carte mère.
  • Les mises à jours continuelles de OS X macOS poussent le consommateur à changer régulièrement de machine - les dernières versions du MBP ne permettant même plus un upgrade de la RAM ou même du disque dur.

Comme beaucoup de gens, j'ai mes petites habitudes. L'une d'entre elles consiste à, une fois par semaine, me rendre à la laverie de mon quartier pour y faire sécher une partie des lessives hebdomadaires.

Une fois par semaine, je me rends donc à la laverie de mon quartier, les bras chargés d'une manne débordante. J'y reste 30 minutes environ, et j'y dépense en moyenne 2 euros.

Tu es marié? Toi?

Il y a encore quelques mois, c'était le genre de réactions auxquelles j'étais confronté. Depuis maintenant deux mois, le disque à changé :

Papa, toi?

Oui. Marié, papa, ce sont désormais deux qualificatifs qui me définissent. Que les autorités se rassurent, j'ai été tout à fait volontaire, pour l'un comme pour l'autre.

Ce qui m'a étonné en revanche, ce sont les réactions de certaines personnes. Bien sûr je ne parle pas de mon entourage immédiat. Ces personnes me connaissent bien et ne sont pas étonnées des chemins que j'emprunte. Je parle des autres, ces gens qui, par le passé, furent plus ou moins proche de vous et qui, de part ce fait, se figurent qu'ils vous connaissent. Qu'ils vous connaissent bien même, ou au moins suffisement pour savoir juger si, oui ou non, vous êtiez bon(ne) à marier.

Bébé chat

Depuis maintenant 7 semaines, je suis passé du statut de geek à celui de papa-geek. C'est une évolution importante dans la vie de celles et ceux qui choississent de devenir parents, et comme toute étape, elle amène son lot de questions existancielles.

Une question que nous nous sommes posée, en tant que futurs parents, était de savoir si, oui ou non, nous allions publier les photos et les exploits du petiot sur les réseaux sociaux.

Fort heureusement, nous étions, sa maman et moi, du même avis : il n'en est pas question.

Aujourd'hui, nous avons décidés de lancer une communauté Slack pour l'ASBL 6x7. Si vous ne le savez pas encore, Slack est un outil de communication collaboratif qui a le vent en poupe.

Le problème, c'est bien évidemment de gérer les invitations. En effet, par défaut, Slack ne permet qu'aux administrateurs du compte d'inviter d'autres membres. Hors, nous souhaitions que les membres potentiels se manifestent d'eux même pour faciliter le processus.

Bien sûr, nous aurions pu mettre en place un Google Form relié à une adresse e-mail, mais le processus n'en aurait pas été plus automatisé.

En farfouillant sur GitHub, je suis tombé sur Slackin, qui permet de gérer ça de manière automatique, et qui offre même un petit badge à afficher sur n'importe quelle page web :

Slackin

NodeJS

Slackin est un module NodeJS, nous devons donc commencer par le faire tourner sur la machine qui hébergera le service :

Terminal
1
2
3
4
5
6
7
8
$ cd /tmp/
$ wget node-v4.1.2.tar.gz
$ wget https://nodejs.org/dist/v4.1.2/node-v4.1.2.tar.gz
$ tar -zxvf node-v4.1.2.tar.gz
$ cd node-v4.1.2
$ ./configure
$ make
$ sudo make install

Passons à l'installation de npm et du package slackin :

Quand on parle de Ruby on Rails, RubyGems n'est jamais très loin. RubyGems, c'est le service d'hébergement des Gems, l'écosystème des bibliothèques (librairies) inhérantes à Ruby.

A ce jour, RubyGems héberge plus de 6000 Gems et totalise plus de 6 milliards de téléchargements. Ce n'est pas étonnant, mais ça n'en est pas moins impressionnant.

Anatomie d'un Gemfile

Le fichier Gemfile, c'est un peu la liste de courses de votre application. Vous pouvez y préciser l'ensemble des librairies requises pour faire tourner votre app.

Ce fichier doit obligatoirement être installé à la racine de votre projet. Vous pouvez le constater dans l'arborescence ci-dessous, tirée d'un projet Rails tout neuf.

La gestion des permalinks sous Octopress ne permet, par défaut, pas beaucoup de fantaisie. Elle sera généralement structurée d'une des manières suivantes :

  • /:categories/:title
  • /:year/:month/:day/:title/
  • /:title

Certains cas de figures ne sont pas gérés par défaut. Par exemple, je me suis retrouvé confronté à la situation suivante :

Pour un blog donné, nous avons trois “types” de posts : des articles concernant l'entreprise, des articles concernant le produits, et des vidéos. Chaque article, peu importe son type, peut appartenir à une ou plusieurs catégories.

Pour ce cas précis, je voulais un shéma d'URL reprenant le type d'article, suivit du titre de l'article. Le type d'un article étant défini par son layout, on pourrait penser à une structure de permalink du type :layout/:title. Malheureusement, cette solution ne fonctionne pas par défaut sous Octopress.

On pourrait également proposer comme solution de préciser, dans les entêtes de chaque article, la valeur permalink propre à chaque article :

Mon article
1
2
3
4
5
6
7
8
---
layout: videos
title: "Ma vidéo"
date: 2015-10-07 09:20:08 +0200
share: true
published: true
permalink: videos/ma-video
---

Cette solution n'est pas efficace pour deux raisons :

  • Nous avons déjà plusieurs dizaines d'articles existants,
  • C'est une étape supplémentaire à chaque création d'article pour la personne en charge du blog

La solution : utiliser les hooks

Heureusement, nous avons une solution disponible out of the box : la libraire Octopress::Hook