Blog - Pierre-Yves Gibello

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

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 "code is law" - "le code (ou le programme), c'est la 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 !

jeudi, octobre 12 2006

Les statistiques de la FNAIM sont-elles incohérentes ?

La FNAIM publie chaque mois un "taux de croissance" des prix de l'immobilier ancien, qui comporte une évolution mensuelle, trimestrielle et annuelle des prix pour les appartements, les maisons, et l'ensemble.

Or, ces chiffres paraissent incohérents : l'écart est significatif entre le cumul des pourcentages mensuels sur un an et le pourcentage annuel publié, par exemple.

Dans le cas des appartements, entre Octobre 2005 et Septembre 2006, la FNAIM indique une hausse de 7,3% sur un an - le cumul des pourcentages mensuels publiés donne, quant à lui, une baisse de 0,6% ...

Le détail du calcul figure à la fin de ce post. La question étant, quelle est la cause de ce décalage ?

Eh bien, elle est simple : il suffit de lire ce que la FNAIM écrit (en tout petit) en bas de son rapport : "Le pourcentage de variation annuelle mesure l'évolution intervenue entre la moyenne des prix mensuels moyens des 12 derniers mois connus et la moyenne des prix mensuels des 12 mois précédents".

7,3%, ce n'est donc pas une évolution des prix sur un an (cette évolution est de -0,6%, d'après le calcul que j'ai fait selon les chiffres FNAIM, et qui figure ci-dessous).
C'est une évolution entre la moyenne de 2006 et la moyenne de 2005, pour simplifier.

La conclusion, c'est que l'immobilier stagne depuis plus d'un an, que çà apparaît clairement dans les chiffres de la FNAIM, mais que c'est beaucoup moins clair dans les commentaires de la FNAIM... ou comment faire dire aux chiffres ce que l'on veut !

Détail du calcul :

Evolution mensuelle des prix des appartements :

10/05 : -2,6
11/05 : +0,3
12/05 : +0,8
01/06 : +0,7
02/06 : +0,4
03/06 : -1,9
04/06 : +2,0
05/06 : +1,0
06/06 : -0,3
07/06 : +1,3
08/06 : -1,7
09/06 : +0,4

