Blog them all

Fabien Penso’s blog

Archive for June, 2006

Tribune Libre: RIP

leave a comment

J’avais lançé il y a quelques années (juillet 2003) “tribunelibre”:http://tribunelibre.org/,
le site dont vous êtes (étiez?) le héros. Je n’ai jamais été sûr que le système
fonctionnerait, d’ailleurs il n’avait pas été fait pour ça. L’idée était de
voir si un site auto-moderé à la “kuroshin”:http://www.kuro5hin.org avait un
avenir. Il faut être franc, le site avait été fait en quelques jours, et il
manquait beaucoup de choses pour qu’il soit perenne. Le temps que j’ai
consacré à “LinuxFr”:http://linuxfr.org/ est enorme en comparaison à celui
investi dans “tribune libre”:http://tribunelibre.org/ (au début j’y passais
plusieurs heures par jour). Et oui il faut se rendre à l’évidence mais on le
savait déjà, rien ne sert d’avoir une technologie, il faut surtout avoir du
contenu. Et personne ne pleurera sur “tribune libre”:http://tribunelibre.org/ au
vu du nombre de hits qu’on avait :-)

Le site a été développé en “templeet”:http://templeet.org/, language que
j’avais co-développé avec Pascal Courtois et qui est utilisé aussi pour
“LinuxFr”:http://linuxfr.org/.

J’ai la tristesse de vous annoncer que je vais fermer le site tel qu’il était
(à quoi sert de faire survivre quelque chose qui ne fonctionne pas dans son
etat actuel), pour le mettre de côté (oui, je garde évidemment le domaine).
Maintenant là où vous pouvez faire quelque chose, c’est en proposant des idées
pour un site dont le domaine est tel. Qu’attenderiez-vous d’un site?

Des idées en vrac:

  • Un site de publication de contenu orienté plus web 2.0, qui vous laisse une
    liberté d’expression mais où le cheminement pour être publié est plus
    simple? Il faut avouer que celui de tribunelibre était un peu compliqué.

  • Un site qui rassemble des publications trouvées grace à des fichiers RSS. En
    effet tout le monde a un site web et personne ne souhaite dupliquer ses
    proses sur des sites multiples qu’il ne maitrise pas (excepté pour
    rapporter du traffic). Je pense à quelque chose du type de
    “digg”:http://www.digg.com/ mais ou un moteur irait chercher tout seul le
    contenu.

  • Un système simple qui permette de publier sur n’importe quel site une
    petite tribune libre telle que celle que j’avais créée sur
    “LinuxFr”:http://linuxfr.org/ avec l’aide d’un bout de code javascript ou
    d’une iframe.

  • autres à définir.

Une page se tourne, la prochaine est blanche. Tout conseil est le bienvenue.

Written by Fabien Penso

June 28th, 2006 at 7:43 pm

World Press Photo: exposition dans le marais

leave a comment

!http://www.worldpressphoto.nl/images/photocache/photos/2006/World%20Press%20Photo%20of%20the%20Year/PN-2_745x345x90.jpg!

Comme tous les ans depuis 3 ans (peut-être 4) les photos du fameux concours du
“World Press Photo”:http://www.worldpressphoto.nl/ sont affichées à la galerie
Azzedine Alaïa, 18 rue de la Verrerie, 75004 Paris, France. Le lieu est magique
et met les photos en valeur, les photos sont comme toujours incroyables, et rendent justice à la galerie.

L’exposition termine le 30 juin, et il serait dommage de passer à côté. Vous pouvez voir les photos en ligne “par ici”:http://www.thepressphotographersyear.com/competition/results/.
A noter que toutes ne sont pas exposées.

Written by Fabien Penso

June 26th, 2006 at 5:22 pm

Rails, sans rails!

leave a comment

Alors voilà, vous avez un site développé sous “rails”:http://www.rubyonrails.org/ et vous avez besoin d’exécuter des scripts régulièrement. Vous avez donc besoin de vous connecter à la base de donnée, d’utiliser des modèles, etc. Voilà qui va vous changer la vie, la possibilité de faire ça plus rapidement (des bouts de code ont été pris sur usenet). L’exemple est dans le cas ou vous avez un modèle appelé “Zone”.

En gros, vous voilà à utiliser activerecord, sans rails.

