Archive for the ‘Informatique’ Category

Le wecena sur Planète Terra : qui sera le premier mécène ?

Tuesday, May 12th, 2009

Planète Terra, c’est le site Web d’actualité du développement durable, petit frère du magazine Terra Economica. Planète Terra consacre un article à Wecena dans le cadre de sa présentation des projets soutenus par l’incubateur social Antropia (ESSEC/Caisse d’Epargne).

J’en profite pour rebondir sur la fin de l’article :

Mais aucune SSII n’a encore signé avec Wecena. Les circuits de décision sont longs. “Je les travaille au corps” assure Jean Millerat.

En effet, ça fait bientôt 2 ans que je me consacre à temps plein à ce projet. Environ 9 mois pour amorcer le dispositif, identifier les premiers projets associatifs et atteindre les premiers contacts sérieux avec des directions de moyennes et grosses SSII. Puis 1 an de travail avec ces directions pour les préparer à franchir le pas. Faut-il s’étonner qu’aucune SSII n’ait encore signé ?

Je vous avoue que, moi aussi, je commence à trouver le temps long… Après tout, il faudra bien que, d’une manière ou d’une autre, je nourisse ma famille nombreuse lorsque j’aurai épuisé mon financement actuel ! A force de croiser les doigts pour un démarrage “dans les semaines qui viennent”, je me demande si je ne vais pas me faire des noeuds et avoir quelques difficultés pour taper au clavier.

D’un côté, il y a des raisons de douter du succès et je vais partager avec vous 3 histoires de SSII qui hésitent et n’arrivent pas (encore) à passer à l’acte :

La 1ère SSII emploie quelques milliers de consultants. Après plusieurs mois de préparation avec la responsable communication et mécénat, nous arrivons en septembre 2008 et avons obtenu l’accord de principe des principales directions de la boîte : managers de business units, direction financière, direction développement durable du Groupe, direction RH… Le DG est bienveillant. On envisage une signature “pour octobre, novembre ou décembre, le temps de prendre le DG entre 4-zyeux pour lui demander son feu vert final”. Mais la crise éclate, un gros projet interne prend du retard et bloque les nouvelles initiatives, le DG se met à douter (ne devrait-on pas plutôt essayer de faire faire de la recherche à nos intercontrats pour obtenir du crédit d’impôts recherche ?)… Le projet de signature est repoussé aux calendes grecques alors que j’y avais cru pour fin 2008. Glurps.

Deuxième SSII, deuxième histoire, également quelques milliers de consultants. Le président est très intéressé et souhaite démarrer quelque chose. Il exprime sa préférence pour l’un des projets bénéficiaires. Mais attention, “ne dites pas à mes managers qu’il s’agit d’un petit projet pilote” cela risquerait de les démotiver. Un an plus tard et malgré RDV et échanges par email, la responsable mécénat n’a toujours pas eu le temps d’étudier de près “les aspects administratifs et financiers” du wecena et le projet semble dans les choux. Déception.

Troisième SSII, quelques centaines de consultants, un comité de direction super-dynamique et qui m’accueille dès les jours suivants notre prise de contact. Je leur envoie la liste des projets à soutenir mais ils n’ont pas assez de compétences “nouvelles technologies” actuellement en disponibilité. En effet, il y a peu de demandes pour de compétences AS/400 ou mainframe dans le monde de l’innovation sociale. Qu’à cela ne tienne, je leur trouve un projet ne nécessitant aucune compétence nouvelles technologies. Quand est-ce qu’on démarre ? Je relance une dizaine de fois. Ils ne semblent plus avoir de raisons d’hésiter mais… 3 mois plus tard et c’est toujours le silence radio (ou presque, cf. plus bas).

Alors, on peut se permettre de douter n’est-ce pas ?

Oui, mais… la première qualité de l’entrepreneur serait, paraît-il, la perséverance. En plus, dans l’économie de communion, on n’oublie pas que l’on n’est pas seul aux commandes de sa boîte : il y a beaucoup de soutien, de sympathie et d’amour porté à ce projet. Certains croient même que j’ai un associé invisible qui me porte sur ses épaules ! :)

Plus concrètement, j’ai de bonnes raison de rester optimiste :

La première SSII vient de reprendre contact avec moi et nous envisageons ensemble une nouvelle manière de fonctionner : si ils me donnent un très fort engagement de volume et de durée ne pourrais-je pas minorer mes marges de sécurité (me permettre d’embaucher avec moins de risque par exemple) et, du coup, proposer une offre encore plus attrayante pour les aider à franchir le pas ?

La responsable administrative et financière de la troisième SSII me l’a promis : son directeur général va me rappeler dans la semaine pour me dire si oui ou non ils sont partants.

Et puis, je gardais le meilleur pour la fin, il y a d’autres SSII en course :

  • suite à mon passage dans 01 Informatique et sur BFM Radio, le DG d’une SSII d’envergure mondiale me convoque avec son bras droit, demain après-midi, pour envisager un démarrage prochain,
  • plusieurs SSII de taille moyenne (quelques centaines de consultants) étudient encore mon offre et je dois les relancer,
  • surtout, une quatrième grosse SSII de plusieurs milliers de consultants, avec laquelle je suis en relation depuis un an, arrive au bout de son processus de décision : le comité exécutif a donné son feu vert, les représentants du personnel ont été consultés, le président a annoncé l’ouverture prochaine du wecena pour leurs intercontrats, nous peaufinons les conventions avec les associations bénéficiaires et préparons un joli PDF pour les managers de manière à leur rappeler tous les aspects du processus de gestion du volontariat automatisé via wecena.com ; la directrice communication prévoit une page spécial wecena dans son journal interne de mi-juillet 2009 en espérant pouvoir y mettre les témoignages des premiers volontaires !

Comme dirait ma moitié, tant qu’il n’y a pas un sous qui arrive en banque, on ne peut être sûr de rien. Mon papa, un peu plus optimiste (quoique aussi prudent) me demandait quand il pourrait sortir la bouteille de champagne. Je lui demande d’attendre l’arrivée effective du premier volontaire sur l’un des projets qui bénéficient du wecena. Alors, les paris sont ouverts, qui sera la première société à apparaître dans la catégorie “Mécènes” (à surveiller sur wecena.com!) et quand ? Un volontaire de la 4ème SSII dès mi-juin ? La 3ème SSII dès courant mai ? Une SSII mystère dès juillet-août ? Personne parce que la grippe de porcinet va tous nous tuer cet été ?

“SSII: 3 solutions pour réduire les intercontrats” (01 Informatique)

Friday, April 17th, 2009

01 Informatique fait sa Une, cette semaine, avec le wecena dans un dossier : “Trois pistes pour réduire les intercontrats dans les SSII“. Les 2 autres pistes sont le chômage partiel et le prêt de salariés à un partenaire qui en aurait besoin au sein d’un même pôle de compétitivité (pour les SSII qui en font partie).

La piste wecena a pour avantage de créer de la valeur en termes de motivation, de fidélisation, de sens donné à son métier et d’image d’entreprise citoyenne au plus fort de la crise. Et, surtout, le wecena contribue à résoudre des problèmes majeurs de notre société : accessibilité et handicap, accès au savoir et éducation, santé, lutte contre la pauvreté, insertion et création d’emplois, … bref, le wecena rajoute une sacré dose d’humain dans les intercontrats.

Notez que je serai également interviewé sur BFM jeudi 23 avril 2009 à 23H (émission 01 Business, téléchargeable en podcasts).

Dans le même numéro 1990 du 16 avril de 01 Informatique, il y a également une enquête intéressante sur les logiciels libres avec un spectre assez large d’interviewés, d’Alexandre Zapolski (Linagora) à Frédéric Couchet (April / FSF France).

Tant que j’y suis, dans le numéro précédent, on pouvait lire un écho du post de Christian Fauré sur “la prolétarisation dans les sociétés informatiques”. Petite anecdote à ce sujet : étant donnée la durée forcément imprévisible et courte des intercontrats mis à disposition du monde associatif via le wecena, certaines de mes associations clientes commencent à parler des volontaires sous le terme d’”ouvriers Bac+5″. En effet, le plus simple pour elles est de commencer par leur confier des tâches pour lesquelles elles seront sûres que les volontaires pourront se rendre utiles dès les premières 48H de présence.

Exemples de travaux de ce type récemment évoqués avec les associations :

  • référencer sur informatique un stock de 100.000 livres destinés à l’envoi en masse à des bibliothèques locales de pays du tiers-monde (Afrique, Haïti…)
  • permettre à des enfants handicapés de rester dans des classes “normales” en rendant accessible sur informatique les centaines de pages des manuels scolaires utilisés par leur enseignant habituel (eh oui, qui dit handicap et “manuel pour handicapé” dit aussi “difficulté pour rester dans la classe où un manuel non spécialisé est utilisé”… pouvoir poursuivre une scolarité normale malgré un handicap tient parfois à peu de choses)
  • initier à l’informatique 1.000 bénévoles qui sont des employés à la retraite et ne sont pas à l’aise avec l’informatique

Bref, avec le wecena aussi les tâches proposées au volontaire sont parfois relativement “ouvrières”. Mais à la différence des tâches plutôt déshumanisantes dans un environnement de génie logiciel industrialisé, il s’agit avec le wecena de permettre à un consultant AS/400 en intercontrat de pouvoir, lui aussi, servir une grande cause alors que son expertise AS/400 ne rencontre pas (ou peu) de besoins réels dans le monde de l’innovation sociale. Il s’agit, pour les associations, de pouvoir profiter de la motivation et de la bonne volonté de tout volontaire en intercontrat quelque soit son expertise. Notez quand-même qu’on a aussi des besoins beaucoup plus “classiques” de conseil en architecture, de développement Web, de conception de base de données, d’administration système & réseau, etc. Les volontaires motivés et qui ont les compétences pointues dont les assos ont justement besoin sont les bienvenus !

Mais le rapprochement entre l’expression “ouvriers Bac+5″ que j’ai entendu de la bouche de responsables associatifs (sans mépris aucun, au contraire) et la tendance à la prolétarisation dans certains environnement de développement m’a amusé.

Que puis-je faire pour vous ?

Sunday, April 12th, 2009

Vous envisagez de vous fier à mes compétences, de faire affaire avec moi et j’ai bien envie de vous y encourager. Se vanter, c’est obscène mais se vendre, c’est nécessaire… Alors je vais me permettre de vous faire l’article, de faire ma pub éhontée devant vos yeux que j’espère indulgents et ébahis : mon parcours professionnel, mes domaines de compétences, mes principales réalisations.

L’exercice n’étant pas évident sur un blog (ni ailleurs, d’ailleurs), veuillez pardonner ma maladresse certaine, mon regretté pédantisme et les prétentions forcées qui s’ensuivent.

Mon parcours professionnel

De 1994 à 1998, l’Ecole Centrale de Lille, le Val Fourré, le CEA, la délégation interministérielle à la ville

