Lundi 4 juillet 2011 1 04 /07 /Juil /2011 19:03

Voici une photo de la cour de mon immeuble. J'habite à Berlin.

Img_5764.cropped.jpgL'immeuble comprend 10 appartements et 9 grandes poubelles de 7 catégories différentes.

De gauche à droite : papiers (bleue), verre coloré (verte), verre blanc (blanche), emballages (deux jaunes), petits appareils ménagers (orange), compost (brune) et reste (deux noires).

 

S'y ajoutent la collecte des piles (dans tous les magasins qui en vendent : drogueries, quincailleries, supermarchés, bricomarchés, magasins d'électronique, ...), celle des bouteilles avec d'innombrables variantes (les bouteilles consignées ne peuvent être rapportées qu'au magasin qui les a vendues, et elles doivent être triées par marque - chaque marque de bière a ses caisses, par exemple ; les bouteilles recyclables peuvent être rapportées à tous les magasins qui en vendent, mais certains ne vendent que des bouteilles en plastiques et d'autres que des bouteilles en verre, et ce sont deux automates différents qui les reprennent ; enfin certaines bouteilles - celles de vin, d'huile, ... - et toutes les cannettes doivent être jetées dans les grandes poubelles de l'immeble, verre ou emballages suivant les cas), et bien entendu tous les déchets "spéciaux" (encombrants ou polluants : vélos, télévisions, meubles, restes de peinture, d'huile, de white spirit, ...) qui doivent être apportés à la déchetterie (payante pour certains déchets mais pas pour tous).

 

À toutes ces "solutions" correspondent évidemment des circuits de collecte séparés : les 7 variétés de grandes poubelles supposent bien sûr 7 types de bennes à ordures différentes et donc 7 passages, avec chacun sa régularité (ou son irrégularité), les piles doivent être collectées dans les magasins, les bouteilles sont renvoyées par les détaillants aux grossistes qui les transmettent soit au fabriquant de boissons (pour les bouteilles consignées) soit au recycleur concerné (verre ou plastique).

 

Et bien sûr, la même gamme de poubelles et de récipients se retrouve dans chaque appartement.

 

 

On a donc un système où chaque individu est confronté à un choix cornélien à chaque fois qu'il a quelque chose à jeter, c'est-à-dire plusieurs fois par jour, si ce n'est plusieurs dizaines de fois par jour ; où une quantité de gens et de machines sont occupés à transporter des ordures de ci de là ; et où les caissières des supermarchés sont chargées de missions techniques et réglementaires pointues (ces bouteilles-ci, oui, celles-là, non, ah, l'automate est de nouveau en panne, etc.).

 

Évidemment, ça ne marche pas bien :

- Lassés, les gens jettent un peu tout n'importe où (sacs en plastique dans le compost, capsules et bouchons dans le verre, bouteilles en verre dans l'automate compacteur pour bouteilles en plastique, encombrants abandonnés sur le trottoir par peur d'avoir à payer la déchetterie, ...) ;

- Les collectes étant relativement faibles, les bennes ne passent pas souvent, ce qui provoque des nuisances (poubelle des emballages qui déborde, poubelle du compost envahie de bêtes, ...), sans parler des nuisances intrinsèques à certaines poubelles (odeurs du compost, bruit du verre), qui se multiplient quand on en place une dans chaque immeuble ;

- Les subtilités administratives et techniques sont intenables et non tenues (disputes dans les supermarchés pour une bouteille non reprise parce que l'étiquette est tachée, automates en panne, abandon d'encombrants malgré l'interdiction pour éviter d'éventuels frais de déchetterie, ...) ;

- C'est un gâchis monstrueux de temps et d'argent (il faut au moins être économiste pour considérer que fabriquer des automates à bouteilles spécifiques et 7 bennes à ordures différentes constitue une croissance bénéfique !).

 

 

Je propose l'organisation suivante :

3 grandes poubelles seulement : compost, déchets triables (emballages, verre, appareils ménagers, piles, papier, déchets toxiques convenablement emballés, ...), déchets non triables (poussière, cendres, gravats, ...).

Une société chargée de collecter le compost, de le retraiter et de le revendre aux agriculteurs.

Une société chargée de trier les produits triables.

Une société chargée d'éliminer comme il faut les produits non triables.

Un service municipal des encombrants chargé d'enlever ceux-ci de sur le trottoir pour les emporter à la société de tri.

 

Évidemment, ce serait moins individualiste : chaque habitant ne serait plus contraint de réfléchir à chaque ordure, c'est la société de tri qui s'en occuperait pour tous.

Et bien sûr, comme ça économiserait, ça causerait du chômage et de la décroissance.

 

Pour l'instant, l'Allemagne est très fière de ce système. Les Allemands adorent les règlements, discuter ce qui est obligatoire, interdit ou recommandé est un sport national ; les célèbres "auxiliaires de mode" (können, dürfen, müssen, sollen, wollen, mögen) sont faits pour ça. Les écologistes ne pensent presque jamais collectif (société de tri au lieu de multiplication des poubelles), c'est leur côté missionnaire, ils veulent convertir chaque individu à leurs règles de vie et pas faire en sorte que la société tout entière trouve des solutions efficaces. Les économistes se réjouissent de la moindre activité, fût-elle inutile. Et les dysfonctionnements sont soigneusement cachés : de temps à autre, un journaliste publie un marronnier sensationnel sur "les emballages triés sont de toute façon incinérés avec les déchets non triables, parce que personne ne sait encore les recycler", on lui répond d'attendre et que tout ça se mettra en place petit à petit, et les citoyens, s'ils sont en contact avec leur 7 poubelles et les 7 services de ramassage, ne voient pas ce qu'il advient de leur contenu.

 

