Utiliser DNS pour faire une recherche Wikipedia

Découverte du jour originale et intéressante. Mon titre parait loufoque à première vue mais il est possible de faire une recherche sur Wikipedia en ligne de commande via DNS. Plutot cocasse non?

Ceci est un vieux projet de David Leadbeater, celui-ci a mise en place un petit serveur DNS qui retourne le résultat d’une recherche Wikipedia dans un enregistrement de type TXT. A noter que vu la limitation d’UDP on n’obtient qu’un résumé de l’article, mais c’est bien sympatique il faut avouer.

La syntaxe est la suivante en utilisant dig :

Avec host c’est la même chose :

On peut mettre cela dans un petit script (que je nomme cwiki) pour faire plus joli :

On interroge :

Résultat :

Mes plugins Sublime Text

Petite mise-à-jour de la liste des plugins pour Sublime Text 3 que j’utilise.

  • Sublime Package Control
    C’est le tout premier à installer, la gestionnaire de paquets de Will Bond, une mine de bons trucs.
  • Soda Theme
    Il ne s’agit pas à proprement parler d’un plugin mais d’un thème. J’utilise Soda dark. Une fois installé, il suffit d’ajouter "theme": "Soda Dark.sublime-theme" dans ses préférences utilisateur. Bien que des changements seront visibles de suite, il faut redémarrer ST pour que tous les éléments soient à jour.
Soda dark Theme
  • TrailingSpaces
    Egalement disponible depuis Package Control, TrailingSpaces permet de visualiser et de supprimer les caractères espaces inutiles. Ce n’est pas grand chose, mais j’aime bien travailler le plus propre possible, donc ça me plait bien. A noter que ST propose par défaut de faire ce travail à l’enregistrement du fichier, mais il n’y a aucune visualisation au préalable et pas la possibilité de le faire durant l’édition du fichier.
Sublime TrailingSpaces
  • SublimeLinter
    Il s’agit d’un vérificateur de syntaxe en temps réel. A noter qu’il faut ensuite installer le ou les plugins de langage, par exemple pour PHP : SublimeLinter-php
SublimeLinter
  • SyncedSideBar
    Celui-là j’en rêvais depuis des années! Découverte du jour d’ailleurs qui m’a fait vouloir mettre à jour cette liste. Ce que je désirais depuis un long moment c’était de ne pas devoir re-déplier les répertoires dans la barre latérale à chaque réouverture de ST (chaque jour donc) pour retrouver l’emplacement des fichiers actuellement ouverts dans l’arborescence. J’avais d’ailleurs trouvé étrange que cette simple fonction n’existait pas par défaut dans le logiciel. SyncedSideBar fait cela, mais en beaucoup mieux car il suit l’emplacement du fichier courant dans l’arborescence de la colonne de gauche, donc plus besoin de scroller pour chercher où se situent les fichiers ouverts.
  • Sublime Alignment
    Comme son nom l’indique, ce plugin permet d’aligner joliment des morceaux de code. On sélectionne les lignes voulues, ctrl+alt+a et le tour et joué.
Sublime Alignment

N’hésitez pas à parler de ce que vous utilisez dans les commentaires.

Convertir les espaces en tabulations

Je suis un utilisateur plutôt content de Sublime Text, pour son extrême légèreté, sa rapidité et ses fonctions inédites (qui le sont de moins en moins, mais il reste un précurseur) et des petits choses bien sympathiques que l’on découvre avec le temps. C’est de l’une de ces petites choses que je vais parler aujourd’hui : la conversion des espaces en tabulations, ou l’inverse, qui se fait en un clic.

Dans le monde du développement il y a deux maisons, la maison des Stark et celle des Lannister, euh peut-être pas.. plus sérieusement, il y a ceux qui indentent avec des espaces et les autres avec des tabulations. Ce billet n’est pas là pour ouvrir le débat, il y a des tas d’articles pro-tabs ou d’autres qui prônent les espaces sur le web, au final c’est une préférence utilisateur, mais n’hésitez pas à faire part de votre préférence dans les commentaires ;>

En général pour un projet on développe à sa façon, en équipe on s’impose un choix, mais il arrivent – souvent – que l’on reprenne du vieux code ou celui de quelqu’un d’autre ou alors on ouvre un fichier qui avait été édité avec un autre IDE qui gérait plus ou moins bien la chose. Il arrive donc – souvent – de devoir convertir des espaces en tabulations (ou inversement). Et bien Sublime Text permet de le faire très simplement, tout ceci depuis le menu View > Indentation.

Indentation avec des espaces

Fichier CSS indenté avec des espaces (au nombre de 4 caractères pour une indentation)
2_convert

Conversion vers des tabulations
3_tabs

Le fichier utilise maintenant des tabulations (toujours de 4 caractères)

Je suis un adepte de la tabulation et cette fonction m’a bien aidé pour faire un peu de ménage dans mes projets.

Choisir le nombre de caractères pour une indentation

Le choix du nombre de caractères pour une indentation se fait en cliquant sur sa valeur en bas à droite (Tab Size: 4 dans notre exemple)

Mettre en place les quotas avec Dovecot

Dovecot

Rapide procédure pour mettre en place des règles de quota de notre serveur IMAP. Pour rappel, ce qui suit fait référence à un serveur de messagerie basé sur Postfix et Dovecot. Voir ce billet – et ceux qui suivent – pour connaitre la base : Serveur de messagerie simple avec Postfix et Dovecot.
Le présent tutoriel est testé sur une Fedora 20 avec Dovecot 2.2.12

Continue reading

Laravel : ignorer une règle de validation unique lors d’un update

Un petit point de base manquant dans les règles de validation d’un formulaire du framework Laravel est le cas où on veut ignorer un champ unique lors d’une mise-à-jour. Je m’explique. Prenons le début d’une classe modèle de gestion d’utilisateurs avec les règles de validation dans un attribut statique comme suit :

On voit que l’email doit être unique, pas de problème lors de l’ajout, mais lorsque l’on met à jour un utilisateur, cette règle nous bloque, car l’email doit être unique. Il existe un moyen d’ignorer un certain ID en l’ajoutant à la fin, comme ceci 'required|email|unique:users,email,10', mais il est difficile d’ajouter cet ID dynamiquement dans le modèle sans ajouter du bruit à notre code. Une solution consiste à laisser le modèle en l’état, mais de hacker cet élément du tableau de règle depuis la méthode d’update du controlleur :

Il semble un peu bizarre que ce mécanisme ne soit pas pris en compte par défaut dans Laravel, en espèrant qu’il le soit dans une prochaine version.