Le journal de Sunny Ripert
Derniers articles de mon blog
Il y a 1 semaine en début d'après-midi, 3 commentaires.




Une preuve de plus que le XML c’est moche et verbeux.
Il y a 1 mois, 2 semaines en fin de soirée, 5 commentaires.
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 :
Et si vous allez à une séance, surtout prévenez moi. (Via Mixin, par exemple !)
Il y a 2 mois de bonne matinée, 4 commentaires.
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]](http://sunfox.org/blog/wp-content/uploads/2008/06/image-1-277x300.png)
![Plaxo FTW [Capture d'écran de la popup de Plaxo, demande du mot de passe de Gmail]](http://sunfox.org/blog/wp-content/uploads/2008/06/image-2-277x300.png)
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]](http://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]](http://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.
Il y a 3 mois de bonne matinée, 5 commentaires.
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
Il y a 3 mois, 1 semaine le soir, 5 commentaires.
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.
Il y a 3 mois, 1 semaine terriblement tôt le matin, 2 commentaires.

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.
Il y a 4 mois le soir, 6 commentaires.
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)
Il y a 4 mois en fin de matinée, 4 commentaires.

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');
}
});
Il y a 4 mois, 1 semaine terriblement tôt le matin, 10 commentaires.
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.
Il y a 4 mois, 1 semaine à l'heure du goûter, 2 commentaires.

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.
Textes et contenus sous licence Creative Commons.
Site crée par mes soins et propulsé par WordPress. Questions, informations ? Contactez-moi.