Il y a donc très peu de chances que tout ça se rationnalise à court ou moyen terme.

Par Rémy - Publié dans : Société
Ecrire un commentaire - Voir les 0 commentaires
Mardi 23 mars 2010 2 23 /03 /Mars /2010 16:12
En réaction à l'article "Le piratage fera-t-il 1,2 million de chômeurs en Europe en 2015 ?", LEMONDE.FR, 19.03.10.

Selon l'étude que cite cet article, « le téléchargement illégal de films, séries télévisées, musique et logiciels aurait déjà coûté 10 milliards d'euros de recettes et plus de 185 000 emplois, en 2008. »

Première question : QUI aurait payé ces 10 milliards s'il n'y avait pas eu de piratage ? Les actuels pirates, bien sûr, c'est-à-dire grosso modo les jeunes.

Deuxième question : QUI aurait reçu ces milliards s'il n'y avait pas eu de piratage ? L'argent serait réparti entre plusieurs groupes, entre autres, les 185 000 employés dont parle l'étude.

Prenons une estimation "à la louche" du revenu moyen dans l'industrie culturelle : 1 500 € de salaire net par mois, plus la même somme en charges sociales. Cette estimation est certainement trop élevée : l'industrie du disque emploie un grand nombre de précaires dont le salaire est largement en-dessous de 1 500 € par mois - mais peu importe, c'est une base de calcul. Cela représente 36 000 € par an et par emploi en moyenne, donc 6,66 milliards pour les 185 000 emplois comptés par l'étude. S'il n'y avait pas eu de piratage, 6,66 milliards auraient été redistribués en salaires.

Où seraient allés les 3,33 milliards restants ? Une petite partie aurait payé la fabrication des supports (CD, DVD, jaquettes) : celle-ci est faite en Chine pour des salaires de misère à partir de produits hautement polluants ; et leur transport : là aussi un désastre social et écologique. Le reste aurait été reversé sous forme de dividendes aux actionnaires de l'industrie culturelle.

S'il n'y avait pas eu de piratage, les jeunes auraient versé 6,66 milliards à des salariés, un peu d'argent à des Chinois et à des pollueurs, et plusieurs milliards aux actionnaires de l'industrie culturelle.

À condition évidemment que les jeunes aient réellement possédé les 10 milliards en question, pour pouvoir les dépenser en CD et DVD - il est permis d'en douter ; le plus vraisemblable est que les jeunes auraient écouté moins de musique et que nettement moins de 185 000 emplois auraient été créés : on n'aurait pas eu beaucoup moins de chômage, mais on aurait eu beaucoup moins de culture. Mais peu importe, l'étude parle de 10 milliards, elle est certainement plus approfondie que ma réflexion rapide.

Troisième question : est-ce que ce transfert d'argent aurait été une bonne chose ? (D'un point de vue moral, d'un point de vue social, ...)
Quatrième question : est-ce que nous tous, citoyens, souhaitons que ce transfert ait lieu ?

Mon opinion personnelle est la suivante :

En 2008, le piratage a virtuellement redistribué des sommes énormes, permettant aux pirates (des jeunes, pas particulièrement riches, éventuellement des chômeurs) d'écouter de la musique ou de regarder des films sans enrichir des actionnaires déjà riches, ni exploiter des Chinois presqu'esclaves, ni polluer. Avec l'estimation ci-dessus, ce sont plusieurs milliards qui ont ainsi été mieux redistribués que ne l'aurait fait l'emploi. Cela représente un accroissement notable du niveau de vie moyen ! Le piratage permet donc aux citoyens de profiter des richesses de notre société (l'abondance de musique et de films) même quand ils sont exclus de la production de ces richesses (au chômage). C'est une très bonne chose, il ne faut surtout pas le combattre.

Il est absolument pervers de présenter comme un éventuel progrès social une augmentation du nombre d'emplois couplée à une augmentation des dividendes : aux pauvres plus de travail, aux riches plus d'argent ! Le progrès social consiste en ce que tout le monde ait véritablement accès à la culture ; si la loi est injuste, il faut la contourner en attendant de la modifier.


Cet exemple illustre parfaitement l'erreur qui consiste à confondre le revenu d'une branche de l'industrie avec le revenu de ses employés, la richesse d'une société avec le niveau de vie de ses citoyens, et le travail avec la production. Notre civilisation meurt de ces confusions qui masquent les inégalités. Pour éviter la guerre des banlieues, la grève permanente, et les situations de misère au sein même de notre société ultrariche, il faut absolument remettre les choses à leur place en regardant, dans toute analyse économique, QUI a reçu ou aurait reçu les sommes dont on parle.
Par Rémy - Publié dans : Economie candide
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 15 juin 2008 7 15 /06 /Juin /2008 20:15
Vous vous retrouvez, au hasard de la navigation, sur une page web pleines d'images magnifiques, et où, étonnant miracle, l'auteur a indiqué que vous étiez autorisé à les sauvegarder sur votre machine. Sisi, ça arrive. Vous cliquez de la touche droite, et dans le menu contextuel qui s'ouvre, vous choisissez "sauvegarder l'image sous..." ou l'équivalent dans votre langue à vous. S'ouvre un dialogue de choix de fichier où vous pouvez dire où vous voulez sauvegarder cette image. Dans ce dialogue, vous errez un moment : allez-vous sauvegarder l'image sur le desktop, ou bien dans le dossier "mes documents" ? Et puis vous vous décidez pour le dossier "mes images", même si l'image n'est pas vraiment de vous. Et là, agréable surprise : quand vous ouvrez le dossier "mes images" dans le dialogue de choix de fichier, les images qui y sont déjà vous apparaissent en réduction, pas seulement avec leur nom de fichier et une icône, comme ça se produit dans les autres dossiers.

