Blog - Pierre-Yves Gibello

Aller au contenu | Aller au menu | Aller à la recherche

vendredi, mai 1 2009

Cochons de Mexicains...

Au printemps 1720, le Grand-Saint-Antoine, vaisseau revenant d'Orient, se verra refuser l'accès à la passe de Cagliari avec une violence inqualifiable : Saint Remys, vice-roi de Sardaigne, ayant vu, lors d'un rêve prémonitoire, la peste déferler sur son royaume. Contre toute attente, l'entrée du navire à Marseille marquera le début de la grande peste de 1720... (*)

Aujourd'hui, face à certain virus Mexicain, nos vice-rois modernes s'apprêtent à repousser avec la même virulence tout vaisseau aérien en provenance de ce pays maudit : toutefois, la comparaison s'arrête là. On connait la cause de leur rêve prémonitoire : ils ont allumé la télé.

Et qu'y voit-on ? D'abord, une population mexicaine entièrement masquée; si l'on connaît (depuis Zorro) la promptitude du Mexicain à se masquer, tout de même, qui aurait soupçonné tant d'efficacité ? A moins que l'épidémie n'y traîne déjà depuis des mois, dans l'indifférence générale par-delà le Rio Grande...
Thèse qu'accrédite d'ailleurs la qualification au niveau 5 de la pandémie par l'OMS : cette histoire de virus qui commence au niveau 5, c'est un peu comme une retransmission d'OM/PSG qui commencerait à 3-0, on aurait l'impression d'avoir manqué la première mi-temps...

Bien, donc, notre virus finit tranquillement sa saison au Mexique; c'est normal, l'hiver aussi est un peu fini : les Italiens de la Renaissance avaient nommé la grippe "influenza di freddo", et il ne fait plus vraiment freddo, là bas...
Mais il a atteint un intéressant seuil de virulence médiatique : tout ce monde masqué, les lieux publics fermés, voilà de quoi nous lancer une bonne panique aux conséquences sonnantes et trébuchantes (sauf pour l'Office du Tourisme local, qui ne semble pas faire partie du Consortium...).

Notre ami H1N1 est une bien petite bestiole pour relancer la croissance, mais après tout, au point où on en est, hein... Et puis, çà distraira les masses, dont le mois de Mai fait traditionnellement fleurir l'esprit contestataire.
Qui plus est, nos autorités sanitaires pourraient en sortir grandies : face à un virus en fin de course, elles ne devraient guère avoir de mal à remporter une victoire déjà quasiment acquise. Tout en testant en grandeur réelle leur dispositif...
Il est donc temps de faire entrer l'ennemi en Europe : par l'Espagne, celà va sans dire, toute bonne grippe se devant d'être espagnole (et puis, la bête maîtrise déjà la langue !). Et par la télé, moyen de contamination jugé peu dangereux; encore que : si on passe au niveau 6, je pense prendre des mesures drastiques en masquant mon téléviseur.

Aurait-on alors raison de courir à l'officine du coin réclamer sa dose de Tamiflu (r) ?

Que nenni, bonnes gens : en ce qui concerne les mesures de prévention, nos élites avisées les ont déjà anticipées. Il faut vider les lieux publics ? Dont acte : Lakshmi Mittal a déjà vidé les usines, et Benoit XVI les églises. Ce dernier devrait rapidement annoncer que le préservatif, jugé inefficace contre le sida, protège de la grippe du cochon : ce serait tout bénéfice, tant pour sa réputation que pour l'industrie du Latex.

Le seul à se trouver pris à contre-pied, c'est notre ami Sarkozy : lui qui vient d'interdire de manifester masqué, son inconséquence pourrait bien favoriser la diffusion du virus en ces temps de mobilisation sociale. Mais bon, l'homme a fait du contre-cycle une spécialité : quand on a déjà favorisé les heures supplémentaires alors que le travail se raréfiait, et mis en place un bouclier fiscal avant d'augmenter les impôts, on n'en est plus à une contradiction près.
A moins que les salariés terrorisés par la grippe ne décident finalement de rester cloîtrés : miracle de la croissance virale...

Mais bon, avant de clore ce billet, je tiens à vous faire part de mon intention de profiter outrageusement de cette pandémie : j'ai l'intention de concurrencer le Tamiflu (r) et le Relenza (r).
N'étant pas pharmacien, je ne sais encore rien de la formulation de ma future spécialité. Mais je lui ai déjà trouvé un nom, qui me semble approprié à l'enjeu : l'Influtox (r) ...


(*) L'anecdote fut, en particulier, rapportée par Antonin Artaud en préambule à son essai "Le théâtre et son double".

mercredi, mars 25 2009

Lettre aux Prudhommes pour défendre mon Parachute Doré

Décidément, l'injustice sociale se généralise, ces temps-ci. Aussi, si j'étais certain grand patron montré du doigt ces derniers jours, voici le genre de missive que je ne manquerais pas d'envoyer au Conseil des Prudhommes, afin de défendre ma cause (je laisse d'ailleurs ledit patron libre de réutiliser comme bon lui semble ce modeste billet : je ne lui demanderai pas d'honoraires, quand bien même il n'en changerait pas une virgule).


A : M. le Secrétaire Général du Conseil des Prudhommes

Monsieur,

Mon contrat de travail prévoit, en cas de rupture, une clause d'indemnisation, que de mauvaises langues ont à coeur d'affubler du sobriquet de "parachute doré".
Or, mon contrat se voyant rompu, je ne fais que demander l'exécution des clauses qu'il prévoit.

Mais là, surprise : m'en voudrait-on ? Comploterait-on contre moi ? L'actualité récente semble hélas en attester.

La présidente du Medef, avec des accents dignes d'Arlette Laguiller, me choisit comme bouc émissaire pour dénoncer ces patrons qui ne respectent ni leur entreprise, ni leur salariés.
Il est vrai qu'elle représente des employeurs parfois peu enclins au respect des contrats de travail : mais on franchit là les limites de la dignité.

Le Président de la République lui-même va jusqu'à prétendre que le versement de mes indemnités contractuelles serait "irresponsable" et "malhonnête" :
dans quelle République bananière vivons-nous, dont le Président juge malhonnête que les contrats soient respectés ?

Même la presse, cette infidèle qui me fut autrefois favorable, voudrait me clouer au pilori, et me pousser à restituer avec contrition des sommes qui me sont dues : avec quelle légitimité ? Je vous en laisse juge.

Monsieur le Secrétaire Général, je vous demande donc, au nom de la justice sociale, de m'apporter votre soutien, afin que mes indemnités contractuelles me soient versées, comme elles seront versées à mes anciens salariés licenciés (à noter que nul ne qualifie leurs indemnités de licenciement de "parachute doré" : l'outrance est à sens unique).

J'en suis comme vous persuadé : le contrat de travail est un pilier de notre société. Soyons ensemble l'emblême de sa respectabilité.

Dans l'attente de votre réponse, je vous prie d'agréer (etc...)

jeudi, mars 19 2009

Notes de lecture : Eloge de la fuite

Par Henri Laborit, bien sûr. Le genre de livre un peu oublié au fond des (bonnes) bibliothèques, et dont le dépoussiérage peut amener son lot de bonnes surprises...

Laborit, neuro-biologiste, prend nos vieilles pulsions comme base de son analyse : notre but d'êtres vivants, c'est de préserver notre structure (par exemple, en se procurant de la nourriture, en évitant de reproduire les expériences malheureuses, etc...)
Le problème, c'est que nous partageons notre niche écologique avec d'autres individus, mus par les mêmes motivations : nous sommes donc en situation de concurrence.

S'ensuit l'élaboration d'une structure de dominance, devenue au gré de l'évolution une "échelle sociale" et une organisation de plus en plus normative, donc aliénante : assouvir pleinement nos pulsions dans le cadre de l'ordre social est impossible.
Car au fond, rien n'a changé : nos pulsions restent les déterminants de nos décisions (Laborit va jusqu'à nier la possibilité d'un choix libre, et donc remet en cause l'existence de toute forme de responsabilité).

Rien de nouveau ? Voire. Laborit aborde la sociologie sous l'angle de la biologie et du fonctionnement du système nerveux. Bien vu...

Mais pourquoi "éloge de la fuite" ? Explications...

Face à cet ordre social pesant, l'individu (en tant qu'être vivant) a 3 attitudes possibles : la soumission, la lutte, ou la fuite.

Pour la soumission, inutile de préciser que nous en faisons tous un usage immodéré, ne serait-ce qu'en se levant le matin, en étant poli, en amenant nos enfants à l'école et en respectant la plupart des lois : même le plus noir des anarchistes fait, pour l'essentiel, acte de soumission.

Pour la lutte... Laborit nous démontre facilement son impossibilité :
- Lutter seul est voué à l'échec. Essayez seulement, et la société vous éliminera d'une manière ou d'une autre.
- Lutter en groupe organisé apparaît possible (lutte syndicale ou politique, par exemple). Mais dans ce cas, on s'agrège à une organisation, dans laquelle le modèle classique de dominance ne tarde pas à se mettre en place (rappelez-vous, toujours nos vieilles pulsions).
Autrement dit, on remplace une dominance par une autre : ou encore, lutter contre le modèle de dominance, c'est lutter contre notre propre nature... donc c'est impossible.

Reste la fuite !

Pour Laborit, la fuite se conçoit avant tout dans l'imaginaire. Elle y permet, entre autres, la création, l'art et la science. D'autres fuites étant possibles, chacun devrait pouvoir trouver la sienne...

Quoiqu'il en soit, le seul espace de liberté concevable s'ouvre en regard de la fuite : enseignement fondamental, dont l'épaisse poussière des bibliothèques ne saurait nous tenir longtemps éloignés !

mardi, février 3 2009

La Révolution, c'est à la banque, pas dans la rue !

On a vu récemment 1 million de personnes défiler dans la rue. Eh bien, imaginez le même million de personnes se rendant de concert au guichet de sa banque pour y retirer 1.000 EUR de liquide (quitte à les remettre en banque quelques jours plus tard - dès que leurs revendications auraient été entendues : au passage, çà ne coûterait que quelques jours d'intérêt, soit nettement moins qu'un jour de grève...)

Vous ne voyez pas le rapport avec l'action sociale ? Bon, alors réfléchissez un peu :

- Sur le plan médiatique, d'interminables files d'attentes revendicatives devant la moindre agence bancaire de quartier, çà a des chances de passer au 20h, surtout si la communication est bien orchestrée (et l'organisation qui parviendrait à enclencher un tel mouvement ferait pour le moins parler d'elle).

- Sur le plan logistique, les banques devraient s'avérer incapables de fournir en quelques heures 1 milliard d'EUR en billets : outre que réunir une telle somme en liquide n'est pas simple, l'acheminer en bout de réseau saturerait les moyens existants de transport de fonds (sans parler du problème de sécurité).