#!/usr/bin/ruby
# Fabien Penso

# Debut des scripts pour ecrire les fichiers de configurations

dir = File.dirname __FILE__
# Put the root of the RAILS directory
railsroot = '../uucpssh-1.0'
# Set the mode (development / production)
databasemode = "development"

# We need activerecord
require 'rubygems'
require_gem 'activerecord'

# Load files from the models
$:.insert(0,"#{dir}")
$:.insert(0,"#{dir}/#{railsroot}/app/models/")
$:.insert(0,"#{dir}/#{railsroot}/app/helpers/")

# Read database config via YAML
@dbs = YAML::load(ERB.new(IO.read(railsroot+'/config/database.yml')).result)

curr_db = @dbs[databasemode]

# these parameters are mysql-specific, figure out how to improve
ActiveRecord::Base.establish_connection(:adapter => curr_db["adapter"],
:database => curr_db["database"],
:host => curr_db["host"],
:username => curr_db["username"],
:password => curr_db["password"])

Zone.find(:all).each do |zone|
 puts zone
end

Written by Fabien Penso

June 24th, 2006 at 4:08 pm

Posted in activerecord,rails

la télévision Française, du gros piston et du copinage

leave a comment

Edifiant. Hier soir à 1:00 du matin, une heure à laquelle j’aurais dû dormir depuis bien longtemps, j’ai allumé la télévision et regardé sur TF1. Les coulisses de l’économie, émission sur laquelle je tombe parfois et que je n’ai toujours que regardé d’un oeil (l’autre est sur l’écran de l’ordinateur en général, ou déjà en train de dormir).

Une collègue de Mr Sylvestre, à qui il fait de la drague ouverte et des courbettes, propose un reportage sur une entreprise innovante qui fait du micro crédit (ça existe depuis des années), un autre sur des petits copains de sa petite école de commerce (et le présentateur ne l’a pas caché) qui forment des Indiens au métier de la boulangerie, en espèrant revendre ensuite aux grands hotels (ou une nuit coûte autant que 6 mois de travail de l’Indien qui aura fait les croissants).

Ensuite une véritable entreprise innovante (ne partez pas, c’est ironique) : video forever (le nom de la société est Devotis). L’idée est de passer du super8 en DVD mais pour la première fois, au lieu de faire comme ils font à la FNAC c’est à dire filmer en numérique une projection sur un mur du dit super8, ils numérisent chaque image indépendemment. Evidemment la qualité est bien meilleure. Innovant ? Pas vraiment… Mes amis de “Family Movie”:http://www.familymovie.fr/ font ça depuis déjà de nombreux mois (année?), avec une relation client de proximité. En résumé, on apprécie d’être venu. D’autres sociétés doivent fournir ce service, question innovation on repassera. Pourquoi alors être passé sur TF1? Je suppose que les écoles effectuées par les fondateurs de video forever ont dû aider. C’est ça la France et la télévision Française, du gros piston et du copinage.

Le plus fort c’est pendant l’émission, quand la caméra passe sur le ministre Mr Borlo, et qu’il acquiesce en souriant, sans le dire explicitement, que le fait que venir d’une grande école, ça aide… (pour passer dans l’émission, sous-entendu).

Tout ça fait penser à la “promotion canapé”:http://www.24heures.ch/vqhome/archives2006/juin06/emmanuelet_scandales.edition=ls.html de la RAI : “Accusé avec le prince d’Italie de faire partie d’un réseau de corruption, un ancien porte-parole du Ministère des affaires étrangères aurait favorisé les apparitions de jeunes femmes sur la RAI en échange de faveurs sexuelles.”

NB: Je ne suis pas dupe, et je sais bien que le réseau est important pour une carrière professionnelle, c’est d’ailleurs une des raisons de certaines grande écoles, se faire des copains là où il faut. Enfin quand c’est si explicitement revendiqué, ça me donne envie de vomir.

Written by Fabien Penso

June 23rd, 2006 at 11:53 pm

Objectif Nikon en vente – dépechez-vous!

leave a comment

Je me suis décidé à vendre 2 objectifs Nikon que je n’utilise guère. Un 20mm et un 35mm AFD, quasi neuf et d’une superbe qualité optique.

