~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Pour soigner son pied gangréné, Free se coupe les deux jambes

Depuis (visiblement) une semaine, Free a restreint les fonctionnalités de Freephonie, son offre de service VoIP en SIP. On ne peux plus recevoir d'appels en SIP (visiblement depuis n'importe ou) et on ne peux plus en émettre vers l'étranger. Ceci semble faire suite à divers problème de fuite d'utilisation frauduleuse de comptes dont les identifiants auraient été volés (voir ici).

Alors bon c'est sûr que la sécu chez Free c'est pas trop ça : la console de gestion est en HTTP, votre login/mot de passe arrive en clair donc. Mais ce problème fondamental en pose beaucoup d'autres : l'interface permet de gérer le wifi (et donc votre clé de chiffrement), le compte SIP (qui permet de téléphoner à distance donc), etc.. Et le compte SIP on peut appeler avec donc forcément en cas de vol des identifiants ça peut faire mal niveau budget.

Mais à côté de ça, le SIP est un service pas mal utilisé chez Free, même s'il n'est pas dans les CGV, ils vendent des téléphones à respectivement 60 et 200 euros permettant d'utiliser son compte SIP depuis n'importe quelle freebox en wifi (réseau freephonie), on peut donc estimer que l'offre SIP de Free est sérieuse. Sauf que là depuis une semaine le service est totalement amputé : plus de réception d'appels et plus d'émission d'appels vers l'étranger (même gratuit) ou tout numéro payant.

Maintenant que j'habite en belgique, j'utilise mon compte SIP Free à distance (c'est en majorité pour ça que je garde Free comme FAI, les autres ne proposent pas de SIP) avec mon Siemens C450 IP (hybride SIP/Fixe). Donc inutile de vous dire qu'appeller vers l'étranger, je l'utilise beaucoup vu que "l'étranger" c'est ici, chez moi. Pourtant les appels vers la belgique sont gratuits selon les tarifs Free. Donc je ne peux plus utiliser ma ligne de téléphone. Et je ne suis pas le seul impacté, toutes les personnes utilisant le White ou le Black sont impactées, et toutes celles utilisant le SIP. Et ça fait maintenant 7 jours que le service est ainsi amputé, sans aucune communication de la part de Free. Tout ça à cause d'un problème de sécurité qui a impacté quelques personnes. Plutôt gênant...

Jamendo et les licences

Petits chiffres de Jamendo :

  • 4840 albums au total
  • 2346 albums en CC Attribution-NonCommercial-ShareAlike
  • 1230 albums en CC Attribution-NonCommercial-NoDerivs
  • 419 en CC Sampling Plus Non Commercial
  • 397 en CC Attribution-ShareAlike
  • 233 en Art Libre
  • 76 en CC Attribution-NoDerivs
  • 74 en CC Attribution
  • 41 en CC Attribution-NonCommercial

(Source : http://www.jamendo.com/fr/creativecommons/)

Donc ça nous donne :

  • 83% d'albums interdisant toute utilisation "commerciale"
  • 27% interdisent toute modification
  • Seulement 16% des albums permettent la modification et diffusion sans contrainte

Pourtant la page d'accueil indique toujours "Bienvenue dans le monde de la musique libre.", un monde visiblement plutôt restreint face à l'avalanche (83%!) de contenus qu'on pourrait qualifier de promo...

Wikazzle

Voici une nouvelle web-application 3.0 totalement novatrice. Dans la suite de doodle.ch mais dans une autre idée, Wikazzle (combinaison improbable de wiki et "caser"), est un petit calendrier qui va vous permettre de définir une occupation d'un lieu (ou de ce que vous voulez) pour certains jours. L'idée de base est simple : en colocation dans un appart il est utile de savoir quels sont les jours ou l'un et/ou l'autre seront présents, par exemple pour pouvoir planifier et prêter ce même appart. Enfin ça c'est mon utilisation, mais il est possible d'en imaginer d'autres, je pense que c'est assez flexible. C'est en PHP5, ça ne demande rien d'autre pour fonctionner que son code (même les images sont dans le code). L'installation est simple : recopiez le fichier .php et allez le voir dans votre brouteur. Vous pouvez modifier quelques détails (le mot de passe, le titre, la limite d'accès aux données...) au début du code.

Voici un aperçu des fonctionnalités 2.0 de la bête :

  • Logo 2.0 (important !)
  • Nom 2.0 (capital !)
  • Couleurs de fond marron-orange-bleu (ubuntu compliant)
  • Compatible navigateurs modernes (donc pas IE)
  • Pas de bases de données
  • Niveau d'accès configurable
  • Licence GNU/GPL
  • Bla bla 2.0 de rigueur

Petit détail : le login sur la page de connexion est libre, il ne sert qu'à pré-remplir certains champs par la suite, le mot de passe est donc "global", quel que soit le login que vous mettrez. Ah et le mot de passe par défaut est waza .

nanoKubbe 0.1 beta

Vous avez envie de créer un petit site mais à chaque fois vous regardez les CMS que vous connaissez et vous vous dites "ouh la la" ? Vous avez envie de pas vous prendre le chou maintenant mais de pouvoir faire évoluer le code vous-même plus tard ? Voilà nanoKubbe, le mini-CMS-wiki-truc.

nanoKubbe c'est un principe simple : on a des pages et tout le reste tourne autour. Vous pouvez donc créer/éditer/renommer/déplacer/supprimer ces pages. C'est la base de nanoKubbe. Vous pouvez les mettre dans des répertoires aussi, c'est automatique. Par exemple si vous créez la page Recettes/Tourte, ça va créer le répertoire Recettes et dedans la page Tourte.

La fonctionnalité intéressante de nanoKubbe sont les métadonnées, en effet vous pouvez associer des méta-données à chaque page (celles-ci sont stockées dans un fichier .ini adjacent au fichier .html du contenu de la page), ces méta-données peuvent représenter n'importe quoi. Par défaut dans nanoKubbe il y a trois méta-données : le titre de la page, le style spécifique, et une case à cocher pour que la page ne soit lisible que lorque vous êtes connectés. Vous pouvez facilement rajouter autant de méta-données que vous désirez. Et on en vient à l'autre point intéressant, les templates et plugins.

En effet dans nanoKubbe par défaut une page appelle le template page.tpl, et il gère tout l'affichage et les fonctionnalités liées au contenu. C'est lui qui gère que faire des métadonnées associées à la page, pas le code PHP, le template. Par exemple pour la métadonnée "private" qui indique si la page est privée, le template fait simplement un if pour savoir s'il doit afficher le contenu. Mais on ne peux pas tout faire dans un template smarty. Ainsi vous pouvez aussi rajouter des plugins de templates (fonctions, modifieurs, etc.) qui eux seront des fonctions PHP.

Ah oui et tout cela est éditable en ligne en direct.

Niveau performance, par défaut les pages sont mises en cache pour une période de 24h en utilisant le système de cache de Template_Lite.

Pour l'édition des pages, l'idée étant encore de rester le plus possible proche d'une utilisation "code" mais simplifiée, on utilise directement du xhtml, avec des petits boutons d'aide à l'édition. On utilise garbage2xhtml et Blockformat (dont j'ai déjà parlé il y a quelques temps ici) qui permettent de ne pas trop laisser passer les erreurs de code mais surtout qui évitent de gérer soi-même les paragraphes et retours de ligne. Ainsi une ligne vide en dehors d'un tag de type bloc créera un nouveau paragraphe, et un retour à la ligne simple créera un <br />.