- Les conséquences psychologiques d'un tel acte seraient incommensurables (ou au moins imprévisibles - ce qui en matière économique est presque pire, car l'imprévisible n'est pas assurable) : on a déjà vu, dans certains pays, la panique déclenchée par le moindre soupçon d'incapacité d'une banque à rendre leur argent aux épargnants... Et si tout le monde, dans la foulée, se ruait au guichet, non plus pour des raisons politiques, mais par crainte de voir ses économies disparaître ? (de fait, les autorités seraient forcées de bloquer les retraits... ce qui ne ferait qu'amplifier la confusion).

Il y a aussi une raison économique fondamentale qui démultiplierait l'efficacité de la méthode : l'argent est créé par le crédit, fourni par les banques. Et les banques ne peuvent prêter à l'infini : elles ont obligation de fournir à la BCE des réserves obligatoires (pour simplifier, 2% de l'en-cours de crédit), et sont soumises à un ratio de solvabilité appelé "ratio Mc Donough" (pour simplifier, de l'ordre de 10% de l'en-cours de crédit) - en gros, une banque qui vous prête 1.000 EUR doit pouvoir justifier de 100 EUR, et déposer 20 EUR à la BCE.
Notre milliard d'EUR retiré aurait donc un impact de 10 à 50 milliards d'EUR sur la création monétaire, selon qu'on prend pour base le ratio Mc Donough ou les réserves obligatoires (les 50 milliards proviennent du fait que le milliard retiré ne pourrait plus être déposé à la BCE, ce qui empêche de fait la création de 50 milliards, en raison des 2% sus-mentionnés).
L'effet de levier, ce n'est pas réservé aux financiers !

Enfin, la méthode donnerait du pouvoir à certaines minorités de l'action syndicale : les retraités, par exemple... tout le monde se fiche bien de voir les retraités en grève, mais s'ils se mettent à retirer quelques milliards d'EUR, çà risque de leur rendre un peu de leur lustre d'antan ! Disons que notre Ministre de l'Economie trouvera soudainement agréable l'idée d'inviter leurs représentants à déjeûner...

Donc, une organisation crédible (syndicale, par exemple) qui menacerait seulement de demander à ses adhérents de manifester en retirant 1.000 EUR de liquide à la banque ferait instantanément figure d'épouvantail... et devrait même légitimement être une cause de terreur absolue : dans le cas où la menace serait mise à exécution, nul ne peut prédire ce qu'il adviendrait du système financier, des taux d'intérêt, et de la valorisation boursière des banques (c'est en celà que la méthode peut être qualifiée de "révolutionnaire" : elle s'en prend à un pilier de l'édifice, et son potentiel d'entraînement n'est pas prédictible).

La simple évocation publique d'une telle possibilité nous forcerait sans doute à réformer le système financier et monétaire (et à le faire réellement, pas seulement en paroles) : faute de quoi celui-ci serait condamné, ensuite, à vivre dans une éternelle incertitude, jusqu'à la prochaine action... Le passage à l'acte ne devrait même pas être nécessaire (ni souhaitable, d'ailleurs, à mon avis !)

Il est étrange que personne n'ait encore songé à faire usage de cette méthode, alors même que nombre de voix s'élèvent pour dénoncer l'absence de contrôle démocratique sur la création monétaire : Parce que çà, ce n'est pas du "contrôle démocratique de la création monétaire", peut-être ?

Et puis, faire passer la revendication par les banques, dans le contexte actuel, serait d'une indiscutable élégance...

mercredi, décembre 17 2008

Immobilier : ne donnez jamais quitus à votre syndic

Si vous avez déjà assisté à une Assemblée Générale de copropriété, vous avez certainement été amené à voter un mystérieux "quitus" à votre syndic - généralement présenté comme une sorte de vote de confiance, voire comme une sorte d'obligation liée à l'exécution du mandat (et souvent malicieusement assimilé à l'approbation des comptes : on entend parfois les syndics parler de "quitus pour la gestion des comptes" (sic)).

Bref, sans doute avez-vous pensé : "après tout, ce syndic fait son boulot, donc je lui donne son quitus" (là, je me mets à votre place, mais j'avoue avoir par le passé commis la même bévue).

Un jour, je me suis tout de même demandé ce que voulait dire "quitus". Alors, voilà :
Un quitus, c'est une exonération de responsabilité sur l'ensemble de la gestion (car un syndic est responsable de ses actes pendant 10 ans... sauf si vous lui donnez quitus : ce délai passe alors à 2 mois).

Pour simplifier, si vous donnez quitus à votre garagiste... tant pis si vous vous tuez au premier tournant parce que la direction est mal montée, vous ne pourrez plus engager sa responsabilité !
Pour le syndic, c'est pareil (par exemple, si vous découvrez ensuite que des travaux mal suivis ou mal préparés ont engendré des dégâts, amusez-vous bien). Seule exception, bien maigre : des actes qui vous auraient été cachés, ou des malversations.

Donc :
- Un quitus n'a pas de lien avec la sincérité des comptes (il y a, d'ailleurs, un point "approbation des comptes" à voter).
- Un quitus n'a pas de lien avec la confiance accordée au syndic (j'ai confiance en mon garagiste, à qui je confie ma voiture - mais jamais je ne lui donnerais quitus !)

Et enfin, un quitus n'est pas nécessaire à l'exécution du mandat (si vous refusez le quitus au syndic, vous pouvez très bien renouveler son contrat et approuver les comptes).

En résumé, donner quitus à votre syndic, çà va à l'encontre de vos intérêts (vous vous coupez toute possibilité de recours contre votre syndic, qui peut rentrer chez lui en se frottant les mains de l'aubaine), çà ne vous apporte aucun avantage, et çà ne sert à rien quant à la gestion de la copropriété.

Alors, la prochaine fois, sauf à être raide amoureux(se) de votre syndic (ou à ne pas comprendre le français), votez contre le quitus : vous constaterez que votre syndic s'en remettra, et même qu'il sera bien content de rester votre syndic, avec ou sans "quitus".

Et pour plus d'info, je vous recommande cet article, très documenté !

P.S. Rassurez vous : les garagistes n'ont pas le droit de vous demander quitus, pas plus que les médecins ou les plombiers... mais cet archaïsme subsiste pour les syndics, sans doute ont-ils leurs entrées dans les couloirs des ministères ?

P.P.S. je ne comprends même pas qu'un syndic ose seulement demander quitus (et généralement, avec quelle mauvaise foi !)

vendredi, novembre 14 2008

Si la Formule 1 était truquée, çà changerait quoi ?

Ca ne changerait rien (donc, çà ne sert à rien de truquer, si çà ne change rien, pas vrai ?) : démonstration.

GP du Brésil 2008 : il suffirait à Hamilton de terminer 5ème pour être champion du monde - et il assure sa fin de GP, à la 4ème place.
Mais la pluie s'invite dans les derniers tours : changement de pneus, sauf pour quelques opportunistes qui tentent de rallier l'arrivée en pneus sec. Parmi eux, Timo Glock, qui se retrouve dans le tiercé de tête.
A ce niveau, pas d'inquiétude : Hamilton se retrouve 5ème. Mais voilà, Vettel parvient à le dépasser...
Heureusement, dans les derniers hectomètres, Glock perd 6 secondes suite à une erreur de pilotage (hors écran, hélas, cher téléspectateur), permettant à Hamilton de reconquérir sa 5ème place presque sur la ligne !
Même le commentateur de la télé n'en revient pas, il annonçait Hamilton 6ème et c'est l'affichage officiel qui va le démentir... Quant à Glock, faire une telle erreur dans les ultimes secondes alors qu'on a tenu tête 5 tours sous la pluie, c'est vraiment pas de chance, le pauvre...

Bon, après çà, remontons le temps : GP du Brésil 2007 (encore).
Une 6ème place suffit à Hamilton pour être champion du monde (encore...). Mais Alonso est aussi dans le coup - quant à Raikkonen, c'est encore une lointaine menace.
Donc, après un mauvais début de course, Hamilton s'approche de la 6ème place... quand sa F1 fait soudain du sur-place, du fait d'une étrange panne qui se résoudra d'elle-même au bout de quelques dizaines de secondes (les F1 en panne, çà retombe en marche tout seul, parfois).
A ce moment, Alonso est virtuel champion... mais Hamilton se rapproche de nouveau !
Las, McLaren impose à Hamilton une tactique à 3 arrêts (ravitaillement très frugal en essence au 2ème arrêt), alors qu'Alonso et Raikkonen restent sur 2 arrêts (comme tout le monde ce jour-là, d'ailleurs...).
Cette fois, c'est perdu pour Hamilton... mais pas de bol pour Renault, Raikkonen réussit un final invraisemblable, et son équipier Massa termine 2ème (faisant perdre le championnat à Alonso au profit de Raikkonen).

Alors, qu'en conclure ?

