Archives pour la catégorie My wishlist

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

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

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.

Non aux agrégateurs de données personnelles

J’aime bien cette lettre ouverte de Philippe Coueignoux adressée à la Commission Européenne, au sujet du rachat de doubleclick par Google. Le message, sur le plan technique, est le suivant: la personnalisation de la publicité ne nécessite pas la collecte, la conservation, le transfert, bref l’agrégation de données personnelles. Pour que le consommateur bénéficie de pubs personnalisée, on peut faire autrement (et mieux) que créer des Big Brother façon Google + doubleclick.

Ah, si seulement certaines « tech’companies » (suivez mon regard) réussissaient à le comprendre… Il y a là un marché à prendre et pourtant, tout le monde essaie de suivre Google et d’avoir sa part du gâteau dans le Big Brothership… :-( Merci Philippe Coueignoux! Je ne sais pas ce que vaut son alternative à lui mais son point de vue vaut de l’or. Après l’essor du « green business » (produits verts), on connaîtra peut-être enfin celui du « privacy business »?

Isabelle Aubry, femme formidable

Votez. Votez pour qu’Isabelle Aubry remporte le « prix des femmes formidables » d’un magazine féminin (il suffit de 3 clics). Cela lui permettra d’importer en France une thérapie canadienne efficace pour aider des personnes « cassées » par l’inceste à se reconstruire.

Oui, oui, l’inceste. L’interdit absolu, une base de notre humanité. Le truc impensable. Le truc qu’on ne peut pas dire et qu’on peut encore moins imaginer. Le truc qui fait que tel(le) collègue, tel(le) ami(e) que vous avez a souvent le vague à l’âme sans que l’on sache trop pourquoi, le truc qui fait qu’un(e)tel(le) s’est suicidé(e) sans qu’on ait vraiment compris pourquoi, le truc qui fait que tel(le) autre a basculé dans la violence, la drogue, la prostitution ou tout banalement la maltraitance de ses enfants voire la pédophilie. Je connais et ai pas mal discuté avec des victimes de l’inceste, qui sont des survivants et survivantes de l’inceste (maintenant adultes), avec des histoires de famille (car c’est de ça dont il s’agit généralement) toutes plus horribles et plus banales les unes que les autres. Suis-je quelqu’un à part pour autant? Malheureusement non. Vous aussi, vous cotoyez probablement des survivants et des survivantes, mais sans le savoir. Si, si. Etre fier d’avoir survécu à l’inceste, et avoir la force d’en faire un combat, ce n’est pas courant. L’inceste est tû si ce n’est pas ignoré ou refoulé. Et pourtant, ses ravages invisibles se prolongent des dizaines années après et, malheureusement, peuvent parfois se propager de génération en génération sous une forme ou une autre. Vous n’y croyez pas? C’est que vous avez peut-être la chance de ne pas avoir découvert toute l’horreur de la chose.

Isabelle Aubry a créé l’association internationale des victimes de l’inceste (AIVI). Elle fait tout pour que le tabou de l’inceste soit levé, que les gens osent parler et écouter, pour que des thérapeutiques efficaces soient enfin proposées aux victimes et pour que l’inceste soit reconnu comme un crime par la loi (et non pas comme une forme comme une autre de viol ou d’abus sexuel, alors que ses conséquences psychologiques sont tellement plus lourdes). Bref, c’est une femme bien, j’en témoigne. Grâce à elle, peut être que l’on rétablira certaines priorités: vaut-il mieux s’offusquer du fait que des pédophiles utilisent Internet pour leurs perversions? s’effrayer que des « prédateurs » enlèvent les petits enfants? ou bien commencer à s’intéresser aux victimes de l’inceste, dans toute la banalité de l’horreur qu’ils ont vécu, loin d’Internet et des kidnappeurs télégéniques mais trop près de certains membres de leurs familles dysfonctionnelles?

Enfin bon, vous avez compris le message: votez pour Isabelle Aubry sinon je vous fais les gros yeux (en général, c’est une menace qui marche bien avec mes enfants).

Téléphoner gratuitement

Je vais bientôt déménager. Donc je n’aurai plus mon abonnement Free pendant quelques semaines. Or j’ai besoin de continuer à téléphoner gratuitement (ou à bas coût) depuis mon PC. Il me faut donc un fournisseur de service Voix-sur-IP (VoIP) pas cher, et supportant le protocole SIP (pour que je puisse appeler depuis n’importe quel logiciel compatible SIP). En plus, ce serait bien que je dispose également d’un numéro de téléphone pour que les gens puissent me joindre autrement que via mon portable. J’ai donc effectué quelques recherches sur le Net. Voici mes résultats.

Première observation: il y a des milliers de fournisseur de service VoIP pas cher! des dizaines de services différents offerts (avec ou sans numéro de téléphone local, avec ou sans boîte vocale, avec ou sans transfert d’appel, avec ou sans bla bla bla). Dur, dur de faire son choix. Donc je cherche des comparateurs et des avis sur des forums.

Je trouve ce comparateur d’offre de téléphonie couplés à l’accès DSL (comme Free et bien d’autres). J’y constate que, pour appeler les téléphones portables, Free est loin d’être le fournisseur le moins cher. C’est Alice qui gagne actuellement. Mais Alice n’offre pas de téléphonie compatible SIP. Bon, de toute façon, ça ne me concerne pas puisque, pour accéder à Internet, j’utilise déjà un autre service (sans téléphonie pour moi) sur mon lieu de travail. Continuons.

Idéalement, j’aurais besoin de quoi? D’un numéro géographique (01…) que les gens puissent appeler gratuitement ou pas cher. D’un widget Web pour que les gens puissent m’appeler depuis mon site Web, soit depuis leur softphone si ils en ont un, soit ils entrent leur propre numéro de téléphone et c’est mon opérateur qui établit la communication à mes frais. Il faudrait que ce service supporte une règle de routage comme la suivante. Si mon softphone SIP est connecté et disponible, c’est lui qui sonne (éventuellement il s’agira d’un softphone SIP sur un terminal mobile). Sinon, ça sonne sur mon portable GSM (renvoi d’appel à mes frais). Et si pas de réponse, l’appel arrive sur ma messagerie vocale et je reçois le message par mail (en MP3 par exemple) et/ou éventuellement en podcast sur un flux sécurisé.

Pour les appels sortant, n’importe quel téléphone SIP devrait être supporté.

Pour commencer, quel est le fournisseur le plus intéressant pour les appels sortants? Pas Skype bien sûr (pas de SIP). Voyons-voir ce comparateur de myvoipprovider… Il connaît pas grand chose pour la France et indique que NetAppel serait le moins cher avec Wengo. Ce qui est bien avec Wengo, c’est qu’ils sont une filiale d’un grand groupe (Neuf/Cegetel) donc ça fait sérieux. Et ils aiment l’open source (ils éditent un softphone SIP open source, qu’ils intègrent à leur service). Mais en faisant des tests de leur service avec un autre softphone SIP (SJPhone en l’occurence), j’ai été déçu de la qualité de l’appel (grésillement, souffle) par rapport à la qualité moyenne de chez Free. Ce comparateur sur voipproducts.eu indique également que Wengo est le moins cher (un centime d’euro la minute en 2006) mais je suis surpris du faible nombre d’opérateurs qui sont comparés ici. Qui est-ce qui manque?

J’avais loupé cet autre comparatif de myvoipprovider. Et un rapide coup d’oeil à la blogosphère se révèle utile: les fournisseurs de VoIP largement moins chers que les autres sont les franchises du groupe Betamax-Finarea (NetAppel est un exemple francophone de cette franchise). Ce groupe allemand est le low cost de la VoIP (alors que la VoIP est déjà une solution low cost par rapport à la téléphonie traditionnel). Hop, je me créé un compte gratuit chez quelques fournisseurs Betamax et je teste: pas mal pour la qualité. Et c’est gratuit pour les lignes fixes en France, donc. Sous condition?

En plus, ces fournisseurs Betamax sont compatibles SIP. Mieux encore, ils utilisent la même infrastructure (les même serveurs) donc je peux utiliser le nom de machine de n’importe lequel de ces fournisseurs pour configurer mes comptes SIP sur mon softphone pour tous les fournisseurs Betamax. Exemple sur SJPhone: j’utilise sip.lowvoiprate.com comme nom de domaine SIP aussi bien pour configurer mon compte chez lowratevoip.com que chez justvoip.com ou encore webcalldirect.com. Il n’y a que le nom d’utilisateur et le mot de passe qui changent. C’est plus facile.

Reste une question: vu que tous ces fournisseurs Betamax n’ont pas les mêmes conditions tarifaires, lequel choisir? Il y a deux comparatifs de tarifs d’appel disponibles pour se décider. Pour les lignes fixes: appels gratuits. Pour les mobiles: 5 centimes d’euros par minute pour le moins cher… Exemple chez lowratevoip:

Registered users get max 200 minutes per week of free calls, measured over the last 7 days and per unique IP address. Unused free minutes cannot be taken to the following week(s). If limit is exceeded the normal rates apply. During your Freedays you can call all destinations listed as « Free » for free. When you have run out of Freedays, the normal rates apply. You can get extra Freedays by buying credit.

Un peu compliqué quand-même. Mais expliqué ici et là. Ils restent quand-même les moins chers malgré tout, il semblerait. Et j’ai l’impression de pouvoir cumuler mes minutes gratuites de plusieurs fournisseurs betamax, ce qui m’offre de nombreuses heures d’appels gratuits chaque semaine. Ca me va!

Ah, oui, l’idéal serait aussi que mon softphone puisse se connecter simultanément à tous mes comptes SIP et que je sélectionne facilement le moins cher avec lequel appeler. Idéalement cette sélection se ferait toute seule en utilisant un service de comparateur en ligne… Mais bon… Faut pas rêver. Au moins se connecter à un compte SIP pour les appels sortant et à un ou plusieurs autres pour les appels entrant, ce serait super. Mais je ne sais pas encore comment faire.

Maintenant, comment me faire appeler? Je n’ai pas envie que les gens aient à composer un numéro à 17 chiffres. Ce qu’il me faut, c’est un DID ou « numéro virtuel », en l’occurence un numéro virtuel géographique localisé à Paris pour que les parisiens puissent m’appeler au tarif local. Il y a un sacrément beaucoup très gros paquet de fournisseurs de DID. Soit on est facturé à la minute d’appel reçu soit par un forfait. Optons pour le forfait. Les prix les moins chers semblent commencer à 2 EUR par mois. Euh, non, par les fournisseurs Betamax, on ne paie que 1 EUR par mois! Il y a des fournisseurs de DID gratuits mais pas pour des numéros géographiques français. Et si je prenais un numéro aux USA? en Angleterre? en Allemagne? en Italie

Résumons-nous: pour les appels sortant, je cumulerai plusieurs fournisseurs Betamax histoire d’utiliser le maximum de minutes gratuites. Pour les appels entrants, soit je prends un numéro gratuit à l’étranger soit un numéro français à 1 EUR par mois. Ou alors je prends tout Wengo parce que c’est plus clair et plus simple. Mmmm….

Au cours de mes pérégrinations, j’ai rencontré plusieurs fournisseurs (gratuits… ou presque) de services de VoIP intéressants: boîte vocale sur un numéro UK, création en ligne d’application de téléphonie interactive hébergée, hébergeur de central téléphonique virtuel (il y en a aussi un paquet)…

Mon nouveau projet

Christian et Etum l’ont bien senti. :-) Je me relance dans une nouvelle aventure: la création d’une entreprise sociale ayant pour vocation de créer des Innovations Internet d’Utilité Publique.