Comment le dialogue a-t-il deviné que ce dossier-là contenait des images et qu'il fallait afficher leur contenu et pas seulement des icônes ? Il a interrogé le système d'exploitation. Pas le filesystem, non ! Le système d'exploitation. Ce n'est pas le dossier lui-même qui dit "affiche moi sous forme de vignettes", ni non plus chaque fichier d'image qui dit "je veux que tu montres mon contenu et pas seulement mon nom" - non. C'est Windows qui décide que ces fichiers-ci dans ce dossier-là, c'est pas pareil qu'ailleurs.
Et si vous voulez stocker des images dans un autre dossier, par exemple, les photos dont vous êtes l'auteur dans "mes images" et les photos que vous avez piquées dans l'internet dans "les images des autres", eh bien tant pis pour vous, l'autre dossier s'affichera par défaut sous forme de liste dans les dialogues et dans l'explorateur, et vous devrez demander l'affichage en planche-contact explicitement, à la main, à chaque fois que vous ouvrirez le dialogue pour y sauvegarder quelque chose. Bill Gates a décidé que vous mettrez vos images ici et pas ailleurs, et allez vous faire foutre.
"Avantage" : tous les logiciels de la police savent où vous stockez les images que vous avez volées : c'est là où Bill Gates vous a dit de le faire. Ça simplifie la répression des fraudes, et il est bien normal de ne pas rendre l'utilisation de l'ordinateur trop pratique aux gens qui essaieraient d'avoir des secrets et de ne pas tout montrer à Big Brother.

Bon, mais filons donc la métaphore. On fabrique un filesystem où chaque répertoire et chaque fichier est capable de dire des choses. Les dossiers d'images disent "affichez-moi de préférence en planche contact !" ; les fichiers d'image disent "affichez donc mon contenu !".

Les mails seraient stockés normalement, comme n'importe quels autres fichiers. Mais de la même manière qu'on a un dossier "mes images" (ou plusieurs), on aurait un dossier "mes mails" (ou plusieurs). Quand on l'ouvrirait, ce dossier dirait "je préfère être affiché par un logiciel de mail, qui montre les boutons "écrire" et "répondre", et la date et l'expéditeur de chaque mail que je contiens".

Je ne sais pas si vous avez déjà sauvegardé une page web entière, y compris ses "fichiers annexes", images, CSS etc.. Si vous le faites, elle est représentée sur votre disque dur par son fichier HTML plus un dossier avec un nom spécial, qui contient les fichiers annexes. Si par exemple la page s'appelle index.htm, le dossier s'appellera index_files. Grâce de ce nom, le système (pas le fichier et le dossier eux-mêmes, non ! le système !) sait qu'il font partie d'un couple ; si vous effacez l'un, il efface automatiquement l'autre aussi (c'est d'ailleurs bien emmerdant parfois) ; si vous essayez d'en renommer un, il râle, parce que ça risque de les divorcer.
Dans mon filesystem magique, chaque membre du couple saurait qu'il est lié à l'autre. Les fonctions d'effacement et de renommage ne seraient pas dans le système, les fichiers les subissant passivement, et le système s'occupant de vérifier des règles compliquées sur les noms de fichiers pour savoir quoi faire, non - le système dirait au fichier HTML "efface-toi STP", et celui-ci demanderait à l'utilisateur "je suis en couple avec tel dossier, est-ce que tu veux l'effacer aussi ou bien le laisser veuf ?". D'ailleurs on n'aurait pas besoin d'un dossier supplémentaire : le fichier HTML connaîtrait chaque fichier annexe dont il a besoin, et chaque fichier annexe saurait qu'il fait partie de l'ensemble. Si vous essayez d'effacer l'un d'entre eux, il vous signalerait "la page web tralala.html a besoin de moi ! Pensez à la modifier ou à me remplacer !" - ou bien il vous proposerait de la modifier automatiquement de manière adéquate quand vous le renommez.
Et ça se passerait de la même façon pour les pièces jointes aux mails, bien sûr, et pour les graphiques et tableaux Excel inclus dans des documents Word, etc. etc. etc..