nanoKubbe essaye donc d'être très proche du code PHP, et d'un modèle de gestion "à la main", mais en direct, en ligne et de manière simplifiée. Il sépare également les couches présentation (CSS) / contenu (pages) / contenu accessoire (métadonnées) / markup (templates).

Pour moi c'est l'outil d'édition web quasiment idéal, après des années à réinventer la roue et tenter de nouvelles choses, je suis persuadé qu'il est le plus efficace car très proche des outils utilisés pour le créer, il représente plus une aide à l'édition de code qu'un véritable CMS et c'est là tout son intérêt. Il ne manque à mon sens plus que la possibilité d'utiliser son éditeur de texte préféré à la place des textarea du navigateur...

Enfin voilà tout ça pour dire que la version 0.1 beta de nanoKubbe est disponible sur le SVN de KD2.org. Oui enfin après tant de temps :) Il faut dire que le billet que j'avais préparé pour la sortie de la 0.1 finale a commencé d'être rédigé en décembre 2006 et que depuis nanoKubbe a connu deux refontes de son code et de sa logique.

Pour récupérer le code un simple

svn checkout http://svn.kd2.org/svn/misc/nanokubbe/trunk/

Et voilà. Pour installer il vous faut le droit d'écriture sur le répertoire racine de nanoKubbe, et tous les sous-répertoires de cache et datas. Ensuite allez avec votre brouteur web sur install.php, ça vous demande de choisir un login/pass et voilà vous pouvez tester. Il n'y a pas encore de doc mais je ne sais pas si c'est d'une utilité tellement il faut l'utiliser pour le comprendre. Cependant si vous avez des questions posez-les dans les commentaires de ce billet je me ferais un plaisir d'y répondre :) Oh, au fait c'est pour PHP >= 5