Il y a deux ans, j’avais tenté d’identifier qui, en France, pouvait être créateur d’Innovations Internet d’Utilité Publique. Je n’étais pas revenu bredouille de mon expédition… mais presque. Depuis deux ans, j’ai travaillé à créer de l’innovation Internet (et mobilité) à vocation commerciale (recherche en applications mobiles Web 2.0ish). Maintenant, je vais essayer d’ajouter l’ingrédient « utilité publique » ou « intérêt général » à la sauce et voir si ça prend sous forme d’une activité professionnelle (et commerciale).

Concrètement, j’ai quitté mon job depuis le mois dernier et je prépare mon projet. Ca s’est décidé vite: un plan social a été annoncé au printemps et l’un de mes collègues aux compétences proches des miennes était sur la sellette. Au même moment, j’avais mon idée et la promesse d’une petite cagnotte si je me portais volontaire pour monter dans la charrette à la place de ce collègue. Tout le monde s’est mis d’accord et hop.

J’ai commencé par acquérir quelques connaissances qui me manquaient (notamment dans le domaine juridique), à tester mon idée auprès de prospects, à mobiliser quelques fournisseurs et à concevoir un peu d’outillage logiciel. Mes premiers contacts commerciaux sont plutôt positifs mais rien n’est joué tant que rien n’est fait ou signé! Alors je reste prudent.

Dans mon projet, il y a plein d’ingrédients bons pour la santé: un gros paquet d’open source et de prestation de service informatique, un fond de citoyenneté d’entreprise et de politiques de développement durable, une sauce épicée à l’Economie de communion, peut-être une pincée de coopératisme et un maximum d’innovation sociale et d’intérêt général.

Mes gènes de paranoïaque me mettent un peu mal à l’aise pour tout vous raconter ici dès aujourd’hui dans la mesure où, enthousiasme et extraversion obligent, j’aimerais tout vous dire mais j’ai un peu peur qu’en en disant trop, on dévoie mon idée avant que j’ai eu le temps de dire ouf. C’est sans doute idiot. C’est d’autant plus idiot que je voudrais que mon idée soit reprise par d’autres! Mais je sais pas encore comment alors il faut que j’y pense encore un peu avant de tout déballer n’importe comment.

En attendant, je vous invite à rêver. J’ai un génie dans ma bouteille. Il peut réaliser vos innovations Internet d’utilité publiques les plus folles. Il suffit d’en faire le souhait en postant un commentaire ci-dessous. Quel usage, service ou technologie Internet devrait-on répandre à travers le monde pour rendre celui-ci meilleur, pour aider à résoudre certains problèmes de société? Quels sont les problèmes de sociétés les plus cruels et pour lesquels il n’existe pas (encore) de technologie Internet uniquement faute d’intérêt commercial évident? Qui sont les entrepreneurs sociaux qui pourraient démultiplier leur puissance de changement social si seulement on leur forgeait quelques bons outils modernes? Quel sujet de société vous tient le plus à coeur pour que mon génie y consacre un peu de sa magie?

Connecting romanian gypsies: social or digital divide?

I’ve got a nice anecdotal evidence of the fact that digital divide is easier to bridge than social divide. Two years ago, I applauded the initiative « Internet de rue » (Internet-in-the-street?) by a French non-profit. They went to extremely poor families near Paris and provided them with access to Internet technology and used that opportunity for developping relationships with these families and see if and how technology can be used for social purposes aimed at reducting poverty. Some of these families were romanian gypsies who emigrated to France. One of the families asked about the feasibility of sharing family pictures via the Internet with the rest of the family who stayed in a Romanian village (Garla Mare, Mehedinti region). Therefore, I published a call to any volunteer who could visit that Romanian village and organize some kind of community Internet workshop for the benefit of these families both in France and in Romania (the French non-profit would do the French side of the operation). I later tried to do something with colleagues located in Bucarest. All of this lead to no concrete result at the time. The digital divide seemed wide and difficult to bridge.

Recently, that old blog call for volunteers generated some discussion with (non-gypsy) Romanians who expressed their indignation and anger of being possibly confused with gypsies by « people from rich countries » at various (which is really a stupid confusion). That discussion also dealt with how gypsies are victims of social exclusion possibly based on racial grounds but also based on blunter considerations such as « gypsies being recognized for their criminal behaviors and dirtyness » and some gypsies « living in palaces while still being said to be living in poverty ». I felt shocked by the arguments being used in that discussion. I can now guess that most Romanian would probably refuse being in touch with gypsy families. This social exclusion phenomenon is what I call the social divide in that case.