Si la F1 était truquée :
- En 2007, des tractations entre écuries auraient conduit McLaren à ralentir Hamilton (en déréglant sa monoplace en piste, puis en lui imposant 3 arrêts voyant que çà ne suffisait pas), pour faire gagner Alonso.
Hélas, la compétition reprenant parfois ses droits, Ferrari aurait réalisé un tel exploit que Renault se serait trouvé le bec dans l'eau... gageons que Raikkonen n'en revient pas encore (à moins que les sus-nommées tractations n'eussent conduit à ralentir aussi Alonso pour faire gagner Raikkonen, mais là çà deviendrait un peu machiavélique).
- En 2008, des tractations entre écuries auraient conduit Glock à freiner dans le dernier partiel du dernier tour (prétextant une erreur due aux conditions météo), permettant à Hamilton d'être champion du monde au détriment de Massa.

Mais heureusement, çà n'était qu'un cauchemar : la F1 n'est pas truquée, et ces résultats découlent de compétitions saines. Cher lecteur, si tu en doutes, sache que tu as des idées tordues !

mardi, octobre 7 2008

Déploiement d'une librairie externe dans JOnAS 5.x (JavaEE)

Le déploiement d'une librairie externe (généralement un fichier .jar) se fait désormais via OSGi : la librairie doit donc être packagée dans un "bundle" OSGi avant d'être déployée.
L'ancienne méthode (copie de la librairie dans JONAS_ROOT/lib/common) ne fonctionne plus, contrairement à ce que mentionne la documentation JOnAS 5 à la date de ce post...

Principe :

  1. Packager le fichier .jar sous forme de bundle OSGi
  2. Copier le bundle OSGi dans le répertoire "deploy" de JONAS_BASE (déploiement à chaud)

Le packaging peut être fait avec l'outil "bnd", téléchargeable ici : cliquer sur "download" puis "Stable bnd.jar" dans "Releases". Enregistrez le jar téléchargé sous le nom "bnd.jar".

Ensuite, pour générer le bundle à partir de votre librairie :
java -jar bnd.jar -failok wrap -output mybundle.jar mylibrary.jar
puis copier "mybundle.jar" dans JONAS_BASE/deploy .

Exemple pour le driver JDBC de MySQL :
java -jar bnd.jar -failok wrap -output mysqlDriverBundle.jar mysql-connector-java-5.1.6-bin.jar
puis copier mysqlDriverBundle.jar dans JONAS_BASE/deploy .

A partir de là, les classes présentes dans la librairie seront accessibles depuis les applications déployées sous JOnAS (dans l'exemple ci-dessus, le driver JDBC de MySQL pourra être utilisé, par exemple pour configurer un datasource).

A propos de JOnAS 5 : JOnAS est le serveur d'application JavaEE open-source fourni par la communauté OW2; voir jonas.ow2.org pour plus d'informations.

mercredi, août 27 2008

Tintin chez les Talibans, au JT de France 2

Premier titre du 20h de France 2, ce lundi 25 Août : "Nouvelle attaque des Talibans contre les troupes françaises". Bigre, me dis-je, j'espère que cette fois ils sont sortis couverts...

Et la suite : "Notre équipe se trouvait dans le véhicule touché par une roquette"... Alors là, je reste scotché devant mon poste, tout émoustillé à l'idée de voir M. Grizbec s'extraire en slip d'un blindé fumant !

Je ne serai pas déçu : la suite est très au-delà de mes attentes. On y voit quelques images embarquées de l'intérieur d'un blindé, un commentaire qui dit qu'une roquette vient d'être tirée mais n'a pas explosé (précision inutile, aurait-elle explosé qu'elle eût clos à jamais le Bec de M. Griz), un soldat qui ouvre la tourelle, sort nonchalamment, tire quelques coups de Famas avant de revenir prendre place à l'intérieur, prétendant avoir vu des talibans "courir sur la crête" (ah, les crêtins !). Sur ses lèvres, j'ai cru lire "vivement la quille", mais je ne suis pas sûr...

Bon, tout çà n'est pas très militairement correct : un taliban qui tire au milieu du convoi, avec une munition bricolée (puisqu'elle n'explose pas), donc un truc qui ne vole pas bien loin, il est à moins de 100m, et en position dominante vu le terrain. Et là, notre soldat qui sort de sa tourelle, avec de supposés talibans qui l'attendent bien cachés à quelques dizaines de mètres, et il ne sait même pas où...

J'espère au moins que l'office du Tourisme a envoyé quelques talibans sur la crête (parfois on ne recule devant rien pour satisfaire les tour-operators), mais j'arrive même à en douter : les réductions de budget, encore... le Taliban est cher, ces temps-ci, avec l'inflation et le conflit des intermittents.

Quant à M. Grizbec, il est mûr pour couvrir le retour du 15 Août embarqué dans le camping-car de Marcel sur la Nationale 7 : c'est un peu plus dangereux (on perd 5.000 ressortissants sur les routes chaque année), mais maintenant il est aguerri. Et si Marcel voit un Taliban, pas de doute, ce sera dû aux effets du rosé.

Moralité : La Grande Muette a loupé une occasion de se taire.

Mais bon, cessons de faire preuve de "légèreté" (comme dit un certain Général) pour rebondir sur un sujet connexe, mais plus grave : avez-vous entendu le discours de notre cher Président à Maillé ?
Profitant de l'événement pour faire un parallèle avec l'Afghanistan, il traitera les talibans tuant nos soldats de "barbares" et de "terroristes". Fort bien.
A noter que quelques jours après la mort des dits soldats, un raid de la coalition provoquera la mort de 76 civils afghans, femmes et enfants inclus. De celà, bien sûr, il ne fut pas question (et puis, hein, c'est pas nous, c'est les Américains).

A Maillé, les nazis ont pourtant fait la même chose. Et sur le corps de certaines victimes, on aurait retrouvé des messages faisant mention de vengeance contre les "terroristes" : la Résistance ayant exécuté un officier nazi quelques jours auparavant...

Bref, il n'y a rien de nouveau sous le soleil : même rhétorique contre la résistance (les "terroristes" et les "barbares", on a déjà entendu çà, ici), mêmes méthodes de rétorsion. Ca fait plaisir à voir, cette constance de l'homme !

Alors, il y a au moins un point sur lequel je suis d'accord avec M. Sarkozy : nous avons commis une "faute morale". Celle de ne pas avoir su tirer les leçons de Maillé, et d'avoir joyeusement carbonisé femmes et enfants au nom de la lutte sacrée contre les terroristes...

Un jour peut-être irons nous nous excuser, comme ce digne procureur allemand le fit à Maillé, auprès des habitants éplorés de quelque Maillé afghan : gageons qu'enfin, nous en sortirons grandis.

vendredi, juillet 18 2008

Le Tour défonce

Comme on est tous impatients, chaque année, de retrouver son feuilleton de l'été ! Heureusement, le Tour 2008 tient toutes ses promesses.

Tenez, savez-vous comment le peloton surnomme les accros du dopage ? Des "chaudières". Alors, Saunier-Duval, hein...

Pendant qu'on y est, continuons avec les calembours de 3ème zone, çà détend. A l'approche des Alpes, on se sentirait un rien égrillard : l'une des stars du dopage en altitude, c'est le Viagra (r). Paraît que çà favorise l'oxygénation, en plus de favoriser autre chose : ah, le Mâle des montagnes !

Autre étoile des pharmacies, l'Androgel (r) : une sorte de pommade avec laquelle on se tartine joyeusement, et qui diffuse lentement de la testostérone, transformant le coureur en une sorte d'homme de Cro-Magnon, en plus irascible... Evidemment, si vous confondez çà avec la crème solaire, le plus fluet d'entre vous se verra transformé en macho des plages, avec les poils et tout ! Les filles, gare au gorille...

Mais tout çà, c'est du pipi de chat comparé au dopage sanguin, catégorie à laquelle appartient la fameuse EPO (et aussi un certain PFC, sorte d'hémoglobine artificielle... précédemment utilisée comme gaz propulseur d'aérosol ! Ces types, dites leur que le kérosène fait voler, ils s'en injectent une dose).

Il suffit de relire le désormais classique Menthéour, qui a vécu la naissance de l'EPO : "Grâce à l'EPO, je découvrais un nouveau sport [...] Non content de finir la course, j'y prenais vraiment part, en plaçant des attaques devant les caméras, comme dans mes rêves d'enfant." (pour info, un triathlète qui a officiellement testé le produit il y a quelques années s'est trouvé respirer tous les 11 temps en natation... un vrai phoque !)

Sachant celà, personne n'a été surpris de voir Ricco rouler à 40 à l'heure dans une bosse à 7%... Et le pauvre Di Gregorio, interrogé par Gérard Holtz : "Alors, ce Ricco, il est fort ?" lâchera d'une voix fatiguée, et le regard absent : "Oui, c'est un bon coureur" (sic). Et il aurait pu dire quoi ? "Ce mec, il en a tellement pris qu'il est fluorescent la nuit" ?
Mais le plus stupéfiant, c'est que derrière Ricco, il y a 39 types qui lui concèdent 1 minute (1'17'' exactement). Et là, je me permets de paraphraser Sébastien Chavanel (qui a dit : "Attaquer comme çà dans le col d'Aspin, la bouche fermée, on sait que c'est pas possible") : concéder 1 minute à une fusée pareille, même avec la bouche ouverte...

mercredi, juin 18 2008

Echanges avec Eben Moglen à propos des licences GPL

Retour sur une sympathique entrevue avec Eben Moglen, organisée à l'initiative de la communauté open-source OW2 (dont je suis membre actif)...

Pour ceux qui ne connaissent pas Eben, c'est tout simplement l'avocat de la FSF (Free Software Foundation), l'auteur des licences GNU (dont la fameuse GPL), et sans doute le premier juriste à avoir traduit en termes légaux la notion de "copyleft" (il n'a pas inventé le copyleft... mais lui a donné la validité juridique qui lui manquait !). Il enseigne aussi le droit à l'Université de Columbia (New York).
Eben est également un homme de conviction, et développe une analyse marxiste de l'évolution de la propriété intellectuelle (selon lui, une nouvelle "lutte des classes" oppose les travailleurs de la connaissance aux tenants de la propriété intellectuelle "classique", que le sens de l'histoire devra faire tomber, comme il a fait tomber la propriété féodale au moment de la Révolution française... La propriété intellectuelle étant perçue comme une des bases du système économique, son raisonnement prend alors une portée générale).

Bref, à mon sens, Eben est l'un des juristes les plus importants des 30 dernières années... Mais revenons à notre thème central : nous sommes ici pour questionner Eben sur la licence GPL (en particulier, la nouvelle GPL v3, mais plus globalement ce qu'implique l'utilisation de la famille de licences GPL).

