Optimiser les performances de MySQL

Les bases de données SQL et plus particulièrement MySQL restent une des pierres angulaires de l’immense majorité des sites internet. MySQL fonctionne très bien out of the box, cependant, dès que la base se trouve assez sollicitée, on s’aperçoit que les réglages par défaut méritent une petite optimisation. Jetons un œil à tout ça !

(suite…)

Compresser les images dans le navigateur

Uploader une image de profil, vous avez sûrement déjà vécu cette situation. Cette petite image qui ne fera au mieux que 250px * 250px. Mettez vous dans la peau de mamie du cantal, est-ce que vous croyez qu’elle va redimensionner sa petite image avant upload ? Redimensio-quoi ? Ok, notre bon utilisateur qui balance une image de 8000px * 6000px va devoir patienter un bon moment le temps d’envoyer tout ça avant que, enfin, le serveur optimise cette dernière.

Mais pourquoi ne pas faire tout ça directement dans le navigateur ?! On y gagne en tous points. L’utilisateur ne perd pas son temps à uploader xMb pour rien, vous économisez de la puissance serveur, vous ne frustrez pas celui qui sait (mais qui a la flemme d’ouvrir son Photoshop), et puis vous œuvrez pour la planète ! 5 bonnes raisons de faire ça dans le browser. On y va ?

(suite…)

Installer, configurer et sécuriser le serveur ssh

Par définition, un serveur est accédé de manière distante. C’est à dire qu’on doit pouvoir l’administrer sans être physiquement devant. Alors qu’il soit dans un datacenter à l’autre bout du globe ou dans le grenier de la maison, SSH nous permettra de gérer tout ça depuis notre ordinateur de bureau (ou laptop). Si vous louez votre serveur chez un hébergeur, vous l’avez sans doute-reçu avec ssh pré-installé. Cependant, si vous bidouillez au fond de votre garage, il va falloir l’installer vous-même, et qui plus est, il n’est pas inintéressant de peaufiner la config de SSH pour vos propres besoins !

(suite…)

Apache2 : récupérer les IP derrière un reverse proxy

Par défaut, lorsqu’Apache se trouve derrière un reverse proxy, l’adresse source telle qu’il la voit est celle du reverse. Donc 127.0.0.1 ou ::1 si le reverse est en local. Si votre applicatif a besoin de récupérer les ip, c’est l’adresse qu’il verra (exemple $_SERVER['REMOTE_ADDR'] en php… Pas très pratique donc.

Il existe bien entendu des headers spécifiques que les reverses ajoutent (ou peuvent ajouter) pour indiquer l’ip source de la requête. Il faut cependant indiquer à Apache2 de le prendre en compte. Voyons comment faire cela.

(suite…)

10 fonctions secrètes de Google

Hello à tous ! Puisque nous sommes samedi 1er avril, je vais écrire un article un peu plus détente. Laissez-moi donc vous présenter une petite sélection des easter eggs de Google qui fonctionnent toujours.

(suite…)

Créer une USB bootable depuis un Mac

Petit article rapide aujourd’hui afin d’expliquer la démarche pour obtenir une USB bootable depuis un ISO Linux (ou autre) sur Mac. En effet, le logiciel UNetbootin échoue à créer un USB qui boot correctement avec un environnement UEFI. Dernièrement, lorsque j’ai tenté une réinstallation sur un de mes PC portables, j’ai eu droit à un joli message Operating System Not Found. Le Mac est déjà équipé de tout ce qu’il faut pour faire cette opération en ligne de commande. Ne tardons pas plus et allons-y !

(suite…)

Chiffrement de répertoire sous Linux

Dans l’ère post-Snowden, le chiffrement est devenu une question d’hygiène. Contrairement au chiffrement des communications pendant leur transport, les données sont encore souvent stockées en clair sur nos machines et serveurs.

Sur Linux, il existe plusieurs méthodes de chiffrement : chiffrement du disque entier avec LUKS ou encore de répertoire. Une particularité cependant, l’usage doit être compatible avec les serveurs, donc possibilité de rentrer le mot de passe à distance et de conserver le dossier lisible après que l’utilisateur se soit déconnecté.

(suite…)

Utilisation des pseudo-classes CSS :valid et :invalid

Le HTML5 a permis d’assortir ses formulaires de contraintes. Elles permettent de valider le contenu directement en HTML, sans avoir forcement recourt au JavaScript. C’est supporté par la majorité des navigateurs depuis un bon moment.

Dans le même temps, deux nouvelles pseudo-classes CSS ont fait leur apparition. Elles offrent la possibilité d’appliquer des styles en fonction de la validation (ou non validation) du champ de formulaire. Voyons comment tout cela fonctionne !

(suite…)

Javascript asynchrone, les Promises à la rescousse

Tout est dans le titre. L’ES6 a apporté beaucoup de nouveautés, entre hype et réelle utilité, beaucoup d’encre a coulée. Les Promises ont été à l’honneur car elles sont un ajout notable au langage et pemettraient, apparemment, de nous affranchir du callback hell. Voyons dans cet article comment les utiliser pour une meilleure gestion du flux.

(suite…)

Les commandes essentielles pour dompter Exim4

Exim4 est un MTA léger et couramment utilisé sur les serveurs ; c’est d’ailleurs le MTA par défaut sous Debian. Sa configuration est assez aisée, mais au delà de la configuration en elle-même, il peut s’avérer salvateur de connaître les principales commandes permettant de diagnostiquer d’éventuels problèmes et d’administrer le serveur. Voyons tout cela.

(suite…)