Which is the most difficult divide to bridge? The digital one (Internet connectivty, access to equipment and training) or the social one (exclusion, communautarism, possibly racism)?

Finally, a Romanian colleague of mine is providing the anecdotal evidence that the social one may be the most prevallent:

:)) I think I’ve won the bet.
Here is a link about the internet in Mehedinti:
http://www.newscafe.ro/content/view/10583/119/

On paragraph 2 is saying that as part of a program EuDiS, Garla Mare is one of the villages where the Internet on fibre-optic is available from 2006 and it is free in the school. :))

What’s next? Assuming that the family located in France can still be contacted by the French non-profit (which is much unsure because they move a lot of course) and that their Romanian counterpart is still located in or near Garla Mare, access to Internet technology is now available at low cost to both of them. But who would bridge the remaining social gap? Is Romanian Internet connectivity accessible to Romanian gypsies in the same village or area? Is the gypsy/non-gypsy social divide that strong that gypsy families in Garla Mare would not get access to the network? Will some social hero appear in that story and finally connect the unconnected?

While comfortably sitting in my French and cosy armchair, I’ll tell you the rest of the story as it flows into reality… ;)

Appel à l’agilité

Imaginez un peu… Un projet informatique… Une équipe d’informaticiens… Et un taux de rotation des effectifs comme on n’en a jamais cauchemardé dans les pires des SSII offshore en Inde: les personnes restent rarement plus de 3 semaines/un mois sur le projet !

C’est le challenge méthodologique des missions solidaires pour prestataires en inter contrat: des prestas qui se relaient dans une équipe projet auprès d’une ONG le temps qu’on leur retrouve une « vraie » mission. Badr Chentouf soulignait l’importance de ce challenge méthodologique dans un commentaire récent. Comment rendre productive une telle équipe projet dont le gros des troupes ne reste que très peu de temps? Comment limiter la « charge d’entrée » sur le projet? Comment modeler la courbe d’apprentissage?

Dans un tel contexte, les méthodes les plus agiles pourraient paraitre on ne peut plus rigides et inadéquates, non? L’eXtreme Programming n’a pas été conçu pour gérer ce genre de situation, pas vrai?

Et même si, dans les communautés open source, on peut intervenir en peu de temps pour proposer un patch ou corriger un bug, la communauté repose sur des piliers permanents qui suivent le projet depuis de longues années et assurent que le mouvement brownien des contributeurs se traduit en évolution réelle à moyen terme.

Les outils de gestion de connaissances les plus ambitieux proposent de partager la connaissance des experts de l’entreprise avant qu’ils ne partent à la retraite. Mais il faut tout de même de longues semaines d’interview, de modélisation et de mise au point avant de bénéficier d’un système utile pour les successeurs de l’expert. Que faire en 15 jours? En mode incrémental…
Alors que faire? Comment organiser le travail et gérer sa continuité? Comment le coordonner? Comment transférer de la connaissance aux nouveaux arrivant en un temps record?

Ajouter dans l’équipe deux ou trois stagiaires qui sont là pour six mois et garantissent la continuité de la connaissance? Utiliser les méthodes comme XP en insistant sur le « pair programming » et la rotation des paires? Mettre au contraire le paquet sur la modélisation formelle à grands coups d’UML? Modéliser la connaissance du projet dans une usine à gaz de knowledge management (une « corporate memory »)? Ne jurer à l’inverse que par les wikis? S’appuyer sur un dictateur bienveillant mais bénévole et non présent sur site, qui agit comme « gatekeeper » sur le code produit? Inventer une nouvelle méthode agile à faire pâlir d’envie ses cousines?

Je n’ai pas la solution complète mais si on la trouvait, cela permettrait de mettre les meilleures technologies à la portée des ambitions des entrepreneurs sociaux les plus innovants. Quelles pistes de réflexion pourriez-vous partager?

Web scraping, web mashing

5 Ways to Mix, Rip, and Mash Your Data introduces promising web and desktop applications that extract structured data feeds from web sites and mix them together into something possibly useful to you. Think of things like getting filtered Monster job ads as a convenient RSS feed, along with job ads from your other favorite job sites. This reminds me my Python hacks for automating web crawling and web scraping. Sometimes, I wish I could find time for working a bit further on that…

Missions solidaires pour prestas en intercontrat

Christian, Bader, Jef et Jjay m’ont donné quelques pistes pour améliorer mon idée: comment convaincre des sociétés informatiques de s’investir dans des projets technologiques à vocation solidaire? Merci à tous les 4!
Un gros risque, c’est que ce genre de choses « terminent à la comm' » comme l’indique Christian. Les SSII n’ont probablement « aucune velléité de changer le monde », en tout cas, ce n’est pas leur vocation. Leur préoccupation évidente semble être « le profit court terme ». Mais pourquoi les SSII n’emploient-elles pas leurs prestataires en inter-contrat à des projets profitables pour elles à plus long terme (projets internes, contribution open source, …) plutôt que de les laisser moisir dans un coin le temps qu’un commercial arrive à les recaser chez un client? D’une boîte à l’autre et d’une personne à l’autre, l’inter-contrat est vécu plus ou moins bien, avec des situations parfois cocasses. En tout cas, l’intercontrat est une source de problèmes pour les SSII et pour leurs employés.

D’un autre côté, il y a peut-être des leviers accessibles pour faire changer cette situation et, du même coup, répondre aux besoins technologiques des innovateurs sociaux.

La notion d’entrepreuriat social, ou d’ethique est très à la mode chez toutes les entreprises qui ont une médiocre image de ce côté là (ça inclue banques et SSII amha).

Que faire? Voici vos suggestions:

faire que les CLIENTS des SSII soient attentifs à ces démarches (dans leur processus de décision ), et comme par hasard tout se débloque

[Peut-être créer des] jeux-projets-concours [:] sélection des meilleurs projets et financement + aide logistique, ça peut marcher.

[De toute façon,] les idées ne peuvent pas venir de l’intérieur [et il faut que la solution permette d’] identifier une retombée financière à quelques mois

Ce n’est pas les SSII qu’il faut convaincre mais d’abord ceux qui travaille dans ces entreprises (de préférence d’une taille respectable à mon avis). S’ils sont motivés ils peuvent faire bouger leur management et toi tu peux les aider à trouver les arguments pour cela.

J’ai envie d’extraire de ces suggestions quelques éléments pour un cahier des charges : la solution doit…

  • apporter une carotte économique pour la SSII, du profit à court terme, peut-être en impliquant certains clients
  • s’appuyer à fond sur la motivation des employés, exploiter celle-ci par des formes d’animation adéquates
  • être économique viable (entreprise sociale, donc entreprise également)

Et si on achetait les prestataires en inter-contrats à leur SSII à un pourcentage symbolique de leur tarif journalier habituel? Cela fournirait l’incitation économique à leur SSII: « Du moment que je sais que je peux disposer de cet intercontrat dès que je le veux pour le mettre chez en client, pourquoi ne pas le vendre à 1% de son prix habituel à un client ‘entreprise sociale’. Si, en plus, ça redore un peu l’image de marque de la boîte et que ça motive certains employés, c’est ça de gagné en plus! »?

Et si ce montant symbolique était réuni par les employés motivés pour participer à l’opération et changer le monde à leur échelle? Pour 10 à 20 employés en mission (selon les périodes et les sociétés), il y en a, disons, 1 en intercontrat. Avec un abonnement/cotisation de quelques dizaines ou centaines d’euros par an et par personne, on réunit le montant nécessaire pour financer une mission solidaire. « Aujourd’hui, je suis chez un client. Mais demain, ça pourrait être moi en intercontrat. Alors, comme j’aimerais bien que certains de mes collègues et moi puissions avoir un véritable impact sur l’environnement/les plus pauvres/la démocratie/le développement des pays du Sud/la priorité de mon choix grâce à ce que l’on sait faire le mieux (la techno), j’achète avec eux le droit de participer à une telle mission lors de mon prochain intercontrat ».

