David Bowie meurt à 69 ans photo 1

David Bowie meurt à 69 ans

David Bowie, artiste caméléon légendaire et musicien de génie né en 1947, vient de nous quitter le 10 janvier 2016 à New York à 69 ans, emporté par un cancer du foie.

Le music-hall, le folk hippie, le glam-rock, la soul, le funk, la pop, les musiques électroniques, le jazz… auront été quelques-uns des genres qu’il avait abordés, leur donnant à chaque fois une couleur, une personnalité.

Au cours des années, il endossera aussi le costume de personnages, des doubles possibles. Le jeune homme tranquille de ses débuts, dandy et élégant, jouera sur le travestissement dans la fin des années 1960.

Son personnage le plus célèbre pour le grand public, Ziggy Stardust, sera comme un avatar de la star du rock avec paillettes, dans l’ascension vers la gloire et la chute.

Il apparaîtra le visage orné d’un éclair coloré pour Aladdin Sane ; figurera une sorte de pirate annonciateur du punk lorsqu’il se transformera en Halloween Jack.

Voici Space Oddity avec Mick Ronson :

Et Starman avec les Spiders from Mars:

Il sera ensuite le Thin White Duke, probablement le plus proche de ce qu’il vit alors, vers la fin des années 1970, miné par une consommation importante de cocaïne ; avant de se grimer en Pierrot lunaire, au début des années 1980 ou d’apparaître dans plusieurs films.

David Bowie aura été l’un des artistes les plus influents des années 1970, touchant à tout. Il avait même perçu tout le potentiel ce qu’allait devenir Internet tel que nous le connaissons aujourd’hui et ce, bien avant tout le monde. En 1998, il avait lancé BowieNet, un service d’accès à internet par modem avec des fonctions de réseau social. Bowie était un précurseur et un visionnaire.

Helen Green a créé un GIF animé retraçant tous les looks cultes Davie Bowie de 1964 à 2014. Cela va de la coupe mullet au patch de pirate, des faux grains de beauté aux permanentes:

So long starman, may you rest in peace. Thanks for the music and powerful poetic imagery, we miss you sorely.

Apache : résoudre l'erreur

Apache : résoudre l’erreur “421 Misdirected Request”

Après la mise à jour d’Apache et HTTP/2, il est apparu un nouveau type d’erreur : l’erreur 421 Misdirected Request.

Erreur 421 : erreur de configuration mod_ssl entre Virtual Hosts

Ce type d’erreur arrive lorsque:

  1. HTTP/2 est activé,
  2. les paramètres SSL de plusieurs Virtual Hosts diffèrent du serveur responsable du handshake SSL/TLS.

En analysant le changelog d’Apache 2.4.18, je me suis rendu compte que si les paramètres SSL et notamment la liste des ciphers utilisables ne sont pas équivalentes entre les différents Virtual Hosts, alors l’erreur 421 est déclenchée.

Solution : harmoniser la configuration mod_ssl

La solution est donc toute simple, il suffit de comparer la configuration mod_ssl des Virtual Hosts et l’harmoniser de manière à lisser les différences. Je vous recommande un outil comme Meld pour comparer les différences entre vos fichiers.

Meld est disponible dans les dépôts de base, vous pouvez l’installer sur votre machine de dév avec un simple:

apt-get install meldCode language: JavaScript (javascript)

Le domain sharding ou servir les ressources statiques sur un sous-domaine

Sur le site, cela est dû à la mise en place du domain sharding que j’avais mis en place il y a quelques années pour charger plusieurs fichiers ressources en parallèle et accélérer les temps de chargement.

HTTP/2 promet beaucoup de choses et apparemment le domain sharding serait maintenant devenu inutile. J’attends un peu de voir comment vont évoluer les choses avant de changer toute ma configuration et éditer tous mes liens.

Luther saison 4 photo

Luther saison 4

Voici le grand retour de Luther après plus de deux ans d’absence.

Nous retrouvons Luther en congé de la police, faisant profil bas dans un cottage délabré. Une visite de ses collègues, DCI Theo Bloom et DS Emma Lane, lui apporte une information choquante qui l’attire de nouveau à Londres dans une nouvelle quête de vérité.

Au même moment, un tueur en série cannibal frappe la ville, dévorant des morceaux de corps partout où il passe.

En suivant la piste d’indices menant d’une scène de crime à l’autre, DSU Martin Schenk et son équipe doivent travailler sur la logique tordue qui relie chaque victime.

Mais cet ingénieux meurtrier met en difficulté les membres de l’équipe de Schenk et joue avec eux avec toujours un coup d’avance.

Luther fait un retour triomphant, déterminé à capturer le tueur avant qu’un autre corps mutilé ne rejoigne la liste des victimes.

