Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Une excellente thèse sur Simile Exhibit
    • Olivier Rossel | Bonjour. Malgre les annees, avez vous toujours en memoire vos usages d’Exhibit? Je serais ravi d’en discuter avec vous. Cordialement, Olivier Rossel.
  • Utiliser le planificateur de tâches OVH (crontab) avec PHP
    • Max | Bonjour, comme faire pour appeler une version de PHP qui n’est plus proposée par défaut dans le manager ? J’essaie de lancer un cron avec php 5.3 mais le log affiche No such file...
    • Christophe | @absolument Merci pour ces précisions. Je n’ai pas mis en place de tâches cron récemment, mais j’ai reçu quelques notifications étranges d’OVH il y a quelques...
  • Récupérer le dernier auto-incrément MySQL avec PHP
    • Thy | Sujet toujours *très* utile en 2015 ! Je réponds à Serge tsimba qui récupère un « Resource id ». (Et à tous ceux qui ont le même souci mais qui ne le disent pas) :)...
  • Régler l’heure de serveurs virtuels sous Debian
    • Ares_XL | Il semble que sur Débian la commande « tzconfig &ra quo; soit dépréciée et remplacée par : « dpkg-reconfigure tzdata » elle donne accès à une...
 

Archives
mars 2007

Déclenchez-moi, un jeu en ligne pour apprendre les bases de la photographie

Jeu Déclenchez-moi

Même si les appareils photo numériques font presque tout à notre place, ils restent tributaires des notions de base de la photographie qui existent depuis Nicéphore Niépce : focale, ouverture, exposition, sensibilité, vitesse, etc.

« C’est trop compliqué, tout ça ! Moi, je veux prendre des photos. » Eh bien, dans ce cas, je vous conseille le jeu Déclenchez-moi, réalisé avec Flash par deux étudiants de l’Université technologique de Compiègne (UTC).

L’interface simple et didactique vous apprendra les rudiments de la photographie par l’exemple. Très efficace !

Ce projet m’a aussi permis de découvrir le site passionnant de l’association RendezVousCréation.

Source : 2803

L’État français crée sa propre autorité de certification racine

Voilà une nouvelle que j’attendais depuis 6 ans ! Avant d’expliquer pourquoi, voici la définition d’une autorité de certification (selon le site de sécurité de Teamlog) :

Une Autorité de Certification appelée aussi AC ou CA (Certificate Authority) est chargée d’émettre et de gérer des certificats numériques.

Elle est responsable de l’ensemble du processus de certification et de la validité des certificats émis. Une Autorité de Certification doit définir une Politique de certification qui va établir l’ensemble des règles de vérification, de stockage et de confidentialité des données appartenant à un certificat ainsi que la sécurité de stockage de sa propre clef privée nécessaire à la signature des certificats.

Les certificats émis par ces autorités permettent d’accéder à des services web sécurisés (paiement en ligne, consultation de comptes bancaires, services administratifs), mais aussi de signer des documents numériques pour en certifier l’origine et le contenu (e-mails, contrats, certificats de déclaration). Ils garantissent donc l’authenticité, la sécurité et la confidentialité des informations.

Le problème, c’est que les autorités de certification racine (celles qui certifient les autorités de certification, dites « autorités de certification déléguées ») sont toutes des sociétés de droit privé étrangères (pour ne pas dire américaines…). Dès lors, comment garantir le contrôle, la confidentialité et la fiabilité des échanges sécurisés de l’État français ? Pourquoi dépenser des sommes importantes dans la sécurisation des échanges, si la base est faillible ? J’ai souvent été confronté à ce dilemne lors de mes interventions dans des institutions publiques… sans avoir d’autre choix que d’installer des certificats américains sur des serveurs de l’administration française !

En devenant lui-même autorité de certification racine (grâce au RGS, Référentiel Général de Sécurité, qu’il vient de créer), l’État français gagne enfin son indépendance. Dorénavant, les services administratifs pourront obtenir des certificats du RGS pour permettre aux agents et aux administrés d’échanger des données en toute confiance.

Cependant, il reste deux zones d’ombre :

  • Les navigateurs web vont devoir intégrer la reconnaissance du certificat racine du RGS (pour Firefox, ce sera vite fait, pour Internet Explorer, je suis beaucoup moins sûr…).
  • Les entreprises privées et les particuliers doivent toujours assurer la sécurité de leurs informations sur des certificats racine délivrés par des sociétés américaines.