Cette solution consisterait donc à créer un fournisseur de missions solidaires pour prestataires en intercontrat. Les clients sont des prestas qui veulent profiter d’un futur intercontrat pour essayer de changer le monde à leur échelle (plutôt que de se faire chier à éviter les patates et à traîner dans l’agence ou au siège). Les produits sont des missions à forte qualité sociale/environnementale pilotées par des pros du secteur, des gens de terrain qui peuvent vite faire sentir au presta les problèmes sociaux/environnementaux ou autres à traiter. Les autres fournisseurs, ce sont des SSII qui voient d’un bon oeil l’idée d’arrondir leurs fins de mois en vendant certains intercontrats sur un second marché, ultra-discount.

Comment répondre aux questions que ce genre de proposition pourrait soulever? Qu’est-ce qui donnerait suffisamment envie et confiance à un presta pour qu’il achète à l’avance, avec des collègues, son droit de participer à une mission technologique solidaire sur le terrain de son choix? Cette idée a sans doute un côté complètement délirant, mais qu’est-ce qu’on pourrait en faire de bien et d’un peu plus près de la réalité? Qu’est-ce que cela vous inspire? A votre tour!

How to install dozens of linux boxes with FAI?

[updated: the version of the python script was an obsolete one, I updated it, and changed the title of the post for more clarity]

I have 40 old computers (donation from a corporation) that are to be dispatched among small social work non-profit organizations and needy people in several French cities and probably also in Senegal. How to install a customized and usable version of linux on all of them despite the hardware heterogeneity of that collection of PCs and our lack of time? How to allow them to be reinstalled remotely without requiring any computer person to be present on site? I want the linux distribution to be Ubuntu, with a specific list of packages and configuration parameters. Some PCs have 1 hard drive of 9 GB or more, some others have up to 3 hard drives of sometimes 4GB, etc. The solution I found is to use FAI (Fully Automatic Installation) with a couple of custom enhancements such as a Python script that calculates the optimal partition tables for every PC.

Here are some notes about how I proceeded. If you want to contribute to similar projects (Information Technology and innovation for small non-profit organizations working in the field of social work in France or Africa), please drop me a comment here or by email at sig at akasig dot org.

Requirements and architecture

The way FAI works is as follows. The computer to install boots locally either from a CD-ROM, from a floppy disk or via a local networking protocol such as PXE or BOOTP. It then connects to a central installation server. It is served with instructions about how to install itself. It then downloads and installs packages from official repositories (e.g. Ubuntu repositories) or from the installation server if ever this server contains a mirror of the distribution repository. It is a package-based installer and differs from file-based installers such as System Imager (that relies on rsync).

Therefore, the main requirement is to have a server for centralizing the installation process. For testing purposes, I used my home PC with its DSL line and its Ubuntu Dapper distribution. But the production server is hosted in a data center and runs a debian.

For booting, the usual FAI way is to use a local DHCP server for retrieving information such as the address of the installation server. But in my case, I want to allow computers to (re-)install themselves from the premises and local area networks of non-profit organizations or even at home of individuals. I obviously can’t control the DHCP servers that are usually serving this critical installation information. Therefore, I had to work around this by using some special FAI options when creating the bootable CD-ROMs (see below).

Another issue I had to tackle is that FAI supports a limited amount of hardware heterogeneoity. For instance, if your computers don’t have the exact same amount of hard drive space, that’s usually not a problem for FAI. It comes with configuration mechanisms that handle that quite smoothly. But in my case, I have unknown computers to install, with various numbers and sizes of hard drives for instance. Therefore, I had to let computers calculate by themselves the optimal partitioning scheme for any hard drive setup. I did that with the help of a constraint programming library for Python. I also had to make sure that Python would be available on the computer at that stage of the installation process.

Eventually, I had to work around some access control constraints of FAI so that I could write the calculated optimal partitioning scheme to the computer to install. Indeed, when the computer to install first connects to the installation server, it mounts its root partition via NFS in read-only mode. And it doesn’t have access to the hard drive(s) yet. The solution I adopted is to write the optimal partitioning configuration to the FAI RAMdisk (on the computer to install) and to pre-define a symlink from the NFS-mounted root (on the installation server) to that configuration file so that FAI knows where to find it once it has been calculated (details below).

Other modifications I had to do include correcting some shebang lines in scripts that used sh whereas they should have been using bash in the case of an ubuntu server environment. I also had to correct the path a grub post-installation script to adapt it to Ubuntu. Eventually, I had to find the proper collection of FAI « classes » to define in order for Ubuntu to work properly.

I did not invent all of these tweaks and hacks (except the partitioning one). All of them were suggested by the extremely supportive FAI community via their #fai IRC channel on irc.oftc.net (special thanks to MrFai, sanso and h01ger). And I could not get into FAI without the great (but partly outdated!) FAI guide.

Now come the more detailed notes about how to (hopefully) reproduce the steps and tweaks described above.

A bit of FAI magic

On my Ubuntu dapper, the FAI package was a rather old one (v.2.10). Therefore I retrieved the more recent 3.1ubuntu1 package from the edgy repository and installed it manually. The first thing to do was then to go to /etc/fai and check every configuration file for possible updates to make. In /etc/fai/NFSROOT, for instance, I added python as a package to install in the virtual root partition that will be mounted via NFS by the computers to install. I also made sure that my NFS service would allow the target computers to connect and that the iptables firewall would not block these connections either. Then, I was ready for a sudo faisetup that created this virtual root partition under /srv/fai.

Once the NFS root hierarchy has been created, I manually added to it the python constraint programming library required by my partitioning hack. I downloaded the source tarball, pre-compiled it on my installation server with python setup.py build (probably useless). And I manually copied the .py and .pyc file to the proper site-packages directory of the NFS root (to /srv/fai/nfsroot/usr/lib/python2.4/site-packages/).

In order to create the bootable CD-ROMs that would allow computers to start using their local DHCP server but still to know how to connect to the central installation server, I had to use the following command line and options:

sudo make-fai-bootfloppy -B -Ieth0 -l -f /tmp/fai_floppy.img -i /tmp/fai_cdrom.iso -d f -F -v nfsroot=192.168.0.100:/srv/fai/nfsroot ip=:192.168.0.100:::::dhcp FAI_ACTION=install

It creates an ISO image of that bootable CDROM (/tmp/fai_cdrom.iso) that is then to be burnt. It also tells the path to the installation server. I had first tried without the -l option that asks for LILO to be used instead of GRUB but I could not figure out how to let GRUB not ignore the required nfsroot option. That option always disappeared from the kernel options GRUB specifies for booting. Therefore, I decided to use LILO instead. I also had troubles mixing the use of DHCP and the use of my nfsroot option and had to use the -d f option that is supposed to tell the computer to boot with a fixed IP address whereas it will actually refer to my ip= option that tells it to boot with DHCP but to notice that the installation server is at a given IP address. A bit tricky, isn’t it… Anyway, it worked and you just have to replace 192.168.0.100 by the IP address of your installation server and everything should be fine (let’s be optimistic…). As an alternative, you should refer to the man page of fai-cd which is another FAI command for creating a bootable CDROM. Maybe fai-cd is even more recommended than make-fai-bootfloppy indeed but I did not try because it has not yet been properly documented in the FAI guide.