Par exemple, en Octobre 05, les prix ont baissé de 2,6%, donc ont été multipliés par 0,974 (un appartement valait 97,4% de ce qu'il valait le mois précédent); En Novembre de la même année, +0,3%, donc multiplication par 1,003; etc...
De proche en proche :

0,974 x 1,003 x 1,008 x 1,007 x 1,004 x 0,981 x 1,020 x 1,010 x 0,997 x 1,013 x 0,983 x 1,004 = 0,994
Soit une baisse de 0,6% sur un an (les prix ont été multipliés par 0,994).

CQFD...

jeudi, juin 29 2006

Sois un imposteur, mon fils !

Avez-vous déjà entendu parler de la Loi de Pareto ?
Plus connue sous le nom de "loi des 20-80", elle s'applique (assez mystérieusement) à de nombreux domaines : par exemple, 20% des articles commercialisés par votre supermarché représentent 80% des ventes, ou encore 20% de la population possède 80% des richesses.

Et alors, me direz-vous ?

Eh bien, elle s'applique aussi au monde du travail (ou du sport, ou de presque tout ce qui demande un effort) : pour atteindre 80% d'un objectif au lieu d'en atteindre 100%, il suffit de faire... 20% de l'effort !

Un monde dominé par de telles lois physiques donne donc l'avantage aux imposteurs, surtout dans un système compétitif qui vous juge davantage par comparaison avec les autres qu'en fonction de vos performances réelles...

Fixez-vous comme objectif d'atteindre 80% de l'objectif qui vous est assigné, et non seulement vous travaillerez 5 fois plus vite, ou 5 fois moins, que la plupart des gens (puisque vous n'aurez que 20% du travail à effectuer), mais en plus vous obtiendrez un résultat honorable (vos "adversaires" étant fatigués, ou en retard, ou ayant perdu de vue les priorités essentielles, plafonneront eux aussi à 80% de l'objectif...).

Et si vous avez besoin de réaliser une performance, eh bien, insistez un peu au delà des 20% : faites seulement 50% de l'effort nécessaire, vous serez proche d'atteindre l'objectif à 90%, et il ne restera plus grand monde pour faire mieux (mais attention : si vous le faites trop souvent, vous serez fatigué).

Evidemment, les spécialistes de votre domaine d'activité, les vrais, ceux qui ont vraiment travaillé et qui ont du vrai talent, sauront que vous êtes un imposteur...
Mais ils seront seuls à s'en rendre compte (pour la plupart des gens, vous serez un brillant personnage), et quoiqu'il en soit ils auront quand même besoin de vous, faute de mieux !
De plus, ils seront fort amusés d'observer votre petit manège, ce qui vous fera bénéficier d'un certain capital sympathie, d'autant plus que vous ne serez pas pour eux une menace crédible.

Et voilà, si vous vous demandiez encore comment certains font pour être en même temps médecin, entrepreneur, sportif, intellectuel, artiste, père de famille tout en continuant à prendre des vacances, maintenant vous avez une idée plus précise.

20%, et tu vivras 5 vies à 80%, mon fils... Ca fait quand même 400%.
A choisir, donc, sois un imposteur, mon fils !

mercredi, juin 14 2006

Si j'étais Domenech, j'aurais truqué France/Chine !

Voilà ce que j'aurais fait : j'aurais dit au sélectionneur Chinois, toi tu fais jouer tes petits jeunes prometteurs, tu les laisses jouer à fond, et moi je m'arrange pour faire une belle histoire de football, dont on sortira tous les deux grandis.

Scénario : la France joue un peu mou, sans prendre trop de risques (je n'aurais pas pu prévoir l'attitude de Cissé à l'avance, moi non plus... mais pourquoi a-t-il pris des risques ??).
Si on marque, tant pis, on fauchera un brave Chinois dans la surface un peu plus tard, sans lui faire mal; fais tirer le pénalty par un type expérimenté qui va comprendre tout seul que s'il tire plein cadre Barthez arrivera bien à éviter le ballon !

A la fin, on fera rentrer un sauveur providentiel, et comme on accélèrera tous à fond, et on arrivera bien à marquer un ou deux buts, enfin çà çà nous regarde...

Belle histoire de foot, non ?

En plus, je serais allé négocier quelque chose avec les sponsors de Ribéry : au passage, on aurait mis quelques agitateurs dans le stade, pour inciter le public à scander "Ribéry ! Ribéry !" afin de préparer son entrée, et alors là, on approche la superproduction pour ce qui est de l'effet dramatique !

Mais bon, M. Domenech n'a pas eu à faire çà, puisque çà s'est produit tout seul... Quant à moi, j'aime trop la magouille, c'est pour çà que je ne serai sans doute jamais sélectionneur !

mercredi, mai 3 2006

L'éternité dans votre poche

Vous n'avez pas remarqué ?
En 1987, votre disque dur faisait 20 Mo. En 1994, 2 Go. En 2000, 20 Go et en 2006, 200 Go.
En gros, sa capacité se multiplie par 10 tout les 6 ans (par 2 tous les 18 mois, en fait : la fameuse "loi de Moore", applicable aux ordinateurs depuis qu'ils existent, s'applique également au stockage).

Bon, et alors, me direz-vous ?
Alors, dans 1 To (1 "téra-octet" ou 1000 "giga-octets", ce qu'il y aura dans votre PC familial en 2010), vous pouvez stocker 4 mois de vidéo haute définition (format DivX par exemple), ou encore 3 ans de musique non stop (format MP3 par exemple).

Bon, et alors, me direz-vous ?
Eh bien, c'est 256 fois plus tous les 12 ans.
En 2022, çà nous fait 85 ans de vidéo HD (votre vie entière filmée de la naissance à la mort).
En 2034, 21000 ans de vidéo HD, et près de 200.000 ans de musique.
En 2046, 5 millions d'années de vidéo HD (votre vie et celle de vos ancêtres jusqu'au singe, filmées en continu).

Dans une vingtaine d'années, l'intégralité de la musique enregistrée par l'homme depuis qu'il sait enregistrer devrait rentrer dans un baladeur.
A ce moment là, vous aurez l'éternité dans votre poche.
Avec tout ce que çà implique en termes de mutations sociales, d'usages, et de dérives... Je ne vais pas épiloguer là-dessus, les futurologues ont du boulot !

Et comme demain, 4 Mai 2006, nos chers Sénateurs examineront le texte de loi DADVSI (vous savez, les droits d'auteur dans la société de l'information), j'espère qu'ils mesureront à quoi ils seront confrontés quand chaque collégien portera dans sa poche toute la musique produite par l'homme depuis la Création...

jeudi, avril 27 2006

Cofidis et Atos te surveillent ! (1euro.com)

Un nouveau service de paiement en ligne à crédit vient de naître : 1euro.com, opéré par Cofidis et ATOS.
A la base, le concept peut séduire : paiement en ligne avec ouverture simultanée du dossier de crédit (sous réserve d'accord instantané), jusqu'où ira-t-on dans la simultanéité du crédit ?
Mais qui dit accord rapide dit aussi méthodes "rapides" pour s'informer de la solvabilité du client...

Il est ici question de commerçants en ligne fournissant à Cofidis des informations sur les bons et les mauvais payeurs, de manière automatique et sans contrôle d'aucune sorte (puisque la transmission est instantanée).

En l'occurrence, j'ai eu l'occasion de me pencher sur la documentation technique d'intégration de 1euro.com, et là, surprise... l'auteur incite le prestataire technique (et le commerçant) à communiquer au serveur de paiement des informations sur la solvabilité de ses clients, à travers des paramètres certes optionnels, dont la description suit (je cite littéralement la documentation technique d'intégration - regardez surtout les DEUX DERNIERS paramètres) :

[...]
V.la civilité (" M ", " Mme ", " Mlle ")
VI.le nom
VII.le prénom
VIII.adresse1
IX.adresse2
X.adresse3
XI.le code postal
XII.la ville
XIII.le pays
XIV.le téléphone fixe
XV.le téléphone portable
XVI.le flag indiquant si l'internaute est connu du commerçant (1 ou 0)
XVII.le flag indiquant si le commerçant a déjà eu des incidents de paiement avec cet internaute
[...]

Ces informations, "optionnelles" techniquement, le sont moins commercialement (le commerçant est largement incité à ne pas envoyer de mauvais payeurs à Cofidis s'il les connaît comme tels, faute de quoi sa responsabilité pourrait se voir engagée sous certaines conditions - la tentation est alors grande d'envoyer le maximum d'informations à Cofidis, pour se dédouaner).

J'ignore encore dans quelle mesure les internautes seront avertis de l'éventuel envoi d'informations concernant leur qualité de bon ou mauvais payeur (en plus d'informations personnelles objectives), par leurs commerçants à un organisme de crédit, et de manière automatique et instantanée...

En attendant, moi, je me permets de les avertir !

vendredi, mars 24 2006

Patron et anti CPE...

Et oui, je porte la double casquette de (petit) patron et d'opposant au CPE (et autres CNE...)
Je me suis même permis de manifester - et j'ai remarqué dans la foule quelques uns de mes homologues, sans doute mus par les mêmes motivations.

A noter que, s'il m'arrive d'embaucher dans le futur, il est probable que je fasse usage du CNE, ou du CPE s'il existe !

Alors, contradiction ? Je m'explique :

- Précariser entraîne un nivellement par le bas. C'est par exemple ce qui se passe aux US avec les hypermarchés WalMart, spécialistes incontestés du moins-disant social : quand WalMart s'implante quelque part, il propose des prix si bas que ses concurrents sont obligés de baisser les salaires et la couverture sociale de leurs salariés pour survivre. Il en va de même des fournisseurs de WalMart. Et si le maire du coin rejette l'implantation, WalMart trouve facilement un maire complaisant aux alentours (création d'emplois, taxe pro, etc...)
- Précariser a donc pour principale conséquence la modération salariale. Et baisser les salaires ne sert à rien, si ce n'est à réduire le pouvoir d'achat donc restreindre la clientèle des PME de proximité. Ca ne sert pas à accroître notre compétitivité internationale : si vous êtes 20 fois plus cher qu'un Chinois, divisez votre salaire par 2 et vous serez encore 10 fois plus cher (corollaire : vous ne pourrez plus vous payer que des produits... Chinois !)

En clair, si précariser devient légal, la concurrence devrait me forcer à le faire. Par effet domino, les salaires baisseront globalement, ce qui nuira à l'économie.
Donc, précariser doit être interdit !

mercredi, mars 8 2006

Au CIC, si on me vole mon fric, c'est de ma faute

Gérant de PME, j'ai eu la surprise de recevoir de ma banque (CIC / Lyonnaise de Banque pour ne pas la citer) un courrier dit "Convention Téléphone/Fax/Email", dont vous trouverez ici le texte intégral (je vous en recommande la lecture, assez divertissante - dans le texte, "nous" désigne l'entreprise signataire, c'est-à-dire moi, et "vous" désigne la banque, puisque c'est une lettre que ma société est censée adresser à la banque).