De 1994 à 1998, j’obtiens le diplôme d’ingénieur à l’Ecole Centrale de Lille et j’y multiplie mes premières expériences : consultant nouvelles technologies auprès de PMEs européennes, chercheur en ingénierie de la connaissance pour EDF, administrateur réseau pour les élèves de l’école. Stagiaire au sein des quartiers sensibles du Val Fourré, j’invente et j’expérimente des technologies hypermédias pour la communication de proximité. Stagiaire puis consultant pour le Commissariat à l’Energie Atomique en France puis pour l’ONU et son Agence Internationale à l’Energie Atomique à Vienne, j’évalue les risques d’usage de l’Internet pour la prolifération nucléaire. En service civil à la délégation interministérielle à la ville et en tant que cofondateur d’une association nationale de soutien à l’insertion des jeunes des banlieues, je déploie de l’informatique et de l’Internet dans 10 quartiers en difficulté et en administration centrale.

1998 jusqu’à 2000 : ma première expérience d’entrepreneur

De 1998 à 2000, je me lance dans l’entreprenariat et je créé Reliance SARL avec un camarade de promotion de Centrale Lille : conseil en informatique et veille sur Internet pour de grands comptes du secteur public, de l’industrie et des télécoms. Mon associé et moi entrons malheureusement en conflit et nous devons nous séparer. Je liquide la société.

De 2000 à 2005 : je “webise” Saint-Gobain

En 2000, je rejoins la direction des systèmes d’information du groupe Saint-Gobain en tant que chef du groupe développements Web. Je transforme cette équipe de 5 développeurs Web en une “usine à projets” nouvelles technologies de 20 ingénieurs, consultants et chefs de projets. Je supervise la réalisation de 100 mini-projets intranet en 5 ans et je dirige le projet identités électroniques du groupe : 10 millions d’euros sur 8 ans pour authentifier, gérer et sécuriser l’identité électronique des 200.000 salariés auprès des 1000 systèmes informatiques du Groupe.

De 2005 à 2007 : vive la recherche dans les Motorola Labs

En 2005, je rejoins les laboratoires de recherche appliquée de Motorolaje dirige l’équipe française de recherche en systèmes de recommendations personnalisées pour applications mobiles et multimédia (Web 3.0 ?) : 7 chercheurs et ingénieurs de recherche spécialisés en apprentissage et raisonnement automatiques (machine learning), architectures distribuées (context-aware et agent-oriented), web sémantique et ingénierie de la connaissance (knowledge engineering).

Depuis 2007 : de l’innovation technologique pour l’innovation sociale, j’invente le wecena

En 2007, je quitte Motorola pour lancer une entreprise à vocation sociale: Wecena. Je conçois et j’implémente un modèle économique très innovant pour permettre au monde associatif d’appuyer leurs innovations sociales sur la créativité et les compétences technologiques des professionnels de l’informatique, sans que cela ne coûte un euro ni aux associations bénéficiaires ni aux SSII mécènes qui les soutiennent.

Mes domaines de compétences professionnelles

Mon parcours m’a permis d’exercer quatre domaines de compétences :

  • l’informatique,
  • le conseil,
  • le management
  • et l’innovation.

J’ai une bonne maîtrise des techniques informatiques depuis l’architecture applicative jusqu’au fonctionnel en intelligence économique et en knowledge management : ingénierie des connaissances pour les télécoms et l’industrie mais aussi intelligence économique et veille pour le tertiaire et le secteur public, travail collaboratif, portail et gestion de contenu Web pour les PME et les multinationales, intelligence artificielle et architectures de mobilité pour les téléphones et appareils multimédias. J’ai également une bonne expertise en gestion des identités électroniques (SSO, provisioning, méta-annuaires) pour sécuriser et faciliter les accès de 200 000 utilisateurs à 1000 systèmes informatiques (voir aussi ceci). Je sais analyser et concevoir des architectures informatiques complexes et durables pouvant nécessiter 20 serveurs répartis en plusieurs datacenters à travers le monde. Je maîtrise l’essentiel du génie logiciel et, en particulier, la conception et le développement Web orienté objet (Java, Python, Perl). Je suis un « champion » de l’open source.

En matière de conseil, je suis capable de mener des missions d’audit, d’analyse de données, d’évaluation de projets et de réorganisation de processus administratifs. Je sais mettre en ½uvre des méthode d’expression et d’analyse de besoins pour formaliser des cahiers des charges fonctionnels. Je sais former mes clients à ces méthodes et leur faire partager par une communication participative ma vision des meilleures options possibles. Ces missions de conseil peuvent m’amener à travailler avec jusqu’à 130 interlocuteurs par projet, représentant tous pays et toutes fonctions dans l’entreprise, depuis le directeur financier français jusqu’au technicien informatique tchèque en passant par le responsable de service RH anglais et les chercheurs américains ou indiens. Mes interlocuteurs peuvent également être des chefs d’entreprise d’insertion, des responsables associatifs ou des dirigeants de fondations d’utilité publique.

En matière de management, je peux diriger des projets informatiques et de conduite du changement complexes, pouvant requérir des investissements jusqu’à 10 millions d’euros et s’étaler sur 8 ans. Je suis capable de diriger des équipes techniques de 20 personnes en charge d’une multiplicité de petits projets, comme par exemple 20 projets menés de front, allant de 20 jours.hommes à 200 jours.hommes. Je mets en place les outils et procédures de contrôle de gestion qui me permettent de piloter ces activités de prestation de service. Je sais recruter et coacher des collaborateurs informaticiens de 20 à 40 ans aux profils variés : de l’ingénieur grande école à l’informaticien autodidacte en passant par le chercheur universitaire. Mais je sais aussi travailler en relation de soutien avec des personnes en situation difficile sur le plan psychologique ou social.

Mon coeur de métier, c’est l’innovation : savoir mener toutes les étapes du lancement d’une nouvelle activité depuis la veille jusqu’à la vente en passant si besoin par la création d’entreprise. Je sais conduire un processus de veille pour détecter l’émergence de techniques, d’usages ou de besoins dans les domaines du traitement de l’information et de la documentation, de la communication en ligne et de l’innovation sociale. Je sais inventer, expérimenter et évaluer des algorithmes, architectures et logiciels informatiques mais aussi des principes de management et des modèles économiques et fiscaux à la pointe de la recherche. Je peux produire des brevets et des publications scientifiques. Je suis capable de travailler mes inventions avec des publics très différents et multiculturels: depuis les grands comptes privés ou du secteur public jusqu’aux habitants de quartiers en difficulté. Je peux ensuite monter des business plan rigoureux et mobiliser des énergies pour trouver associés, financeurs, clients et partenaires. Je sais créer une entreprise ou une association. Enfin, je suis capable de manager et de vendre ces projets innovants ou les prestations associées à des grands comptes de l’industrie, des services ou du secteur public.

En résumé, je prétends être un entrepreneur capable de lancer des activités innovantes en lien avec les nouvelles technologies, de manager des équipes projet et d’accompagner des grandes organisations dans la conduite de changements, y compris lorsqu’il s’agit de relever des défis à forte ambition sociale.

Mes réalisations

Vous retrouverez le résumé de mes principales réalisations dans la rubrique “ma pub” de ce blog !

Logiciels de elearning

Wednesday, April 1st, 2009

Parmi les associations qui bénéficient du wecena, il y en a plusieurs qui travaillent autour de problématiques de formation assistée par ordinateur (à distance ou non). Il est donc plus que temps que je fasse un petit tour des logiciels (libres) du domaine, dont j’entends régulièrement parler. Faisons-le point.

Il y a les plates-formes d’elearning (pour publier les contenus pédagogiques et gérer les parcours d’apprentissage), qu’on appelle également des Learning Management Systems (LMS) :

  • Moodle, anglo-saxon, une énorme communauté, toutes les fonctionnalités imaginables au prix d’une éventuelle complexité pour les nouveaux utilisateurs,
  • Claroline, une forte communauté francophone, un petit peu moins de fonctionnalités que Moodle, mais, prétend être, du coup, plus simple à utiliser,
  • Ganesha, bien moins populaire, ayant des soucis de site web et associé à un prestataire de service (c’est parfois un plus)
  • dans la communauté Plone, on trouve la plate-forme e-LECT et la plate-forme ZSchool (les deux supportent SCORM) mais ce n’est sans doute pas très répandu quoique probablement très pro (comme souvent dans les produits Plone) ; à titre anecdotique, j’aime bien la simplicité PloneQuiz

Ensuite, il y a les logiciels de création de contenus pédagogique (authoring tools) :

  • eXe (quelle idée d’avoir choisi un nom aussi mal référençable !) semble être le leader en terme de popularité
  • xerte, qui a l’avantage de produire des contenus exportables en Flash et offre beaucoup plus de types d’objets de base (images avec légendes, interfaçage avec flickr…) mais a pour énorme inconvénient de ne tourner que sous windows (dommage pour du libre…) !
  • pour les quiz, certains préfèrent utiliser directement le module de quiz de la plate-forme de formation
  • Didapage, le français, n’est pas libre (mais aurait vocation à rester gratuit ?)

Le standard le plus important pour garantir la portabilité des contenus pédagogiques d’un support LMS à l’autre, ça semble bien être SCORM.

Enfin, quand on fait de la formation informatique, on a souvent besoin de faire des videos de capture d’écran (screencast). Pour ce faire, sous linux ubuntu, il y a un logiciel libre super simple à utiliser (qui capture également les commentaires audio), c’est record-my-desktop. Dans une autre vie, j’avais utilisé pyvnc2swf sous Windows mais pyvnc2swf est franchement moins facile à utiliser que record-my-desktop (et je n’avais pas le son).

Conclusion, une bonne panoplie passe-partout, c’est Moodle + eXe + record-my-desktop. Les plus aventureux pourront tenter un e-LECT sur Plone à la place de Moodle. Les adeptes de la simplicité de paramétrage se sont satisferont d’un claroline à la place de Moodle.

Vous qui avez déjà de l’expérience en matière de e-learning, ai-je dit des bêtises ?

1 million de salles d’attentes… pour la recherche scientifique

Friday, March 13th, 2009

Hier soir, je tchattais avec mon pote Yann. Comme à notre habitude, on échange nos idées farfelues du moment. Cette fois-ci, c’est mon tour. Qu’en pensez-vous ?