Then, I added my partitioning script as a FAI hook that gets called just before the « partition » FAI task and only for computers that are assigned to my custom FAI class. In order to do so, I saved my script under /srv/fai/config/hooks with the filename partition.MYCLASS (where MYCLASS is the name you choose for describing the class of computers that will be using this partitioning script). Note that you should remove the .txt extension from the filename once you download it from this site.
When called, that script would create a new file name called MYCLASS that would contain the FAI syntax for specifying how partitions are to be created on disks (it’s called a FAI disk_config file indeed). But since this script is called at install time from a computer that mounted its root partition via NFS in read-only, I had to let the script save this MYCLASS file under /tmp/ which is then a writeable RAM disk. But for FAI to be aware of the existence of that file during its partitioning task, I first had to create a symlink from /srv/fai/config/disk_config/MYCLASS to /tmp/MYCLASS. (ln -s /tmp/MYCLASS /srv/fai/config/disk_config/MYCLASS). After some discussion with FAI folks on IRC, I understood this is not the optimal solution. Ideally, I should use the FAI mkrw script instead: it would create an appropriate writeable path on the RAM disk and the script would be stored there. Anyway, the symlink option also works though it’s less elegant.

Beyond creating this customized disk_config file for MYCLASS computers, I also modified and re-used the simple example files that are provided under the FAI examples directory. I created a FRENCH class by copying and modifying the GERMAN class that is provided there so that it tells that KEYMAP=fr-latin9. I used the FAIBASE class file and just modified it a bit: TIMEZONE=Europe/Paris. In the /srv/fai/class/50-host-classes script that defines default classes, I added to the last case the following classes: FRENCH, FAI_BOOTPART (in desperate hope it would add to the GRUB menu an option for booting the computer using FAI from the hard-drive in case of re-installation without CD), NTP and NETWORK (being unsure these were required for the NTP service to be installed by default and to receive proper configuration parameters. In /srv/fai/config/debconf/ I created a FRENCH debconf file by re-using the GERMAN one given as example. In /srv/fai/config/package_config/, I also copied and modified the GERMAN file into one called FRENCH and containing the identifiers of Ubuntu packages related to French setups.

As explained above, I also had to modify several FAI scripts in order to fully adapt them to the Ubuntu environment. These modifications were suggested to the FAI mailing list and forwarded to me by MrFai. They consisted in changing the #! /bin/sh shebang lines into #! /bin/bash lines for the following scripts: class/10-base-class, class/50-host-class, hooks/instsoft.FAIBASE, scripts/FAIBASE/10-misc, scripts/FAIBASE/30-interface, scripts/LAST/50-misc and also the mount2dir script. Last but not least, these modifications included modifying the config/files/boot/grub/menu.lst/postinst file so that it made reference to /sbin/update-grub instead of /usr/sbin/update-grub. I suppose that these changes are soon to be available right from the downloadable FAI packages once they get propagated there.

That’s it. With all of these operations, you should be able to install a fresh (and French) Ubuntu on any computer using the CD you have burnt. Or at least I could install a couple of them.

More things to do

But even then, we are not done with what’s required for our distributed infrastructure to be remotely maintainable. Here is my to-do list:

  • many of the hacks and tricks indicated above should probably not be done directly under the /srv hierarchy but under something like /usr/lib/fai/ or you might face the risk that they some of them get lost next time you recreate your nfsroot using the fai-setup script; there is probably some cleaning to be made here
  • check that the FAI_BOOTPART class was really taken into account because, at the moment, I could not see any FAI option in the GRUB menu of the installed computers
  • add bcfg2 with custom parameters to the classes to install so that the configuration can be properly managed remotely
  • check once again that the way NFS is offered to these remote computers will not create any security issue
  • create a new script that will select the flavor of the distribution to install depending on the amount of RAM on the PC. For instance, with less than 256 MB of RAM, it would be preferable to install a basic Ubuntu (without its Gnome desktop) and use another windows manager
  • setup the default user because the one provided by the DEMO class does not suit my need
  • add some more intelligence to the partitioning script so that it checks if ever there already is a suitable home partition and then ask FAI to preserve it instead of recreating it (and loosing the data it contains)
  • setup a proper SSH account on the server so that FAI can save its log files on it once the installation is done
  • activate the option that will let FAI save on the installation server the detailed hardware information it could read from the PC
  • create a unique and permanent identifier to be stored on the machine and on the server so that we can track PCs; in a first step, the MAC address may be usable but in some future, assigning a permanent UID to the whole list of hardware characteristics could be better if done smartly
  • check that the default Xorg options do not put old screens at risk (resolution and speed)
  • bring a bit of graphical customization in order to brand the desktops
  • add openvpn to the PCs so that we can connect to them remotely even when they are behing NAT routers
  • configure the authentication so that it is made against the central database (MySQL) that would also be used for the identity management of our Plone sites, with an nss_update mechanism that will allow authentication to succeed even when the central server is not reachable (caches the credentials on the PC)
  • for facilitating the initial installation, I should probably stop using bootable CDs and get back to the orthodox FAI way of booting from the network and using DHCPd for delivering instructions about the location of the installation server; however I first have to figure out how to let the computers’ GRUB menus offer a boot option that will not require the DHCPd to deliver those instructions and that will let them use the central installation server somewhere over the Internet

If you are interested in helping some social non-profit ventures with the maintenance and configuration of their PCs and/or have some clues about how to take action on some items of this todo list, please don’t hesitate to get in touch with me and to leave some comment here. Your help would be very much welcome!

Recherche informatique à vocation sociale

J’ai une idée un peu fumeuse de projet qui me trotte dans la tête et j’aimerais bien avoir vos conseils pour la rendre un peu plus réaliste. Il s’agit de proposer à des sociétés de « haute technologie » en informatique (SSII, éditeurs, constructeurs) d’investir quelques ressources (prestataires en inter-contrat, cotisation, …) dans des projets d’innovation technologique et sociale menés conjointement avec des chercheurs et des responsables d’associations reconnues dans leur secteur (action sociale, environnement, humanitaire, handicap, seniors…). Quels moyens pourraient exister pour rendre ce genre de chose attractives pour des SSII par exemple? Qu’est-ce qui pourrait leur donner envie de s’investir dans des projets de recherche informatique à vocation philantropique? Des projets qui visent à « changer le monde » à très grande échelle mais sur des points très spécialisés par le biais des TIC.

Par exemple, j’ai pensé à divers bénéfices possibles qu’une SSII pourrait tirer de ce genre d’action. Mais j’ai du mal à identifier lesquels pourraient avoir le plus de valeur aux yeux de dirigeants de ce genre de boîtes.

  • retombées médiatiques et amélioration qualitative de l’image de marque de la boîte en s’associant à des « grandes marques » du social (Croix-Rouge, Restos du Coeur, ATD, …), de l’environnement (WWF, Greenpeace, fondation Ushuaïa, …) ou de l’humanitaire (Croix-Rouge, médecins du monde, …)?
  • retombées médiatiques et accroissement quantitatif de la notoriété publique de la boîte ?
  • fidélisation des salariés: réduction du turn over, motivation « par les valeurs » de la société ?
  • facilitation du recrutement des jeunes diplômés ?
  • facilitation des relations avec les parties prenantes externes (syndicats, pouvoirs publics, certains actionnaires…) ?
  • formation à la communication interpersonnelle, acquisition par les salariés de « savoir-êtres » sur le terrain, au contact de populations en difficultés (milieux populaires, handicaps, seniors, …) ?
  • acquisition par les salariés de compétences techniques nouvelles au contact de chercheurs de pointe également impliqués dans ces projets (centres de recherche universitaire, recherche privée du genre Google Labs ou autres) ?
  • facilitation des relations avec certains clients (clients du secteur public: Etat, collectivités territoriales ou clients de l’économie sociale: mutuelles, coopératives, associations, fondations) ?
  • satisfaction personnelle des dirigeants de la boîte (philantropie) ?
  • autre idée de bénéfice pour la société?

Je sais que vous êtes nombreux à évoluer professionnellement avec moi dans le secteur de l’informatique, alors vos avis (même candides) me seraient précieux. Lesquels des points ci-dessus vous paraissent les plus prometteurs pour convaincre des dirigeants d’entreprises high-tech de se lancer dans ce genre d’aventure? Des suggestions? Qu’est-ce que vous en pensez?

A Periodic Table of Visualization Methods

A Periodic Table of Visualization Methods présente de Mendeleïve manière un aperçu des grandes méthodes de visualisation d’information complexe. On y retrouve nos préférées: mind maps, treemaps, graphes sémantiques, hype cycle, magic quadrant, diagramme d’Ishikawa, etc. Les amateurs de l’atlas de cybergéographie apprécieront. J’y ai découvert une jolie chose: les diagrammes de tenseurs (également appelés visualisations de champs de tenseurs). Joli. Utile? J’aimerais bien m’amuser avec une bibliothèque python ou java pour générer ce genre de diagrammes de tenseurs… Une fonctionnalité à ajouter à prefuse?

Déployer 40 PCs dans les banlieues

Avec des copains, nous aidons des associations de quartier de banlieues à s’équiper en informatique pour proposer toute sorte d’activités à leurs publics: aide à la recherche d’emploi, atelier création de CV, expression libre pour les jeunes, découverte de l’informatique, formation, recherche d’informations administratives, … Avec l’une de ces associations, nous avons récupéré auprès d’une entreprise 40 ordinateurs que nous allons donc prêter aux assos de quartier. Mais comment automatiser l’installation de ces PC (sous linux)? Comment en assurer la maintenance à distance? Comment en assurer la mise à jour? Bref, comment aider les associations utilisatrices à faire vivre techniquement leur informatique sans avoir à se déplacer à chaque fois dans les quartiers? Et si nous étions capables de gérer 40 PCs, pourrions-nous rêver d’en gérer 40 000 et offrir cette même aide à de plus larges populations d’associations, de bénévoles et d’habitants des quartiers sensibles? et si on passait ensuite aux besoins d’associations avec lesquelles on pourrait travailler en Afrique ou ailleurs?

Le problème est que nous sommes tous nous-mêmes bénévoles, avons un boulot ou des études le jour et une famille la nuit… Nous avons donc très peu de temps pour faire de l’administration de workstations et voulons pourtant simplifier au maximum la vie de ces assos qui n’ont pour ainsi dire aucune compétence informatique poussée. Heureusement, nous avons un peu d’expertise technique ainsi qu’une bonne infrastructure serveurs à notre disposition.

C’est pourquoi nous avons identifié plusieurs logiciels susceptibles de nous être utiles. Les connaissez-vous et avez-vous de bons conseils ou avis à nous donner? Pourriez-vous faire passer ce message à vos geeks préférés pour leur demander leurs conseils? Voici l’état actuel de nos discussions:

Mon pote JM me dit:

> Fred suggere l’utilisation de « system imager »
> pour installer un parc et le gerer a distance, ce qui est une partie des
> questions soulevée par l’usage des machine, et ainsi gagner un temps
> precieux.
>
> J’ai donc trouvé quelques lien dans google,
>
> Cela semble efficace pour faire des clones, et les maintenir.
> http://www.systemimager.org/doc/html/
> http://www.falkotimme.com/howtos/systemimager/index.php
> http://people.debian.org/~jblache/events/sl2004/talks/packages.pdf

J’ai jeté un coup d’oeil à tout ça. J’ai compris qu’il ne faut pas confondre:

  • les cloneurs ou installeurs de machine comme systemimager
  • les gestionnaires de configuration comme bcfg2
  • les utilitaires d’inventaire comme lshw
  • les progiciels de gestion de parc comme GLPI

Ils sont complémentaires (mais pas tous forcément nécessaires pour notre projet) quoique les uns empiètent partiellement sur les fonctionnalités des autres…

Dans tous les cas, puisque les associations ont divers moyens de se connecter à Internet en haut débit (ADSL, câble, …), une bonne idée semble d’équiper ces PC d’un logiciel comme OpenVPN pour être sûr de pouvoir toujours y accéder quelque soit leur configuration réseau.
Les cloneurs/installeurs les + intéressants pour notre projet associatif semblent être:

Les gestionnaires de configuration les + intéressants pour notre projet semblent être:

  • bcfg2, avec notamment ses fonctionnalités de suivi des mises à jour
  • puppet
  • cfengine est + populaire mais + lourd à mettre en place et – moderne

Les utilitaires d’inventaire les + intéressants semblent être:

Et question distribution, en évitant toute guerre de religion, nous hésitons entre:

J’ai repéré plusieurs discussions à propos des usages combinés ou comparés de certains de ces outils mais aucune ne donne un avis définitif sur la question. Et je ne suis pas sûr que les avis évoqués ici ou là correspondent bien à notre situation:

  • extrêmement peu de temps d’administrateurs système,
  • peu (ou pas) de possibilités d’intervention sur place,
  • gestion (et ré-installations?) via l’Internet et non sur un LAN, ou bien ré-installations automatiques à partir d’un CD
  • hétérogénéité matérielle: nombre et taille des disques différents d’un PC à l’autre par exemple
  • mais usages simples et « standards » de ces workstations: bureautique, Web, mail, IM, quelques jeux… plus un peu de VoIP à l’occasion notamment pour des formations informatiques à distance?

Voici les liens intéressants que j’ai parcourus:

Alors, quel est le bon choix? Quelle est la bonne combinaison d’outils pour être efficaces en prenant le minimum de temps de maintenance et la combinaison la plus rapide à mettre en place? Quels sont vos avis?

AkaSig.org

You’ll probably notice that I have bought a domain name: akasig.org I hope the transition to be as smooth as possible (you should not notice any serious difference except maybe in your RSS readers depending on how they manage web adresses). In case you encounter some surprise due to the move, please drop me an email at sig at akasig dot org. The main reason behind that move that I am not sure I will stay with the same hosting provider any longer. Therefore I needed to become independent from its domain name. Levillage.org had some good records as a honest, low cost and responsive provider but the initial company has crashed, its services have been acquired by a new company and it seems to be that the old customers have been somewhat left aside from long term maintenance (the levillage.org hosting system has not been fully integrated with the system of the new company). We’ll see. That and the fact that I was offered a domain name for Christmas. :-)