Source : linuxfr.org

Technology Review enfin en français !

Technology Review no1

Publié depuis 1899 par le MIT (Massachusetts Institute of Technology), le magazine Technology Review est entièrement dédié aux nouvelles technologies (au sens large : biotechnologie, nanotechnologie, informatique, médecine, matériaux, etc.).

Voici maintenant la version française ! Avec un contenu solide et un regard critique qui mettent en perspective les enjeux et les risques de ces technologies innovantes.

Vive la presse papier ! Oui, je sais, c’est un peu opportuniste, mais je suis un papivore (bien plus qu’un bloguivore) et quand je peux faire partager la qualité de certaines feuilles, je saute sur l’occasion.

Pour en savoir plus : site français de Technology Review

Google is watching your server

Dans son blog Actulligence, Frédéric Martinet nous donne un excellent exemple de la puissance de Google. Son article Trouver des fichiers multimédias avec Google contient une requête permettant de trouver tous les fichiers sonores (MP3 et WMA) contenant le terme nirvana. Résultat fort démonstratif qui peut être appliqué dans un contexte de veille active (par exemple, recherche de documents sensibles ou de copies illicites).

J’aime bien cet exemple parce qu’il exploite un défaut de configuration des serveurs web. En effet, si on effectue une requête sur un dossier qui ne contient pas de page index, le serveur web va (trop souvent) nous en montrer le contenu. C’est le cas pour toutes les pages trouvées par la requête de Frédéric Martinet. « Et alors, quel est le problème ? C’est un site web public ! » Oui, sauf que je connais beaucoup de gens pressés qui placent des contenus privés dans des dossiers publics en se disant : « qui va deviner que je place ce fichier à cet endroit ? »

Google le saura.

Vous me prenez pour un parano, hein ? Alors voici un exemple. WordPress, le moteur de blog que j’utilise, place tous les fichiers que je lui envoie, dans le dossier wp-content/uploads/. Celui-ci n’étant pas interdit d’accès (configuration par défaut de la majorité des serveurs mutualisés), on peut obtenir la liste de tous les médias de mon blog. A priori, ce sont les médias qui illustrent mes articles, donc pas de soucis. Et pourtant, il y en a un énorme : les fichiers des articles privés ou en cours de rédaction sont visibles par n’importe qui ! Si vous placez des rapports, documents, images et autres fichiers rien que pour vous ou vos proches, tout le monde en profitera, sachez-le !

On peut appeler ça une faille de sécurité, non ? Et comme je suis très joueur, un fichier appartenant à un article privé est placé dans mes médias. Je donne 72h à Google pour le trouver. Vous pouvez essayer aussi.

Mise à jour : Je suis parano ! Google n’a pas trouvé mon fichier. Son robot d’indexation est pourtant passé à plusieurs reprises, sans prendre en compte le dossier wp-content/uploads/. Vu le nombre de blogs tournant sous WordPress, Google a peut-être pris l’initiative de ne jamais indexer ce dossier-là. Par contre, d’autres « visiteurs » moins sympathiques m’obligent à protéger mon dossier wp-content/ : visiblement la liste de extensions installées (wp-content/plugins/) semblaient beaucoup leur plaire… La récréation est finie !

Et vous ? Avez-vous constaté des comportements étranges ou des attaques directes sur votre blog ? Comment le protégez-vous ?

Comment faire tourner Ubuntu Server sur un (très) vieux serveur

Depuis toujours, Linux est réputé pour sa stabilité et son efficacité, même sur des petites configurations. Alors plutôt que de jeter votre PC de 10 ans d’âge (une vraie guimbarde !), pourquoi ne pas le transformer en serveur de test sous Linux ?

C’est ce que j’ai entrepris hier avec la distribution Ubuntu Server. Je récupère donc la version en cours (la 6.10) en faisant bien attention de prendre l’image ISO qui correspond à ma vieille guimbarde (ubuntu-6.10-server-i386.iso). Je grave le cédérom, j’installe le système sans problème et je redémarre.