(22:37:13) Sig: si les 1 million de salle d’attente qui existent dans le monde accueillaient chacune un vieux PC à bout de souffle pour faire des calculs pour la recherche scientifique
(22:37:35) Sig: alors on pourrait accélérer la découverte de remèdes contre les maladies type Alzheimer et une trentaine d’autres maladies.
(22:37:45) Yann: ok
(22:37:50) Sig: Rien qu’en France, il y a environ 100.000 salles d’attente
(22:38:15) Yann: et j’ai deja 1 PC a bout de souffle, pu ke 99 999 a trouver ;)
(22:38:21) Sig: Or j’ai 40 vieux PC stockés chez moi et chez ma grand-mère ainsi qu’un système logiciel pour les contrôler à distance via le Net
(22:38:33) Yann: Ok je capitule !
(22:38:34) Sig: j’ai pas d’écran mais yen a pas besoin pour la recherche scientifique
(22:38:42) Sig: :)
(22:38:49) Sig: et l’idée de salle d’attente, c’est de dire :
(22:39:06) Sig: vous voyez ce PC et la pile de tracts posée dessus, prenez-en un :
(22:39:36) Yann: de tract ?
(22:39:38) Sig: ” Emmenez moi (le tract) chez un autre médecin/dentiste/salle d’attente pour qu’il puisse demander, lui aussi, son PC de recherche médical en allant sur http://…”
(22:39:50) Yann: ok
(22:39:51) Sig: l’idée est d’utiliser la salle d’attente comme lieu de viralité
(22:40:02) Yann: ca marche bien ca deja !!!!!!
(22:40:08) Sig: oui (rhumes…)
(22:40:10) Sig: :)
(22:40:13) Yann: oui ;)
(22:40:28) Yann: (on n’a deja notre theme publicitaire ;o)  )
(22:40:41) Sig: ensuite, les tracts peuvent inviter les gens à donner des vieux PC au projet ou à participer à la distribution
(22:40:52) Sig: de vieux PC récupérés vers les nouvelles salels d’attente en demande.
(22:40:59) Yann: ok
(22:41:29) Sig: Enfin, dernier point, lorsque on peut récupérer des écrans, j’ajoute un logiciel sur le PC :
(22:41:50) Sig: pour que les gens qui passent en moyenne 35 minutes dans la salle d’attente mettent leur cerveau au service de la recherche scientifique
(22:42:03) Yann: ???
(22:42:18) Yann: je ne suis plus la !
(22:42:19) Sig: sur des projets sur le principe de galaxyzoo.org, clickworkers, foldit, stardust@home (tu iras voir galaxyzoo.org c’est super joli)
(22:42:27) Sig: le principe de galaxyzoo :
(22:42:48) Sig: on te montre une photo d’une galaxie jamais vue par l’être humain (tu es le premier car elle a été prise en photo par un téléscope robotisé)
(22:42:52) Sig: et tu as 2 boutons :
(22:43:02) Sig: bouton 1 : “elle tourne dans le sens des agiuilles d’une montre”
(22:43:08) Sig: bouton 2 : “elle tourne dans l’autre sens”
(22:43:30) Sig: des millions de clics permettent au labo d’astronomie d’Oxford de mieux connaître la création de l’univers
(22:43:38) Yann: comment ?
(22:43:42) Sig: ya pas mal d’autres projets qui fleurissent actuellement dans d’autres domaines scientifiques sur ce principe
(22:43:44) Sig: comment :
(22:43:54) Sig: certaines théories sur l’expansion de l’univers disent :
(22:44:08) Sig: “il devrait y avoir 50% de galaxies qui tournent comme-ci et 50% comme ça”
(22:44:20) Sig: et d’autres disent “non, 51% dans ce sens, et 49% dans l’autre sens”
(22:44:43) Sig: ce projet permet d’invalider les théories fausses et d’avancer dans notre compréhension du passé et de l’avenir du cosmos… c bo. :)
(22:44:52) Sig: il suffisait de compter :)
(22:45:05) Yann: oui, bien vu :)
(22:45:10) Yann: Mes comments :
(22:45:14) Sig: oui
(22:45:22) Yann: l’idee me plait !
(22:45:26) Sig: ok
(22:45:33) Yann: les pb ke j’anticipe :
(22:45:53) Yann: PC en reseau ds cabinet medical = pb deontologie potentiel
(22:46:03) Yann: du moins y aura des gens a penser ca
(22:46:29) Yann: ensuite, l’installation  = tres time consuming !!!!!!
(22:46:32) Sig: ok j’y avais pas pensé mais c’est une bonne remarque
(22:46:36) Sig: (pour le pb de sécurité/déontologie)
(22:46:45) Yann: et la maintenance aussi !
(22:47:00) Sig: pour l’install et la maintenance, non aucun pb :
(22:47:04) Sig: 100% automatisé !
(22:47:13) Yann: j’te sens ds l’exces d’optimisme la non ?
(22:47:24) Sig: et si le pb est trop grave pour être traité en automatique, il faut que quelqu’un (bénévole) vienne remplacer le PC par un autre
(22:47:47) Sig: non non j’utilise un logiciel fait pour gérer de manière automatique des milliers de PC dans des centres de recherche.
(22:47:56) Yann: tu ne va pas automatiser le pc qu’il faut physiquement deposer au sol ds 100 000 salles d’attente !!!!
(22:48:14) Sig: non le transport et le branchement restent à la charge des bénévoles
(22:48:26) Yann: ne néglige pas cette contrainte, elle estr forte….mais….
(22:48:29) Sig: oui
(22:48:39) Yann: C ds les obstacvle qu’on trouves d’autres idees
(22:49:07) Yann: Ca me parait hyper lourd a gerer (rien que l’aspect physique et maintenance sur place qd necessaire)
(22:49:14) Yann: par contre ca me donne 1 idee
(22:49:23) Yann: C tellement lourd comme contrainte
(22:49:33) Yann: qu’il faut 1 partenaire serieux !
(22:49:38) Yann: style la secu !!!!
(22:49:52) Yann: t’imagine en terme d’image !!!!!
(22:49:57) Sig: mmm… la sécu… pkoi pa
(22:50:12) Yann: ou autre organisme, type mutuelles…
(22:50:21) Yann: ou pfizer ou Rhone poulenc….
(22:50:28) Yann: le privé du cabinet medical koi !
(22:50:38) Sig: oui je pensais aux labos pharmaceutiques
(22:50:46) Yann: bingo
(22:50:54) Sig: dans le cadre d’un mécénat alors ?
(22:51:02) Yann: sauf que eux vont vouloir mettre le nez ds le soft
(22:51:05) Yann: (oui)
(22:51:12) Yann: afficher de la pub etc
(22:51:21) Yann: et la on a un pb de deontologie potentiel !
(22:51:30) Sig: ils ne peuvent pas afficher de la pub pour des produits c’est interdit dans les salles d’attente
(22:51:31) Yann: mais ca me parait faisable
(22:51:39) Yann: pffffff
(22:51:55) Sig: mais ils peuvent afficher de la communication sur leur entreprise (pas commercial mais “communication institutionnelle”)
(22:51:55) Yann: les pub de cigarettes aussi C interdit ds les kfé !
(22:52:10) Yann: C pareil !
(22:52:25) Sig: pas du point de vue du conseil de l’ordre, je pense.
(22:52:29) Yann: C juste le credit d’impot qui change ;)
(22:52:34) Sig: oui
(22:52:55) Yann: je suis ok avec toi : C moralement acceptable pr des mecs ds des bureaux
(22:53:25) Yann: mais C pareil, ds le meme but : vendre a la prolo de la salle d’attente du doliprane plutot que du generique paracetamol !
(22:53:32) Sig: yes
(22:53:46) Yann: je n’aime pas ca, mais j’suis lucide !
(22:54:03) Yann: bref : l’idee me parait bonne des le depart ;)
(22:54:12) Sig: ok :)
(22:54:31) Yann: autre “pb” : il faut travailler au moins 1 an a tps plein pr lancer un truc pareil !
(22:54:39) Yann: t’as 1 an devant toi toi ?
(22:54:49) Sig: je vois pas le besoin  de travailler un an dessus
(22:55:00) Sig: “yaka” trouver un médecin prêt à expérimenter
(22:55:07) Yann: les contacts, ajuster les idées etc ???
(22:55:36) Yann: C un projet a part entiere ton truc la !
(22:55:48) Yann: limite faut monter 1 asso
(22:55:57) Yann: dc statut a rediger etc
(22:56:07) Yann: j’arrive meme pas a faire mes cpte !!!
(22:56:08) Sig: fo voir comment ça se goupille mais, à la limite, ça pourrait se faire “à la mode open source”, avec peu de moyens et sans structure juridique
(22:56:20) Yann: la le pro C toi !
(22:56:24) Yann: je te fais confiance !
(22:56:31) Sig: en pratique, la question qui compte, c’est :
(22:57:02) Sig: est-ce que tu connais un heureux propriétaire de salle d’attente que tu pourrais convaincre d’accueillir un PC connecté à son ADSL pour la recherche scientifique ?
(22:57:19) Yann: reponse immediate : non !
(22:57:32) Yann: mais suis optimiste : j’peux trouver oui ;)
(22:57:38) Sig: :)
(22:57:59) Sig: de mon côté, je vais en causer avec notre pédiatre qui est très impliqué dans des assos
(22:58:16) Yann: j’vois mon doc fin mars (en pcipe si j’y pense)
(22:58:17) Sig: et sinon, j’essaierai avec une copine orthophoniste
(22:58:38) Yann: et moi je garde ca en tete, on connais tous forcement des docs !
(22:58:51) Sig: en attendant, fo que je te laisse pour aller contrôler la fin d’installation automatique de 2 PC qui tournent depuis tout à l’heure dans ma cuisine
(22:59:03) Yann: j’crois que la maman du copain de ma soeur est pediatre
(22:59:11) Sig: eh eh :)
(22:59:19) Sig: nous vivons dans un monde de salles d’attente !
(22:59:53) Yann: “si la maison du bonheur existait, la plus grande piece serait la salle d’attente”
(22:59:58) Yann: de PasDeMoi
(23:00:02) Sig: ok
(23:01:05) Yann: allé a +
(23:01:13) Sig: a+

Qu’en pensez-vous ? Vous connaissez une salle d’attente accueillante pour un de mes vieux PC ?

Le code du wecena est libre

Tuesday, March 3rd, 2009

“Vive le wecena libre !” comme qui dirait l’autre. Ce petit message pour signaler à ceux que cela intèresse que j’ai libéré le code qui me permet de faire tourner wecena.com. En d’autres termes, ce logiciel libre est désormais distribué (publiquement) sous licence GNU Affero General Public License v.3.

Le code en question constitue une suite de produits d’extension pour le système de gestion de contenu Web Plone. Certains de ces produits sont spécifiques au fonctionnement du wecena (les produits wecena_core et wecena_integration). Certains autres sont plus génériques et peuvent avoir leur utilité hors wecena. Je pense notamment à wecena_dynamicroles pour améliorer la flexibilité du système de sécurité de Plone et à wecena_ldapuser pour synchroniser de manière bidirectionnelle les utilisateurs Plone avec les entrées d’un annuaire LDAP.

Votre expertise python/Zope/Plone est plus que bienvenue si vous voulez vous amuser avec ces produits et filer un coup de main au passage !

How to get visual performance profiles from plone doctests ?

Thursday, February 5th, 2009