Pour les intéressés, voilà “ma page ebay”:http://search.ebay.fr/_W0QQsassZfabienpensoQQhtZ-1. Prix de départ 1E, battez-vous ;)

mise à jour: c’est vendu :)

Written by Fabien Penso

June 14th, 2006 at 8:25 pm

Point de vue sur l’état de la VoIP en France

leave a comment

La “VoIP”:http://fr.wikipedia.org/wiki/Voip en France, tout le monde connait, tout le monde en parle, mais personne ne fait ça comme il faut ; je m’explique.

A la fin de mon année de master spécialisée en architecture logicielle, j’ai eu l’opportunité d’effectuer un stage de 4 mois chez “Wengo”:http://www.wengo.fr/. J’ai eu l’occasion de travailler autour d’une “modélisation idéale”:http://penso.info/code/wengofr d’un outil de téléphonie sur IP, et de m’intéresser de loin à ce sujet. Pendant cette periode, j’ai réfléchis à la manière d‘“effectuer des appels”:http://penso.info/tmp/DESS/softphone-csharp/diagrams/Model/Base/SQmakeCallpatterns.gif et à toutes les fonctionnalités que vous voudriez avoir sur un tel logiciel, dans les limites du temps qui m’était donné. Ne cherchez pas mon nom pas les crédits donnés aux développeurs Wengo, je n’y suis pas (je suis juste un peu “par la”:http://dev.openwengo.com/trac/openwengo/trac.cgi/browser/old/wengophone-csharp).

Après un court séjour en Inde, j’ai proposé à Wengo de travailler pour eux et de continuer cette modélisation et mon travail général d’architecture logicielle pour eux. Nous étions d’accord sur les points qui ne convenaient actuellement pas chez eux, mais j’ai reçu une réponse négative à ma proposition. Passons…

Les acteurs actuels de la VoIP en France sont :

  • “Ekiga”:http://www.ekiga.org/ (bon c’est Belge, mais on n’en veut pas à “Damien”:http://blog.gnomemeeting.net/index.php?cat=7 ;) .
  • Wengo
  • Free, par l’intermédiaire de leur Freebox
  • Neuf Telecom, dont Wengo fait parti, avec leur NeufBox
  • les autres prestataires (club-internet), Wanadoo, etc.
  • Skype. C’est le leader mondial incontesté, il n’est pas Français, mais j’imagine que c’est en France aussi le logiciel le plus utilisé (moi même je l’utilise, sous le pseudo fabienpenso, et j’y ai même acheté des minutes).
  • D’autres logiciels propriétaires qu’il n’est pas nécessaire de mentionner.

Dissocions tout de suite les prestataires qui fournissent un logiciel (Skype, Ekiga, Wengo) de ceux qui facilitent l’accès aux non informaticiens par l’intermédiaire d’une boite (free, club-internet, wanadoo). Seuls les premiers m’intéressent dans cet article.

La VoIP devient aussi important que le web, le mail, le transfert de fichiers (P2P, FTP, système web). Qu’attendez-vous d’un logiciel qui permet de transmettre votre vie privée et tant d’autres informations confidentielles? Personnellement j’attends :

  • Un logiciel libre, que tout le monde puisse vérifier. Plus que libre, j’attends un logiciel libre qui permettent à la communauté de participer avec de la documentation en ligne, un code clair et propre, l’utilisation de design patterns, l’utilisation d’un language objet haut niveau, la facilité de pouvoir le compiler sous plusieurs systèmes d’exploitations, une séparation type MVC. Combien de logiciels libres sont inmaintenables, de par leur architecture.
    Je note que ce critère est très important pour les laboratoires informatiques français (Le haut secrétariat de la défense a interdit l’usage de Skype pour les chercheurs, mais les chercheurs ont changé d’avis en indiquant que ce n’était à appliquer que pour les communications importantes). Comment peut-on imaginer que ces laboratoires puissent communiquer entre eux ou avec leurs collaborateurs à l’aide de logiciels propriétaires, dont il est impossible de vérifier qu’ils sont sûrs, ou qu’ils n’effectuent pas d’écoutes illégales.

  • La possibilité de chiffrer mes communications. Les sociétés Françaises seront bien emmerdés, il est probable qu’ils subiront des pressions du gouvernement pour laisser la possibilité d’activer des écoutes entre des interlocuteurs. Et alors? Proposez un plugin de chiffrage aux utilisateurs qu’ils peuvent activer ou non. Quelque chose de “ce type”:http://www.philzimmermann.com/EN/zfone/ par exemple.

  • Evidemment, l’utilisation de protocols libres (jabber ou SIP, mais SIP a une préférence sauf pour Google et leur GTalk).

  • Une autre fonctionnalité plus général et qui ne s’applique par qu’à la VoIP. LA SIMPLICITE, et que CA MARCHE. Skype a très bien réussi dans le domaine, les autres, n’en parlons pas.