Ah et un exemple ? Ben http://bohwaz.net/wiki/Encodage par exemple pour voir ce que ça donne visuellement (notez le "Connexion" en haut à droite ;) ). Et pour le niveau édition voici un screenshot montrant la barre d'outils présente sur les pages quand on est connecté, l'édition d'une page et la gestion des documents : nanokubbe.jpg.

La sécurité sur le web, règle #2 : Evitez le code peu sûr

Règle n°2 : Evitez le code peu sûr (ou sachez à qui vous fier)

Si vous ne savez coder du PHP que depuis 2 semaines, je vous déconseille fortement de mettre en ligne votre site avec vos scripts avant au moins 6 mois de rôdage. Sinon vous ferez sûrement le bonheur de quelques script kiddies qui seront très heureux de découvrir vos failles de débutant. Failles qui ont d'ailleurs été probablement recopiées dans des tutoriels à droite à gauche sur le net, écrits par des gens qui ne savent en général pas grand chose de la sécurité[1].

Prenons un exemple récent, je vais sur un site de vidéo amateur, de là je vois que j'ai des adresses sur les liens du type "http://www.videoroxor.net/index.php?p=accueil" et ben hop moi je vais tester "http://www.videoroxor.net/index.php?p=miam" renvoie un erreur ou je vois qu'il veut inclure miam.php. Oh mais c'est super ça, tiens essayons avec une adresse ? "http://www.videoroxor.net/index.php?p=http://google.fr/" Oh ça marche, et voilà je peux très facilement envoyer à ce serveur un script PHP qui sera ainsi exécuté. Cette faille est connue et reconnue, mais nombre de sites la reproduisent et pas que des sites personnels.

En est exemple une faille récente dans une plateforme de blog française très connue. La prévisualisation du blog était du genre http://admin.superblogroxor.com/preview.php?url=http://bohwaz.superblogroxor.com/. Evidemment je me suis empressé de tester avec url=http://google.fr/, ça marche, là le cas n'était pas de l'exécution de code mais de la visualisation, le fichier preview.php faisait en fait un simple affichage de ce qui lui était donné. Ainsi avec ce fichier on pouvait visualiser tous les fichiers du serveur, notamment les fichiers de mot de passe, ou le code source de l'application, qui aurait d'ailleurs pu être analysé pour tenter de trouver un moyen de faire exécuter du code source. C'était une faille majeure et à priori présente sur le site depuis son lancement. Je n'ose penser à ce qu'on pu faire des personnes mal intentionnées de cet accès (qui donnait de fait accès aussi aux mots de passe de la base de données) avant que je ne signale cette faille qui fut heureusement corrigée dans les heures qui suivirent.

Cet exemple est bien illustrateur du fait qu'aucune structure, amateur ou professionnelle, n'est à l'abri de laisser des failles béantes dans ses pages web. Ainsi si vous travaillez en équipe, assurez-vous dans votre équipe que vous relisez le code les uns des autres pour éviter les erreurs d'étourderie ou de méconnaissance. Si vous travaillez seul, évitez les applications reconnues pour leurs failles, et évitez de faire du code sans avoir une idée minime des prérequis en sécurité dont vous devez vous assurer.

[1] Bien que les choses bougent un peu et que vous ne trouverez plus trop de tutoriel sur include (notamment) qui ne fasse pas mention des problèmes de sécurité, mais il en reste toujours.

La sécurité sur le web, règle #1 : N'en dites jamais trop

La sécurité sur le web est quelque chose de peu connu au final, et nombreuses sont les failles qu'on rencontre tous les jours dûes simplement à un manque d'information des développeurs. Je vais décrire quelques erreurs communes et leurs solutions.

Règle n°1 : N'en dites jamais trop

La règle la plus simple est de faire attention aux informations que vous pourriez donner aux éventuels attaquants. Ainsi désactivez l'option ServerSignature d'Apache, et ne mettez pas de phpinfo qui traîne. Dans la mesure du possible masquez les versions des scripts php que vous utilisez, voir leurs noms. Cela vous évitera déjà beaucoup d'attaques automatiques basées sur des failles connues de scripts comme PunBB, phpBB ou encore Mantis. Tous les scripts connus ont des failles qui sont connues, et par flemme ou par manque de temps vous n'aurez pas toujours de version à jour, alors évitez déjà les bots qui font simplement des recherches sur google pour obtenir une liste de cibles potentielles. Ca ne vous dispense pas pour autant de faire des mises à jour régulières (ou même, soyons fous, de relire le code des scripts que vous installez), mais ça vous évitera pas mal de désagréments quand vous avez un peu de retard dans vos mises à jour.