I am developping a couple of Plone 3.x products. They have some tests, including a huge functional doctest which takes a long time to run (about a couple of hours !) but covers some of my most interesting use cases. I wanted to use these tests in order to get some insights about possible performance bottlenecks and other optimization hot points in my code. The result of my effort was a very nice visual chart showing these bottlenecks and hotpoints.

[update: added another visualization package, see at the end of the post]

Here is how I had to proceed (note that I am more of a foolish and coward hacker than an expert and I decline any responsibility on the consequences of following my howto !) :

1. Give your python a suitable profiler

Plone 3.x requires zope 2.10 which in turn requires python 2.4. More recent versions are not supported AFAICS. Problem: python2.4 does not have a reliable performance profiling module. Its “hotshot” module is both slow (when loading statistics) and badly bugged : it crashes when you have it load some of the profiles it can generate. You have to add a better profiler to your python environment, namely cProfile (which is shipped with python 2.5).

I am a terrible sysadmin and I don’t really understand (and care about) how python manages its pathes and accesses its libraries. So I did this :

  1. download and unzip the source tarball of python 2.5 so that you get cProfile source code
  2. locate relevant files referring to lsprof (the old name of cProfile), using a grep -R lsprof * on the source directory
  3. I personnally located the following files (I leave cProfile test files apart) : Lib/cProfile.py Modules/_lsprof.c and Modules/rotatingtree.* (.c and .h)
  4. download and unzip the source tarball of python 2.4
  5. copy the located cProfile files from their python 2.5 location to the proper dirs into the source code of your fresh python 2.4
  6. update python 2.4 ’s setup.py file so that the line below is added just after the hoshot one : exts.append( Extension(’_lsprof’, ['_lsprof.c', 'rotatingtree.c']) )
  7. did I mention I am so bad at hacking things that I don’t even provide a patch for the operations above ?
  8. compile python 2.4 using a ./configure then make

At this point, you must have an executable python interpreter version 2.4 which includes cProfile. You can check by launching this python and trying a import cProfile which should not fail.

I replaced my system python2.4 by then doing a sudo make altinstall but I also had to manually tweak my system files so that this new python2.4 gets properly called (I am using ubuntu 8.10 intrepid, BTW) :

cd /usr/bin

sudo mv ./python2.4 ./python2.4.5

sudo ln -s /usr/local/bin/python2.4

Now, a plain command line call to python2.4 should give you an interpreter prompt which lets you import cProfile if you dare. I suffered some colateral damage here : the python prompt lost its ability to have previous lines copied at the prompt by pressing the Up/Down arrows. And I had to re-install reportlab from the source (some of my products depend on pisa which depends on reportlab). Anyone knows how to restore this Up/Down arrow capability ?

2. Recreate your buildout using this new python version

So that zope gets recompiled using your new python version :

rm -Rf parts bin develop-eggs

python2.4 bootstrap.py

bin/buildout

3. Patch zope testrunner so that it supports cProfile instead of only supporting hotshot

I got a bit confused because my buildout contains 2 zope testrunners. It took me some time to figure out which was which : the one which is used by the zope instance your buildout creates is the one which is shipped with zope 2.10 and is located at parts/zope2/lib/python/zope/testing/. The other one I have is in the zope.testing egg. I don’t know how and why I got such an egg. Anyway, this egg supports both hotshot and cProfile whereas zope 2.10 testrunner doesn’t. So I hacked the weaker/older zope 2.10 testrunner with some inspiration from zope.testing so that cProfile can be used when running tests. Here is the diff you can use for enhancing  parts/zope2/lib/python/zope/testing/testrunner.py. Oops, left version is the modified one, right version is the original one.

38,69d37
< before_tests_hooks = []
< after_tests_hooks = []
< available_profilers = {}
<
< try:
<     import cProfile
<     import pstats
< except ImportError:
<     pass
< else:
<     class CProfiler(object):
<         “”"cProfiler”"”
<         def __init__(self, filepath):
<             self.filepath = filepath
<             self.profiler = cProfile.Profile()
<             self.enable = self.profiler.enable
<             self.disable = self.profiler.disable
<
<         def finish(self):
<             self.profiler.dump_stats(self.filepath)
<
<         def loadStats(self, prof_glob):
<             stats = None
<             for file_name in glob.glob(prof_glob):
<                 if stats is None:
<                     stats = pstats.Stats(file_name)
<                 else:
<                     stats.add(file_name)
<             return stats
<
<     available_profilers['cProfile'] = CProfiler
<
75,98c43
<     pass
< else:
<     class HotshotProfiler(object):
<         “”"hotshot interface”"”
<
<         def __init__(self, filepath):
<             self.profiler = hotshot.Profile(filepath)
<             self.enable = self.profiler.start
<             self.disable = self.profiler.stop
<
<         def finish(self):
<             self.profiler.finish()
<
<         def loadStats(self, prof_glob):
<             stats = None
<             for file_name in glob.glob(prof_glob):
<                 loaded = hotshot.stats.load(file_name)
<                 if stats is None:
<                     stats = loaded
<                 else:
<                     stats.add(loaded)
<             return stats
<
<     available_profilers['hotshot'] = HotshotProfiler

>     hotshot = None
288c233
<     if len(available_profilers) == 0 and options.profile:

>     if hotshot is None and options.profile:
320,324c265,266
<         if available_profilers.has_key(’cProfile’): prof = available_profilers['cProfile'](file_path)
<         else: prof = available_profilers['hotshot'](file_path)
<         before_tests_hooks.append(prof.enable)
<         after_tests_hooks.append(prof.disable)
<

>         prof = hotshot.Profile(file_path)
>         prof.start()
335c277,278
<             prof.finish()

>             prof.stop()
>             prof.close()
342c285,292
<         stats=prof.loadStats(prof_glob)

>         stats = None
>         for file_name in glob.glob(prof_glob):
>             loaded = hotshot.stats.load(file_name)
>             if stats is None:
>                 stats = loaded
>             else:
>                 stats.add(loaded)
>
459d408
<                 [hook() for hook in before_tests_hooks]
461d409
<                 [hook() for hook in after_tests_hooks]
656,659c604
<     [hook() for hook in before_tests_hooks]
<     results = run_tests(options, tests, layer_name, failures, errors)
<     [hook() for hook in after_tests_hooks]
<     return results

>     return run_tests(options, tests, layer_name, failures, errors)

Oh, BTW, this diff also lets you filter out the profiling of the setup and teardown steps of your tests which are of poor value compared to actual tests. Thanks to Daniel Nouri for this.

At this point, you should have given your zope instance the capability of profiling tests using cProfile. You can check it by asking for a debug prompt from zope : bin/instance debug The prompt you get should allow you to safely import cProfile

4. Profile your test

Say you have a Products called Products.DearProduct with some tests. Profile them :

bin/instance test -s Products.DearProduct –profile

At this point, you should get a tests_profile.*.prof file saved in the current dir. It contains the performance profile cProfile generated, using the pstats format. You can manually load and analyze this data. Or have a limited GUI show you what it’s like. Or you can go for the nicer, more insightful version which follows.

5. Visualize and analyze the performance profile you generated

Thanks to Ingeniweb folks, I heard of gprof2dot and xdot. Download them (the scripts, not the folks). Use them to generate and display a very nice graph :

chmod 744 gprof2dot.py

chmod 744 xdot.py

./gprof2dot.py -f pstats -o profile.dot tests_profile.*.prof

./xdot.py profile.dot

Note the * you may replace with the ID of the profile generated above. Or you can use the fancy but dangerous one-liner below which runs the tests,  generates the profile, generates the corresponding graph, displays the results of tests and displays the graph for analysis :

rm -f tests_profile.*.prof && rm -f profile.pstats && rm -f profile.dot && bin/single-instance test -s Products.MyDearProduct –profile > /tmp/test.txt ; ./gprof2dot.py -f pstats -o profile.dot tests_profile.*.prof && less /tmp/test.txt ; ./xdot.py profile.dot

At this point, you should be starring at nice colored graph which represent the flow of your tests and the method which may be performance bottlenecks. And you should be hoping that it was worth the effort.

[Here starts the update]

After some contemplation moment, I tried to analyze the graph of my tests and did not feel extremely happy with this graph visualization. It indeed shows me that the slowlyness of functional doctest is mostly due to the testing framework (zope.testbrowser, etc.). This slowlyness “hides” the optimization opportunities of my code. And I don’t know how to exclude some products from the being profiled or from being present in the profile stats (I would have liked to filter out zope.testbrowser and other Plone-specific things). But, all hope is not lost, here comes kcachegrind:

sudo apt-get install kcachegrind

sudo easy-install pyprof2calltree

pyprof2calltree -o output.calltree.stats -i tests_profile.*.prof -k

Using kcachegrind with the help of pyprof2calltree, I was able to focus on my product methods and identify those methods which deserve some caching. Added some @memoize decorators and reran the profiled tests so that I could enjoy the performance improvement… Happy I am, happy thou shalt be.

What do you think ?

SSII: scénario de crise vs. développement durable

Thursday, December 18th, 2008

NB: ce message a un caractère promotionnel, il n’y pas de doute.

La question n’est plus de savoir si les SSII souffriront aussi de la crise mais de savoir si ce sera pour 2009 ou pour 2010. Le scénario catastrophe qui se dessine donc lorsqu’on suit la presse spécialisée est le suivant.

Faisons-nous peur, le scénario catastrophe pour le secteur des services

Actuellement, les SSII recrutent avec prudence : uniquement lorsqu’elles ont déjà un contrat client signé et donc un besoin sûr de personnel. La crise touchant les secteurs financiers puis de l’automobile et, par contagion, toute l’économie ou presque, les affaires se font plus rares qu’à l’habitude. Par conséquent, les taux d’intercontrat augmentent. Et, pour maintenir ces taux au plus bas malgré tout, les prix sont à la baisse. Dès maintenant, et comme dans les autres secteurs, les SSII se sont mises sur la défensive. Ces mesures suffiront un temps.

Fin 2009 ou courant 2010, imaginons que les SSII seront “au taquet” : elles auront fait le maximum pour limiter la casse. Malheureusement pour le secteur, certaines entreprises du secteur ont terni l’image de la profession par des comportements souvent qualifiés de “vendeurs de viande” : on embauche de la compétence “au kilo” et non des femmes et des hommes puis on met une pression abusive sur les ingénieurs en intercontrat pour qu’ils démissionnent lorsque l’entreprise va mal. Et lorsque les SSII seront vraiment au plus mal, ces situations d’abus se multiplieront chez les “vendeurs de viande”. Même les sociétés les plus responsables risquent d’être tentées par la facilité. Et l’image du secteur, déjà pas vraiment folichonne chez les jeunes diplômés, en prendra encore un coup ! Si bien que lorsque les beaux jours reviendront (2011 ?), les SSII seront bien en mal de faire face au rebond de la demande. Les jeunes diplômés, encore moins qu’auparavant, ne voudront pas s’y faire embaucher.

Que faire ?