En quelques mots, en voici la teneur :
Si quelqu'un se fait passer pour moi et parvient, par téléphone, fax, email ou tout autre moyen, à donner un ordre au CIC concernant les comptes de ma société, alors la banque ne peut être tenue pour responsable - je prends même l'engagement d'endosser la pleine responsabilité.

Autrement dit, le CIC se juge tellement incapable de protéger mon argent qu'il me demande de l'absoudre si on me le vole par la ruse !

Et moi qui mettais mon argent en banque pour le protéger, justement... Quelle erreur !
Je crois que je vais plutôt le mettre sous mon matelas, et acheter un fusil.

Trêve de plaisanterie... Je n'ai évidemment pas signé ce papier, mais je m'interroge en ce qui concerne, par exemple, un client en délicatesse avec le CIC (ex. un client qui aurait un découvert fréquent) : serait-il en position de ne pas signer ?

Je m'interroge également sur les compétences commerciales de la banque, qui m'a assuré avoir envoyé le même papier à tous ses clients entreprise : quelle belle publicité !!

lundi, février 27 2006

La fin de l'esprit Olympique ?

Skieur de fond, j'ai suivi avec passion la trajectoire de quelques-uns de mes camarades de course, sélectionnés pour les JO de Turin car appartenant à de "petites" nations.
Parmi eux, Dawa Sherpa le Népalais, Noureddine Bentoumi l'Algérien, et François Soulié dit "Paco" l'Andorran (de loin le plus rapide des trois, et se situant à la limite du niveau international, les deux autres étant de bons amateurs pouvant prétendre à un niveau national en France, au moins pour Noureddine Bentoumi).
Inscrits au 50km libre, leur défi était de finir la course : en effet, il s'agissait de boucler 5 tours de 10km, tout coureur repris par la tête de course étant éliminé. En un mot, il fallait faire 40km avant que les cadors en fassent 50.
Et l'exploit était à leur portée : il "suffit" de skier à 20km/h pendant 2 heures, et au moins deux d'entre eux en étaient capables.