Rappel pour les non initiés : la GPL (General Public License) met en oeuvre le principe du "copyleft" (jeu de mot intraduisible, qui suggère le contraire du droit d'auteur - "left" signifie "gauche" alors que le "right" de "copyright" signifie "droite" - mais aussi le fait de laisser le droit à quiconque de copier : "copy left" signifie, en gros, "je laisse copier qui veut").

Le copyright permettait à un auteur de restreindre les droits sur son oeuvre (droits d'utilisation, de distribution, de modification...). Le copyleft, c'est l'inverse : l'auteur interdit à quiconque toute restriction des droits (et laisse généralement, au départ, toute liberté de copie, distribution ou modification).

La GPL met en oeuvre le "copyleft" de façon virale : non seulement les droits ne peuvent être restreints sur l'oeuvre originale, mais également sur toute oeuvre dérivée (forcément couverte par la même GPL). Elle garantit que toute oeuvre libre, même modifiée, le restera...

Et notre réunion ? Eh bien, elle se déroule à Paris (le 5 juin dernier), en présence d'une dizaine de personnes, dont j'ai la joie de faire partie. Je me suis spécialement déplacé pour l'occasion : 2 heures de questions libres à Eben Moglen, comment résister ?

Compte-rendu, dans la limite de ce que je peux comprendre (je ne suis pas juriste, et dispose d'un anglais acceptable... sans plus !) :

Tout d'abord, Eben a fait quelques rappels simples sur la GPL : en ce qui concerne les oeuvres dérivées, il est clair que les modifications privées peuvent rester privées (usage interne, par exemple - ou toute modification qui n'est pas diffusée)... mais toute version distribuée doit être couverte par la GPL, qui est bien en ce sens une licence virale.

La GPL v3 définit plus clairement ce qu'est une copie "privée" (non couverte par la GPL car non redistribuée) : il est maintenant clair que la sous-traitance reste dans le cadre privé. Exemple : si une SSII travaille pour vous, sous contrat, sur du code GPL que vous ne redistribuez pas... le fait de le transmettre à cette SSII n'est pas une distribution, donc ce n'est pas couvert par la GPL !

J'ai pu poser à Eben une question qui me taraude depuis longtemps : à savoir, quel est le périmètre exact d'une "oeuvre dérivée" ? Par exemple, une application de gestion qui utilise la base de données MySQL (couverte par la GPL) ne saurait être considérée comme une "oeuvre dérivée" de MySQL... mais où est la limite ?

J'ai pris un exemple plus tangent : une servlet déployée dans un conteneur couvert par la GPL... Réponse d'Eben : dans la mesure où les 2 programmes peuvent fonctionner indépendamment (dans le cas de ma servlet, çà implique qu'il existe au moins un second conteneur compatible dans lequel je puisse la déployer), ET à condition qu'une interface publique d'échange soit utilisée (ma servlet utilise l'API servlet, qui est publique), alors on n'est pas en présence d'une oeuvre dérivée.
Donc, même si l'interface d'un composant GPL est publique, encore faut-il que le composant qui fournit cette interface soit interchangeable... sinon, tout programme qui l'utilise est une oeuvre dérivée !
A noter que la GPL v3 éclaircit les choses, dans ce domaine (sous GPL v2, toute distribution commune de 2 oeuvres était considérée comme une seule oeuvre composite, même si l'oeuvre n'était pas à proprement parler "dérivée" - ce n'est heureusement plus le cas). Pour les servlets, on est donc tranquilles... mais il faut quand même se méfier !

Eben a ensuite tempéré ce propos en rappelant que, si je suis l'auteur d'un programme, c'est moi qui fixe les droits : je peux très bien fournir une interface publique, et décréter que les programmes qui utilisent cette interface ne sont pas des oeuvres dérivées du programme initial. Il parait même que Linus Torvalds a utilisé ce moyen pour certaines interfaces du noyau Linux !

Sinon, retour sur quelques caractéristiques spécifiques à la GPL v3, d'après ce que j'ai pu comprendre...

La GPL v3 se veut "transnationale", c'est-à-dire détachée de tout contexte juridique local (entendez "moins liée au droit américain que la v2"). Pour celà, elle utilise un vocabulaire le moins connoté possible (décorrélé du domaine juridique).

Le droit central qu'octroie la GPL, c'est le droit de distribuer une oeuvre dérivée : la GPL v3 établit clairement que des oeuvres dérivées peuvent être librement redistribuées, et que ce ne sera pas criminel quelle que soit la juridiction.

La GPL v3 offre aussi des garanties nouvelles, au moins dans 2 domaines :
- La "tivoization" (= le fait de faire en sorte qu'un logiciel ne puisse fonctionner que sur une plateforme hardware donnée) : sous GPL v3, toute oeuvre dérivée adaptée à un hardware spécifique doit être distribuée avec le mode d'emploi pour l'installer.
- Les brevets : l'auteur ne peut défendre aucun brevet sur le code original (et le principe vaut aussi pour les contributeurs, concernant les oeuvres dérivées). Si brevet il y a, les utilisateurs / distributeurs / contributeurs du code ne peuvent être inquiétés à ce titre.

Enfin, questionné sur la validité éventuelle de "restrictions à l'exportation" pour un programme couvert par la GPL, Eben est catégorique : c'est impossible. Raison invoquée à titre d'exemple : "Microsoft est assez riche pour s'acheter un petit état" ! CQFD...

Si, globalement, la discussion est restée assez technique (quoique rendue vivante par quelques exemples et anecdotes), Eben n'a pu totalement s'empêcher d'aborder le volet "idéologique" :
Lorsqu'une communauté publie du code sous GPL, il devient très difficile de prendre le contrôle de cette communauté (de la racheter, par exemple...). L'utilisateur se trouve alors en présence d'une chaîne d'approvisionnement "sans but lucratif" (littéralement "non profit supply chain"), qu'il est nécessaire de protéger comme tout bien commun devrait l'être : Eben a pris pour exemple la forêt, ou, avec malice, nos marins-pêcheurs...

Voilà, j'arrête là... en espérant que ce compte-rendu puisse être utile, et que je n'ai pas trop déformé les propos d'Eben (en les comprenant mal ou en les traduisant). En tout cas, j'ai maintenant les idées plus claires, et j'espère que vous aussi !

Un grand merci, bien sûr, à Eben Moglen pour sa patience et sa disponibilité.

vendredi, mai 30 2008

L'IPSOS est-elle le caniche des Majors du disque ?

Le 27 mai dernier, l'IPSOS a publié un sondage intitulé "Les Français face au téléchargement illégal de musique sur Internet" (commandé par la SCPP, Société civile des producteurs de phonogrammes) :
L'intégralité des réponses est ici.

Du sondage ressortent deux points importants (avis largement majoritaires) :

  • - Les gens pensent que les auteurs doivent être rémunérés quand on télécharge leur musique.
  • - Les gens pensent que la baisse des ventes de disques est en grande partie due au téléchargement gratuit.


Il est déjà notable que l'on parle ici de la rémunération des auteurs : évidemment, aucune question n'a été posée concernant la rémunération des distributeurs ou des producteurs (et rien sur un possible mécanisme de "licence globale", lequel justement rémunérerait les auteurs bien mieux qu'aujourd'hui... au détriment, certes, des intermédiaires !).

Admettons... la suite est plus croquignolette, puisqu'on pose au sondé la question suivante (prenez votre respiration avant de lire !) :

Aujourd’hui un internaute qui télécharge illégalement de la musique sur internet risque une condamnation pénale pouvant aller jusqu’à 3 ans de prison et 300 000 euros d’amende. A la place, un nouveau projet de loi prévoit que l’internaute qui télécharge illégalement recevrait un avertissement par mail dans un premier temps puis un deuxième avertissement par lettre recommandée s’il continue. Enfin s’il persiste encore, il encourra une suspension temporaire de son abonnement Internet. Personnellement, êtes-vous tout à fait, plutôt, plutôt pas ou pas du tout favorable à ce projet de loi ?

Que signifie cette question ? C'est assez simple, si on la reformule. Elle signifie ceci :

Si l'on propose d'alléger notablement les sanctions à l'encontre des internautes qui téléchargent illégalement de la musique, êtes vous d'accord ?

Et là, 74% des gens sont favorable à l'allègement des sanctions, alors que 23% y sont défavorables (en supposant qu'ils aient compris la question, mais comme je ne prends jamais les français pour des c..., je le tiens pour acquis).

Cette réponse a été interprétée comme suit par Marc Guez, Président de la SCPP (interview sur O1net) :
"Nous avons fait réaliser un sondage auprès des Français. Ils ont apparemment la même perception que nous." (sic). Et le journal d'ajouter, à titre d'explication, que "74 % des Français ne seraient pas hostiles au projet de loi antipiratage du gouvernement", ou encore que "74 % des Français ayant déjà téléchargé sont favorables à la « riposte graduée » prévue par le futur projet de loi (avertissement par e-mail puis par lettre recommandée, voire suspension temporaire de l'abonnement...)".

La dernière phrase est la plus croustillante : 74% des contrevenants sont favorables à un allègement des peines (c'est effectivement dans le sondage), et la SCPP s'en félicite !
C'est comme si le Ministère de l'Intérieur demandait aux fumeurs de joints s'il faut dépénaliser le cannabis, avant de se féliciter qu'ils répondent oui... Je rêve ?

A noter que, tant qu'à poser des questions sur un possible allègement des peines, l'IPSOS s'est bien gardée de poser la question suivante : Si l'on propose de supprimer toute sanction à l'encontre des internautes qui téléchargent illégalement de la musique, êtes vous d'accord ?

J'aurais aimé avoir la réponse à cette question, mais bon, ne rêvons pas... enfin, quand on est un institut de sondage sérieux et qu'on interroge son échantillon sur une alternative, il me semble qu'on se doit d'explorer toutes les possibilités (on parle d'alléger une peine, il faut aussi évoquer son durcissement comme sa suppression, faute de quoi la signification de la réponse perd toute pertinence).

Bon, mais alors, naïveté ou manipulation ?
Marc Guez serait un imbécile ? L'IPSOS un ramassis d'incompétents ? le journaliste de 01Net un amateur ?
Dans ce cas seulement, il conviendrait de leur accorder notre indulgence : car sinon, ils seraient de mauvaise foi - ce qui est, convenez-en, bien plus grave qu'être idiot - et ne mériteraient rien que du mépris...

P.S. La question posée par l'IPSOS (sur l'allègement supposé des peines) masque également un important point de droit, relevé pertinemment par Philippe Aigrain sur son blog - à lire sans modération !

mercredi, mai 28 2008

Le "piratage", épouvantail des conservateurs

Ces derniers temps, le législateur prend à nouveau de grands airs offusqués à propos d'un sujet cent fois rebattu : le "piratage" sur Internet, et particulièrement sa forme la plus subversive, le "peer to peer" ou échange de fichiers (les échos de la polémique emplissent le web français et même européen : il y est question de la loi "HADOPI" ou "loi Olivennes", de "riposte graduée" avec amendes et fermeture administrative des connexions internet de contrevenants, et autres fariboles néo-fascistes à base d'écoutes privées conduites par de zélés fonctionnaires... semblant tout droits sortis d'un passé aux relents douteux).

Mais bon, le but de ce post n'est pas d'enfler la polémique ambiante, ni de rabâcher des informations déjà cent fois publiées : les chiens aboient, la caravane passe.

Il s'agit plutôt, ici, de faire un tour d'horizon de ce qu'est réellement le "piratage", souvent présenté comme un vol pur et simple par les uns, et comme une sorte de droit inaliénable par les autres... panorama des principaux concepts et enjeux sous-jacents.

La notion de "ressource rivale"

Une ressource est dite "rivale" si sa possession par quelqu'un empêche sa possession par quelqu'un d'autre (sinon, elle est dite "non rivale").
Ma voiture est une ressource "rivale" (si vous la prenez, je n'en ai plus), tout comme un disque sur l'étal d'un disquaire (si je le subtilise, le disquaire ne l'a plus).
A contrario, une idée, par exemple, est une ressource "non rivale" (si je vous fais part de l'idée, nous sommes deux à la détenir : je n'en suis pas dépossédé). Il en va de même d'un morceau de musique enregistré : si j'en détiens une copie, celui qui détient l'original l'a toujours !
Toute la roublardise de ceux qui assimilent le piratage au vol consiste à confondre ressources "rivales" et "non-rivales" : vous qui ne voleriez pas un disque, vous le copiez, c'est pareil ! Cet amalgame relève évidemment de la mauvaise foi.

La notion de coût marginal

Important en économie, le "coût marginal" d'un bien ou d'un service est son coût réel de production à l'instant T.
Par exemple, si un constructeur automobile conçoit un nouveau modèle et construit une nouvelle usine pour le produire, il devra amortir ses investissements : le coût de production des premiers exemplaires sera élevé.
Mais si le succès est au rendez-vous, une fois ces coûts amortis, produire une voiture ne coûtera plus que le prix des pièces, de la main d'oeuvre, plus une fraction du coût de fonctionnement de l'usine.
Pour une voiture, ce sont quelques milliers d'EUR. Pour un CD de musique, ce sont quelques centimes !

Ce coût correspond au prix que vous pourriez payer un CD de musique datant de quelques années s'il n'y avait ni intermédiaire, ni marge. Même avec une marge de 200 ou 300%, le CD ne devrait pas coûter plus d'un EUR...

Et la rémunération des auteurs ?

On peut la concevoir de différentes manières :

  • * soit l'auteur rend un service (par exemple, un artiste fait un concert, ou il enregistre un disque), et on le rémunère uniquement pour le temps qu'il a passé à travailler. Ce schéma est celui que vivent la plupart des artistes (on l'oublie souvent) - les programmeurs de logiciels sont soumis au même régime (généralement, ils sont salariés).
  • * soit l'auteur perçoit des droits sur chaque utilisation ou diffusion de son oeuvre : c'est le schéma de la propriété intellectuelle classique, mis en oeuvre, par exemple, par la SACEM en ce qui concerne la musique.

Si le second schéma n'est pas inacceptable en soi, il a induit au moins deux dérives :

  • * Souvent, la propriété intellectuelle est déléguée au distributeur (en partie ou en totalité) : dans ce cas, ce n'est pas l'auteur, mais le distributeur, qui est rénuméré au titre d'une création... qu'il n'a pas créée !
  • * Dans la plupart des états occidentaux, la durée de protection des oeuvres, à l'origine de quelques années, a été étendue au-delà de toute mesure (jusqu'à 70 ans après la mort de l'auteur !). Ce dispositif était au départ conçu pour favoriser la créativité : comme l'a fait remarquer le juriste Lawrence Lessig, "à quoi bon favoriser la créativité d'un mort ?"

En France, il conviendrait d'ajouter la "redevance pour copie privée", que vous acquittez à chaque fois que vous achetez un support numérique (CD, DVD, disque dur...) et qui est supposée rémunérer les auteurs. Or la copie privée est un droit : comment expliquer que l'on rémunère les auteurs en contrepartie d'un droit dont on dispose (et dont l'exercice ne saurait donc constituer un préjudice) ? La seule explication, c'est de considérer cette redevance comme une compensation du piratage... autrement dit, comme une forme de droit à pirater (j'ai déjà payé, donc je me sers, disent les pirates... ont-ils foncièrement tort ?)

Ici donc, comme toujours, le bon équilibre est dans la mesure : un usage raisonné des deux modèles de rémunération (service et droit d'auteur limité dans le temps) conduirait à une rémunération équitable de tous les acteurs, tout en rendant le marché accessible.

Le piratage est un impôt progressif...

Cette phrase n'est pas de moi : elle est attribuée à Tim O'Reilly, célèbre éditeur américain.
Prenons exemple sur la musique : les artistes les plus diffusés pâtissent réellement du piratage. Mais c'est au profit de nombreux artistes inconnus, dont la musique n'est diffusée que grâce à l'échange de fichiers : la notoriété que cette diffusion leur confère leur permet de mieux remplir leurs salles de concerts, et de vivre dignement de leur art (les plus chanceux parvenant même au sommet du box office).
Donc, ce qui est perdu par quelques uns profite au plus grand nombre : en ce sens, le piratage est bien un "impôt progressif", acquitté par les plus riches au profit de tous - ce qui explique, entre autres, que nombre d'artistes s'opposent à tout "flicage" de l'internet.

Les risques du flicage

On a assez parlé des atteintes aux droits individuels, ainsi que du risque d'exclure des gens de l'internet (qui est bien plus qu'un espace d'échange de fichiers !), pour qu'il soit inutile de s'étendre davantage sur le sujet.
Mais il y a au moins deux autres dangers, souvent moins connus :

  • * Le premier est celui de la généralisation de technologies de chiffrage (ou "cryptage") : il existe déjà des réseaux "peer to peer" extrêmement sécurisés (comme "mute", par exemple). Sur ces réseaux, il est quasiment impossible de déterminer qui est qui, et qui fait quoi, sauf à mobiliser d'énormes moyens... sans même que le succès ne soit garanti !

On y trouve déjà aisément des contenus pédophiles, entre autres : le durcissement des mesures policières conduit au durcissement de la contre-mesure, lequel ouvre un boulevard aux véritables activités criminelles.

  • * Le second est le risque d'"erreur judiciaire" : supposons, par exemple, que mon voisin ait mal sécurisé son accès wifi (ou qu'il participe à un réseau de wifi communautaire). Si j'utilise sa connexion pour télécharger illégalement des oeuvres protégées, c'est lui qui verra son accès internet coupé... ce n'est pas très juste !


Pour conclure, un peu de politique politicienne...

Comme souvent dans le débat politico-économique, les conservateurs avancent masqués... et déguisés en libéraux !
Ce dont il est question lorsqu'on veut "fliquer" l'internet, ce n'est pas la protection des auteurs : c'est la protection des positions acquises.

Or un libéral, ce n'est pas quelqu'un qui défend les acquis : c'est quelqu'un qui défend le progrès par le biais de la compétition, de la création et du mérite.
A ce titre, qualifier de "libéraux" ceux qui nous gouvernent aujourd'hui serait leur faire un compliment qu'ils ne méritent pas : un conservateur est un conservateur, tout comme un chat est un chat...

mardi, avril 1 2008

Innovation zéro

Avez-vous quelque peu cherché à innover, à inventer quelque chose de nouveau, à créer ou même simplement à penser de manière originale ?
Si c'est le cas, vous vous êtes sans doute aperçu que c'est difficile et inconfortable (l'effort nécessaire pour créer est incommensurable à celui nécessaire pour copier, et se déroule le plus souvent sous des regards réprobateurs), alors même que nombre d'inventions paraissent a posteriori du domaine de l'évidence ("comment n'y ai-je pas pensé moi-même" ?).

Cette proposition ne serait-elle pas contradictoire si l'on n'était pas, foncièrement, des animaux stupides et conditionnés ?

Il existe dans l'histoire un exemple édifiant : l'invention du zéro.

Un enfant de 5 ans est capable de comprendre ce qu'est le zéro, devenu une évidence pour tout un chacun. Pourtant, il a fallu des siècles pour l'inventer, puis encore 1000 ans pour comprendre qu'il s'agissait d'un nombre (inventé comme une forme d'espace pour la notation positionnelle des nombres 300 ans avant JC, il fut défini comme résultat de la soustraction d'un nombre à lui-même en... 628) - sans compter le temps que le zéro a mis à se diffuser (introduit en Europe occidentale au XII ème siècle !).

Le zéro n'a pas seulement été retardé par notre stupidité : notre aveuglement (ou conditionnement) y est aussi pour quelque chose. Le zéro n'était réellement concevable que dès lors qu'une certaine conception des nombres se faisait jour (et réellement utile que combiné à la notation positionnelle - perçue comme seule efficace pour effectuer des calculs, mais longtemps freinée par le poids de la tradition et la pression de certains lobbies, dont le calcul était le fonds de commerce).

Il ressort donc que, d'une part, très peu d'individus auraient la capacité d'inventer le zéro - et qu'ils seraient encore moins nombreux capables de convaincre les autres de son utilité : car le frein le plus puissant à l'innovation, c'est notre conditionnement.

Il est a contrario notable qu'une fois le zéro inventé et diffusé, il est devenu partie intégrante de notre conception de la réalité - au risque de nous cacher, irrémédiablement, d'autres vérités, et de nous rendre incapables d'innovations qui auraient pu se faire jour dans un monde sans zéro : notre pensée est inconsciemment orientée par le zéro (comment penser comme si le zéro n'existait pas ?)

Nous n'avons donc qu'une vision étroite et bridée de la réalité : outre le fait que nous l'appréhendons avec des sens fort limités, notre formation nous inculque nombre d'idées préconçues dont nous ne pouvons ensuite nous dégager.
Prenons, à titre d'exemple, la géométrie Euclidienne : nous avons tous appris que la somme des angles d'un triangle est de 180 degrés. Faites l'expérience de tracer ce triangle sur une sphère au lieu d'un plan : la somme de ses angles sera alors de... 270 degrés.
Rien de nouveau : 180 degrés, c'est uniquement dans le plan Euclidien. Le problème, c'est que nous prenons ce postulat pour argent comptant - autrement dit, nous voilà persuadés de vivre dans un espace Euclidien, et nous allons baser nos raisonnements là-dessus. "Chance", nous vivons dans un espace (ou une portion d'espace ?) où la géométrie Euclidienne s'applique... presque. Ce qui renforce d'autant notre croyance qu'elle EST la réalité... cette "petite" approximation (qui perdure chez la plupart de nos contemporains - peu de quidams se méfient du triangle) nous a fait perdre quelques millénaires.

Tout est à l'avenant : l'industrie mécanisée et notre conception du temps découleraient de notre système d'écriture et de l'imprimerie (division des tâches, notion de subdivision, etc... que l'on applique ensuite à d'autres domaines), et notre science même découlerait de la religion monothéiste (avec un curieux effet de balancier : étant persuadé que Dieu ne s'incarne pas en toute chose, l'investigation est légitimée... alors même qu'une certaine conception de la morale et de l'autorité canalise le progrès).

Autrement dit, nous n'avons pas seulement une faible capacité d'invention : en plus, nous avançons avec des oeuillères, au sein d'un système qui nous dicte ce que l'on doit penser !
Et plus nous avançons, plus nous nous persuadons que nous détenons la vérité... que l'on essaie ensuite d'inculquer aux autres, au besoin par la force, déclarant ineptes d'autres formes de science ou de pensée qui nous sont inintelligibles, et se trouvent perdues à jamais (la médecine primitive, certaines conceptions du temps, et nombres de philosophies oubliées ont fait les frais de cette attitude... sans parler des nombreux savants, philosophes et inventeurs qui furent purement et simplement méprisés, traîtés comme fous, poussés au parjure, voire assassinés).

Nous sommes un peu comme un automobiliste qui ne voit que ce qui est éclairé par ses phares : l'étendue de notre connaissance se résume à cet étroit faisceau, et ce que nous ne connaissons pas est du même ordre que la nuit autour (la métaphore a quelque chose d'équilibré : les scientifiques se demandent encore où est passée... 90% de la masse de l'Univers !)

Quant à l'innovation, elle commence par une certaine attitude critique : la prochaine fois qu'on vous racontera que la somme des angles d'un triangle est égale à 180 degrés, demandez-vous si l'on ne vous prend pas pour un imbécile...

lundi, janvier 21 2008

La Foulée Blanche en caméra embarquée !

Fervent adepte du ski de fond, j'ai eu récemment l'idée saugrenue de filmer de l'intérieur un départ de course longue distance. Evidemment, pas question de s'encombrer d'un matériel lourd, ni d'ajouter aux contraintes de la course celles de la prise de vue...
J'ai donc choisi de "scotcher" (velcro, en fait) une mini-caméra derrière ma ceinture porte-bidon : en l'occurrence, il s'agit d'une "FlyCam One V2", petit appareil de 40 grammes équipé d'une SD Card et destiné à l'origine au modélisme aérien.
Premier test - peu concluant- au marathon de Bessans : je n'ai filmé que le ciel ! J'ai également découvert que ma caméra ne supportait guère le froid (je scotche donc une chaufferette à mains dessus), et que l'autonomie batterie était fort limitée (c'est le prix de la légèreté).

C'est donc fort de ces expériences que je me suis attelé à filmer le départ de la Foulée Blanche 2008 (42km, style libre), ce 20 Janvier à Autrans : résultat, 7 minutes de vidéo brouillonne et aux couleurs fantaisistes, mais quand même, on y est... sur une fantastique "neige à chrono", l'ambiance des 3 dernières minutes de film est même assez électrique !

Mais trève de bavardages : allez donc voir le résultat sur DailyMotion (lien permanent : http://www.dailymotion.com/video/x44b76_foulee-blanche-2008_sport), en espérant que ce genre d'idée fasse des émules... et attire des skieurs vers nos belles pistes de fond !

samedi, novembre 24 2007

La grève et le noeud coulant

Enseignant l'informatique à des élèves ingénieurs grenoblois, j'ai eu récemment l'occasion de m'entretenir avec le piquet de grève qui bloquait l'accès à mes salles de TP.

Je leur ai tenu le raisonnement suivant : face au blocage, nous réagissons en le contournant. Pour ma part, j'ai pu me procurer une autre salle, mais sans moyen informatique. Moindre mal : la plupart de mes étudiants étant équipés de portables, ils effectuent leur TP sur leur ordinateur personnel...

Mais certains étudiants ne disposent pas d'ordinateur portable : évidemment, ce sont les plus défavorisés !

La grève, lorsqu'elle s'éternise, tend alors à renforcer un système inégalitaire, une société à deux vitesses : parce qu'on ne va pas tous ralentir uniquement pour se plier au bon vouloir d'une minorité d'activistes, on laisse des gens au bord de la route !

Pour généraliser ce constat, prenons une image simple.
Imaginez que vous soyez entravé par un noeud coulant : en procédant avec clairvoyance, détermination et précision, vous vous libèrerez facilement. Mais si vous vous débattez, vous ne ferez que resserrer l'étreinte !

Cette image est transposable à la grève : une grève est efficace si elle est très suivie, ciblée, et courte.
A contrario, un mouvement long, sans revendication précise ni organisation efficace, produit des effets contraires au but recherché. Et c'est une spécialité française !

Ne pourrait-on trouver là une explication paradoxale au fait que notre économie soit l'une des plus productives au monde ?
Nous sommes un pays de grévistes, spécialistes du mouvement larvé et imprécis.
Conséquence, l'économie s'est adaptée : nous avons automatisé, décentralisé, développé des réseaux parallèles, et sacrifié les activités sensibles à la grève ou à faible valeur ajoutée... au point d'atteindre un degré de performance que même les américains nous envient !

Cette évolution s'est faite au prix d'un accroissement des inégalités - lorsqu'on s'adapte pour contourner, les moins flexibles ou les moins formés restent au bord de la route - et d'une réduction du nombre d'emplois disponibles (ceux-ci devenant, en même temps, plus qualifiés).

Comme dans l'image du noeud coulant, nos syndicats peu représentatifs et désorganisés qui se débattent au lieu d'agir de manière efficace contribuent à resserrer l'étreinte du système sur les travailleurs... au grand profit du patronat, qui crie au loup mais doit au fond se réjouir !

vendredi, septembre 7 2007

La bonne farce des Banques aux Agent Immobiliers

En 2007, La Banque Populaire a racheté Foncia, la Caisse d'Epargne a investi dans "Arthur L'optimist", et le Crédit Agricole s'est doté d'un réseau d'agences immobilières en rachetant des enseignes locales, entre autres...

Sur ces opérations, on a tout entendu : les banques étofferaient leur palette de service aux particuliers, elles jalouseraient la rentabilité des AI, et autres fariboles qui comportent une part de vrai, mais qui n'expliquent pas que la Banque Populaire pose 800 millions sur une table...

Alors, grands Dieux, pourquoi cette agitation ?

Maintenant que l'accès au crédit se durcit, le tableau s'éclaircit : nos chers banquiers vont pouvoir faire du favoritisme !

Ils vont prêter de préférence aux clients qui achètent via leurs réseaux d'agences immobilières... au détriment des autres.

Résultat :

  • - Ils vont affaiblir les autres agents immobiliers, déjà fragilisés par la récente crise du crédit : ce faisant, les banques vont augmenter leur part de marché dans l'immobilier, sans effort (soit par déficience des agences indépendantes, soit par rachat à faible valorisation - ce qui leur permettra aux banques de moyenner à la baisse leur prix d'entrée sur ce marché !)
  • - Ils vont sécuriser davantage leurs crédits (les honoraires d'agence venant s'ajouter à ce qu'ils gagnent, c'est un peu comme une assurance en plus... sans compter un accès à l'information plus complet sur le bien et la transaction)
  • - Ils vont encore plus verrouiller leurs clients (banque, assurance, agent immobilier ...) tout en creusant l'écart sur les banques qui n'ont pas encore d'agence immobilière...

Au passage, les Agents Immobiliers sont victimes depuis quelques jours d'une campagne de presse très négative, concernant leurs pratiques discutables : serait-elle orchestrée par quelques banquiers pressés d'accélérer le mouvement ? (disons que, si j'étais un banquier impliqué dans l'immobilier, je serais tenté d'employer ce genre de méthode - je ne leur ferai donc pas l'injure de croire qu'ils n'y ont pas pensé !)

C'est comme çà, les banquiers : çà sait aussi jouer à long terme... Quant aux agents immobiliers qui ne sont pas déjà filiales d'une banque, ils ne sont pas prêts de revoir un client !

lundi, juin 25 2007

Le Plan d'Epargne Logement : un produit dérivé à effet de levier

Comment, le PEL (comme le CEL) serait un instrument de spéculation à effet de levier, et pas ce placement d'épargne tranquille souscrit dans l'optique d'acquérir son logement ?

Si vous n'êtes pas familier avec les produits dérivés, je vais d'abord prendre un exemple (pour expliciter mon propos), avant de revenir au PEL :

Supposons que je me porte acquéreur d'une option d'achat, me donnant le droit d'acquérir un baril de pétrole pour 60 $ dans 6 mois.

Si le marché s'attend à ce que le baril coûte 65 $ à cette date, je devrai payer mon option environ 5 $.

Mais si le baril vaut 75 $ dans 6 mois, je pourrai l'acheter 60 $ pour le vendre 75, et je gagnerai 10 $ (15 $ moins les 5 $ payés pour l'option). Pour une option payée 5$, le gain est de 200%, alors que le baril s'est seulement apprécié de 25 % ! On appelle çà un "effet de levier".

Par contre, si le baril vaut moins de 60 $, je m'abstiendrai d'exercer mon option : j'aurai perdu mon argent...

Un produit dérivé, c'est çà : une option prise sur le futur, un pari sur la valeur future de quelque chose (que les financiers appellent le "sous-jacent" : dans mon exemple, c'est le baril de pétrole, mais çà pourrait être n'importe quoi d'autre : le cours d'une action, le prix du sucre, les taux d'intérêt, le CAC 40...).
Et la valeur de l'option fluctue beaucoup plus vite que le sous-jacent, comme on l'a vu dans l'exemple ! Quant au risque pris, il est en proportion de l'effet de levier potentiel (dans mon exemple, le perdant y aurait laissé la totalité de sa mise).

Mais là, je m'éloigne du sujet ! Quel est le rapport avec votre Plan d'Epargne Logement ?

Eh bien, c'est assez simple : votre PEL (ou CEL) vous permet d'accéder à un crédit futur dont le taux est fixé à l'avance.

Il s'agit donc bien d'une option : et si les taux montent, ce que vous pourrez gagner sera incommensurable à ce que vous aura coûté le plan.

Surtout qu'en période de hausse de taux, l'immobilier baisse ! Votre gain est alors à double détente : vous achetez à taux faible de l'immobilier pas cher.

Et si les taux baissent ?
Vous n'utiliserez tout simplement pas le plan : vous n'aurez perdu que la différence avec d'autres placements plus rémunérateurs (c'est le prix de l'option, en fait).
Le risque encouru se limite à un simple manque à gagner.

L'épargne logement est donc bien mal nommée, et à tort présentée comme un placement de père de famille : il s'agit d'un produit dérivé sur les taux d'intérêt - et absolument pas d'un produit sécurisé d'épargne en vue d'acquérir un logement, n'en déplaise à votre cher banquier.

L'épargne logement est un instrument de couverture contre la hausse des taux d'intérêt !

Jetez maintenant un oeil à l'évolution récente des taux : n'est-ce pas le moment de remplir à fond votre vieux PEL / CEL, ou d'en souscrire un en vitesse ?

Rendez-vous dans 5 ans, et à bon entendeur...

lundi, mai 7 2007

De la responsabilité du concepteur

Il n'est pas inimaginable que le concepteur d'un ustensile de cuisine ou d'un programme d'ordinateur cherche en fait, non pas à concevoir un ustensile ou un programme, mais à changer durablement l'ordre des choses. Son travail, même s'il vise un but mercantile, peut se révéler à terme un acte politique.

Sans pousser le raisonnement si loin, toute "bonne" conception doit s'inscrire dans un futur non encore prédictible : envisager les mutations qu'elle va provoquer, son réemploi comme un constituant de l'avenir sous la forme d'innovations ou d'usages futurs - et s'appliquer soit à rendre ce réemploi possible, soit à l'empêcher.

Enfin, il convient de ne pas oublier qu'il est dans la nature même d'une création d'échapper à son créateur, et qu'à ce titre mieux vaut être conscient de ses responsabilités.

Ces idées sont remarquablement résumées par la célèbre formule de Marshall McLuhan : "Le médium, c'est le message" ("Pour comprendre les média", 1964). Cet aphorisme éclaire d'un jour particulier la responsabilité et le pouvoir du concepteur.

McLuhan définit comme "médium" tout ce qui prolonge et étend les capacités de l'homme, et nous apprend que la nature du "medium" et la manière dont elle intéragit avec la nature humaine sont infiniment plus importantes que le contenu du "message" véhiculé.

Par exemple, le "message" porté par la mécanisation de l'industrie, c'est la profonde mutation sociale qu'elle a induite : le "contenu" produit par les usines mécanisées importe peu. Que l'on fabrique à la chaîne des voitures ou des saucisses n'y change rien : l'important, c'est l'impact des usines mécanisées sur l'ordre social.

Le vrai message est donc le medium lui-même, le contenu qu'il porte pouvant quasiment être négligé.

Ce principe est applicable aux média "classiques"; par exemple, le contrôle d'Internet par la voie du contenu (via le droit d'auteur, la censure, etc...), quoique prôné par nombre de législateurs et de moralistes, relève de l'aveuglement : prétendre contrôler un médium via son contenu est absurde.

Conséquence immédiate : tout concepteur porte une lourde responsabilité, toute innovation ayant une vie propre susceptible de modifier l'ordre social ou moral, ou encore de favoriser, ralentir, ou orienter le progrès et la connaissance.

A ce titre, l'exemple d'Internet est édifiant : ceux qui en ont jeté les bases travaillaient pour le compte de l'armée des Etats-Unis, peu réputée pour sa vision libertaire et sa transparence. Et il semble bien qu'ils aient conçu un medium délibérément incontrôlable, portant ainsi une vision du monde bien éloignée de celle de leur commanditaire, tout en respectant malgré tout les termes de leur contrat !

Plus récemment, Lawrence Lessig a montré que la technologie a un impact sur nos droits, impact qui échappe même au législateur, et qu'il résume par la formule "architecture regulates" - "l'architecture fait loi" ("L'avenir des idées", 2005).

Les droits réels d'un citoyen dépendent de plus en plus des services que la technologie lui offre, du fait de l'omniprésence de celle-ci : à quoi sert une loi qui vous donne des droits si aucun moyen ne vous permet de les exercer ? A l'inverse, certains moyens techniques en libre accès peuvent vous donner des possibilités bien au-delà du droit, ou non encore adressées par celui-ci (et que l'usage pourra même transformer en droits de fait, inscrits plus tard dans la loi).