A mon avis, celles qui s’en sortiront seront les SSII responsables, celles qui auront su se distinguer au mieux du lot des vendeurs de viande, celles qui auront su mériter non seulement la confiance de leurs clients mais aussi la confiance de leurs salariés et de leurs futures recrues. Une gestion prudente (pas d’embauche inconsidérée) et une commercialisation aggressive ne suffiront pas : les vendeurs de viande aussi peuvent le faire. Seules les SSII au comportement responsable et engagé dans une solidarité de crise sauront bâtir une réputation de fournisseur et d’employeur de confiance. Cette dimension d’engagement, c’est ce qu’on appelle la Responsabilité Sociale de l’Entreprise (RSE), la déclinaison “entreprise” du développement durable.

Le problème avec la RSE, c’est ce que ça reste trop souvent de l’ordre du discours joli, des voeux pieux, de quelque chose d’un peu vague, aux contours mal cernés, ou bien encore d’effets de manches et d’image franchement déconnectés de la vie de l’entreprise. Au final, la RSE est vue comme quelque chose qui coûte cher losque l’on passe du discours aux actes, sans certitude du résultat sur la réputation de l’entreprise ni sur l’utilité sociale ou environnementale de ses engagements.

Dans les métiers du services informatique, la RSE devient encore plus compliquée et difficile à cerner : quels actes tangibles vont permettre d’exercer sa RSE et de mériter la confiance des marchés ? La tendance “Green IT” (informatique moins énergivore et moins polluante) concerne avant tout les grands centres de données, les éditeurs et les équipementiers. Que peut-on faire de réellement bien pour la planète lorsque l’on est dans l’économie de la matière grise plutôt que dans celle du silicone ? Inciter ses collaborateurs à moins imprimer ses mails ne mène pas très loin : au mieux quelques économies de consommation d’eau car l’industrie du papier consomme trop d’eau à ce qu’il paraît… Encourager ses salariés à faire du bénévolat, sur leur temps libre, c’est très bien mais, franchement, ça n’est pas très engageant pour l’entreprise ! Offrir à tous ses salariés une journée dans l’année à consacrer à une grande cause, sur leur temps de travail ? C’est très sympathique, mais l’utilité sociale (l’impact social disent certains) reste limité et, malgré tout, ça fait quand-même une journée de manque à gagner !

Depuis quelques années, le mécénat est pourtant bien la voie royale qui se dégage pour les entreprises en quête d’une meilleure RSE. (Vous voyez où je veux en venir depuis le début : je suis prestataire en mécénat informatique…). Et oui, le mécénat, c’est un engagement concret d’une entreprise auprès d’une grande cause. Une étude de Stanford auprès de 750 diplômés de MBAs conclut que ceux-ci sont prêts à sacrifier plus de 10% de leur salaire pour rejoindre une entreprise ayant une meilleure réputation en matière d’engagement citoyen, social et environnemental. Plus les jeunes diplômés sont qualifiés (écoles du groupe A par exemple), plus ils sont sensibles aux preuves concrètes que leur employeur peut leur présenter en matière de RSE. Et plus leur salaire est élevé plus ils sont, bien entendu, prêts à rogner un peu dessus, au profit d’un employeur plus généreux envers les autres, du moment que ce mécénat d’entreprise est réel, tangible, concret, loin des beaux rapports annuels et des effets de manche.

Oui mais… faire des dons à des associations humanitaires, ça coûte cher ! Et quand c’est la crise, on a plutôt envie de consacrer son argent à préserver un emploi plutôt qu’à envoyer des dons (et des emplois, aussi) à l’autre bout du monde. D’un autre côté, c’est aussi en période de crise que les associations de solidarité et de lutte contre la pauvreté, à l’étranger comme en France, ont le plus besoin de la solidarité des entreprises. Cruels dilemmes, non ?

Ma proposition : le wecena

C’est là que j’ai ma sauce à proposer : le wecena. En effet, je suis persuadé que les SSII dorment sur une mine d’or en matière de RSE : leurs intercontrats. Chaque jour, 10.000 à 20.000 consultants et ingénieurs sont en situation d’intercontrat en France. Mettons-les au service de l’intérêt général le temps de leur retrouver une mission !

En intercontrat, on doute, on stresse, on a envie de partir chez le concurrent pour voir si l’herbe est plus verte mais, crise oblige, on a peur de partir. Alors on reste, on se morfond et on a envie de râler contre cet employeur qui ne nous propose pas de mission à la hauteur de nos compétences. Alors on reste, on passe le temps en s’autoformant comme on peut, on cherche à se rendre utile dans la boîte ou bien à échapper à son commercial, c’est selon… C’est pas bon pour le moral en tout cas. Et pas bon non plus pour le portefeuille de l’actionnaire que d’avoir des salariés qui ne créent pas de la valeur.

Et si ces intercontrats pouvaient permettre à la SSII de mieux mériter confiance ? d’exercer sa RSE de manière exemplaire ? de rompre définitivement avec les “vendeurs de viande” qui sévissent encore sur le marché ?

Et si ces intercontrats pouvaient s’engager concrètement, grâce à leurs compétences professionnelles et à leur créativité technologique, au côté de ceux qui luttent contre la pauvreté, pour protéger l’enfance en difficulté, pour rendre l’éducation et le savoir accessible à tous, pour faire progresser les sciences… ? Et si il existait un moyen de faire en sorte que ces intercontrats mis au service des autres le soient “sans durée d’engagement”, en restant disponibles à 100% pour une nouvelle mission commerciale et donc sans interférer avec le business et sans générer aucun manque à gagner ?

L’intérêt de mon offre de wecena, pour les SSII en crise, c’est d’exploiter au mieux leur capital humain en le mettant au service des Autres sans que cela ne lui coûte un seul euro et sans interférance avec les affaires. L’intérêt pour les SSII, c’est aussi d’exercer sa responsabilité et sa citoyenneté d’entreprise même lorsque l’économie est au plus mal, de  montrer que l’on reste présent aux côtés de ceux qui souffrent lorsque, soit-même, on n’est pas forcément au mieux de sa forme. C’est aussi une manière de goûter au mécénat à moindre coût et de se découvrir une âme (et une stratégie bien pensée) de philanthrope. C’est marier le coeur et la raison.

L’intérêt de ma proposition, pour l’ingénieur en intercontrat, c’est de se rendre utile auprès de clients d’un genre nouveau : les entrepreneurs sociaux et les acteurs de la solidarité. C’est de découvrir qu’à travers son métier, on peut donner un véritable coup de pouce, sur le terrain, à des causes qui le méritent. C’est goûter à l’engagement associatif et peut-être, un jour, devenir bénévole. C’est aussi de se rendre compte qu’avec ses collègues, on peut partager quelque chose de différent, de solidaire et d’utile, loin des considérations commerciales habituelles. Peut-être est-ce aussi apprendre à porter un regard nouveau sur son employeur ?

Conclusion, pour les SSII, c’est aussi la crise et c’est une bonne raison pour devenir mécènes, non ?

Je vous invite à modérer mon enthousiasme en réagissant via un commentaire ci-dessous, et à participer au wecena à votre niveau.

Wow, 10 millions de dollar pour rendre le monde meilleur

Thursday, September 25th, 2008

C’est Noël ? C’est la surenchère ? Nokia promet 150 000 dollars dans un concours d’idées d’applications innovantes et solidaires. Et voilà-t-y pas que Google en promet 10 millions, pour réaliser les cinq de vos projets qui sont les plus susceptibles de rendre le monde meilleur. De quoi être époustouflifié même quand on sait que la X-Prize foundation envisage des concours d’innovations avec des récompenses allant de 100 millions à 1 milliard de dollars ! Google est d’ailleurs un membre actif des concours de cette fondation.

Allez, avec un peu de chances, j’aurai peut-être le plaisir d’offrir un lot de consolation à quelques innovateurs solidaires français ? Quelques équivalents-temps plein d’ingénieurs et consultants informaticiens, gratuitement, pour votre projet d’intérêt général, ça vous tente ?

Au passage, je remercie Monsieur D., de Chambéry d’Albertville, qui a bien voulu me signaler cette initiative de Google que j’avais loupée. Monsieur D. est parfois timide alors il m’avait contacté par mail plutôt que via un commentaire sur ce blog. ;-)

150 000 dollars pour l’innovation technologique à vocation sociale ou environnementale

Wednesday, September 24th, 2008

Nokia lance un concours pour développeurs d’applications solidaires pour téléphones portables. 150 000 dollars seront offerts aux développeurs des applications mobiles qui seront les plus susceptibles de rendre le monde meilleur. N’oublions pas que les populations des pays du tiers-monde sont bien plus équipées en téléphones portables qu’en ordinateur, par exemple.

Alors, forcément, ça me donne envie d’en rajouter une couche. C’est pourquoi je propose aux candidats français de ce concours de bénéficier du wecena pour développer leur projet : je vous propose gratuitement les compétences de nombreux ingénieurs et consultants, au titre d’une forme innovante de mécénat, le wecena. Les conditions à remplir sont détaillées dans mon appel à projet. Dans le cas d’un concours comme celui de Nokia, cela veut avant tout dire qu’il faut déclarer en préfecture une association d’intérêt général en France pour porter le projet, ou s’associer à une association existante.

via WorldChanging

Un bug et, hop, United Airlines fait faillite ?

Tuesday, September 16th, 2008

Cet article édifiant de Revealing Errors raconte comment United Airlines vient de frôler la faillite lorsque, suite à un bug, des automates informatiques (relayés par des traders peu attentifs) ont propagé sur toute la planète une rumeur selon laquelle… United Airlines était en train de faire faillite !

De quoi faire boule de neige, déclencher une petite panique boursière et faire évaporer une partie significative de la capitalisation de cette société… Le tout en quelques minutes seulement.

Morale de l’histoire ? Je ne sais pas… Et vous ?

What should be the EU ICT R&D policy ? Tell them

Tuesday, September 9th, 2008

A nice article and hopefully useful survey (runs until 7 November 2008) that will let you have your say on what the EU policy should be regarding Information and Communication Technology R&D.

Very long-term backup fabbed with a reprap ?

Tuesday, August 26th, 2008

How will your personal data be readable 2.000 years from now ? The Long Now Foundation blogs about a nickel-based 3 inches-large disk that can reliably hold high amount of printed data for at least 2.000 years. Data is printed on it in small font : a 750-power optical microscope is required to read the pages !

On the other side of the blogosphere, the reprap community considers adding an ElectroChemical Milling (ECM) tool head to their home DIY 3D printers :

With this tool head, it could machine any conductive material, regardless of how hard it is or how high its melting point.

Maybe someday, personal very-long term backups will be printed at home ?

At the moment, industrial ECM/EDM machines can “achieve a one micron positional accuracy and wire EDM walls as thin as 0.010” (.254mm)” or (ECM) make holes/traces  as small as 0.2 mm large. I guess some progress is required before 750-power optical microscopes are required for reading data printed with this technology. But maybe that before 2.000 years from now, ultra-precision will be achieved by fabbers ? Id be curious of knowing which technique was used by the Long Now Foundation project and how difficult it would be to port this technique to the wonderful world of fabbers.