Julien est né ce matin!

J’ai le plaisir de vous faire part de la naissance de mon fils, Julien. Il est né ce matin à 3H et ses parents sont très fiers de ses 3 kg 510 et de ses 51 cm. La maman se porte bien et l’accouchement s’est très bien passé. Julien a eu l’air un peu surpris quand on lui a expliqué qu’il ne pouvait téter sa maman 24H sur 24. Ses frère et soeurs attendent sans doute impatiemment de lui rendre visite cet après-midi (quand nous aurons un peu dormi). Allez, au dodo.

DRM: effaceur sélectif de souvenirs

Plutôt que de faire de la recherche appliquée en intelligence artificielle, je me demande si je ne vais pas me tourner vers l’écriture de nouvelles de science-fiction… Blague à part, voici une idée de départ pour écrire une nouvelle de S-F: imaginez un avenir dans lequel la DRM domine. Dans cet avenir, une société a commercialisé la technologie DRM ultime: l’effaceur sélectif de souvenirs (version mobile, bien sûr). L’effaceur est tout petit: il loge dans le casque de votre baladeur MP3 préféré. Régulièrement, il scanne votre cerveau à la recherche de vos souvenirs. Vous venez d’écouter un tube à la mode? L’effaceur repère la trace qu’il a laissé dans votre cerveau et, puisque vous avez déjà écouté trois fois ce tube, il en efface le souvenir.

Quel plaisir, peu après, de redécouvrir ce tube chez votre marchand de chansons iTubes Musiques Shop! Vous ne l’aviez jamais entendu, vous semble-t-il, et vous vous empressez de l’acheter pour le savourer.

Dans cette société idéale, les profits des « ayant droits » sont maximisés, le commerce électronique bat son plein et les consommateurs sont satisfaits. Les Droits d’Auteur et Droits Voisins dans la Société de l’Information (DADVSI) sont respectés. Bien sûr, les fabricants de baladeurs qui n’y avaient pas inclus l’effaceur de souvenirs ont été poursuivis et mis en prison pour incitation au piratage.

Seul bémol: il n’y a plus qu’un seul tube en magasin.

Prior art search for patents

