Archives de l’auteur : Jean Millerat

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. :-)

Web 2.0 architectures with Java

Here are two things to go beyond Web Services (with ReSTfullness in mind):

Take-away: beyond theory (ReST), there now are concepts (WOA) and tools (restlets) for building composite Web applications without requiring SOAP, WSDL and the whole bunch of overbloated WS-* standards that come with them.

Gnome unijambiste des forêts du Nord

Avez-vous déjà vu un gnome unijambiste des forêts du Nord dansant à la pleine lune au milieu de statuettes enroulées dans du jambon? Non?! Alors ne ratez pas la mise en vidéo du premier épisode du Donjon de Naheulbeuk, c’est tordant.
Pour ceux qui voudraient comprendre ce dont il s’agit, voici un peu d’explications. Un pro-amateur génial a créé une saga sonore (feuilleton audio) humoristique dans l’univers fantastique des jeux de rôle Donjons & Dragons. Son émission est diffusée depuis quelques années déjà, épisode après épisode, au format MP3 à télécharger gratuitement sur leur site. Suite à l’énorme succès populaire de sa création, une BD a même été éditée pour mettre en bulles et en images les aventures délirantes de l’équipe des aventuriers de Naheulbeuk. Et comme ça ne suffisait pas, un autre créatif culturel passionné a utilisé un jeu vidéo multi-joueur, (World of Warcraft, LE jeu video multi-joueur), pour mettre en scène et tourner en caméra virtuelle le premier épisode de la première saison du donjon de Naheulbeuk. Les acteurs sont donc des personnages de jeux vidéo. On appelle cette technique de réalisation de vidéos le machinima. Le résultat, encore une fois téléchargeable sur Internet car distribué gratuitement par amour de la chose, est excellent et donne vraiment envie de voir la suite! Tout cela dans un esprit de créativité, de partage et de plaisir, un petit peu à la mode open source: plus on est de fous, plus on crée. Bravo!

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.

Liens du jour sur la dyspraxie

Je me suis abonné à un flux d’information sur la dyspraxie via le service Technorati. J’ai ainsi attrapé dans mon filet du jour:

Bref, la pêche du jour n’est peut-être pas très intéressante. Mais j’ai l’impression, au fil du temps, que les gens parlent de plus en plus de la dyspraxie, même si le sujet reste largement méconnu.

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 ?

Inventions évidentes made in USA

C’est peut-être aux USA que se prépare l’avenir du droit de la propriété intellectuelle pour l’Europe. C’est en tout cas ce que me fait croire l’adoption par la France de la loi DADVSI: j’ai tendance à y voir l’efficacité des lobbies des multinationales de haute technologie, principalement américaines, qui cherchent à freiner l’innovation de leurs concurrents pour prolonger la durée de vie de leurs propres vaches à lait technologiques (c’est en partie à ça que servent les brevets: ils ressemblent alors à des mines anti-innovation créées par des inventeurs). Notez que j’essaie de ne pas non plus cracher dans la soupe: je bosse pour l’une de ces boîtes et je suis notamment payé pour créer des brevets…

Ceci dit, il se passe actuellement Outre-Atlantique un truc intéressant: la plus haute juridiction des USA (la cour suprême) est poussée à définir ce que c’est qu’une invention « évidente ». En effet, pour qu’une invention puisse faire l’objet d’un brevet, il faut qu’elle apporte une véritable nouveauté et qu’il ne s’agisse pas d’une exploitation « évidente » d’une technique déjà connue. Or, aujourd’hui, les magistrats américains n’ont pas de référence claire dans leur droit pour faire la différence entre une idée « évidente » (et qui ne mérite donc pas d’en réserver le monopole d’exploitation à son inventeur par un brevet) et une idée qui ne l’est pas. Morale de l’histoire, les offices de brevets croulent sous des demandes de brevets concernant des inventions qui n’en sont pas et, faute de savoir leur dire non, leur octroient pourtant des brevets. Conséquence: des sociétés fantômes (les méchants « trolls ») sont créées par des faux inventeurs qui obtiennent ainsi des brevets pour des « inventions évidentes » et menacent ensuite d’autres inventeurs de leur faire de coûteux procès si ils ne leur versent pas de l’argent. Une forme de racket à grande échelle sous couvert de protection des idées par les brevets, qui commence à faire grincer pas mal de dents, y compris des grosses multinationales qui en ont un peu marre d’avoir à se défendre contre ces hordes de trulls hurlants. C’est peut-être ce qui suffira à convaincre la Supreme Court de préciser les critères qui permettent de déterminer ce qui distingue une invention évidente d’une invention méritant brevet.

Mais derrière cette bagarre se profile aussi un phénomène intéressant concernant les innovateurs open source. En effet, ceux-ci sont au premier rang des victimes des trolls: comment un innovateur open source qui contribue à titre individuel à un projet libre peut-il se défendre contre un troll armé d’une massue d’avocat et qui le menace de procès interminables et coûteux? C’est pourquoi l’ Electronic Frontier Foundation monte actuellement au créneau et appelle la Cour Suprême à empêcher le massacre. L’argumentation employée me semble pleine de promesses pour l’avenir du droit de la propriété intellectuelle en Europe: l’EFF rappelle que les logiciels libres constituent un bien commun informationnel qui doit être protégé par les Etats au nom de l’intérêt public. La notion de bien commun informationnel est très bien développée et défendue par des intellectuels français tels que Philippe Aigrain. Espérons que toutes ces bonnes idées seront entendus par les magistrats américains et que, par contamination, le droit Européen et Français suivront.

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.

Comparatif des services de développements photo en ligne

Voici quelques liens pour qui cherche à comparer les différents services de tirage photo via le Web, pour la France:

Il ne reste plus qu’à en essayer et se faire un avis par soi-même… :(

WikiCalc: Web 2.0 spreadsheets wikified

WikiCalc is a nice piece of GPLed software that pusblishes wiki pages that are structured like Excel spreadsheets are: one can view and edit tables, modify calculation formulas in cells, manage their formatting through the web browser, etc. It brings to spreadsheets the inherent advantages of many wikis: ease of use for Web publications, ease of modification, revisions track for undoing unwanted changes by other users, RSS views on recent changes made to the page. It brings to wikis the inherent advantages of spreadsheets: live calculations, nice formatting, compliance with corporate way of thinking and managing things (will we see a WikiSlides with bulletpoints and animations in some future?). More than this, WikiCalc lets spreadsheets grab input data from external web sites and do live calculations from it: some formulas generate HTTP requests to web services in order to retrieve the latest value for a stock quote, weather forecasts, and so on. Last but not least, the flexible architecture of WikiCalc allows an offline use still via the user’s browser and a synchronization mechanism will let the online version get updated once the connection is restored.

A nice 10 min long WikiCalc screencast with audio is available here.

In a former life, I was managing a team of web project managers in a multinational industrial corporation. As my boss wanted to get simple-to-update weekly/monthly status report about every project, we had tried using a wiki page per project in order to publish and update those reports. It was tedious and not nicely formatted for a corporate environment. I imagine that a nice immediate use of WikiCalc would be to let small project teams update project status reports on an intranet, including nicely formatted timelines and budget indicators. It would still maintain the update effort at a minimal and convenient level and would preserve the wiki flexibility of linking to the project documentation and resources.

We knew structured wiki pages for managing forms or category schemes. WikiCalc introduces spreadsheet structures while preserving the open and unstructured spirit of wikis. Next steps for future wikis would be to allow semantic structures to be managed the wiki-way, like in some early semantic wiki prototypes. [update: see Danny Ayers blog entries on how WikiCalc could relate to the Semantic Web vision]