Rapid prototyping with microcontrollers ?

Monday, August 25th, 2008

I have no clue about micro-electronics and embedded systems. I am a Web application architect and developer, working with very high-level programming languages such as Python (or Perl or Java). I hardly remember assembly language from my childhood experiments with an Apple IIe and almost never touched C or C++. But I have been dreaming lately of rapid-prototyping some advanced non-Web application in an embedded system using my programming skills. So I thought I could share bits of my ignorance here. Please bear with me and give me some hints in order for me to best get out of darkness ! :)

Microcontrollers are now gaining capabilities that are comparable to microprocessors of early personal computers. The two most popular microcontroller (uC) series are Microchip PIC uCs and Atmel AVR uCs. For instance the PIC18F25J10-I/SO costs around 3 or 5 euros per unit at Radio Spares (I am in France: think RS in the UK or Allied Electronics in the USA). It has the following characteristics: 40 MHz, RS-232 capabilities (serial port), a “C compiler optimized architecture”, 48 kB of program memory (Flash mem) and around 4 or 5 kB of data memory (SRAM + EEPROM).

There are nice peripherals available, too. For instance this Texas Instrument CC2500 2.4GHz RF data transceiver (= transmitter + receiver) at around 2 to 3 euros per unit or current sensors approximately at the same price. In fact, periphals possibilities are limitless…

For free software hackers, there was a linux version for such chips : uCLinux. But is it still an active project ? I think I read that the comon linux kernel now includes everything that is required for it to run in embedded sytems. What about GNU utilities ? I know there are things like busybox on bigger but still embedded processors (phones). Anything equivalent on microcontrollers ?

There are simulators that will… let you pretend your desktop computer has a microcontroller inside, or sort of. :)

There is at least one C library for microcontrollers. C is considered as a “high-level programming language” in the embeddeds world ! That is to say that assembly language has been the norm. Some higher-levels languages can be used with microcontrollers, including some exotic-to-me Pascal-like languages like XPlo or PMP or Java-like but living dead things like Virgil and… what about my beloved Python ?

There are at least 2 projects aiming at allowing Python-programming on microcontrollers. pyastra is a “Python assembler translator” that can be used with some PIC12, PIC14 and PIC16 uCs. But it looks dead. Pymite looks sexier but not much more active :

PyMite is a flyweight Python interpreter written from scratch to execute on 8-bit and larger microcontrollers with resources as limited as 64 KiB of program memory (flash) and 4 KiB of RAM. PyMite supports a subset of the Python 2.5 syntax and can execute a subset of the Python 2.5 bytecodes. PyMite can also be compiled, tested and executed on a desktop computer.

At the moment, it seems like Python programming on microcontrollers is a dead end. Nothing worth investing time and efforts unless you want to also have to maintain a Python compiler… Same may be true for Java, not mentioning Perl. In fact, it seems to me that the object-oriented crowds are too far from microcontrollers applications to generate enough interest in initiatives such as Pymite, at the moment. Oh, and I am knowingly ignoring C++ which I did not investigate, having no experience in C++.

So what is left in terms of (open source) programming languages that would be of higher level than C ? The best guess I can make is Great Cow Basic, which is a free software Basic (procedural) language. Example programs look nice to me. It has been active recently. And it supports most of the chips I would consider experimenting with.

Next steps for me, I guess, would be to pick a PIC simulator and an IDE for Great Cow Basic (any eclipse plugin ?). Then I will probably have to figure out how a Basic program can be executed on a simulated PIC. And how a PIC simulator can be useful without all of the electronics that would surround it in any real setup. I’ll see that. When I have time to pursue my investigations and experiments in this micro-world.

And piclist is a great site for beginners.

3D scannerless scanning for fabbers

Monday, August 25th, 2008

For several weeks (or more), I have been dreaming of the day I’ll get my hands on a Reprap (self-parts-printing 3D desktop printer, a DIY fabber). I have been lucky enough to have a good friend promise me he would give his free time for assembling such a printer for me as long as I pay for the parts. 3 days of work are required to assemble the parts which you can order via the web in case you don’t already have access to such a reprap, which is my case. I will try to wait for the next major release of Reprap, namely Mendel 2.0 (current version = Darwin 1.0) unless I can’t resist temptation long enough…

Anyway, I have mainly been dreaming of possible applications of fabbers. Their use is extremely competitive (and disruptively innovative) as soon as you want to print customized 3D shapes which can’t be bought from the mass-manufacturing market. For instance, a reprap is cool when you want to print a chocolate 3D version of your face (see the Fab@Home project) or a miniature plastic representation of your home or anything that has a shape which is very specific to your case (not to mention the future goal of printing 90% of complex systems such as robots, portable electronic devices including phones and… fabber-assembling robots…). And this is where 3D scanning is a must : with a 3D scanner, you can scan an existing object and build a 3D model from it which you can then modify and print at the scale you want.

So my dreams lead me to this question : I could get a fabber some time soon but how to also get a desktop 3D scanner ? Some people have already started hacking home 3D scanners. But I had also heard of techniques that allow users to build 3D models from existing objects using either a single picture of the object, 2 pictures, several images or even a small movie. Some techniques require that the parameters of the camera(s) are known (position, angles, distance, …). Some techniques require 2 cameras in a fixed and known setup (stereophotography). Some techniques require that the camera is fixed and the object lies on a turntable. I really know nothing about computer vision and the world of 3D techniques so I was happy to learn new words such as “close-range photogrammetry“, “videogrammetry“, “structure from motion“, “matchmoving“, “motion tracking” (which is the same as matchmoving) or “3D reconstruction“. After some Web wandering, I identified several open source (of course) software packages that could offer some workable path from existing physical objects to 3D models of them using plain cameras or video cameras.

The idea would be the following :

  1. you take an existing, very personal object, for instance your head !
  2. with a common digital camera, you take pictures of your head from several angles
  3. you load these pictures into your favorite 3D reconstruction free software package
  4. it creates a 3D model of your head which you can then export to a 3D editor for possible adjustments (think Blender)
  5. you export your corrected 3D model into the reprap software stuff
  6. your reprap fabs your head out of plastic (or chocolate ?)

Here are the software projects I identified :

  • From a single image :
    • jSVR, Single View Reconstruction, a semi-automatic process for identifying and exporting three-dimensional information from a single un-calibrated image, dead project ?
  • Using a turntable :
  • From stereo images :
  • From a movie or a sequence of pictures :
    • e-Foto, a free GNU/GPL educational digital photogrammetric workstation, but is it suitable for close-range photogrammetry ?
    • Voodoo Camera Tracker, a tool for the integration of virtual and real scenes, estimates camera parameters and reconstructs a 3D scene from image sequences ; oops, this is not free software but freeware only
    • Octave vision, Algorithms for the recovery of structure and motion, using Octave, a one-shot development, no future…
    • Tracking / Structure from Motion, another piece of student homework
    • libmv, a structure from motion library, which plans to one day take raw video footage or photographs, and produce full camera calibration information and dense 3D models, very promising but being rewritten at the moment (August 2008)
    • GPU KLT a high-performance research implementation
  • Using the shadow of a stick (!) :
    • Scanning with Shadows (see also this site), wave a stick in front of a light source to cast a shadow on the object of interest, and figure out its 3D shape by observing the distortion of the shadow
  • Don’t know which technique is used :
    • OpenCV (see also this site), Intel’s Open Computer Vision library may some day contain some 3D reconstruction capabilities
    • Voxelization, a .NET based framework, designed for helping in development of different volume reconstruction, 3D voxel visualization and color consistency algorithms in multi view dynamic scenes, dead project ?

My personal conclusion :

I haven’t tested any of these packages. At the moment, there seems to be no easy-to-use free software package that would compare to commercial stuff such as Photomodeler or ImageModeler or research works such as Microsoft Photosynth. However these techniques and algorithms seem to be mature enough to become present as open source package soon, especially given the emerging interest in 3D scanning for fabbers ! Most promising free packages for scannerless 3D scanning for fabbers are probably Stereo and libmv.

What do you think ?

Alitheia core de SQO-OSS pour mesurer la qualité du code

Monday, August 4th, 2008

Un projet de recherche financé par la commission européenne (SQO-OSS) distribue, sous licence open source bien entendu, un logiciel qui analyse la qualité du code source d’un logiciel. Ce logiciel s’appelle Alitheia.

Alitheia parcourt des dépôts de code du style subversion/CVS (et notamment ceux de sourceforge). Des plugins fournissent des mesures du code (nombre de lignes de code, nombre de lignes de commentaires, etc.). Des modules d’Alitheia effectuent des statistiques à partir de ces mesures afin d’estimer la qualité globale du produit analysé. Alitheia se présente soit sous forme d’une application Web, soit, bientôt, sous forme d’un plugin pour Eclipse.

L’intérêt pratique d’Alitheia me semble actuellement limité: il y a peu de mesures disponibles dans la version de démo en ligne, la version pour Eclipse n’est pas encore disponible, les mesures sont effectuées au niveau de chaque fichier source et ne semblent pas encore agrégées au niveau du projet en lui-même (on peut savoir combien de lignes de commentaires il y a dans tel fichier mais pas dans le projet complet). Actuellement, la fonction la plus amusante semble être la mesure de la “productivité” de chaque développeur.

A terme, ce logiciel me semble très prometteur. Son intérêt dépendra essentiellement de la richesse des plugins de mesure disponibles, de l’existence d’un site public permettant de comparer entre eux les projets phare de sourceforge et tigris par exemple, et de la capacité d’Alitheia à produire des indicateurs agrégés significatifs. En ce qui concerne les plugins de mesure, j’espère qu’on va non seulement avoir des plugins mesurant des caractéristiques du code mais aussi (voire même surtout), des plugins mesurant la qualité de la communauté du projet: fréquence et délai des réponses sur les mailing lists, fréquentation du canal IRC de support, nombre et qualité des plugins et modules additionnels, durée de vie d’une version, etc. A suivre !

(via Le Monde Informatique)

Appel à projets informatiques d’intérêt général

Monday, July 14th, 2008

Vous connaissez un projet informatique qui pourrait contribuer à rendre le monde meilleur ? A sauver la planète ? A créer une innovation Internet d’utilité publique ? Ou juste à faciliter la vie de votre association ? A faire avancer une grande cause ou une toute petite ? A faire avancer la science ? Alors répondez à cet appel car je pense pouvoir booster ce projet en recrutant pour lui des mécènes informatiques.

En effet, dans le cadre de ma nouvelle entreprise, je propose mes services professionnels à tout projet informatique d’intérêt général: je fournis (à coût zéro, cf plus bas) mes compétences en tant que directeur de projets informatiques innovants ainsi que l’accès aux compétences de très nombreux autres ingénieurs informaticiens, sur leur temps de travail. Vous voulez des compétences d’ingénieurs informaticiens pour rendre le monde meilleur ? En voila !