Mais au-delà de ça, évitez aussi d'en dire trop dans les messages d'erreur. Par exemple un utilisateur essaye de se connecter, si le login n'existe pas, ne lui dites pas "Ce login n'existe pas", de même pour le mot de passe, évitez de dire "Mauvais mot de passe", dites simplement "Erreur de connexion, réessayer", ou quelque chose dans le genre. Il ne faut pas indiquer si c'est le login ou le pass qui est mauvais, afin de ralentir et rendre plus difficile une tentative de brute force ou autre bot. C'est un exemple mais ça s'applique à d'autres cas ou le message d'erreur ne doit pas être (trop) explicite pour ne pas aider l'assaillant.

Le NexBlack, presque un an plus tard

Presque un an après avoir reçu mon Nexblack, voici quelques réflexions :

  • Mon impression globale n'a pas changée : c'est un superbe produit
  • Avec le temps le noir brillant s'est incrusté de mini rayures et des poussières se sont déposées entre l'écran et le plastique transparent du boîtier
  • L'écran a une petite tâche dûe à un choc plutôt violent
  • Il fonctionne toujours parfaitement
  • La radio est difficile à maîtriser, comme toujours c'est le fil des écouteurs qui fait antenne alors pas toujours facile de se débrouiller pour avoir une réception correcte
  • Il est à l'utilisation parfaitement ergonomique dans le mode de gestion "Files", je n'utilise pas du tout les fonctions de tags
  • La fonction "Sleep" est très utile pour s'endormir avec sa musique préférée :)
  • L'autonomie reste toujours très bonne : même si elle n'égale pas les 40 à 50 heures (!) de mon ancien baladeur MP3 à CD, les 20 à 25 heures d'autonomie sont très satisfaisantes
  • Je suis tous les jours étonné par sa qualité de restitution "à nue", très fidèle et très propre

Au final je suis toujours très satisfait et la combinaison CF + Batteries standards amovibles + Ogg Vorbis s'avère parfaite à l'usage. Si mon modèle venait à mourir je pense que j'en reprendrais un autre :)

Une note finale sur le micro interne qui m'a étonné. C'est un micro dictaphone, certe, mais il est particulièrement efficace comparé à ses concurrents. Voici pour la démo trois situations différentes d'enregistrement :

  • Ridiculus - Impro live saxo + contrebasse - Dijon - 2006 (43Mo, 32 minutes, 192kbps)
    Situation difficile, car son faible, beaucoup de silence, baladeur posé sur une table, dans une partie surélevée d'une petite salle de concert, loin de la scène. Le souffle est présent certes, mais pas si fort qu'on aurait pu le croire. Les sonorités des instruments sont globalement fidèles, pas mal donc pour un dictaphone...
  • La Blanche - Concert au Café de la Danse - Paris - 2007 (20Mo, 21 minutes, 128kbps)
    Situation plutôt classique : une salle à l'acoustique particulièrement agréable, son bien équilibré. Le micro du Nexblack se débrouille pas trop mal aussi, même si ça tends souvent vers la cacophonie entre les instruments. Ca sature déjà un peu vu le volume sonore pas étonnant, on est dans une salle de concert... La compression aide pas non plus.
  • Sheeduz - Concert "Le Klub" - Paris - 2007 (48Mo, 35 minutes, 192kbps)
    Alors là situation *très* difficile : le son était horrible, beaucoup trop fort, très mal dosé, dans un espèce de club minuscule... J'ai cru devenir sourd ce soir-là. Evidemment le micro sature totalement, incapable d'encaisser une aussi forte pression sonore (et cacophonie), surtout à moins de deux mètres des enceintes. Le son était catastrophique en live, il l'est sur l'enregistrement mais là on sent bien que le petit micro est pas du tout fait pour encaisser tout ça.

Voilà alors on vois bien que ça fait pas de miracle, mais par rapport à ce que j'ai pu entendre de la part d'autres appareils, le micro-dictaphone du nexblack est étonnant. Il convient évidemment parfaitement pour la prise de notes, mais c'est plus rigolo de tenter de lui imposer du son un peu plus élaboré :)

Top 5 des films

Après le troll débat serein qui eu lieu sur #openweb, mat me refile la tâche de faire mon top 5 des films à voir. Alors allons-y, j'essaye de prendre un de chaque genre de film que j'apprécie :

  • Humour : The Meaning Of Life des Monty Python évidemment (Holy Grail est génial aussi, mais Meaning Of Life est encore plus barré je crois...). J'apprécie également beaucoup les teen movie, notamment ceux avec Kal Penn (Van Wilder, Harold et Kumar, etc.), et évidemment les Hot Shots !
  • Animation : Pompoko de Isao Takahata. Un des plus beaux films d'animation que j'ai vu. Un peu oublié dans la filmographie des studios Ghibli, c'est une très belle fable sur l'humanité, l'amitié et la nature. Superbe, et aussi bien dans les images que dans les idées véhiculées. Un des rares films qui me fait pleurer à chaque fois que je le vois. A égalité avec le sublime Le Roi et l'oiseau de Paul Grimault et Jacques Prévert.
  • Comédie musicale : The Rocky Horror Picture Show, parce qu'il est véritablement mythique et que je peux le regarder des dizaines de fois sans me lasser. Pour l'extraordinaire tribu de fans qui font vivre le film depuis plus de trente ans, pour le nombre incalculable de références qu'on peux y trouver dans les films et autres créations depuis la sortie du film. Je le mettrais à égalité avec Cry-Baby de John Waters, également culte, et Foon, plus récent, mais vraiment culte et génial, malgré la tempête de critiques négatives qu'il a reçu à sa sortie, et ce de manière totalement injustifiée.
  • Grands films : Big Fish de Tim Burton, très beau film, accessible à tous, superbe fable sur les relations père-fils. Egalement un des rares films qui me fait pleurer à chaque fois... D'autres que j'aime dans cette catégorie : Créatures Célestes de Peter Jackson (oui, avant King Kong il a fait de bons films), Brazil de Terry Gilliam (voir aussi Tideland), Elephant Man de David Lynch, Man On The Moon de Milos Forman, etc.. Chacun de ces réalisateurs ayant une certaine panoplie d'excellents films à son actif.
  • Film d'horreur : La série des Evil Dead de Sam Raimi, pour son côté barré, sa technique d'effets spéciaux innovants (animation en stop-motion notamment), etc..Cette catégorie de films est de loin ma préférée et je pourrais citer un certains nombres de films ici, mais pour le plus important il faut avoir vu tous ceux de Romero (même et surtout Bruiser), le 28 days later de Danny Boyle, ceux de David Cronenberg (La mouche, Scanners, Chromosome 3, etc.), Society de Brian Yuzna, Suicide Circle (ou Suicide Club, ou Jijatsu Circle, ou Jijatsu Sakuru, le nom varie beaucoup d'un pays à l'autre) de Shion Sono, les Nightmare On Elm Street (connus en france sous le nom de Freddy), etc etc.

Et je rajoute un sixième pour le fun c'est la série qui m'a le plus marqué (et marqué les scénaristes/réalisateurs de films et séries pendant plus de 10 ans), c'est évidemment Twin Peaks de Mark Frost et David Lynch, qu'il faut avoir vu au moins une fois dans sa vie, pour ses intrigues tordues, ses personnages barrés et la bouffe omniprésente évidemment :)

Bref tout cela est loin de représenter tous les films que j'apprécie beaucoup, il faudrait au moins un top 100 pour mettre ce que j'aime, alors dans un Top 5, même si je triche un peu ;) j'ai du mal à caser tout ce que j'aime. Mais là ça fait déjà beaucoup de trucs sympas à voir. Je passe à tous ceux qui veulent faire de même.

Nouvelle version de Journal Intime.com

Pour fêter dignement les 5 ans (et oui déjà) de Journal Intime.com j'ai conçu un nouveau design, qui me plaît beaucoup je dois dire :)

On ajoute au passage quelques nouveautés et la poursuite des efforts entrepris pour la mémoire du journal intime francophone (archivage des journaux et des sites traitant du diarisme), j'espère que ça plaira et qu'on pourra fêter les 10 ans dans 5 ans :)

Pour la suite je dois me remettre sur le développement de l'Encrier pour pouvoir sortir enfin la 1.3, utilisant template_lite et les sessions natives PHP, et surtout incluant un système de mise à jour plus ou moins automatisé. Ce qui permettra de faire des release plus souvent parce que là faut dire que c'est chiant...

Ca se passe ici : http://journalintime.com/

La France bascule...

Ce matin je me suis levé à l'aube pour visiter la maison d'Anne Frank à Amsterdam. Je crois que c'est la première fois que je me suis mis à pleurer dans un musée. Les phrases qui m'ont le plus marqué, écrites sur un mur du musée, sont celles-ci :

August 4, 1944

The hiding place has been betrayed. Nobody knows by whom.

Et ce soir les premières estimations commencent à tomber pour le résultat du second tour des élections en france. Participation record depuis quarante ans. 54% pour Sarkozy. J'ai peur.

Notes rapides... ↓