Le concepteur est donc dépositaire d'un pouvoir "législatif" : les moyens techniques qu'il met à disposition peuvent limiter ou étendre le champ d'application du droit, hors de tout contrôle démocratique ou étatique.

Celui qui conçoit un système doit a minima être conscient de ces effets dérivés. Hélas, c'est trop rarement le cas, et ces effets sont généralement perçus comme fortuits - quand ils ne prennent pas la forme de dommages collatéraux, parfois attribués à la fatalité.

A contrario, il est envisageable de les utiliser sciemment, en recherchant un effet produit qui dépasse de très loin la destination première de ce qui est conçu. Mais s'il très facile de tenir de tels objectifs secrets, et d'abuser au besoin un employeur ou un bailleur de fonds (ce qu'ont fait les concepteurs d'Internet vis-à-vis de l'armée américaine), il est beaucoup plus difficile de prédire les effets réels de l'innovation, ainsi que leur possible étendue temporelle, spatiale ou idéologique...

vendredi, mars 9 2007

Petit exercice de P2P (peer-to-peer) en java

Bon, un post un peu technique... Je ne puis résister au plaisir de vous livrer ce petit morceau de code (un petit programme java de 150 lignes en tout, composé de 2 fichiers : un client, et un serveur).

Il s'agit d'un exemple (assez basique) de système d'échange de fichiers en "peer-to-peer" (ou P2P).

Principes :
- Clients et serveurs disposent d'une liste d'adresses IP de serveurs connus (dans un fichier nommé "servers.list").
- Le client lance une requête spécifiant un nom de fichier à télécharger.
- Cette requête est transmise aux serveurs que le client connaît
- Lorsqu'un serveur reçoit une requête, il renvoie le fichier demandé s'il le détient, et sinon réémet la requête vers les autres serveurs qu'il connaît, etc... (la profondeur étant limitée à 3 serveurs, sinon les réémissions pourraient se poursuivre à l'infini).
- Dés que le fichier demandé est trouvé quelque part, il est ramené vers le client (via la chaîne d'appels) et la recherche s'arrête.
- Le serveur est multiprogrammé (exécution possible de plusieurs requêtes en parallèle, en utilisant des "threads").

Evidemment, je précise (pour être conforme à la loi DADVSI) que ce programme n'est absolument pas dédié à échanger des oeuvres protégées par le droit d'auteur (l'utiliser dans ce but serait donc un détournement manifeste de l'objectif dans lequel il a été conçu, à savoir comme exemple de programmation à visée pédagogique - pour que tout le monde puisse découvrir les bases de ce type de programmation).

De fait, il serait sans doute un peu trop limité pour un tel usage (ou bien inefficace, en regard de ce qui existe sur le web !), et comporte probablement quelques bugs (j'avoue l'avoir peu testé, juste le minimum), en plus de ne fournir aucune sécurité (qui n'était pas le but de l'exemple).

Quoiqu'il en soit, si quelque héraut de la DADVSI devait s'offusquer, qu'il sache que mes avocats l'attendent, et que j'ai l'heur de pouvoir les payer... De plus, je ne fournis ici que du texte, et pas un programme exécutable (il est donc probable que les lois sur la presse s'appliquent - à savoir droit de réponse ou de recours juridique sous 3 mois aprés publication), tout recours nécessitant de s'assurer auparavant que ce programme peut fonctionner (et d'avoir bien compris à quoi il sert).

Place au code, maintenant... bonne lecture !


//-------------//
// Server.java //
//-------------//


//-------------//
// Server.java //
//-------------//

package p2p;

import java.net.*;
import java.io.*;

public class Server implements Runnable {

  public static void main(String[] args) throws Exception {

    ServerSocket srv = new ServerSocket(1234);

    while(true) {
      Thread t = new Thread(new Server(srv.accept()));
      t.start();
    }
    // srv.close();
  }

  // Client socket in/out streams
  BufferedReader clientInput_;
  OutputStream clientOutput_;

  public Server(Socket client) throws Exception {
    clientInput_ = new BufferedReader(
      new InputStreamReader(client.getInputStream()));
    clientOutput_ = client.getOutputStream();
  }

  public void run() { // Executed upon Thread's start() method call
    try {
      int level = 3;

      // Read "level" information
      // (max depth if further server calls are necessary)
      String line = clientInput_.readLine();
      if(line != null) level = Integer.parseInt(line);

      // Read the name of the requested file
      if((line = clientInput_.readLine()) != null) {
        File f = new File("." + File.separator + line);
        System.out.print("Client request for file " + line + "...");
        if(f.exists()) {
          copyStream(new FileInputStream(f), clientOutput_, true);
          System.out.println(" transfer done.");
        }
        else if(level > 0) { // File is not here... maybe on another server ?
          System.out.println(" file is not here, lookup further...");
          // Lookup on other known servers (decrement depth)
          boolean found = lookupFurther(level-1, line, clientOutput_);
          System.out.println(found ? "Transfer done." : "File not found.");
        }
      }

      clientInput_.close();
      clientOutput_.close();

    } catch(Exception e) { } // ignore
  }

  /*
   * Lookup the requested file on every known server
   * Server list is in local "servers.list" text file (one IP address per line)
   */
  static boolean lookupFurther(int level, String fname, OutputStream out)
  throws IOException {

    BufferedReader hosts;
    try {
      hosts = new BufferedReader(new FileReader("servers.list"));
    } catch(FileNotFoundException e) {
      System.out.println("No servers.list file, can't lookup further !");
      return false;
    }

    String ip;
    boolean found = false;
    while(! found && (ip = hosts.readLine()) != null) {
      System.out.println("trying server " + ip);
      try {
        Socket s = new Socket(ip, 1234);
        PrintWriter srv = new PrintWriter(s.getOutputStream(), true);
        srv.println(level + "\n" + fname);
        int nbytes = copyStream(s.getInputStream(), out, true);
        s.close();
        found = (nbytes > 0);
      } catch(ConnectException e) { } // ignore
    }
    hosts.close();
    return found;
  }

  public static int copyStream(InputStream in, OutputStream out, boolean close)
  throws IOException {
    int nbytes = 0, total = 0;
    byte[] buf = new byte[1024];
    while ((nbytes = in.read(buf)) > 0) {
      out.write(buf, 0, nbytes);
      total += nbytes;
    }
    if(close) in.close();
    return total;
  }
}


//-------------//
// Client.java //
//-------------//

package p2p;

import java.net.*;
import java.io.*;

/*
* Usage: Client <filename>
* Lookup a file across one or more server(s), and bring it here.
* List of server IP addresses should be in local "server.in" text file
* (one IP per line)
*/
public class Client {

  public static void main(String[] args) throws Exception {

    String ip;
    boolean found = false;

    // Loop on servers list (obtained from local "servers.in" file)
    BufferedReader hosts = new BufferedReader(new FileReader("servers.list"));
    while(! found && (ip = hosts.readLine()) != null) {

      Socket s = new Socket(ip, 1234);
      PrintWriter srv = new PrintWriter(s.getOutputStream(), true);

      // Ask for requested file, max depth (calls to further servers) = 3
      srv.println(3 + "\n" + args[0]);

      // Bring back the file, if any
      File f = new File("." + File.separator + args[0]);
      FileOutputStream out = new FileOutputStream(f);
      found = (Server.copyStream(s.getInputStream(), out, true) > 0);
      out.close();
      if(! found) f.delete();

    }
    hosts.close();
  }


//-------------//
// Server.java //
//-------------//

package p2p;

import java.net.*;
import java.io.*;

public class Server implements Runnable {

  public static void main(String[] args) throws Exception {

    ServerSocket srv = new ServerSocket(1234);

    while(true) {
      Thread t = new Thread(new Server(srv.accept()));
      t.start();
    }
    // srv.close();
  }

  // Client socket in/out streams
  BufferedReader clientInput_;
  OutputStream clientOutput_;

  public Server(Socket client) throws Exception {
    clientInput_ = new BufferedReader(
      new InputStreamReader(client.getInputStream()));
    clientOutput_ = client.getOutputStream();
  }

  public void run() { // Executed upon Thread's start() method call
    try {
      int level = 3;

      // Read "level" information
      // (max depth if further server calls are necessary)
      String line = clientInput_.readLine();
      if(line != null) level = Integer.parseInt(line);

      // Read the name of the requested file
      if((line = clientInput_.readLine()) != null) {
        File f = new File("." + File.separator + line);
        System.out.print("Client request for file " + line + "...");
        if(f.exists()) {
          copyStream(new FileInputStream(f), clientOutput_, true);
          System.out.println(" transfer done.");
        }
        else if(level > 0) { // File is not here... maybe on another server ?
          System.out.println(" file is not here, lookup further...");
          // Lookup on other known servers (decrement depth)
          boolean found = lookupFurther(level-1, line, clientOutput_);
          System.out.println(found ? "Transfer done." : "File not found.");
        }
      }

      clientInput_.close();
      clientOutput_.close();

    } catch(Exception e) { } // ignore
  }

  /*
   * Lookup the requested file on every known server
   * Server list is in local "servers.list" text file (one IP address per line)
   */
  static boolean lookupFurther(int level, String fname, OutputStream out)
  throws IOException {

    BufferedReader hosts;
    try {
      hosts = new BufferedReader(new FileReader("servers.list"));
    } catch(FileNotFoundException e) {
      System.out.println("No servers.list file, can't lookup further !");
      return false;
    }

    String ip;
    boolean found = false;
    while(! found && (ip = hosts.readLine()) != null) {
      System.out.println("trying server " + ip);
      try {
        Socket s = new Socket(ip, 1234);
        PrintWriter srv = new PrintWriter(s.getOutputStream(), true);
        srv.println(level + "\n" + fname);
        int nbytes = copyStream(s.getInputStream(), out, true);
        s.close();
        found = (nbytes > 0);
      } catch(ConnectException e) { } // ignore
    }
    hosts.close();
    return found;
  }

  public static int copyStream(InputStream in, OutputStream out, boolean close)
  throws IOException {
    int nbytes = 0, total = 0;
    byte[] buf = new byte[1024];
    while ((nbytes = in.read(buf)) > 0) {
      out.write(buf, 0, nbytes);
      total += nbytes;
    }
    if(close) in.close();
    return total;
  }
}


//-------------//
// Client.java //
//-------------//

package p2p;

import java.net.*;
import java.io.*;

/*
* Usage: Client <filename>
* Lookup a file across one or more server(s), and bring it here.
* List of server IP addresses should be in local "server.in" text file
* (one IP per line)
*/
public class Client {

  public static void main(String[] args) throws Exception {

    String ip;
    boolean found = false;

    // Loop on servers list (obtained from local "servers.in" file)
    BufferedReader hosts = new BufferedReader(new FileReader("servers.list"));
    while(! found && (ip = hosts.readLine()) != null) {

      Socket s = new Socket(ip, 1234);
      PrintWriter srv = new PrintWriter(s.getOutputStream(), true);

      // Ask for requested file, max depth (calls to further servers) = 3
      srv.println(3 + "\n" + args[0]);

      // Bring back the file, if any
      File f = new File("." + File.separator + args[0]);
      FileOutputStream out = new FileOutputStream(f);
      found = (Server.copyStream(s.getInputStream(), out, true) > 0);
      out.close();
      if(! found) f.delete();

    }
    hosts.close();
  }

}
}
package p2p;

import java.net.*;
import java.io.*;

public class Server implements Runnable {

  public static void main(String[] args) throws Exception {

    ServerSocket srv = new ServerSocket(1234);

    while(true) {
      Thread t = new Thread(new Server(srv.accept()));
      t.start();
    }
    // srv.close();
  }

  // Client socket in/out streams
  BufferedReader clientInput_;
  OutputStream clientOutput_;

  public Server(Socket client) throws Exception {
    clientInput_ = new BufferedReader(
      new InputStreamReader(client.getInputStream()));
    clientOutput_ = client.getOutputStream();
  }

  public void run() { // Executed upon Thread's start() method call
    try {
      int level = 3;

      // Read "level" information
      // (max depth if further server calls are necessary)
      String line = clientInput_.readLine();
      if(line != null) level = Integer.parseInt(line);

      // Read the name of the requested file
      if((line = clientInput_.readLine()) != null) {
        File f = new File("." + File.separator + line);
        System.out.print("Client request for file " + line + "...");
        if(f.exists()) {
          copyStream(new FileInputStream(f), clientOutput_, true);
          System.out.println(" transfer done.");
        }
        else if(level > 0) { // File is not here... maybe on another server ?
          System.out.println(" file is not here, lookup further...");
          // Lookup on other known servers (decrement depth)
          boolean found = lookupFurther(level-1, line, clientOutput_);
          System.out.println(found ? "Transfer done." : "File not found.");
        }
      }

      clientInput_.close();
      clientOutput_.close();

    } catch(Exception e) { } // ignore
  }

  /*
   * Lookup the requested file on every known server
   * Server list is in local "servers.list" text file (one IP address per line)
   */
  static boolean lookupFurther(int level, String fname, OutputStream out)
  throws IOException {

    BufferedReader hosts;
    try {
      hosts = new BufferedReader(new FileReader("servers.list"));
    } catch(FileNotFoundException e) {
      System.out.println("No servers.list file, can't lookup further !");
      return false;
    }

    String ip;
    boolean found = false;
    while(! found && (ip = hosts.readLine()) != null) {
      System.out.println("trying server " + ip);
      try {
        Socket s = new Socket(ip, 1234);
        PrintWriter srv = new PrintWriter(s.getOutputStream(), true);
        srv.println(level + "\n" + fname);
        int nbytes = copyStream(s.getInputStream(), out, true);
        s.close();
        found = (nbytes > 0);
      } catch(ConnectException e) { } // ignore
    }
    hosts.close();
    return found;
  }

  public static int copyStream(InputStream in, OutputStream out, boolean close)
  throws IOException {
    int nbytes = 0, total = 0;
    byte[] buf = new byte[1024];
    while ((nbytes = in.read(buf)) > 0) {
      out.write(buf, 0, nbytes);
      total += nbytes;
    }
    if(close) in.close();
    return total;
  }
}


//-------------//
// Client.java //
//-------------//

package p2p;

import java.net.*;
import java.io.*;

/*
* Usage: Client <filename>
* Lookup a file across one or more server(s), and bring it here.
* List of server IP addresses should be in local "server.in" text file
* (one IP per line)
*/
public class Client {

  public static void main(String[] args) throws Exception {

    String ip;
    boolean found = false;

    // Loop on servers list (obtained from local "servers.in" file)
    BufferedReader hosts = new BufferedReader(new FileReader("servers.list"));
    while(! found && (ip = hosts.readLine()) != null) {

      Socket s = new Socket(ip, 1234);
      PrintWriter srv = new PrintWriter(s.getOutputStream(), true);

      // Ask for requested file, max depth (calls to further servers) = 3
      srv.println(3 + "\n" + args[0]);

      // Bring back the file, if any
      File f = new File("." + File.separator + args[0]);
      FileOutputStream out = new FileOutputStream(f);
      found = (Server.copyStream(s.getInputStream(), out, true) > 0);
      out.close();
      if(! found) f.delete();

    }
    hosts.close();
  }

}

mardi, novembre 21 2006

Bull offre à JOnAS un enterrement de 1ère classe ?

Du moins, c'est ce que laisse craindre l'annonce faire à JBoss World, Berlin : voir http://www.wcm.bull.com/internet/pr... , ou http://www.jboss.com/events/jbw_ber... .

A relativiser tout de même : le retentissement d'une telle annonce devrait être proche de celui de l'adoption d'un amendement à la constitution du Béloutchistan. Mais tout de même, l'annonce mérite le détour.

Pour ceux qui n'ont pas suivi le début du film, JOnAS est un serveur d'application JavaEE open-source (et certifié par Sun), pour l'essentiel développé par Bull, et hébergé par le consortium ObjectWeb. JOnAS fut même le serveur d'application de RedHat (avant le rachat de JBoss), et se place en seconde position sur le marché des serveurs d'application open-source, très loin derrière JBoss, mais avec une excellente image technique et quelques très grands déploiements dans le monde. Voilà pour le résumé de la saison 1 ...

Passons maintenant à l'annonce proprement dite, et décortiquons-en quelques aspects croustillants :

1) Bull annonce, grosso modo, qu'il va proposer du service sur JBoss. Tout le monde sait bien que c'est déjà le cas, la division Bull Services étant parfaitement agnostique en ce qui concerne les serveurs d'application (En dehors de JOnAS, Bull avait par exemple, dans un passé proche, conclu un partenariat avec BEA - et dispose également de belles références JBoss).
Il s'agit donc d'un non-message, ce qui n'est pas bien grave en soi (cf. la remarque ci-dessus sur la constitution du Béloutchistan - tout le monde s'en fiche, donc pas de dégâts).

2) L'annonce de Bull laisse planer le doute sur la continuation de JOnAS, concurrent direct de JBoss - de fait, il n'en est pas question dans l'annonce, et Bull réaffirme même son implication dans le consortium ObjectWeb, sans plus de détails.
Là, on est dans le domaine du contre-message : seuls les clients de Bull utilisateurs de JOnAS devraient le percevoir (le monde extérieur y étant imperméable), et le ressentir comme un signal négatif.
Donc, Bull adresse un message à ses clients qui provoque leur défiance, sans effet sur d'éventuels nouveaux clients... Etrange fait de marketing !