Notez que je ne place, a priori, aucune limitation de thème ou de domaine : lutte contre la pauvreté, recherche scientifique, défense de l’environnement, santé, handicap, protection de l’enfance, etc. peu importe du moment que ce projet va vraiment dans le sens de l’intérêt général et de l’utilité publique (cf. ci-dessous).

Les conditions à remplir

Pour que mon entreprise puisse intervenir, votre projet informatique doit absolument :

  • être “d’intérêt général”, c’est-à-dire être porté par un organisme ayant le droit, en France, d’émettre des reçus fiscaux en échange des dons reçus (mécénat)
  • ne pas être un tout petit projet: il doit nécessiter, de la part des mécènes, au moins 1 ingénieur à temps plein
  • être porté par une équipe déjà active : je peux fournir entre 2 fois et 5 fois le temps que vous passez déjà sur le projet, en tant que bénévoles ou salariés ; si vous ne travaillez pas déjà sur le projet, je ne peux rien faire (0 fois 2 égal 0 !)
  • être un projet qui en vaut vraiment la peine: avoir un véritable impact social, direct ou indirect, une utilité clairement mesurable et motivante, répondre à un défi de société à petite ou à grande échelle, être source, levier ou moteur de changement pour la société…
  • ne pas nécessiter de présence physique importante en dehors de la région parisienne (je démarre petit et près de chez moi, même si je suis un adepte du travail à distance et des “conf call”), bref être plutôt localisé près de Paris

Qu’est-ce qu’un projet informatique d’intérêt général ?

Un projet informatique est d’intérêt général si il est porté par un organisme bénéficiant du régime fiscal français du mécénat. Ah, ah… mystère, qu’est-ce que c’est que ce truc ? La loi française d’août 2003 sur le mécénat reste mal connue mais elle représente une source de revenus importante pour les organismes d’intérêt général. Plusieurs types d’organismes répondent à ce critère. Pour faire simple, il peut s’agir d’une association loi 1901 :

  • à but non lucratif : elle ne reverse pas de TVA, ne paye pas d’impôts sur les sociétés, a des administrateurs et un bureau bénévoles et désintéressés, ne vient pas concurrencer des entreprises commerciales ou alors elle le fait à des prix beaucoup plus bas que le marché et principalement pour un public défavorisé et sans “pratiques commerciales” (publicité, …) ; demandez l’avis d’un comptable si besoin
  • et dont l’objet est à caractère philanthropique, éducatif, social, humanitaire, sportif, familial, culturel, artistique, environnemental, culturel, littéraire, scientifique…
  • et dont les activités ne bénéficient pas à un cercle restreint de personnes (contrairement aux syndicats ou aux associations d’anciens élèves d’une école par exemple …)

Au besoin, une association loi 1901 peut être facilement créée pour porter ce projet (statuts et déclaration en préfecture) et réunir les conditions de l’intérêt général. Il n’y a pas de condition d’ancienneté ni de taille de l’association. Il n’y a pas non plus forcément besoin d’obtenir un agrément administratif (comme ce serait le cas pour les associations “reconnues d’utilité publique”, ce qui est une reconnaissance très difficile à obtenir de nos jours).

Pour en savoir plus sur la notion d’intérêt général, je vous invite à consulter le site mécénat du ministère de la culture ainsi que les explications de l’Association pour le Développement du Mécénat Industriel et Commercial (ADMICAL).

Comment je peux aider, en pratique ?

Si vous consacrez déjà du temps à votre projet, je peux donc démultiplier cet effort.

Exemple: avec 4 autres bénévoles, vous consacrez au moins, chacun, une journée par semaine à votre projet (soit un équivalent temps plein, 5 jours de travail par semaine), alors je peux vous fournir, en complément, l’équivalent de 2 ingénieurs à temps plein (10 jours de travail par semaine), voire plus si votre projet est très simple à gérer.

Cette aide prendra la forme de:

  • un accompagnement permanent par mon entreprise : au moins une demi-journée d’assistance et de conseil par semaine, en fonction du volume de votre projet ; plus un service de représentation et de suivi de votre projet auprès des entreprises mécènes,
  • des interventions individuelles d’un grand nombre (50, 100, 200…?) de professionnels de l’informatique, ingénieurs, techniciens ou consultants, pour des durées variables et parfois courtes (par exemple une semaine), sur leur temps de travail,
  • la possibilité de renforcer votre équipe bénévole par les contributions ultérieures de certains de ces intervenants sur leur temps libre (constitution éventuelle d’une communauté à la mode open source si votre projet s’y prête)
  • l’accès à un système d’information sécurisé sur le Web pour gérer votre projet, vos intervenants, vos relations avec les mécènes et automatiser la gestion de toute la paperasse administrative qui va avec (contrats, convention de mécénat, reçus fiscaux, …)

Comment ça marche ?

Je créé actuellement une entreprise à vocation sociale dont l’objectif est de fournir aux innovateurs sociaux les mêmes moyens informatiques que ceux dont disposent les entreprises les plus modernes. Mon activité s’appuie sur le mécénat de sociétés de services en informatique (SSII) qui s’engagent dans des démarches de “développement durable” (ou, plus exactement, de “responsabilité sociale de l’entreprise”). Elles souhaitent faire du mécénat de compétences en informatique par mon intermédiaire : faire don du temps de travail de leurs ingénieurs et consultants sous la forme d’une prestation de service gratuite gérée via le Web. J’appelle ça “faire du wecena” (Wecena, c’est le nom de ma boîte !).

Le financement de cette aide est indirectement assuré à 100% par l’Etat français, grâce à la loi sur le mécénat des entreprises. En effet, l’Etat accorde une réduction d’impôts importante à toute entreprise qui décide d’aider concrètement un organisme d’intérêt général (don d’argent, don en nature, don de compétences et temps de travail…). Les SSII mécènes que je rencontre sont prêtes à se lancer dans l’aventure en proposant à leurs ingénieurs de faire avancer votre projet pendant ces périodes de temps que l’on appelle l’”inter-contrat” (ou intercontrat ou “période de stand-by” ou …) : il s’agit de ces périodes de quelques jours à quelques mois qui commencent lorsque l’ingénieur termine un projet pour un client et n’est pas encore affecté à un autre projet pour un nouveau client.

Cela impose une contrainte importante dans la gestion de votre projet: les ingénieurs réalisant la prestation de service vont se relayer à un rythme très rapide, certains ne seront présents que 48H tandis que d’autres seront disponibles 2 ou 3 mois dans l’année. La durée moyenne d’intervention individuelle se situe quelque part entre une semaine et un mois (selon le métier de l’intervenant et l’état du marché de l’informatique, et aussi selon la politique du mécène). C’est le rôle de mon entreprise que de vous aider à gérer cette contrainte. Notez que cette contrainte a également quelques avantages : si votre projet est suffisament simple et “découpable” en petites tâches (à l’aide de méthodes et d’outils de gestion adaptées, que je vous fournis), vous aurez ainsi l’occasion de proposer votre cause à une multitude d’intervenants que vous pourrez recruter en autant de bénévoles potentiels une fois leur mission de wecena terminée. C’est par exemple le cas de projets portant sur de l’initiation à l’informatique, de l’animation d’atelier informatique auprès de personnes défavorisées, d’interventions multiples d’installation de PC ou de réseau local… Pour des projets plus complexes (développement, conseil, …), votre implication est plus importante et le wecena ne peut pas représenter plus de 2 fois le temps que vous y consacrez déjà.

Quelques exemples de projet

Pour vous aider à vous faire une idée du type de projet qui peuvent bénéficier du wecena, voici quelques exemples de projets que j’ai déjà présenté à des mécènes :

  • conception et réalisation d’un logiciel innovant pour faciliter l’utilisation du clavier et de la souris par des personnes ayant un handicap moteur
  • amélioration de l’infrastructure informatique d’une ONG travaillant dans la lutte contre l’exclusion: remplacement d’un parc de postes de travail, interventions d’administration système sur des serveurs de fichiers et d’application, …
  • déploiement d’un progiciel de reporting financier sur des prestations de services en mode projet pour une association recevant d’importantes subventions publiques
  • refonte d’applicatifs Web pour la gestion documentaire, la gestion des relations et contacts et la gestion des adhésions pour une association Internet dans le domaine de la famille et de la protection de l’enfance
  • création d’un blog par un écrivain public d’une ONG franco-africaine pour sensibiliser des étudiants français au problématiques du développement Nord-Sud
  • assistance à la webisation d’un système de gestion d’établissements de santé pour une association du secteur sanitaire et social
  • initiations informatiques et formation aux logiciels internes pour des bénévoles retraités d’une association humanitaire

Ce ne sont que quelques exemples pour vous donner le ton. Aucun de ces projets n’a encore démarré.

Avertissement

Mon entreprise en est encore à une phase de démarrage et d’expérimentation. Je ne peux actuellement vous garantir ni que votre projet en particulier sera sélectionné par un mécène (les projets les plus solides et les plus ambitieux auront plus de chances bien entendu) ni même de pouvoir démarrer mon accompagnement tout de suite. En effet, l’aide que je peux vous apporter est en soi un projet (créer une entreprise…) : j’y crois énormément puisque j’ai quitté mon employeur précédent pour me lancer dans cette aventure, et j’y consacre tout mon temps et mes compétences. Mais, ceci dit, démarrer ce genre d’entreprise sociale innovante prend du temps et représente aussi une part de risque, d’incertitude, bref d’aventure… Le premier projet que j’accompagnerai pourrait démarrer fin 2008 (si les étoiles s’alignent comme prévu) ou au plus tard début 2009 (si j’ai moins de chance). Les mécènes que je rencontre sont déjà sur le pied de guerre et ont déjà commencé à examiner les projets informatiques que je leur présente. Certains ont déjà exprimé leur préférence et se mettent en ordre de bataille… En croisant les doigts, j’espère qu’un premier projet pourrait démarrer peu après la rentrée scolaire 2008.

Pour participer à l’aventure…

Vous connaissez une équipe qui porte un projet informatique d’intérêt général et a besoin de temps d’informaticiens pour aller plus loin et plus vite ? Faites-lui suivre l’adresse de cet article !

Votre projet répond aux conditions présentées ci-dessus ?  Pour vous en assurer, posez la question via un commentaire ci-dessous ou contactez-moi directement par email à l’adresse suivante: projets (chez) wecena (point) com ou bien encore à mon adresse de blogueur: sig (chez) akasig (point) org. Le site Web de mon entreprise ne devrait pas ouvrir ses portes avant le démarrage du premier projet. En attendant, c’est ici que ça se passe. Vous avez des conseils à me donner, des avis ou des contacts à partager ou des suggestions à faire ? Ils seront bienvenus: je vous invite également à utiliser la fonction commentaires de ce blog.

Plone + Freemind = eternal love ?