Ah, tiens ! Il ne redémarre pas. Linux me ferait-il des misères ? Ce n’est pas son genre… Et pourtant, le BIOS et GRUB (le système d’amorçage) se chargent bien, mais au moment du chargement du système, la machine redémarre toute seule. Evidemment, sans message d’erreur…

Une petite recherche et j’obtiens un début de réponse : le noyau d’Ubuntu Server est compilé pour les machines i686. Il faut donc au moins un processeur Intel Pentium Pro pour le faire tourner. Exit donc les Pentium I… et mon valeureux AMD K6/II 400MHz !

Sauf qu’il y a toujours moyen de ruser. Il suffit de changer de noyau, ce qui reste très abordable sans refaire l’installation :

  • Redémarrer la machine sur le cédérom d’installation.
  • Choisir le mode Rescue.
    Un système se charge en mémoire.
  • Choisir les options proposées par défaut (notamment le montage du disque racine et la console).
  • Une fois la console active, installer le noyau adéquat :
    apt-get install linux-386
  • Supprimer le noyau par défaut :
    apt-get remove linux-server
  • Retirer le cédérom et redémarrer la machine

Ouf, ça marche ! Dommage que le nom de l’ISO (ubuntu-6.10-server-i386.iso) ne soit pas en conformité avec son contenu. Cela m’aurait évité de perdre une bonne heure…

Javascript et ActionScript : le piège de parseInt()

Comme tous développeurs pressés, nous utilisons très souvent des fonctions de façon empirique, sans en comprendre le fonctionnement réel et les subtilités de paramétrage. Et parfois, on le paye cher en mal de crâne, suite à des comportements incompréhensibles… et pourtant normaux.

Prenons la fonction Javascript parseInt(). Elle permet de transformer une chaîne en nombre entier. Si on veut récupérer le département d’un code postal, le premier réflexe est de faire :

var departement = parseInt(codepostal.substring(0, 2));

En apparence tout fonctionne bien… sauf pour les départements 08 et 09 pour lesquels on obtient 0 ! Diable…

C’est oublier un peu vite le second paramètre radix qui définit la base numérique à utiliser. Il est vital car en son absence, la base numérique dépend du format de la chaîne. Dans notre cas, les codes postaux commençant par 0 sont convertis en entiers de base octale (ou base 8). Notre but est d’obtenir un entier en base décimale (ou base 10), on précise donc la valeur 10 au second paramètre de la fonction parseInt() :

var departement = parseInt(codepostal.substring(0, 2), 10);

Ouf ! Pour information, radix supporte les valeurs 0 (valeur par défaut, sélection d’une base hexadécimale, octale ou décimale selon le format de la chaîne) et de 2 à 36. Par exemple, si on souhaite un entier hexadécimal, radix sera égal à 16.

On ne m’y reprendra plus !

Le Web 2.0 atteint ses limites

Un contenu réapproprié

Sur son blog Ecosphère, Emmanuel Parody nous alerte sur une des limites du Web 2.0 : les services en ligne autogérés. Prenant l’exemple de Digg, il montre que l’appropriation de la gestion du contenu par des petits groupes d’utilisateurs très actifs entraîne un détournement du service. Des dérives qui signeront inévitablement un retour vers le contrôle a priori du contenu :

J’en discutais avec Emmanuel Davidenkoff […]. Son choix, très motivé, consiste à imposer la modération a priori des commentaires et des contributions au nom de la cohérence éditoriale et de la qualité. Du coup on perd sans doute en spontanéité et on doit aussi supporter le coût de l’opération. Pourquoi ne pas faire le pari de laisser ses contributeurs s’autogérer ? Parce que, selon lui, derrière la communauté se crée un noyau dur qui tend à développer sa propre culture, ses codes, s’approprie l’espace au point d’exclure rapidement les nouveaux arrivants. Bref en apparence le site gagne son pari en fidélisant un noyau dur mais passe à côté de sa mission fédératrice. (extrait de l’article Digg : 1$ par vote, c’est cher payé sur Ecosphère)

Un contenu inapproprié

Cet exemple me fait penser aux déboires de USA Today qui a joué à 100% la carte du Web 2.0 pour la dernière version de son site web… sans avoir mesuré préalablement le désintérêt de 92% des lecteurs pour ses services participatifs. Si l’origine du problème vient d’une mauvaise conception du projet (overdose de « buzz » ?), il montre également que les principes du Web 2.0 ne s’appliquent pas à tous les projets web.