Here is a « random patent generator« . The basic idea is to randomly generate ideas of inventions in the hope that they would constitute prior art capable of invalidating some of the stupid patents that get granted by patent offices. It is even inspiring some novel business models. Of course, it’s meant to be a joke and a surrealist poetry exercise.
But beyond the joke, random sentence generators that can be fed with corpus of documents raise questions about the nature of prior art in patenting issues, as the author of the random patent generator says. How far are we from leaving the domains of jokes and entering the domain of possible threats to the legal patent system?

Etumnamboa veut financer les mini-entrepreneurs sociaux africains

J’ai eu le plaisir de déjeuner cette semaine avec Etumnamboa (c’est son pseudo: « celui qui est loin du pays »). Nous avons parlé de son projet: créer une société de capital risque dédiée au financement des mini-entreprises sociales de l’Afrique noire francophone. Etum connaît bien son affaire: Camerounais, il a fait une bonne partie de ses études supérieures en informatique en Afrique. Il s’est ensuite lancé dans l’entreprenariat, toujours en Afrique, avec une activité de services autour des nouvelles technologies. Après quelques années, grâce à la revente de sa société, il a pu se payer des études d’ingénieur informaticien en France. Aujourd’hui, il rejoint à Paris l’un des leaders mondiaux de l’informatique pour y développer de nouveaux marchés. Ca, c’est un début de parcours qui force l’admiration !

Mais ce n’est pas tout. Ce qui semble le démanger, c’est de partager et d’aider. Alors, bien sûr, il aide comme il peut: il envoie un container d’ordinateurs recyclés en Afrique, il s’engage dans quelques actions d’aide communautaire comme le font nombre d’africains établis en France. Mais ça ne lui suffit pas! Quelques copains restés au pays lui soumettent un problème intéressant: pour développer leurs propres boîtes, connaîtrait-il une solution qui leur permette de trouver des actionnaires pour des montants de l’ordre de 1 000 ou 2 000 euros par exemple? Et c’est la que naît la nouvelle idée d’Etumnamboa: lancer une activité de capital risque pour développer en Afrique des mini-entreprises à forte fibre sociale et environnementale.

En effet, il existe des solutions pour obtenir des « gros » financements: fondations pour l’entreprenariat social, organismes internationaux, … Mais aller les démarcher coûte du temps et de l’argent et représente une certaine prise de risque (risque de ne rien obtenir malgré les efforts consentis). Et lorsqu’il s’agit de développer des dizaines, des centaines, des milliers ou plus de PMEs à forte croissance en Afrique, les circuits de demande de subvention privée ne semblent pas constituer une solution qui permette de passer à grande échelle. Inutile même de penser à l’argent de l’Etat ou des collectivités locales: la corruption semble omniprésente. Et les banques « ne prêtent qu’aux riches », à ceux qui sont capables de fournir des garanties à la hauteur des prêts consentis. Bref, il y a des solutions pour emprunter beaucoup lorsque l’on est déjà un entrepreneur établi ou prêt à explorer les circuits des donateurs philantropes. Mais rien de très satisfaisant pour une foule immense de mini-entreprises à forte croissance.

D’un autre côté, il y a un grand nombre d’organismes de micro-crédit qui se sont développés en Afrique (« banque des pauvres » sur le modèle de la Grameen Bank). Ces banques prêtent à des micro-entrepreneurs, quelques dizaines d’euros maximum, par exemple pour acheter une charette de manière à vendre des cacahuètes sur le bord de la route. Le micro-crédit permet à une foultitude de micro-entrepreneurs de retrousser leurs manches pour sortir de la misère. Sous la pression sociale d’un petit groupe de co-emprunteurs, ils remboursent ensuite avec les intérêts et ainsi se développe le micro-crédit. Mais là encore, l’offre de financement ne correspond pas aux besoins des mini-entrepreneurs. Un représentant d’un organisme de micro-crédit a répondu à Etum que leur coeur de métier, c’est la sortie de la misère, pas l’amorçage ou le développement des entreprises à forte croissance. Les montants dont ont besoin les mini-entrepreneurs excèdent les plafonds du micro-crédit.

D’où l’idée d’Etum: couvrir les besoins de financement des mini-entrepreneurs et ce par la seule voie qui lui semble faire sens: dans une démarche fortement ancrée dans la philosophie du développement durable. Investir 2000 euros dans une PME high-tech et contrôler que cet argent est employé sagement: en ancrant le développement de l’entreprise dans celui de sa communauté de clients, fournisseurs et partenaires, et dans celui de son environnement. Exemple cité par Etum: un réseau de cybercafés qui offrent de l’accompagnement parascolaire à des enfants en se finançant par le paiement des minutes de communication en ligne. Pourquoi pas?

Cette idée étant donnée, il lui reste un tas de problèmes à résoudre. Voici quelques unes des problématiques que nous avons évoquées ensemble. Dites-nous ce que vous en pensez SVP!

Où trouver l’argent? Les grandes multinationales du Nord, établies en Afrique, déclarent comprendre l’intérêt du développement durable. Etum peut leur offrir les moyens d’investir dans les communautés locales par le biais des entrepreneurs qui pourront, à long terme, contribuer à faire émerger des classes moyennes de consommateurs susceptibles de représenter autant de marchés nouveaux pour les multinationales. En France ou aux USA, des entrepreneurs à succès cherchent les bonnes occasions de rentabiliser les cagnottes qu’ils se sont constitués tout en privilégiant le sens dans leurs investissements. Les eco-business-angels en sont un exemple intéressant.

Comment sortir du capital des mini-entrepreneurs? Le capital risque fonctionne de la manière suivante (à ce que j’en sais). Le financeur reçoit des centaines de dossiers de projets de développement. Il en sélectionne par exemple 10: ceux qui sont les plus susceptibles de lui rapporter 10 fois sa mise de départ en 2 ou 3 seulement. Sur ces 10 projets, 3 vont échouer, c’est la faillite. 6 vont se développer à petite vitesse, vont vivoter un certain temps et constitueront donc un échec pour le capital risqueur: impossible de rentabiliser de manière explosive sa mise de départ. Enfin, on espère pour le financeur que l’un des projets sur les dix va connaître un succès fulgurant: un futur eBay, Google ou Amazon ? Pour rentabiliser son investissement, il lui faut alors revendre les parts qu’il possède dans le capital social de la société. Cette vente peut se faire à l’occasion d’une entrée en bourse (les investisseurs en bourse achètent des actions de la société) et c’est le pactole pour l’investisseur qui revend ses parts plus de 10 fois leur prix d’origine. Cette vente peut également se faire si la société est rachetée par un Microsoft, un IBM, ou autre géant qui cherche du sang neuf (ou des concurrents à tuer dans l’oeuf). Qu’est-ce que tout cela donne pour des mini-entrepreneurs Africains ? Sans doute des choses assez différentes. On s’attendrait peu à voir une PME ayant fait un premier tour de table à 2 000 euros entrer au NASDAQ. C’est plutôt du 2 millions d’euros en levée de fonds d’amorçage dont il s’agirait pour un candidat à l’entrée en Bourse dans les pays du Nord. Quel est le fonctionnement du marché du financement des mini-entreprises Africaines ? Je n’en ai aucune idée… Mais Etum semble confiant.

Le capital risque peut-il se marier avec le développement durable ? Si 9 projets sur 10 ne permettent pas au financeur de toucher le pactole, je me demande ce qu’ils deviennent ? Ils ne représentent plus une promesse de gain important pour le capital risqueur. L’entrepreneur jette-t-il l’éponge ? Sont-ils jetés à la poubelle par le financeur ? Quel gâchis ce serait… Pour ceux qui n’ont pas encore atteint le point mort de leur développement, j’imagine que la tentation doit être grande, pour le financeur, de les liquider pour minimiser ses pertes. Y a-t-il un gaspillage d’énergie pour tous ceux qui ont reçu du capital risque mais qui n’ont pas tenu leurs promesses de croissance exponentielle ? Peut-on faire mieux et plus durable ?

