Supprimer récursivement tous les BOM de vos fichiers UTF-8 en un script

Travaillant sur un vieux projet PHP, j’ai été confronté à de vieux fichiers cradingues encodés en UTF-8 AVEC BOM, posant des problèmes d’affichages et de redirections.

Le BOM, si vous ne savez pas ce que c’est, c’est un caractère se situant généralement en début de fichier servant à déterminer en quel type d’UTF est encodé un fichier (UTF-8, 16, 32, autres ?). Ce marqueur n’étant pas nécessaire en UTF-8, il nous pose plus de problèmes qu’autre chose et l’on a pour habitude de l’omettre.

Après quelques recherches, je suis tombé sur des bouts de scripts sur le forum d’Ubuntu, mais ils modifient tous les fichiers présents. J’ai des fichiers encodés en latin9 parmi ceux à corriger, mon but n’est pas de les changer :-/

Du coup, je me suis créé un script bash qui cherche et corrige seulement les fichiers présentant cette particularité, le voici :

#!/bin/bash
FROM=UTF-8
TO=UTF-8
ICONV="iconv -f $FROM -t $TO"
BASEDIR=${1:-.}

# Convert
grep -rl $'xEFxBBxBF' "$BASEDIR" | while read fn;
do
    $ICONV "$fn" > "$fn".bak
    awk '{if(NR==1)sub(/^xefxbbxbf/,"");print}' "$fn".bak > "$fn"
    rm "$fn".bak
    echo "$fn"
done

Un petit chmod +x sur ce script, vous l’exécutez en passant en paramètre le dossier contenant les fichiers à fixer et c’est fini 😀

Continuer la lecture

Faire cohabiter Apache et OpenVPN sur le 443

Hier, je me suis expérimenté à installer OpenVPN sur un serveur tout neuf … Ou plus ou moins une récup d’un vieux PC de @Codeur_Fou x)

Et je dois dire que c’était plutôt simple quand on a un bon tuto. Et c’est là que je vous renvoie à l’excellent billet de Nico Largo sur le sujet.

Il y a juste une toute petite chose qui manque sur son tutoriel. Il utilise le port 443, port qui je le rappel est utilisé communément par le HTTPS.

Comment donc faire cohabiter Apache et OpenVPN pour qu’ils délivrent les pages demandés en HTTPS et le VPN tranquilou ni vu ni connu j’t’embrouille wesh ?

EDIT : Comme me l’a signalé Kahas, je me base sur Debian, mais les modifications sont tout à fait applicables sur d’autres systèmes Linux, il vous suffira d’adapter les commandes. De plus, je modifie Apache, mais la configuration d’Nginx et autres serveurs web sera sensiblement la même.

Continuer la lecture

Utiliser le clavier Mac sur un Windows

Ami utilisateurs de Mac, vous adorez peut-être Mac pour son clavier un peu spécial. Les touches ne sont pas au même endroits et pourtant, beaucoup estime que ces changements sont plus logiques et plus pratiques que les emplacements communément acquis.

Et que cela est rageant voir perturbant quand vous installez Windob Windows via Bootcamp ou une machine virtuelle Windob Windows et que vous ne retrouvez pas votre clavier habituel !

Continuer la lecture

Utiliser socket.io (et les websockets) avec Apache

Je vois déjà certains venir et dire qu’Apache pas fait pour ça, que son rôle est d’afficher des pages statiques ou PHP brute et que tout le reste devrait être laissé à un vrai serveur proxy ou à un serveur web plus récent comme Nginx. Alors oui … Mais quand on n’a pas envie de s’embêter à mettre en place un système compliqué et juste monter un node à l’arrache pour faire une tâche précise, Apache est largement suffisant.

Malheureusement, le support du websocket dans le mod_proxy d’Apache n’est assuré qu’à partir de la version 2.4. Or, la version proposée actuellement dans les dépôts Debian (ou autre Linux stable) est généralement la 2.2. Faut t-il pour autant basculer sur une branche de mise à jour instable ?

Je vous propose aujourd’hui de compiler vous-même l’extension mod_proxy_wstunnel qui permettra de vous servir de websocket sans trop de problèmes.

Continuer la lecture

Installer Windows sur un vieux Macbook sans clé USB et sans DVD

Ce samedi a été une après midi bidouille.

Mon frère s’est commandé un Optibay, un étui en métal permettant d’y loger un second disque dur à mettre à la place du lecteur optique (lecteur DVD si vous préférez).

L’installation du matos s’est passé sans soucis, le MacBook Pro milieu 2009 retrouve une seconde jeunesse avec un SSD en disque principal (le disque dur de base du Mac se retrouvant en second pour stocker tout pleins de choses, notamment une partition dédié à Windows).

Sauf que arrivé à l’installation du dit Windows … Je me suis rendu compte que j’avais complètement oublié que le support de Bootcamp sur un Macbook relativement ancien ne pouvais se faire qu’en présence d’une galette officielle de Windows dans le mangeur de disque … Pas cool :'(

Et histoire d’enfoncer encore le clou un peu plus … Impossible de booter par clé USB comme vous le feriez sur un Macbook récent (vous verrez plus loin dans l’article), bref la misère :/

Quoi qu’il en soit, l’esprit du système D m’emplis et tel un Mac Gyver des temps moderne, je me suis mis au défi d’installer Windows 7 avec seulement un ISO (légal / non modifié) et sans utiliser de périphériques externes. C’est parti !

Continuer la lecture