3) Ce qui est plus amusant, c'est que Bull annonce une coopération R&D avec JBoss : indépendamment du fait que l'on peut se demander qui va l'assurer (la démotivation interne des développeurs de JOnAS étant quasiment acquise dans une telle situation), cette coopération implique la fourniture par Bull à RedHat d'un module BPEL. Espérons qu'il y a une vraie contrepartie, faute de quoi Bull braderait quelque peu les bijoux de famille, et RedHat se trouverait comme par magie remis à niveau sur l'un de ses points faibles, le Business Process, sans bourse délier (attitude somme toute habituelle dans le business model de RedHat, depuis l'intégration de Linux !).

4) Autre point d'achoppement : le consortium ObjectWeb, en pleine crise de croissance, pourrait voir son avenir plombé par la chute de JOnAS; de toute évidence, cette éventualité ne joue pas non plus en faveur de Bull, ObjectWeb étant un fer de lance de son image de marque dans l'open-source !

5) Enfin, je ne peux que vous enjoindre à lire le communiqué de M. Barbéris, de chez Bull, à la fin de l'annonce : certes, M. Houellebecq a fait mieux en termes de novlangue informatique, dans l'introduction d' "extension du domaine de la lutte", mais avec un court avantage... Quant à M. Fleury, de chez RedHat, son allocution masque avec peine l'éclat de rire moqueur qu'il adresse au lecteur, du haut de son tas de dollars : Echec et Mat...

Pour résumer, donc, Bull fait un gros cadeau à RedHat tout en dissuadant ses clients et en démotivant ses équipes, et met en péril la stabilité d'ObjectWeb,le tout en un seul mouvement. Espérons au moins que les instigateurs de cette brillante tactique sont payés cher... ou qu'ils le sont par RedHat !

- page 2 de 4 -