Filter rails routes easily with FZF

In my last two jobs, I've been working on pretty big Ruby on Rails applications. Over time and despite our best efforts, interacting with the application through the built-in commands becomes slower. This is especially sensible for commands such as rails routes that I use frequently. But searching...

Show background jobs number in your ZSH prompt

My daily workflow is based around vim (neovim, actually) in an iTerm 2 terminal. As a consequence, I spend most my day navigating iTerm 2 tabs and switching between editing/viewing code in vim and doing stuff in my terminal: running tests, interacting with my file system or with git for instance....

Neovim modern features: treesitter and LSP

Since its 0.5 release, Neovim received huge updates allowing advanced features that we usually find in full-fledged IDEs. The main ones are treesitter, which gives Neovim more precise language parsing and syntax highlighting, and native LSP, allowing Neovim to benefit from autocompletion, go-to-definition...

My 8 favorite color schemes for modern vim

I've been a vim user for a long time now, and a color schemes nerd for quite a while as well. The color scheme landscape has changed a lot lately. Since the introduction of true colors terminals, you're not limited to a 256 colors palette anymore and therefore, lots of new fancy color schemes appeared...

À la découverte de Sinatra #3 - Utiliser SASS/SCSS dans un projet Sinatra

Comme nous l'avons évoqué dans un article précédent (voir par ailleurs : 3 raisons d'aimer SCSS), SASS/SCSS est un pré-processeur de CSS qui apporte à vos feuilles de style un lot de fonctionnalités qui vont vous faciliter la vie et alléger votre code. Il devient très vite impossible de s'en passer...

Sinatra : authentification avec Warden

Récemment, pour plusieurs sites et prototypes développés avec Sinatra, j'ai eu à me poser la question de comment faire un système d'authentification digne de ce nom. En Rails, la solution de-facto s'appelle Devise, mais étant très rails-centric, cette solution est compliquée à utiliser dans un projet...

Grape : custom validator conditionnel

Depuis le début de l'année, j'ai passé une partie importante de mon temps à travailler sur la conception et le développement d'une API publique. C'est un vaste chantier, et, une fois passé le temps de la recherche, de la structuration et de la définition des grandes lignes, il était temps de passer...

Recherchez dans votre code avec Ack

Si comme moi vous passez la majeure partie de votre temps à éditer du texte ou des documents, vous générez beaucoup de contenu, et vous avez régulièrement besoin de rechercher dans ce contenu. Et il s'avère que rechercher dans un projet de développement présente des spécificités pour lesquelles des...

Firefox : filtrer les résultats de la barre d'adresse

Voilà déjà un moment que je voulais vous présenter cette astuce de Firefox qui, à mon avis, n'est pas très connue mais très pratique. Pourquoi maintenant ? Parce que cette astuce est en lien avec la barre d'adresse de Firefox (la bien-nommée “Awesome Bar”) qui a récemment une refonte importante de...

Javascript : un debug plus facile avec le blackboxing

Comme beaucoup de développeurs web avant le boom des frameworks front-end, mon utilisation de Javascript se limitait à envoyer des requêtes en Ajax et injecter leur résultat dynamiquement dans des pages, à modifier le DOM et à utiliser quelques plugins ou librairies. Même si j'avais entendu parler...

Déployer Middleman avec Mina

Si vous êtes des lecteurs réguliers de ce blog, vous savez probablement qu'il est propulsé par le générateur de sites statiques Middleman : j'ai déja rédigé différents articles sur ce sujet), n'hésitez pas à aller les parcourir. Néanmoins, je n'ai encore jamais évoqué un autre outil que j'utilise...

Une API JSON avec Sinatra

Vous avez pu le constater en parcourant ce blog, Sinatra est l'un de mes frameworks Ruby préférés, à la fois simple d'approche mais malgré tout puissant et adaptable à de nombreux cas d'utilisation. Je trouve notamment que c'est un outil particulièrement adapté à la réalisation d'une API JSON qui...

Rechercher des Gems ruby avec DuckDuckGo

Il y a quelques mois de cela, j'avais écrit un article pour vous présenter DuckDuckGo, un moteur de recherche que j'utilisais depuis déjà un moment, et qui venait à l'époque de connaître une importante mise à jour. Ce moteur a continué d'évoluer depuis, je continue à l'utiliser au quotidien et à d...