Un contenu inexploité

Les réseaux sociaux très permissifs du Web 2.0 ne sont pas les seuls à montrer leurs limites. Nova Spivack, le président de Radar Networks, montre, schémas à l’appui, l’inadéquation des mots-clés (les fameux « tags ») pour qualifier l’information à mesure que le web grossit :

La recherche par mots-clefs ne comprend pas le sens de l’information. La recherche en langage naturel est un peu meilleure pour comprendre le sens de l’information – mais elle ne s’intéresse pas plus à la structure de l’information. Pour vraiment améliorer la productivité de la recherche sur le web, nous aurons besoin de nouvelles approches qui structureront les données – c’est-à-dire qui seront capable de chercher dans et entre des bases de données structurées et pas seulement sur du texte sans structure ou de l’HTML semi-structuré. (extrait de l’article Beyond Keyword (and Natural Language) Search, traduit par InternetActu)

Verra-t-on un retour vers une classification plus classique (arbre, hiérarchie, facettes, graphes…) ? Sans nul doute, à condition de créer des interfaces suffisamment simples et rapides pour éviter de transformer chaque internaute en documentaliste. Le web sémantique dont on parle depuis que le web existe va devenir incontournable.

Un contenu réexploité

Je terminerai par ce qui me semble être la principale limite du Web 2.0 : la propriété intellectuelle. Il ne faut pas oublier que le monde réel est entièrement fondé sur la propriété : biens, marques, modèles, brevets, etc. Sauf à créer un autre monde, il faudra bien que le web se plie à cette règle du jeu séculaire. Les conflits et les enjeux en croissance constante le prouvent : purge de YouTube, signatures d’accords avec les auteurs, presse belge contre Google. Or le Web 2.0 doit notamment son succès au pillage des contenus. Que restera-t-il des réseaux sociaux une fois les procédures judiciaires abouties ? Comment garantir la stabilité du marché de la publicité en ligne sur des contenus instables ? Comment les internautes vivront ce douloureux passage d’un web anarchique et prolifique à un web raisonné et respectueux ? Ou bien, se dirige-t-on vers un web totalement libre, comme le voyait son créateur, Tim Berners-Lee ? Devra-t-on rendre l’économie classique « open source » ? Nous n’en sommes encore qu’à la préhistoire de l’internet…

Une histoire du design interactif par Etienne Mineur

A l’occasion de la première soirée des Designers interactifs, Etienne Mineur a présenté une histoire du design interactif.

Un pirate prend la main sur la dernière version de WordPress

Rares sont les applications exemptes de failles de sécurité. On s’habitue aux bulletins de sécurité qui nous invitent à les mettre à jour dans les meilleurs délais, ce que nous ne faisons pas forcément toute affaire cessante…

Sauf que là, l’affaire est grave. Un pirate a réussi à pénétrer un des serveurs de WordPress pour modifier le pack d’installation de sa dernière version (v. 2.1.1). Tous les blogs qui utilisent cette version sont donc menacés.

La mise à jour vers la version 2.1.2 est donc à faire au plus vite !

Behaviour, ou comment piloter Javascript par les sélecteurs CSS

En attendant que s’impose un langage web qui réconcilie les développeurs, les marketeurs et les visiteurs (à mon avis, on en est très loin…), on est bien obligé de faire avec le HTML. Donc d’accepter un joyeux mélange dans le code d’une page web : contenu textuel et visuel, méta-données, informations de mise en page et de styles, appels à des comportements interactifs, paramètres d’objets externes, etc. Même avec la meilleure volonté du monde (par exemple, un site « 100% XHTML, 100% accessible, 100% CSS2 »), il est impossible de séparer totalement le contenu, sa présentation et son comportement.

Après avoir critiqué cette situation absurde, Ben Dolan nous propose une solution simple et astucieuse pour la partie interaction, grâce à son script Behaviour. Son objectif : éliminer tous les appels aux comportements Javascript dans le code HTML et les déclencher grâce au DOM et aux sélecteurs CSS.

Une idée toute bête, encore fallait-il y penser. Du coup, toutes les interactions peuvent être modifiées sans toucher au code HTML. Du pur bonheur !