Hello, I’m Vinch

And this is my website.

Eviter (un peu) le plagiat…

11/29/10

This post is more than 6 years old. It might not reflect my current skills and convictions.

Il y a quelques jours, on me faisait remarquer que le site de 1MD avait été plagié une nouvelle fois. Allez donc jeter un oeil au (nouveau ?) site de Dual Design pour vous faire votre propre idée. Même si tout le monde a tendance à dire que c’est « la rançon de la gloire », j’aimerais pouvoir éviter cela à l’avenir.

Le problème avec les sites XHTML/CSS/JS, c’est que tout est facilement copiable (surtout avec des outils comme Firebug qui décortiquent le moindre petit organe de votre site Web). C’est moins facile en Flash d’ailleurs mais c’est un autre débat.

Voici l’objet d’une réflexion que j’avais eu avec Benjamin il y a plusieurs mois, après une énième copie du site http://deaxon.com (un super site). En effet, on s’était rendu compte que les plagieurs copiaient tout, sans exception, sans réfléchir.

Ajoutez simplement ceci dans votre fichier JavaScript (plus ou moins n’importe où) :

if (window.location.host != 'deaxon.com') {
    document.body.innerHTML = '';
    alert("Hep, pauv' con, c'est pas bien de copier le travail des autres !");
}

Cela va effacer tout le contenu HTML du document et insulter joyeusement votre plagieur (y a pas de raison après tout). Il faut évidemment remplacer deaxon.com par l’URL de votre site (sans http://, tapez window.location.host dans la console de Firebug si vous n’êtes pas sûr de vous).

Pour que ce soit moins facilement détectable, vous pouvez obfusquer ce bout de code en utilisant un des nombreux outils du genre (celui-ci par exemple) disponibles sur le Web.

N’hésitez pas ensuite à passer l’entièreté de votre fichier dans le packer de Dean Edwards pour rendre tout ça illisible (NB : le but premier du packer est de réduire considérablement la taille des fichiers JavaScript, afin d’améliorer les performances).

L’insulte peut être adaptée selon vos habitudes et goûts personnels.

Ce “truc” est évidemment facile à contourner pour les plus futés, mais pourrait bloquer les plus idiots, qui abandonneront vite (j’espère).

Villes de Belgique aux formats CSV, XML, JSON et SQL

03/16/10

This post is more than 7 years old. It might not reflect my current skills and convictions.

Ceci devrait intéresser les développeurs belges qui me lisent (s’il y en a encore).
J’ai souvent cherché et jamais vraiment trouvé une liste de villes et codes postaux belges dans des formats standards (ou du moins portables) comme XML et JSON.

Je comble ce vide éventuel en vous proposant ce fichier zip (131 KB) dans lequel vous trouverez une liste des villes de Belgique aux formats CSV, XML, JSON et SQL.

Enjoy!

Je ne dois pas choisir ma langue !

11/15/09

This post is more than 8 years old. It might not reflect my current skills and convictions.

Pour les non-belges qui me lisent, il faut savoir que la Belgique est un pays compliqué où on parle trois langues : le français, le néerlandais et, dans une moindre de mesure, l’allemand.

La plupart du temps, les sites belges sont donc proposés en plusieurs langues (les besoins en traductions bouffent d’ailleurs pas mal de budget ce qui donne au final un site moins bien que s’il avait été en une langue… ce qui explique sans doute pourquoi la Belgique est en retard sur le Web… mais c’est un autre débat).

Bref, même si cela reste encore une pratique courante sur le Web, s’il y a bien quelque chose que je trouve qu’on pourrait facilement éviter, c’est l’utilisation des splash pages de choix de langue !

Le débat est assez intense à ce sujet et si vous ne voyez toujours pas de quoi je veux parler, allez jeter un coup d’oeil à ces quelques exemples :

Ces pages intermédiaires de choix de langues ne sont pas conseillées d’un point de vue référencement car elles sont considérées de façon prioritaire par les moteurs de recherche ce qui est un peu du gâchis car vous ne pouvez y mettre aucun contenu (forcément, dans quelle langue mettriez vous ce contenu ?)

En plus, c’est un peu idiot de les utiliser, vu qu’on peut facilement les éviter en quelques lignes de code…

En effet, il est facile de détecter la langue du navigateur et d’orienter le visiteur vers sa langue de façon automatique et invisible.

Voilà ce que cela pourrait donner en PHP :

<?php

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

header('HTTP/1.1 301 Moved Permanently');
header('Location: /index_'.$lang.'.php');

Évidemment, si la langue détectée est l’espagnol et que notre site n’existe qu’en français et en anglais, nous avons un problème… Il faut donc établir une langue par défaut de façon arbitraire (par exemple : si les clients de votre entreprise sont majoritairement francophones, vous pouvez opter pour le français) et rediriger vers cette langue par défaut au cas où nous détecterions une langue qui n’existe pas sur le site :

<?php

$langs = array('fr','en','nl'); // the first item is the default language

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

if (!in_array($lang, $langs))
	$lang = $langs[0];

header('HTTP/1.1 301 Moved Permanently');
header('Location: /index_'.$lang.'.php');

C’est déjà mieux…

Bien sûr, il faut pouvoir offrir la possibilité au visiteur de changer de langue à tout moment sur le site et enregistrer cette valeur dans un cookie. Si le cookie est détecté, il prend le dessus par rapport à la langue du navigateur :

<?php

$langs = array('fr','en','nl'); // the first item is the default language

if (isset($_COOKIE['lang']) && in_array($_COOKIE['lang'], $langs)) {
	$lang = $_COOKIE['lang'];
}
else {
	$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

	if (!in_array($lang, $langs))
		$lang = $langs[0];
}

header('HTTP/1.1 301 Moved Permanently');
header('Location: /index_'.$lang.'.php');

Pour encore améliorer la chose, on pourrait établir que la langue par défaut est la langue la plus utilisée sur le site. Il faut pour cela pouvoir surveiller le comportement des visiteurs et faire les comptes pour déterminer la langue dominante sur le site.

A vous de jouer !