Quand vous effacez un raccourci, le système (encore lui !) vous signale que ce n'est qu'un raccourci et que vous n'avez pas effacé le fichier réel. mais il ne vous dit pas où se trouve le fichier réel, et il ne vous propose pas de l'effacer aussi. A l'inverse, si vous effacez le fichier réel, ou si vous le déplacez ou le renommez, le système, qui n'est pas au courant de l'existence du raccourci, ne vous dit rien du tout, et vous vous retrouvez avec un raccourci qui ne fonctionne plus.
Dans mon filesystem magique, le raccourci, au moment de s'effacer, demanderait s'il doit aussi effacer le fichier réel ; et réciproquement, si vous réclamez au fichier réel de disparaître ou de se déplacer, il vous signalerait l'existence d'un raccourci (ou de plusieurs) et vous proposerait soit de les effacer avec lui, soit de les corriger pour qu'ils suivent son déplacement.

On peut imaginer plein d'autres trucs utiles du même genre, à partir du moment où fichiers et dossiers ne sont plus des blocs de données passifs mais de véritables objets...
Par Rémy - Publié dans : Rêves d'informaticien
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 15 juin 2008 7 15 /06 /Juin /2008 19:42
Quand on veut afficher une image sur une page web, on utilise le tag <img>. On y indique l'adresse de l'image ; au moment de l'afficher, le navigateur regarde quel genre de fichier c'est (GIF, JPEG ou PNG - le navigateur obtient l'info soit en regardant l'extension du nom de fichier, soit en lisant les premiers octets, soit c'est le serveur qui la lui donne avec le MIME-type du fichier d'image), et suivant le type de fichier, il s'y prend de la manière qui convient pour le décoder et l'afficher. Dans le cas d'un fichier GIF, il peut même arriver que ce soit une animation et que le navigateur doive la jouer tout le temps que la page est affichée, et pas seulement la placarder là une seule fois.

Il n'y a pas de tag <anim> qui fonctionne de la même manière pour les animations, vidéos et sons, allez savoir pourquoi. Il faut utiliser <object> ou <embed> et fournir des quantités d'informations cryptiques, notamment un numéro "clsid:" de trois kilomètres de long, qui indique, sous une forme cryptée absolument illisible, à qui appartient le brevet déposé sur la méthode de codage et de compression utilisée par le fichier d'animation. De deux choses l'une : soit c'est quelque chose dont moi, programmeur de pages web ou artiste vidéo, je dois m'occuper, et alors, ça devrait être lisible et compréhensible ; ou bien c'est un truc qui sert à la communication de machine à machine, de programme à programme, et ça peut être crypté, mais je ne veux pas avoir à le recopier à la main ! Dans tous les cas, l'information concernant la compression et le format de fichier devrait être stockée dans le ficher d'animation lui-même et pas quelque part aux alentours, dans la page HTML où il s'affiche.

A qui profite le crime ? En général, des absurdités pareilles se produisent quand les producteurs de logiciels se font une guéguerre des formats : Microsoft dit "mon Explorer est vachement mieux que tous les autres, c'est le seul qui sache afficher le format AVI", et Mozilla répond "non, c'est mon Firefox le meilleur, il n'y a que lui qui sache traiter le format OGG". Ça fait fonctionner la concurrence.
Mais là, non : les codecs (les programmes qui savent décoder les animations et les afficher) sont stockés dans le système d'exploitation, à la disposition de tous les navigateurs (et de tous les autres programmes aussi, par exemple les media-players et autres Winamps, les logiciels de traitement d'animation, etc.) ; la plupart des programmes savent télécharger automatiquement les codecs qui leur manquent (même si ça ne fonctionne qu'une fois sur dix et qu'on est en général obligé d'installer à la main une bibliothèque de codecs) ; et les codecs sont tous gratuits et d'utilisation libre.
Toutes les conditions sont réunies pour qu'un tag <anim> fonctionne parfaitement, mais non, aucun navigateur ne prend l'initiative de l'accepter.

Bon, et tant qu'on y est avec les questions de codecs etc. - pourquoi diable est-ce que les codecs d'images fixes doivent être inclus dans chaque programme qui en a besoin, alors que les codecs vidéo sont dans le système et à la disposition de tous ? Si j'installe PaintShopPro qui est capable d'afficher et de sauvegarder les images TIFF et BMP, donc qui contient les codecs pour ces deux formats, Firefox n'en profite pas - alors que pour les vidéos, ça marche...
Par Rémy - Publié dans : Rêves d'informaticien
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 15 juin 2008 7 15 /06 /Juin /2008 18:00
J'sais pas si vous en avez entendu parler, mais y'a un truc en ce moment : la mondialisation. Un peu avant y'en a eu un autre du même acabit : l'Europe. Et avant ça, deux autres : l'avion et le tourisme.
Bref, total : j'habite en Allemagne.
Ça fait que j'écris quotidiennement en français et en allemand.
Et ça, ça fait que j'ai besoin tous les jours à la fois de ë ï et de ä ö ü, sans parler de ç et ß.
Mais en plus, parfois je m'occupe de l'internationalisation de sites web ou d'applications - comprenez, la mondialisation, l'internet, tout ça... Disons par exemple espagnol et portugais : il me faut à la fois ñ et õ ã.
Et comble de perversion, je travaille avec un étranger (bêêêrk !) qui s'appelle Bjørn (devinez d'où il vient) et qui vit à Łodz (devinez où il va).

Donc j'aimerais bien que TOUS les signes diacritiques (les accents, trémas, tilde, barre en travers etc.) soient accessibles sur mon clavier avec des touches muettes (ça veut dire comme pour l'accent circonflexe, on tape la touche ^ et il ne se passe rien, ensuite on tape la touche e et il apparaît un ê).