Mais Luther est toujours obsédé par les fantômes de son passé et il lui faudra toutes les fibres de son être pour garder sa raison.

Lire la suite

Changement de design : SkyMinds 2016 photo 1

Changement de design : SkyMinds 2016

Ce week-end, pour fêter la nouvelle année et les 17 ans du site (et oui, déjà !), je me suis amusé à changer radicalement le thème graphique du site.

Nouvelle année, nouveau thème

Cela fait des années que je n’ai pas changé de thème : apparemment, mon thème précédent remonte à 2010, soit 6 ans. A l’échelle d’Internet, cela remonte quasiment à la préhistoire !

Il aura bien évolué : de XHTML transitional à strict, puis HTML5. D’abord basique puis responsive, avec microdata… on peut dire que je l’ai bien usé, sous toutes les coutures mais que j’ai envie maintenant de quelque chose d’autre.

La charte graphique convenait à une certaine époque mais il faut savoir faire table rase et se remettre en question pour essayer des choses différentes.

A titre de comparaison, voici à quoi ressemblait le site le 1er janvier au petit matin:

Changement de design : SkyMinds 2016 photo

et voici maintenant le nouveau thème, sobrement intitulé “SkyMinds 2016” :

Changement de design : SkyMinds 2016 photo 1

Les nouveautés

Pas mal de nouveautés sont apparues. Tout d’abord, le site est désormais entièrement responsive, ce qui n’était pas tout à fait le cas avant. J’avais – bonant malant – utilisé des responsive queries mais on ne peut pas dire que l’affichage était optimal sur toutes les tailles d’écran. Là, c’est bien mieux géré.

Ensuite, le thème utilise beaucoup moins d’images que le précédent : adieu l’image de fond pour le header, le dégradé en PNG de 1600 pixels de hauteur et les dégradés CSS pour les colonnes de contenus et le footer.

Je n’ai gardé que le logo, le reste n’est composé que de couleurs unies. Mine de rien, cela influe énormément sur le rendu des pages.

En ce qui concerne la CSS, je n’ai gardé que quelques styles que j’affectionne mais le principal a changé.

Ce changement graphique est pour moi l’occasion de donner un petit coup de peinture et surtout de faire le ménage dans ma feuille de style et les fichiers du thème de WordPress.

J’ai également désactivé certains plugins comme le plugin qui créait un menu responsive – maintenant géré nativement par le thème, ainsi que d’autres qui s’ajoutaient à la feuille de style principale.

Le rendu est donc plus moderne et devrait se charger plus rapidement, faisant appel à moins de ressources.

What’s next?

Pour l’instant, ce nouveau thème est clair et me convient plutôt bien. J’y apporte quelques petites touches çà et là afin d’harmoniser le tout mais je trouve que le résultat n’est pas trop mal.

Et vous, vos impressions?

Bash : personnaliser les couleurs de l'invite de commande (prompt) du terminal photo

Bash : personnaliser les couleurs de l’invite de commande (prompt) du terminal

Bash : réparer les tables MySQL en cas de crash photo

Lorsque l’on jongle avec différents serveurs et plusieurs fenêtres de terminal, il n’est pas toujours évident d’identifier immédiatement sur quelle machine on se trouve.

Pour remédier à ce problème, je vous propose de changer les couleurs de l’invite de commande (prompt) de votre terminal sous linux.

Editer le fichier .bashrc

Nous allons éditer le fichier .bashrc, qui permet d’éditer les préférences utilisateurs pour tout ce qui concerne bash:

nano .bashrcCode language: CSS (css)

Ajout de styles

Et voici quelques styles sympas à ajouter pour tuner votre prompt.

Style Lemon Lime

Ajoutez ceci à votre fichier .bashrc:

export PS1="\[$(tput bold)\]\[$(tput setaf 6)\]\t \[$(tput setaf 2)\][\[$(tput setaf 3)\]\u\[$(tput setaf 1)\]@\[$(tput setaf 3)\]\H \[$(tput setaf 6)\]\w\[$(tput setaf 2)\]]\[$(tput setaf 4)\]\\$ \[$(tput sgr0)\]"Code language: JavaScript (javascript)
Bash : personnaliser les couleurs de l'invite de commande (prompt) du terminal photo

C’est mon style préféré, très cocktail d’été. Voilà ce que cela donne:

Style Matrix

Vous pouvez aussi opter pour le style Matrix, tout vert:

export PS1="\[$(tput bold)\]\[$(tput setaf 2)\][\u@\h \W]\\$ \[$(tput sgr0)\]"Code language: JavaScript (javascript)

Style Rainbow