Et bien dans la liste des acteurs Français, aucun ne remplit ces critères. Le plus étonnant c’est qu’il est probable que si l’un d’eux remplissait ces critères, ils pourraient avoir des financements publiques, et l’aide de laboratoires tels l’INRIA qui a déjà, en interne, demandé à quelques personnes de regarder le protocole Skype de plus près (ça montre bien qu’ils s’intéressent au sujet). Les acteurs qui se lanceront dans le domaine seront:

  • Des sociétés dont l’unique but est de faire de l’argent, et dont ceux qui tiendront les manettes n’auront que faire que le logiciels soient développé correctement, dans les règles de l’art, remplis de tests unitaires, fonctionnels, de design patterns, de systèmes de plugin, avec une interface correcte et intuitive.

  • Des indépendants, des développeurs, ou de petites sociétés (Ekiga?) qui ont envie de faire les choses correctement, mais qui n’ont pas les financements pour attirer des développeurs seniors, et pour investir le matériel requis (serveurs SIP, bande passante, etc).

Je suis pessimiste, et nous verrons bien l’état de la VoIP en France dans quelques années, mais pour l’instant à part pour les fournisseurs (freebox), et malgré les apparences, il va plutôt mal.

Written by Fabien Penso

June 11th, 2006 at 4:18 pm

Le dimanche, c’est repos

leave a comment

Quelques sites photographiques à visiter:

  • “Le collectif SIC”:http://www.collectifsic.com/ et “le blog”:http://francois-cs.blogspot.com/ de l’un de ses membres ;
  • La photographe “Heidi Good”:http://www.heidigood.com/, d’incroyables portraits ;
  • La page “digitalrailroad”:http://www.digitalrailroad.net/bruno/ de Bruno Stevens, avec deux reportages récents faits en Angola, sur le choléra ainsi que la tuberculose. Hasselblad et Tri-x au rendez-vous ;
  • “un autre”:http://www.lagaraje.com/ pour la route.

Le soir, quand mon emploi du temps le permet, j’aide un peu “Shinji”:http://kuwayama.com/ à améliorer la rapidité de “lightstalkers”:http://www.lightstalkers.org/. Du “rails”:http://www.rubyonrails/, évidemment. Les erreurs que je peux y voir et que vous pourriez être intéressés de ne pas reproduire lors de vos propres développements :

La révision, c’est bon. L’utilisation d’outils de gestion de révisions tels que CVS ou “Subversion”:http://subversion.tigris.org/ (préférez Subversion) est primordiale. Sans cela, pas de développements à plusieurs, pas d’historique, pas de possibilité de backuper votre travail facilement. Bref, sans ça, ne commencez même pas à développer, même pour un projet à une personne.

La gestion de tickets: “trac”:http://www.edgewall.com/trac/, le 2ème outil à mettre en place. Il vous permettra de noter les bugs, fonctionnalités à développer ultérieurement, et de concentrer tout ça sur une seule page. Vous pourrez de plus naviguer dans les sources, controler les derniers travaux effectués sur le projet (timeline), gérer votre TODO list. Le matin en arrivant à votre bureau (ou en vous déplaçant du lit à l’ordinateur), il vous suffit d’aller voir les fonctionnalités à rajouter, en les listant par ordre de priorité. Tous les acteurs du projets pourront faire de même.

Attention à votre code source, n’utilisez que tabulations ou espaces, pas les deux. La consistance dans vos sources et quelques commentaires bien placés faciliteront grandement le travail de vos collegues (futurs ou actuels).

Plus spécifiquement rails. D’abord l’utilisation de find(), ensuite et seulement ensuite, pour des raison d’optimisation, l’usage de find_by_sql(). Pas l’inverse.