Vim et git commit: positionner le curseur sur la 1ère ligne

Si vous utilisez Vim et git, vous avez peut-être déjà rencontré ce problème. Selon la configuration de votre éditeur, il est possible que celui-ci sauvegarde le dernier emplacement du curseur lorsque vous quittez un fichier. Or, lorsque vous éditez un message de commit, c'est toujours le même fichier...

Gérer les plugins Vim avec Vundle

Comme c'est aujourd'hui la norme pour les IDE et éditeurs de texte avancés, Vim supporte l'ajout de fonctionnalités complémentaires via un système de plugins (ou "scripts" dans le monde Vim). Ces plugins sont constitués d'un ou plusieurs fichiers qui doivent être dispatchés dans les sous-répertoires...

À la découverte de Sinatra #2 : routes et templates

Deuxième article de ma série "à la découverte de Sinatra". Dans le premier article, À la découverte de Sinatra #1, nous avons vu que Sinatra était un framework Ruby simple, léger et avec une communauté conséquente, destiné à faciliter la création d'applications web de taille modeste. Puis nous avons...

DuckDuckGo, le moteur de recherche qui ne vous espionne pas

DuckDuckGo Dax the duck

Voilà environ un an que j'utilise quotidiennement le moteur de recherche DuckDuckGo, en parallèle de l'inévitable Google. Jusque-là, ce moteur de recherche qui met en avant son respect de la vie privée était resté plutôt confidentiel : l'affaire Snowden et le lifting qu'il vient de recevoir

Automatisez votre workflow avec gulp.js

Depuis que j'ai découvert SASS/SCSS en 2011, je l'utilise dans tous mes projets. Y compris sur d'anciens projets en PHP “maison” (pas de framework) que je maintiens encore activement. Pour ces projets, je me servais jusque-là de l'outil en ligne de commande pour la compilation : au début d'une session...

À la découverte de Sinatra #1 - Hello World

Je l'ai déjà évoqué dans un précédent article : je suis un grand fan de Sinatra. Non, pas le chanteur (encore que !), mais plutôt la gem Ruby. En règle générale, j'aime utiliser des outils simples qui font bien ce qu'on leur demande, et je trouve que Sinatra correspond tout à fait à cette description...

Afficher la branche git courante dans le prompt

Pour tous mes projets, j'utilise le gestionnaire de sources Git, que ce soit simplement en local ou couplé avec un dépôt distant. Je l'utilise principalement dans le terminal et, je dois bien l'avouer, il m'arrive de temps en temps de faire des modifications sur la mauvaise branche, ce qui est particuli...

3 raisons d'aimer SCSS

SASS/SCSS est un pré-processeur de CSS qui apporte à vos feuilles de style un lot de fonctionnalités destinées à vous faciliter la vie et à alléger votre code. Le slogan de SASS, "CSS with superpowers", n'est pas usurpé : depuis que j'ai découvert cet outil il y a 3 ans avec mes premiers tests de...

Une sitemap pour MiddleMan avec Builder

Le protocole sitemap est un protocole initialement défini par Google en 2005, et adopté depuis par les autres grands moteurs de recherche comme Bing (et donc Yahoo!), Baidu ou Yandex. Comme vous le savez, ces moteurs de recherche utilisent des crawlers pour parcourir, analyser et référencer les pages...

MiddleMan : design avec Slim et SCSS

Dans l'article précédent, "Créer un blog statique avec MiddleMan", nous avons vu comment mettre en place les bases d'un blog statique avec MiddleMan. Aujourd'hui, nous allons voir comment adapter ce MiddleMan à nos besoins, avec l'utilisation de votre langage de template préféré et SASS/SCSS.


Créer un blog statique avec MiddleMan

MiddleMan logo

Les générateurs de sites statiques ont le vent en poupe ces derniers mois. Ils permettent de générer localement un site HTML en vous appuyant sur la puissance d'un langage comme Ruby ou Python, et approchent les fonctionnalités d'une plateforme comme Wordpress, avec plus de légèreté. Le site...