J'ai déjà entendu l'argument "mais la plupart des gens n'écrivent qu'en une seule langue, et c'est plus rapide si on a tous les caractères de cette langue à disposition sur le clavier". Peut-être. Mais dans ce cas-là, il faudrait que ê î û ô â ï ü et le Ç majuscule soient sur le clavier français - ça n'est pas le cas, donc cet argument n'est qu'un faux prétexte.

Ensuite, j'aimerais bien pouvoir écrire dans l'ordre normal, c'est-à-dire l'accent APRES la lettre qui le porte. A l'école on m'a appris à écrire Re´my et non pas R´emy ! Et si par hasard et par erreur j'ai écrit Remy, pourquoi faut-il que j'aille effacer le e qui est tout-à-fait à sa place, au lieu de simplement rajouter l'accent dessus ? Et au contraire, si j'ai écrit sûbtil au lieu de subtil, pourquoi faut-il que j'aille effacer le û tout entier et re-taper le u, alors que je ne veux effacer que l'accent ? Je réclame des éditeurs qui fonctionnent comme il faut : on tape e puis ´, et l'accent se place de lui-même sur la lettre qui précède ; si on revient en arrière, ça efface d'abord l'accent, puis le e. En plus comme ça, à chaque fois qu'on appuie sur une touche on voit immédiatement le résultat : plus de touches muettes.

