20 août 2008 4 commentaires — food, geek, humour, xml




Une preuve de plus que le XML c’est moche et verbeux.
11 juillet 2008 6 commentaires — cinéma, paris
Le Parc de la Villette accueille du 15 juillet au 17 août 2008 des séances de cinéma en plein air. Cette année encore de grands films, de grands réalisateurs et de grands acteurs se côtoieront sur les pelouses Parisiennes, à 2 maigres euros la séance. Le programme complet est long, mais il vaut le détour.
Si l’événement vous intéresse et que vous utilisez un logiciel d’agenda je vous invite à utiliser le calendrier que j’ai crée pour l’occasion, disponible au format ical et que l’on peut voir ci-dessous :
Suite de l’article…
26 juin 2008 26 commentaires — authentification, google, sécurité, yahoo
La dernière innovation 2.0 est l’import de contacts automatiquement depuis votre compte GMail, Yahoo, etc. C’est bien pratique, ça permet de spammer tous ses contacts en quelques clics seulement.
Mais voilà, pour accéder à cette mine d’or d’adresses email il faut la clef. C’est ainsi qu’on se retrouve avec des sites comme Twitter, Plaxo, Facebook et j’en passe qui vous demandent votre mot de passe de webmail. Vous savez, le mot de passe le plus important, celui qui accède à toute votre vie, celui qui permet de récupérer tous les autres mots de passe.
La première règle de sécurité qu’on apprends est pourtant qu’il ne faut jamais donner son mot de passe à un tiers. Alors quand en plus c’est une popup où on ne voit même pas sur quel site on se trouve qui nous le demande…
![Plaxo FTW [Capture d'écran de la popup de Plaxo, choix du compte]](https://i0.wp.com/sunfox.org/blog/wp-content/uploads/2008/06/image-1.png?resize=277%2C300)
![Plaxo FTW [Capture d'écran de la popup de Plaxo, demande du mot de passe de Gmail]](https://i0.wp.com/sunfox.org/blog/wp-content/uploads/2008/06/image-2.png?resize=277%2C300)
Ici, popup d’import de Plaxo, pour ajouter des contacts à Mixin
Mais il existe un moyen de partager sa liste de contacts sans révéler son mot de passe ! Pour ça des chouettes APIs ont été crées pour Google Contacts et Yahoo! Address Book, fonctionnant à l’aide de jetons d’utilisation. En les utilisant vous êtes tout simplement redirigé sur votre webmail qui vous demande si vous acceptez de partager votre liste de contacts. Beaucoup plus efficace, jamais votre mot de passe n’aura voyagé sur un site étranger et le jeton n’est utilisable qu’une seule fois. C’est cette méthode qu’utilise par exemple Flickr :
![[Capture d'écran de Flickr, choix du compte]](https://i0.wp.com/sunfox.org/blog/wp-content/uploads/2008/06/image-3.png)
![[Capture d'écran de Gmail, demande de l'autorisation d'accéder aux contacts]](https://i0.wp.com/sunfox.org/blog/wp-content/uploads/2008/06/image-4.png)
N’alimentez pas le système, ne risquez pas vos données sensibles, ne donnez pas vos mots de passe. Le pire est qu’avec de telles applications populaires en libre circulation les utilisateurs commencent à avoir l’habitude de donner leur mot de passe à tort et à travers.
2 juin 2008 — javascript, netvibes, open-source, php, rest, widgets
Lors de la Netvibes Developer Meetup François Hodierne nous a annoncé quelques nouveautés autour de Netvibes.
Déjà, avec l’UWA Netvibes a crée un standard simple, basé sur des standards déjà extrêmement utilisés (XHTML, JavaScript, CSS) permettant de fabriquer des widgets multi-plateformes (OS X, Windows Vista, Google, …).
« Netvibes Rocks! »Désormais, Netvibes s’ouvre encore d’avantage en permettant facilement d’héberger des widgets ou de les intégrer n’importe où. Pour ça, le site netvibes.org fournit du code PHP et JavaScript qui permet cette réutilisation, sous licence libre.
La deuxième grande annonce : une interface REST sur http://rest.netvibes.com/. Elle permet de récupérer ses informations publiques et bientôt ses données privées ainsi que la possibilité de les modifier !
Encore une fois la seule plateforme de widgets à s’ouvrir ainsi.
Annoncé à peine un jour avant cette meetup, Tariq Krim, CEO emblématique de Netvibes cède la place à Freddy Mini. On sentait l’émotion quand ce fut au tour de Tariq de parler un peu de son départ.
J’espère que le changement de direction ne changera en rien l’ouverture vers laquelle se tourne Netvibes, qui, avec des changements pareils, réussit à avoir un temps d’avance sur les gros Google ou Yahoo.
27 mai 2008 5 commentaires — code, ruby
module Enumerable
def somethingest(method)
inject do |acc, elem|
elem.send(method, acc) ? elem : acc
end
end
def biggest
somethingest :>
end
def smallest
somethingest :<
end
end
[42, 51, -9.2, 5].biggest # => 51
[42, 51, -9.2, 5].smallest # => -9.2
19 mai 2008 5 commentaires — conférence, événement, libre, pycon, python
Week-end chargé car après le RailsCamp Paris le samedi, mon dimanche était dédié à la deuxième édition de Pycon FR, une conférence dédiée au langage de programmation libre Python, à la Cité des Sciences et de l’Industrie à Paris.
Parmi les conférences du deuxième jour, Michel Claveau nous présentait PLUIE, une GUI très dynamique pour Python… utilisant le moteur de rendu d’Internet Explorer. S’il existe certainement une niche que cette GUI intéresse, s’adressait-il au bon public ?
J’étais très curieux de voir les autres conférences, par contre. Parmis celles-ci WSGI (à prononcer un peu comme whisky) et Paste de Gael Pasgrimaud et le déploiement d’applications Python en utilisant PyPI (à prononcer paille-pi) de Tarek Ziade. Deux conférences très techniques mais toutes deux très enrichissantes.
Michael Scherer nous invitait dans le monde merveilleux de la gestion de version distribuée avec Mercurial. Très bonne présentation et une bonne piqûre de rappel pleine de bon sens. Impossible après celle-ci de défendre SVN, CVS contre Mercurial, Git, Bazaar et les autres VCS décentralisés.

Badge Afpy, d’Antoine Millet
David Larlet enfin, qui le matin-même nous convainquait dans sa conférence sur « Pourquoi Django ? », nous offre une seconde conférence un peu plus poussée sur la qualité et les performances dans Django. Il est intéressant de noter que les problématiques qu’il soulevait sont finalement les mêmes que celles que l’on rencontre si l’on veut faire de la qualité et de la performance dans Rails par exemple. Ces conférences étaient comme je les aime : captivantes, avec des slides simples (avec même une de mes photos, quel honneur !) et des mots justes.
Pour finir la journée Victor Stinner nous parle de Python 3000. Dans cette prochaine version de Python beaucoup de nouveautés enthousiasmantes et d’autres dont l’esthétique me chagrine un peu. Néanmoins je suis resté scotché. Savoir de quoi seront fait nos outils de demain est fascinant.
Merci à l’Afpy d’avoir organisé ses conférences gratuites qui titillent notre curiosité et nous font découvrir beaucoup d’aspects différents autour du langage.
18 mai 2008 3 commentaires — conférence, événement, Gmaps, javascript, rails, RailsCampParis, ruby

Les petites conférences de RailsCampParis sont terminées. Première fois que j’assistais à des conférences de type BarCamp et j’ai adoré à la fois l’ambiance, l’ouverture et la proximité des intervenants. Bref compte-rendu des conférences auxquelles j’ai pu assister.
Sébastien Gruhier nous a donné une excellente démonstration d’intégration de Google Maps dans une application Rails d’exemple. Les cartes s’intègrent extrêmement facilement avec un peu de JavaScript (alors qu’à Paris On Rails 2006, Sébastien nous ventait les mérites de RJS ! ;)) et grâce au plugin geokit. Ce dernier est impressionnant, une fois ajouté acts_as_mappable à un modèle, il permet d’excellentes manipulations, tel que :
origin = MultiGeocoder.geocode('8 rue Boucry, Paris, France')
User.find :all, :origin => origin, :order => 'distance'
Ceci retourne la liste des utilisateurs triés par distance par rapport à chez moi. La requête SQL générée automatiquement a une fière allure :
SELECT *, (ACOS(least(1,COS(0.853356449908079)*COS(0.0412320771281345)
*COS(RADIANS(users.lat))*COS(RADIANS(users.lng))+COS(0.853356449908079)
*SIN(0.0412320771281345)*COS(RADIANS(users.lat))*SIN(RADIANS(users.lng))
+SIN(0.853356449908079)*SIN(RADIANS(users.lat))))*3963.19)
AS distance FROM `users` ORDER BY distance
Pour continuer sur le JavaScript, Samuel Lebeau nous a parlé d’event delegation et des façons qui se développent en ce moment pour créer une syntaxe proche de CSS qui permettrait d’appliquer des comportements JavaScript. Les prototype-fruits sont à suivre…

Moi et mes tags
C’est ensuite à Stéphane Akkaoui de nous expliquer comment créer une application Facebook avec Rails. Je ne m’attendais pas à ce que cela soit aussi simple ! Du coup j’ai très envie de faire une petite application Facebook en utilisant le plugin Facebooker… même si Facebook c’est le mal.
La conférence de Jordan Bracco sur Mongrel vs Thin vs Ebb vs FastCGI était intéressante malgré le fait qu’un souci de MacBook lui ait fait perdre toutes ses slides. Tout ça à cause d’un Dark Vador avec un sombrero ;). De bonnes questions et un sujet qui bouge beaucoup. Pour preuve, c’est le tout récent Ebb qui sort grand vainqueur du benchmark fait pour l’occasion.
J’ai beaucoup apprécié toutes ces conférences à taille humaine et je regrette d’avoir dû choisir entre plusieurs conférences tant les sujets étaient intéressants. Merci aux organisateurs, aux sponsors, aux bonbons, aux boissons, aux pizzas, à la Cantine, aux conférenciers et à tous ceux avec qui j’ai pu échanger quelques mots lors de cette journée.
Grand merci (en retard) à l’association Ruby France ! Vivement RailsCamp 2009.
27 avril 2008 6 commentaires — plugin, subversion, svn, wordpress
J’ai crée une extension WordPress pour mettre à jour un blog à la dernière version de WordPress en un clic. Pour cela le blog doit préalablement avoir été installé via une installation SVN de WordPress.
Sachant que les mises à jour de WordPress tombent environ une fois par mois, vous pensez-bien qu’un fainéant comme moi préfère se mettre à jour en un seul clic :).
☛ Mon plugin WordPress SVN Update (en anglais)
23 avril 2008 4 commentaires — ajax, css, javascript, prototype, ui

L’interface utilisateur passe aussi par la forme du curseur. Peu utilisée en CSS, la propriété cursor regorge pourtant de valeurs dont on peut se servir pour aider l’utilisateur dans une application web (wait progress help default pointer text vertical-text crosshair move -moz-grab -moz-grabbing -moz-copy -moz-alias -moz-zoom-in -moz-zoom-out -moz-cell -moz-context-menu not-allowed no-drop nw-resize n-resize se-resize sw-resize s-resize e-resize w-resize ne-resize col-resize row-resize).
Par exemple, pour indiquer qu’un chargement a lieu via Ajax, plutôt que d’afficher une image de loader animée, un style CSS peu suffire :
.loading, .loading a, .loading input, .loading textarea {
cursor: progress;
}
Ne reste plus qu’à appliquer la classe loading au body dès que la page fait un appel Ajax ou un long traitement.
Si vous utilisez Prototype ajoutez ces quelques lignes pour que la classe soit appliquée automatiquement tant qu’un appel Ajax a lieu :
Ajax.Responders.register({
onCreate: function() {
$$('body').first().addClassName('loading');
},
onComplete: function() {
if (Ajax.activeRequestCount == 0)
$$('body').first().removeClassName('loading');
}
});
22 avril 2008 52 commentaires — ruby, twitter, wii
Découvrez les codes Mario Kart Wii de vos amis avec MarioKarTwiit, un script ruby qui trouve ces codes parmis les statuts twitter de vos amis.

$ ruby mariokartwiit.rb adylk François: 4983-5212-7826 michel v: 2921-9252-8735 Franck: 2750-1224-1651 samy: 1633-4308-3338 Romain: 1118-0396-8885 Julie: 1203-9499-7733 nicolas: 4639-9111-3636 Sunny: 0602-6527-5194 Frantz: 1075-0913-1660
Pour l’installer téléchargez-le et faites en sorte d’avoir ruby, rubygems et sudo gem install json.
20 avril 2008 2 commentaires — bug, hardware, ubuntu, usb

Pour une fois que c’est pas lui…
Sous Ubuntu mon clavier a soudainement eu un comportement étrange et extrêmement irritant. Il y avait un délai entre certaines touches et d’autres touches se multipliaient, comme le titre le laisse entendre.
En cherchant des solutions sur la toile (pas simple quand la touche de suppression aussi se multiplie !), quelqu’un préconisait de jeter un coup d’œil à /var/log/messages, où, effectivement, s’amoncelaient des messages usb 4-1: reset low speed USB device using uhci_hcd and address 4.
La solution ? Débrancher et rebrancher ma souris USB. Logique. Et pour régler le problème définitivement, webs suggère de la brancher sur une autre machine avant de la rebrancher. Logique.
18 avril 2008 3 commentaires — accessibilité, handicap, standards, web sémantique
J’ai assisté aux petites conférences du WaSP café qui ont eu lieu hier sur Paris. Malheureusement l’atelier web sémantique animé par David Larlet et Frédéric de Villamil affichait complet quelques heures à peine après l’ouverture des inscriptions. Entre dompter vos CSS et l’accessibilité du point de vue des utilisateurs j’ai opté pour ce dernier atelier où Tanguy Loheac et Fernando Pinto Da Silva, tous deux malvoyants, partageaient leur expérience sur le web en tant qu’utilisateurs.
Finalement, je suis ravi d’avoir pu assister à cet atelier. Ce que j’aurais appris à l’atelier Web Sémantique peut se retrouver facilement sur le net mais rencontrer des personnes mal voyantes et pouvoir écouter leur témoignages, comprendre leurs difficultés de tous les jours (ooshop, voyages-sncf, fnac, …) est rare et très enrichissant.
À ce propos Julie a promis qu’elle ferait un billet sur cet atelier, il ne devrait plus tarder à arriver.
Merci aux organisateurs du WaSP Café ! Comptez-moi présent au prochains ateliers.
10 avril 2008 — css, dates, standards, web

Le CSS Naked Day est une idée rigolote, que j’ai mis en place avec entrain sur mon blog. Elle consiste à ce que tout le monde désactive ses feuilles de style à une date donnée pour promouvoir les standards du Web.
C’est pourquoi le 5 avril mon blog désactivait ses styles en affichant un petit message et un lien vers le site officiel. Tout était automatique pour ne pas avoir à modifier l’apparence de mon site à minuit, en utilisant un morceau de code PHP qu’ils proposent eux-même sur le site officiel.
Manque de pot ils ont décidé de changer la date ! Cette année le jour du CSS tout nu tombe le 9 avril, alors que les deux années précédentes la date était fixée au 5. Évidemment cela casse les très nombreux plugins ou scripts qui ont été crées pour l’événement, comme ce que j’utilisais sur mon blog.
D’après le site officiel la date est désormais fixée au premier Mardi, Mercredi ou Jeudi d’avril qui ne soit pas le 1er avril. Oui. C’est carrément nul.
J’arrète donc de promouvoir cet événement jusqu’à ce qu’ils ne remettent une date fixe. Ou au moins quelquechose de calculable. Comme le premier mardi d’avril à part le 1er, au moins je pourrais le calculer facilement et ne pas avoir à éditer le code de mon site chaque année…
7 avril 2008 4 commentaires — hardware, microsoft, music, usb
Si vous comptez acheter un lecteur mp3 en USB sachez qu’il existe deux protocoles de transfert différents lorsque vous voudrez le brancher à votre ordinateur : UMS ou MTP.

Photo de Marcelo Alves
Ce protocole est aussi appellé MSP, « le normal » ou encore « le sain ». C’est celui qui opère lorsque vous branchez n’importe quel disque dur USB : sous GNU/Linux, Mac ou Windows vous utilisez l’explorateur de fichiers de tous les jours pour ajouter de la musique.
Ce protocole ne permet pas d’utiliser son lecteur comme un disque. Au lieu d’utiliser le navigateur de fichiers vous devrez donc utiliser une application de gestion de musique parmis un nombre très limité d’applications qui supportent ce protocole. Vous ne pourrez mettre sur votre baladeur que de la musique ou de la vidéo. Il n’apporte concrètement rien d’autre.
| UMS | MTP | |
|---|---|---|
| Types de fichiers supportés | tous | médias seulement (audio, vidéo, …) |
| S’accède par un explorateur de fichiers | oui | non |
| A un point de montage | oui | non |
| Programmes qui le supporte | tous | le programme généralement fourni avec et quelques autres applications |
| Nécessite qu’une application tourne constemment en fond | non | oui |
| Créateurs | une association à but non lucratif de nombreux fabricants1 | Microsoft2 |
Étonnemment, de plus en plus de baladeurs choisissent le protocole MTP. Ces derniers sont généralement fournis avec un lecteur audio qui ne fonctionnera que sous Windows, sensé remplacer tous nos besoins en lecture de musique et transferts avec l’appareil.
1 The USB Implementers Forum
2 On aurait pu s’en douter ?
À partir d’aujourd’hui je blogue assidûment.
2 30 mars 2008 — blog, cms, svn, worpress

Oh qu’il est beau !
WordPress vient de passer à sa version 2.5 avec moults changements mais une mise à jour sans le moindre heurt avec tous les plugins que j’utilise qui fonctionnent encore.
Mon blogware favori depuis des années n’a pas fini de m’étonner.
Pour se mettre à jour sur une installation svn, rien de plus simple, taper dans le dossier de votre installation de WordPress :
$ svn switch http://svn.automattic.com/wordpress/branches/2.5/
Puis visitez sur votre site /wordpress/wp-admin/upgrade.php et appréciez la nouvelle version.
Si vous avez ajouté le français en externals sur votre installation SVN, vous aurez déjà la dernière version de la fabuleuse traduction en français. Sinon :
$ cd wp-includes/languages $ rm fr_FR.mo $ wget http://svn.automattic.com/wordpress-i18n/fr_FR/tags/2.5/messages/fr_FR.mo
17 février 2008 — cvs, english, git, linux, scm, svn, textmate
Whilst Git was created by Linus for managing the Linux project, I get the feeling that Git’s raison d’être was to manage TextMate bundles. Weird since Linus probably doesn’t use TextMate. « Using Git within a project »
Github is fun :)
25 janvier 2008 2 commentaires — ego, vélo

Momentum #30
Momentum: The magazine for self-propelled people est un magazine papier gratuit canadien sur la culture vélo. Je les ai découverts lorsqu’ils m’ont gentiement demandé la permission d’utiliser une de mes photos.
Leurs articles étant également disponibles sur leur site web, j’y découvre toute une chouette communauté autour du vélo et de très bons articles.
Par exemple, København Cycle Chic fait découvrir les jolies danoises qui tous les jours font du vélo en talons, dans leurs plus beaux habits. Ou plus anecdotique How Recumbents Were Banned from Racing explique pourquoi on n’utilise pas tous des vélos couchés aujourd’hui.
Enfin, Everybody Wants a Bike Share du numéro 31 de Momentum parle du Vélib et est illustré d’une jolie photo de moi en polo Ubuntu, prise par Audrey :).
Le magazine se ramasse gratuitement dans quelques villes dans le monde, mais malheureusement pas à Paris. Merci à eux de m’avoir envoyé une copie du dernier numéro !
23 janvier 2008 4 commentaires — futur, ie, standards, standards du web

Internet Explorer aura un système pour activer leur nouveau modèle de rendu dans sa version 8 sans pour autant que les sites précédents ne cessent d’être aussi « jolis » dessus. Il s’agit d’utiliser une balise meta qui contient la version d’IE que l’on souhaite cibler. Pour IE8 par exemple :
<meta http-equiv="X-UA-Compatible" content="IE=8" />
C’est une sorte de contrat. En utilisant cette balise on s’assure qu’IE9, IE10 et IE42 l’afficheront de la même façon qu’IE8. Un Doctype Switching sur le long terme. Et les oiseaux chantent.
Mais voilà. Ce serait une bonne idée si seulement ce n’était pas une très mauvaise idée. Toutes les pages écrites hier en suivant les standards du web seront pour l’éternité affichée dans le moteur de rendu par défaut. Celui d’IE7. Gulp. Et IE devra se trimballer son moteur de rendu d’IE7 pour l’éternité également. Ce qui implique un beau bordel pour le logiciel lui-même et sa sécurité.
Cette solution qui paraissait simple se complique encore lorsque l’on évoque le cas des fragments d’html, des pages MySpace, des aggrégateurs. Que se passe-t-il également lorsque des pages qui ciblent des versions différentes ou discutent entre elles dans des iframes aux niveaux différents de DOM ? Et devra-t-on suivre pour chaque chaque page la version de tous les navigateurs du marché dans laquelle elles fonctionnent ?
Le versionnement des fichiers en général n’est pas aussi simple. La meilleure solution à ce problème appliquée à Internet est encore le progressive enhancement : implémenter des fonctionnalités nouvelles en cassant le moins possible l’existant et accepter que quelques pages ne seront plus parfaitement égales au pixel près.
L’image du verrou provient de la libraire Tango et l’icône d’Internet Explorer est celle de Sam Ruby. Vous pouvez télécharger la source SVG.
est un développeur web vivant à Paris — Contact — Archives
Textes et contenus sous licence Creative Commons.