Mais...

A la dernière minute, le CIO a non seulement modifié le règlement (il fallait compter moins de 4km d'avance sur la tête de la course, et non plus se faire rattraper, pour être éliminé), mais en plus a proposé aux "petites" nations une course de consolation (15km) tout en faisant son possible pour les dissuader de prendre le départ de l'épreuve reine.

J'ignore si cette alternative a été proposée à François Soulié; elle l'a été à Noureddine Bentoumi (qui a crânement refusé et a pris le départ du 50km, pour y être éliminé avec panache), et à Dawa Sherpa qui l'a semble-t-il acceptée.

Quant à François Soulié, il a réussi à passer aux 40km, mais n'a pu terminer la course (que l'on m'explique comment ce coureur aurait pu gêner les premiers, alors qu'il n'était plus sur le parcours quand ils ont fini leur dernier tour ! Au nom de quel règlement élimine-t-on un coureur qui est déjà de l'autre côté de la ligne d'arrivée, donc ne peut plus gêner personne ?)

Bref, un bien triste épisode Olympique, sur fond de discrimination notoire et de sport à deux vitesses.

Bien loin de l'idéal des Jeux... Mes amis, vive le sport spectacle et gloire au Saint Pognon !

P.S. Je doute que les athlètes des "grandes" nations cautionnent ce genre de pratique (mais je doute qu'on leur demande leur avis...). Quant à une éventuelle gêne des premiers, j'ai du mal à croire qu'ils soient incapables de doubler à 25km/h un type qui skie à 20km/h (çà équivaut, pour un marcheur, à éviter un type arrêté... quand je pense que les pilotes de F1 doublent des attardés et que tout le monde trouve çà normal !)

lundi, février 13 2006

De quel prophète se moque-t-on ?

A première vue, je vous avouerai franchement que les caricatures de Mahomet affublé d'une bombe dans son turban m'ont paru déplacées, et je continue à partager la juste indignation des musulmans aussi longtemps que le message est pris au premier degré (assimiler l'Islam au terrorisme est fondamentalement inadmissible).
La suite des évènements m'a fait quelque peu changer d'avis : ceux qui ont réagi par la violence sont justement ceux qui assimilent Islam et terrorisme. Et c'est eux qui ont été visés par le caricaturiste, c'est LEUR prophète qui a été représenté, pas celui des musulmans pour qui l'Islam est une religion.
Le caricaturiste a donc visé juste - la démesure des réactions le prouve.
Le prophète qu'il a croqué n'est pas celui des musulmans, c'est celui de ceux qui instrumentalisent la religion à des fins politiques, économiques ou personnelles.
Le blasphème est-il vraiment du côté que l'on croit ?

P.S. Mon respect pour les musulmans est, je pense, peu discutable. J'ai voyagé en terre d'Islam (Pakistan, Jordanie, Maroc). Les pakistanais m'ont même laissé très librement entrer dans leurs mosquées, ce que j'ai apprécié infiniment. J'ai la plupart du temps été accueilli avec ouverture d'esprit, et souvent avec plus d'hospitalité que dans bien des pays occidentaux. La ferveur de l'Islam m'a toujours impressionné, et donne à cette religion une dimension sacrée que bien d'autres religions ont perdue.
Par contre, s'il est une chose que je n'admets pas, c'est la récupération partisane du message religieux. Si le blasphème existe, alors le voilà dans sa forme la plus pure - et forcément inexpiable. Les mêmes travers ont existé dans l'histoire pour d'autres religions, le Christianisme en tête (ce n'est pas fini, à entendre le discours ambigu de l'administration Bush...), et je ne suis pas près de les pardonner à l'Eglise !

mercredi, janvier 11 2006

Montage clé USB sur Linux Fedora

Après connexion de la clé USB (commande tapée sous root; le répertoire /mnt/usbkey doit être créé au préalable) :

  1. mount -t vfat /dev/sda1 /mnt/usbkey

Ensuite, un simple "ls /mnt/usbkey" donne accès au contenu de la clé.

Pour info, à la connexion de la clé USB, les lignes suivantes ont été loggées dans /var/log/messages :

Jan 11 18:01:21 localhost kernel: hub.c: new USB device 00:07.2-2.1, assigned address 3
Jan 11 18:01:21 localhost kernel: Device not ready. Make sure there is a disc in the drive.
Jan 11 18:01:21 localhost kernel: usb.c: USB device 3 (vend/prod 0xea0/0x2168) is not claimed by any active driver.
Jan 11 18:01:22 localhost kernel: Device not ready. Make sure there is a disc in the drive.
Jan 11 18:01:24 localhost last message repeated 5 times
Jan 11 18:01:25 localhost kernel: Initializing USB Mass Storage driver...
Jan 11 18:01:25 localhost kernel: usb.c: registered new driver usb-storage
Jan 11 18:01:25 localhost kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Jan 11 18:01:25 localhost kernel: Vendor: KINGMAX Model: USB Flash Disk Rev: 2.00
Jan 11 18:01:25 localhost kernel: Type: Direct-Access ANSI SCSI revision: 02
Jan 11 18:01:25 localhost kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Jan 11 18:01:25 localhost kernel: sda: Unit Not Ready, sense:
Jan 11 18:01:25 localhost kernel: Current 00:00: sense key Unit Attention
Jan 11 18:01:25 localhost kernel: Additional sense indicates Not ready to ready change,medium may have changed
Jan 11 18:01:25 localhost kernel: SCSI device sda: 1024000 512-byte hdwr sectors (524 MB)
Jan 11 18:01:25 localhost kernel: sda: Write Protect is off
Jan 11 18:01:25 localhost kernel: sda: sda1
Jan 11 18:01:25 localhost kernel: USB Mass Storage support registered.
Jan 11 18:01:25 localhost kernel: Device not ready. Make sure there is a disc in the drive.

mardi, décembre 20 2005

Wikipedia et l'évolution

Les débats se font de plus en plus vifs autour de Wikipedia, encyclopédie collaborative alimentée librement par les internautes, et dotée d'un système de contrôle extrêmement laxiste (seules les publications grossièrement abusives sont rapidement censurées - racisme ou discrimination notoires, par exemple).
Quelques incidents ont été montés en épingle (un ancien collaborateur de Kennedy y aurait été accusé à tort d'être impliqué dans son assassinat !), et de nombreux intellectuels fustigent l'à-peu-près qui préside à la publication des articles (qui ne sont validés par aucune autorité légitime, autre que les internautes eux-mêmes).
Wikipedia ne serait donc pas une "encyclopédie", et le terme pourrait même tromper des internautes mal informés (une encyclopédie est censée ne publier que des connaissances validées, sans biais idéologique, en l'état du savoir humain de l'époque - or, Wikipedia ne saurait être lue sans esprit critique).
Toutefois, une étude parue dans "Nature" crédite Wikipedia d'un taux d'erreurs assez proche de celui relevé dans l'indiscutable "Encyclopaedia Britannica".
Alors, encyclopédie ou supercherie ?

Le débat ressemble fort à celui qui oppose les tenants d'une théorie de l'évolution finaliste (l'évolution ayant un but - que certains assimilent même à Dieu !) à ceux de l'approche évolutionniste (l'évolution résultant de l'action conjointe du hasard et de la nécessité, pour faire court).
Ou encore, aux deux écoles de l'Intelligence Artificielle : les cognitivistes (qui pensent que l'on peut modéliser l'intelligence, pour la programmer dans un ordinateur par exemple) et les connexionnistes (qui pensent que l'intelligence est une fonction adaptative, qui naît spontanément dans certains systèmes complexes - comme les réseaux de neurones).

Ce qui est sous-jacent, c'est la notion d'auto-organisation : l'organisation naît-elle d'une volonté consciente, ou peut-elle apparaître et croître spontanément ?

Dans le cas de Wikipedia, une encyclopédie engendrée par un processus d'auto-organisation peut-elle exister ?
Ou alors, le seul modèle viable est-il le modèle académique traditionnel, dirigé et finalisé ?
Enfin, l'un de ces modèles est-il supérieur à l'autre (si tant est qu'ils soient mutuellement exclusifs) ?

Quoiqu'il en soit, et quoiqu'il advienne, l'avenir sera passionnant : le fait même d'être partie prenante dans cette aventure pourrait changer notre relation au savoir, si ce n'est notre vision sociale et politique.

L'agitation, elle aussi, n'est pas près de se calmer : ne serait-ce que parce que des privilèges et des positions sociales, économiques, scientifiques établies sont en jeu.

Quant à faire des pronostics...

lundi, décembre 5 2005

Erreur Oracle ORA-27101: shared memory realm does not exist

En ce qui me concerne, l'erreur se produit (épisodiquement) sur un portable Windows XP un peu trop surchargé pour tourner Oracle 10g. De fait, la base de données ne démarre pas à tous les coups au boot ! Solution :

set ORACLE_SID=<votre oracle SID> (exemple : set ORACLE_SID=orcl)

sqlplus /nolog

Une fois sous sqlplus, compte-rendu de ma session ci-dessous :

SQL> connect / as sysdba
Connecté à une instance inactive.
SQL> startup
Instance ORACLE lancée.

Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 83887460 bytes
Database Buffers 79691776 bytes
Redo Buffers 2945024 bytes
Base de données montée.
Base de données ouverte.
SQL> quit

A partir de là, la base fonctionne à nouveau !

mercredi, novembre 9 2005

Les poulets s'invitent en banlieue

Ce 8 Novembre, j'ai lu avec un certain amusement l'analyse de M. Jirinovski, nationaliste russe, concernant les émeutes dans les banlieues françaises : elles auraient été fomentées par la CIA (sic), les Etats-Unis ayant tout à gagner d'un affaiblissement de l'Europe.

Méthode classique des tenants de la théorie du Complot, qui consiste à chercher à qui la crise peut profiter, avant de prétendre que ceux qui ont à y gagner en sont les instigateurs. J'ai choisi d'appliquer moi-même cette méthode, et je vous en livre ici les conclusions :

Depuis le début du conflit des banlieues, on n'entend plus parler du précédent sujet chaud de l'actualité, à savoir la grippe aviaire. A la grande satisfaction des producteurs de poulet, donc ! De là à penser que les émeutes ont été fomentées par les producteurs de poulet... Ma foi, cette explication vaut bien celle de M. Jirinovski !

Je crois bien que si j'étais une multinationale du poulet, j'aurais songé à monter une telle opération : nom de code, "Gloire aux poulets"...

mercredi, septembre 7 2005

L'économie du stagiaire, ou la délocalisation locale

Lorsque les patrons de l'informatique se plaignent des coûts salariaux et menacent de délocaliser, je me permets de doucement rigoler.
Un Indien coûterait 300 EUR par mois ? sans doute. Mais imaginez que vous disposiez d'une sorte d'Indien local, corvéable à merci, et payé encore moins (si ce n'est... pas du tout !)
Un rêve de patron libéral ? l'esclave moderne ?
Eh bien non, cet "Indien" parfait a un nom : le STAGIAIRE !

Enseignant en école d'ingénieurs (informaticiens), je vois chaque année défiler des bataillons de stagiaires, occupés à des tâches de production rentables, mais dont la valeur ajoutée éducative laisse à désirer.
Le projet type : un Intranet en PhP / MySQL. La technologie est gratuite, le programmeur est gratuit, tout va bien ! (j'ai même vu des étudiants contraints de travailler chez eux, l'employeur ne disposant pas de locaux suffisants... là, on approche le record du monde).

De plus, l'étudiant qui sera formé sur ces technologies se trouvera sur le marché du travail face à une masse d'autodidactes de tous poils, se prétendant qualifiés sur les mêmes technologies (ce qui est parfois vrai, mais statistiquement rare), et prêts à travailler pour un salaire de misère... Ce qui permettra à notre patron de faire baisser les prétentions salariales jugées démesurées de l'étudiant (qui bien entendu aura la préférence â l'embauche : l'autre, le sans-grade cité plus haut, ne servant qu'à faire baisser les prix... Merci, Patron !)

Donc, à ceux qui menacent de délocaliser, je répondrais qu'ils l'ont en quelque sorte déjà fait... localement !
Au rythme actuel, les équipes de développement seront bientôt composées essentiellement de stagiaires - ce qui me fait dire que nous sommes entrés dans l' "économie du stagiaire" !
Décidément, l'Indien n'est pas une menace, tout va bien...

jeudi, juin 30 2005

La mort court vite ?

J'ai 38 ans : environ la moitié de mon "espérance de vie". Qu'il est tentant de se reposer sur une telle certitude ! Pourtant, qui n'a jamais eu la sensation étrange que le temps s'accélère, que les années défilent de plus en plus vite ?
Travail, responsabilités, rythme de la vie d'adulte : heureusement, les explications rassurantes ne manquent pas.

Pourtant...

Le seul temps qui ait une valeur, c'est celui de l'expérience vécue. Il est composé de l'accumulation des expériences, de la somme de ce que vous êtes capable d' "enregistrer". C'est de la durée, plutôt que du temps.

Cette durée dépend de la vitesse d' "enregistrement", pas du rythme de l'horloge : le temps de votre vie, c'est celui de votre horloge interne, qui détermine le nombre d'expériences que vous pouvez accumuler par unité de temps réel.

Et tout porte à croire que cette horloge interne ralentit, par rapport à l'horloge du salon : en quelque sorte, la "densité" de la vie est bien supérieure pour un bébé à ce qu'elle est pour un vieillard. Le jeune traite et accumule les informations plus vite que l'ancien.

Pour simplifier, faisons l'hypothèse suivante, fictive mais assez éclairante : vous vivez 80 ans; pendant les premiers 40 ans, vous accumulez une expérience par seconde, et pendant les 40 ans suivants une expérience toutes les 2 secondes.
Dans ce cas, il est facile de comprendre que vos 40 dernières années s'écouleraient 2 fois plus vite que les 40 premières.

Bien sûr, la variation n'est pas aussi nette. Elle est progressive. Mais le résultat est le même : plus votre horloge interne ralentit, plus le temps vécu s'accélère, et plus la durée de vie qui vous reste fond à vue d'oeil. La fin de votre vie passera bien plus vite que le début.

Le temps qui s'accélère n'aurait donc rien d'une illusion : beaucoup n'imaginent pas que leur fin s'approche à si grands pas.
Et si j'ai quelque peu troublé votre quiétude, il vous reste au moins le temps d'espérer que je me sois trompé !

mercredi, juin 1 2005

L'immobilier, marché obligataire ?

Les particuliers ont-ils vraiment une influence sur les prix de l'immobilier ?

On entend depuis toujours les mêmes vieux poncifs pour expliquer la hausse (ou la baisse) de l'immobilier : taux d'intérêt qui incitent ou non les gens à emprunter, allongement de la durée de vie, migration des retraités vers le sud, éclatement des ménages (ou au contraire regroupement familial pour faire des économies), pénurie de foncier, ralentissement de la construction de logements, et j'en passe.

Pourtant, les particuliers n'ont guère d'influence sur les prix.

Empiriquement, celà s'explique assez bien :

  • Les particuliers qui vendent pour racheter un bien n'ont quasiment pas d'influence sur l'offre et la demande, donc sur les prix. Pour simplifier, si je vous vends mon appartement pour acheter le votre, rien ne change ni dans l'offre, ni dans la demande.
  • Les primo-accédants (nouveaux entrants) pourraient avoir une influence, en faisant augmenter la demande. Mais l'offre augmente d'une manière comparable (libération de logements anciens, par exemple par décès de l'occupant, et construction qui renouvelle le parc obsolète). Peu d'influence, donc...
Les propriétaires occupants n'ont donc pas d'influence sur l'offre et la demande (!)

Reste une dernière catégorie d'intervenants : les investisseurs. Il existe 2 sortes d'investisseurs : les "petits" investisseurs (généralement des particuliers), et les investisseurs institutionnels (les "zinzins", comme disent les spécialistes : banques, assurances, etc...)

Sur les marchés des grandes villes, l'influence sur les prix des petits investisseurs est négligeable : ils agissent de manière ponctuelle et désorganisée (ils achètent ou vendent souvent quand ils peuvent), là où les "zinzins" interviennent massivement et en suivant tous une logique comparable.

Ce sont donc les investisseurs institutionnels qui font les prix - et ce, fort logiquement, en fonction du rendement locatif, et d'autres critères économiques annexes (taux d'intérêt, croissance, prime de risque, etc...).

De fait, l'immobilier a des caractéristiques qui le font ressembler au marché obligataire : des loyers relativement "constants" à long terme (en évolution dans le temps analogue à l'inflation), et un temps de latence relativement long (un locataire restant en moyenne 2 ans ou plus en place, temps pendant lequel il servira un rendement fixe quelle que soit l'évolution de l'économie).

Il est donc intéressant de comparer l'immobilier parisien au marché des obligations, sur une période de plusieurs années : de fait, ces 2 marchés présentent d'étonnantes similitudes.

Quelques chiffres (origine INSEE, Chambre des Notaires, DGUHC) dans le document PDF ci-joint, comparaison entre l'immobilier parisien et le marché obligataire sur la période 1985-2003 : l'analogie est saisissante.

Alors, serait-on manipulés ? J'ai plutôt l'impression que les soi-disants "experts" sont hélas plus ignorants que manipulateurs, et qu'ils croient réellement ce qu'ils disent !

En tout cas, si vous prévoyez d'intervenir dans l'immobilier, essayez plutôt de prévoir le comportement... des obligations !

jeudi, avril 28 2005

L'INRIA est à vendre

Aujourd'hui, toute la presse française se congratule de la création d'un nouveau laboratoire commun Inria-Microsoft, célébré comme une avancée majeure en terme de collaboration recherche/industrie, ainsi qu'une preuve du dynamisme scientifique français.

Il est à craindre que cette initiative soit au contraire bien éloignée de ce dont la société civile a besoin, tant en termes d'indépendance technologique et de libre accès à l'information publique, qu'en terme d'échange et de transmission du savoir.

Certes, la position de l'Inria a toujours été contrastée dans ce domaine - voir par exemple sa politique de "valorisation", faisant la part belle aux brevets logiciels, et son retard à l'allumage patent vis-à-vis de l'open-source et de la mutation sociologique qu'il sous-tend. Rien de nouveau, donc, pour ceux qui connaissent l'institut

Certes, l'Inria est aussi traversée de courants multiples, et a aussi besoin de la caution morale apportée par des initiatives comme le W3C ou plus récemment ObjectWeb - parfois à son corps défendant, ou sans avoir pris toute la mesure des enjeux, mais on ne peut dénier à l'institut une certaine contribution au sens de l'histoire.

Pourtant, cette fois-ci, la ligne jaune semble avoir été franchie.

Sommes nous si affaiblis que nous ayons besoin, pour préserver la crédibilité (ou pire, la pérennité ?) d'un fleuron de notre Recherche Nationale, de l'associer à un éditeur Américain dont une bonne partie de nos institutions sont déjà peu ou prou dépendantes ?

Ou au contraire, nous croyons-nous si puissants que nous pourrions amener Microsoft à amender sa position, et agir d'abord pour l'intérêt général et la prospérité Européenne ?

Enfin, un citoyen peut-il être fier que l'argent des contribuables soit dépensé à promouvoir ce type d'initiative ? (dans Inria, il y a INR, soit "Institut National de Recherche" - et quand bien même ce serait "Institut Européen de Recherche", nous nous tromperions encore d'objectif).

Aujourd'hui, nous voilà si démunis que nous déposons l'Inria en gage, comme l'ultime bijou d'une noble famille désargentée... Aujourd'hui, c'est clair, l'Inria est à vendre.

- page 3 de 4 -