Thursday, June 19th, 2008

Congratulations to Plone and Freemind, two great open source software packages, which have celebrated weddings recently and have promptly released a new born “Plone Freemind v.1.0” extension product for Plone. I have been really fond of Plone and Freemind for several years now. It’s good news to learn that Freemind mindmaps can now be published and managed via a Plone site… even though I yet have to imagine some valuable use for this ! :)

Mécénat de compétences en informatique: marché d’avenir!

Tuesday, June 17th, 2008

Une étude commanditée par l’Admical, l’association pour le développement du mécénat, le confirme: ma petite entreprise de mécénat de compétences en informatique est bien sur un marché en croissance. Quelques chiffres extraits de l’étude [Edit: avec mes commentaires sans italiques] :

  • 64% du mécénat est le fait du secteur des services, “mes” mécènes sont des sociétés de service en informatique,
  • 47% des mécènes ont une action dans le secteur de la solidarité, c’est dans ce secteur que sont la plupart des associations que je représente,
  • 45% des entreprises de plus de 200 salariés font du mécénat de compétences (vs. 31% dans l’étude précédente), mon offre est un dispositif de mécénat de compétences en informatique, pour sociétés de services en informatique

Pierre Levy vs Tim Berners-Lee, round 0.1

Wednesday, May 14th, 2008

Yesterday, I attended a research seminar at the “Université de Paris 8″. Pierre Levy is a philosopher and professor and head of the collective intelligence chair at the University of Ottawa, Canada. He presented the latest developments in his work on IEML, which stands for Information Economy Meta Language. Things are taking shape on this side and this presentation gave me the opportunity to better understand how IEML compares to the technologies of the Semantic Web (SW).

IEML: not another layer on top of the SW cake

IEML is proposed as an alternative to SW ontologies. In SW, the basic technology is URI (Uniform Resource Identifier) which uniquely (and hopefully permanently) identify concepts (”resources”). Triples then combine these URIs into assertions which then form a graph of meaning that is called an ontology. IEML introduces identifiers which are not URIs. The main difference between URIs and IEML identifiers is that IEML identifiers are semantically rich. They carry meaning. They are meaningful. From a given IEML identifier, one could derive some (or ideally all?) of the semantics of the concept it identifies. Indeed these identifiers are composed of 6 semantic primitives. These 6 primitives are Emptiness, Virtual, Actual, Sign, Being, Thing (E,V,A,S,V and T) and were chosen to be as universal as possible, i.e. not dependent on any specific culture or natural language. The IEML grammar is a way to combine these primitives and logically build concepts with them (also using the notion of triples-based graphs). These primitives are comparable to the 4 bases of DNA (A,C,T and G) that are combined into a complex polymer (DNA) : with a limited alphabet, IEML can express an astronomically huge number of concepts in the same way the 4 letters-alphabet of DNA can express a huge number of phenotypes.

Meaningness of identifiers

When I realized that the meaningful IEML identifiers are similar in their role to URIs, my first reaction was of being horrified. I have struggled for years against “old-school” IT workers who tend to rely on database keys for deriving properties of records. In a former life in the IT department of big industrial corporation, I was highly paid to design and impose a meaningless unique person identifier in order to uniquely and permanently identify the 200 000 employees and contractors of that multinational company in its corporate directory. The main superiority in meaningless identifiers is probably that they can be permanent: you don’t have to change the identifier of an object (of a person for instance) when some property of this object changes over time (the color of the hair of the person, or Miss Dupont getting married and getting called Misses Durand while still keeping the same corporate identifier).

The same is true for URIs whenever it is feasible: if a given resource is to change over time, its URI should not be dependent on its variable property (http://someone.com/blond/big/MissDurand having to change into http://someone.com/white/big/MissesDupont is a bad thing).

The same may not be true when concepts (not people) are to be identified. Concepts are supposed to be permanent and abstract things with IEML (as in the SW I guess). If some meaningful semantic component of a given concept changes then… it’s no longer the same concept (even though we may keep using the same word in a natural language in order to identify this derived concept).

In the old days, IT workers used to introduce meaning in identifiers so that (database) records could more easily be managed by humans, especially during tasks like visually classifying or sorting records in a table or getting an immediate overview of what a given record is about. But this often got seen as a bad practice when the cost of storage (having specific fields for properties that used to be stored as part of a DB key) and the cost of computation (getting a GUI for querying/filtering a DB based on properties) got lower. More often that not, the meaningful key was not permanent and this introduced perverse effects including having to assign a new key to a given record when some property changed or managing human errors when the properties “as seen in the key” were no longer in sync with the “real” properties of the record according to some field.

That’s probably part of the rationale behind the best practices in URI design and web architecture: an URI should be as permanent as possible I guess, in order not to change when the properties of a resource it identifies change over time. Thus web architectures are made more robust to time.

With IEML, we are back to the ol’times of meaningful identifiers. Is it such a bad thing ? Probably not because the power of IEML relies in the meaningness of these identifiers which allow all sorts of computational operations on the concepts. Anyway, that’s probably one of the biggest basic difference between IEML and the SW ontologies.

Matching concepts with IEML

Another aspect of IEML struck me yesterday: IEML gives no magic solution to the problem of mapping (or matching) concepts together. In the SW universe, there is this recurring issue of getting two experts or ontologies agree on the equivalence of 2 resources/concepts: are they really the same concept expressed with distinct but equivalent URIs ? or are they distinct concepts ? How to solve semantic ambiguities ? Unless we get a solution to this issue, the grand graph of semantic data can’t be universally unified and people get isolated in semantic islands which are nothing more than badly interconnected domain ontologies. This is called the problem of semantic integration,  ontology mapping, ontology matching or ontology alignment.

A couple of years ago, I hoped that IEML would solve this issue. IEML being such a regular and to-be-universal language, one could project any concept onto the IEML semantic space and obtain the coordinates (identifier) of this concept in this space. A second person or expert or ontology could also project its own concepts. Then it would just be a matter of calculating the distance between these points in the IEML space. (IEML provides ways of calculating such distances). And if the distance was inferior to some threshold, 2 concepts could then be considered as equivalent for a given pragmatic purpose.

But yesterday, I realized that the art of projecting concepts into the IEML space (i.e. assigning an identifier to a concept) is very subjective. Even though a Pierre Levy could propose a 3000-concepts dictionary that assigns IEML coordinates (identifiers) to concepts that are also identified by a short natural language sentence (like in a classic dictionary), this would not prevent a Tim Berners-Lee to come with a very different dictionary that assigns different coordinates to the same described concepts. Thus the distance between a Pierre-Levy-based IEML word and a TBL-based IEML word would be … meaningless.

In the SW, there is a basic assumption that anyone may come with a different URI for the same concepts and the URIs have to be associated via a “same as” property so that they are said to refer to the very same concept. When you get to bunches of URIs (2 ontologies for instance), you then have to match these URIs which refer to the same concepts. You have to align these ontologies. This can be a very tedious, manual and tricky process. The SW does not unify concepts. It only provides a syntax to represent and handle them. Humans still have to interprete them and match them together when they want to communicate with each other and agree on the meaning that these ontologies carry.

The same is more or less true with IEML. With IEML, identifiers are not arbitrarily defined (meaningful identifiers) whereas SW URIs are almost arbitrarily defined (meaningless identifiers). But the meaningful IEML identifiers only carry human meaning if they refer to the same (or similar) human/IEML dictionary.

Hence it seems to me that IEML is only valuable if some consensus exists about how to translate human concepts into the IEML space. It is only valuable to the extent that there is some universally accepted IEML dictionary. At least for basic concepts (primitives and simple combinations of IEML primitives). The same is true in the universe of SW technologies and there are some attemps at building “top ontologies” that are proposed as shared referentials for ontology builders to align their own ontologies with. But the alignment process, even if theoretically made easier with the existence of these top ontologies is still tricky, tedious and costly. And the critical mass has not been reached in sharing the use of such top ontologies. There is no top consensus to refer to.

Pierre Levy proposes a dictionary of about 3000 IEML words (identifiers) that represent almost all possible low-level combinations of IEML primitives. He invites people to enhance or extend his dictionary, or to come with their own dictionaries. Let’s assume that only minor changes are made to the basic Pierre Levy dictionary. Let’s assume that several conflicting dictionary extensions are made for more precise concepts (higher-level combinations of IEML primitives) . Given the fact that these conflicting extensions still share a basic foundation (the basic Pierre Levy dictionary), would the process of comparing and possibly matching IEML-expressed concepts be made easier ? Even though IEML does not give any automagical solution to the problem of ontology mapping, I wonder whether it makes things easier or not.

In other words, is IEML a superior alternative to SW ontologies ?

Apples and bananas

Yesterday, someone asked: “If someone assigns IEML coordinates to the concept of bananas, how will these coordinates compare to the concept of apples ?” The answer did not satisfy me because it was along the lines of : “IEML may not be the right tool for comparing bananas to apples.”. I don’t see why it would be more suitable for comparing competencies to achievements than for comparing bananas to apples. Or I misunderstood the answer. Anyway…

Pierre Levy made much effort in describing the properties of his abstract IEML space so that IT programmers could start programming libraries for handling and processing IEML coordinates and operations. There even is a programming language being developped that allows semantic functions and operations to be applied to IEML graphs and to allow quantities (economic values, energy potentials, distances) to flow along IEML-based semantic graphs. Hence the name of Information Economy.

So there are (or will soon be) tools and services for surviving in the IEML space. But I strongly feel that there is a lack of tools for moving back and forth between the world of humans and the IEML space. How would you say “bananas” in IEML ? Assuming this concept is not already in a consensual dictionary.

As far as I understand the process of assigning IEML coordinates to the concept of “bananas” is somehow similar to the process of guessing the “right” (or best?) chinese ideogram for bananas. I don’t speak chinese at all. But I imagine one would have to combine existing ideograms that would best describe what a banana is. For instance, “bananas” could be written with a combination of the ideograms that mean “fruits of herbaceous plant cultivated throughout the tropics and grow in hanging clusters“. It could also be written with a combination of the ideograms that mean “fruits of the plants of the genus Musa that are native to the tropical region of Southeast Asia and Australia.” Distinct definitions of bananas could refer to distinct combinations of existing IEML concepts (fruits + herbaceous plant + hanging clusters + tropics or fruits + plants + genus Musa + Southeast Asia + Australia). Would the resulting IEML coordinates be far away from each other ? Could a machine infer that these concepts are closely related if not practically equivalent to each other ? How dependent would the resulting distance be on conflicts or errors in underlying IEML dictionaries ?

I ended the day with this question in my mind: How robust is the IEML translation process to human conflicts, disagreements and errors ? Is it more robust than the process of building and aligning SW ontologies ? Its robustness seems to me as the main determinent factor of the feasibility of the new collective-intelligence-based civilization Pierre Levy promises. If only there were a paper comparing this process to what the SW already provides, I guess people would realize the value of IEML.