Comment développer cette activité ? Etum a un peu d’épargne personnelle. Il veut commencer par mettre son argent là où vont ses idées: auprès de quelques mini-entrepreneurs bien choisis. Il peut commencer à développer cette activité de manière bénévole, modeste et visant une rentabilité rapide mais faible. Cela plairait à Dave Pollard, apôtre de l’entreprise naturelle. Mais en prenant 2 000 euros de parts sociales d’une mini-entreprise, il faut quand-même attendre 2 ou 3 ans pour avoir une chance sur 10 de les voir se transformer en plus de 20 000 euros. Un peu lent comme plan de développement ? Ou suffisament sage quand on est visionnaire et que l’on cible sur le long terme ? On raconte toujours que Muhammad Yunus a commencé par prêter quelques dizaines de dollars à des femmes micro-entrepreneurs qu’il avait été rencontrer. Et cela a donné au final une banque de taille mondiale. Et entre les deux, comment on fait ?

Où trouver des partenaires ? Heureusement pour nous et pour son projet, Etum pense que la meilleur manière de faire avancer son idée, c’est de la partager. Plutôt que de veiller jalousement à sa confidentialité, il veut la partager, l’enrichir et trouver des partenaires pour faire mûrir son projet et l’ancrer dans la réalité. Qui aller voir ? Je pense tout d’abord aux Carrefours des Possibles de la Fondation Internet Nouvelle Génération: l’occasion idéale de présenter son projet à un parterre de partenaires potentiels dont un grand nombre déjà sensibilisés aux problématiques de l’économie sociale. A la FING, le carnet d’adresses sans fond de Denis (denis.pansu [ at ] fing.org) lui donnera peut-être accès à des connaisseurs du sujet « tiers secteur » et économie sociale. Est-ce que Benoît (benoit.dumolin [ at ] mediacteurs.net), expert de l’innovation sociale et ayant une certaine expérience du terrain africain n’aurait pas de bons conseils à partager ? Etant donnée l’importance des mini-entreprises de haute technologie dans son projet et le côté « un pied en Afrique, un pied en région parisienne » de celui-ci, je me demande aussi si des gens de Scientipôle Initiative ne pourraient pas également être de bon conseil ? Sinon, il serait sans doute judicieux de rencontrer des gens de chez Ashoka France. Et ce qui pourrait permettre de développer son projet plus vite qu’en y injectant de son épargne personnelle, ce serait peut-être de se faire connaître auprès du président du club des eco-business angels, non? Et les Cigales, est-ce un concept exportable à l’Afrique noire francophone? Quelles autres pistes explorer?

Comment rentabiliser le choix de l’entreprenariat social? Pour Etum, ce projet n’a de sens que si il s’adresse à des mini-entrepreneurs qui font le choix de regarder au-délà de la rentabilité économique, qui sont prêts à miser le développement de leur gagne-pain sur celui du développement local de leurs communautés de clients, fournisseurs, employés, partenaires et/ou sur celui d’une exploitation raisonnée de leur environnement. Mais tout cela coûte un surplus d’effort, d’attention et donc de temps et d’argent. Si un marché du financement des mini-entrepreneurs africains existe vraiment, comment résister à de nouveaux concurrents qui ne se soucieraient pas du développement durable, qui ne prendraient pas le temps de contrôler comment les entrepreneurs exploitent leurs communautés et leur environnement, qui, du coup, auraient des structures de coût plus attractives et pourraient donc afficher des ambitions économiques plus compétitives ? Un atout pour Etum, c’est l’avantage de résilience qu’offre le développement durable. Si l’on prend l’exemple des entrepreneurs de l’économie de communion, ils affirment que le surplus d’attention (et d’amour) qu’ils consacrent à leurs employés et partenaires est largement rentabilisé par la capacité ainsi accrue de leur entreprise à résister aux crises économiques. Ainsi, cette banque rurale des Philippes qui se classait 700ème (si je me souviens bien) sur son marché s’est-elle retrouvée sur le podium des plus grosses lorsqu’une crise financière asiatique fut passée par-là. Alors que, comme ses concurrents, elle ne pouvait plus payer ses employés et rendre leur argent à ses clients, elle a résisté. Les employés, fortement attachés à leur entreprise, ont accepté de travailler pour rien. Les clients, bien qu’inquiets de perdre toute leur épargne, se sont résignés à attendre la fin de la crise: ce que leur banque faisait pour eux allait bien au-délà des services financiers (formation, aide sociale sous toutes formes, …). De même, comme me le rappelle Etum puisque que nous l’avons lu dans 80 hommes pour changer le monde, cette directrice d’un atelier de confection népalais qui était surprise par ses employés: alors que l’entreprise allait à la faillite, les employés ont activement soutenu leur entreprise qui, du coup, a résisté là où d’autres auraient échoués. De belles histoires que tout cela? Oui. Mais, dit-on, des histoires vraies. Alors, comment rentabiliser le choix de l’entreprenariat sociale et du développement durable comme politique d’investissement? En misant sur le fait que la société de capital risque pourra plus solidement se sortir de tous les pièges où l’économie Africaine pourrait l’entraîner. Qui veut parier?

Peut-être Etum pourra-t-il corriger/compléter cet article si besoin. Et surtout, peut-être pourrez-vous donner votre point de vue sur ce projet ?

Capital risque pour entreprenariat social

Etumnamboa lit ce blog. Et il cherche des infos sur les offres de type « capital risque » pour les entrepreneurs sociaux. Peut-être avez-vous des infos qui pourraient l’aider dans sa recherche? Des bons tuyaux à partager? Avec son accord, je publie ici notre échange (par mail interposés). Donnez-lui (donnez-nous!) des conseils en laissant un commentaire à la fin de cet article!

Etumnamboa a écrit :

Je suis tombé sur votre blog ce matin en cherchant de l’information sur l’entreprenariat social. Je vois que vous avez bien planché sur le sujet, je suis entrain de travailler sur son adaptation à l’Afrique. Est-ce que vous avez de la documentation ou des liens à me conseiller?

Je lui ai répondu:

Il me semble que ce concept est beaucoup plus développé en Afrique qu’en France. Car les fondations qui financent sous cette étiquette l’utilisent comme une alternative à l’aide au développement traditionnelle.
Ceci dit, je n’ai pas de référence Afrique qui me viennent à l’esprit.
Si j’avais à faire une recherche sur le sujet, j’irais voir les endroits « habituels »: Ashoka, fondation Schwab, fondation Skoll. Il y a en particulier sur ces sites des « success stories » d’entrepreneurs sociaux en Afrique:

Il m’a répondu à son tour:

J’ai effectivement fait le tour de ces divers sites et je viens de terminer l’excellent ouvrage « 80 hommes pour changer le monde », je pensais que vous aviez des études et autres documents qui me seraient passés sous le nez.

Moi:

Désolé, je ne crois pas avoir grand-chose en main. Ou plutôt, j’ai publié sur mon blog à peu près tout ce que j’ai lu sur le sujet.

Lui:

C’est plus une approche Capital risque pour entrepreneur social qui m’intéresse, si vous avez des ressources je suis preneur.

Moi:

Ca me fait penser qu’il y a peut-être des choses bien à prendre du côté des offres de financement alternatif comme les CIGALES par exemple. Du côté financement public, il y a maintenant l’AVISE qui essaie aussi de faire des choses. Pour certains entrepreneurs sociaux français, il y a aussi l’ADIE. Pour l’Afrique, un bon partenaire pour mettre des choses en place, c’est peut-être le Crédit Mutuel? Sinon, il y a certainement des solutions de micro-financement en place. Mais ce n’est pas forcément adapté à de l’entreprenariat social à forte croissance/gros financement, si c’est ce que tu cherches.

Lui:

En passant je vis dans l’hexagone.

Moi:

Du côté de la région parisienne? Si oui, on pourrait se voir pour déjeuner ensemble un de ces 4, dans le Sud ou l’Ouest de la RP.