Ou encore pour un arc-en-ciel de couleurs :

export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"Code language: JavaScript (javascript)

Personnalisation du prompt

Si vous souhaitez ajoutez des composants à votre prompt, voici quelques mots-clé utiles:

  • \u le nom de session utilisateur
  • \h le nom d’hôte jusqu’au premier ‘.’
  • \H le nom d’hôte complet
  • \n saut de ligne
  • \$ affiche le signe $ pour un simple utilisateur ou # pour l’utilisateur root
  • \\ un backslash “\”

Et voilà, un peu de couleur dans notre terminal !

Pearl Jam - Indifference photo 1

Pearl Jam – Indifference (waves)

Voici Indifference par Pearl Jam:

Intro: Em - Dsus4 - D (4x)

        Em                       D       Em             D 
I will light the match this mornin', so I won't be alone
   Em                  D         Em                 D
Watch as she lies silent, for soon light will be gone
   Em                       D          Em                 D
Oh, I will stand arms outstretched, pretend I'm free to roam
   Em                D            Em          D
Oh, I will make my way, through, one more day...alone...
  G          D                    Em - Em7
    How much difference does it make
  G          D                    Em - Em7 
    How much difference does it make, yeah...
    
     Em - Dsus4 - D

   Em               D         Em           D
I will hold the candle till it burns up my arm
   Em               D         Em                  D   
Oh, I'll keep takin' punches until their will grows tired
   Em               D         Em                 D
Oh, I will stare the sun down until my eyes go blind
    Em                 D           Em                D
Hey, I won't change direction, and I won't change my mind
   G            D               Em - Em7
     How much difference does it make
   G            D               Em - Em7   
Mmm, how much difference does it make..
     how much difference...

  Em - Dsus4 - D  
 
                Em       D          Em     D
I'll swallow poison, until I grow immune
         Em          D              Em           D        
I will scream my lungs out till it fills this roomCode language: PHP (php)

Très belle chanson.

Si de Rudyard Kipling, poème.

“If” – by Rudyard Kipling

If you can keep your head when all about you
Are losing theirs and blaming it on you,
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or being lied about, don’t deal in lies,
Or being hated, don’t give way to hating,
And yet don’t look too good, nor talk too wise:

If you can dream – and not make dreams your master;
If you can think – and not make thoughts your aim;
If you can meet with Triumph and Disaster
And treat those two impostors just the same;
If you can bear to hear the truth you’ve spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build ‘em up with worn-out tools:

If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: ‘Hold on!’

If you can talk with crowds and keep your virtue,
‘ Or walk with Kings – nor lose the common touch,
if neither foes nor loving friends can hurt you,
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds’ worth of distance run,
Yours is the Earth and everything that’s in it,
And – which is more – you’ll be a Man, my son!

— Rudyard Kipling, “If”, 1895

Serveur dédié : mettre à jour Apache et configurer le mod_h2 pour HTTP/2 photo

Serveur dédié : mettre à jour Apache pour HTTP/2

C’est sur toutes les lèvres : 2015 aura vu l’arrivée de PHP7 et de la révision du protocole HTTP qui passe à la version 2, en remplacement du mod_spdy de Google.

Tout cela promet pas mal de gains de performance donc il est très tentant de le vérifier par nous-mêmes.

HTTP/2 : une évolution du protocole HTTP

Avec HTTP/1.1, la vie des développeurs n’était pas simple. L’optimisation d’un site revenait à plusieurs techniques qui tournaient toutes autour de l’idée de minimiser le nombre de requêtes HTTP vers un serveur d’origine.

Un navigateur ne peut ouvrir qu’un nombre limité de connexions TCP simultanées vers une origine et le chargement des ces ressources via chacune de ces connexions est un processus en série : la réponse de chaque ressource doit être retournée avant que la réponse de la ressource suivante ne soit envoyée. C’est ce qu’on appelle le head-of-line blocking.

HTTP/2 promet donc des gains de performance d’environ 30%, sans avoir à gérer ni minification ni concaténation dans le processus de création et déploiement des pages.

Plus besoin (normalement!) d’optimiser les connexions TCP ou les requêtes HTTP avec la création de sprites, le chargement des ressources directement dans le corps des pages, la concaténation ou la création de sous-domaines pour charger les ressources en parallèle (domain sharding) pour contourner les limitations d’HTTP 1.1.

Lire la suite

Histoire des Arts with Mister B. : Louis Aragon photo

Histoire des Arts with Mister B. : Louis Aragon

Cette planche commence à dater un peu mais je me dis que si je ne la sors pas maintenant, elle restera dans un carton pendant très longtemps, avec toutes les chances de ne jamais voir le jour.