Bon et puis tant qu'on y est, pourquoi est-ce que l'accent aigu ne pourrait se mettre que sur les voyelles, alors que les jeux de caractères existants comprennent ŕ ś ź et ǿ ? Et pourquoi est-ce que je ne pourrais pas coller un ~ sur un e si j'en ai envie ? Ou un ˇ sur un m ? La solution technique est toute simple : les polices de caractères signaleraient les signes diacritiques, les programmes de traitement de texte iraient les coller sur le caractère précédent au fur et à mesure qu'on frappe (et pas sur le suivant !), en remplaçant l'ensemble si un caractère spécial est défini pour l'association lettre+accent (ça existe déjà, ça s'appelle une ligature), inversement, quand on efface, l'éditeur remplacerait la ligature par la moitié qui reste ; et si la ligature n'est pas définie, il superposerait la lettre et l'accent à l'affichage et à l'impression, voilà tout. Si les traitements de texte étaient capable de superposer (et ne me racontez pas qu'en 2008 c'est infaisable !), on aurait besoin de définir beaucoup moins de caractères spéciaux qu'actuellement dans les polices : dans l'immense majeure partie des cas, le caractère combiné est exactement identique à la superposition de la lettre et de l'accent.

Y'en a marre de trimbaler les conséquences du fait que ce sont les Américains qui ont inventé les ordinateurs ! Leur ASCII impotent nous oblige depuis 30 ans à faire des contorsions ridicules pour écrire correctement, à mutiler nos noms et à se battre contre des débilités cryptiques de config comme le "character encoding" des pages web et des mails, rien que pour que l'affichage soit correct. Tout ça alors que des solutions simplissimes sont à portée de main !
Par Rémy - Publié dans : Rêves d'informaticien
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 15 juin 2008 7 15 /06 /Juin /2008 16:40
Je rêve d'un outil de programmation basé sur un langage typé (comme Java, pas comme PHP) qui résolve lui-même les questions de types quand c'est possible, et qui adopte des solutions par défaut quand il est raisonnable de le faire.

Exemple.

import java.util.*;
class MaClasse {
  Vector<Info> lesInfos;
  public MaClasse() {
    lesInfos=new Vector<Info>();
  }
  public Vector<Info> getInfos() {
    return lesInfos;
  }
}

Vector<Info> infos=monObject.getInfos();
Iterator<Info> iter=infos.iterator();
Info i=iter.next();


Oh putaing ! Combien de fois faut-il encore que je tape le type "Info" ? C'est bien joli, les collections typées, mais vous avez donc rien d'autre à faire que de confirmer quarante-mille fois que vous n'avez pas changé d'avis, vous ? Voilà à quoi ça devrait ressembler, pour les trois dernières lignes :

§ infos=monObject.getInfos();
§ iter=infos.iterator();
§ i=iter.next();

Le signe § se lit "guess" et veut dire ici "le même type que de l'autre côté du signe =". Le compilateur calcule de toute façon la solution pour vérifier la validité de l'opérateur =.

Et dans la définition de la classe :

import java.util.*;
class MaClasse {
  Vector<Info> lesInfos;
  public MaClasse() {
    lesInfos=new
§();
C'est un cas un peu plus malin que le précédent, mais là aussi, le compilateur a de toute façon calculé la solution pour vérifier la validité du signe =.
  }

  public  § getInfos() { 
    return lesInfos;
  }

Ici, le signe § signifie "le même type que dans l'instruction return, et signale-moi une erreur s'il y a plusieurs instructions return et qu'elles entrent en conflit" (ce qui voudrait dire que je programme comme un cochon et que j'ai bien mérité une erreur).
}

Remarquez que comme ça, je n'ai écrit qu'une seule fois qu'il s'agissait d'un Vector<Info>. Si par hasard je change d'avis et que je veuille une ArrayList<SpecialInfo>, je corrige à un seul endroit et tout mon code fonctionne encore.

J'veux dire : les types d'un langage typé servent à garantir la cohésion entre la définition et les utilisations des divers éléments, en forçant le programmeur à préciser de quoi il parle. Mais on n'est pas pour autant obligé de le forcer à préciser SIX FOIS de quoi il parle ! Et la cohésion est bien plus efficacement garantie quand c'est le compilateur qui s'en occupe que quand c'est un être humain, à qui on donne la possibilité théorique de faire des bêtises tout en le punissant a posteriori s'il les commet ! Je n'ai pas envie de revivre le coup d'Adam et de la pomme tous les jours que le Bon Dieu fait.

Ah oui et encore un détail : il faudrait que l'outil de programmation propose, dans le menu contextuel qui s'ouvre quand on clique sur le signe §, de procéder à la substitution dans le code. Pour que dans les rares cas où on veut un traitement différent, ou bien quand on débeugue, on puisse voir ce que calcule le compilateur sans avoir à le deviner soi-même de tête.



Autre exemple.

import java.util.Iterator;
Iterator i=unObjet.getInformations().iterator();

Ça compile et ça marche, le compilateur regarde la classe d'unObjet, trouve la fonction getInformations(), constate qu'elle renvoie une java.util.Collection, qui a donc une fonction iterator() qui renvoie un java.util.Iterator, et tout va bien. Maintenant :
Collection c=unObjet.getInformations();
Ceci ne marche pas, le compilateur affirme qu'il ne connaît pas le type Collection, parce que je ne l'ai pas importé, et il refuse de placer une valeur de type java.util.Collection (renvoyée par la méthode unObjet.getInformations()) dans la variable c, dont il prétend qu'elle est de type inconnu, bien que je lui aie dit que son type s'appelait aussi Collection !

Bien sûr, il est en théorie possible que j'aie défini une autre classe nommée elle aussi Collection, et que je veuille l'utiliser à la place de java.util.Collection. Après tout, on a parfois envie de donner des maux de tête à ceux qui auront à lire le code plus tard.
Par ailleurs, si le compilateur décidait de partir de l'hypothèse qu'il s'agit là d'une java.util.Collection, le programme ne compilerait que si l'interface de ma Collection est identique à celle de java.util.Collection, ou si je n'utilise nulle part ce que j'y ai ajouté. C'est le seul cas où ce qu'il a deviné pourrait aboutir à autre chose que ce que je voulais, sans pour autant qu'une erreur me soit signalée.
La probabilité que toutes ces conditions soit réunies est quasiment nulle. Si j'ai été assez idiot pour à la fois nommer une classe perso Collection ET pour ne rien rajouter dedans par-rapport à java.util.Collection ou ne pas utiliser ce que j'y ai rajouté, ET pour oublier de préciser que c'est celle-là que je veux utiliser et pas l'autre, je mérite amplement que le compilateur me punisse en choisissant de lui-même la solution la plus vraisemblable !
Par Rémy - Publié dans : Rêves d'informaticien
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 15 juin 2008 7 15 /06 /Juin /2008 14:26
Il fut un temps où créer des richesses consistait à répondre à des besoins. Les riches (ou les enrichis) de cette époque sont les industriels, qui fabriquent des machines et des produits dont tout le monde a l'utilité : automobiles, matières plastiques, engrais, alimentation, ..., mais aussi ceux qui les distribuent, comme les supermarchés ou les maisons de disques, et ceux qui innovent, comme Microsoft, qui invente l'ordinateur pour tous.

Dans le temps suivant, créer des richesses (et s'enrichir) a consisté à créer des besoins. Les riches correspondant à ce modèle sont par exemple les entreprises de la mode (il ne s'agit plus de se vêtir, besoin élémentaire, mais de porter telle ou telle marque, besoin créé) et des technologies de pointe (quelqu'un qui achète un téléphone portable ne l'utilise que très rarement jusqu'à ce qu'il soit usé : le besoin n'est pas de communiquer, mais d'avoir un appareil dernier cri), les stars, etc..
Les industries des sociétés riches issues de l'époque précédente tentent de suivre le mouvement, en investissant toujours plus dans la publicité, en créant des effets de mode associés à du design (cette année les machines à expresso, l'année prochaine les automates à pain), en présentant comme des "coups de coeur" ou des plaisirs de courte durée des produits dont le prix devrait les classer dans la catégorie des investissements, comme les voitures, et en pratiquant l'"obsolescence planifiée", c'est-à-dire en fixant par avance une durée de vie courte aux produits (en les fabriquant peu solides ou avec un design très marqué qui ne peut que passer de mode rapidement), de manière à créer un besoin de renouvellement. L'industrie du logiciel est la grande championne de ce dernier procédé, par exemple, Microsoft a créé de toutes pièces des besoins de renouvellement et d'amélioration en mettant sur le marché des systèmes peu fiables et peu sûrs à une époque où l'on maîtrisait déjà parfaitement toutes les techniques de sécurité informatique.
Inventer des produits réellement nouveaux, qui répondent à un besoin authentique (même si c'est un besoin lui aussi nouvellement inventé), n'est plus rentable ; dans les cas où ces produits arrivent quand même à naître, ils sont financés en totalité ou en majeure partie par la publicité, c'est-à-dire encore par la création de besoins. C'est le cas par exemple d'innovations internet comme eBay ou les réseaux sociaux, qui ne sont pas financés directement pour le service qu'ils rendent, mais pour leur rôle de canaux publicitaires. Il en va de même de la télévision.

A l'époque actuelle, créer des richesses consiste à organiser des situations de captivité. Les riches (ou ceux qui s'enrichissent) sont les monopoles et les lobbys les plus puissants.
Par exemple, les chaînes de supermarchés françaises se sont beaucoup plus enrichies que les entreprises correspondantes dans les pays voisins, parce qu'elles ont réussi à la fois à faire adopter des lois qui les protègent contre le hard discount et à se répartir villes et régions pour créer des situations de monopole local. Les grands semenciers comme Monsanto prétendent investir beaucoup dans la recherche et l'innovation, mais ce qui les enrichit n'est pas tellement l'invention de plantes plus performantes ou mieux adaptées aux conditions de culture, c'est surtout de les avoir rendues stériles et d'avoir convaincu les agriculteurs de régions entières du tiers-monde de s'endetter pour les acheter. Il en va de même de l'industrie pharmaceutique : elle ne s'enrichit pas de l'invention de médicaments plus efficaces ou plus utiles, mais des brevets qu'elle détient dessus, associés à l'obligation morale de les prescrire faite aux médecins des pays riches. Microsoft ne s'enrichit pas en développant Vista, dont personne n'a besoin et que personne n'a réclamé, même rien que pour être à la mode, mais en s'associant aux fabricants et distributeurs d'ordinateurs pour qu'ils en équipent chaque nouvelle machine du monde entier et qu'ils ne proposent rien d'autre à leurs clients.

Quelles sont les conséquences de cette situation ?
Les inconvénients des monopoles sont connus : innovation bloquée (aucune nouvelle idée ne peut s'installer), abus sur les prix (la mainmise de Carrefour et Casino sur des villes entières grève le pouvoir d'achat des Français) et sur les libertés (les semenciers ont réduit les paysans en esclavage en acquérant "commercialement" leurs terres), production ne répondant pas aux besoins de base (l'industrie pharmaceutique invente chaque jour une nouvelle crème amincissante pour les obèses des pays riches, mais ne s'intéresse pas à la tuberculose ou au paludisme qui tuent des millions de gens dans les pays pauvres), etc...
Mais surtout, notre modèle de société fondé sur la croissance ne fonctionne plus. Tant qu'il s'agissait de fabriquer des produits et de les distribuer pour répondre à des besoins, que ces besoins soient réels ou créés artificiellement, il fallait employer toujours plus de monde pour produire toujours plus et distribuer toujours plus, et on pouvait espérer que la croissance crée de l'emploi. A partir du moment où ce qui enrichit, c'est l'interdiction et l'organisation de la pénurie, il n'y a aucune raison que les entreprises qui s'enrichissent embauchent. Microsoft peut faire croître son chiffre d'affaires en s'associant avec les distributeurs d'ordinateurs sans pour autant recruter le moindre employé. Aventis n'a pas besoin de beaucoup plus de personnel pour faire respecter cent brevets (c'est-à-dire pour organiser la pénurie de cent médicaments) que pour en faire respecter dix - quelques juristes, et lois, Justice et Etats s'occupent du reste, et on obtient de la croissance à la fois en nombre de produits et en chiffre d'affaires, mais pas en emplois.


Que faire ?
Je n'en sais rien. Résoudre les problèmes que pose l'évolution de la société est le métier des politiques, pas des candides.

Il faut remarquer qu'interdire les monopoles n'est pas la solution miracle - tout le monde sait que ce serait une bonne chose pour l'humanité, mais quel pays est prêt à casser les fleurons de son industrie ? Les Etats-Unis citent Microsoft en exemple de réussite et l'encourageront tant qu'il réussit - ils ne prendront jamais en compte le fait que cette réussite soit actuellement basée sur des abus systématiques et cause des dommages immenses au monde entier (à chaque fois que la disposition des menus de Word change par caprice de Microsoft, chaque employé de bureau du monde entier perd une demi-heure de travail à réapprendre où cliquer ! Vista et Office 2007 ont coûté plus cher à l'économie mondiale que le "bug de l'an 2000").

Il faut remarquer aussi que notre modèle de société fondé sur la croissance obligatoire permanente est confronté à des difficultés bien plus redoutables que ces questions-là : l'épuisement des ressources naturelles, entre autres.
Le fait que la production de richesses se déplace vers une réduction des choix individuels et du nombre d'acteurs sur marché pourrait peut-être éventuellement faciliter une reprise en mains au moment où elle sera nécessaire : il est plus facile d'obliger les fabriquants de voitures à ne proposer que des modèles à faible consommation quand ils sont 5 que quand ils sont 500, on s'en sort par négociation entre gens raisonnables au lieu d'avoir recours à des lois et de la lutte contre la contrebande.
Par Rémy - Publié dans : Economie candide
Ecrire un commentaire - Voir les 0 commentaires
Samedi 14 juin 2008 6 14 /06 /Juin /2008 19:40
sBien que nos pays soient extrêmement riches, on y trouve des sans-abri et des mal-logés.

Remarquons que les sans-abri et les mal-logés sont tous pauvres : dans un pays tempéré, c'est-à-dire où il fait froid l'hiver, et développé, c'est-à-dire où on ne peut pas vraiment bricoler de bidonvilles, le logement est une des premières choses à quoi on consacre de l'argent, même si on en a très peu.

Comment loger tout le monde ?

Traditionnellement, dans nos pays capitalistes et libéraux, on a recours d'abord au logement privé locatif. Le logement social n'intervient qu'en second, quand le gouvernement est particulièrement de gauche et quand la situation budgétaire le permet ; et on tâche de limiter la différence de prix entre logement privé locatif et logement social, d'une part pour que le logement social ne coûte pas trop cher à la collectivité, d'autre part pour ne pas créer d'injustice entre ceux qui sont juste assez pauvres pour y avoir droit et ceux qui sont juste assez riches pour en être exclus (effet de seuil).

L'idée de base, surtout chez les gouvernements de droite, est donc de favoriser la construction de logements privés locatifs.

Construire un ou des logements coûte cher. Cela a deux conséquences :
- Les personnes ou les sociétés qui construisent ou qui achètent des logements en vue de les louer sont en général riches - en tout cas, évidemment, bien plus riches que leurs locataires.
- Ces personnes et ces sociétés ne considèrent pas la construction ou l'achat de logements locatifs comme un acte de bienfaisance, mais comme un investissement, qui doit un jour se rentabiliser.

Je ne vais pas parler ici des moyens politiques de faire en sorte que l'investissement dans de l'immobilier locatif soit rentable. C'est le métier des hommes politiques, pas des candides. Je vais juste regarder les conséquences que ça a.

Or donc, pour loger tout le monde, y compris les pauvres, on fait en sorte qu'investir dans la construction de logements à louer soit rentable.

Rentable signifie que ça rapporte au total plus que ça n'a coûté au début.

Ce qu'un logement locatif rapporte, ce sont les loyers que paient les locataires.

Quand quelqu'un (un riche) construit un logement et le loue (à un pauvre), il y a deux transferts de richesses : d'une part, le riche met un logement à disposition du pauvre ; d'autre part, le pauvre paie un loyer au riche. C'est une espèce de prêt : le riche a investi au départ pour construire et mis le logement à disposition du pauvre, et celui-ci "rembourse" - rentabilise - la construction petit à petit en payant son loyer.

L'opération ne se fait que si elle est rentable pour celui qui investit, c'est-à-dire pour le riche ; il faut donc que le transfert de richesses du pauvre vers le riche soit plus important que celui qui va du riche au pauvre. Dans le cas des loyers, le déséquilibre est encore plus fort que dans le cas d'un prêt bancaire, par exemple : le logement ne finit jamais par appartenir au locataire, même quand il a remboursé plusieurs fois sa construction ; et sa dette ne s'éteint jamais, il paie toute sa vie, surtout s'il est trop pauvre pour bénéficier d'un prêt bancaire pour acquérir son logement.

Comment cela a-t-il pu fonctionner dans le passé ? Si pour loger les pauvres, il faut transférer des richesses des pauvres vers les riches, au bout d'un moment les pauvres devraient tous mourir de faim ou dormir à la belle étoile, non ?

Non - il faut regarder qui au juste sont ces pauvres. Dans le temps, les pauvres, c'étaient des ouvriers ou des employés, notamment des employés agricoles. C'est-à-dire les gens qui produisent les richesses. Pour pouvoir transférer des richesses des pauvres vers les riches, il suffisait d'augmenter la productivité : le fermier achète un tracteur, l'usine une nouvelle machine ; chaque ouvrier produit plus de richesses qu'avant, et il reverse immédiatement une partie de ces richesses supplémentaires au propriétaire de son logement. L'écart se creuse : le riche s'enrichit à la fois de la hausse de sa propre productivité et des profits de ses logements locatifs, alors que le pauvre ne s'enrichit que d'une partie de la hausse de sa propre productivité, l'autre partie étant reversée au riche. Mais tout va bien : le pauvre bénéficie d'une partie de la hausse de sa productivité et s'enrichit un peu, même en transférant des richesses vers le riche.

De nos jours malheureusement, les pauvres ne sont plus ouvriers ni employés, mais en général au chômage. Ils ne sont pas en position de produire des richesses (ni de bénéficier de hausses de productivité), et donc ne peuvent pas assurer de transfert de richesses vers les riches. Il n'est pas rentable de construire des logements pour eux. Dans cette situation, le système du logement privé locatif ne fonctionne plus.

Comment faire ?

Je ne sais pas. Trouver des solutions quand le système ne marche plus, c'est le métier des politiques, pas des candides.

Remarquons que par construction, un système qui fonde le logement de tous (et notamment des pauvres) sur l'augmentation de la productivité est très fragile : si la productivité augmente trop vite (plus vite que la consommation), on se retrouve en surproduction et on n'a plus besoin d'employer tout le monde, donc il apparaît des chômeurs, qui sont des pauvres que ce système-là ne sait pas loger ; si la productivité augmente trop lentement, le transfert de richesses des pauvres vers les riches n'est plus suffisant pour inciter ces derniers à construire des logements locatifs, et des travailleurs restent mal-logés. Il semble que dans l'Histoire, ce système n'ait fonctionné que pendant les 30 Glorieuses ; en pratique, de nos jours on a à la fois les deux problèmes : des mal-logés non rentables (chômeurs) et des travailleurs pauvres mal-logés (immigrés).
Par Rémy - Publié dans : Economie candide
Ecrire un commentaire - Voir les 0 commentaires

Recherche

Calendrier

Juin 2012
L M M J V S D
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
<< < > >>
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus