Blog éclectique & sans sujet précis - Mot-clé - optimisation<p>Si ça me passe par la tête, si ça n’intéresse que moi, alors c’est peut-être ici. Ou pas.</p>2024-02-13T09:44:49+01:00L'éditeur est le propriétaire du domaineurn:md5:bf83720a7189bba489682d945b972671Dotclear« Guerres & Histoire » n° 32 d’août 2016 : l’armée invincible d’Alexandre le Grandurn:md5:effea9c5e805582f883f07253649f26b2016-09-13T00:00:00+02:002020-02-08T18:02:38+01:00ChristopheHistoireAntiquitébon sensEmpire romainguerrehistoireimpérialismenationalismeoptimisationperspectiveraclée<p><a href="https://www.coindeweb.net/blogeclectique/images/livres/GuerresEtHistoire_32.jpg" title="Guerres & Histoire n°32 (août 2016) "> <img src="https://www.coindeweb.net/blogeclectique/images/livres/.GuerresEtHistoire_32_s.jpg" alt="Guerres & Histoire n°32 (août 2016) " style="float:right; margin: 0 0 1em 1em;" title="Guerres & Histoire n°32 (août 2016) " /> </a> C’est le dossier principal de ce numéro. J’ai traité les autres thèmes dans le billet précédent. <em>Commentaires perso en italique.</em></p>
<p>D’un pays quasiment barbare, il a fait la première puissance mondiale de son époque : d’où vient le succès d’Alexandre le Grand ? Notes :</p> <h3>La Macédoine</h3>
<p>La Macédoine, à la limite de la culture grecque mais sous-développée, possédait d’<strong>abondantes ressources naturelles</strong> (dont des pâturages pour les chevaux)... et <strong>humaines</strong>.</p>
<p>L’armée macédonienne était celle d’un <strong>peuple en armes</strong>, sans mercenaires, manifestement avec aussi des professionnels, avec une bonne cavalerie noble. Plus tard, Alexandre utilise le nationalisme grec pour les unir contre les Perses (et châtie les mercenaires grecs rencontrés en face).</p>
<h3>Philippe</h3>
<p><strong>Philippe</strong>, le père d’Alexandre et véritable fondateur de la puissance macédonienne, s’inspire des <strong>phalanges de hoplites grecs</strong> (de lents rouleaux compresseurs) et améliore le système. Il essaie de refuser les grandes batailles, évite les longs sièges, préfère la « petite guerre » à base de petits combats et de surprise. Profitant des éternelles guerres entre cités grecques il soumet tout le monde. Déjà il vise la Perse.</p>
<p>Alexandre, formé par son père, sait faire fructifier l’héritage de son père et commence par mater les rébellions. Il hérite aussi de bons officiers.</p>
<p>Techniquement, <strong>la « phalange du pauvre » de Philippe</strong> vise à reprendre le principe des <strong>rangs serrés</strong> (jusque là invincibles face à la cavalerie) mais en <strong>allégeant</strong> le coûteux équipement et en <strong>allongeant les lances</strong>. Les sarisses, longues mais légères, ont une allonge supplémentaire face aux Grecs, écrasent les Perses trop légèrement protégés, et, dressées, offrent une protection contre les flèches. Ces phalanges moins lourdes sont bien plus <strong>mobiles</strong> que leur équivalent grec.</p>
<h3>La stratégie</h3>
<p>À côté des phalanges (l’enclume), les Macédoniens misent sur leur <strong>cavalerie</strong> (le marteau, négligé par les Grecs) qui s’occupe du choc : <strong>les cavaliers macédoniens osent charger l’infanterie</strong> ! La procédure exacte reste discutée : des chevaux ne chargent pas un mur de lances ! Il aurait pu suffire de les laisser approcher doucement (à revers) pour qu’ils passent entre les lances puis arrivent aux boucliers ennemis, pendant que les phalanges clouent l’ennemi d’un autre côté, jusqu’à dislocation de l’unité adverse.</p>
<p>L’armée macédonienne, autour des phalanges, utilise de <strong>nombreux autres types d’unités</strong>, pour protéger les flancs par exemple. Il le faut aussi pour intégrer des unités issues des pays conquis. Leur roi coordonne tout cela : Philippe et Alexandre maîtrisent le <strong>combat interarmes</strong>. La bataille ne se limite pas à un grand choc où les unités légères ne sont qu’accessoires.</p>
<h3>Préserver la conquête</h3>
<p>L’Empire perse (monstre de 50 millions d’habitants peut-être) a une dynastie à la légitimité fragile, une armée utilisant beaucoup l’infanterie légère, les archers et les mercenaires... grecs ! Les satrapes (gouverneurs) sont très autonomes : Alexandre sait les retourner pour assoir son propre pouvoir et assurer ses arrières.</p>
<h3>Mais aussi...</h3>
<p>Les ingénieurs grecs se montrent utiles pour l’artillerie de jet (innovation pendant les batailles) et les sièges (Tyr, Gaza).</p>
<h3>La fin</h3>
<p>L’Empire d’Alexandre n’a finalement comme limite que la fatigue de ses soldats après la conquête de la vallée de l’Indus. À la mort (de maladie ?) du conquérant, ses généraux se partagent les territoires. Puis il s’empressent de se faire la guerre pendant plus d’un siècle, avec des armées alourdies, moins formées, moins fiables.</p>
<p>Avant qu’une armée de citoyens-soldats sans général de génie mais encore mieux organisée, adaptable et manœuvrable mette tout le monde d’accord : la légion romaine.</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Guerres-Histoire-32-aout-2016-l-armee-d-alexandre#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/827“SQL Performance explained” (« SQL : au cœur des performances ») de Markus Winand : indexer sa base de donnéesurn:md5:b704381b8474a76b1f75fd0d564cb42b2016-03-24T22:09:00+01:002020-02-08T18:38:17+01:00ChristopheInformatique : l’art du développementbase de donnéesinformatiquelivres lusoptimisationperfectionnismeéconomies d’énergieéducation<p>(Si vous ne savez pas et ne voulez pas savoir ce que sont le <a href="https://fr.wikipedia.org/wiki/Structured_Query_Language">SQL</a>, les bases de données et les <a href="https://fr.wikipedia.org/wiki/Index_%28base_de_donn%C3%A9es%29">index</a>, ce qui suit ne vous intéressera pas.)</p>
<p><a href="https://www.coindeweb.net/blogeclectique/images/livres/MarkusWinand_SQLPerformanceExplained.jpg" title="MarkusWinand_SQLPerformanceExplained.jpg"><img src="https://www.coindeweb.net/blogeclectique/images/livres/.MarkusWinand_SQLPerformanceExplained_s.jpg" alt="MarkusWinand_SQLPerformanceExplained.jpg" style="float:right; margin: 0 0 1em 1em;" /></a>J’ai beaucoup apprécié ce livre, mais je commencerai par un reproche courant sur son titre : il ment ! Markus Winand ne parle pas des performances des requêtes SQL à proprement parler, mais <strong>se concentre quasi-exclusivement sur les index</strong>. Son principe : une bonne indexation est la clé des performances. C’est parfaitement vrai, mais ceux qui s’intéressent aussi à la répartition de la mémoire entre SGA et PGA sous Oracle, à la fragmentation de leurs <em>tablespaces</em>, à la distribution des fichiers sur des disques de rapidité différente, à l’utilité des clusters, au maniement des T-SQL et PL/SQL... seront frustrés.</p> <p>Un autre principe de Winand : <strong>le développeur est celui qui sait comment les données sont utilisées</strong>. Il est à la fois le premier utilisateur des index et celui qui doit savoir pointer ceux qui manquent. (Et je confirme qu’à part certaines évidences ou contraintes techniques, il est difficile de savoir comment optimiser une base quand on n’a aucune idée de la manière dont elle sera utilisée, des critères primordiaux des utilisateurs, de la fréquence d’utilisation de telle ou telle donnée. Quant aux DBAs j’ai constaté qu’hors problème sérieux ils étaient assez peu proactifs. De plus, si certains étaient ouverts à l’ajout d’index quand on le justifiait, d’autres voyaient ça avec une franche hostilité <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/SQL-Performance-explained-de-Markus-Winand#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>.)</p>
<h3>Le bien</h3>
<p>Bref, il y a là-dedans tout ce que j'aurais voulu savoir quand je tapais du SQL au kilomètre. À cette époque (et après) j’ai acquis pas mal de réflexes pour obliger Oracle à choisir tel chemin et pas un autre. Mais il est toujours agréable et instructif de voir réexprimés proprement des concepts appris sur le tas, expliqué des habitudes prises par imitation et validé des réflexes. En général, je me suis retrouvé conforté dans mes habitudes, et encouragé à creuser un peu plus l’existant ou le juste-effleuré (<a href="http://use-the-index-luke.com/fr/sql/regrouper-les-donnees/parcours-d-index-couvrants">index couvrants</a> notamment).</p>
<p>Contrairement à nombre de livres sur les bases de données, il ne se spécialise pas sur une seule, mais parle des quatre principales : Oracle, SQL Server, PostgreSQL, MySQL. J’aurais bien aimé en voir d’autres (comme SQLite, même s’il est limité, ou Sybase) mais on ne peut pas tout avoir. Les différences entre les bases sont une part importante de la culture informatique. MySQL apparaît souvent comme le mauvais élève.</p>
<p>Le livre se concentre presque exclusivement sur les index B-tree classiques, de loin les plus courants. Il part des bases puis dissèque les méthodes d’utilisation (<em>hash</em>, <em>merge</em>...), ou leur utilisation dans différents contextes, dont les résultats partiels, ou encore l’impact sur les tris. La nécessité et les limites des <em>bind</em> dans les requêtes répétées sont abordés, tout comme les dégâts que peuvent faire des ORM comme Hibernate.</p>
<h3>Le moins bien</h3>
<p>Il y a juste une mention des index <em>bitmaps</em> pour dire qu’il sont réservés aux <em>datawarehouses</em> à cause de leur coût élevé en mise à jour <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/SQL-Performance-explained-de-Markus-Winand#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>. Winand ne dit pas du bien des tables organisées en index comme cela semble courant sous SQL Server (les autres index seraient plombés par cette structure) mais un commentateur sur Amazon <a href="http://www.amazon.fr/SQL-coeur-performances-Markus-Winand/product-reviews/3950307834/ref=dpx_acr_txt?showViewpoints=1">lève une objection</a> (mais il travaille chez Microsoft, à moins que ce soit un homonyme).</p>
<p>Les requêtes d’exemple sont assez simples pour la compréhension, mais finalement je me demande encore quelle politique adopter pour optimiser des requêtes de dix tables, en décisionnel ou pas — il n’y a sans doute pas de recette miracle, il faut voir ce que pond l’optimiseur.</p>
<h3>Où</h3>
<p>Le livre en allemand (la VO ?), anglais (que j’ai lu) ou français est disponible sur Amazon, et hélas uniquement là, sous forme papier du moins. Cependant <a href="http://use-the-index-luke.com/sql/preface" hreflang="en">l’essentiel semble accessible depuis le site</a>.</p>
<p><strong>Mise à jour de 2020</strong> : je continue de conseiller ce livre en formation à tous ceux qui doivent parler à une base de données, DBA comme développeurs — <em>surtout</em> les développeurs.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/SQL-Performance-explained-de-Markus-Winand#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Mais sous SAP R/3 la logique normale n’a pas cours, voir <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">ma vieille série sur le sujet</a>, <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/19/210-initialiser-tu-n-oublieras-pas">là</a>, <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5">là</a> et <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille">là</a>, commentaires compris.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/SQL-Performance-explained-de-Markus-Winand#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Et, ajouterai-je, du coût de la licence Oracle Enterprise nécessaire.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/SQL-Performance-explained-de-Markus-Winand#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/813« Nous allons mourir, et cela fait de nous les veinards... »urn:md5:0316bb19766e8575157cdbb6114c61422015-12-03T00:00:00+01:002015-12-03T00:00:00+01:00ChristopheTout petit mondebon senscitationcomplexitécouragedémographiemortmèmemétaloptimisationoptimismeperspectiveréalitétempsuchronieéonsévolution <blockquote><p><em>“We are going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born. The potential people who could have been here in my place but who will in fact never see the light of day outnumber the sand grains of Sahara. Certainly those unborn ghosts include greater poets than Keats, scientists greater than Newton. We know this because the set of possible people allowed by our DNA so massively outnumbers the set of actual people. In the teeth of these stupefying odds it is you and I, in our ordinariness, that are here. We privileged few, who won the lottery of birth against all odds, how dare we whine at our inevitable return to that prior state from which the vast majority have never stirred?” </em><br /> <br />Nous allons mourir, et cela fait de nous les veinards. La plupart des gens ne mourront jamais parce qu’il ne naîtront jamais. Les personnes potentielles qui auraient pu être là à ma place mais en fait ne verront jamais la lumière du jour sont plus nombreuses que les grains de sable du Sahara. Ces fantômes non nés comprennent certainement des poètes plus grands que Keats, des scientifiques plus grands que Newton. Nous savons cela parce que l’ensemble des personnes possibles permises par notre ADN dépassent si massivement l’ensemble des personnes réelles. En dépit de ces probabilités stupéfiantes c’est vous et moi, dans notre banalité, qui sommes là. Nous les quelques privilégiés qui avons gagné la loterie de la vie contre toutes les probabilités, comment osons-nous nous plaindre de notre inévitable retour à cet état précédent dont la majorité d’entre nous ne s’éveillera jamais ?<br /> <br />— <em><a href="https://fr.wikipedia.org/wiki/Richard_Dawkins">Richard Dawkins</a>, </em>Unweaving the Rainbow <em>(<a href="https://fr.wikipedia.org/wiki/Les_Myst%C3%A8res_de_l'arc-en-ciel">Les Mystères de l’arc-en-ciel</a>), 1</em></p></blockquote>
<p>Selon Wikiquote, Dawkins, athéiste militant, a demandé à ce que ce texte soit lu à ses funérailles.</p>
<p>J’ai trouvé cette citation reprise dans <em>The Greatest Show On Earth</em>, long et épique morceau de clôture d’ <em><a href="http://alias.codiferes.net/wordpress/index.php/nightwish-endless-forms-beautiful">Endless Forms Most Beautiful</a> </em>, dernier opus du bruyant et finlandais groupe de métal symphonique Nightwish <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Nous-allons-mourir-et-cela-fait-de-nous-les-veinards#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>.</p>
<iframe width="854" height="480" src="https://www.youtube.com/embed/uzPT9dGgeTs" frameborder="0" allowfullscreen></iframe>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Nous-allons-mourir-et-cela-fait-de-nous-les-veinards#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Album que j’ai une méchante tendance à écouter en boucle depuis quelques semaines, alternant à peine avec <a href="https://www.youtube.com/watch?v=6gxFlTXPZVY">un</a> ou <a href="https://www.youtube.com/watch?v=1HYgidYaBl8">deux</a> albums précédents et le dernier <a href="https://www.youtube.com/watch?v=Dy6MpsDPKts">Within Temptation</a>.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Nous-allons-mourir-et-cela-fait-de-nous-les-veinards#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/804Des petits panneaux solairesurn:md5:9e5a54dbfa5ffc293b948d510837beb02013-09-08T14:45:00+02:002016-07-07T12:47:57+02:00ChristopheFragile planèteAllemagneAlsaceanticonsumérismeargentbesoinbon sensconquête de l’inutilemicroéconomiemèmeoptimisationperspectivepouvoir d’acheterprise de têteécologieéconomieéconomie de l’attentionéconomies d’énergieéducationémerveillementénergie <p><a href="http://www.heise.de/ct/inhalt/2013/19/86/" hreflang="de">Mon magazine favori a encore commis un article hors informatique, sur les petites installations solaires</a>.</p>
<p>Il ne s’agit pas des grosses installations photovoltaïques destinées à couvrir le toit pour revendre du courant à EDF. Pour moi, cela s’apparente à un investissement financier plus qu’autre chose, et je doute de la pertinence <a href="http://fr.wikipedia.org/wiki/%C3%89conologie">éconologique</a> du concept <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>.</p>
<p><em>C’t</em> ne parle pas non plus des installations « thermodynamiques » (non photovoltaïques) qui consistent à pré-chauffer l’eau sanitaire ou carrément l’eau de chauffage sur le toit. Même dans mon Alsace, ça peut être rentable car on a besoin de chauffage plus longtemps que dans les régions ensoleillées.</p>
<p>Rien à voir non plus avec les petits panneaux solaires à trimbaler en randonnées ou sur un bateau : leur intérêt principal est l'autonomie dans une zone paumée.</p>
<p>Non, le sujet ce sont bien ces petites installations solaires peu chères, branchées sur le secteur de la maison, de l’ordre de seulement 200W mais destinées à alimenter toutes les petites consommations éparses d’une maison : frigo, électronique en veille, etc. Un de leurs intérêts est de ne pas nécessiter la même paperasse qu’une installation photovoltaïque complète puisque le but n'est pas de revendre.</p>
<p>Je n’ai jamais vu ça en France <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>, et il y a peut-être une raison toute bête : l’article calcule que l’investissement ne sera amorti qu’en dix ans dans le meilleur des cas... en Allemagne, où l’électricité est deux fois plus chère qu’en France <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>.</p>
<p>Quand le but est d’économiser quelques dizaines d’euros dans l’année, le moindre surcoût remet l’investissement en question :</p>
<ul>
<li>l’installation doit tenir une décennie : cela implique des garanties au moins aussi longues et une mise en place très soigneuse pour encaisser les intempéries aussi longtemps, éviter qu’un panneau envolé tue quelqu’un, ou simplement pour tirer un câble jusqu’à l’extérieur ;</li>
<li>l’heure de main d’œuvre d’un installateur ou réparateur coûte les économies d’une année ;</li>
<li>ajouter une source dans un circuit électrique doit être pensé : ce serait dommage de surchauffer un fil et de déclencher un incendie ; les disjoncteurs adéquats coûtent encore un ou deux ans d’économie ;</li>
<li>si tout est éteint dans la maison, le compteur électrique va tourner à l’envers, ce que les opérateurs d’électricité allemands n’admettent pas sans paperasse et garanties : il faut éventuellement que le compteur soit remplacé pour bloquer ;</li>
<li>on peut rajouter une batterie qui stocke l’énergie inutilisée, mais l’investissement se compte en milliers d’euros.</li>
</ul>
<h3>Conclusion de l’article</h3>
<p>Une mini-installation n’est économiquement rentable que dans des conditions idéales, et encore. L’auteur conseille de conserver son argent pour une future installation plus importante et plus professionnelle <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup>, ou tout simplement d’investir dans des appareils plus économes <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup>.</p>
<h3>Commentaire personnel</h3>
<p>Selon les personnes que l’on lit, le prix assez bas de l’électricité en France est une conséquence du choix nucléaire ; ou une conséquence de la non-prise en compte des effarants coûts de démantèlement. Je ne sais. En tout cas, le nucléaire n’est qu’une des options.</p>
<p>Le solaire, comme toute installation de production d’énergie, ne se rentabilise réellement que dans de grosses installations bien pensées, optimisées : les <a href="http://fr.wikipedia.org/wiki/Centrale_solaire">centrales solaires</a> prennent de la place, utilisent des miroirs, et par exemple des sels fondus pour continuer à produire de nuit. Que ce soit l’État, par ses coups de pouces fiscaux, ou directement EDF, par ses tarifs de rachat, c’est le même contribuable-consommateur qui paie la production ; et au final, c’est une étude bénéfice-coût qui doit décider à partir de quel niveau la production peut être rentable (donc subventionnée) : uniquement les grosses centrales solaires un peu encombrantes ? aussi les panneaux couvrant des hangars entiers ? Pour les installations de particuliers, j’ai des doutes. Et pour les petites installations décrites dans l’article, la sentence est brutale. L’argent ne peut-il justement pas être employé autrement pour un même effet ? Après tout, EDF paye pour des éoliennes de plus en plus géantes, jamais pour une petite éolienne de toit.</p>
<p>Il y a quand même un petit créneau. Lors d’une rénovation ou dans le neuf, l’ajout de panneaux destinés à limiter à couvrir une partie de la consommation pourrait être rentabilisée (prix de gros, main d’œuvre forfaitaire, installation de toute façon à mettre en place...).</p>
<p>On peut aussi rêver à des panneaux bien moins chers et couvrant de grandes surfaces, sinon carrément à de la peinture solaire couvrant toute la maison et assurant plusieurs kW, que la batterie à hydrogène dans la cave stockerait : c’est encore de la science-fiction, mais les évolutions des prix peuvent réserver de belles surprises dans les décennies à venir. Là encore la question se pose : une telle installation, avec ses coûts de maintenance et d’installation, ne serait-elle pas plus efficace mutualisée au niveau d’un quartier par exemple ?</p>
<p>Il reste cependant un intérêt au concept des petits panneaux : la pédagogie. D’abord comme démonstration que l’autonomie est en partie possible ; ensuite comme leçon sur la notion de rentabilité et d’arbitrage dans l’affectation des ressources.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] Au passage : <em>Que Choisir</em> vient de rappeler qu’en tout cas, ces installations ne devraient pas coûter plus de 12 000 € pour une maison, si on veut avoir une chance de rentabiliser la chose en mois de dix-quinze ans... dans le sud de la France ! ''</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Non, je n’ai pas fouillé bien loin non plus.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Un panneau de 195 W coûtant 500 € délivre moins de 200 kWh dans l’année à Hanovre, un peu plus à Fribourg, en face de l’Alsace. Le kWH est autour de 13 centimes TTC en France, 26 en Allemagne.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Vu ce que je vois en franchissant le Rhin, les installations sont beaucoup plus nombreuses que chez nous, et couvrent souvent </em>tout<em> le toit, bien loin des trois panneaux ici et là par chez nous.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>Et, ajouterais-je, uniquement à l’occasion de leur renouvellement : que ce soit un PC ou un frigo, la réduction de consommation électrique ne justifient à elle seule ni économiquement ni écologiquement un remplacement précoce.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Des-petits-panneaux-solaires#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/750« Pour la Science » de mai 2013 : complexité, créativité, médecine chinoiseurn:md5:f4b91406c03d0193a3b6bb4bc31775f32013-05-22T00:00:00+02:002016-07-06T12:00:26+02:00ChristopheScience et conscienceAntiquitéauto-organisationchaosChinecommunicationcomplexitéconquête de l’inutilecosmologiedémographiedéshumanisationenfantsentropieintelligencemathématiquesmèmemémoireoptimisationorganisationparadoxeperspectivesantésociétés primitivesécologieévolution <p>Notes rapides sur le dernier numéro avant qu’il ne soit chassé des kiosques, <em>et avis personnels en italique</em> :
<img src="http://www.pourlascience.fr/e_img/boutique/pls_427_1ere_de_couv_w1.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /></p>
<h3>Créativité</h3>
<p>La créativité humaine, la capacité à innover de façon continue, ne remonte pas à si loin, mais la date fait débat. Les fossiles africains montrent des évolutions culturelles, puis des régressions apparentes pendant des dizaines de milliers d’années.</p>
<p>La taille du cerveau n’est pas un critère suffisant pour être créatif, il faut savoir utiliser ces neurones et les interconnecter. Les individus actuels les plus créatifs sont de grands rêveurs, dont l’esprit vagabonde pour faire des analogies inédites avant de revenir au mode analytique habituel. Les neurones plus nombreux rendraient les souvenirs plus précis et pérennes, permettant leur connexion. Un exemple : l’hominidé qui se blesse à un buisson épineux ferait le rapport entre sa chasse et cet épisode <em>via</em> la chair blessée, et aurait ainsi l’idée de l’arme pointue.</p>
<p>Mais l’origine de la créativité humaine pourrait aussi être l’explosion des interactions avec la progression démographique d’il y a 100 000 ans. Une expérience montre que des enfants de maternelle écrasent les singes à des exercices de casse-tête simplement parce qu’ils communiquent, partagent et s’encouragent.</p>
<p>Ah oui : c’est le repos du cerveau, libre de divaguer, qui engendre la créativité. (<em>Pas le stress hystérique de la vie moderne...</em>)</p>
<h3>La médecine traditionnelle chinoise</h3>
<p>Les traités médicaux chinois remontent bien avant Jésus-Christ, mais les médecins ont traîné leurs racines magiques et religieuses jusqu’au XXè siècle, et les théories étaient aussi fumeuses que celles des humeurs en Europe. La pharmacopée en constitue la colonne vertébrale.</p>
<p>Les gouvernements du début du XXè siècle, puis les communistes, affligés par l’état de leur médecine, admirant les succès techniques occidentaux, traumatisés par les succès japonais, imitateurs de l’Occident, décident de revoir toute cette médecine selon les normes scientifiques. La « médecine traditionnelle chinoise », pratique rationalisée d’inspiration traditionnelle, n’a donc que cinquante ans !</p>
<p>Au moment où la Chine s’ouvre à nouveau, certains Occidentaux découvrent cette médecine, et y voient le contrepoint du poids de la physique et de la chimie trop présents à l’Ouest. Ajoutons les problèmes de traduction, culturels, quelques experts ignares, la fascination pour du savoir millénaire, et un aveuglement parfois délibéré par rejet de la science : la mode prend.</p>
<p>Le gouvernement chinois est déchiré : d’un côté, cette passion occidentale pour sa médecine offre des perspectives d’exportation alléchante ; d’un autre côté il garde pour but d’extirper les superstitions et de rationaliser cette médecine, à l’occidentale. Si les anciens concepts fumeux reviennent en Chine même <em>via</em> l’Occident, on retourne à l’obscurantisme scientifique qui a mené la Chine à sa perte les siècles précédents. Les deux raisons poussent les Chinois à vouloir garder le contrôle sur l’enseignement de leur médecine, et n’en facilitent pas l’évaluation raisonnable.</p>
<h3>Complexités</h3>
<p><em>Bon cru pour l’article de Delahaye. Pour certains, ce seront des évidences réchauffées, mais j’ai une question existentielle de moins dans ma tête.</em></p>
<p>D’un côté il y avait la <a href="https://fr.wikipedia.org/wiki/Complexit%C3%A9_de_Kolmogorov">complexité de Kolmogorv</a>, où un objet pouvait être résumé au plus petit programme capable de le générer. En première approche, un <a href="https://fr.wikipedia.org/wiki/ZIP_%28format_de_fichier%29">zip</a> d’un fichier estime cette complexité, elle est minimale dans les objets répétitifs, faible dans une fractale (le programme est simple), et maximale dans un nombre aléatoire, un circuit imprimé...</p>
<p>La <a href="https://fr.wikipedia.org/wiki/Profondeur_logique_de_Bennett">profondeur logique de Bennett</a> complète cette approche en tenant compte du temps de calcul nécessaire à ce programme : les motifs répétitifs restent simples ; les suites aléatoires, programmées avec une simple recopie de chiffres, redeviennent simples ; par contre la fractale ou le circuit imprimé exigent de longs calculs pour être reconstitués.</p>
<p>Suit un parallèle avec les arbres biologiques de créatures vivantes (indéniablement complexes), qui suivent un très long temps d’évolution/calcul. En conclusion : « On peut même rêver d'aboutir à une compréhension théorique profonde du développement de la complexité de l’univers et du vivant, qui rendrait définitivement caduques les élucubrations des créationnistes de l’<em>Intelligent Design</em>. » (<em>Personnellement, je doute que des équations mathématiques les convainquent...</em>)</p>
<h3>Divers</h3>
<ul>
<li><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Latimeria_Chalumnae_-_Coelacanth_-_NHMW.jpg/320px-Latimeria_Chalumnae_-_Coelacanth_-_NHMW.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" />Le <a href="https://fr.wikipedia.org/wiki/C%C5%93lacanthe">cœlocanthe</a>, ce poisson si proche des ancêtres des tétrapodes, redécouvert au XXè siècle alors qu’on le pensait disparu avec les dinosaures, ne survit pas en captivité. Des plongeurs sont allés le voir dans son milieu (<em>chapeau pour les heures de paliers de décompression à subir</em>) : c’est une bestiole placide, au métabolisme très lent, et curieuse.</li>
</ul>
<ul>
<li>Pas compris grand-chose aux résultats de la <a href="http://public.planck.fr/">mission Planck</a>, sinon que le satellite a réussi l’exploit de mesurer une température proche du zéro absolu dans les profondeurs les plus lointaines de l’univers, avec un cent-millième de degré de précision. Les résultats vont servir à invalider certaines théories de physique très fondamentale.</li>
</ul>
<ul>
<li>On aurait trouvé un fossile de Néandertalien métis : ADN mitochondrial néandertalien, menton d’homme moderne !</li>
</ul>
<ul>
<li>La physique quantique en une minute, <a href="https://www.youtube.com/user/minutephysics" hreflang="en">c’est possible</a> ! <br /><em>Sympa, mais franchement, pas beaucoup d’infos de plus que dans une page écrite. Et à un débit qui ne rend pas forcément facile la mémorisation pour qui tout cela n’est pas déjà une évidence. Enfin, si ça peut aider certains...</em></li>
</ul>
<ul>
<li>On sait mettre au point du béton flexible : capital pour les zones sismiques !</li>
</ul>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-mai-2013#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/746Canard PC Hardware n°16 & fourberies du marketingurn:md5:5744696d8530f0f3bcdd6029100174b12013-04-28T12:55:00+02:002016-06-02T12:25:38+02:00ChristopheGuerre au marketingabominationanticonsumérismeargentbon sensbullefoutage de gueulehumourincohérenceinformatiquelivres lusmanipulationMP3mytheoh le beau cas !optimisationparanoïaperfectionnismepouvoir d’acheterpsychologiesciencespéculationsécuritéthéorieéconomie <p>C’est la première fois que j’achète ce magazine, et pourtant je ne suis pas dans la cible <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Canard-PC-Hardware-16#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>. Par contre je les avais découvert à propos d’un dossier sur les ondes radio qu’ils avaient mis en ligne <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Canard-PC-Hardware-16#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>. J’avais apprécié le ton badin bien que sérieux.</p>
<p>J’ai donc jeté un œil au <a href="http://www.canardpc.com/news-52991-cpc_hardware_n<strong>16_est_sorti</strong>.html">sommaire du n°16</a> : alléchant. Entre quelques benchmarks de CPU ou de carte graphique pas inintéressants pour conserver une petite culture de ce qui se fait en ce moment, il y a deux perles :</p>
<h3>Les câbles pour audiophiles ont-ils un intérêt ?</h3>
<p>La réponse est : en gros, non.</p>
<p>Le milieu de l’audio haut de gamme doit servir de champ d’étude des consommateurs argentés prêts à dépenser pour du subjectif. Attention, on ne parle pas d’améliorations incrémentales valant l’investissement pour certaines oreilles éduquées, mais de vent, de pipeau complet.</p>
<p>La technologie des amplis, des enceintes... ayant atteint la quasi perfection, il ne restait donc que les câbles comme composants dont on pouvait tenter de gonfler la marge. Le summum : des câbles optiques plaqué or, des câbles de raccordement électrique à 1000 €, des protections contre les parasites sur des câbles numériques. Quand les arguments de vente ne s’avèrent pas totalement farfelus (et dignes d’un prix Nobel en cas de démonstration rigoureuse), l’effet obtenu est ridicule, surtout comparé à l’effet placebo.</p>
<p>Le test ultime, en double aveugle, ils l’ont fait : les audiophiles concernés, sur leur propre chaîne, ne voyaient pas la différence entre deux câbles basique et ruineux. Ce n’est qu’un début, ils cherchent d’autres cobayes. (<strong>2016</strong> : Hélas j’attends toujours.)</p>
<p>D’autres arnaques plus ou moins évidentes suivent : radiateurs de barrettes mémoire inutiles ; mémoire cache inutilement gonflée sur des disques durs ; « certifications militaires » portant en fait sur la <em>méthode</em> de test d’un composant et pas le résultat ; cartes graphiques identiques et rebadgées...</p>
<h3>Les inondations thaïlandaises et les disques durs</h3>
<p>Depuis un an et demi le prix des disques durs a explosé, officiellement à cause des inondations d’usine en Thaïlande. Bizarrement, en plein milieu de la crise, le chiffre d’affaire des deux plus gros fabricants (Western Digital et Seagate) n’a guère accusé le coup. Puis il a presque doublé pendant les trimestres qui ont suivi, et n’est pas retombé depuis. Les bénéfices, eux, ont explosé en 2012. Le tout dans un contexte normalement défavorable (baisse mondiale des ventes de PC, montée des SSDs...).</p>
<p>Bref, les inondations ont bon dos, l’occasion a été trop belle aux fabricants de se refaire leur marge. Comme ce marché est devenu un duopole, il
n’y a plus grand chose à espérer de la loi du marché dans l’immédiat...</p>
<h3>Puces RFID & NFC</h3>
<p>Le NFC, c’est le dernier truc à la mode dans les téléphones, l’équivalent des puces RFID, lisibles à distance. J’avais déjà un mauvais <em>a priori</em> sur tout ce qui est lecture sans contact, puisque cela peut se faire potentiellement sans l’accord du propriétaire de la carte. Surtout pour tout ce qui est carte bancaire.</p>
<p>Moralité : ça n’a pas manqué, il suffit manifestement de quelques connaissances et d’un peu de matos pour récupérer en trois quarts d’heure dans un métro bondé les infos sur sept cartes bancaires et deux passeports. Consternant.</p>
<p>Bref, sans doute un magazine de plus à suivre... (<strong>2016</strong> : Et que je lis effectivement religieusement tous les trimestres.)</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Canard-PC-Hardware-16#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Je ne joue qu’à des jeux remontant au XXè siècle et j’ai essentiellement un Mac, des PCs sous Linux dont le plus jeune a plus d’une demi-décennie au compteur, ou des petits bouts d’électronique qui n’ont pas atteint le stade du double cœur.</em> </p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Canard-PC-Hardware-16#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>En fait <a href="http://www.canardpc.com/pdf/CPCHW13.pdf">tout le numéro est disponible en PDF</a>. À propos de ce dossier sur les ondes : il me semblait bien fait, avec une tentative de chercher les intérêts financiers dans les deux camps, et d’en revenir aux fondamentaux scientifiques, notamment à propos des énergies impliquées. Pour le côté rationnel, voir <a href="http://www.skepdic.com/electrosensitives.html">Skeptic</a> : en double aveugle, on n’a jamais rien trouvé de probant. Voir aussi <a href="https://electroallergique.wordpress.com/2013/02/20/canard-pc-hardware-n13">l’avis d’une électrosensible qui a lu le dossier</a>, qui pointe surtout l’absence de certains conflits d’intérêt. Difficile de se faire des avis objectifs de nos jours sur des sujets que l’on n’a pas creusé soi-même et où tous les acteurs sont susceptibles d’avoir des intérêts financiers et de faire de la comm’ ou d’être irrationnels...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Canard-PC-Hardware-16#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/741“The Data Warehouse Lifecycle Toolkit” (Second Edition) de Ralph Kimball & courn:md5:16d2a3afeb3413329a843cf6ddf2758f2012-09-04T14:33:00+02:002016-02-25T13:45:14+01:00ChristopheInformatique : l’art du développementbase de donnéesbon sensBusiness ObjectscommunicationcomplexitécourageculturedéveloppementERPexpertiseinformatiquelivres lusoptimisationorganisationperfectionnismeprise de têteréalitéSAPSQLSSIIthéorieténacitévaleuréconomie de l’attentionémerveillement <p><img src="http://ecx.images-amazon.com/images/I/515aQr3H7lL._SL160_OU01_SL90_.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /></p>
<p>Ouch, ce pavé m’a pris six mois à lire, par parties, et il a dû partager ma table de chevet avec d’autres. Dur de s’y mettre (hé, c’est la théorie de mon boulot !), mais une fois ouvert dur de le lâcher (hé, c’est ma vie ! (enfin, ce que devrait être ma vie dans un monde où on aurait le temps de faire correctement son taf <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>)).</p>
<p>Si vous ne savez pas, et ne voulez pas savoir, ce qu’est un <em>datawarehouse</em> (qui dit <em><a href="https://fr.wikipedia.org/wiki/Entrep%C3%B4t_de_donn%C3%A9es">entrepôt de données</a></em> ?), vous pouvez fermer cette page et retourner sur Facebook. En gros, un système décisionnel rassemble, nettoie, coordonne, croise, indexe... dans une même base de données tous les « faits » issus de plusieurs systèmes de production opérationnels (« sources » : CRM, ERP, systèmes de production/logistique/vente/facturation/service après-vente, ou financiers/comptables/RH/marketing..., et la multiplicité des fichiers Excel qui traînent partout), afin de permettre une exploitation homogène, aisée, indépendamment des outils sources, intégrant toutes les règles métier et tous les indicateurs que l’utilisateur désire <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.</p>
<p>Kimball est LA référence du domaine. Franchement, ça se sent dans ce livre bourré de conseils issus de la vie réelle, issus parfois de la politique interne d’entreprise (règles majeures : se trouver un sponsor de poids capable d’imposer aux autres de bosser pour le projet <em>datawarehouse</em> que tout le monde attend sans vouloir lui consacrer une seconde, et qui est transverse, donc <em>a priori</em> l’affaire de personne ; éviter d’avoir des silos séparés par service qui seraient redondants et incohérents ; se méfier de toutes les règles non-écrites et variables d’une personne à l’autre ; chercher les économies et gains auxquels le <em>datawarehouse</em> a participé pour en justifier coût et maintenance).</p>
<p>Bref, tout sauf de la théorie déconnectée. Les performances de l’outil sont un souci constant (comment faire les jointures ?). Les conseils en planning sont de prévoir large <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>, et le lecteur est prévenu qu’en soulevant le capot des bases de données source, il aura forcément des surprises <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup>.</p>
<p>Chaque étape est décrite. En vrac et en en oubliant parce que je n’ai pas envie de relire le sommaire :</p>
<ul>
<li>rassemblement des spécifications (<strong><em>requirements</em></strong>), en se basant sur les <em>process</em> genre vente ou production, et non les services cible (surtout pas de <em>datamarts</em> locaux) ; spécs obtenus des gens du front qu’on cuisinera sur leur vie et attentes ; et pas en leur demandant de fournir les tableaux déjà existants à re-créer, mais quels sont leurs objectifs et « ce qui les empêche de dormir » ;</li>
<li>conception du « <strong>bus d’entreprise</strong> » : les dimensions bien documentées, harmonisées, nettoyées, « conformes » ;</li>
<li>choix des <strong>outils</strong> (longue liste de fonctionnalités dont je ne sais si un produit existe qui les a toutes <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup>) ;</li>
<li><strong>modélisation</strong> : dimensions à évolution lentes ou pas ; types de tables de fait (là ça m’a éclairci les idées) ;</li>
<li>étapes de l’ETL : notamment en discernant premier chargement et chargement par étape quotidienne par la suite quitte à dupliquer <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-6" id="rev-wiki-footnote-6">6</a>]</sup> ;</li>
<li><strong>nettoyage</strong> des données : typiquement la partie sous-estimée, avec des données qu’on croyait là qui n’y sont, ou pas à la bonne granularité, pas formatées clairement ; bref un nid à surprises <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-7" id="rev-wiki-footnote-7">7</a>]</sup> ;</li>
<li><strong>chargement par <a href="https://fr.wikipedia.org/wiki/Extract_Transform_Load">ETL</a> <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-8" id="rev-wiki-footnote-8">8</a>]</sup></strong> : c’est le plus technique, le plus ingrat, le moins visible ; le challenge réside dans la capacité à charger le <em>datawarehouse</em> dans un temps raisonnable (moins d’une nuit pour les données de la journée écoulée, le temps réel étant une option ruineuse à éviter), en intégrant tout le nettoyage, les calculs, les agrégats, etc. ;</li>
<li><strong>restitutions</strong>, en sachant que 80% des utilisateurs seront « presse-boutons » <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-9" id="rev-wiki-footnote-9">9</a>]</sup> ;</li>
<li><strong>maintenance</strong> : l’équipe ne doit pas être dissoute ou significativement réduite après la mise en production car un <em>datawarehouse</em> n’est jamais fini — à moins que personne ne l’utilise, car justement il doit faire naître des questions qu’on ne posait pas plus tôt <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-10" id="rev-wiki-footnote-10">10</a>]</sup>.</li>
</ul>
<p>Pour chaque étape, il est fourni une liste des livrables.</p>
<p>Dans le décisionnel, j’ai jusque là appris sur le tas en allant direct au front, en maintenant des choses écrites par d’autres, suivi les méthodes de gourous locaux, et pas manipulé de vraiment grosse volumétrie. D’autres collègues avaient d’autres techniques, et je me demandais s’il y avait <em>la</em> bonne méthode, deux méthodes pour deux cas différents, ou juste deux styles différents.</p>
<p>Exemple typique : pour les tables, clé fonctionnelle ou clé synthétique ? Pour les bases opérationnelles, <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/05/28/403-cle-primaire-de-substitution-ou-cle-naturelle">y a pas à se poser de question</a>. Pour une base décisionnelle, dénormalisée et alimentée par ETL, c’est plus discutable. Maintenant j’ai vu la lumière : si on cause de perfs on n’échappe pas aux synthétiques, mais pour de la volumétrie réduite, avec les bases de données actuelles, on peut (c’est pas Kimball qui le dit mais moi...) s’épargner cette complexité. Il est possible que la décision soit influencée par l’ETL <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-11" id="rev-wiki-footnote-11">11</a>]</sup>, ensembliste (<a href="http://blog.developpez.com/jmalkovich/p8899/etl/odi-sunopsis/retour-d-experience-sur-sunopsis-odi/">ODI/Sunopsis</a>, mon préféré) ou de flux (cette m... de BODI <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-12" id="rev-wiki-footnote-12">12</a>]</sup>, Informatica...).</p>
<p>Autre grand moment de modélisation : je floconne, ou je floconne pas <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-13" id="rev-wiki-footnote-13">13</a>]</sup> ? Kimball et son équipe sont des adversaires déclarés de la normalisation dans le <em>datawarehouse</em> (l’étoile, rien que l’étoile, ça allège les jointures), et plus le temps passe, plus j’évolue comme ça aussi. Après, faut voir si les grains des tables collent.</p>
<p>Justement, j’ai été conforté par ce que je pensais sur les grains des tables de faits : bien le fixer dès le départ est cardinal et la première chose à faire. Combien de fois me suis-je fait avoir parce que la clé primaire réelle (sous forme d’une composition de clés étrangères dans ce cas) était mal posée, ou était plus là pour le principe qu’autre chose (rassemblement de <em>toutes</em> les clés étrangères de la table !). Et je ne parle pas de contraintes entre faits et dimension totalement absentes. Toutes erreurs qui me coûtent cher en temps de débogage quand j’interviens au niveau de la restitution (univers et rapports Business Objects).</p>
<h3>Bémols</h3>
<ul>
<li>C’est en <strong>anglais</strong>. Dans le métier on n’y coupe pas. On est loin de Shakespeare, c’est très clair et lisible, et il y a quelques touches d’humour par ci-par là.</li>
</ul>
<ul>
<li>Très peu d’exemples concrets (par rapport à la masse d’informations) : dans pas mal de cas, il faudra se raccrocher à sa propre expérience. Je pense à ceux qui ne sont jamais confrontés aux problèmes d’historisation et des dimensions à évolution lente de type 2 et qui ne voient pas forcément de quoi on cause. Bon, cela aurait rajouté pas mal de pages aux plus de 600 (déjà bien denses) mais tout de même.</li>
</ul>
<ul>
<li>La modélisation n’est qu’effleurée, c’est un bon début, mais il va falloir que je continue à creuser le sujet.</li>
</ul>
<ul>
<li>Quant aux comparatifs entre produits sur le marché, il n’y a même pas de tentative. C’est tout juste si le nom d’Excel est glissé furtivement dans un coin, c’est dire. Certes, le marché est pléthorique et évolue vite. J’ai ri jaune en voyant le nombre de fonctionnalités désirables que ne possède absolument pas celui sur lequel je galère la journée. et ce que je vois de la concurrence ne me pousse pas à vouloir m’y jeter, hélas <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#wiki-footnote-14" id="rev-wiki-footnote-14">14</a>]</sup>.</li>
</ul>
<h3>Moralité</h3>
<p>Ce livre n’est pas pour les débutants dans le décisionnel. Ceux-là auront mieux fait de digérer toute la littérature gratuite et synthétique trouvable en ligne et de se lancer dans de premiers projets d’abord.</p>
<p>Pour les expérimentés, lecture obligatoire.</p>
<h3>Autres avis</h3>
<p>Voir les <a href="http://www.amazon.com/The-Data-Warehouse-Lifecycle-Toolkit/product-reviews/0470149779/ref=lmf_3_rsrsrs0_cm_cr_acr_txt?ie=UTF8&showViewpoints=1" hreflang="en">avis sur Amazon.com</a>, entre autres. Le meilleur comme le pire sont vrais.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Et où Business Objects serait assez stable pour ne pas exploser tous les plannings de 50%.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Plus exactement : ce que l’on a pu faire avec les données réellement disponibles en essayant de se rapprocher de ce qu’on a compris de ce qu’il a cru vouloir.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Ce qui commercialement passe très mal.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Mon expérience confirme.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>Et en tout cas pas Business Objects.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-6" id="wiki-footnote-6">6</a>] <em>J’essaierais même pas de suggérer ça à ma hiérarchie ; faire du boulot en double ça boufferait la marge. Et puis franchement, je ne joue pas avec la volumétrie d’une banque.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-7" id="wiki-footnote-7">7</a>] <em>En fait, personne ne sait vraiment ce qu’il y a dans une base de données avant d’y avoir vraiment fouillé. La première fois qu’un 30 février m’a sauté à la gorge, ça a fait tout drôle.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-8" id="wiki-footnote-8">8</a>] <em>L’utilité d’un outil ETL dédié, souvent ruineux et toujours délicat, n’est pas immédiate pour qui maîtrise bien le SQL et se dit qu’il s’agit juste de charger des tables. Moi aussi il a fallu me convaincre. Mais quand on doit jongler avec dix bases de trois types différents, un ERP, intégrer plein de fichiers Excel, XML, et suivre à la trace les impacts des modifications des différents schémas, l’outil finalement se révèle ultime. Par contre il faut bien le choisir.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-9" id="wiki-footnote-9">9</a>] <em>C‘est vrai, mais d’un autre côté pas mal d’endroits en déduisent que les outils de développement n’ont pas à quitter les mains d’informaticiens ; donc ils ne sont plus faits que pour les informaticiens ; et les </em>power users<em> hors de l’informatique se retrouvent fort démunis et improductifs. Et Business Objects, pourtant ciblant le créneau des utilisateurs capables de s’investir raisonnablement pour faire leurs rapports, devient si lourdingue et complexe qu’une partie doit baisser les bras, quand ce ne sont pas les professionnels eux-mêmes.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-10" id="wiki-footnote-10">10</a>] <em>Sur ce point, grosse motivation pour l’équipe de SSII qui voit le « rebond » et grosse surprise pour le client qui voit les demandes de modifications et d’améliorations affluer quand le budget est déjà épuisé. J’ai aussi vu le contraire, l’infocentre pas demandé, construit dans le vide à partir de trois données incohérentes, inutile et pas utilisé. Ou encore celui redondant avec les outils déjà en place et au point.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-11" id="wiki-footnote-11">11</a>] <em>L’ETL, on est censé le choisir en fonction du projet et de critères techniques. Arf, je ne l’ai jamais vu choisi qu’en fonction du partenariat avec l’éditeur, de la tarification, ou du fait qu’il soit gratuit.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-12" id="wiki-footnote-12">12</a>] <em>Dépare pas chez SAP, cette bouse. Peu pratiqué, mais assez pour savoir que je ne l’aime pas. Même pas fichu de connaître le Ctrl-Z...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-13" id="wiki-footnote-13">13</a>] <em>Floconner, c’est normaliser les dimensions, quand le modèle en étoile voudrait des tables de faits liées directement aux dimensions, sans aller plus loin. Plus les tables sont grosses, plus il est coûteux en jointures de floconner.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#rev-wiki-footnote-14" id="wiki-footnote-14">14</a>] <em>À part un produit d’un éditeur qui n’est pas dans nos partenaires, donc on fait pas.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Data-Warehouse-Lifecycle-Toolkit-de-Ralph-Kimball-co#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/708« Pour la Science » d’avril 2012 : Objectif Mars ; juger au lieu de voter ; sécurité...urn:md5:bc6b3d2c501d2c4dd8d9e33acbaf32832012-04-20T22:33:00+02:002015-12-04T13:28:34+01:00ChristopheScience et conscienceabominationadministrationAfriqueAlsacebon senschiffrescolonisationconquête de l’inutileconquête spatialediscriminationemmerdeursenfantshard sciencehistoireMarsoptimisationoptimismeorganisationprise de têtepsychologiesantésciencescience-fictionsociétés primitivessécuritétempsécologieéconomieéconomies d’énergieénergieévolution <p><img src="http://www.pourlascience.fr/e_img/boutique/pls_414_couv_175.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /> Terminerai-je cette chronique avant la fin du mois ? Vous le savez déjà, le suspens n’existe que pour moi au moment où je rédige ces lignes.</p>
<p>Résumé : un bon cru.</p>
<p><em>Comme d’habitude, les italiques sont des commentaires personnels ajoutés à un résumé sélectif qui tente la fidélité aux articles originaux.</em></p>
<h3>Le bloc-note de Didier Nordon</h3>
<p>Les liseuses électroniques abolissent enfin une discrimination : les livres pourront enfin avoir un nombre de pages <em>impair</em>.</p>
<h3>Ne votez pas, jugez !</h3>
<p>C’est de saison : l’article reprend une proposition de système de scrutin par jugement simultané de tous les candidats, qui n’a pas les inconvénients du système actuel ni les inconvénients du système de Condorcet, par exemple.</p>
<p>J’en ferai un billet séparé.</p>
<h3>Science, énergie & élections</h3>
<p>Un article de Benjamin Dessus de l’association <em><a href="http://www.global-chance.org/index.php">Global Chance</a></em> s’insurge contre la manière dont l’énergie nucléaire est présentée dans la campagne :</p>
<ul>
<li>tout d’abord l’électricité ne représente qu’une petite partie de l’énergie dépensée en France ;</li>
<li>c’est d’abord la réduction de la demande qui permettra de ne pas émettre trop de CO₂ : les économies d’électricité potentielles sont énormes : isolation, eau chaude solaire, appareils sobres...</li>
</ul>
<p>Le nucléaire a un coût difficile à estimer mais la Cour des Comptes fournit des chiffres.</p>
<p>En résumé, sortir du nucléaire vers 2031 est possible, avec un kilowattheure 20% plus cher mais une facture 25% moins élevée !</p>
<h3>Science & politiques de sécurité <em>(& donc élections)</em></h3>
<p>Le sociologue <a href="http://fr.wikipedia.org/wiki/Sebastian_Roché_(sociologue)">Sebastian Roché</a> nous donne un résumé de nombreuses études sur l’efficacité des diverses politiques de sécurité appliquées un peu partout en Occident :</p>
<p>L’<strong>alourdissement des peines est contre-productif</strong>, et cela inclut le jugement de mineurs en tant que majeurs : une longue détention rend plus compliquée la réinsertion.</p>
<p>La « <strong>police communautaire</strong> » (chez nous : la défunte « police de proximité ») vise à améliorer les liens avec la population, s’impliquer dans la prévention… mais aussi à comprendre les délits et à les prévenir : le résultat est surtout visible sur les incivilités et désordres, mais aussi (modestement) sur la délinquance de rue (vols…) ; bref c’est une piste prometteuse.</p>
<p>La « <strong>police analytique</strong> » est une méthode : analyser comment des méfaits se déroulent, imaginer et diffuser des contre-mesures parfois simples ; apparemment efficace, elle n’est utilisée en France qu’au coup par coup. L’auteur regrette que la France préfère la « gestion verticale », centrée sur l’après-délit, les chiffres de résolution… au lieu de la police analyitique notamment.<br />(<em>Prévenir plutôt que guérir, ça ne date pourtant pas d’hier…</em>)</p>
<p>La <strong>vidéosurveillance</strong> a un intérêt réel dans les lieux clos, typiquement les parkings, mais pas ailleurs, et n’est en rien la solution miracle prônée par certains.<br />(<em>Surtout par les vendeurs de caméras je pense, et ceux qui veulent économiser des postes de policiers. Je n’ai toujours pas compris comment une caméra pouvait protéger d’un délit.</em>)</p>
<p>Il existe des <strong>méthodes « cognitivo-comportementales »</strong> visent à corriger les biais cognitifs des délinquants (prendre une simple remarque comme une provocation par exemple, ou rechercher uniquement les satisfactions immédiates, ou se voir tout le temps comme une victime). Les résultats sont spectaculaires (-30 à -50% de récidive).<br />(<em>Oui mais ces psys qui causent avec des jeunes, ça doit coûter plus d’argent sur le court terme que les laisser croupir en prison…</em>)</p>
<h3>Science & politique de santé <em>(& élections)</em></h3>
<p>Les deux auteurs sont des médecins. En résumé, leur étude clame que jusqu’ici seule la régulation par des mécanismes de marché a été mise en place en France, sans succès : réduction du nombre de médecins, tarification à l’acte (inadaptée pour les pathologies difficiles), développement des cliniques privées. De plus les missions de service public comme la prévention, les urgences, la formation des internes... sont limitées.</p>
<p>Les auteurs réclament le retour au remboursement à 80% et s’opposent à une franchise modulée selon les revenus : ce serait encore reporter le problème sur les mutuelles et réserver la solidarité à 100% aux plus pauvres, et « une solidarité pour les pauvres se transforme très vite en solidarité au rabais ! ». Ils demandent des règles draconiennes pour autoriser le remboursement d’un médicament, qui doit être efficace (donc : 80% de remboursement, ou 0), et de favoriser les génériques (pas si utilisés que ça en France).</p>
<p>Ou encore : une taxe sur la publicité de médicaments vers le corps médical doit financer la formation continue des médecins. Il y aurait 25% d’actes injustifiés (<em>25 % !!!</em>) : les économies potentielles et l’enjeu éthique sont flagrants.</p>
<p>Pour le financement, ils en appellent à Philippe Séguin, qui voulait soumettre les stocks-options aux cotisations sociales (3 milliards) ; et à la hausse automatique des recettes pour combler tout déficit et ne pas reporter la dette sur les générations futures (<em>avec intérêts</em>).</p>
<p>Au final… ils proposent le système en place en Alsace-Moselle : plus cher (1,5% du salaire contre 0,75%), mais remboursant mieux… et bénéficiaire !</p>
<p>Pour finir : le système est encore à réformer de fond en comble. Prise en compte de trois types de médecines différents (maladies bénignes, graves, chroniques), coordination, réforme des modes de rémunération des généralistes, centres de santé, formation des médecins (en communication, psychologie, pédagogie ; stages…), rénovation du secteur psychiatrique, accent sur la prévention et pas que sur les soins, « démocratie sanitaire » et contrôle, etc.</p>
<p>« Vaste programme… »</p>
<h3>En route vers Mars</h3>
<p>Les deux auteurs travaillent pour la NASA et proposent un programme spatial avant tout flexible, capable de s’adapter aux évolutions technologies et budgétaires. En fait, l’argent est la première contrainte pour la NASA avant la technique ou la balistique spatiale...</p>
<p>Au lieu de foncer directement sur Mars, la technique des petits pas viserait plutôt à explorer des astéroïdes de plus en plus gros et de plus en plus éloignés, où se poser est facile. Il y en a de nombreux intéressants selon les fenêtres de tir budgétaires. Une fois les lunes de Mars atteintes et explorées, on pourrait envisager de se poser sur la planète, ce qui est l’opération la plus complexe.</p>
<p>Les vaisseaux à propulsion ionique, lente mais régulière, sont peu coûteux (<em>critère finalement majeur</em>). Pour éviter que les astronautes restent trop longtemps dans l’espace, il suffirait de prépositionner sur le chemin des fusées classiques arrivées, elles aussi, par propulsion ionique : résultat environ -50% en masse au décollage, et autant en coût.</p>
<p>De même, le vaisseau spatial (réutilisable) serait monté en orbite terrestre haute par propulsion ionique (lentement), les astronautes le rejoignant avec une fusée classique au dernier moment.</p>
<p>Un encart du CNES parle des réacteurs nucléaires, thermiques ou électriques, comme une option pour réduire les temps de trajet.</p>
<h3>Le retour de la punaise de lit</h3>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Bed_bug%2C_Cimex_lectularius.jpg/320px-Bed_bug%2C_Cimex_lectularius.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /> Depuis des millénaires, la punaise de lit se nourrit de sang humain la nuit, et heureusement elle ne transmet pas de maladie. Éradiquée en Occident au XXè siècle, grâce au DDT notamment, elle s’en rit depuis longtemps, et fait un retour en force grâce au chauffage central et aux échanges inter- et intranationaux !</p>
<p>S’en débarrasser est une plaie, entre autre grâce à sa capacité à jeûner des mois et à se disperser. Nettoyage à fond, congélation, chauffage à 50°, insecticides spécifiques et rémanents… les outils sont nombreux mais pas parfaits. De nouvelles armes pourraient se baser sur leur mode de reproduction « traumatique » (le mâle transperce la femelle, et parfois se trompe de cible), que l’on pourrait manipuler à coup de phéromones par exemple. Le temps presse, la résistance aux insecticides se développe...</p>
<h3>Divers</h3>
<ul>
<li>Dans son « Point de vue », <a href="http://www.mnhn.fr/oseb/GOUYON-Pierre-Henri">Pierre-Henri Gouyon</a> nous alerte sur la dernière loi sur <strong>les semences</strong> : en vue de mieux contrôler et tracer les cultures, le ressemage des graines par les agriculteurs est interdit, sauf paiement d’une taxe à l’industriel semencier. Une objection majeure : certes la centralisation et l’industrialisation des semences ont permis de gros gains de productivité, mais cette loi interdit la « sélection participative » entre agriculteurs, misant sur la sélection naturelle. <br /> <br /><em>(Consternant. Le parallèle avec l’informatique ou le domaine des médias est flagrant : quelques groupes veulent totalement dominer un domaine où la coopération dans un léger bazar est à long terme bien plus riche et productive… pour la société, pas les grands groupes.)</em></li>
</ul>
<ul>
<li><strong>Nos souvenirs ne sont pas immuables</strong> : ils évoluent avec le temps et les répétitions. Hors quelques événements frappant précis (au cadre, lui, reconstruit), la plupart des souvenirs se confondent dans un savoir plus général et générique (prendre le train…). Or les souvenirs sont le fondement de l’identité. Comment un petit enfant construit-il son identité avec un système de mémorisation immature ? Comment les pathologies atteignant l’identité (schizophrénie…) atteignent-elles les souvenirs ?</li>
</ul>
<ul>
<li>La <strong>savane centre-africaine</strong> serait l’œuvre de l’homme : 1000 ans <em>avant</em> Jésus-Christ, la migration des Bantous, agriculteurs qui possédaient la technologie du fer, aurait provoqué un défrichement important, l’érosion des sols puis la disparition de pans entiers de la forêt africaine.</li>
</ul>
<ul>
<li>Donner des acides gras (oméga 3) aux femmes enceintes réduirait l’incidence de l’eczéma et des allergies aux œufs après la naissance. <br /><em>(L’impact de notre alimentation sur notre santé me fascinera toujours.)</em></li>
</ul>
<ul>
<li>La rubrique d’histoire des sciences parle de l’abaque de <a href="http://fr.wikipedia.org/wiki/Sylvestre_II">Gilbert d’Aurillac</a> : ce moine astronome et mathématicien, devenu le pape de l’An Mil Sylvestre II, avait tenté d’introduire les chiffres arabes qu’il avait appris en Espagne à l’aide d’une abaque, sans zéro ni numération de position. Son utilisation nous semble assez absconse, mais cela restait un progrès : la division n’était pas possible avec les abaques de l’époque ! On ne sait pourquoi Gilbert n’a pas directement proposé le calcul écrit permis par la numération de position et le zéro (peur d’être accusé de sorcellerie ?). Le système actuel s’est répandu comme une traînée de poudre deux siècles plus tard. <br />(<em>Deux siècles perdus. Sur le sujet, voir mon résumé du pavé de Georges Ifrah </em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/04/30/329-l-histoire-universelle-des-chiffres-de-georges-ifrah-1">L’histoire universelle des chiffres</a>.)</li>
</ul>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-avril-2012#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/684Verbiage de développeururn:md5:32b9eb8654fcb7eacb5a51ed80b249752012-01-29T19:39:00+01:002017-10-12T12:24:12+02:00ChristopheInformatique : l’art du développementabominationanalogieapocalypseautoréférencebon sensbugcataclysmecatastrophechaoscommunicationcomplexitécoup basculturecynismedommagedysfonctionnementdéterminismedéveloppementenseignementexaptationgaspillagehumourMurphymèmeoh le beau cas !optimisationparanoïaperfectionnismeprise de têtesabotagesurréalismeténacitééconomie de l’attentionévolution <p>Je suis tombé <a href="http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html" hreflang="en">là-dessus</a> il y a peu, je m’en vais traduire, trahir, compléter, mettre à ma sauce le meilleur de ce verbiage humoristique de développeur humoristique plein de sagesse, que pour être franc je n’ai pas vu beaucoup en francophonie :</p>
<ul>
<li><strong>Condition Yoda</strong> : condition de la forme <code>if (4 == mavariable)</code> au lieu de l’instinctif <code>if (mavariable == 4)</code>. Utile par exemple en C pour parer à certaines failles de sécurité, ou pour ma part (les quelques heures par décennie où je fais du C) à parer au fait que ce ☁#!☠☢☭⚡<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Verbiage-de-d%C3%A9veloppeur#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> de langage utilise le tout simple symbole <code>=</code> pour l’affectation et surtout l’autorise en plein milieu d’une condition.</li>
</ul>
<ul>
<li><strong>Gestion d’exception à la Pokémon</strong> : elle est du genre :</li>
</ul>
<blockquote><p><code>try<br />{<br /> // fait quelque chose<br />}<br />catch<br />{<br /> // attrape les tous <br />}</code></p></blockquote>
<p>alors qu’un principe de la gestion des erreurs est de ne pas chercher à gérer une exception dont on ne sait pas quoi faire. Si c’est pour loguer et sortir proprement du programme je comprends encore. Le pire consiste à tout mettre sous le tapis, comme l’ont fait certains Indiens vendus par un très grand éditeur là où j’ai presté il y a plus d’un lustre (c’est du PL/SQL) :</p>
<blockquote><p><code>BEGIN<br /> -- fait quelque chose impliquant des INSERT et UPDATE dans les tables<br />EXCEPTION<br /> WHEN OTHERS THEN <br />NULL ; -- ignore tout problème et méprise le concept de transaction<br />END ; </code></p></blockquote>
<ul>
<li><strong>Ne faites jamais confiance à un développeur en costard-cravate</strong> : disons qu’il a le droit de porter cravate le premier jour, le temps de savoir où il tombe, surtout s’il est dans le service, ou sur ordre. Certains diront qu’un vrai développeur n’ira jamais travailler dans une banque, mais il n’y a pas de place chez Google pour tout le monde, et certains préfèrent avoir un salaire pour payer leur famille que de ne vivre qu’en <em>start-ups</em>.</li>
</ul>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Assassin_bug_aug08_02.jpg/320px-Assassin_bug_aug08_02.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li><strong>Les rapports de bugs issus d’utilisateurs non informaticiens</strong> constituent une des plaies du métier. Tout le monde n’a pas compris (même quand on lui explique) que dire « ça ne marche pas » ne constitue en aucune manière une information susceptible de mener à la résolution d’un problème. C’est aussi valable pour une voiture : ce qui ne se constate pas de manière flagrante en quinze secondes d’essai n’est pas un problème facile à trouver. Et encore, tout le monde sait utiliser une voiture de la même manière. Un informaticien non spécialiste d’un domaine ne verra pas que ce taux d’exécution budgétaire de 32% en décembre est farfelu ; dites-lui que ce doit être plus de 90% et il sera déjà mieux armé pour trouver le problème.</li>
</ul>
<ul>
<li><em><strong>Smug report</strong></em> (« bug vantard » ?) : bug soumis par un utilisateur qui croit mieux connaître le système que son concepteur, avec des pistes sur la cause du problème, pistes d’autant plus fausses qu’elles sont affirmatives. J’ajouterai que certains utilisateurs sont champions pour faire un lien entre deux événements sans rapport, du genre d’un plantage d’imprimante qui aurait provoqué une erreur dans le logiciel de planification.</li>
</ul>
<ul>
<li><strong><em>Drug report</em></strong> (« rapport de drogue ») : rapport de bug incompréhensible, apparemment rédigé sous acide.</li>
</ul>
<ul>
<li><strong>Bug de Fermat</strong> : le rapport de bug contient un commentaire indiquant que la solution a été trouvée, en n’indiquant en rien quelle est sa nature. Très fréquent dans les forums internet.</li>
</ul>
<ul>
<li><strong>Contre-bug</strong> : bug présent comme défense contre un bug que l’on vous présente. Utile dans les guéguerres entre équipes ou (pire) entre fournisseurs. <br />« Votre logiciel de compta rame, on pourra pas faire la paye !<br />- Ah désolé ma p’tite dame, c’est un bug connu de votre version de votre base Oracle, rappelez-nous quand vous aurez patché. »</li>
</ul>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Red_bug.svg/200px-Red_bug.svg.png" alt="" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li><strong>Bug flottant</strong> : bug surnageant dans l’outil de suivi, jamais assigné, ou refilé de personne à personne. Il y a un contournement efficace, le correctif est flou, délicat, trop long, fastidieux, sans intérêt, ou touche à trop de domaines différents avec trop de risques d’explosion par la suite… Bref, ce bug a de bonnes chances d’être ignoré, puis explicitement filtré pour ne pas polluer les tableaux des responsables de projets, donc de rester des années dans le logiciel jusqu’à ce que tout le monde considère qu’il s’agit du fonctionnement normal.</li>
</ul>
<ul>
<li><strong>Heisenbug</strong> (mon préféré) : bug qui change quand l’observe.</li>
</ul>
<ul>
<li><strong>Schrödinbug</strong> : comme le <a href="http://www.astronoo.com/articles/chatDeSchrodinger.html">chat de Schrödinger</a>, le bug oscille entre l’existence et la non-existence (le résultat du programme est souvent correct) jusqu’à ce qu’un développeur inconscient soulève le capot et regarde. Le bug devient alors permanent.</li>
</ul>
<ul>
<li><strong>Bug de Higgs</strong> : bug dont l’existence n’est suggérée que par quelques entrées dans les logs et de vagues mentions anecdotiques. Impossible à reproduire sur une machine de dév’ car en fait on ne sait pas trop ce qui se passe. Pour le débuguer il faudra investir dans des systèmes de surveillance très lourds.</li>
</ul>
<ul>
<li><strong>Bug du Loch Ness</strong> : bug qui n'a été rapporté que par une seule personne.</li>
</ul>
<ul>
<li><strong>Hindenbug</strong> : bug d’ampleur catastrophique, du genre qui fait crasher en flamme tout le projet.</li>
</ul>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/8/84/Hindenburg_burning.jpg" alt="" style="display:table; margin:0 auto;" /></p>
<ul>
<li><strong>Bug OVNI</strong> : bug reporté encore et encore par des clients à qui l’ont a pourtant montré qu’il n’existe pas.</li>
</ul>
<ul>
<li><strong>Mandelbug</strong> : bug tellement complexe que son occurrence ne semble pas déterministe, c’est-à-dire chaotique.</li>
</ul>
<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Mandel_zoom_07_satellite.jpg/320px-Mandel_zoom_07_satellite.jpg" alt="" style="display:table; margin:0 auto;" /></p>
<ul>
<li><strong>Bug d’apprenti sorcier</strong> : bug (en général dans un protocole de communication, une boucle…) menant à la génération de nouveaux messages, objets buggés, qui eux-mêmes en génèrent d’autres… menant ainsi soit à l’invasion de l’univers par les bugs, ou plus probablement, les ressources informatiques ou autres étant finies, à l’effondrement du système du bug.</li>
</ul>
<ul>
<li><strong>Bug Excalibur</strong> : le bug que tout le monde a essayé de corriger, en vain jusqu’ici.</li>
</ul>
<ul>
<li><strong>Bug vital</strong> : les utilisateurs considèrent que le bug fait partie du fonctionnement normal du logiciel, voire basent une partie de leur fonctionnement dessus. Ils refuseront que cela change même si on leur montre qu’ils font n’importe quoi ou que le bug est une faille de sécurité béante.</li>
</ul>
<ul>
<li><strong>Fonctionnalité</strong> : <em>It’s not a bug, it’s feature</em>, selon Microsoft, ou plutôt (<a href="http://fr.wiktionary.org/wiki/it’s_not_a_bug,_it’s_a_feature">selon Apple dès 1979</a>) un « bug décrit par le marketing ».</li>
</ul>
<ul>
<li><strong>Refucktoring</strong> : retravailler un code peu maintenable mais fonctionnel pour le massacrer complètement et y introduire plein de bugs. En général le code n’en sortira pas plus maintenable, mais bien plus boursouflé et moins fonctionnel.</li>
</ul>
<p>À propos des différents types de code que l’on peut rencontrer (parce que le code informatique est à peine moins marqué que la littérature par les questions de style) :</p>
<ul>
<li><strong>Code spaghetti</strong> : tellement plein de <code>GOTO</code>s, d’exceptions, de <em>threads</em>… et autres branchements non structurés, que suivre le déroulement de ce code est aussi fastidieux que de démêler un spaghetti dans une assiette pleine.</li>
</ul>
<ul>
<li><strong>Code spaghetti avec des boulettes de viande</strong> : comme précédemment, avec des morceaux de tentative de structuration.</li>
</ul>
<ul>
<li><strong>Code baklava</strong> ou <strong>code lasagne</strong> : du code avec beaucoup (trop) de couches d’abstraction empilées. Je dirais que N développeurs produiront souvent N couches de code.</li>
</ul>
<ul>
<li><strong>Code ravioli</strong> : code objet consistant en un petit nombre d’objets faiblement liés (en soi, une bonne chose).</li>
</ul>
<ul>
<li><strong>Code andouillette</strong> : code qui pue et dont on ne veut pas connaître la composition.</li>
</ul>
<ul>
<li><strong>Château de carte</strong> : touchez une chose, tout s’effondre.</li>
</ul>
<ul>
<li><strong>Hydre</strong> : chaque correction de bug en engendre deux autres.</li>
</ul>
<ul>
<li><strong>Code balafré</strong> : plein de cicatrices à cause de toutes les rustines qu’on y a appliqué.</li>
</ul>
<ul>
<li><strong>Code mort</strong> : toujours là mais commenté, ou (pire) jamais appelé.</li>
</ul>
<ul>
<li><strong>Assurance contre le licenciement</strong> : code tellement obscur et bardé d’historique que la personne chargée de la maintenance a l’assurance de ne jamais être virée. Les effets pervers sont : l’impossibilité de changer de boulot et donc de monter dans la hiérarchie pour la même raison ; et le risque que la mise à la retraite du logiciel implique le licenciement immédiat du mainteneur qui ne servait plus qu’à ça et n’a pas suivi la montée en compétence de ses collègues.</li>
</ul>
<ul>
<li><strong>Ghetto</strong> : partie du logiciel où personne ne va, avec ses lois obscures, et qui doit faire des choses pas catholiques, mais qui ne gêne pas le reste.</li>
</ul>
<ul>
<li><strong>Code copier-coller</strong> : code de débutant qui n’a pas compris le concept de fonction ou de procédure, bref de réutilisation.</li>
</ul>
<ul>
<li><strong>Palimpseste</strong> : comme les parchemins du Moyen Âge, un code avec beaucoup d’historique révèle en creux bien des pans de son histoire, par exemple des tailles maximales de certaines informations ou certaines structures de données liées à des contraintes sur des applications depuis longtemps oubliées.</li>
</ul>
<ul>
<li><strong>Développement défensif</strong> : manière de programmer consistant à considérer que <a href="https://www.coindeweb.net/murphy/">Murphy</a> s’attaquera activement au logiciel, ce qui mène à ne considérer aucune entrée comme sûre, à tout retester, etc. Pas forcément un mal dans certains milieux où la paranoïa est reine : médical, aéronautique...</li>
</ul>
<ul>
<li><strong>Protoduction</strong> : prototype que l’on teste directement en production. Pas forcément un mal, parfois le seul moyen de tester même, quand on en est conscient. Catastrophe annoncée si les <em>managers</em> ont imposé qu’une maquette soit promue en prod’ sans même que le développeur en soit informé (évidemment, la responsabilité de tout problème lui retombera dessus).</li>
</ul>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Verbiage-de-d%C3%A9veloppeur#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Vous saviez qu’il y avait tous ces symboles dans Unicode ? Je viens de découvrir (<a href="http://fr.wikipedia.org/wiki/Table_des_caractères_Unicode/U2600">merci Wikipédia</a>).</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Verbiage-de-d%C3%A9veloppeur#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/674URGENT : Mobicartes à vider intelligemmenturn:md5:1886bc0983c5797f221911c3b6a3be582012-01-11T22:24:00+01:002015-10-01T13:20:06+02:00ChristopheGuerre au marketinganticonsumérismebon senscommunicationFreemicroéconomieoptimisationpouvoir d’acheterprise de têtepérimérecyclagevaleuréconomie <p>Appel à tous les lecteurs (oui, les deux là au fond) : pouvez-vous m’aider à résoudre ce problème ?</p>
<blockquote><p><strong>Étant données deux mobicartes qui débordent de crédits<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/URGENT-Mobicartes-%C3%A0-vider-intelligemment#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, comment les vider de la manière la plus intelligente possible avant la migration vers le nouvel opérateur ?</strong></p></blockquote>
<p>Je vois deux possibilités :</p>
<p>1) Le <strong>don par SMS</strong> à une œuvre quelconque, mais apparemment ça n’a été possible en France qu’au moment du tsunami indonésien. Les seules possibilités que j’ai trouvées avec Google concernent la Suisse ou la Belgique, pas la France. Je me contrefiche qu’il n’y ait pas de reçu fiscal.</p>
<p>2) Les <strong>systèmes de remboursement de forfait</strong>, par exemple <em>remboursetonforfait.com</em> : le principe consiste à appeler un numéro surtaxé pour vider le forfait, et on est crédité d’une partie de la somme. Il y a pas mal d’intervenants sur ce marché qui pue l’amateurisme même si certains ont l’air plus sérieux. En désespoir de cause j’essaierai, j’ai rien à perdre.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/URGENT-Mobicartes-%C3%A0-vider-intelligemment#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup></p>
<p>Si quelqu’un a une meilleure idée, je suis preneur… Et je ne dois pas être le seul.</p>
<p>Il est hors de question de ne pas vider ces Mobicartes d’au moins l’essentiel.</p>
<p><strong>Ajout de mai</strong> : <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/Mobicartes-videes">Et le gagnant est…</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/URGENT-Mobicartes-%C3%A0-vider-intelligemment#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] Nous sommes de petits consommateurs peu bavards qui préfèrent tchatcher sur un téléphone fixe gratuit plutôt que sur un mobile.</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/URGENT-Mobicartes-%C3%A0-vider-intelligemment#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>D’ailleurs leur </em>business plan<em> risque de souffrir si Free Mobile ratisse tous les petits consommateurs aux forfaits bloqués surdimensionnés.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/URGENT-Mobicartes-%C3%A0-vider-intelligemment#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/676« Science & Vie » de décembre 2011 : Neanderthal Park, effets secondaires, feux de charbonurn:md5:01872069b87981d9af8c52342df3c2fc2012-01-05T21:46:00+01:002015-10-01T13:10:17+02:00ChristopheScience et conscienceabominationaddictionbon sensclimatconquête de l’inutiledinosauresdommagedéveloppementeaueffet de serreexaptationgaspillagegéologienatureoptimisationpollutionprise de têterobotssantésciencesociétés primitivesspéculationtravailécologieéconomie de l’attentionévolution <p>(<strong><em>Ante scriptum</em></strong> : Bonne année et bonne santé à tous mes lecteurs réguliers, enfin, celui qui n’aura pas quitté la blogosphère pour Fesse-bouc, Gogue Pus et autres obscénités dont je n’ai toujours pas trop capté l’intérêt.)</p>
<p>Bon, je m’étais dit que ce numéro-là je pourrais le chroniquer alors qu’il est encore en kiosque. La pile des choses à faire grossissant sans cesse, c’est encore râpé.</p>
<p>En vitesse, pendant que dort la ’tiote, liste des choses notables dans ce numéro à se rappeler :</p>
<ul>
<li><strong>Les enfants Cro-Magnons dessinaient aussi dans les grottes</strong>, avec leurs petites mimines. Le sens de leurs gribouillis n’est pas clair mais je ne sais pas s’il faut chercher bien loin.</li>
</ul>
<ul>
<li><strong>Les racines des arbres influencent le lit des rivières</strong>. Le cours des rivières d’avant 360 millions d’années (date d’apparition des arbres) était beaucoup moins stable qu’après. Les racines fixent les berges. (<em>J’ai toujours trouvé fascinantes les interactions entre géologie et espèces vivantes. La <a href="http://fr.wikipedia.org/wiki/Grande_Oxydation">Grande Oxydation</a> en est une, celle-là est plus subtile.</em>)</li>
</ul>
<ul>
<li><strong>Les maladies chroniques</strong> deviennent les principales causes de mortalité, y compris dans les pays en voie de développement : inactivité physique, surpoids, tabac, alcool… Nombre de pays pauvres ont déjà des maladies de riche, et pas les moyens d’y faire face.</li>
</ul>
<ul>
<li><strong>Peut-on faire revivre des mammouths ? L’homme de Néanderthal ? Des dinosaures ?</strong><br /> L’article tente vraiment de nous convaincre que c’est possible, et il y a des chercheurs optimistes. Mais l’ADN est déjà en kit dans les mammouths congelés retrouvés en Sibérie, alors pour ce qui est d’espèces complètement pétrifiées et dix ou dix mille fois plus anciennes… De plus, le problème de la mère porteuse du bébé mammouth n’est pas résolu : <a href="http://www.30millionsdamis.fr/acces-special/actualites/detail/article/1532-australie-naissance-du-premier-elephant-concu-par-insemination-artificielle/retour-actus/47.html">l’insémination artificielle d’éléphante est déjà un exploit</a>. <br />Pour le Néanderthal, des obstacles éthiques majeurs apparaissent.<br />Au mieux, un « pouletosaure » pourrait apparaître, simple piaf dont on aurait réactivé de vieux gènes jurassiques lui rendant queue et dents.<br />Enfin, que faire de ces espèces dont l’environnement aura disparu ?</li>
</ul>
<ul>
<li>Les <strong>effets secondaires des médicaments</strong> ont un bon côté : ils peuvent servir à traiter d’autres maladies que celle prévue au départ, et l’effet indésirable pour un malade sera bénéfique pour le malade à la pathologie inverse. L’aspirine peut provoquer des hémorragies, ce qui en fait un bon anticoagulant ; et le Viagra, médiocre dans le traitement de l’angine de poitrine, a révélé des effets secondaires intéressants… <br />Des chercheurs américains ont entré dans une base de données médicaments, effets secondaires, maladies, et ainsi pu repérer des substances potentiellement intéressantes dans des cas à l’origine non prévus. L’intérêt est énorme, aussi bien du point de vue de la réduction des coûts et des délais de mise sur le marché (on étend la prescription d’une molécule déjà connue et testée), que pour le soin des maladies orphelines (non rentables car trop rares).<br />Bref, un bon exemple de systématisation et d’industrialisation.</li>
</ul>
<ul>
<li>Quelques émouvants exemples des « <strong>robots qui refusent de mourir</strong> », beaux témoignages de l’ingéniosité humaine et du travail des ingénieurs quand on les laisse faire leur travail : <em><a href="http://www.daviddarling.info/encyclopedia/P/Pioneer_6.html" hreflang="en">Pioneer 6</a></em> tourne autour du soleil depuis 1965 et émettait encore en 2000 ; <em><a href="http://fr.wikipedia.org/wiki/Opportunity">Opportunity</a></em> devait fonctionner trois mois en 2004 mais continue d’explorer Mars depuis (<strong>Mise à jour de 2015</strong> : et ce n’est pas fini !) ; et <em><a href="http://fr.wikipedia.org/wiki/Voyager_1">Voyager 1</a></em>, lancé en 1977, après avoir rempli sa mission autour de Saturne et Titan en 1980, continue de nous renseigner sur les limites du système solaire.</li>
</ul>
<ul>
<li>Histoire de désespérer un peu plus dans la lutte contre le réchauffement climatique, un article s‘étend sur les <strong>feux de charbon</strong> : pas ceux allumés pour produire de l’électricité ou chauffer des maisons, mais de mines entières qui se consument petit à petit, parfois depuis des décennies voire bien plus, polluent des régions entières, provoquent des affaissements de terrain, en Chine, en Australie, aux États-Unis… Une fois démarrés, parfois naturellement (il suffit que l’air soit en contact avec le charbon sous-terrain pour qu’un jour cela brûle), ces feux sont encore quasiment impossibles à éteindre. Un gaspillage insensé qui, avec les incendies de tourbières (oui, ça aussi), représentent une part notable des émissions de CO2 humaines.</li>
</ul>
<ul>
<li><strong>On se frotte les yeux quand on est fatigués</strong> à cause de l’assèchement du film de larmes protégeant l’œil. La fatigue réduit la fréquence des clignements d’œil, il faut une pression des doigts pour stimuler les glandes. Mais point trop n’en faut.</li>
</ul>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Science-Vie-de-d%C3%A9cembre-2011#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/672« Pour la Science » de septembre 2011 : (2) Principe de Peter & promotion au hasardurn:md5:2a0d7ef60519855099bab0eaab7cb2cc2011-10-02T00:00:00+02:002015-09-25T14:14:28+02:00ChristopheScience et conscienceadministrationauto-organisationbon senscivilisationcommunicationcomplexitédysfonctionnementexaptationexpertisehiérarchiehumourincohérencemobilitémèmeoptimisationorganisationouverture d’espritpanurgismeparadoxeperspectivepolitiqueprise de têtepsychologietravailéconomieévolution<p>Second article intéressant dans ce numéro de <em>Pour la Science</em>, et il est délectable.</p> <p>(<em>Commentaires perso en italique</em>)</p>
<h3>Promotion</h3>
<p><a href="https://www.coindeweb.net/murphy/murphy_politique.html#peter">Le principe est bien connu</a> :</p>
<blockquote><p><strong>Principe de Peter</strong><br /> <br />Dans toute hiérarchie, qu’elle soit gouvernementale ou d’entreprise, chaque employé tend à s’élever à son niveau d’incompétence ; chaque poste tend à être occupé par un employé incompétent dans son travail.</p></blockquote>
<p>Boutade ou réalité profonde ? Les deux dira-t-on. Il est « de bon sens » que forcer les gens à prendre de nouvelles fonctions tant qu’il s’en sortent, mais à les y laisser quand ils pataugent, peut mener à la situation où presque chaque employé se retrouve à un poste où il est au mieux inefficace (il fait ou laisse faire le travail par les compétents, surchargés). Les contre-mesures existent, comme l’éviction des incompétents (<em>je note qu’on perd alors leur compétence dans un poste « inférieur »</em>), leur neutralisation en les promouvant au <em>management</em> (<a href="http://www.vinch.be/blog/2010/08/02/le-principe-de-peter-et-le-principe-de-dilbert/">principe de Dilbert</a> ; <em>en fait à mon avis une grosse erreur, sauf dans les technocraties où ceux qui font décident et le reste n’est que support et secrétariat</em>), la possibilité de refuser des promotions, ou plutôt de les opérer sur d’autres plans comme la progression salariale, sans que cela implique un changement hiérarchique ou de fonctions (<em>pas trop la mentalité de beaucoup d’endroits</em>).</p>
<p>(<em>Je vois une autre faille dans le principe : les gens sont capables d’apprendre, surtout si on les soutient. Untel incompétent arrivé sur son poste peut avec le temps devenir efficace. Reste la question : est-il vraiment fait pour un poste parfois totalement différent de son choix originel dans la vie ? Parfois oui, parfois non.</em>)</p>
<p>L’article de Didier Nordon s’étend sur différentes recherches et simulations visant à justifier le principe, notamment :</p>
<ul>
<li><strong>la régression vers la moyenne</strong> : quelqu’un de très compétent, puisque promu, visera fatalement à se rapprocher de la moyenne quand on l’amène à un poste différent où (c’est un présupposé implicite) <strong>la compétence au nouveau poste n’a pas forcément grand chose à voir avec celle à l’ancien</strong> (hypothèse de Peter) ;</li>
<li><strong>l’effet cliquet</strong> : celui qui est monté et montre ses limites ne redescend jamais, surtout si le licenciement est impossible comme dans beaucoup de grandes administrations et entreprises (<em>et pour moi une des solutions au problème est de permettre de tester des gens et de ne pas poursuivre l’expérience si elle n’est pas concluante, et surtout sans qu’il y ait l’idée que ce soit un échec, une punition sociale.</em>)</li>
</ul>
<p>Un prix Ignobel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> a été décerné pour la démonstration et la simulation que dans un environnement qui suit strictement le principe de Peter, <strong>le plus efficace est de promouvoir les incompétents</strong> ! Ainsi on échappe à l’effet cliquet et on profite de de la régression vers la moyenne : chaque poste ne sera pas « bloqué » par un incompétent à vie, et un incompétent a une chance d’arriver à un poste où il est bon (et il y restera).</p>
<p>À l’inverse, dans le cas où l’hypothèse de Peter est fausse, que la compétence à un nouveau poste est à peu près liée à celle à l’ancien, il est logique de promouvoir les meilleurs, la régression vers la moyenne étant moins dramatique et les meilleurs arrivant en haut de la pyramide : l’efficacité globale y gagne.</p>
<p>On arrive donc à la question fondamentale laissée en exercice au lecteur : la compétence au poste N+1 est-elle liée au poste N ? (<em>Mon avis : ça dépend :-) </em>).</p>
<p>Est évoquée aussi la promotion au hasard : hypothèse de Peter vraie ou fausse, elle donne un résultat moyen, meilleur que la promotion du meilleur si l’hypothèse est vraie. Dans une hiérarchie bloquée, autant redistribuer les cartes ! (<em>J’ai toujours considéré qu’il fallait choisir une partie des assemblées politiques au hasard pour apporter du sang neuf, les Grecs antiques le faisaient bien.</em>)</p>
<p>Mais arrive le plus rigolo : <strong>si l’hypothèse de Peter est vraie, promouvoir les plus mauvais donne un résultat un peu meilleur que la promotion des meilleurs si elle est fausse</strong> ! <em>C’est-à-dire : il faut prendre des gens manifestement inadaptés à leur ancien poste pour les mettre là où les qualités demandées n’ont rien à voir, plutôt que de prendre des compétents pour les mettre à un poste où ils pourraient être moins bon. C’est finalement de très bon sens !!</em></p>
<p><em>Bon, comme tout simulation sociale ou économique, les effets sont intéressants à observer mais ne tiennent pas compte de toutes les rétroactions dans le réel : possibilité d’apprentissage comme j’ai dit plus haut ; surveillance de la performance pour éviter que les incompétents s’entassent ; éviction systématique des plus mauvais ; sélection naturelle quand l’entreprise subit les conséquences de sa nullité et doit dégraisser (mais à ce stade terminal, les licenciements ne sont pas décidés par les plus compétents pour garder justement les plus compétents) ; échelle considérée (parle-t-on d’une administration en circuit fermé, d’une entreprise sur un marché à fort </em>turn-over<em>, d’une société dans son ensemble qui effectivement ne cherche pas à récompenser la compétence ; et la définition même de compétence, celle-ci étant plus que multiforme et variant avec l’époque… Et puis, tout bêtement, les changements de poste évoqués ci-dessus concernent des promotions, alors que l’on peut vouloir faire changer de poste les incompétents le plus vite possible sans que cela devienne une promotion, une progression dans la pyramide.)</em></p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/04/26/503-the-ig-nobel-prizes-de-marc-abrahams">J’en avais parlé .</a></em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/661Extrait de mes signatures automatiques : développement informatique (3)urn:md5:dcdbe95f103f3fc2d4a96a2cc83d662c2011-08-14T15:46:00+00:002015-09-04T11:55:35+00:00ChristopheInformatique : l’art du développementabominationargentauto-organisationbase de donnéesbugcitationcomplexitéculturecynismedysfonctionnementdéveloppementexpertisefoutage de gueulegaspillageinformatiquelivres lusoh le beau cas !optimisationouverture d’espritpanurgismeperfectionnismeprise de têteSSIItravailéconomie de l’attentionéducationémerveillement <p>Les traductions sont de ma pomme ; les suggestions sont les bienvenues.</p>
<blockquote><p><em><strong>creationism</strong> n. : The (false) belief that large, innovative software designs can be completely specified in advance and then painlessly magicked out of the void by the normal efforts of a team of normally talented programmers.</em><br /> <br /><em> In fact, experience has shown repeatedly that good designs arise only from evolutionary, exploratory interaction between one (or at most a small handful of) exceptionally able designer(s) and an active user population -- and that the first try at a big new idea is always wrong. Unfortunately, because these truths don't fit the planning models beloved of management, they are generally ignored.</em><br /> <br /><strong>créationisme</strong> m. : La croyance (fausse) que de nouveaux logiciels grands et innovants puissent être spécifiés complètement à l’avance et créés <em>ex nihilo</em> automagiquement par le travail normal de développeurs normalement talentueux.<br /> <br />En fait, l’expérience a montré de manière répétée qu’une bonne conception naît d’une interaction exploratoire et évolutive entre un (au plus une poignée) de concepteurs exceptionnellement capables, et une population d’utilisateurs actifs - et que le premier essai d’une nouvelle grande idée est toujours une erreur. Malheureusement, comme ces vérités n’entrent pas les modèles de planification chéris du <em>management</em>, elles sont généralement ignorées.)<br /> <br /><a href="http://www.ccil.org/jargon/jargon_18.html#SEC25" hreflang="en">Hacker's dictionary</a></p></blockquote>
<hr />
<blockquote><p><em>(...)one of my colleagues took over maintenance of a system which included a date library. The dates and times were treated as floating-point, leading to much conversion and adjustinging. Eg. 12:30 was 12.30, so when adding 40 minutes getting 12.70, and then adjusting that to 13.10, No input validation was done. My colleague tried cleaning that up, but then got complaints from the users. They had discovered the "features" and were now using eg: January -6th meaning december 24th the previous year.</em><br /><em>My colleague had to remove the input validation again and keep the features.</em><br /> <br /> Un de mes collègues avait repris la maintenance d’un système qui comprenait une bibliothèque de gestion des dates. Dates et heures étaient traitées comme des décimaux, ce qui menait à nombre de conversions et d’ajustements. par exemple 12h30 était en fait 12,30, donc ajouter 40 minutes donnait 12,70, à ajuster à 13h10. Aucune validation des entrées n’était faite. Mon collègue tenta de nettoyer tout ça, mais reçut des plaintes des utilisateurs. Ils avaient découvert cette « fonctionnalité » et utilisaient par exemple le -6 janvier pour signifier le 24 décembre de l’année d’avant.<br />Mon collègue dut supprimer ses contrôles et garder la fonctionnalité.<br /> <br />isj, <a href="http://ask.slashdot.org/article.pl?sid=07/03/30/0116246" hreflang="en">Slashdot.org, 30 mars 2007</a></p></blockquote>
<p>En fait, l’évolution darwinienne fonctionne aussi comme ça, la nageoire-pagaie étant utilisée finalement comme patte, Ce qui ne veut pas dire que l’on doit tolérer des aberrations de la part des utilisateurs, ceux-ci doivent être remis au pas et se voir offrir la même fonctionnalité sous une forme moins tourmentée.</p>
<hr />
<blockquote><p><em>Any app that doesn’t need to be rewritten hasn't grown sufficiently beyond its original intent.</em><br /> <br />Une application qui n’a pas besoin d’être réécrite n’a pas suffisamment grandi en-dehors de son cadre d’origine.<br /> <br />Jesse Litton, 1990</p></blockquote>
<p>Qu’une application se retrouve à faire tout et n’importe quoi est le signe du succès. Que les concepteurs renoncent à la tentation de la faire grossir jusqu’à l’indicible est une qualité rare.</p>
<hr />
<blockquote><p>- Commit du soir, espoir.<br />- Build du matin, chagrin.<br /> <br />#linuxfr</p></blockquote>
<p>Ne jamais faire un « dernier truc avant de partir » : soit on ne teste pas et le lendemain on pleure, soit on le teste et au lieu de 18h on sort à 20h50.</p>
<hr />
<blockquote><p><em>If you start explaining the bug to someone, there’s a good chance in mid-explanation you’ll realize a solution to the problem. Some school (can’t remember which) had a Teddy Bear in their programming consulting office... There was a sign. "Explain it to the bear first, before you talk to a human". Silly as it sounds, people would do it, and a large portion of the time they’d never actually have to consult the staff... by explaining it to the bear, they solved the problem.</em><br /> <br />Si vous commencez à décrire un bug à quelqu’un, il y a une bonne chance qu’au milieu de l’explication vous découvriez la solution au problème. Une école (peux pas me rappeler laquelle) avait un ours en peluche dans leur bureau de conseil informatique... Il y avait un panneau : « Racontez-le à l’ours avant de parler à un humain. » Aussi stupide que cela semble, les gens le faisaient, et une bonne partie du temps ils n’avaient plus besoin de demander conseil à l’équipe... En l’expliquant à l’ours, ils résolvaient le problème.<br /> <br />deanj, <a href="http://books.slashdot.org/comments.pl?sid=97712&cid=8377060" hreflang="en">Slashdot.org, 24 février 2004</a></p></blockquote>
<p>Une question bien posée est à moitié résolue.</p>
<hr />
<blockquote><p><em>I worked on a new development project a while back and we decided to try XP [eXtreme Programming] for the design and development cycle. Another project in the same department started at about the same time and used Rational Rose and produced a lot of UML design specs up front. We had part of our application up and running to the users satisfaction within 3 months, but then ran into a major design oversight that bogged us down for the next 3 months. The other project didn't start to program for 2 months and didn't have anything really to show the customer after 6 months. In the end both projects were killed.<br /> The moral: There are no magic bullets.</em><br /> <br />Je travaillais sur un nouveau développement il y a quelques temps et nous avions décidé d’essayer XP [<a href="http://fr.wikipedia.org/wiki/Extreme_programming" hreflang="en">eXtreme Programming</a>] pour la conception et le cycle de développement. Un autre projet du même département démarra à peu près au même moment, utilisait Rational Rose et produisit beaucoup de schémas UML d’entrée. Nous avions des parties de notre application en fonctionnement à la satisfaction des utilisateurs dans les 3 mois, mais avons trouvé un énorme oubli à la conception qui nous bloqua les 3 mois suivants. L’autre projet ne commença pas à programmer avant 2 mois et n’avait rien à montrer au client après 6 mois. Finalement les deux projets furent tués.<br />Moralité : <a href="http://fr.wikipedia.org/wiki/Balle_en_argent">il n’y a pas de balle en argent</a>.<br /> <br />smallfeet, Slashdot.org, 12 avril 2004</p></blockquote>
<hr />
<blockquote><p><em>Software QA is like cleaning my cat's litter box: Sift out the big chunks. Stir in the rest. Hope it doesn't stink.</em> <br /> <br />La qualité logicielle, c’est comme nettoyer la litière de mon chat. Enlever les gros morceaux. Mélanger le reste. Espérer que ça ne pue pas.<br /> <br />DaveAtFraud, Slashdot.org, 2004</p></blockquote>
<p>Ajoutons que le classeur Excel aux métriques absconses destiné à vérifier la qualité du soft doit impérativement montrer que tout va bien.</p>
<hr />
<blockquote><p><em>One of the funniest and scariest things I’ve ever heard in my life:</em><br />(extreme anger) "<em>GOD DAMNIT VISUAL C IS A FUCKING PIECE OF SHIT! IT ONLY ALLOWS 16384 LOCAL VARIABLES!!!!</em>"<br /> <br />Une des choses les plus marrantes et effrayantes que j’ai entendues de ma vie : <br />(fureur extrême) « FOUTREDIEU VISUAL C EST UNE MERDE PUANTE ! IL NE PERMET QUE 16384 VARIABLES LOCALES !!!! »<br /> <br />Monkelectric, Slashdot.org, 31 mars 2004</p></blockquote>
<hr />
<blockquote><p><em>Every time I’m tempted to start micro-optimizing, I remind myself of the following three simple rules:</em><br /><em>1) Don’t.</em><br /><em>2) If you feel tempted to violate rule 1, at least wait until you've finished writing the program.</em><br /><em>3) Non-trivial programs are never finished.</em><br /> <br />Chaque fois que je suis tenté de micro-optimiser, je me rappelle les trois simples règles suivantes :<br />1) Ne le faites pas.<br />2) Si vous êtes tenté de violer la règle 1, attendez au moins d’avoir fini le programme.<br />3) Les programmes non triviaux ne sont jamais finis.<br /> <br />Frequency Domain, Slashdot.org, 06 mai 2004</p></blockquote>
<hr />
<blockquote><p><em>Can darwinism work on software bugs ? </em><br /> <br />Le darwinisme fonctionne-t-il sur les bugs logiciels ?<br /> <br />boaworm, Slashdot.org</p></blockquote>
<p>Pour les <em>malwares</em> déjà ça semble fonctionner...</p>
<hr />
<blockquote><p><em>Programming trains you for parenting pretty well. The long sleepless nights, the time spent explaining very simple things to really stoopid people, and the ability to tune out the rest of the world all really help when dealing with children.</em><br /> <br />Programmer vous entraîne très bien au rôle de parent. Les longues nuits sans sommeil, le temps passé à expliquer des choses très simples à des gens vraiment stupides, et la capacité à s’abstraire du reste du monde, tout ça aide vraiment à s’occuper d’enfants.<br /> <br />MythoBeast, Slashdot.org, 04 juin 2004</p></blockquote>
<p>S’abstraire du monde, avec des enfants ? Arf !</p>
<hr />
<blockquote><p><em>Developer’s Serenity Prayer:</em><br />“<em>God grant me the serenity to leave untested things I cannot test; </em><br /> <em>courage to test the things I can; </em><br /><em> and wisdom to know when to refactor.” </em><br /> <br />Prière de la Sérénité du Développeur :<br />« Que Dieu me donne la sérénité de laisser intestées les choses que je ne peux pas tester ;<br />le courage de tester ce que je peux tester ;<br />et la sagesse de savoir quand refactoriser. »<br /> <br />(Source inconnue)</p></blockquote>
<hr />
<blockquote><p><em>Code can never be 100% self documenting,</em><br /><em>but that's no reason not to settle for 0%.</em><br /> <br />Le code ne peut jamais être à 100% auto-documenté,<br />mais ce n’est pas une raison pour accepter 0%.<br /> <br />Trillan, Slashdot.org, 25 février 2005</p></blockquote>
<p>Et 100% c’est sans doute trop car redondant avec ce qu’on peut lire immédiatement dans le code.</p>
<hr />
<blockquote><p><em>Software application development comes down to:</em><br /><em> 1. You can have it done fast.</em><br /><em> 2. You can have it done cheap.</em><br /><em> 3. You can have it fully functional</em><br /><em>Now pick 2.</em><br /> <br /><em> Fast and cheap = means using average and inexpensive programmers and is not fully functional</em><br /><em> Fast and fully functional = exceptional programmers and will cost an arm and a leg</em><br /><em> Cheap and fully functional = means it will take a long, long, long, long time for the average and inexpensive programmers to build it</em><br /><em> The timeline for the application, whether you need it tomorrow or can wait a few years, in addition to the budget determines what kind of programmers you can afford and need to hire.</em><br /> <br />Le développement de logiciel se résume à :<br />1) Vous pouvez l’avoir vite fait.<br />2) Vous pouvez l’avoir pour pas cher.<br />3) Vous pouvez l’avoir complètement fonctionnel.<br />Maintenant choisissez deux options.<br /> Rapide et pas cher = signifie des programmeurs moyens et pas chers, et pas complètement fonctionnel<br /> Rapide et fonctionnel = programmeurs exceptionnels et vous coûtera les yeux de la tête<br /> Pas cher et fonctionnel = signifie que ça va prendre un long, long moment à faire pour des programmeurs moyens et pas chers.<br /> La durée de développement de l’application, que vous la vouliez demain ou que vous puissiez attendre quelques années, en plus du budget, détermine quel type de programmeurs vous pouvez vous permettre et que vous devez embaucher.<br /> <br />tokengeekgrrl, Slashdot.org, 03 août 2005</p></blockquote>
<p>Encore faut-il avoir le choix des programmeurs. L’interface par des commerciaux de SSII n’est pas idéale pour ça.</p>
<hr />
<blockquote><p><em>I worked for a rather large ISP who (...) switched from a rather large home grown custom database program it had used for years to the corporate Vantive which cost them millions at the time.</em><br /><em>I asked my manager why would they bother doing such a thing when the old program worked just fine. He said “The guy who made the program died and know one knows how to code for it.</em>”<br /><em> I laughed for a moment and then by his blank face realized he wasn’t joking...</em><br /> <br />J’ai travaillé pour un opérateur Internet assez important qui passait d’une base de données maison utilisée pendant des années à <a href="http://en.wikipedia.org/wiki/Vantive" hreflang="en">Vantive</a>, qui coûtait des millions à l’époque.<br />J’ai demandé à mon <em>manager</em> pourquoi ils s’embêtaient à faire ça alors que l’ancien programme marchait bien. Il dit : « Le gars qui a fait le programme est mort et personne ne sait comment programmer ça. » J’ai ri un moment et à son air vide d’expression j’ai réalisé qu’il ne plaisantait pas.<br /> <br />vertinox, Slashdot.org, 21 novembre 2005</p></blockquote>
<p>Personne n’est irremplaceable, personne ne <em>doit</em> être irremplaceable.</p>
<hr />
<blockquote><p><em>Being able to do a lot with one line of code or being able to type 50% fewer LOC to do your job has no place in programming today and is, in fact, counter-productive. If you are actually thinking faster than you type when you're programming, you need to think more, not type less!</em><br /> <br />Être capable de faire beaucoup en une seule ligne de code ou de faire votre boulot en tapant 50% de lignes de moins n’a pas de place dans la programmation actuelle et en fait, est contre-productif. Si vous pensez réellement plus vite que vous ne tapez quand vous programmez, vous devez penser plus, pas taper moins !<br /> <br /> bill_kress, Slashdot.org, 14 décembre 2005</p></blockquote>
<p>Réflexion hautement spéculative. La vitesse de frappe d’un code n’est pas la principale limite au développement, c’est sûr. La concision compacte et illisible à la Perl, et autres astuces qui génèrent du code « à lecture seule », sont des abominations que certains défendent encore. Par contre, la vérité est à la fin de la phrase : le développeur doit pouvoir penser plus. <br />Donc le code verbeux parce que la syntaxe est rigide, bien que vite apprise, comme en PL/SQL ou en Pascal, n’est pas gênant – surtout si cela évite des erreurs. Le code verbeux à cause d’un milliard de paramètres à rentrer qui seraient automatisables, non !</p>
<hr />
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/06/29/510-extrait-de-mes-signatures-automatiques-developpement-informatique-1">Extraits de mes signatures : le développement informatique (1)</a><br /><a href="https://www.coindeweb.net/blogeclectique/index.php?post/Extrait-de-mes-signatures-automatiques-developpement-informatique-2">Extraits de mes signatures : le développement informatique (2)</a></p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Extrait-de-mes-signatures-automatiques-developpement-informatique-3#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/457Ce billet ne devrait pas exister...urn:md5:4e4fe21344fc67427cf661c9757866732011-07-30T16:19:00+02:002015-09-04T08:13:25+02:00ChristopheMoi, ma vie, mon egoaddictionblogbon senscommunicationconquête de l’inutilecouragedysfonctionnementenfantslibertémèmeoptimisationorganisationprise de têtepsychologierésolutionssaturationtempsthéorieténacitééconomie de l’attention <p>…car dans tout ce que je peux survoler (pas le temps de lire) sur l’organisation, réduire sa tendance à la procrastination (<a href="http://lesswrong.com/lw/3w3/how_to_beat_procrastination" hreflang="en">là par exemple</a>), comment faire plein de choses dans le minimum de temps, etc., un des mantras les plus simples est :</p>
<blockquote><p><em>Fais-le tout de suite, bordel de merde !</em></p></blockquote>
<p>ou bien :</p>
<blockquote><p><em><a href="http://www.codinghorror.com/blog/2011/07/nobodys-going-to-help-you-and-thats-awesome.html" hreflang="en">You should be working!</a></em></p></blockquote>
<p>Les listes de choses à faire, c’est bien ; la subdivision de tâches aussi, mais rien ne vaut la volonté de faire ce qui attend au lieu de procrastiner sur les dernières nouvelles sur les sites favoris ou de bloguer/tweeter sur tout et rien comme en ce moment même. Pas facile, une telle partie de l’activité actuelle se passe dans un navigateur qu’on ne peut même plus le fermer pour se supprimer les tentations.</p>
<p>Après reste le problème épineux de la masse de choses en attente qui toutes attendent et qu’il faut ordonner. J’aime bien l’algorithme « je prends le premier truc qui me passe par la tête ou que je vois dans la liste de tâches, de toute façon y aura pas le temps de tout faire ».</p>
<p>Ah oui : faire un billet de blog rapide de temps à autre était bien dans ma liste. Par contre il faut que je résiste à la tentation de le relire dix fois avant de le poster.</p>
<p>Je retourne faire comptes, nettoyage, généalogie, rangement, courrier, et même patate de canapé devant des documentaires ou films qui attendent depuis trop longtemps — pour une fois que mes petits chronovampires ne sont pas à la maison...</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Ce-billet-ne-devrait-pas-exister#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/650« Pour la Science » de juillet 2011 : l’hydrogène comme énergie propre ; le démon de Maxwell existe ; nucléaire : le débat date du XIXè siècleurn:md5:dd021c3ac1cfef245124559ffb244bfc2011-07-21T14:06:00+02:002015-09-03T12:13:36+02:00ChristopheScience et consciencecatastrophechiffrescomplexitéconquête de l’inutiledilemmediscriminationhistoirelobbysmèmemémoireoptimisationoptimismeParisperspectivequêtesantéthéorieécologieéconomieéconomies d’énergieémerveillementénergie <p>Encore un bon cru que ce numéro. Comme d’habitude en vrac <em>avec mes commentaires personnels en italique</em>.</p>
<p><img src="http://www.pourlascience.fr/e_img/boutique/full/_done_20110622_152533_PLS-2011-juillet_405-fu-pls_405_couv_175.jpg" alt="" style="float:right; margin: 0 0 1em 1em;" /></p>
<h3>Pub pour l’hydrogène</h3>
<p>Plusieurs articles font la promotion de l’hydrogène comme vecteur de l’énergie de demain. Ce n’est pas nouveau, mais on s’en rapproche.</p>
<p>Le problème principal est le stockage : on commence à le maîtriser correctement, ainsi que la restitution sous forme d’électricité avec de bons rendements. À l’heure de l’expansion nécessaire de sources d’énergie renouvelables mais à la production erratique (éolien, solaire), l’hydrogène serait <em>le</em> tampon idéal. Des exemples à petite échelle dans des îles existent. Et sans pollution puisque les « déchets » de la production par électrolyse et de la consommation dans une pile à combustible sont respectivement l’oxygène et l’eau.</p>
<p>Évidemment, c’est plus facile à dire qu’à faire. Sur le long terme on peut tout espérer (<em>soyons optimistes</em>) mais pour le moment aucune technologie ne concilie coût faible, compacité et durabilité (<em>on est encore loin de l’autosuffisance d’une maison couverte de panneaux solaires et avec des piles à combustible dans la cave</em>) et bien sûr le chauffage est exclu de l’équation, il devra être fourni par une autre source.</p>
<p>Parmi les catalyseurs de l’électrolyse on évitera le platine (ruineux, et il n’y en aurait pas pour tout le monde). Il existe des membranes échangeuses de protons nées des nanotechnologies. Le plus intéressant reste la bonne vieille photosynthèse, au stade industriel grâce à des procédés s’inspirant du vivant (feuilles artificielles) et utilisant des métaux courants (nickel…).</p>
<p>Le stockage, impossible simplement sous pression pour une molécule aussi petite, pourrait se faire dans des récipients plastiques, ou dans des matériaux composites. Coût et poids seront encore longtemps rédhibitoires pour une voiture.</p>
<p>Bref, l’hydrogène est mûr pour 2050… si la recherche suit. (<em>Et elle ne suivra que si on y met les moyens.</em>)</p>
<h3>Le démon de Maxwell existe</h3>
<p>Pas de démonologie ici, juste une expérience de pensée de 140 ans d’âge enfin implémentée. Maxwell avait imaginé séparer les molécules chaudes et froides d’un gaz grâce à un « démon » qui ouvrirait ou fermerait une porte en fonction de la vitesse de la molécule. Une équipe américaine, dans sa quête sans fin du zéro absolu, a utilisé des lasers pour parvenir à ses fins et séparer atomes froids et chauds.</p>
<p>Et l’entropie dans tout ça ? Les lasers emportent pile poil avec eux l’information perdue par les gaz. Le second principe de la thermodynamique est sauf.</p>
<p>Au final, plein de découvertes en perspective, qui laisseront froid le commun des mortels (qui s’intéresse à la masse du neutrino ?). (<em>Mais qui évidemment seront indirectement à la base de notre confort en 2100…</em>)</p>
<h3>La controverse du gaz d’éclairage</h3>
<p>Le débat actuel sur le nucléaire, utile, effroyablement dangereux selon les uns, raisonnablement sûr selon les autres, a déjà été livré il y a presque deux siècles, à propos des usines à gaz et gazomètres. L’article de Jean-Baptiste Fressoz est passionnant.</p>
<p>En 1823, l’extension de l’éclairage au gaz (une véritable révolution !) nécessite la construction de grands réservoirs, dont un rue du Faubourg Poissonnière à Paris. Les riverains inquiets en appellent à l’équivalent du principe de précaution, l’Académie des Sciences est impliquée et conclut à un non-risque pratique d’explosion. Ajoutons que le débat est pollué par les querelles politiques de l’époque (la Restauration fut agitée).</p>
<p>Évidemment, pour contredire l’Académie, certains gazomètres explosèrent dans les décennies suivantes. Les académiciens avaient négligé de nombreux problèmes pratiques que le personnel de terrain connaissait pourtant ; certains scientifiques étaient intéressés financièrement par l'expansion des gazomètres ; certaines interactions physico-chimiques provoquèrent plus tard des catastrophes expliquées seulement cinquante ans plus tard ; enfin l’interaction avec d’autres technologies, fondamentalement imprévisible, mena aussi à des explosions (réseau d’eau (autre révolution !) qui fuit => éboulement => fuite du réseau de gaz proche => le gaz ne peut s’échapper car les routes sont en macadam (autre nouveauté !) => accumulation dans les égoûts et cave => explosion => 86 morts en 1883).</p>
<p>Les scientifiques ne furent pas les seuls à être aveugles. Le débat en France mena tout de même à un début de régulation de la sécurité du gaz. En Angleterre, pourtant plus consciente des problèmes, l’argument du coût balaya toute velléité de norme.</p>
<p>Ajoutons que, un siècle après leur démantèlement, les usines à gaz polluent toujours nos sols par les goudrons issus de la distillation...</p>
<p>Le parallèle avec le débat actuel nucléaire est frappant. « Le seul vainqueur de la controverse a été l’imprévisible. »</p>
<h3>Divers</h3>
<ul>
<li>Un peu au-dessus de l’équateur existe une <strong>bande de précipitations</strong> vitale pour l’agriculture de nombreux pays. Des chercheurs se sont donnés la lourde et pénible mission de parcourir de nombreuses îles paradisiaques du Pacifique, et d’y trouver les traces de l’évolution de cette bande au sein de sédiments au fond des lacs intérieurs. Verdict : la bande est très sensible à toute variation de la température, et va donc se décaler très vite de plusieurs degrés de latitude vers le nord, avec une redistribution des pluies et des impacts en cascade sur toute la planète.</li>
</ul>
<ul>
<li><strong>L’innovation technologique peut aider les pays pauvres</strong>, sans qu’il y ait besoin de prix Nobel, de percées technologiques délirantes, ou de méga-investissements : une simple mini-centrale hydroélectrique sur une chute d’eau de 400 W (<em>la puissance d’un gros PC de joueur</em>) peut suffire à changer le quotidien de plusieurs foyers (éclairage, télécommunications, une télé) ; des séchoirs à légume stimulent des pans entiers de l’économie burkinabée ; une bête capsule en polyéthylène réduit les risques de propagation du sida, etc. Les solutions les plus simples et les moins chères ont souvent l’impact le plus énorme. Il manque un répertoire mondial de toutes ces petites avancées pour en généraliser l’utilisation.</li>
</ul>
<ul>
<li><strong>Les gélules-robots</strong> avec caméra, que l’on peut avaler et qui ressortent naturellement, rendent déjà des services. Un article traite de l’étape suivante : gélules à bras pour explorer, voire gélules avalées indépendamment, et s’auto-organisant pour opérer de l’intérieur !</li>
</ul>
<ul>
<li><strong>Les premiers accouplements</strong>, chez certains poissons d’il y a 375 millions d’années (déjà vivipares), seraient nés de la nécessité de protéger les petits des prédateurs : plus gros à la naissance, leurs chances de survie étaient meilleures. Certains attributs virils seraient des nageoires détournées et… la mâchoire à l’origine plutôt destinée à maintenir les femelles pendant l’acte pour pouvoir féconder les œufs le plus vite possible avant d’autres prétendants ! (<em>J’adore tous ces bricolages évolutifs : cette mâchoire de prise devenue arme ; les nageoires-pagaies évoluant en pattes ; les poumons-stabilisateurs devenus poumons...</em>)</li>
</ul>
<ul>
<li>L’<strong>article mathématique de Jean-Paul Delahaye relève du quasi-surréalisme</strong> : <a href="http://www.mathrix.org/zenil/" hreflang="en">Hector Zenil</a>, un de ses doctorants, a ordonné par ordre de complexité les nombres de 0 à 31 — en binaire. En parlant de complexité, on évoque le fait que 11010 est plus complexe que 11111, lui-même plus complexe que 1. La complexité selon Kolmogorov d’un nombre (qui est, en gros, proportionnelle à sa taille après passage à la moulinette d’un algorithme de compression comme <code>zip</code>) se calcule mal pour les tous petits chiffres. Il a donc fallu revenir à la définition et tester les 11 milliards de programmes possibles d’une machine de Turing à quatre états pour voir quelles chaînes de un à cinq bits sortaient le plus fréquemment. Bref, au final 0 et 1 sont les moins complexes des chaînes, 11100 est dernier (<em>ex-æquo</em> avec 00111 et d’autres). Si si, il y a des applications.</li>
</ul>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-juillet-2011#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/649Les légendes informatiques revues par C’turn:md5:a476b6ddfa760e4034af2df0f951bda92011-02-27T16:35:00+01:002015-08-21T09:58:08+02:00ChristopheInformatique militante et technologieAllemagnebon senseauinformatiqueLinuxlogiciel librelégendes urbainesMacOSmèmeoptimisationperfectionnismesauvegardessécuritéUnixWindowsécologieéconomies d’énergie<p><a href="http://www.heise.de/ct">C’t</a> a entrepris de recenser quelques légendes et coutumes de l’informatique moderne, et de tester leur pertinence en 2011. Le numéro (5/2011) n’est plus en kiosque (et ne l’a pas été de ce côté du Rhin).</p> <p>Pas appris grand-chose personnellement, l’orientation est assez grand public, mais bon, ça peut toujours servir. Petite sélection personnelle expurgée de ce qui ne concerne que les Allemands :</p>
<ul>
<li><strong>Il faut réinstaller un Windows toutes les quelques années, sinon il ralentit</strong> : FAUX, il ne devient pas spontanément plus lent si on fait gaffe à nettoyer le système de tout ce qui n’a pas à tourner en arrière-plan (merci <code>msconfig</code>).</li>
</ul>
<ul>
<li><strong>Il faut nettoyer Windows de temps à autre pour qu’il tourne bien : clés de registre, fichiers temporaires, défragmentation…</strong> : c’est inutile, sauf évidemment pour récupérer de la place. En plus, un nettoyage de la base de registres peut être dangereux.</li>
</ul>
<ul>
<li><strong>Windows 7 est plus rapide que Vista</strong> : FAUX, il est juste apparemment plus réactif. Et, ajouterai-je, entre-temps le parc de machines s’est en grande partie renouvelé.</li>
</ul>
<ul>
<li><strong>Linux est trop compliqué</strong> : meuh non… ! Un Ubuntu est aussi simple qu’un Windows sinon plus pour une utilisation basique. Et pour du non-basique, Windows est également prise de tête.</li>
</ul>
<ul>
<li><strong>Linux et MacOS sont plus sûrs que Windows</strong> : c’était vrai par le passé, plus maintenant. Linux et Mac sont moins répandus et donc ignorés par les marketeux et les pirates. Sur les serveurs, Linux est plus répandu et même la cible principale…</li>
</ul>
<ul>
<li><strong>Un Windows avec beaucoup de RAM est plus rapide sans fichier d’échange</strong> : FAUX, ils ont fait le test. Par contre, sans fichier d’échange, on court bien le risque d’un plantage d’un logiciel par manque de mémoire.</li>
</ul>
<ul>
<li><strong>Les photos en mode RAW sont plus belles que les JPEG</strong> : VRAI, à condition de savoir exploiter leur potentiel et donc de maîtriser Aperture ou Lightroom. Moi je reste au JPEG. (<strong>Mise à jour de janvier 2015</strong> : J’ai appris à développer mes photos et je ne jure plus que par le RAW. )</li>
</ul>
<ul>
<li><strong>Les écrans brillants donnent de plus belles couleurs que les écrans mats</strong> : OUI, MAIS. À cause des reflets, on n’en profite pas. Nom de Zeus, pourquoi est-il si difficile de trouver des écrans mats !!???</li>
</ul>
<ul>
<li><strong>Les écrans cathodiques peuvent être lus à distance, pas les plats</strong> : FAUX, en fonction du câble, de l’isolation, de la mise à la terre… un écran LCD d’ordinateur émet tellement d’informations que l’on peut parfois reconstituer parfaitement son contenu à 25 m.</li>
</ul>
<ul>
<li><strong>Les systèmes 64 bits sont plus rapides que les 32 bits</strong> : VRAI… marginalement. Le vrai intérêt du 64 bits réside dans l’accès à plus de mémoire.</li>
</ul>
<ul>
<li><strong>Les accumulateurs</strong> : les technologies de batteries et l’électronique de gestion ayant pas mal changé depuis des années, des comportements autrefois pertinents comme des décharges complètes ou un stockage au frigo ne sont plus d’actualité, ou n’apportent pas grand-chose par rapport aux contraintes.</li>
</ul>
<ul>
<li><strong>Les vieux PC peuvent servir de serveurs de fichiers ou d’imprimantes</strong> : PARFOIS. Attention, il faut tenir compte de leur consommation électrique (certes plus chère pour les Allemands qui ont fait le calcul), et voir si un matériel spécialisé récent ne serait pas vite amorti. <br />Ce n’est que pour le côté financier. Éconologiquement, on avisera en fonction de la provenance du courant local (charbon, nucléaire, éolien…) comparée au charbon consommé (<em>via</em> les centrales électriques chinoises) par la construction du nouveau matériel.</li>
</ul>
<ul>
<li><strong>Un CD copié peut sonner mieux que l’original</strong> : VRAI. Effectivement, une copie propre <em>via</em> un lecteur de bonne qualité n’aura pas les rayures de l’original, qui seront audibles sur du matériel hi-fi plus bas de gamme.</li>
</ul>
<ul>
<li><strong>Les clés USB n’ont pas besoin d’être démontées avant qu’on les retire</strong> : SI. Sous Windows, le risque est faible (le cache en écriture est désactivé) ; il faut plus se méfier sous Linux et Mac. Le démontage propre reste de rigueur par prudence.</li>
</ul>
<ul>
<li><strong>Le RAID 5 rend les sauvegardes inutiles</strong> : FAUX !!! Le RAID 5 ne protège que contre la défaillance d’<em>un</em> disque, pas des virus, incendies, vols, bogues, mauvaises manipulations, etc.</li>
</ul>
<ul>
<li><strong>Les antivirus payants sont sans intérêt</strong> : SI, ils sont un peu meilleurs que les gratuits, notamment grâce à la réactivité supérieure dans la diffusion des signatures. <br />Par contre les autres outils des « suites » sont peu utiles : le pare-feu de Windows suffit ; un pare-feu sortant est ingérable avec toutes les applications connectées de nos jours ; la protection parentale est meilleure sur les logiciels spécialisés.</li>
</ul>
<ul>
<li><strong>Google Chrome</strong> n’est plus forcément le plus rapide des navigateurs.</li>
</ul>
<ul>
<li><strong>Une adresse IPv6 nous identifie à vie</strong> : NON, même si les adresses IPv6 contiennent une partie de l’identifiant de l’interface réseau et permettent d’identifier une machine quasiment de manière unique. Les <em>Privacy Extensions</em> forcent à changer regulièrement cette adresse ; mais l’option n’est activée par défaut que sous Windows, pas sous MacOS, Linux ou sur un <em>smartphone</em>. En tout cas ce ne sera pas à vie.</li>
</ul>
<ul>
<li><strong>Un portable trempé peut être séché au four</strong> : NON ! La température d’un four est trop irrégulière.<br />Le sèche-cheveux est à proscrire, il repousserait l’eau à l’intérieur.<br />Il faut démonter l’appareil (surtout la batterie), rincer à l’eau distillée si le portable a été noyé dans l’eau de mer, et laisser sécher plusieurs jours près d’un chauffage.<br />Si l’appareil ne fonctionne plus après cela, la garantie ne couvrira rien, et le coût de la réparation sera prohibitif.</li>
</ul>
<ul>
<li><strong>Un téléphone DECT ou un portable ne peut être espionné</strong> : SI... et ça ne coûte pas cher.</li>
</ul>
<ul>
<li><strong>Il ne faut jamais écrire un mot de passe</strong> : SI ! Il est mieux à l'abri dans un portefeuille que dans la mémoire de la machine, à portée d’un <em>malware</em>.</li>
</ul>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/L%C3%A9gendes-informatiques#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/643La Déclaration du Droits du Développeururn:md5:00f7c5442cab96869509215550361fa42009-09-11T00:00:00+02:002018-05-19T11:17:26+02:00ChristopheInformatique : l’art du développementbesoinbon senscommunicationcouragecynismedysfonctionnementdéshumanisationergonomieexpertiseinformatiqueintelligencelibertélogiciel librelogistiquemobilitémytheoffshoreoptimisationoptimismeOracleorganisationouverture d’espritpanurgismeperfectionnismepouvoir d’acheterprise de têtepsychologierésolutionsSSIItravailutopievaleuréconomieéconomie de l’attention<p>Droit à deux moniteurs, à une machine rapide, de faire bien son travail, de causer avec le commanditaire… : gadget ou nécessité ?</p> <p>Deux déclarations des Droits du Développeur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> existent dans le monde anglo-saxon à ma connaissance :</p>
<ul>
<li>sur <a href="http://www.codinghorror.com/blog/archives/000666.html" hreflang="en">Codinghorror.com</a></li>
<li>chez <a href="http://c2.com/cgi/wiki?DeveloperBillOfRights" hreflang="en">Cunningham & Cunningham</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.</li>
</ul>
<p>Elles diffèrent, je traduis/condense/commente :</p>
<h4>Le droit à deux moniteurs sur son bureau</h4>
<p>Souvent utile, parfois gadget.</p>
<p>Ça dépend vraiment de l’application. Qui passe son temps à écrire du code d’un côté et à vérifier l’exécution de l’autre aura plus l’utilité de deux petits moniteurs que votre serviteur suant devant Business Objects et sa ribambelle de panneaux et onglets. Je préfèrerais alors un seul très grand et très large écran, sauf dans mes périodes de rédaction de docs et support, où un A4 vertical serait optimal.</p>
<p>Il est clair que l’investissement de 200 € dans un écran est dérisoire par rapport au temps regagné ensuite.</p>
<p>(<strong>Ajout de 2010</strong> : Et pourtant, j’ai vu des clients où même les chefs de projet informatiques en étaient resté au tube cathodique. En France à la fin de première décennie du siècle, oui.)</p>
<h4>Le droit à une machine rapide</h4>
<p>Tout à fait d’accord, dans les limites raisonnables évidemment. Le temps perdu à compiler, à attendre que s’ouvre une grosse application, le <em>swap</em>, le manque de réactivité... concourt à perdre du temps pur, à casser la concentration, et à un certain stade le gain en temps ne devient pas que quantitatif, mais aussi qualitatif.</p>
<p>Si je ne me plains pas de ma machine de bureau actuelle, ce serait probablement le cas avec un portable : les gros logiciels serveur comme Oracle ou Business Objects XI se lancent beaucoup plus lentement sur le disque dur escargostesque du portable courant. Et je ne parle pas de VMware.</p>
<p>Même si RAM et disque dur se rajoutent facilement à peu de frais, le PC de bureau n’est pas tout. Il est toujours agréable d’avoir sa base Oracle sur une vraie machine dédiée, ou de disposer d’une collection de machines virtuelles toutes prêtes rapidement accessibles sur un serveur VMware ESX bien taillé qui ne sature pas les entrées-sorties au <em>boot</em> d’une machine virtuelle.</p>
<p>D’un autre côté, n’avoir <em>que</em> des machines rapides pousse à la fainéantise, et masque certaines grosses lacunes en réactivité pénibles pour le client final. Dans un monde idéal, le développement aurait lieu sur une machine récente, et les tests utilisateur s’effectueraient sur une configuration relativement ancienne, limitée en processeur, mémoire, éventuellement disque.</p>
<h4>Le choix de la souris et du clavier</h4>
<p>100% d’accord. Je fulmine de voir que l’ergonomie de ces outils critiques est le cadet des soucis de toutes les entreprises où je suis passé. (Par contre, certains de mes clients investissent visiblement au niveau des bureaux, chaises, support pour portables plus que pour le clavier à proprement parler ; mais je ne suis qu’un simple prestataire qui hérite plus souvent qu’à son tour de la machine la moins récente, le clavier le plus crade, et d’une chaise non réglable.)</p>
<h4>Le droit à une chaise confortable</h4>
<p>À raison de huit heures par jour de résidence, cet endroit doit être non seulement tolérable mais aussi <em>confortable</em> (“<em>Sure, you hire developers primarily for their giant brains, but don't forget your developers’ </em>other<em> assets.</em>”)</p>
<p>(<strong>Ajout de 2018</strong> : et même au-delà : la chaise est <strong>capitale</strong>. Pour certains ce sera même un balon. Vu le coût pour la Sécurité Sociale de séances de kiné interminables pour des milliers d’informaticiens ou commerciaux en voiture, il n’y a aucune tolérance à avoir : uniquement le meilleur.)</p>
<h4>Le droit à une connexion internet rapide</h4>
<p>Vue mon utilisation massive de Google et des divers sites de docs et d’aide en ligne ou de support, un internet asthmatique provoque vite frustration, énervement, et perte de productivité.</p>
<p>De nos jours, le réseau fonctionne en général bien, et si Youtube n’est peut-être pas vraiment nécessaire professionnellement, je dois parfois télécharger des gigaoctets de bases de données de client, ou d’outils d’Oracle à tester.
Pêchent souvent par contre les liaisons VPN vers les clients, avec un désastreux impact sur la productivité : dans le cas extrême d’une liaison inutilisable, un débogage se passe vingt fois plus lentement par téléphone, ou nécessite un déplacement parfois lointain coûteux en temps, fatigue, euros et CO₂<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>.</p>
<p>De plus, il n’y a pas que les <em>digital natives</em> à tomber rapidement en état de manque du réseau et de sa mine d’informations plus ou moins utiles. Couper Internet aux informaticiens, c’est s’assurer une fuite des cerveaux.</p>
<h4>Un coin au calme</h4>
<p>À l'agence je vis dans un <em>open space</em>. Chez beaucoup de clients aussi. Les bureaux à trois ne sont pas non plus terribles pour la productivité. Il n’y a pas de formule idéale, ou plutôt une formule qui change avec la tâche : <em>war room</em> pour les projets tendus ou en phase de test, et bureaux isolés pour rester concentrés ou pour téléphoner, ce qui suppose que les ordinateurs soient portables.</p>
<h4>Le droit de bien faire son travail</h4>
<p>Voici à présent les revendications non matérielles, les plus délicates.</p>
<p>Combien de fois a-t-il fallu torcher quelque chose vite fait par manque de temps ? N jours ont été vendus au client, 2N auraient été nécessaires pour tout faire calmement, donc on a tout fait en même temps, développé des morceaux sur des bases instables, testé avant la fin du développement, déployé avant la fin des tests préliminaires, et formé avant d’avoir finalisé les spécifications.</p>
<p>Évidemment dans ce cas les développeurs dépensent plus de temps et d’énergie à resserrer les boulons et à s’insulter mutuellement qu’ils n’en auraient pris à faire les choses proprement d’entrée. Bien sûr, la date de livraison a été fixée pour des raisons de politique interne au client, et/ou un temps fou a été paumé en administratif, et/ou tout a été décidé au dernier moment. Au final, personne n’est content du résultat et rejette la faute sur les autres.</p>
<h4>Le droit de choisir ses outils</h4>
<p>« On reconnaît le bon ouvrier à ses outils » dit le proverbe. Je ne me souviens pas de beaucoup de moments où j’ai pu librement choisir quelle base, quel langage, quel ETL, quel outil, quelle machine... serait utilisé. Les critères de choix portent plus souvent sur le tarif ou la compatibilité avec l’existant que sur l’aisance de développement. (Le choix de l’outil étant souvent « structurant » et engageant l’entreprise pour longtemps, je comprends parfaitement que l’opinion du développeur ne soit qu’un facteur parmi d’autres — mais rares également sont ceux qui m’ont demandé mon avis.)</p>
<p>Quand on parle de technique, et de choses pas trop chères (disque dur, RAM), il suffit parfois de demander pour avoir (à supposer que l’accord du chef suffise). Dès qu’il y a des coûts de licence impliqués, le programmeur de base n’a plus trop le choix. Les logiciels libres ont l’immense avantage de n’impliquer aucune bataille bureaucratique pour débloquer quelques euros de licence.</p>
<h4>Le droit de savoir ce qu’on lui demande, avec des priorités claires</h4>
<p>Arf arf arf.</p>
<p>Soyons juste, j’ai vu le pire comme le meilleur, des specs au crayon sur une feuille comme des dossiers archi-précis. Il y a forcément toujours des zones d’ombres, et le demandeur n’est pas toujours conscient lui-même de la complexité intrinsèque de son projet ou de l’incohérence parfois catastrophique de ses données source (<em>garbage in, garbage out</em> si logiciel != Google, et encore).</p>
<p>Mais les commanditaires doivent savoir répondre aux questions, corriger les incohérences remontées, connaître leur métier, savoir ce qu’ils veulent, accepter de vivre avec des contraintes techniques, et (ô qualité rare) arbitrer !</p>
<h4>Le droit à une communication claire et directe avec le client, l’utilisateur comme le « commanditaire »</h4>
<p>J’ai toujours haï l’effet « téléphone arabe » et les incompréhensions parfois catastrophiques nées de l’éloignement.</p>
<p>Autant j’abhorre passer mon temps sur la route pour aller chez des clients lointains, autant je sais que dans les situations un peu tendues ou floues la communication en face à face est dix fois plus efficace que mail et téléphone pour diverses raisons :</p>
<ul>
<li>les <strong>non-dits</strong> : l’interlocuteur muet après une question directe, ou affichant une moue, livre une information, un avertissement, montre un souci ; celui qui ne répond pas à un mail... peut ne pas l’avoir lu ou pas compris ;</li>
<li>la <strong>nullité de beaucoup de personnes pour s’exprimer par email</strong>, alors qu’oralement tout va bien (moi c’est l’inverse) ;</li>
<li>à l’inverse, <strong>l’incapacité de beaucoup de gens à lire un mail de plus de trois lignes</strong> (par manque de temps parfois, de cellules grises rarement, de capacité d’attention souvent) ;</li>
<li>les <strong>insinuations</strong> et autres vacheries plus ou moins gratuites que l’on n’oserait jamais par mail ;</li>
<li>la <strong>franchise entre quatre yeux</strong>, sans témoin ni trace écrite, qui permet des explications parfois très saines en cas de conflit (purement technique le conflit parfois) ;</li>
<li>la <strong>solidarité entre « gens du front »</strong> d’entités différentes mais cohabitant dans le même bureau, soudés face à leurs chefs respectifs pour le bien du projet ;</li>
<li><strong>« radio moquette »</strong> à la machine à café : on y apprend beaucoup sur un peu tout le monde, les qualités et défauts des uns et des autres, les contraintes, les <em>vraies</em> raisons de ci ou ça, le vocabulaire local (capital !), la culture du client (caricature de fonction publique ? <em>start-up</em> hystérique ? ingénieurs pointilleux ? commerciaux-girouettes ?), l’historique (toujours chargé), les <em>vrais</em> arbitrages à faire, la politique interne (de quel chef se méfier ? lequel fera pression ? lequel est ennuyé par le projet ?), les hiérarchies officielles et officieuses, les personnalités (quel chef se battra pour le projet ? lequel est une carpette ?), etc. ;</li>
<li>le <strong>contact direct avec l’utilisateur</strong> : on lit très vite un <em>brain overflow</em> sur un visage, alors que personne ou presque n’écrira « je ne comprends pas » ;</li>
<li>le <strong>lien entre humains</strong>, tout simplement : on se décarcasse beaucoup plus pour Jacquot avec qui on a déjà sympathisé autour d’un café, une secrétaire sympa qui a dépanné l’imprimante avec le sourire, un voisin de bureau qui a conseillé sur le choix d’une voiture, un utilisateur régulier dont on comprend le martyre quotidien devant un logiciel foireux... que pour des noms abstraits sur un écran.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup></li>
</ul>
<p>Le pire des cas ? La spécification retransmise à un développeur lointain (indien ou français, ce n’est pas le problème) <em>via</em> un intermédiaire obligé ignorant du sujet<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup>.
À l’inverse, je me rappelle avec émotion de sessions de développement avec des utilisateurs demandeurs deux bureaux plus loin, qui savaient ce qu’ils voulaient, répondaient aux questions, et testaient. Même avec des specs-brouillon.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Traduction imparfaite du </em>Bill Of Rights<em> qui amende la Constitution américaine, alors que la Déclaration des Droits de l’Homme constitue le préambule de toute Constitution française digne de ce nom. Différence philosophique ou simple héritage de la philogénie du droit ?</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>On remarque les vétérans du réseau à un nom de domaine avec </em>deux<em> lettres seulement.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Le CO₂ et la fatigue, l’employeur s’en fiche, bien sûr.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Je pense que réside là une des explications des dérapages de grandes entreprises : le client contacté uniquement par web ou email devient immédiatement abstrait.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>L’intermédiaire c’était moi et je n’ai pas du tout aimé.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/569BO : les bons côtésurn:md5:0228312e7e8f721b157b560ef9d3f04d2009-09-01T22:55:00+00:002011-06-03T20:44:03+00:00ChristopheInformatique : l’art du développementapparencebase de donnéesbugBusiness Objectschiffresdommagedysfonctionnementdéveloppementergonomieformationinformatiquemétainformationoptimisationprise de têteSAPSQLtravailémerveillement<p>Principe et bons côtés d’un logiciel très crispant par pas mal de côtés.</p> <p>(<em>Défoulement préalable.</em>)</p>
<p>J’ai vomi beaucoup de bile sur Business Objects <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">l’an dernier en mars</a> et <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web">août</a>. Comme je l’ai dit, je suis frustré de voir un outil conceptuellement excellent, qui à la base fonctionne, et n’est pas trop mal fichu, être plombé par :</p>
<ul>
<li>des<strong> erreurs ergonomiques atroces</strong> (ça s’améliore avec le temps) ;</li>
<li>des <strong>régressions de fonctionnalités</strong> d’une version sur l’autre qui me font passer pour un con aux yeux de mes élèves de formation (de la 6.5 à XI R2 c’était un supplice ; ça va mieux avec XI 3) ;</li>
<li>des <strong>bugs</strong> : un tableau qui se calcule mal est pénible (c’est tout de même rare), mais j’ai hurlé à cause des outils d’import-export du référentiel voire d’installation/désinstallation (!) qui déconnent complètement (ça a coûté cher à mes clients) ; évidemment de manière reproductible, et au deuxième ou troisième Service Pack ;</li>
<li>une <strong>pléthore de produits annexes</strong>, achetés au fil du temps par BO, au point que le mystère plane sur les fonctionnalités du <em>Performance Pack</em>, à moins que ce soit le <em>Productivity Management</em> (ce syndrome est courant chez tout éditeur d'une certaine taille : SAP, Oracle...) ;</li>
<li>un <strong>système de numérotation de versions illisible</strong>, rendant le point précédent encore plus douloureux (la stabilisation semble tout de même en cours) ;</li>
<li>des <strong>décisions techniques</strong> parfois débiles ou dictées par la mode ;</li>
<li>une architecture en forme de <strong>millefeuille Java, <em>très</em> lourd</strong> et complexe ;</li>
<li>des <strong>délais d’expiration</strong> de session ou d’un des innombrables services internes réglés au plus juste, sources de moults messages d’erreur tous plus abscons les uns que les autres aux yeux des utilisateurs et de la perte directe d’heures de travail ;</li>
<li>une <strong>documentation pléthorique mais trop lourde, et anti-pédagogique</strong> (avec une copie d’écran par tome, quand j’illustre mes supports de formation de deux par page) ;</li>
<li>un <strong>paramétrage</strong> fin de l’apparence par intervention directe dans les fichiers de configuration <code>.xml</code> ou <code>.properties</code>, voire directement les <code>.jsp</code> du site web (je préfère encore ça à la base de registres<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-1" id="rev-pnote-480-1">1</a>]</sup>) ;</li>
<li><strong>SAP</strong> enfin, qui vient de racheter BO, ce qui augure mal de l’avenir — leur première action a été de déplacer tout le site de support, brisant non seulement les liens externes mais aussi les liens documentaires <em>depuis leur propre produit</em> (!!) ; cette abomination me reste encore en travers de la gorge, il y a des baffes qui se perdent ; enfin, le site de SAP a toujours été un labyrinthe sans nom complètement verrouillé, même quand on a des accès (chers payés).</li>
</ul>
<p>(<em>Fin du défoulement. Soyons positif.</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-2" id="rev-pnote-480-2">2</a>]</sup>)</p>
<p>BO a réussi à s’imposer auprès de ses clients et à leur faire cracher autant d’argent (et avec SAP ça ne va pas s’arranger) pas uniquement par hasard. En comparant succinctement avec quelques produits concurrents, je me suis aperçu que BO possède quelques atouts difficiles à trouver ailleurs, surtout ensemble. Si vous connaissez un concurrent qui arrive à la cheville de BO sur ces sujets, je suis preneur !!!</p>
<h3>La notion d’univers</h3>
<p>(<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">Voir le début de cet ancien billet pour un exemple</a>.) Le principe consiste juste à stocker et masquer les tables, les jointures... nécessaires à l’interrogation des diverses bases de données dans un « univers » réutilisable. L’utilisateur ne manipule plus alors que des objets <em>Facture</em>, <em>Quantité</em>, <em>Nom</em>, <em>Date</em>, <em>Région</em>, etc. qu'il lâche dans des tableaux et, ô miracle, les calculs se font tous seuls, du moins dans les cas simples. Ne reste que la mise en page<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-3" id="rev-pnote-480-3">3</a>]</sup>.</p>
<p>Effectivement, BO vise l’utilisateur de base, totalement inculte en SQL, à le rendre indépendant du service informatique qui n’a plus à lui préparer requêtes et tableaux même s’il doit concevoir l’univers. Évidemment, dans les cas un peu tordus réclamant acharnement, sens logique ou compréhension des subtilités du produit, le rapport atterrit toujours à l’informatique ou chez un consultant.</p>
<p>Il existe deux types d’objets principaux dans l’univers :</p>
<ul>
<li>les <strong>indicateurs</strong> : en gros, ce qui se somme (montants, nombre de clients...) et ce qui s’en déduit (taux, moyennes, extrêmes...) ;</li>
<li>les <strong>dimensions</strong> : le reste (dates, lieux, produits, gammes, clients, types, propriétés et statuts divers...), regroupés en plusieurs niveaux plus ou moins hiérarchiques.</li>
</ul>
<h3>Le tableau indépendant ; la notion de contexte de calcul</h3>
<p>En voyant (<em>très</em> succintement) <a href="http://fr.wikipedia.org/wiki/JasperReports">JasperReports</a>, un des concurrents libres, j’ai eu l’impression de revenir dix ans en arrière, sur Access ou Oracle Reports, avec une requête tapée à la mimine servant de base au rapport, un affichage ligne à ligne et des sommes calculées à coup de variables incrémentées.</p>
<p>BO par contre considère que l’on peut poser un tableau n’importe où dans la page et que les objets (issus de l’univers) qui y sont jetés se calculent en fonction de leur <em>contexte</em>, c’est-à-dire de leur position dans ce tableau (corps, pied de page, pied de rupture...), et des filtres ou sections de page où se situe ce tableau.</p>
<p>Prenons un tableau de base de l’univers de démonstration (une agence de voyages) : <img src="https://www.coindeweb.net/blogeclectique/images/bo/BO1-d%C3%A9tail.jpg" alt="" style="display:block; margin:0 auto;" />
Je copie un tableau plein de colonnes (<code>Ctrl</code> et déplacement) puis j’en enlève des dimensions : les chiffres s’agrègent automatiquement. <img src="https://www.coindeweb.net/blogeclectique/images/bo/BO3-agr%C3%A9g%C3%A9.jpg" alt="BO3-agrégé.jpg" style="display:block; margin:0 auto;" /></p>
<p>Les cellules des tableaux se remplacent, s’échangent par glisser-déplacer, c’est la partie la plus agréable — voire impressionnante — du développement de rapports. Et en deux clics (littéralement) on rajoute une somme ou une répartition par pourcentage.<img src="https://www.coindeweb.net/blogeclectique/images/bo/BO2-r%C3%A9partition.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<p>S’ajoutent ensuite les filtres. Dans un tableau des ventes par pays on peut choisir de n’en afficher que certains, nommément comme <code>[Pays]=France</code>, selon un critère du type <code>[Chiffre d’affaire] > 100000 €</code>, voire en ne demandant que le « top 10 ». Les totaux de bas de tableau tiennent compte de ce filtre.</p>
<p>Un clic droit, et ce tableau peut devenir un graphique (qui est juste une forme particulière de tableau<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-4" id="rev-pnote-480-4">4</a>]</sup>). Là aussi les filtrages, ajouts ou suppression d’objets peuvent se faire à volonté.</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/bo/BO5-camembert.jpg" alt="" style="display:block; margin:0 auto;" />
<img src="https://www.coindeweb.net/blogeclectique/images/bo/.BO7-graphique_m.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<p>Malheureusement le jeu de tableaux offerts par BO est relativement pauvre au-delà des classiques camemberts et barres empilées. Une simple pyramide des âges d’une population est un petit projet. Par rapport à <a href="http://www.visualcomplexity.com/vc/" hreflang="en">Visualcomplexity</a>, <a href="http://www.worldmapper.org/" hreflang="en">Worldmapper</a> ou <a href="http://www.gapminder.org/" hreflang="en">Gapminder</a>, BO retarde de deux générations. Même la cartographie est absente (il y a des <a href="http://galigeo.com/">produits séparés pour cela</a>).</p>
<p>Les <strong>ruptures</strong> offrent tout ce qu’on peut désirer comme pieds de tableaux, agrégations intermédiaires, etc. Et j’utilise énormément les <strong>sections</strong> de page : elles permettent par exemple de reproduire le même jeu de tableaux, libellés, graphiques... en fonction d’un paramètre (ce qui donne une page par service par exemple).</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/bo/BO6-section.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<h3>Variables</h3>
<p>Les variables (des formules de calcul entre les différents objets) diffèrent d’Excel : elles ne font pas référence à des cellules mais aux objets du tableau.</p>
<p><strong>Exemple</strong> : On définit <code>[CA par client]</code> par <code>[Chiffre d'affaire]/[Nombre clients]</code>. On obtient donc un nouvel objet que l’on pourra rajouter dans n’importe quel tableau.</p>
<p>Ce nouvel objet sera lui calculé en mémoire, la base n’est pas impliquée. Avec les machines de bureau actuelles, calculer plein de choses dans le document est souvent plus simple et rapide que de le faire faire par la base de données.</p>
<p>Les fonctions disponibles pullulent. Certaines consistent en altération du contexte, par exemple pour récupérer une donnée qui n’est pas de même niveau d’agrégation (par exemple un pourcentage par rapport au total du tableau <code>=[Indicateur] / [Indicateur] <em>Dans</em> Bloc</code>. Très pratique une fois maîtrisées les formules pour certains clients qui ont des règles de calcul chinoises.</p>
<p>Hélas les variables doivent être recréées dans chaque document. L’utilisateur ne peut les mutualiser. L’univers ne peut les accueillir non plus, il ne sert qu’à traduire les objets prédéfinis en SQL. On peut vouloir rajouter plein d’objets précalculés dans l’univers, mais dès qu’il s’agit de taux et d’objets difficilement agrégeables, les limites du produit apparaissent<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-5" id="rev-pnote-480-5">5</a>]</sup>. Franchement, si je devais rajouter <em>une</em> fonctionnalité dans BO, c’est la possibilité de mettre du code de document Webi (le code des variables) dans des objets de l’univers<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-6" id="rev-pnote-480-6">6</a>]</sup>.</p>
<p>Soyons juste, j’ai vu des bugs hallucinants à base de calculs de sommes cumulatives d’objets issus de plusieurs requêtes. Ou encore, des choses incompréhensibles à cause de nombreuses requêtes jointes dans le document <em>via</em> des clés incomplètes (du doublonnage a tendance à apparaître). Au moins est-on dans un domaine très tordu.</p>
<h3>Autres points forts</h3>
<p>Cerises sur le gâteau :</p>
<ul>
<li>BO sait <strong>automatiquement prendre en compte des tables d’agrégats précalculées</strong>. <br />Par exemple, soient une table des ventes par jour, et une autre par mois. Il « suffit » d’indiquer dans l’univers dans la définition de chaque indicateur que les deux possibilités existent (au lieu de <code>VENTES.CA</code> on indiquera <code>@Aggregate_Aware(VENTES_MOIS.CA, VENTES_SEMAINE.CA, VENTES.CA) </code>). BO saura choisir la table en fonction des clés disponibles et des objets qu’on lui aura indiqué comme « non compatibles » avec les tables agrégées. Il est dommage que le système des hiérarchies ne soit pas assez fin et automatisé pour trouver les incompatibilités tout seul...</li>
</ul>
<ul>
<li>BO sait gérer des <strong>hiérarchies de dimensions</strong> (<em>Région</em>/<em>Département</em>/<em>Ville</em> ou <em>Secteur</em>/<em>Gamme</em>/<em>Produit</em>/<em>Référence</em>...) ce qui est la base du mode d’affichage <em>Exploration</em>. <br />Les gens du contrôle de gestion <em>adorent</em> « zoomer », c’est-à-dire partir d’un tableau par année/pays, cliquer simplement dedans pour chercher les anomalies, descendre en quelques secondes au niveau année/magasin, puis semaine/rayon, et remonter tout aussi vite à semaine/pays.</li>
</ul>
<ul>
<li>BO sait <strong>générer plusieurs requêtes séparées quand plusieurs indicateurs viennent de tables différentes</strong>. Et il semble que la concurrence ait un sérieux retard là-dessus.<br />Avec une table des ventes par magasin et une autre des surfaces par magasin (soit deux tables de faits dans un système décisionnel), BO génère deux requêtes (sans jointure externe), effectue <em>en mémoire</em> la jointure (cette fois doublement externe !), et crée un tableau avec magasin, ventes et surface, permettant toutes les astuces d’affichage ou le calcul d’un simple ratio des ventes/m².<br />En théorie, une seule requête pourrait suffire (et c’est ce qui se passe si les indicateurs viennent de la même table), mais le problème des dimensions pas forcément communes rend le problème parfois... intéressant.<br />Si les informations viennent carrément de deux bases de données différentes (deux univers), l’utilisateur doit faire les deux requêtes lui-même (BO ne peut pas savoir que fonctionnellement ce sont des choses voisines), mais une fois les jointures indiquées manuellement, BO se débrouille aussi bien avec deux univers (deux bases même) qu’avec un seul.</li>
</ul>
<p>Évidemment, le diable est dans le détail, et si les bases mathématiques et logiques sont solides, les pièges abondent pour les concepteurs d’univers. L’expert en SQL peut soupirer : dans certains cas il ferait mieux de réécrire les requêtes à la main comme au bon vieux temps ; il s’agit en général d’agrégats tordus qu’un <a href="http://fr.wikipedia.org/wiki/Extract_Transform_Load">ETL</a> peut parfaitement calculer aussi. (Le problème se déplace alors sur le terrain de « ai-je besoin d’un ETL pour alimenter mes tables ? » ce qui n'est pas le sujet ici mais je me pose parfois la question<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-7" id="rev-pnote-480-7">7</a>]</sup>.)</p>
<h3>Gadgets supplémentaires</h3>
<p>À part Web Intelligence, le système de requêtage décrit ci-dessus, avec trois éditeurs différents (!), la suite de BO <del>offre</del> vend :</p>
<ul>
<li>un portail web assez lourd où iront vivre les documents ;</li>
<li>toute une infrastructure de sécurité à base de « référentiel », très très très fine, jusqu’à l’absurde, pleine de bugs subtils dans les mises à jour de version ;</li>
<li>tout un système de distribution : la mise à jour quotidienne/mensuelle... d’un document peut être envoyée comme PDF, Excel... par mail, FTP... à beaucoup de monde ;</li>
<li>un système de <em>web services</em> , terme très à la mode, mais c’en est la première utilisation massive efficace que je vois : un bout de tableau ou un graphique issu d’un document extrêmement travaillé plein de formules devient une simple source de données XML réutilisable ; des produits externes utilisent cette technique pour s’interfacer avec BO ;</li>
<li>un <em>plugin</em> pour Office qui permet de baser des tableaux Excel ou des animations Powerpoint à des morceaux de documents Webi : les données se rafraîchissent directement dans Excel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-8" id="rev-pnote-480-8">8</a>]</sup> ;</li>
<li>des <em>widgets</em>, totalement gadgets, pour avoir un graphique qui se met à jour régulièrement en fond d’écran ;</li>
<li>plein d’autres trucs que je ne nommerais car 1) je les connais mal ou pas du tout et 2) ils changent souvent de nom entre deux versions !</li>
</ul>
<p>Évidemment tout cela est propriétaire en diable, et coûte les yeux de la tête (je rappelle qu’on parle d’un produit de l’équivalent français de Microsoft ou Oracle, racheté par SAP, hein).</p>
<h3>Bref</h3>
<p><em>Si</em> le travail préparatoire a été bien fait, c’est-à-dire si l’univers permet bien de tout croiser, que des tables d’agrégat sont en place pour optimiser, c’est-à-dire <em>si</em> une alimentation de <em>datawarehouse</em> digne de ce nom est en place (dénormalisée en diable, pas trop « floconnée », indexée à donf’), <em>et</em> que l’on a fait comprendre aux utilisateurs la distinction entre infocentre (pour des listes simples) et <em>datawarehouse</em> (à but décisionnel, <em>non</em> adapté aux listes de clients ou de patients), <em>et</em> que tout le monde a été suffisamment formé sur ces outils et cherche à les comprendre, <em>alors</em> BO se révèle un super outil...</p>
<p>Pour plus de détails, <a href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0455291-6964-2b10-aca2-aedb673c04c1" hreflang="en">voir par exemple ce Powerpoint pas mal fait</a>.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-1" id="pnote-480-1">1</a>] <em>Il faudra tout de même y plonger pour désinstaller complètement le Tomcat inclus dans BO.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-2" id="pnote-480-2">2</a>] <em>On notera que pour une fois je vais dire du bien d’un produit SAP, occasion probablement unique dans l’histoire de l’humanité.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-3" id="pnote-480-3">3</a>] <em>Qui, comme tout développeur sait, générera plus d’attention, de remarques, et coûtera plus de temps, que tous les chiffres du tableau.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-4" id="pnote-480-4">4</a>] <em>On dit « bloc » pour désigner un tableau ou un graphique.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-5" id="pnote-480-5">5</a>] <em>Plus en détail : pour les taux, moyennes, décomptes, XI 3 a introduit les « indicateurs intelligents », qui peuvent être agrégés au niveau de la base : la requête SQL est réécrite à chaque changement de contexte de calcul (dans une colonne, un pied de tableau, de page...). C’est une avancée, mais limitée : dès que des opérations ou des filtres s’effectuent sur un tableau, BO ne sait pas les retraduire en SQL, et l’indicateur agrégé devient indisponible. De plus, ce système multiplie les lourdes requêtes à la base (BO semble ignorer la syntaxe du <code>ROLLUP</code> et autres finesses d’Oracle, et crée un ordre SQL par niveau d’agrégation...). Les indicateurs intelligents ne résolvent pas non plus d’autres difficultés : par exemple, en décisionnel, un ratio de deux indicateurs issus de deux étoiles différentes ne pourra jamais s’exprimer directement en SQL car chaque indicateur vient d’une requête différente, et BO fait la jointure en mémoire, pas dans le SQL (on peut se débrouiller en rajoutant une étoile faite juste pour cela, mais ça fait un « contexte » de plus à maintenir dans l’univers). Pour un autre aperçu des indicateurs intelligents, voir par exemple <a href="http://www.dagira.com/2008/11/10/designer-xi-3-new-feature-database-delegated-measures/" hreflang="en">ici</a></em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-6" id="pnote-480-6">6</a>] <em>En laissant de côté le problème des performances qui oblige à d’autres compromis, je reste donc sur l’idée que la solution définitive est de requêter une seule fois, au plus bas niveau de détail, puis d’effectuer le calcul final en mémoire dans les tableaux, comme BO a toujours su le faire ; mais avec en plus possibilité de définir les variables <strong>dans l’univers</strong> à partir d’autres objets de cet univers. Si de plus l’analyse de la syntaxe se fait à l’exécution (comme d’ailleurs c’est le cas pour le SQL généré), on pourrait même créer des objets qui en utiliseraient d’autres issus d’autres univers !</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-7" id="pnote-480-7">7</a>] <em>Avis express : dans le cas où l’ETL a ses limites en performance (<a href="http://fr.talend.com/">Talend</a>), et qu’on ne manipule pas de bases hétérogènes, un caïd des vues, des <a href="http://lalystar.developpez.com/fonctionsAnalytiques/">fonctions analytiques d’Oracle</a> et du <a href="http://didier.deleglise.free.fr/plsql/intro_pl.htm">PL/</a> ou <a href="http://en.wikipedia.org/wiki/Transact-SQL" hreflang="en">Transact-SQL</a> peut s’avérer un ETL en </em>meatware<em> efficace.</em> (<strong>Ajout de 2011</strong> : Quoiqu’avec le temps je suis de plus en plus pro-ETL. Enfin, ça dépend de l’ETL.)</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-8" id="pnote-480-8">8</a>] <em>Si BO a un ennemi mortel, c’est Excel : tout le monde le maîtrise ou croit le maîtriser ; les graphiques y sont bien plus fins ; et on peut toujours y caser au chausse-pied des données issues de partout alors que BO exige un certain travail préparatoire. D’un autre coté, la manipulation des données et leur conversion en différents graphiques se fait plus aisément sous BO, et sans le </em>plugin<em>, Excel ne peut être rafraîchi qu’à grand coup d’exports/réimports manuels.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/480Quel détour pour gratter quelques centimes sur le prix de l’essence ?urn:md5:05a14ee802e3a319a5f8c22200199be52009-06-16T00:00:00+00:002010-10-17T19:46:10+00:00ChristopheTout petit mondeanticonsumérismeargentbesoinbon senschiffresgaspillagemicroéconomieoptimisationpollutionpouvoir d’acheterpétrolevaleuréconomieéconomies d’énergieénergie<p>Dilemme courant : cela vaut-il le coup de faire un détour de <code>X</code> kilomètres pour gratter <code>Y</code> centimes d’euros sur le plein ?</p>
<p>Faut-il faire un détour pour gratter 10 centimes d’euro au litre ? 1 centime ? Combien dépensé-je pour ce détour ?</p> <ul>
<li>Configuration : ma vieille Clio, réservoir 40 ℓ <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/rentabilite-d-un-detour#pnote-476-1" id="rev-pnote-476-1">1</a>]</sup>, conso estimée 8 ℓ/100 km, essence à 1,20 €/ℓ.</li>
</ul>
<ul>
<li>Détour de <strong>5 km</strong> (c’est vite fait, 5 km !) <strong>pour gratter 1 centime</strong> d’euro : 40 centimes de gain, mais... 0,48 € brûlés pour le détour : <strong>perte nette de 0,08 €</strong>, plus 1 kg de CO₂ en l’air en plus, plus le temps perdu.</li>
</ul>
<ul>
<li>Détour de <strong>1 km pour gratter 10 centimes</strong> : <strong>gain net 3,90 €</strong>.</li>
</ul>
<p>Bref, il ne vaut pas la peine de faire un détour. On se limitera à arbitrer entre les stations proches des endroits où l’on est sûr de passer.</p>
<p>De manière plus générale, le gain :</p>
<ul>
<li>augmente avec la capacité du réservoir (on achète plus pour le même détour),</li>
<li>se réduit avec la consommation au kilomètre, et au prix de l’essence (le détour coûte de plus en plus cher),</li>
<li>se réduit avec la différence de prix gagnée (évidemment !).</li>
</ul>
<h3>Cas extrêmes :</h3>
<ul>
<li>il est rentable pour une berline super-sobre (1 ℓ aux 1000 km) de faire un détour de 100 km pour gratter 1 centime sur le prix au litre (pour y gagner 1 €) ;</li>
<li>ça reste même rentable pour un char d’assaut (300 ℓ aux 100 km, réservoir de 1 m³, à la louche), de faire un détour de 100 km pour bénéficier d’essence gratuite au lieu du tarif pour civils (si son porte-char n’est pas disponible ; non comptée l’usure des chenilles et des routes au passage) ;</li>
<li>le jour où le carburant sera à 10 € le litre, un détour de 1 km ne sera même pas rentable.</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/rentabilite-d-un-detour#rev-pnote-476-1" id="pnote-476-1">1</a>] <em>Soit dit en passant, l’abbréviation de « litre » peut être ℓ, l (si pas d’ambiguïté avec 1) ou le L (majuscule), <a href="http://www1.bipm.org/jsp/fr/ViewCGPMResolution.jsp?CGPM=16&RES=6">selon le Bureau International des Poids et Mesures</a>. On m’avait expliqué un jour que le ℓ correspondait à l’ancienne définition d’un kilogramme d’eau, tandis que le L désignait un synonyme strict du dm³, mais je ne retrouve ceci nulle part.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/rentabilite-d-un-detour#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/476Extension de garantie (suite) : cas réel et pratiqueurn:md5:1b71da246bd211c95426f0d527fe3dac2008-09-18T21:22:00+00:002011-06-01T17:36:30+00:00ChristopheGuerre au marketinganticonsumérismeargentbesoinbon sensextension de garantiehowtomanipulationmicroéconomieoptimisationoptimismepouvoir d’acheterspéculationsécuritévaleuréconomie<p>Il y a plus d’un an et demi, <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/01/28/253-extension-de-garantie">je m’interrogeais sur la pertinence des extensions de garantie proposés avec assistance par Darty, Fnac et consorts</a>. Mise en application puisque mon enregistreur numérique est mort...</p> <p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/01/28/253-extension-de-garantie">Comme je l’ai raconté ici plus d’un an après ce billet</a>, mon enregistreur numérique a été atteint d’une forme d’Alzheimer. Il a fait un aller-retour au SAV chez Darty et deux semaines plus tard il fonctionne à nouveau.</p>
<p>L’appareil a presque trois ans, il valait plus de 550 € à l’achat. Un appareil équivalent neuf vaut de nos jours encore plus de 300 €, avec quelques fonctionnalités en plus peut-être.</p>
<p>L’extension de garantie que j’avais prise se montait à 89 €, alors que la facture de la réparation (disque dur, ventilateur, <em>firmware</em>) s’est chiffrée à 96 € TTC (non payés bien entendu). Le gain est déjà net. Sur un appareil d’électronique pure aussi complexe (après tout, c’est un PC !), et à l’époque assez nouveau, les chances de défaillance étaient élevées, et je m’étais dit à l’époque que le prix en valait le risque. Il reste deux ans de garantie à courir.</p>
<p>D’un autre côté, les 89 € en question auraient pu être investis dans une Freebox qui, en version 5, possède aussi un (petit) disque dur pour enregistrer la télé. J’ai cependant bien l’intention de l’avoir pour moins cher que les 90€ officiels, soit en remplacement de la v4 actuelle si elle défuncte, soit grâce à la dégressivité du prix — mais je n’ai que douze mois d’ancienneté officielle depuis mon dégroupage total. Mais je ne suis pas pressé du tout et la configuration actuelle me convient parfaitement. Enfin, comment aurais-je pu savoir en 2005 ce dont serait capable la Freebox v5 de 2006 ?</p>
<p>Une remarque : pour un appareil aussi cher, la garantie simple de deux ans est tout de même insuffisante. Peut-on l’allonger légalement sans encourager un marché gris de produits d’import qui n’intégreraient pas dans leur prix la réparation des appareils défaillants et la R&D pour des appareils plus fiables ? C’est typiquement le genre de décision qui doit se prendre au niveau continental.</p>
<p>De plus, écologiquement il est plus intelligent de faire réparer un morceau d’électronique qui peut encore rendre bien des services, que de l’envoyer au recyclage (ou pire) et d’en importer un nouvel exemplaire d’Asie.</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/09/18/543-extension-de-garantie-suite-cas-reel-et-pratique#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/478Des kilo-octets pour un bit de véritéurn:md5:8899ce905d0319a93e553af99dfb2bd02008-04-13T22:33:00+00:002011-05-28T20:01:24+00:00ChristopheInformatique militante et technologiecomplexitégaspillageinformatiqueLinuxMacOSoptimisationUnix<p>Les Unix actuels gaspillent des hecto- voire des kilo-octets pour cracher un simple booléen !</p> <p>Je suis abonné à <em><a href="http://thedailywtf.com/" hreflang="en">The Daily WTF</a></em> (“<em>What The Fuck?</em>” étant une expression d’interrogation et de surprise ébahie devant un problème contrariant), site répertoriant périodiquement un grand nombre d’abominations informatiques rencontrées dans la vie réelle, des messages d’erreur absconts et amusants aux tragiques sites bancaires développés par des débutants autodidactes qui réinventent la roue, mais carrée.</p>
<p><a href="http://thedailywtf.com/Articles/The-Comcast-Bill,-A-Buggy-Traffic-Light,-and-More.aspx" hreflang="en">Une livraison de février</a> attirait l’attention sur un script de Solaris (<code>/bin/true</code>), dont la seule utilité est de renvoyer la valeur vraie pour indiquer qu’il s’est exécuté correctement. Il y a aussi un <code>/bin/false</code>. Laissons de côté l’hypothétique utilité (je suis preneur d’exemples pour ma culture). Le commentateur avait été horrifié par le <code>copyright</code>, et le numéro de version 1.6 (!). Le fichier faisait plus de 300 octets de commentaires (aucun code exécutable, la fin du fichier menant à une sortie avec un code de succès).</p>
<p>Et sous mes OS favoris ?</p>
<ul>
<li>Sur Mac OS :</li>
</ul>
<blockquote><p><code>$ ll /usr/bin/true</code><br /><code>-r-xr-xr-x 1 root wheel <strong>13580</strong> Mar 21 2005 /usr/bin/true</code><br /> <br /><code>$ file /usr/bin/true</code><br /><code>/usr/bin/true: Mach-O executable ppc</code> (oui, j’ai un vieux Mac).</p></blockquote>
<ul>
<li>Sous Linux Debian Etch :</li>
</ul>
<blockquote><p><code>$ ll /bin/true</code><br /><code>-rwxr-xr-x 1 root root <strong>11680</strong> 2007-01-30 19:51 /bin/true</code></p></blockquote>
<p>Soit de 11 à 13 ko pour... rien ! Ou plutôt, juste une valeur true, soit <em>un bit</em> d’information. Il a existé des ordinateurs qui avec beaucoup moins de kilooctets de mémoire ont calculé des choses bien plus complexes (genre tables balistiques ou calculs scientifiques pour concevoir une bombe A ou H, ou quoi que ce soit qu’un ordinateur devait faire en 1945).</p>
<p>Dans les deux cas, on n’a pas de script comme l’exemple du WTF sous Solaris, mais des exécutables complets. Que contiennent-ils ? Je n’ai pas pris la peine de charger le code source mais j’ai juste fait un <code>strings</code> sur la version Linux à la recherche des chaînes incluses, et au milieu d’un kilooctet et demi de texte je trouve :</p>
<blockquote><p>Jim Meyering<br />5.97<br />GNU coreutils<br />write error<br /> <br />Written by %s.<br />Written by %s and %s.<br />Written by %s, %s, and %s.<br />This is free software. You may redistribute copies of it under the terms of<br />the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.<br /> There is NO WARRANTY, to the extent permitted by law.<br /> <br /></p></blockquote>
<p>Enfoncé, Solaris et sa version 1.6 ! GNU est déjà à la 5.97.</p>
<p>Bon, je veux bien que <code>true</code> ne soit que l’un des nombreux utilitaires de <code>coreutils</code>, d’où le numéro, et que par défaut n’importe quel exécutable doit chez GNU répondre à divers critères, dont répondre aux paramètres <code>--help</code> et <code>--version</code>, et que de toute façon tout cela n’a aucune importance vu que le moindre <em>shell</em> (même <a href="http://en.wikipedia.org/wiki/Debian_Almquist_shell" hreflang="en">dash</a>) possède en réalité la commande <code>true</code> en interne, qui ne renvoie rien (et donc cet exécutable est en plus inutile en plus d’être boursouflé !).</p>
<p>Si un bit occupe 11 à 13 ko sur tous les Unix du monde, quel est l’ordre de grandeur du gaspillage de l’informatique au niveau mondial ? Quiconque a utilisé Vista, BO XI... sait que les marges de progression sont encore énormes, même si la loi de Moore devenait caduque demain.</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/04/13/500-des-kilo-octets-pour-un-bit-de-verite#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/407Coloniser le désert de Gobi plutôt que Marsurn:md5:45b82bb0348d0d477ca2729527ce7e752008-02-19T20:08:00+00:002011-05-26T19:14:06+00:00ChristopheMarsbesoinbon sensChinecivilisationcolonisationconquête de l’inutileconquête spatialecosmologiecourt termedilemmedommagedémographieeaueffet de serreenvieEuropeexaptationgigantismegravitationincohérenceintelligence artificielleMarsmytheoptimisationparadoxepessimismerobotssciencescience-fictionspéculationéconomieÉtats-Unisévolution<p>Une provocation de Bruce Sterling : pourquoi conquérir un but aussi éloigné que Mars quand les déserts terrestres nous tendent les bras ?</p> <p>C’était en 2004. <a href="http://fr.wikipedia.org/wiki/Bruce_Sterling">Bruce Sterling</a>, rien moins que l’un des fondateurs du mouvement SF <a href="http://fr.wikipedia.org/wiki/Cyberpunk">cyberpunk</a>, ramenait violemment sur Terre tous les rêveurs qui, de moi à <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2005/12/09/52-mars-la-blanche">Brian Aldiss</a> ou <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/06/01/349-red-mars-green-mars-blue-mars-de-kim-stanley-robinson">Kim Robinson</a>, s’imaginent entamer la colonisation de Mars dans quelques décennies au maximum.</p>
<blockquote><p><em><a href="http://www.boingboing.net/2004/01/08/sterling_ill_believe.html" hreflang="en">“I’ll believe in settling Mars when I see people settling the Gobi Desert.”</a></em> <br /> <br />(« Je croirai à la colonisation de Mars quand je verrai des gens coloniser le désert de Gobi. »)</p></blockquote>
<p>Son idée est que Gobi est sans intérêt, et trop inhospitalier pour bon nombre de raisons. Et les gens qui s’y établiraient délibérément seront les premiers candidats à la vie sur une Mars qui est mille fois plus aride, plus inhospitalière que Gobi. Il ajoute que la civilisation possédant une technologie capable de terraformer Mars se sera d’ailleurs elle-même transformée en chemin, ce qui rend vaine toute supposition sur ses motivations. (Le thème des humains modifiés, génétiquement ou par implants, occupe d’ailleurs la place centrale de ses livres.)</p>
<p>Sterling ne dit pas qu’<em>aller</em> sur Mars, ou y laisser une base avancée, est utopique. Des scientifiques occupent des bases en Antarctique, mais personne ne songe à <em>coloniser</em> ses arpents de neige. Ce sera pareil pour Mars.</p>
<p>(Fin de résumé/paraphrase.)</p>
<p>Diantre, que de pessimisme de la part d’un personnage qui par profession serait normalement plus enclin à voir l’homme se répandre dans la Galaxie ! Mais le rêve n’empêche manifestement pas de savoir garder les pieds sur terre.</p>
<h3>Le Paradis de Gobi contre le cauchemar martien</h3>
<p>On aura beau jeu de rétorquer que le désert de Gobi <em>est</em> habité. <a href="http://dinosoria.com/desert_gobi.htm">Par quelques nomades mongols et leurs troupeaux</a>. Pourtant Gobi fait partie d’un pays surpeuplé, la Chine. Si Mars était seulement aussi aride — et malgré tout « habitable » — que Gobi, ou que la froide Sibérie, ou que le Kalahari, et distant d’un jour de marche, oui, certains nomades et quelques ermites iraient sans doute s’y établir.</p>
<p>Mais Mars est à 55 millions de kilomètres (strict minimum), les tempêtes y sont apocalyptiques, et il n’y a rien à y respirer. Les habitants de Gobi ne possèdent pas d’astronef interplanétaire, ont besoin d’oxygène, et ne doivent pas considérer leur zone comme surpeuplée, donc ils ne vont pas sur Mars.</p>
<p>À l’inverse, des habitants de zones surpeuplées cherchant de la place ne vont même pas dans les déserts proches (Gobi, Sahara ou Arizona). Et ce alors que la technologie humaine, antique ou actuelle, y permet la survie, et que le lien avec les zones plus peuplées est « rapide » (des heures d’avion ou des jours de chameaux au pire). Exception : Las Vegas, qui n’est là justement que comme partie d’une nation beaucoup plus habitable.</p>
<p>Pour Mars, il faut des mois de voyage, et le soutien technologique d’une superpuissance pour y survivre. Pour les mêmes raisons que Mars, l’Antarctique n’est pas colonisée (au pire elle sera exploitée pour son pétrole, son cuivre ou son zinc par quelques techniciens).</p>
<h3><em>Freakonomics</em> appliqué à Mars</h3>
<p>Bref, comme dirait <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/10/30/292-freakonomics-de-levitt-dubner">Levitt</a>, finalement c’est économique, on ne va que là où c’est économiquement réaliste.</p>
<p>Ajoutons trois choses :</p>
<p>D’abord, même si envoyer du monde sur Mars devenait aussi facile que vers la Lune grâce à Dieu sait quel mode de propulsion, et devenait cent fois moins cher grâce à la mise en place d’un <a href="http://fr.wikipedia.org/wiki/Ascenseur_spatial">ascenseur spatial</a>, une colonisation massive (des millions de personnes) resterait utopique, ou serait en tout cas effroyablement ruineuse. Bref, Mars deviendrait au mieux un territoire vierge où on rencontrerait ici ou là un hameau, une base scientifique, une petite ville. On est loin de l’Europe du XIXè siècle qui déversait ses excédents de population en Amérique.</p>
<p>Ensuite, la motivation des colons entre évidemment en compte. Qui va effectuer un voyage dangereux, long (des mois, probablement), pour un lieu désolé, où rien ne pousse, où il n’y a aucune industrie ? Des scientifiques, des fous, des aventuriers, des touristes, des techniciens du calibre de ceux qui vont sur les plate-formes pétrolières. (Les pauvres désespérés, SDF parisiens ou paysans du Sahel, ne pourront jamais s’offrir le billet, et personne ne leur offrira sans bonne raison, notamment sans une société martienne <em>déjà</em> présente.)</p>
<p>Vu le prix du billet, du séjour et du ravitaillement, et l’ensoleillement, je doute cependant que Mars devienne une destination aussi courue que les plages tunisiennes ; en tout cas il ne faut pas espérer qu’une société martienne puisse vivre des quelques touristes qui pourront aller là-bas juste admirer <em>Valles Marineris</em>.</p>
<p>D’autre part, pour « exploiter » les touristes, il faut une infrastructure déjà en place, donc du monde, ce que n’importe quel pays du Tiers Monde possède, mais pas Mars. Ce monde (conjoints, famille, médecins, coiffeurs, policiers, administratifs...) viendra en soutien des travailleurs (techniciens miniers ou GO du Club Méd’), et donc on revient au problème principal : que faire sur Mars d’intéressant, c’est-à-dire d’<em>économiquement rentable</em> ?</p>
<p>Enfin, notre espèce n’est peut-être sociale, mais elle est en tout cas grégaire<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/19/395-coloniser-le-desert-de-gobi-plutot-que-mars#pnote-354-1" id="rev-pnote-354-1">1</a>]</sup>. La surpopulation locale n’est pas un problème : le taux d’urbanisation s’envole depuis deux siècles, les Chinois s’entassent sur leur côte est, les Américains dans quelques mégalopoles, les Français pour une bonne partie en région parisienne, etc. Le désert de Gobi n’est pas près d’être colonisé quand la Creuse, bien plus accueillante, se dépeuple. La population mondiale a explosé, mais les guerres pour des terres à coloniser n’existent quasiment plus entre États modernes. Nous ne sommes plus à l’époque des grands défrichements de l’apogée du Moyen Âge, ni de la conquête du <em>Far West</em> par des fermiers arrivés d’une Europe surpeuplée : dans notre civilisation industrielle les gens vont là où il y a du travail, et tant pis pour les prix délirants de l’immobilier. Je ne crois pas au télétravail pour inverser rapidement et massivement la tendance.</p>
<h3>Trop cher</h3>
<p>Oui, la conquête de Mars est romantique, c’est la prochaine étape de la conquête spatiale, le premier des objectifs difficiles, lointains mais réalistes que nous pouvons nous donner. Les Américains ou les Chinois iront sur Mars, oui, motivés d’abord par la gloriole. Et comme pour la Lune, ce sera sans doute juste pour planter un drapeau, collecter quelques cailloux, et repartir. Le prix effroyablement élevé d’une base permanente ne se justifie que très difficilement, alors pour une population plus importante, il faudra un intérêt économique supposé, même aléatoire.</p>
<p>Pour la <a href="http://fr.wikipedia.org/wiki/Station_spatiale_internationale">station spatiale internationale</a>, la justification scientifique est déjà tellement « limite » que les gouvernants hésitent à lâcher les milliards nécessaires. C’est d’ailleurs là que se situe le principal obstacle pour des projets de cette échelle : seuls des gouvernements d’États-continents (USA, Chine, Europe) peuvent aligner l’argent ; les projets privés sont irréalistes. Et un gouvernement est imperméable au romantisme. Christophe Colomb a été sponsorisé par l’Espagne pour rechercher des routes commerciales, pas pour faire de la recherche fondamentale en géographie.</p>
<p>Pour relancer la conquête de la Lune, <a href="http://www.onversity.net/cgi-bin/progactu/actu_aff.cgi?Eudo=bgteob&P=00000910">la NASA parle d’y chercher l’Hélium-3 qui alimenterait les centrales à fusion de la deuxième moitié du siècle</a>. Objectif douteux, et trop lointain, vaguement plausible. Mais la Lune est à trois petits jours de voyage. Accessoirement, pour utiliser des centrales à fusion à hélium, il faudrait déjà maîtriser celles à hydrogène — on en reparle en 2060.</p>
<p>J’ai du mal à imaginer ce qui serait exploitable sur Mars. Du pétrole ? Il aurait fallu des forêts autrefois. Du minerai ? Lequel ? Du CO₂ ? Nous en avons même trop, et Mars pas assez. Cependant, même si des mers de pétrole ou des mines de platine pur y était découvertes, le prix du transport serait tel que cela n'en vaudrait pas la chandelle. Quant à d’autres besoins... lesquels ? Que pouvons-nous faire sur Mars (hors l’étude de Mars) qui ne soit possible beaucoup plus près comme sur Terre, sur la Lune, ou simplement dans l’espace même, en orbite proche ou pas ?</p>
<p>La recherche d’une vie sur Mars est un objectif justifiant d’y envoyer des scientifiques, mais pas des colons. Ajoutons l’argument qui veut que pour le prix du billet d’un humain, on pourrait y envoyer une flotte entière de robots, certes limités, mais bien moins chers, et peut-être suffisants — en tout cas les gestionnaires qui lâcheront les crédits le verront comme ça. La robotique avance d’ailleurs plus vite que l’astronautique interplanétaire, et le retour sur investissement est plus rapide (les avancées technologiques se retrouvent très vite appliquées à l’industrie terrestre).</p>
<h3>Un pic à franchir</h3>
<p>Il ne s’agit pas de nier que la colonisation de Mars, sur le long terme, serait forcément une mauvaise opération. La conquête de la Lune a été remboursée plusieurs fois par les innovations qui ont été ensuite recyclées dans le « civil », l’envoi d’une mission sur Mars pourrait se justifier aussi ainsi. Sur le très long terme, que l’homme se répande sur une deuxième planète est un gage de survie à long terme de l’espèce. De là à investir massivement dans une colonisation... Notre époque a l’obsession du <a href="http://www.chef-de-projet.org/ROI.htm">retour sur investissement</a> rapide, et la terraformation est lointaine, aléatoire, et sans intérêt immédiat.</p>
<p>Sauf invention révolutionnaire par définition imprévisible, ou décision d’un gouvernement très volontaire qui aime les grands travaux (les Chinois ?), la colonisation martienne est face à un « mur de potentiel ». Le transport de la moindre denrée ou matériel est hors de prix. Si une justification économique existait (un minerai quelconque ?), et que notre société décidait collectivement d’aller l’exploiter, les masses d’argent en jeu nous pousseraient à les investir plutôt dans la substitution.</p>
<p>Or aucune colonisation ne démarrera sans justification économique. Le tourisme ou l’exploitation secondaire de ressources marginalement rentables suivrait sans doute si un premier circuit économique est en place. Mais, encore une fois, lequel ???</p>
<p>Deuxième mur de potentiel : toujours pour des raisons économiques et de protection de la vie humaine, une entreprise investissant dans Mars cherchera plus à y placer des robots que des humains. De l’exploitation sans colonisation donc. Même si ces robots se trouvent pilotés par des humains en réalité virtuelle, voire des trans-humains numérisés qui se téléchargeraient dans les robots — peut-on parler de colonisation dans ce cas ?</p>
<h3>Terraformation</h3>
<p>La colonisation de Mars (et non juste une tête de pont) n’a effectivement
pas de sens sans terraformation de la planète. Celle-ci est hors de portée. Il faudra donc attendre un temps où nous aurons les capacités d’oser même y penser. Mais la facture sera très salée et la terraformation étalée sans doute sur des siècles. Le personnel nécessaire justifierait un début de colonisation, mais la « rentabilité », certes positive sur le très long terme (nous serions enfin à l’abri d’une catastrophe globale sur Terre<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/19/395-coloniser-le-desert-de-gobi-plutot-que-mars#pnote-354-2" id="rev-pnote-354-2">2</a>]</sup>) serait contrebalancée par le coût énorme à supporter pendant longtemps.</p>
<p>Ce peut être une décision politique (« Offrons-nous une deuxième planète !») qu’une société plus volontaire que la nôtre prendra peut-être. Ce peut être un moyen délibéré d’investir dans la recherche massivement, et qu’importe le but — mais pourquoi ce but-là (soyons cynique : terraformer Mars est plus clinquant que de sortir la moitié de l’humanité de la misère) ? Imaginons un rebond de la natalité occidentale couplé à de nouvelles inventions, ou un maintien du volontarisme chinois d’aller toujours plus avant, ou (comme dans la <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/06/01/349-red-mars-green-mars-blue-mars-de-kim-stanley-robinson">trilogie de Robinson</a>) une quasi-immortalité acquise par la médecine, nous rendant capables de planifier des projets aussi longs, et les justifiant par la place à conquérir. On en est donc réduit à imaginer des justifications de science-fiction.</p>
<p>Bref, si une vraie conquête de Mars est lancée ce siècle, ce ne sera probablement pas une décision rationnelle. L’humanité, il est vrai, en prend rarement collectivement.</p>
<h3>La prédiction est toujours difficile, surtout en ce qui concerne le futur</h3>
<p>Quand on se lance dans une telle discussion, il est toujours facile de trouver des exemples et contre-exemples sur le dépassement des limites économiques apparemment infranchissables. Les murs de potentiel s’effritent avec la technologie.</p>
<p>En cinquante ans, nous avons pris l’habitude de transporter des quantités monstrueuses de marchandises périssables ou très bon marché d’un hémisphère de la planète à l’autre ; cela aurait semblé utopique il n’y a pas si longtemps. Utiliser les tendances et contraintes actuelles pour prévoir le futur est toujours une manière efficace de se tromper, et une découverte par définition imprévisible peut redistribuer les cartes : un moteur quelconque pourrait raccourcir le voyage vers Mars à deux semaines, ou une percée spectaculaire dans l’ascenseur spatial, ou une autre technologie pourrait réduire le coût massivement et, couplé au manque criant de matières premières sur Terre, lancer une exploitation minière rentable des planètes et astéroïdes proches. Ou les contraintes écologiques terriennes enverront progressivement toutes les usines polluantes sur la Lune voire plus loin.</p>
<p>J’aime beaucoup la formule « <em><a href="http://science.slashdot.org/comments.pl?sid=287435&cid=20463705" hreflang="en">someone with a dream will harness the resources necessary to profit from the benefits that you cannot yet foresee.</a></em> ». Des <a href="http://www.futura-sciences.com/fr/sinformer/actualites/news/t/univers/d/hotel-spatial-et-si-le-reve-devenait-realite-maj_9315/">entreprises privées</a> tentent bien déjà un <a href="http://space.xprize.org/x-prize-cup/" hreflang="en">accès autonome</a> à l’espace, souvent comme « <a href="http://en.wikipedia.org/wiki/Armadillo_Aerospace" hreflang="en">danseuse</a> » d’<a href="http://en.wikipedia.org/wiki/John_D._Carmack" hreflang="en">un milliardaire</a>. Mais l’investissement privé, sur le long terme, ne se maintient que s’il trouve une justification économique, les richissimes aventuriers ne jouant que le rôle de catalyseurs.</p>
<p>À l’inverse, une confiance aveugle dans l’avenir est aussi un moyen de se tromper. La Lune a bien été conquise — et ça n’a <em>rien</em> lancé. Toute l’histoire de l’astronautique depuis tourne uniquement autour de l’exploitation économique de l’espace proche (les satellites espions, météo, de communication, scientifiques...) et d’une poignée de sondes lointaines, dans l’attente de l’avancée technologique qui relancerait la machine. Quant à ces évolutions, d’une part elles ne se décrètent pas, d’autre part elles nécessitent des investissements, du temps, et une société accueillante pour fleurir.</p>
<h3>Échelle de temps</h3>
<p>Attention, je ne parle ici que du court et moyen terme, disons le XXIè siècle. Sur plus d’un siècle, tout et n’importe quoi peut se passer, surtout ce à quoi nous ne nous attendons pas. Dans mille ans, les contraintes économiques auront changé, et le tourisme sur Mars sera peut-être devenu un caprice accessible à beaucoup. La terraformation sera peut-être en cours voire achevée. L’intérêt minier de Mars sera peut-être réel, rien que pour alimenter l’économie locale. Après tout, dans la <em><a href="http://gotomars.free.fr/voie.html">Voie martienne</a></em>, Asimov décrit bien des Martiens obligés d’aller chercher leur précieuse eau dans les anneaux glacés de Saturne. Ou bien l’humanité sera peut-être réduite à quelques pauvres hères sur une planète cuite à l’étouffée dans son CO₂, incapables d’aller plus loin que la prochaine oasis.</p>
<p>Et même : comme le conclut Sterling, une civilisation capable de coloniser Mars aura sans doute bien mieux à faire que de s’occuper d’un caillou sans vie. Les mondes virtuels, ou des civilisations se construisant carrément leurs petits paradis dans l’espace interplanétaires, ne constituent que deux exemples. Ou encore, avant Mars, cette civilisation aura sans doute déjà cherché à occuper des zones inoccupées comme Gobi ou la Sibérie (encore une fois, pour y faire quoi ?). Alors, le clone numérique de Sterling croira peut-être à la colonisation martienne.</p>
<p>De toute manière, comme le remarque aussi Sterling, à quoi ressembleront les humains à cette époque ? J’ai évoqué des trans-humains qui se téléchargeraient dans des robots, ou des gens vivant uniquement en réalité virtuelle, il y a aussi le cas des cyborgs pouvant vivre n’importe où. Quels seraient les limitations et les besoins de tels « humains » ?</p>
<p>Enfin, donnons tout de même une dernière raison pour laquelle Mars sera peut-être terraformée quand le désert de Gobi restera sans vie : le sain conservatisme écologique. Nous commençons tout juste à comprendre comment fonctionne notre planète, et quand on lit ici ou là que les poussières du Sahara fertilisent l’Amazonie ou que les Rocheuses impactent le climat européen plus que le Gulf Stream, il est clair que terraformer une <em>autre</em> planète est moins risqué que de vouloir « finir » la terraformation de la seule que nous ayons pour le moment.</p>
<h3>PS</h3>
<p>Devoir pour moi-même ou mes descendants, en 2100 voire avant : dans ce billet, qu’est-ce que je n’ai <em>pas</em> vu qui semblera tellement évident quelques décennies plus tard, et qui flanque par terre tout le raisonnement ?</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/19/395-coloniser-le-desert-de-gobi-plutot-que-mars#rev-pnote-354-1" id="pnote-354-1">1</a>] Dixit <em>John Brunner</em>.</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/19/395-coloniser-le-desert-de-gobi-plutot-que-mars#rev-pnote-354-2" id="pnote-354-2">2</a>] <em>Mais toujours pas d’une guerre mondiale, cette fois interplanétaire, qui emporterait les deux planètes, et l’humanité par la même occasion.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/19/395-coloniser-le-desert-de-gobi-plutot-que-mars#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/354Une tâche à la foisurn:md5:efb28f8521504ff00ec6e77dd921e2712007-12-09T21:11:00+00:002023-12-27T11:01:58+00:00ChristopheInformatique : l’art du développementdommagedysfonctionnementdéveloppementinformatiqueintelligencemercenairemobilitémémoireoffshoreoptimisationorganisationpessimismeprise de têtepsychologiesaturationSSIItempstravailténacitééconomieéconomie de l’attention<p>L’écho de ce billet de Joel Spolsky a résonné au plus profond de mon être le jour où je l’ai découvert :
<em><a href="http://www.joelonsoftware.com/articles/fog0000000022.html" hreflang="en">Human Task Switches Considered Harmful</a></em>.</p> <p>En gros, un développeur est un genre assez particulier d’humain qui a besoin de se concentrer pendant de longues périodes. Il se comporte comme un microprocesseur quand on lui demande de changer de tâche régulièrement. Le <a href="http://www.commentcamarche.net/forum/affich-696642-qu-est-ce-qu-un-changement-de-contexte">changement de contexte</a> est une opération lourde qui ne doit pas être répétée trop souvent ; dans le cas extrême le processeur passe son temps à passer d’une tâche à l’autre, à se reconcentrer sur ce qu’il fait, et ne fournit plus de travail utile.</p>
<p>À un moment, ce phénomène a constitué un gros problème dans mon boulot, au moment où je prestais<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> chez un client, à gérer dix micro-projets à la fois avec un bon paquet d’interlocuteurs. Le client désirait une sous-traitance à fond, avec moi et un collègue dans le rôle de l’« interface » avec le centre de développement de notre SSII à plusieurs centaines de kilomètres. Impossible de se plonger une demi-heure sur un problème quelconque sans être interrompu par un coup de fil à tel ou tel sujet.</p>
<p>Mon boulot actuel comporte à nouveau ce genre de pépin, mais sur une autre échelle : je me retrouve sur trois missions à la fois (du genre deux jours sur l’une, deux sur la deuxième, une journée sur la troisième) et, à chaque fois, me « replonger dans le contexte » de chacune va me faire perdre quelques cycles cérébraux, de la même manière qu’en rentrant de vacances je ne suis pas à 100% immédiatement. J’ai observé le phénomène dans le cas extrême d’un collègue obligé de « caser » des jours de réalisation de rapports complexes dans les trous d’une autre mission : il redécouvrait les spécifications et réanalysait ses propres réalisations quasiment d’un mois sur l’autre. Je l’observe sur moi-même sur une maintenance applicative à long terme qui tombe dans les « trous » des autres prestations (en gros une ou deux fois par mois…). Bref, ça n’avance pas.</p>
<p>Je l’observe sur un autre projet : je dois à nouveau sous-traiter la partie la plus fastidieuse de la réalisation à un collègue situé sur un autre site… d’où pas mal de temps perdu en explication de contexte, préparation de docs, CD, mise en place de spécifications bien plus précises que je ne l’aurais fait pour moi-même, bref tout un surcoût (<em>overhead</em>) identique à celui impliqué quand un programme sous-traite une partie du travail à un autre. Ajoutons des « effets tunnel » dus à des disponibilités épisodique de ma part (je preste ailleurs) et du client de ce projet, avec donc nécessité de nous poser des synchronisations. Ajoutons les besoins de recharger ma petite mémoire cache cérébrale avec les éléments dudit projet à la moindre question du sous-traitant.</p>
<p>L’informatique n’a jamais avancé que comme cela mais ma capacité de travail à moi ne double pas tous les deux ans… Mon cerveau est configuré pour du mode <em>batch</em>, et multiplier les tâches d’arrière-plan augmente mon stress de manière exponentielle.</p>
<p>Et je ne parle pas de la difficulté à développer quoi que ce soit à la maison avec une famille qui exige un peu de temps avec elle, et un gamin de 4 ans en particulier. Moi j’ai abandonné.</p>
<p><strong>Mise à jour de mai 2011</strong> : Et ça continue en ce moment, avec plein de clients exigeants à la fois, un téléphone professionnel qui me tombe dessus, et une tornade de dix-huit mois à la maison. Soupir.</p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Du verbe « <a href="http://forum.wordreference.com/archive/index.php/t-391694.html">prester</a> » qui, s’il n’existe pas en français de France officiel, devrait y être inclus.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/185Gros défaut des PC et exaptationurn:md5:5f9c57b6f8e616258cd0436ca6b8584e2007-08-23T18:18:00+00:002011-04-25T21:16:13+00:00ChristopheInformatique pratiqueanticonsumérismeauto-organisationbon senscomplexitédommagedysfonctionnementexaptationinformatiqueintelligenceoptimisationperspectiveévolution<p>Porte-gobelets sur PC et autres aberrations technologiques.</p> <p><a href="http://ask.slashdot.org/comments.pl?sid=236043&cid=19260383" hreflang="en">Fine remarque d’un commentateur de Slashdot</a> :</p>
<blockquote><p><em>“Well, the worst thing about most PCs<br />is the way the cup holder automatically retracts during a reboot.”</em><br /> <br />« Le pire défaut de la plupart des PCs, c’est le porte-gobelet qui se rétracte automatiquement lors d’un reboot. »</p></blockquote>
<p>Je ne peux pas contester.</p>
<p>Derrière la blague il y a une vérité : l’utilisateur fait ce qu’il veut de sa machine<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/23/379-gros-defaut-des-pc-et-exaptation#pnote-332-1" id="rev-pnote-332-1">1</a>]</sup>. S’il a envie d’utiliser un morceau d’électronique comme porte-gobelet, c’est son droit le plus strict. Et l’évolution des fonctionnalités des machines doit tenir compte de ces détournements des fonctionnalités originelles.</p>
<p>On appelle ce phénomène l’« exaptation », comme pour le fameux sixième pouce du panda, détourné par l’évolution de sa fonction première (lire absolument <em>Le pouce du panda</em> du regretté Stephen Jay Gould).</p>
<p>La citation est extraite d’une enfilade sur Slashdot titrée <a href="http://ask.slashdot.org/article.pl?sid=07/05/24/2010242" hreflang="en">“What's the Worst Technical Feature You've Used”?</a> (« Les pires fonctionnalités que vous ayez utilisées ») dans laquelle on trouve, en vrac :</p>
<ul>
<li>Clippy, le peu regretté trombone parasite d’Office ;</li>
</ul>
<ul>
<li>un site de Logitech permettant de télécharger un pilote pour souris, site inutilisable au clavier seul sans souris ;</li>
</ul>
<ul>
<li>un four à micro-ondes qui exige qu’on lui règle la date ;</li>
</ul>
<ul>
<li>les téléphones portables mal conçus, notamment un Samsung qui considérait l’appui prolongé du 9 comme une volonté d’appel au 911 (appel d’urgence aux États-Unis), y compris avec le verrouillage clavier activé ;</li>
</ul>
<ul>
<li>les emballages de certains produits électroniques qui semblent totalement indestructibles ;</li>
</ul>
<ul>
<li>les fonctions (notamment d’avance rapide ou de saut) désactivées sur les DVDs — je hais ça aussi ;</li>
</ul>
<ul>
<li>le temps délirant d’éjection de ces mêmes lecteurs DVD ;</li>
</ul>
<ul>
<li>l’inutile bouton « <em>Eject</em> » sur les télécommandes... sauf qu’à cause du point ci-dessus, on a réellement le temps de se lever de son fauteuil et de chercher le boîtier avant que le DVD sorte du lecteur ;</li>
</ul>
<ul>
<li>les transformateurs électriques qui se branchent directement sur la prise, en bloquant plusieurs entrées d’une multiprise ;</li>
</ul>
<ul>
<li>une BMW tellement fortifiée contre toute intrusion qu’un malheureux qui avait oublié ses clés <em>et</em> son bébé dedans n’a rien pu faire et a dû faire appel aux pompiers pour éventrer la voiture (<a href="http://ask.slashdot.org/comments.pl?sid=236043&cid=19267413" hreflang="en">à lire !</a>) ;</li>
</ul>
<ul>
<li>et bien d’autres aberrations technologiques.</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/23/379-gros-defaut-des-pc-et-exaptation#rev-pnote-332-1" id="pnote-332-1">1</a>] <em>En en assumant les conséquences, aussi.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/23/379-gros-defaut-des-pc-et-exaptation#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/332Un RAID de lecteur de disquettesurn:md5:e8e0326511c2648c1aec9b7e5d8af4582007-06-06T21:07:16+00:002007-06-06T21:07:16+00:00ChristopheInformatique militante et technologieAppleconquête de l’inutileinformatiqueoptimisationrecyclageémerveillement <p>Purement et simplement grandiose : prendre cinq lecteurs de disquette et les assembler en RAID !<br /><a href="http://ohlssonvox.8k.com/fdd_raid.htm" hreflang="en">http://ohlssonvox.8k.com/fdd_raid.htm</a></p>
<p>De nos jours, c’est plus une curiosité technique, mais en 1990 le succès d’un tel système aurait été foudroyant comme disque dur du pauvre !</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/06/06/346-un-raid-de-lecteur-de-disquettes#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/310Extension de garantieurn:md5:46264a6a55c750fc0f77213fbb0ad09f2007-01-28T00:00:00+00:002015-02-02T08:00:37+00:00ChristopheGuerre au marketinganticonsumérismeargentbesoinbon sensextension de garantiefoutage de gueulehowtomanipulationmicroéconomieoptimisationpouvoir d’acheterpsychologiespéculationsécuritévaleuréconomie<p>Est-ce utile ?</p> <p>De l’utilité d’une extension de garantie on peut discuter. Comme pour toute assurance, on échange un risque inconnu contre la certitude d’une perte financière immédiate ; et une assurance est toujours trop chère jusqu’à ce qu’on en ait besoin. (S’y ajoute le risque que l’assurance soit elle-même une arnaque à cause de clauses-pièges).</p>
<p>Les <del>conseillers</del> commerciaux de chez Darty sont avides d’extensions de garantie, ils veulent les fourguer sur tout et n’importe quoi. J’ai remarqué un phénomène intéressant : dès que je marque une hésitation sur le choix de l’extension, ou en la rejetant après réflexion, le vendeur réduit le montant de moitié ! Pour qui a l’intention de la prendre (ce peut être un choix pour un appareil cher ou critique), c’est bon à savoir. Et donne une idée de la marge que le distributeur se fait aussi là-dessus...</p>
<p>Si un lecteur a déjà <em>utilisé</em> une extension de garantie, je suis preneur.</p>
<p><strong>Ajout du 18 septembre 2008</strong> : <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/09/18/543-extension-de-garantie-suite-cas-reel-et-pratique">J’ai testé pour vous l'extension de garantie sur mon enregistreur numérique. Sur cet achat-là, ça a été rentable.</a>.</p>
<p><strong>Ajout de mai 2010</strong> : Rebelote, nouvelle panne sur le même appareil, à nouveau réparé sans aucun problème et toujours sous garantie.</p>https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/28/253-extension-de-garantie#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/224Par paquets de 5urn:md5:da931c4493743ea43137bae625a401a62006-11-16T22:17:00+00:002010-11-16T06:22:02+00:00ChristopheInformatique lourdeabominationbase de donnéesdéveloppementERPfoutage de gueulegaspillagehaineinformatiqueoptimisationOracleprise de têtesabotageSAPSQLtravail<p>Une fois de plus, l’ABAP de SAP me sabote mes requêtes soigneusement mitonnées.</p> <p>Ce n’est pas parce que <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/19/255-demission">la perspective de me débarrasser bientôt de SAP</a> se profile nettement à l’horizon que mes critiques vont se tarir.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-1" id="rev-pnote-223-1">1</a>]</sup>. La semaine dernière j’ai découvert une nouvelle manière de l’ABAP de fusiller le travail de la base Oracle en-dessous de lui.</p>
<p>Un exemple concret en ventes : je recherche quelques articles (premier <code>SELECT</code> sur la table <code>MARA</code>) et je veux afficher la liste des commandes portant sur ces articles. Le résultat ressemble à ça :</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/abap-forallentries/liste_resultat.png" alt="Petite liste" style="display:block; margin:0 auto;" title="Liste d’articles avec les commandes qui vont avec." /></p>
<p>Pour obtenir ceci, je peux :</p>
<ul>
<li>soit faire un <code>SELECT</code> sur la table <code>VBAP</code> pour <em>chaque</em> article précédemment récupéré (méthode bovinement simple, fiable, très efficace si le but est de faire s’effondrer la base de données par des centaines ou des milliers de requêtes en rafale) ;</li>
<li>soit tenter de récupérer toutes les commandes concernées <em>en bloc</em> : la base recherchera d’un coup, optimisera son parcours de diverses manières (ne pas analyser 10 000 fois la même requête<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-2" id="rev-pnote-223-2">2</a>]</sup>, récupérer des blocs contigus, choisir un index plutôt qu’un autre...).</li>
</ul>
<p>La deuxième manière est un chouilla plus complexe (car on récupère en bloc un tableau des commandes voulues, qu’il faudra manipuler ensuite) mais monstrueusement plus efficace. <br />Si on utilise Oracle directement via la SQL ou le PL/SQL, <a href="http://tkyte.blogspot.com/2006/10/slow-by-slow.html" hreflang="en">on tente au maximum de tout regrouper en un seul ordre SQL</a>, ou on utilise les <a href="http://www.oracle.com/technology/oramag/oracle/03-sep/o53asktom.html" hreflang="en">ordres BULK</a>. <br />Si on est contraint de passer par l’ABAP, on utilise <code>FOR ALL ENTRIES</code><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-3" id="rev-pnote-223-3">3</a>]</sup>.</p>
<p>Concrètement, cela donne ce qui suit. Noter qu’en ABAP un <code>SELECT</code>/<code>ENDSELECT</code> est une boucle sur les lignes ramenées.</p>
<blockquote><p><code><em>*</em></code><br />
<code><em>* Report Z_FAE_TEST </em></code><br />
<code><em>* </em></code><br />
<code><em>*</em></code><br />
<code><em>* But : démonstration d utilisation basique de FOR ALL ENTRIES </em></code><br />
<code><em>* Recherche de quelques articles et affichage des commandes liées à </em></code><br />
<code><em>* ces articles. On aurait pu faire une simple jointure mais on passera</em></code><br />
<code><em>* par une table interne (un tableau) qui ontient ces commandes.</em></code><br />
<code><em>*</em></code><br />
<br />
<code><strong>REPORT Z_FAE_TEST</strong> .</code><br />
<br />
<code><em>* vbap est la table des commandes, et la déclaration</em></code><br />
<code><em>* suivante permet de ne pas déclarer des variables temporaires</em></code><br />
<code><em>* pour la parcourir</em></code><br />
<code>TABLES: vbap.</code><br />
<br />
<code><em>* Structure de table simple avec juste un champ article</em></code><br />
<code>TYPES: BEGIN OF article,</code><br />
<code> matnr TYPE matnr, " type prédéfini : un article</code><br />
<code> END OF article.</code><br />
<br />
<code><em>* Table des articles</em></code><br />
<code><strong>DATA</strong>: tab_articles TYPE TABLE OF article.</code><br />
<br />
<code><em>* Variable tampon car impossible de faire cette operation</em></code><br />
<code><em>* directement au sein du SQL ci-dessous.</em></code><br />
<code>DATA: date_min TYPE datum.</code><br />
<br />
<code><em>* Récupérer les articles créés dans les 200 derniers jours</em></code><br />
<code>date_min = sy-datum - 200.</code><br />
<br />
<code><strong>SELECT</strong> matnr <strong>FROM</strong> mara</code><br />
<code><strong>INTO TABLE</strong> tab_articles</code><br />
<code><strong>WHERE</strong> ersda > date_min.</code><br />
<code>.</code><br />
<br />
<br />
<code><em>* Pour tous ces articles, afficher</em></code><br />
<code><em>* toutes les commandes existantes</em></code><br />
<br />
<code><strong>SELECT</strong> * <strong>FROM</strong> vbap</code><br />
<code><em>* Prendre articles dans table interne précédente</em></code><br />
<code><strong>FOR ALL ENTRIES</strong> IN tab_articles</code><br />
<code><em>* Jointure sur code article</em></code><br />
<code><strong>WHERE</strong> vbap~matnr = tab_articles-matnr</code><br />
<code>.</code><br />
<br />
<code><em>* Affiche article/commande/poste</em></code><br />
<code> WRITE :/ vbap-matnr, vbap-vbeln, vbap-posnr .</code><br />
<br />
<code><strong>ENDSELECT</strong>.</code><br /></p>
<p></p></blockquote>
<p>Quand on lit ceci, et qu’on connaît un peu Oracle, on se dit que l’ABAP sur ce point n’est pas trop mal foutu, et qu’il a même eu un temps d’avance sur l’Oracle « pur » d’avant l’implémentation de <code>BULK COLLECT</code>, qui forçait à tout fusionner en un seul ordre SQL si l’on voulait éviter les boucles.</p>
<p>On se dit que l’ABAP doit lui-même écrire l’ordre SQL qui va bien. Ou qu’il rédige une clause <code>WHERE</code> de centaines de lignes avec les flopées de valeurs possibles.</p>
<p>Mais non.</p>
<p>Le SQL que SAP demande à Oracle d’exécuter servilement se présente ainsi (transaction <code>ST05</code> sous SAP) :</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/abap-forallentries/sql_trace.png" alt="Trace SQL" style="display:block; margin:0 auto;" /></p>
<p>Il s’agit bien d’un bête <code>SELECT</code> avec une condition sur... <strong>CINQ valeurs possibles</strong>. Ceci répété x fois avec des valeurs différentes.<br />SAP <strong>fait donc exécuter à Oracle la boucle même que l’on cherchait à éviter à la main</strong>. Le seul avantage est que cette recherche se fait par paquet de cinq lignes. C’est déjà mieux que rien mais <a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:73891904732164" hreflang="en">on est loin du Saint Graal de l’instruction SQL unique</a>.</p>
<p>Il existe un moyen de rentabiliser un peu plus chaque requête en passant à des bloc de vingt valeurs (rajouter le <em>hint</em> <code>%_HINTS ORACLE '&max_blocking_factor 20&'</code>), sans que j’en connaisse l’efficacité réelle.</p>
<p>Pourquoi faire simple (un bête curseur Oracle qui parcourt les lignes ramenées par paquets de quelques dizaines, avec un plan d’exécution mitonné pour l’intégrale du <em>recordset</em> à récupérer) quand on peut faire compliqué ?</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-1" id="pnote-223-1">1</a>] <em>Sisi, un jour, je tenterai de faire un billet sur les gadgets sympa de SAP et de l’ABAP. Il y en a. <strong>Ajout de 2008</strong> : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap">C’est fait !</a></em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-2" id="pnote-223-2">2</a>] <em>Le plus terrible est de générer des <a href="http://www.akadia.com/services/ora_bind_variables.html" hreflang="en">requêtes en dynamique, réellement différentes, sans variables bind</a>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-3" id="pnote-223-3">3</a>] <em>Et c’est un des rares et précieux exemples de <a href="http://fr.wikipedia.org/wiki/Sucre_syntaxique">sucre syntaxique</a> de ce langage fossile.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/223Ubu et réservation aérienneurn:md5:a1abf6cac1c2fd8ecee7a161e1198ed42006-11-14T11:37:00+00:002023-12-27T11:04:23+00:00ChristopheGuerre au marketingabominationanticonsumérismeargentbon sensbugchaoscommunicationcomplexitécynismedommagedysfonctionnementdécadencedéshumanisationemmerdeursfoutage de gueulegaspillageincohérenceinformatiquelibertémicroéconomiemèmeoptimisationorganisationperspectivepessimismepouvoir d’acheterprise de têteprovocationsabotagetravailvaleuréconomie<p>Le calvaire aérien d’une collègue, typique des travers de notre époque.</p> <p>Je dis toujours que les compagnies aériennes constituent l’illustration parfaite de la différence entre <strong>sécurité</strong> et <strong>fiabilité</strong> : s’il est effectivement très peu risqué de prendre un avion (bien moins que sa voiture ou son vélo), les chances d’arriver en temps et en heure sans une contrariété quelconque évoluent plus près de 50 % que de 99,999 %. <br />Je vole peu, pourtant j’ai déjà ma part d’histoires de vols annulés, retardés, pour raisons techniques ou sociales, plus souvent pour des bouchons sur les pistes (typiquement à Orly le vendredi soir). <br /><a href="http://www.lgv-est.com/">Vivement le TGV</a> (et je dis ça peu après une grève de la SNCF). (<strong>Ajout de 2010</strong> : Le TGV on l’a et c’est super, mangez-en !)</p>
<h3>Les différents intervenants</h3>
<p>Une collègue vient de nous raconter son calvaire. <br />Elle utilise une compagnie très connue pour les vols intérieurs (appelons-là, disons, Air Gaule). Notre employeur commun nous <del>demande</del> ordonne de commander tous nos billets (ferroviaires, aériens…) par une agence de voyages assez connue qui fait aussi dans les services financiers ; appelons-la Antarctic Express.</p>
<p>Le passage par cette agence de voyages permet apparemment de gagner 20 € sur le prix du billet. Quand je dis « gagner », c’est l’agence qui encaisse 35 € de frais, au lieu de 15 € par Air Gaule.<br />En échange, nous disposons d’un joli site web qui stocke nombre d’informations confidentielles à notre sujet, et nous refuse des vols qui ne couvrent pas la « politique voyage ». (Ce sont des interdictions du genre : « non, tu ne traverseras pas la moitié de la France en avion, faudrait le faire en train et y passer quatre fois plus de temps au total et payer une nuit supplémentaire à Lutèce. » Bon, les <em>bigs chefs</em> valident systématiquement la dérogation aux critères sans doute pondus par un acheteur à la Défense qui ne doit pas aller souvent en clientèle hors d’Île-de-France. Bref.)</p>
<h3>Clouée au sol</h3>
<p>À notre époque, les billets sont tous électroniques, en fait juste un numéro quelque part pour qu’à l’enregistrement il soit possible de retrouver notre trace dans l’ordinateur au cas où le vol, le nom et le numéro de la pièce d’identité ne suffisent pas. L’inconvénient est qu’il n’existe plus aucune garantie <em>physique</em> au client que son billet est valable.</p>
<p>La collègue en question a donc été fort marrie quand, après une longue queue devant le guichet, l’humeur maussade comme on l’est à six heures du matin après s’être levé à quatre, la charmante hôtesse<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> ne l’a pas trouvée parmi les passagers recensés par le Grand Serveur Central : l’agence n’avait pas transmis la réservation. <br />Adrénaline, queue au guichet vente, re-queue devant l’enregistrement, obligation de se contenter des dernières places (ni hublot ni couloir) si même il y a encore de la place, retard éventuel, etc.</p>
<p>Ce genre d’incident est pénible la première fois ; mais bosser dans l’informatique enlève toute illusion sur la fiabilité absolue de tout ce qui est électronique, et rend philosophe.</p>
<p>La deuxième fois c’est encore plus pénible.</p>
<p>La troisième fois, on se demande si on ne va pas lâcher l’agence de voyages<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.<br />Surtout quand, au moment de re-réserver le billet qui n’a jamais été transmis, on s’aperçoit que l’abonnement à Air Gaule a été bloqué pour un papier jamais arrivé, jamais transmis apparemment par l’agence de voyage. Air Gaule proteste de sa bonne foi en avertissant qu’ils ont averti l’agence de voyages… qui n’a jamais averti sa cliente.<br />Le paiement, lui, a bien été transmis.</p>
<p>(Au passage : cette même collègue s’est fait « ensacheter » deux dangereux bâtons de rouge à lèvre par les services de sécurité. Coup de chance, ils n’ont pas vu ses médicaments, elle n’avait pas l’ordonnance.)</p>
<p>La même collègue a rapporté le cas d’un autre utilsateur d’Antarctic Express, qui un jour manqua son vol départ pour une raison quelconque. Après s’être débrouillé seul pour prendre un autre vol (sur le même billet affaire donc décalable), et avoir fait ce qu’il avait à faire là où il allait, le malheureux a découvert à l’enregistrement la disparition de son voyage retour : informée de son absence au départ originel, l’agence avait annulé le retour.</p>
<p>Ces problèmes, paraît-il, n’existaient pas avec l’agence de voyage locale utilisée encore il y a quelques années. Ces gens-là n’avaient pourtant pas de centre d’appel continental avec des employés dressés comme des robots à lire leur script et à ne surtout pas prendre d’initiative, et qui changent à chaque contact. Comment diable pouvaient-ils être compétitifs ?</p>
<h3>Moralités</h3>
<p>Que le malheur des uns serve de leçon aux autres : ces exemples pointent un problème de plus en plus courant à notre époque. Ici on ajoute un <strong>intermédiaire qui est censé fournir les mêmes services que le fournisseur final</strong>. Il ne s’agit pas ici de cas où une agence de voyages vous mitonne un Dijon-Christchurch<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup> <em>via</em> quatorze correspondances et huit compagnies, en choisissant parmi sept mille trajets possibles (rôle de courtier en quelque sorte), mais du cas très courant dans le métier de vols sur des lignes du principal opérateur national.</p>
<p>Intermédiaire inutile également car Air Gaule, non content de faire voler ses clients, fournit service web, centre d’appel, etc. <em>a priori</em> moins dysfonctionnels que tout intermédiaire puisque la compagnie a la maîtrise des machines et l’accès direct aux données et logiciels. (Quoique avec la vogue actuelle de décentralisation et filialisation, ce serait à vérifier…)</p>
<p>Bref, un cas typique de notre époque où <strong>les couches s’amoncellent, et les problèmes de communication (inévitables, même à l’époque d’Internet) vont avec la complexité du flux</strong>.</p>
<p>Bizarrement, la facturation ne tombe jamais en panne. Elle est même la seule à faire du zèle.</p>
<p>Je ferais volontier le parallèle avec <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille">mes problèmes très techniques et très personnels de sabotage mutuel entre trois outils qui essaient tous les trois de faire la même chose</a>…</p>
<p>Pour finir, revenons à la justification de l’utilisation de l’agence de voyage : il paraît qu’en fonction du chiffre d’affaire généré avec elle, notre groupe encaisse une ristourne. Cette ristourne est invisible sur les avances de fonds que nous, petits consultants migrants, faisons<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup> (avances débitées après le remboursement des frais, à quelques jours près, si le secrétariat ne fait pas d’erreur et est alimenté en feuilles de frais suffisamment à temps). Elle est aussi invisible sur les billets à titre privé que nous serions tentés de commander <em>via</em> Antarctic Express. On pointe là un autre problème, celui de la <strong>séparation entre l’effort et le bénéfice</strong>. La conscience professionnelle et la volonté de réduire les coûts de son employeur ont leurs limites quand les contraintes s’accumulent et que les gains ne sont jamais, même symboliquement, partagés.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Je brode, c’était peut-être un très moche </em>stewart<em>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>D’ailleurs elle a annoncé ne plus l’utiliser. Vue l’ambiance à l’agence, je ne pense pas qu’il y ait jamais de sanction pour cette violation des procédures.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Nouvelle-Zélande.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Oui, dans ma <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">SSII</a> </em>(c’était en 2006, mon nouvel employeur paie lui-même l’avion. - Note de 2007)<em>, nous devons avancer </em>tous<em> les frais de déplacement sur nos deniers personnels, </em>via<em> la carte de crédit à débit différée fournie par l’entreprise et débitée sur notre compte personnel. Cela implique surtout d’assumer les risques qui vont avec toute transaction quelle qu’elle soit.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/240Des millions de lignes à travers le millefeuilleurn:md5:e0087cac7dae17633e64eca1d6d9ca812006-10-14T12:47:00+00:002014-02-26T11:06:21+00:00ChristopheInformatique lourdeabominationautodestructionbase de donnéescomplexitédommagedysfonctionnementdéveloppementERPexpertisegaspillageinformatiqueoptimisationOracleorganisationprovocationsabotageSAPsaturationSQLtravailténacité<p>Ou : « Du danger des outils qui s'empilent les uns sur les autres : autopsie d’un plantage en production. »</p> <p>Prenons un <a href="http://solutions.journaldunet.com/0208/020827_bi_panorama1.shtml">ETL</a>, outil chargé d’extraire bêtement des données d’un gros progiciel d’entreprise, <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">SAP</a> pour ne pas le nommer. SAP lui-même s’appuie sur une base de données <a href="http://www.oracle.com/lang/fr/database/index.html">Oracle</a>. L’ETL pourrait en principe attaquer les données directement au niveau Oracle, mais <strong>SAP impose que l’on passe par lui</strong><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-1" id="rev-pnote-217-1">1</a>]</sup>.</p>
<p>De ces trois outils, chacun utilise une variante de la <em>lingua franca</em> des bases de données, le <a href="http://www.commentcamarche.net/sql/sqlintro.php3">SQL</a> : Oracle connaît le PL/SQL (langage efficace et sans chichis que j’ai appris à apprécier), SAP utilise l’ABAP (mélange de Cobol et de SQL limité par sa tendance à vouloir s’appuyer sur plusieurs bases de données différentes sans en exploiter une à fond), et l’ETL définit ses requêtes sous forme graphique avec des morceaux de pseudo-SQL<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-2" id="rev-pnote-217-2">2</a>]</sup>.</p>
<h3>Besoin</h3>
<p>Au départ, le besoin était tout simple : une <strong>bête jointure de deux tables</strong> sur les « documents article », et récupération des lignes où au moins une de trois dates potentielles était dans une certaine fourchette.</p>
<p>Du côté de l’ETL, le développeur a exprimé cela ainsi :</p>
<blockquote><p>Joli graphique joignant les tables <code>MKPF</code> (en-têtes) et <code>MSEG</code> (lignes)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-3" id="rev-pnote-217-3">3</a>]</sup>, <br />et clause de filtrage définie ainsi :<br /> <br />
<code>MKPF.MBLNR = MSEG.MBLNR</code> (jointure)<br />
<code>AND</code><br />
<code>(</code><br />
<code> ( MKPF.CUPDT >= $PARAM2 AND MKPF.CPUDT <= $PARAM1 )</code><br />
<code>OR ( MKPF.AEDAT >= $PARAM2 AND MKPF.AEDAT <= $PARAM1 )</code><br />
<code>OR ( MKPF./BEV2/ED_AEDAT >= $PARAM2 AND MKPF./BEV2/ED_AEDAT <= $PARAM1 )</code><br />
<code>)</code></p></blockquote>
<h3>Boum !</h3>
<p>L’ETL s’adresse donc à SAP, et génère pour cela à la volée un programme ABAP ; le noyau SAP traduit cette requête dans le SQL d’Oracle, lequel renvoie les données au programme ABAP, dont la sortie est renvoyée à l’ETL.</p>
<p>Après quelques mois en production, ce programme a un soir littéralement explosé (le noyau de SAP refusa de lui allouer plus de mémoire, considérant qu’avec plusieurs gigaoctets il abusait déjà).</p>
<p>En fouillant on découvre déjà que la volumétrie remontant dans SAP se compte en <strong>millions de lignes</strong> (tables de mouvements de stocks d’une entreprise de belle taille sur plusieurs années), et qu’aucune des colonnes de filtrage n’est indexée dans la base de donnée. Le résultat final que recueille l’ETL ne compte cependant que peu d’enregistrements.</p>
<p>Dans le contexte présent d’un <em>cluster</em> de machines bien burnées, Oracle exécute ce double <em>full scan</em> en peu de temps — pas assez pour qu’on ait besoin de demander à un chef d’imposer à un administrateur système réticent de rajouter des index lourds sur des tables très sollicitées<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-4" id="rev-pnote-217-4">4</a>]</sup>. Ce n’est pas un <del>simple</del> classique problème de performances.</p>
<p>Le programme ABAP généré par l’ETL ressemble à ceci (je simplifie) :</p>
<blockquote><p><code><strong>SELECT</strong></code><br />
<code> MSEG9~MBLNR</code> (champs) <br />
<code> MSEG9~MJAHR</code><br />
<code> MSEG9~ZEILE</code><br />
<code> ...</code><br />
<code><strong>INTO</strong> (MSEG9MBLNR,</code> (stockage de la ligne dans des variables temporaires)<br />
<code> MSEG9MJAHR,</code><br />
<code> MSEG9ZEILE...)</code><br />
<code><strong>FROM</strong> MSEG AS MSEG9</code><br />
<code> <strong>INNER JOIN</strong> MKPF AS MKPF9</code> (jointure) <br />
<code> <strong>ON</strong> MKPF9<a></a>MBLNR </code><br />
<code>.</code><br />
...<br />
<code><strong>IF</strong> ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code> (clause de filtrage)<br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) ) ) ) ) ) ) ) ).</code><br />
<br />
... (sauvegarde de la ligne dans une table interne qui sera envoyée à l’ETL)<br />
<br />
<code><strong>ENDIF</strong>.</code><br />
<br />
<code><strong>ENDSELECT</strong>.</code> (fin du parcours des lignes ramenées)</p></blockquote>
<p>J’ignore pourquoi la clause <code>IF</code> est si tourmentée, mais elle est mathématiquement équivalente à celle d’origine (une des trois dates doit être dans la fourchette demandée).</p>
<p>Le point à retenir est que <strong>ce <code>IF</code> est <em>hors</em> de la requête</strong>. Chacune des millions de lignes de la table passe dans ce <code>IF</code> ! <br />On objectera naïvement que de toute manière, faute d’index, il n’y a pas d’autre moyen que ce fastidieux méga-test.</p>
<p>Mais l’important est <strong>l’endroit où ce test s’effectue</strong> : les millions de lignes sont récupérées par la base Oracle, en sortent, entrent dans le noyau SAP (potentiellement une autre machine), et c’est le processeur ABAP qui se charge des tests sur les dates.</p>
<h3>Reformulation</h3>
<p>Le changement du programme ABAP est assez basique : j’ai déplacé la clause de filtrage <em>dans</em> la requête ABAP, espérant ainsi que SAP traduira cela à Oracle en une seule requête avec la clause de filtrage. (Et pour être propre on réécrit lisiblement la clause, et on rajoute <code>MJAHR</code> dans la jointure, qui manquait sans que cela gêne en pratique.)</p>
<blockquote><p><code><strong>SELECT</strong>...</code><br />
<code><strong>FROM</strong> MSEG AS MSEG9</code><br />
<code> <strong>INNER JOIN</strong> MKPF AS MKPF9</code><br />
<code> <strong>ON</strong> ( MKPF9<a></a>MBLNR</code> <br />
<code> AND MKPF9<a></a>MJAHR )</code><br />
<code><strong>WHERE</strong> ( MKPF9~CPUDT BETWEEN $PARAM2 AND $PARAM1 )</code><br />
<code> OR ( MKPF9~AEDAT BETWEEN $PARAM2 AND $PARAM1 )</code><br />
<code> OR ( MSEG9~/BEV2/ED_AEDAT BETWEEN $PARAM2 AND $PARAM1 )</code></p></blockquote>
<p>Oracle fait toujours un double <em>full scan</em>, le temps d’exécution est très proche, mais les lignes filtrées ne sortent même pas de la couche SQL, Oracle les jette à peine délivrées par le disque dur. On a évité à des gigaoctets de données de traverser au moins deux couches du mille-feuilles et d’occuper de la précieuse mémoire.</p>
<p>Pour les curieux, le SQL généré par SAP après la modification est basique :</p>
<blockquote><p><code> <strong>SELECT</strong> </code><br />
<code> T_00 . "MBLNR" , T_00 . "MJAHR" , T_00 . "ZEILE" , ...</code><br />
<code> <strong>FROM</strong> </code><br />
<code> "MSEG" T_00 , "MKPF" T_01</code><br />
<code> <strong>WHERE</strong> </code><br />
(jointure)<br />
<code> ( T_01 . "MANDT"<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-5" id="rev-pnote-217-5">5</a>]</sup> = :A0 AND T_01 . "MBLNR" = T_00 . "MBLNR" </code><br />
<code> AND T_01 . "MJAHR" = T_00 . "MJAHR" ) AND T_00 . "MANDT" = :A1</code><br />
(filtre sur les dates)<br />
<code> AND ( T_01 . "CPUDT" BETWEEN :A2 AND :A3</code><br />
<code> OR T_01 . "AEDAT" BETWEEN :A4 AND :A5</code><br />
<code> OR T_00 . "/BEV2/ED_AEDAT" BETWEEN :A6 AND :A7 </code><br />
<code> ) </code></p></blockquote>
<h3>Moralité</h3>
<p>Cet exemple est inhabituel : le développeur comme l’administrateur d’une base cherchent en général à limiter les <em>full scans</em> sur des tables aussi volumineuses, et rajoutent des index (mais il faut contrebalancer avec le coût en disque et en maintenance). On a ici la conjonction de plusieurs problèmes :</p>
<ul>
<li><strong>pas d’index</strong> sur de grosses tables (quoique, reconnaissons-le, des stats rafraîchies ont mené à un parcours un peu différent en joignant les tables par leur clé commune ; dans le cas d’un parcours complet des tables, cela n’est pas forcément une bonne chose, et on ne change rien au problème de la volumétrie) ;</li>
<li>un <strong>ETL qui n’a pas le droit de s’adresser directement à Oracle</strong>, alors qu’il connaît très bien son langage (un bon ETL est polyglotte : Oracle dans toutes ses variantes, Sybase, MS SQL Server, DB2...) ;</li>
<li>cet ETL (ou plutôt son <em>plug-in</em> pour SAP) commet une erreur stupide en <strong>séparant requête et filtrage (bug d’optimisation)</strong> <br />(<strong>Ajout de 2014</strong> : Cet ETL, je l’utilise encore des années après, et même dans des incarnations plus modernes il reste le plus stupide et le moins agréable de tous ceux que j’ai pu manipuler — mais il est vendu par SAP) ;</li>
<li>le compilateur ABAP n’est pas assez fûté pour repérer le problème et demande à Oracle le contenu complet de <code>MSEG</code> et <code>MKPF</code> ;</li>
<li>le compilateur ABAP semble <strong>incapable de gérer efficacement des paquets de plusieurs gigaoctets</strong>, il semble tout vouloir traiter d’un bloc, alors qu’Oracle traite ses données par paquets maniables de quelques dizaines de lignes (j’aimerais des détails, cette limite de SAP m’étonne) : le même bug ne serait pas apparu en PL/SQL ;</li>
<li>ajoutons un effet pervers dû au dimensionnement imposant des machines concernées : le problème n’est apparu ni en développement ni en recette (de plus ces bases sont anciennes, très anciennes, et je le déplore tous les jours), mais en production après un certain temps, quand les tables ont dépassé une certaine taille.</li>
</ul>
<p>Comme toutes les grandes catastrophes<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-6" id="rev-pnote-217-6">6</a>]</sup>, ce problème naît d’une accumulation de plusieurs bugs, et non d’un seul.</p>
<h3>Effet mille-feuilles et communication</h3>
<p>Les problèmes de communication entre programmes et la génération automatique de code sont courants, mais le « mille-feuilles » est une bonne pratique en programmation : vive la séparation des tâches entre modules spécialisés ! Cf couches OSI, TCP/IP, le protocole X, etc.</p>
<p>Mais ce n’est pas le cas ici : trois éléments ont <strong>chacun leur langage pour exprimer ce qui est fondamentalement une requête SQL</strong> ; la <strong>traduction n’est pas parfaite</strong> ou limitée, et n’utilise en tout cas pas toutes les possibilités de l’outil sous-jacent (Oracle).</p>
<p>On n’a pas <em>délégation</em> du travail et encapsulation des détails propres à un niveau qui ne concernent pas les autres (comme entre les différences couches de TCP/IP ou X), mais <em>réécriture</em> de consignes avec réinterprétation au passage à chaque étape : à la syntaxe près, la requête de l’ETL est strictement la même que le SQL d’Oracle, les couches qui font le boulot sont en dessous (dans le noyau Oracle).</p>
<h3>Analogie</h3>
<p>Cette histoire me rappelle furieusement le fonctionnement d’un service informatique au sens large, où la définition d’un développement à effectuer passe de l’utilisateur au support au fonctionnel interne au fonctionnel externe à l’analyste présent chez le client au chef de projet externe au développeur sur un autre continent, avec spécifications différentes à chaque niveau suivant les consignes/niveau/langue/priorités/besoins/limites/obsessions/normes de chaque strate ; alors que le premier besoin exprimée par l’utilisateur pourrait souvent (pas toujours, loin de là !) suffire au développeur final pour travailler, sans rajouter un effet téléphone arabe et une lourdeur monstrueuse en gestion et « pilotage ».</p>
<div class="footnotes"><h4 class="footnotes-title">Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-1" id="pnote-217-1">1</a>] <em>Je dis toujours que SAP est totalitaire car il veut </em>tout<em> contrôler.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-2" id="pnote-217-2">2</a>] <em>Ce qui devient vite illisible à mon avis.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-3" id="pnote-217-3">3</a>] <em>Si vous ne comprenez pas immédiatement la fonction des tables et colonnes par leur nom, c’est tout à fait <del>normal</del> habituel sur SAP.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-4" id="pnote-217-4">4</a>] <em>Au passage, je suis surpris du faible nombre d’index présents sur les tables de SAP par rapport à celles du concurrent Oracle Applications.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-5" id="pnote-217-5">5</a>] <em>Le mandant est une clé implicite de chaque table. Il correspond à une « vision du monde » et permet de séparer plusieurs jeux de données (test, paramétrage...) voire certains programmes.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-6" id="pnote-217-6">6</a>] <em>N’exagérons pas, c’est « juste » du décisionnel, ni la production ni la logistique n’ont été affectées.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#comment-formhttps://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/217