La scène se passe lors de la journée Histoire des Arts, qui fait partie intégrante des épreuves du Brevet des Collèges.

Emma nous parle alors de Louis Aragon:

Histoire des Arts with Mister B. : Louis Aragon photo

Louis Aragon est un poète, romancier et journaliste français, né le 3 octobre 1897 à Paris et mort le 24 décembre 1982. Il est également connu pour son engagement et son soutien au Parti communiste français de 1930 à sa mort.

Avec André Breton, Paul Éluard et Philippe Soupault, il fut l’un des fers de lance du dadaïsme parisien et du surréalisme.

Lire la suite

Rammstein - Du Hast (version bossa nova) photo

Rammstein – Du Hast (version bossa nova)

Vous êtes-vous déjà demandé à quoi ressemblerait Rammstein arrangé à la mode bossa nova?

Et bien Andy Rehfeldt s’est amusé à créer tous les arrangements pour donner naissance à ce mashup totalement surréaliste:

Écrit, arrangé, joué, produit par Andy. Et en plus, cela colle parfaitement à la vidéo d’un concert live !

Fail2Ban: protéger Postfix contre les attaques AUTH DoS photo

Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO

Aujourd’hui, Jac m’envoie un message pour m’informer que sa redirection email ne fonctionne plus.

Je lance donc un terminal et vérifie les logs de Postfix, qui chargent des dizaines de lignes d’erreurs de ce type:

Dec 15 16:30:33 mail postfix/smtpd[5912]: connect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5912]: lost connection after AUTH from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5912]: disconnect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: connect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: lost connection after AUTH from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]
Dec 15 16:30:34 mail postfix/smtpd[5908]: disconnect from static-68-236-203-102.nwrk.east.verizon.net[68.236.203.102]

Comme vous pourvez le constater, ça débite et ça impacte forcément les ressources du système. Voyons donc comment nous pouvons y mettre un terme.

Fail2Ban: protéger Postfix contre les attaques AUTH DoS photo

Pré-requis : fail2ban

Nous allons utiliser fail2ban, un compagnon très utile pour surveiller les logs et analyser les comportements néfastes à l’aide d’expressions régulières.

Je vous invite à relire le guide d’installation de fail2ban.

Nouvelle définition dans fail2ban : postfix-auth

Nous ajoutons donc une nouvelle définition, [postfix-auth], dans notre fichier jail.local:

nano /etc/fail2ban/jail.local

On l’ajoute à la fin des déclarations pour les serveurs mails :

[postfix-auth]
enabled     = true
filter      = postfix.auth
action      = iptables-multiport[name=postfix, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
#           sendmail[name=Postfix, dest=you@mail.com]
logpath     = /var/log/mail.logCode language: PHP (php)

Je désactive volontairement l’envoi des notifications, ce serait un comble.

Lire la suite

Serveur dédié : réduire les connexions TIME_WAIT des sockets et optimiser TCP photo

Serveur dédié : optimiser la couche TCP

Aujourd’hui, nous allons mettre quelques petites astuces qui permettent d’optimiser un peu le temps de réaction du serveur Apache.

Nous allons commencer par réduire le nombre de connexions TIME_WAIT des sockets TCP et nous verrons ensuite comment optimiser un peu la couche TCP.

Réduire le TIME_WAIT des sockets TCP

De temps à autre, on tombe sur un serveur Apache qui possède des tonnes de connexions TIME_WAIT qui semblent errer dans les limbes. Même si ces connexions ne prennent pas autant de ressources que des connexions ESTABLISHED, il n’est pas vraiment utile de les garder aussi longtemps.

Commençons par faire un petit état des lieux de nos connexions :

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -nCode language: JavaScript (javascript)

Résultat :

      1 established)
      1 Foreign
      2 ESTABLISHED
      3 FIN_WAIT1
     20 LISTEN
    228 TIME_WAIT

Nous avons donc 228 connexions dans les limbes en TIME_WAIT, qui sont totalement inutiles. Voyons donc comment nous pouvons réduire ce nombre.

Vérifiez ces valeurs:

cat /proc/sys/net/ipv4/tcp_fin_timeout
cat /proc/sys/net/ipv4/tcp_tw_recycle
cat /proc/sys/net/ipv4/tcp_tw_reuse

Vous devriez obtenir, respectivement, les valeurs 60 pour le timeout, 0 pour le reyclage et 0 pour la réutilisation.

Nous allons modifier ces valeurs pour réduire le timeout à 30 secondes, et recycler et réutiliser nos connexions :

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuseCode language: JavaScript (javascript)

Pour que les changements soient persistants, il faut ajouter ces valeurs au fichier sysctl.conf.

Lire la suite