Pas de code dans les fichiers views/, comme l’indique le pattern MVC. Pas de @comments = Comment.find() dans les vues, jamais. Les vues se contentent de l’affichage.

La première chose à vérifier quand vous développez votre site, le nombre de requêtes SQL dans le fichier de log (log/development.log) et l’utilisation pour celles-ci de clé (DESC SELECT … dans la console mysql). L’usage de :includes => [] dans le code rails est souvent requis. Conseil: il est souvent plus rapide d’avoir 2 requetes SQL plus simples, qu’une seule très compliquée avec beaucoup de :includes.

L’utilisation massive de caches, et particulièrement pour la page principale du site (caches_page). L’affichage d’information personnelle pourra toujours se faire en javascript directement, ou en Ajax. Qui n’apprécie pas un site qui se charge instantanément, plutôt qu’un autre ou il faut, pour chaque page, attendre 2 secondes?

Un petit rappel: j’effectue toujours des conseils autour de développements logiciels (web ou non). Ce que mes clients devraient attendre de leurs prestataires :

  • Un accès permanent et complet au code source en développement ;
  • Un accès permanent au site en cours de développement, pour vérifier au quotidien l’avancement du projet ;
  • Un accès à une interface de gestion de ticket, pour remonter le plus rapidement possible les mauvaises surprises ;
  • De manière générale, une relation étroite entre vous, et nous.

Et ça tombe bien, vous aurez tout ça ici.

Written by Fabien Penso

June 11th, 2006 at 3:18 pm

FabienPenso.com: l’image du jour

leave a comment

Voilà terminé une version Ajaxifiée de “fabienpenso.com”:http://fabienpenso.com. Dehors Flash, bienvenue HTML (et ça m’a pris moins de temps que Flash). C’est quoi ce site ? C’est une photo par jour (pas tous les jours), pas forcément pris le jour même (sinon faut se dépêcher de la prendre puis de courir la mettre en ligne … :) Le site est évidemment fait sous “rails”:http://www.rubyonrails.org/ mais ça change pas grand chose étant donné la simplicité du bouzin.

Written by Fabien Penso

June 5th, 2006 at 11:54 am

Mise à jour

leave a comment

C’est décidé, “mon site web”:http://penso.info/ s’est refait une beauté. Plus simple, plus vide.

Ce site a aussi refait une beauté, passage en typo current.

Written by Fabien Penso

June 3rd, 2006 at 1:12 am

Posted in Uncategorized

Entretien Google

leave a comment

Pendant mon séjour récent en Inde, j’ai reçu de 2 personnes différentes une proposition de “Google”:http://www.google.com/ (un nom à consonnance Indienne, un autre à priori des Etat-Unis). Evidemment tous mes amis les avaient déjà reçus (et moi aussi il y a quelques mois), et même parfois en plusieurs exemplaires. Néanmoins je me suis décidé, j’y ai répondu (par mail).

Je réponds par mail, et on convient d’un rendez-vous téléphonique pendant lequel on me posera quelques questions. Le jour J arrive (le lendemain je crois) quand mon téléphone sonne (une heure plus tôt, enfin les décalages horaires avec la France, on sait jamais d’avance).

Les fameuses 3 questions qu’on vous posera sûrement (ou un truc dans le genre):

  • What is the 3 types of variables in Perl ?
  • What is the normal speed of Quicksort, and the slowest ?
  • What is the power of 2 closer than 2 billions.

Les questions sont simples, mais n’étant pas de bonne humeur, je n’y ai répondu à chaque fois qu’à moitié. La première “array and hashes, but I forgot the 3rd one. Perl isn’t a typed language, so integer and strings is the same, but I forgot its name” (oui, c’est les scalaires, je fais du Perl depuis 10 ans…). La seconde “log(n) but I don’t remember the slowest, I got my C book next to me and I could take a look if needed”, et la dernière “hmm, more than 20, but I don’t know” (oui, c’est 31 et j’aurais pu taper en 4secondes un ‘bc -l’ sur mon terminal, mais j’avais pas envie).

Bref, un message quelques jours plus tard me confirme qu’ils n’ont pas de positions pour moi. Je crois que j’aurais pu faire un effort pendant l’entretien :-) (Notez que il s’est très bien passé, on a papoté un moment).

Written by Fabien Penso

June 1st, 2006 at 7:12 pm