Blog éclectique & sans sujet précis - Mot-clé - ergonomie
<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:00
L'éditeur est le propriétaire du domaine
urn:md5:bf83720a7189bba489682d945b972671
Dotclear
“The Unix-Haters Handbook” (« Le manuel de haine anti-Unix »)
urn:md5:1ebc825b85120dcdae5cbd2b0ba4a986
2011-03-27T12:45:00+02:00
2018-02-10T11:04:52+01:00
Christophe
Informatique militante et technologie
Apple
bug
citation
coup bas
cynisme
Debian
dinosaures
dommage
dysfonctionnement
décadence
développement
emmerdeurs
ergonomie
expertise
foutage de gueule
gaspillage
guerre sainte
haine
humour
informatique
Linux
livres lus
logiciel libre
lyrisme
Mac
MacOS
Microsoft
mème
mémoire
ouverture d’esprit
panurgisme
perfectionnisme
perspective
pessimisme
prise de tête
provocation
précision
périmé
spéculation
sécurité
Ubuntu
uchronie
Unix
utopie
valeur
Windows
évolution
<p>Résumé et critique-après-coup d’un <a href="http://web.mit.edu/~simsong/www/ugh.pdf" hreflang="en">livre de haine</a> envers ce qui est tout de même devenu quasiment le standard sur quoi se base l’essentiel de l’informatique moderne (hors Windows) : Unix. Rigolo et instructif.</p> <p>(Comme d’hab’, <em>les italiques sont des avis et commentaires personnels, ou des citations en langue non française</em>. Le non-italique tente la fidélité au livre. Les traductions sont personnelles et pas forcément bonnes, je suis preneur de meilleures adaptations, par exemple pour <em>hater</em>. D’ailleurs j’ai plusieurs fois jeté l’éponge. )</p>
<p><em>Certains qui me connaissent auront du mal à croire que j’ai lu ça. Et pourtant.</em></p>
<p><img src="http://upload.wikimedia.org/wikipedia/en/7/77/UNIX-HATERS_Handbook_cover_ISBN_1-56884-203-1.png" alt="Unix Hater Handbook : couverture du livre chez IDG" style="float:right; margin: 0 0 1em 1em;" /></p>
<p>Le <em>Unix-Haters Handbook</em> relève en fait plus du document historique (1994), sinon archéologique, que de quoi que ce soit d’actuel. Il serait une mine de thèmes d’uchronies, : si Unix n’avait pas existé, quel système l’aurait remplacé ? Je parle d’une époque où MS-DOS, <a href="http://en.wikipedia.org/wiki/Windows_3.1x" hreflang="en">Windows 3.1</a> et Macintosh (<a href="http://en.wikipedia.org/wiki/System_7" hreflang="en">Système 7</a>) régnaient sur la bureautique — ou n’étaient pas. Évidemment, le mélange des domaines (l’Unix serveur de fichiers ou serveur de courrier de l’époque n’est pas le poste bureautique ou le serveur web de maintenant) fait partie du jeu.</p>
<p>Les auteurs, Simson Garfinkel, Daniel Weise, Steven Strassmann, ont vécu l’époque où Unix remplaçait petit à petit <a href="http://en.wikipedia.org/wiki/OpenVMS" hreflang="en">VMS</a>, <a href="http://en.wikipedia.org/wiki/Incompatible_Timesharing_System" hreflang="en">ITS</a> et d’autres. Et ils n’ont pas aimé. Le livre est à charge, donc paradoxalement j’en ai très peu appris sur ces concurrents qui étaient forcément plus mieux, sinon en creux. Dennis Ritchie se paye leur tête dans l’anti-préface (je pense que c’est intraduisible) :</p>
<blockquote><p>“The systems you remember so fondly (TOPS-20, ITS, Multics, Lisp Machine, Cedar/Mesa, the Dorado) are not just out to pasture, they are fertilizing it from below.”<br /> <br /><em>— Dennis Ritchie</em></p></blockquote>
<p>et aussi (à apprendre par cœur et à resservir dans votre prochaine <em>flamewar</em>) :</p>
<blockquote><p>“Like excrement, it [this book] contains enough undigested nuggets of nutrition to sustain life for some. But it is not a tasty pie: it reeks too much of contempt and of envy.”<br /> <br /><em>« Comme des excréments, [ce livre] contient assez de pépites nourissantes non digérées pour permettre à certains de vivre. Mais ce n’est pas un plat appétissant : il exhale trop le mépris et l’envie. »</em><br /> <br /><em>— Dennis Ritchie</em></p></blockquote>
<p><em>Ceux de ma génération et d’après considèrent souvent qu’en pratique Unix = Linux, même si intellectuellement nous savons (?) que ce n’est pas le cas. Oh, il y a bien encore <a href="http://fr.wikipedia.org/wiki/Solaris_(système_d'exploitation)">Solaris</a>, du moins jusqu’à ce qu’Oracle se lasse, un <a href="http://www.gnu.org/software/hurd/hurd.html" hreflang="en">Hurd</a> dont la ponctualité effraierait même un mainteneur Debian, et puis cette incarnation un peu exotique, qui est à Unix ce que le toucan est au </em>Tyrannosaurus rex<em>, MacOS X, autrefois connu sous le nom de NeXSTEP</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>. <em>Et puis HP-UX, AIX dans pas mal d’entreprises, QNX dans l’embarqué… Linux lui-même se décline en tellement de versions qu’on pourrait parler de systèmes différents. Et Android et iOS entrent-ils dans la catégorie ?</em></p>
<p><em>Bref. Ce livre n’évoque même pas le Linux 0.99 sous Slackware ou Debian (déjà !) de l’époque, dure leçon d’humilité pour tous les fanatiques, </em>fanboys<em> et adeptes du libre. GNU n’existe alors que par <a href="http://www.gnu.org/software/emacs/" hreflang="en">Emacs</a> et les compilateurs. Sun par contre est évoqué — de la même manière dont je vomissais ma bile autrefois sur Windows 98 (mais avec plus de style).</em></p>
<p>Unix (la version originale) date de l'époque où l’on marchait encore sur la Lune. Il a beaucoup évolué depuis, et avec succès. En fait, il serait devenu un virus (minimaliste et en conséquence portable, il vampirise son hôte, et mute souvent) avec une interface utilisateur.</p>
<p>Sun est une cible particulièrement appréciée. <em>Dans mon esprit Sun et Solaris étaient associés aux gros Unix stables et indestructibles sur lesquels moulinent les bases Oracle critiques (ai-je simplement été victime du </em>marketing<em> ?), mais ici on croit entendre des linuxiens parler de Windows.</em> Les stations Sun ne sont là que parce qu’elles sont moins chères, la stabilité n’est pas leur fort, et nombre des produits issus de la firme semblent mériter une haine inextinguible.</p>
<p>La mauvaise foi et les généralisations abusives suintent partout où les reproches ne sont pas solidement étayés par des anecdotes, exemples, et <em>emails</em> de victimes désespérées — donc seulement une ligne sur deux. Les flèches touchent d’autant plus juste que certaines lacunes unixiennes… ont persisté jusque 2011 ! Le tout sur un style pince-sans-rire typique du milieu.</p>
<p>Exemples :</p>
<h3>Sendmail</h3>
<p>Ce logiciel de transfert de mail a sévi jusqu’à mon époque (j’ai très vite eu envie de découvrir <code>postfix</code> ou <code>exim</code>), et était déjà connu pour sa stabilité relative, ses fichiers de paramétrage cryptiques (encore plus proches du bruit blanc que <code>perl</code>, c’est dire), sa compatibilité pathologique avec la pléthore de systèmes de l’époque (<code> @#$@$^%<<<@# ) at @$%#^! </code> est paraît-il une adresse email valide), sa capacité à interpréter le corps du message comme une suite d’adresses, ou les messages d’erreur <code>Deferred: Not a typewriter</code>. Avec un sens aigu de la justice équilibrée, un cri du cœur a été lancé en 1993 :</p>
<blockquote><p>“The thing that gets me is that one of the arguments that landed Robert Morris, author of ‘the Internet Worm’ in jail was all the sysadmins’ time his prank cost. Yet the author of sendmail is still walking around free without even a U (for Unixery) branded on his forehead.”<br /> <br /><em>« Ce qui me rend dingue, c’est que l’un des arguments utilisés pour envoyer en prison Robert Morris, l’auteur du “ver Internet” était ce que sa plaisanterie a coûté en temps d’administrateurs système. Et pourtant l’auteur de sendmail se balade encore librement sans même un U (pour Unixellerie) tatoué sur son front. »</em></p></blockquote>
<p><a href="http://shop.oreilly.com/product/9781565928398.do">Le livre dédié chez O’Reilly</a> contenait plus de pages que <em>Guerre et paix</em> et aurait arrêté une balle tirée à bout portant. La chauve-souris de la couverture a inspiré une comparaison entre l’animal et l’outil, par exemple :</p>
<blockquote><p>“Bat guano is a good source of potassium nitrate, a principal ingredient in things that blow up in your face. Like Sendmail.”<br /> <br /><em>« Le guano de chauve-souris est une bonne source de nitrate de potassium, ingrédient principal des choses qui vous explosent à la figure. Comme Sendmail. »</em></p></blockquote>
<h3>Tout est un flux d’octets</h3>
<p>La philosophie Unix, c’est « tout est un flux d’octets » (<em>a stream of bytes</em>), manipulés à l’aide d’une cascade d’outils divers, censés faire une seule chose et bien. En conséquence, les outils n’ont aucune cohérence quant aux arguments de ligne de commande.</p>
<p>Les rédacteurs regrettent amèrement l’absence de notion d’enregistrement. Chaque application doit en conséquence redécouvrir la roue de ce côté (“<em>You see Unix knows parsing like <a href="http://www.quotationspage.com/quotes/Dan_Quayle/" hreflang="en">Dan Quayle</a> knows quantum mechanics.</em>” (oui, forcément, les références politiques datent aussi)), par exemple sur un fichier aussi critique que <code>/etc/passwd</code>, où la synergie bugatoire avec <code>sendmail</code> s’exprime pleinement.</p>
<p>Un chapitre croustillant détaille l’absence de systèmes de locks et donc… leur émulation via deux systèmes qui s’ignorent (j’ai l’impression que perdure la situation...).</p>
<h3>Le système de fichiers</h3>
<p>Les systèmes de fichier actuels (<code>ext4</code>, <code>ZFS</code>…) ont bien évolué depuis l’antique <code>UFS</code> — qui est toujours là, avec ses répertoires contenant les noms des fichiers. Le temps a eu raison de certains des reproches, par exemple l’absence de journalisation (quoique pas depuis si longtemps sous Linux…). D’autres sont des lacunes toujours là dans une Ubuntu toute fraîche, même si des outils au-dessus du système de fichiers peuvent les combler :</p>
<ul>
<li>pas de cryptage intégré ;</li>
<li>aucune notion de versions de fichiers (comme dans VMS) (<em>et le prochain MacOS va redécouvrir la chose trois décennies plus tard !</em>) ;</li>
<li>pas de notion de type de fichier comme les connaissent les Macintosh depuis 1984, juste des extensions aux noms de fichiers associés à des « nombres magiques » dans les fichiers eux-mêmes, nouvelles source de mille bugs (<em>Les tendances sur le sujet sont contradictoires, avec le Mac OS X qui renonce aux ressources et ne prend en compte que l’extension et, dans la plupart des OS récents, les types reconnus par des couches supérieures via l’extension… Est-ce parce que la notion de métadonnée est hermétique à l’utilisateur et l’association d’icelle au fichier trop difficile à maintenir au fil des migrations et déplacements au travers du net et de divers systèmes ?</em>) ;</li>
<li>la possibilité d’avoir dans le nom du fichier à peu près n’importe quoi d’autre qu’un /, d’où moults bugs ésotériques, fichiers ineffaçables, voire trous de sécurité (c’est encore plus drôle après qu’on a réussi à créer ce fichier avec un /...).</li>
</ul>
<h3>L’administration</h3>
<p>Un Unix bien administré est censé avoir plusieurs partitions, histoire par exemple que <code>/tmp</code> ne remplisse pas de l’espace au détriment de <code>/usr</code>, ou pour sauvegarder une partition (<em>forcément</em> entièrement, jamais en <em>live</em>). Les utilisateurs d’autres systèmes ont beau jeu de dire qu’à l’inverse un système de fichier pouvait s’étaler sur plusieurs disques, et gérer l’espace grâce à des quotas, plus d’une décennie avant la rédaction du livre. Les partitions <em>swap</em> existent encore, d’ailleurs (<em>en voie de disparition sur les Linux récents ?</em>), quand le système de fichier pourrait tout simplement convenir.</p>
<p>Bref, toute la logique de gestion des disques vise en fait à contourner des limites ou les conséquences de bugs.</p>
<p>Un autre sujet, toujours d’actualité : la pléthore de fichiers de configuration.</p>
<blockquote><p>“Those allergic to Microsoft Windows with its four system configuration files shouldn’t get near Unix, lest they risk anaphylactic shock.”<br /> <br /><em>« Ceux allergiques à Microsoft Windows</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup><em> et ses quatre fichiers de configuration ne devraient pas s’approcher d’Unix, au risque d’un choc anaphylactique. »</em></p></blockquote>
<p>Bien sûr, tous ces fichiers ont une syntaxe différente, supportent ou pas des commentaires, et confondent ou pas tabulations et espaces. (<em>Honnêtement, je préfère un bordel de fichiers texte qui sont à peu près localisables, au moins dans une Debian ou mon vieux Windows 3.1, à quelque chose de plus complexe à base de XML, ou, horreur, de binaire.</em>)</p>
<p>Pour compliquer la chose, les outils standards font de même chacun leur sauce sans soucis de cohérence. Le phénomène s’étend jusqu’aux <em>shells</em>, dont il y a pléthore, aux sémantiques qui diffèrent parfois. Et écrire un script un peu costaud devant tenir compte de tous les cas devient un cauchemar.</p>
<blockquote><p>“And, indeed, that is my memory of Unix tools—you spend all your time learning to do complex and peculiar things that are, in the end, not really all that impressive. I decided I’d rather learn to get some real work done.”<br /> <br /><em>« En fait, c’est mon souvenir des outils Unix — on passe son temps à apprendre à faire des choses complexes et bizarres qui au final ne sont pas si impressionnantes. J’ai décidé que j’allais plutôt apprendre à bosser. »</em><br /> <br /><em>— Jim Giles</em></p></blockquote>
<p>(<em>On voit que certains n’ont pas sué sur des bêtes fichiers <code>.bat</code>.</em>) Les <em>pipes</em> permettent de faire communiquer des programmes, de manière fragile. Rien de sérieux n’a jamais été développé ainsi. Le Macintosh se passait très bien de cela (<em>dans une utilisation totalement différente et sans soucis de réutilisation d’un script, œuf corse</em>)(<em>s’il lit jusque là, je sais qu’un certain lecteur aura déjà bondi et m’aura parlé d’un outil de scriptage remontant même à l’époque où Steve Jobs n’avait pas encore été viré d’Apple.</em>).</p>
<p>Allez, j’adore ces deux paragraphes, surtout avec le recul et le passage à MacOS X :</p>
<blockquote><p>“When was the last time your Unix workstation was as useful as a Macintosh? When was the last time it ran programs from different companies (or even different divisions of the same company) that could really communicate? If it’s done so at all, it's because some Mac software vendor sweated blood porting its programs to Unix, and tried to make Unix look more like the Mac.<br />The fundamental difference between Unix and the Macintosh operating system is that Unix was designed to please programmers, whereas the Mac was designed to please users. (Windows, on the other hand, was designed to please accountants, but that’s another story.)”<br /> <br /><em>« À quand remonte la dernière fois où votre station Unix a été aussi utile qu’un Macintosh ? Quand pour la dernière fois avez-vous utilisé des programmes de différentes sociétés (ou même de différentes divisions d’une même société) qui pouvaient vraiment communiquer ? Si c’est même faisable, c’est qu’un vendeur de logiciels Mac a sué sang et eau pour porter ses programmes sur Unix, et tenté de transformer un Unix en Mac. <br />La différence fondamentale entre Unix et le système du Macintosh est qu’Unix a été conçu pour plaire aux programmeurs, alors que le Mac a été conçu pour plaire aux utilisateurs. (Windows, d’un autre côté, a été conçu pour plaire aux comptables, mais c’est une autre histoire.) »</em></p></blockquote>
<h3>NFS</h3>
<blockquote><p>“The ‘N’ in NFS stands for Not, or Need, or perhaps Nightmare.”<br /> <br /><em>— Henry Spencer</em></p></blockquote>
<p>Ce protocole inventé par Sun (<em>déjà une tare en soi, apparemment</em>) est coupable d’être sans état, sans sécurité (puisque basé sur des <em>magic cookies</em>), dans le but de contourner l’instabilité des serveurs et stations Sun, puis d’avoir eu besoin de rajouter état (verrous…) et sécurité par-dessus à coup de rustines. Les anecdotes sont cruelles. La page 291, au milieu d’une <a href="https://www.coindeweb.net/humour/info_eco.html">comparaison digne d’Umberto Eco</a>, contient le délicieux :</p>
<blockquote><p>“The Sun kernel has a user-patchable cosmology.”<br /> <br /><em>« Le noyau Sun a une cosmologie rapiéçable par l’utilisateur. »</em></p></blockquote>
<p>Pour finir, l’indépendance de NFS par rapport à l’OS client est une blague.</p>
<p>(<em>Le récent <a href="http://fr.wikipedia.org/wiki/Network_File_System#NFSv4">NFS v4</a> valide </em>a posteriori<em> tout cela puisqu’il apparemment il garde le nom mais n’a plus rien à voir avec les versions précédentes.</em>)</p>
<h3>Le C, le C++ et le développement</h3>
<blockquote><p>“Do not meddle in the affairs of Unix, for it is subtle and quick to core dump.”<br /> <br /><em>— Anonyme</em></p></blockquote>
<p>L’annexe B l’affirme : le C et Unix sont un poisson d’avril qui a mal tourné. Thompson, Kernighan & Ritchie ont cherché en 1969 à créer le système le plus cryptique qui soit, parodie de Multics et du Pascal.</p>
<blockquote><p>”We stopped when we got a clean compile on the following syntax:<br /> <br /><em><code>for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/ 8)%2))P("|"+(*u/4)%2); </code>”</em></p></blockquote>
<p><em>Mouais.</em></p>
<p>Toujours est-il que les dinosaures rédacteurs regrettent l’époque où un programme qui plantait pouvait être débogué immédiatement, sans autopsier un <em>core</em> volumineux dont les symboles ont disparu (éventuellement écrasé par le propre <em>core</em> du débuggeur).</p>
<p>Sur le plan fondamental, le C est délicat à <em>parser</em> (analyser ?), d’où d’ailleurs les cascades d’erreurs de compilation générées par une seule faute de syntaxe. Quant au C++, c’est une cause perdue de ce point de vue. Et d’ailleurs : qu’est-ce que c’est que ce langage moderne qui n’a même pas de <em>garbage collector</em> ni même de grammaire claire ?</p>
<blockquote><p>“The only marvelous thing about C++ is that anyone manages to get any work done in it at all.”<br /> <br /><em>« La seule chose merveilleuse avec la C++, c’est que des gens arrivent à bosser avec. »</em></p></blockquote>
<p>(<em>J’ai l’impression que les reproches faits au C++ sont les mêmes de nos jours qu’il y a presque 20 ans. Non je ne connais pas vraiment le C++ et le peu que j’en connais m’a convaincu de le mettre tout en bas de la liste des langages à apprendre et que je n’aurai pas le temps d’apprendre.</em>)</p>
<p>Sur le plan anecdotique, <code>make</code> exige des tabulations et non des espaces au début de ses fichiers de configuration (<em><a href="http://www.gnu.org/software/automake/manual/make/Error-Messages.html" hreflang="en">et encore de nos jours</a></em>) : l’auteur aurait refusé de modifier sa syntaxe car il avait déjà dix (10) utilisateurs. (<em>J’ai retrouvé le même problème dans le beaucoup plus récent <code>rsnapshot</code>.</em>)</p>
<h3>La sécurité</h3>
<p>Au regard de ce qui va suivre, il semble accessoire qu’Unix ne supporte pas la moindre défaillance du matériel sous-jacent :</p>
<blockquote><p>“That’s because Unix programs usually don’t check for hardware errors—they just blindly stumble along when things begin to fail, until they trip and panic.”<br /> <br /><em>« C’est parce que les programmes Unix ne vérifient pas les erreurs matérielles — ils trébuchent dans le noir quand ça commence à dérailler, jusqu’à ce qu’ils se rétament en paniquant. » </em></p></blockquote>
<p>Sur le plan logiciel, on insiste bien sur le fait que le <a href="http://en.wikipedia.org/wiki/Morris_worm" hreflang="en">ver Morris</a>, un des premiers virus passés par le réseau en 1988, et qui l’a paralysé à l’époque, est bien un ver <em>Unix</em> : la faute à <code>sendmail</code>, <code>finger</code>, aux mots de passe faiblards…</p>
<h3>Pire est mieux</h3>
<p>Les auteurs vont jusqu’à dire que conceptuellement Unix est le représentant de l’école de pensée « Pire est mieux » : un truc qui marchotte maintenant est mieux qu’un truc parfait dans longtemps. La simplicité avant tout, et surtout avant la correction, la consistance ou l’exhaustivité.</p>
<p>Cela se retrouve dans les outils de développement par exemple (p 176) :</p>
<blockquote><p>“The designers of the Interlisp environment had a completely different approach. They decided to develop large sophisticated tools that took a long time to learn how to use. The payoff for investing the time to use the tools would be that the programmer who learned the tools would be more productive for it. That seems reasonable.<br /> <br />Sadly, few programmers of today’s machines know what it is like to use such an environment, in all its glory.”<br /> <br /><em>« Les concepteurs de l’environnement Interlisp avaient une approche complètement différente. Ils avaient décidé de développer de gros outils sophistiqués dont la maîtrise nécessitait beaucoup de temps. L’avantage pour le temps investi à apprendre ces outils serait que le programmeur qui les utiliserait serait plus productif. Cela semble raisonnable.<br /> <br />Hélas, peu de programmeurs sur les machines de maintenant savent ce que veut dire utiliser un environnement dans toute sa splendeur. »</em></p></blockquote>
<p>(<em>Je me fais violence pour ne pas commenter et fournir de nombreux exemples où on code d’abord et on apprend après. Certes pas dans un contexte universitaire comme celui des auteurs du livre.</em>)</p>
<p>Et puis :</p>
<blockquote><p>“Consistent mediocrity, delivered on a large scale, is much more profitable than anything on a small scale, no matter how efficient it might be.”<br /> <br /><em>« La médiocrité constante, délivrée à grande échelle, est bien plus profitable que n’importe quoi à petite échelle, aussi efficace que cela soit. »</em></p></blockquote>
<p><em>Il est hilarant de constater que tout ce que l’on reproche ou a reproché à Windows jusque récemment l’a été à Unix : un outil léger bancal immédiatement accessible qui marche la plupart du temps </em>vs<em> le gros Unix propriétaire rigide et complexe. Soit Windows marque une nouvelle descente dans le néant, soit Unix s’était entretemps stabilisé — comme Windows l’a fait ensuite. </em><br /><em>Les pessimistes noteront que le « bancal tout de suite » au lieu de « réfléchi demain » est également la philosophie dominante pour tout ce qui concerne ce qui se fait sur le web, voire l’économie entière, pression du court terme oblige. Au moins là y a-t-il une certaine sélection naturelle qui s’opère (pour le mieux ? c’est discutable). </em></p>
<h3>Lisez-le !</h3>
<p><em>Le <a href="http://web.mit.edu/~simsong/www/ugh.pdf" hreflang="en">PDF est gratuitement en ligne</a> mais hélas je ne connais aucune traduction française. En même temps, celui qui s’intéresse au <del>Néolithique</del> Paléozoïque de l’informatique a intérêt à maîtriser l’anglais.</em></p>
<p><em>Voir aussi la <a href="http://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook" hreflang="en">page Wikipédia dédiée</a>, la <a href="http://www.art.net/~hopkins/Don/unix-haters/handbook.html" hreflang="en">page de pub de l’époque</a>, ou encore l’<a href="http://www.mindspring.com/~blackhart/index.html" hreflang="en">archive de la liste de diffusion qui a donné naissance au livre</a>. On y trouvera d’autres merveilles assassines non incluses dans le livre comme <a href="http://www.mindspring.com/~blackhart/requium.html" hreflang="en">A Requiem for a Dying Operating System</a>, <a href="http://www.hillside.co.uk/articles/cult.html" hreflang="en">The UNIX cult</a>, <a href="http://www.andromeda.com/people/ddyer/topten.html" hreflang="en">The Top 10 Ways to get screwed by the "C" programming language</a></em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup><em>.</em></p>
<h3>Critiques</h3>
<p><em>Il existe des critiques du livres sur le net, par exemple celle d’<a href="http://esr.ibiblio.org/?p=538" hreflang="en">Eric Raymond</a> en 2008 : en gros, il reproche au livre d’être daté (forcément), de noyer « une once de pertinence dans une livre de polémique », de ne pas prendre en compte les interfaces graphiques apparues un lustre plus tard voire plus, de ne pas reconnaître qu’ailleurs ce n’était pas mieux, et de ne pas avoir prévu Linux (qui découvrait à l’époque ce qu’était un réseau), ou Python (vagissant également), plus perfidement d’avoir été en 1994 bloqué aux années 80, ou d’avoir été du mauvais côté de l’histoire (un des auteurs a participé à NeWS, concurrent de X) et de tomber dans le romantique regret de ce qui aurait pu être ; même de ne pas avoir cherché eux-même à améliorer la chose. En fait, ESR justifie de grosses parties du bouquin (ici à propos du C) : </em></p>
<blockquote><p>“Gradually, in a messy and evolutionary way, the Unix community is teaching itself the lesson that the authors of this chapter wanted to give it. I agree with them that it could have happened faster and should have happened sooner.”<br /> <br /><em>« Graduellement, de manière brouillonne et par évolutions successives, la communauté Unix s’est enseigné la leçon que les auteurs de ce chapitre voulait lui donner. Je leur accorde que cela aurait pu arriver plus vite et aurait dû arriver plus tôt. »</em></p></blockquote>
<p>Beaucoup moins récemment, en 1997, la <a href="http://linuxgazette.net/issue22/haters.html" hreflang="en">Linux Gazette</a> parlait du livre (en pleine explosion du nouvel OS libre) : Andrew Kuchling reconnaît quelque pertinence (“<em>The chapter on the X Window System is devastating and accurate</em>.”) et se demande si la raison de ces plaintes ne serait pas qu’en 1994 les Unix libres au source ouvert étaient beaucoup moins répandus et connus : certaines lacunes ont été corrigées à ce moment. Dans ce sens, le livre est une mine d’idées d’améliorations — pour beaucoup implémentées dans Linux ou MacOS X quatorze ans après.</p>
<p>En notre millénaire (2003), <a href="http://slashdot.org/story/03/04/26/2354245/Unix-Haters-Handbook-Available-Online" hreflang="en">Slashdot a lancé un fil</a> lors de la publication intégrale en ligne : au milieu des habituels verbiages et crachats sur Windows, on trouve quelques gemmes, comme ce <a href="http://slashdot.org/comments.pl?sid=62116&cid=5817398" hreflang="en">rappel du contexte par un des auteurs, qui ne regrette rien</a>.</p>
<h3>Validité</h3>
<p><em><a href="http://slashdot.org/comments.pl?sid=62116&cid=5817447" hreflang="en">Il a été dit</a> que le </em>Handbook<em> n’est plus drôle depuis la sortie de <a href="http://en.wikipedia.org/wiki/Windows_NT_4.0" hreflang="en">Windows NT 4</a> (maudit soit son nom). L’année 1995, celle d’après la parution du livre, marque le début de l’apogée de Microsoft, sur les bureaux d’abord, dans les serveurs ensuite, et l’union sacrée contre Redmond fut alors de mise. </em></p>
<p><em>Les tables tournèrent et Windows se prit dans la tronche tous les reproches des barbus à Unix : instabilité pathologique (par exemple Windows 95 plantait systématiquement après une quarantaine de jours, et on mit des années à s’en apercevoir)</em> <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup><em>, mépris des standards (et carrément </em>by design<em>), impossibilité de scripter… Windows s’est bien amélioré depuis</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup> <em>même si son hégémonie est menacée à terme (des mondes entiers se développent sans lui, sous Linux, MacOS, Android…). Y aura-t-il un nouveau système « bâclé mais suffisant » pour nous faire regretter Windows ? </em></p>
<p><em>Ou est-ce le libre (qui fait tourner l’essentiel des <a href="http://www.top500.org/charts/list/36/os" hreflang="en">supercalculateurs</a>, des box comme des téléphones évolués de nos jours, de Linux à Java en passant par BSD, Apache...) qui a réellement changé la donne ? Et si le libre était apparu dès l’époque de Multics, VMS et autres regrettés <del>dinosaures</del> <del>ammonites</del> <del><a href="http://fr.wikipedia.org/wiki/Ichthyostega">ichthyostegas</a></del> créatures précambriennes de l’informatique ? ESR, dans la critique ci-dessus, le reconnaît pour X : il a gagné parce qu’</em>open source<em>.</em></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>L’orthographe n’est pas claire et déjà à l’époque ils s’interrogeaient sur la nature de la créature de Steve Jobs :</em> “NeXT, meanwhile, calls their version of Unix (which is really Mach with brain-dead Unix wrapped around it) NEXTSTEP. But it’s impossible to get a definition of NEXTSTEP: is it the window system? Objective-C? The environment? Mach?”</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Époque bénie où on se cassait les dents sur <code>AUTOEXEC.BAT</code> au lieu de se noyer dans la base de registre.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Et moi non plus je ne peux pas supporter ce langage. En fait c’est comme la nitroglycérine, il faut le laisser aux gens qui en ont </em>vraiment<em> besoin pour faire des choses que le commun des mortels ne fait jamais.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Et la situation était tellement sérieuse qu’un des lecteurs de ce blog écrivit un <a href="http://gentiane.org/~miod/software/murphy/index.html">outil pour personnaliser l’écran bleu</a>. Souvenirs souvenirs…</em> </p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>Si si !</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/The-Unix-Haters-Handbook#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/641
9 mois pour une mutuelle (vive l’informatique moderne)
urn:md5:34335855d5320d93aa667fd512b25cef
2011-03-20T15:08:00+01:00
2015-08-21T14:29:16+02:00
Christophe
Informatique lourde
administration
base de données
bon sens
bug
communication
complexité
dysfonctionnement
déshumanisation
ergonomie
foutage de gueule
incohérence
informatique
métainformation
oh le beau cas !
organisation
pessimisme
prise de tête
<p>Super, ma mutuelle m’informe que les échanges informatiques entre elle et la Sécu fonctionnent ! Ça ne fait jamais que 9 mois que j’attendais cela.</p> <p>En juillet dernier, mon employeur bascule la mutuelle groupe obligatoire de Gras Savoye vers Vivinter. Je ne sais pas pourquoi, et en fait je m’en fiche. Depuis trois ans la précédente ne m’avait pas causé de souci.</p>
<p>Il eut été agréable que la transition se fasse de manière transparente. Mais vu que notre système de santé implique deux étages pour le remboursement, chacun avec ses systèmes, administrations et lourdeurs, et que ces systèmes devaient communiquer, ce ne pouvait pas être aussi simple. Évidemment, j’étais dans une situation extrêmement compliquée, nulle part vue ailleurs : salarié depuis toujours au régime local alsacien, deux enfants rattachés à moi, point barre.</p>
<p>Le processus normal aurait dû être : déconnexion au 1er juillet de l’ancienne mutuelle auprès des ordinateurs de la CPAM, connexion à la même date de la nouvelle, et les transmissions de remboursements auraient dû suivre.</p>
<p>Pour les enfants, soyons juste, tout se passe bien Le site de la nouvelle mutuelle (<a href="http://vivinter.fr/">Vivinter</a>) étant pas trop mal fichu bien que fleurant bon l’institutionnel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, et les remboursements étant véloces, je constate que la varicelle de la petite et la grippe du grand, puis la varicelle du grand et la grippe de la petite, sont remboursées rubis sur l’ongle.</p>
<p>Pour moi, rien. Je suis connu du système mais la « connexion Noémie »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup> échoue. Le site m’informe par un logo de l’échec… parce que je l’ai consulté. Il eut été trop simple de m’envoyer un <del>mail</del> mél<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup> pour me signaler le problème.</p>
<p>Je téléphone à Vivinter. Ils me disent que c’est la Sécu qui rejette leur demande de me rattacher car il y a déjà une autre mutuelle dans leurs ordinateurs. Gras Savoye s’accroche donc. Le site de ce dernier étant une plaisanterie, j’en suis réduit au téléphone (je n’ai bien sûr que ça à faire de mes journées, surtout en plein dans un projet au planning hystérique). La personne que je parviens à contacter semble très sympathique mais vu le résultat (aucun, et aucun retour ou message), elle aurait pu aussi bien éviter de décrocher.</p>
<p>Je contacte aussi la Sécu, et une voix beaucoup moins sympathique (sous-entendu : « comment ça vous connaissez pas les procédures par cœur ? ») me confirme que oui, je suis connecté à deux mutuelles à la fois et, non, ils ne peuvent rien corriger, il faut une attestation écrite de l’ancienne mutuelle qu’il y a un problème, et là peut-être on peut passer en manuel. Les mutuelles savent sans doute mieux que leurs clients qui doit payer. En fait, c’est le contraire du <em><a href="http://www.01net.com/editorial/239899/le-tourbillon-de-la-net-economie/slamming-sur-l-adsl-./">slamming</a></em>, ou simplement une stratégie pour l’éviter en préférant l’excès inverse.</p>
<p>Nouvelle tentative auprès de Gras Savoye (ça doit faire le troisième courrier papier). Silence radio, jamais eu aucune réponse. Au mieux, un anonyme pion a recliqué sur « déconnecter », n’a jamais regardé le résultat par la suite (il ne peut pas, ce sont au mieux des traitements quotidiens nocturnes), la Sécu a refusé la déconnexion pour les mêmes raisons obscures qu’auparavant, le rejet a dû tomber dans un fichier de log à côté de milliers d’autres que l’on ne regarde jamais, et il n’est sans doute pas prévu que l’on renseigne les simples clients de l’échec de leur demande.</p>
<p>Quelques temps après, j’ai fait ce que j’aurais dû faire bien longtemps avant : écrire sur papier à la Sécu, dire que l’ancienne mutuelle fait la morte, que la nouvelle est la seule et unique à prendre en compte. Un certain nombre de jours par la suite, courrier de la Sécu : ils confirment que c’est réglé. Cependant, la nouvelle mutuelle n’a toujours rien pris en compte dans le site. Je ne suis jamais arrivé à savoir si leur demande de connexion était systématique et quotidienne ou uniquement sur demande. Énième demande de connexion auprès d’eux <em>via</em> le site. Un certain nombre de jours plus tard : un mail me dit oui, c’est bon, c’est connecté !</p>
<p>Je vais enfin pouvoir envoyer mes feuilles de soins et les relevés de remboursements. Heureusement que la connexion s’était faite instantanément pour les enfants, que je suis en régime local (Sécu élevée et mutuelle donc réduite), sans problème de fin de mois et en bonne santé, sinon ça aurait pu faire un joli petit pactole…</p>
<p>Moralité : le para-public est encore pire que le public pour ce qui est du respect et de l’information du client. Ici, c’est encore la Sécu qui a été la plus carrée (certes l’accueil téléphonique y était un peu abrupt mais je préfère du factuel brut à des robots sympas qui racontent n’importe quoi). À l’époque des <em>web services</em>, des ETL et des bases téraoctets, il semble aberrant que des échanges pour savoir qui est connecté à quoi 1) prennent autant de temps et 2) échouent sans même que l’on cherche à savoir pourquoi. Pour avoir travaillé quelques temps au cœur d’entités similaires, je sais que le problème n’est pas technique, oh non, mais principalement organisationnel, voire culturel, et pas au bas de la hiérarchie...</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Ah, l’animation inutile d’entrée avec un bouton « Rejouer » qui n’a dû servir qu’au concepteur et aux commanditaires de la comm’, qui par contre ont raté le fait que l’accès ne se fait pas si on néglige le <code>www</code> dans l’URL (soyons juste : c’est corrigé)… Je ne parle pas non plus du mot de passe par défaut que toute personne connaissant mon n° de sécu, une donnée hautement confidentielle, aurait pu deviner — je ne m’énerve même plus depuis que j’ai vu bien pire.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Un <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets">nom de projet typiquement institutionnel</a></em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] Nous sommes dans l’institutionnel et le para-public, là, causons son verbiage. Il y aurait aussi « courriel » mais c’est trop récent.</p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/9-mois-pour-une-mutuelle#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/644
Changer d’heure et de montre
urn:md5:288c89817b29f87629e12ad16cc8bc60
2009-10-24T22:25:00+02:00
2009-10-24T21:26:02+02:00
Christophe
Temps et transformations
bon sens
complexité
cynisme
dysfonctionnement
décadence
ergonomie
humour
pessimisme
précision
temps
économie de l’attention
<p>La pub est omniprésente à la radio (du moins celle que j’écoute) : « changez d’heure, changez de montre ! »</p>
<p>Le niveau intellectuel du Français de base baissait inexorablement, ça je le savais. Mais est-il déjà tombé si bas que tant de gens ne sachent plus régler leur montre au changement d’heure ?</p>
<p>Ou sommes-nous devenus si fainéants que nous préférons avoir deux montres plutôt que de nous embêter à la régler deux fois dans l’année ?</p>
<p>Ou encore les montres actuelles (je ne les connais pas, j’en achète une par décennie, au plus) sont-elles devenues aussi complexes qu’un magnétoscope ou Windows, pour qu’on ne sache plus les régler ? (Je connais des gens qui ont abandonné en ce qui concerne l’horloge de la voiture.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Changer-d-heure-et-de-montre#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/591
La Déclaration du Droits du Développeur
urn:md5:00f7c5442cab96869509215550361fa4
2009-09-11T00:00:00+02:00
2018-05-19T11:17:26+02:00
Christophe
Informatique : l’art du développement
besoin
bon sens
communication
courage
cynisme
dysfonctionnement
déshumanisation
ergonomie
expertise
informatique
intelligence
liberté
logiciel libre
logistique
mobilité
mythe
offshore
optimisation
optimisme
Oracle
organisation
ouverture d’esprit
panurgisme
perfectionnisme
pouvoir d’acheter
prise de tête
psychologie
résolutions
SSII
travail
utopie
valeur
é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-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/569
BO : les bons côtés
urn:md5:0228312e7e8f721b157b560ef9d3f04d
2009-09-01T22:55:00+00:00
2011-06-03T20:44:03+00:00
Christophe
Informatique : l’art du développement
apparence
base de données
bug
Business Objects
chiffres
dommage
dysfonctionnement
développement
ergonomie
formation
informatique
métainformation
optimisation
prise de tête
SAP
SQL
travail
é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-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/480
Un nouveau clavier Mac
urn:md5:dd8d85fc919d1449d821424281050908
2009-02-08T12:26:00+01:00
2011-06-03T07:39:10+02:00
Christophe
Informatique pratique
apparence
Apple
dysfonctionnement
ergonomie
informatique
Mac
perfectionnisme
écologie
émerveillement
<p>J’ai acheté le clavier d’Apple. Bien mais des détails font tache.</p> <p>Mon Powerbook G4, 4 ans et demi d’âge, n’affiche plus depuis quelques jours plus qu’un écran noir. J’aurais espéré une durée de vie plus longue, surtout pour une machine de ce tarif, mais bon...</p>
<p>Le reste fonctionne bien, et la machine va donc être ravalée à la fonctionnalité d’une vulgaire machine de bureau (avec batterie de secours). J’ai sacrifié l’écran du PC et dû acheter un nouveau clavier Apple (un filaire).</p>
<p><strong>Pas mal ce clavier :</strong></p>
<p>- Très agréable au toucher.</p>
<p>- Très joli avec son look alu et ses touches blanches.</p>
<p>- Très fin, presque trop, on a quasiment l’impression de taper sur le bureau même.</p>
<p>- Il ne prend pas plus de place qu’il n’y en a besoin pour mettre les touches, ça change des claviers PC d’un demi-mètre carré.</p>
<p>- Typiquement Apple dans son soin du détail et de l’apparence. Ça commence avec la boîte, sobre et soyeuse, le débalage... C’est presque trop pour un bête clavier.</p>
<p>- Il y a des touches de fonctions toutes prêtes pour Exposé, Dashboard...</p>
<p><strong>Mais : </strong></p>
<p>- Il est cher. Apple ne fait pas dans le bas de gamme, ni dans le moyen de gamme d’ailleurs, donc il faudra cracher. J’espère tout de même qu’il durera plus longtemps que le Powerbook et la machine qui le remplacera<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/02/07/Un-nouveau-clavier-Mac#pnote-533-1" id="rev-pnote-533-1">1</a>]</sup>.</p>
<p>- Les deux ports USB (latéraux) sont incapables de fournir l’énergie pour autre chose qu’une souris (une clé USB ne fonctionne pas !). J’ai du mal à le comprendre même s’il y a un hub entre le Powerbook et le clavier. Les prises sont assez dures, et ne peuvent physiquement accepter quoi que ce soit de plus épais qu’une prise, par exemple pour la souris ou une rallonge.</p>
<p>- À propos de rallonge : celle livrée ne peut servir que pour le clavier, et ne peut recyclée comme une rallonge USB normale ! (Il y a une encoche spéciale qui interdit de glisser une prise classique. Pourquoi ?)</p>
<p>- L’emballage est luxueux, mais que de bouts de plastique de protection en trop ! Écologiquement scandaleux.</p>
<p>- La touche de blocage des majuscules réagit quand elle veut.</p>
<p>- Je suis un peu inquiet sur la pérennité des touches immaculées au fil du temps...</p>
<p><img src="http://km.support.apple.com/library/APPLE/APPLECARE_ALLGEOS/HT2378/306169_1.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<p><strong>Mise à jour de 2011</strong> : Et bien ce clavier fonctionne encore très bien, il a remplacé celui par livré avec le nouvel iMac qui était trop petit et ans fil, et les touches sont encore blanches deux ans après.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/02/07/Un-nouveau-clavier-Mac#rev-pnote-533-1" id="pnote-533-1">1</a>] <em>Un Mac Mini probablement, le jour où Apple le mettra à jour.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/02/07/Un-nouveau-clavier-Mac#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/533
Les bonnes idées de SAP
urn:md5:1f61d4aef9afa936517b4f8bfb96ff34
2008-10-04T09:11:00+00:00
2011-06-01T21:01:58+00:00
Christophe
Informatique lourde
ergonomie
ERP
informatique
SAP
totalitarisme
travail
<p>Contrairement à mon habitude je ne vais pas dire ici que des méchancetés sur SAP vu du côté du développeur. Il y a de bonnes idées en technologie ou en ergonomie à reprendre.</p> <p><em>(Le brouillon de ce billet a attendu publication depuis au bas mot un an et demi. N’ayant plus accès à du SAP, et n’ayant aucune intention de m’y remettre, je renonce à le compléter et le jette dans les index des moteurs de recherche. Le contexte reste le SAP R/3 que j’ai connu en 2006, il faudrait voir les dernières versions.)</em></p>
<p>Comme dirait <a href="http://nobox.fr/">Kooorrg</a>, cet article contient 10% de râlage.</p>
<p>J’ai déjà clamé ici ma déception de SAP et de l’ABAP. Du point de vue du développeur, SAP est un mélange d’archaïsmes des années 80 traînés de force dans les années 90, et l’ABAP est un des langages les plus limités que je connaisse (et pourtant le PL/SQL d’Oracle, le concurrent, n’est pas très <em>sexy</em>) ; sauf peut-être sa version objet, dont la puissance certaine est étouffée par la verbosité du langage et l’<em>over-engineering</em> qu’on y sent à plein nez<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#pnote-174-1" id="rev-pnote-174-1">1</a>]</sup>.</p>
<p>Cette fois je vais tenter d’être positif : SAP a ses bons côtés, des bonnes idées qui facilitent la vie et mériteraient d’être reprises chez le concurrent (je ne me souviens pas de les y avoir vues sur Oracle Applications). Cet ERP n’est pas devenu numéro 1 uniquement par sa richesse fonctionnelle et son marketing abrutissant<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#pnote-174-2" id="rev-pnote-174-2">2</a>]</sup>.</p>
<h3>Les variantes</h3>
<p>Les variantes constituent un simple gadget au premier abord, mais elles se révèlent en fait très pratiques et font gagner un temps fou. En arrivant dans un écran, l’utilisateur doit choisir parfois une flopée de paramètres : type de commande, fourchette de dates, clients, pays... La saisie faite, il sauvegarde (<em>Ctrl-S</em> directement dans le formulaire de saisie), il donne un nom à la variante, et ce masque de recherche peut alors être réutilisé par la suite.</p>
<p>C’est très utile pour éviter de ressaisir les mêmes valeurs chaque matin ou lors de dizaines de tests identiques en développement. Indispensable également pour cadrer ou modifier ce que l’utilisateur doit entrer, en lui imposant un masque précis sur son écran standard (par défaut ou pas).</p>
<p>(Seul reproche : pour qu’un masque soit utilisable sur une transaction pour tous les utilisateurs, il faut que son nom commence par <code>CUS&</code>, ce n’est pas une case de paramétrage à cocher et pas intuitif...)</p>
<h3>Double clic</h3>
<p>Dans beaucoup d’écran, mais pas tous, un double-clic sur un objet (par exemple un numéro de client) peut mener directement sur l’écran de visualisation dudit client. Très pratique, même si l’hyperlien n’est pas un concept révolutionnaire.</p>
<p>À l’inverse, sous Oracle Applications 11i (fondamentalement un « client lourd » en Java), je voyais en permanence les utilisateurs noter un numéro de commande ou de produit au stylo sur leur sous-main, changer d’écran (voire de « responsabilité », les menus n’intégrant pas tous les écrans accessibles à l’utilisateur), et re-rentrer le numéro sur le masque de recherche. Oracle Appli a rattrapé son retard sur ce point dans les modules récents purement « web ».</p>
<h3>Matchcode</h3>
<p>Non disponible partout, hélas, le <em>matchcode</em> permet de spécifier des critères de recherche beaucoup plus fins qu’une simple fourchette. Par exemple, dans un champ de recherche de numéros de commandes, un <em>matchcode</em> pourrait être « commandes de 500 à 999 sauf de 800 à 803, plus la 1012, moins la 503 ».</p>
<p>Impossible de faire ça simplement avec Oracle Applications à ma connaissance.</p>
<h3>Les mandants</h3>
<p>Une base SAP divise ses tables en « mandants ». Chacun correspond à ce que j’appelle une « vision du monde », à savoir un ensemble de données et (parfois) des objets comme des rapports. Peuvent cohabiter dans un même système un mandant de paramétrage, un mandant de développement sans donnée importante, et un mandant de test avec ses données réalistes.</p>
<p>Un rafraîchissement d’un environnement de développement ou recette depuis la production peut se limiter à écraser les données d’un mandant par les nouvelles sans effacer ce qu’il y a ailleurs (paramétrage…).</p>
<p>Techniquement, ce mandant est la première colonne de chaque clé primaire des tables de la base.</p>
<p>Le concept ne va pas complètement au bout, dans le sens où il existe des objets « intermandants », par exemple les programmes, fonctions... en ABAP. On ne peut donc pas aller jusqu’à avoir une version de développement et une de production d’un programme sur un même système. De plus, certains outils de développement dépendent <em>quand même</em> du mandant (par exemple l’antédiluvien SAPscript).</p>
<h3>Les transports</h3>
<p>Chez le client Oracle Applications où j’ai presté, les mises en production consistaient en une copie manuelle des scripts <em>shell</em> et PL/SQL entre les machine de dév’ et machine de prod’. Avec CVS ou un autre outil le principe serait resté le même : l’intégrité du système est gérée à l’extérieur, et différents systèmes sont techniquement et logiquement isolés (peut-être y a-t-il des outils dédiés ?).</p>
<p>SAP fonctionne par contre par transport d’ordres. C’est le bon côté d’un système qui se veut totalitaire et exige que tout passe par lui : au moins il peut imposer une certaine cohérence et un certain contrôle sur sa propre évolution. De plus, il tient compte de l’existence de plusieurs systèmes SAP les uns à côté des autres.</p>
<p>Les « ordres » regroupent du paramétrage, ainsi que des ensembles de programmes d’un même ensemble ou dépendant les uns des autres. Les ordres tiennent compte des numéros de version, donc un programme peut être dans trois versions différentes sur les environnements de développement, test et production sans mélange. Les utilisateurs autorisés au sein du système approuvent et déclenchent le transfert des ordres entre dév’, recette, prod’...</p>
<p>Les problèmes récurrents sont plus liés au principe qu’à l’outil : dépendances non techniques à vérifier, ordre des transports à maintenir, etc.</p>
<h3>Enregistrements de transactions</h3>
<p>Quand il s’agit d’importer des données, SAP est très ouvert... pourvu que l’on parle son langage ! En clair il faut formater les fichiers sous forme d’<a href="http://help.sap.com/saphelp_40b/helpdata/fr/0b/2a60ef507d11d18ee90000e8366fc2/content.htm">Idocs</a> ou de <a href="http://help.sap.com/saphelp_40b/helpdata/fr/e5/077c824acd11d182b90000e829fbfe/content.htm">fichier Batch Input</a>, un style assez pénible avec des lignes d’entêtes et d’autres de détail. Il y a plusieurs autres outils d’import comme les deux précités ; en fait cela dépend du module et de ce qu’on veut importer, le choix n’a rien d’évident. Comme souvent dans SAP, la méthode dépend de la strate géologique impliquée. Il y a sans doute des <em>web services</em> pleins de XML plus standards à présent dans des développements récents, je doute que cela touche les modules anciens de finance ou de ventes. (D’ailleurs, l’interfaçage avec SAP est une option ruineuse pour nombre de produits de manipulation de données comme les ETL.)</p>
<p>En dernier recours existe un outil antédiluvien mais bien pratique, un bête enregistreur de transactions à l’écran, qui génère un exemple de fichier qui va bien, et que l’on peut utiliser comme modèle pour rejouer des transactions comme si elles étaient entrées manuellement à l’écran, en déclenchant tous les <em>triggers</em>, <em>user exits</em>, etc. Un peu rustique avec quelques côtés sombres, mais ça marche bien et ça a le grand mérite d’exister.</p>
<p>Tous ces outils d’import nécessitent un apprentissage car leur utilisation n’a rien d’intuitive (enfin, peut-être que si après des années sur SAP, je me suis arrêté à 11 mois et demi...). Le cours SAP dédié à ces choses dure une semaine alors qu’un jeu d’API bien foutues ou de tables d’import aurait rempli correctement le besoin. (Comme chez le concurrent Oracle Applications par exemple ; je me suis battu avec ses API et imports à cause de leurs <em>bugs</em> et limites, rarement pour me demander avec quoi importer des données. Seul manque réel d’Oracle Appli : l’outil de simulation d’entrée par les écrans utilisateurs.)</p>
<h3>Cadobonus</h3>
<p><strong>PS</strong> : En bonus, <a href="http://www.sapdesignguild.org/community/design/golden_rules.asp" hreflang="en">10 Golden Rules for Bad User Interface</a> dans un contexte SAP. Des généralités vagues avec lesquelles tout le monde sera d’accord. Il est rigolo de constater que SAP R/3 suit méticuleusement presque toutes ces anti-règles.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#rev-pnote-174-1" id="pnote-174-1">1</a>] <em>Comprendre : aucune élégance dans le langage. On doit être à l’opposé de l’<a href="http://en.wikipedia.org/wiki/Objective_C" hreflang="en">Objective C</a> ou de <a href="http://en.wikipedia.org/wiki/Ruby_programming_language" hreflang="en">Ruby</a>. Un langage à l’allemande, façon Panzer.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#rev-pnote-174-2" id="pnote-174-2">2</a>] <em>Propagande totalement orientée vers les décideurs et </em>managers<em>, pas du tout vers les développeurs. Quand ces derniers sont concernés par SAP, leur entreprise a </em>déjà<em> décidé de l’acheter, donc ce ne sont pas eux qu’il faut convaincre. Certes le choix du logiciel doit se faire sur ce qu’il apporte à l’entreprise plus que sur sa beauté technique ; d’un autre côté celle-ci a un impact direct sur la lourdeur des coûts de développement, maintenance, formation...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/174
L’abominable BO (suite) : de R2 à 3.0 et de BO à SAP et une pincée de schizophrénie web
urn:md5:89368638b9cdf95d2323e57c0966255e
2008-08-22T22:43:00+00:00
2011-06-01T13:22:10+00:00
Christophe
Informatique lourde
bug
Business Objects
dommage
dysfonctionnement
développement
ergonomie
foutage de gueule
informatique
prise de tête
sabotage
SAP
travail
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">Même si j’en ai dit du mal</a>, je ne hais pas Business Objects. Je suis surtout frustré par les verrues, les manques, les bugs, les aberrations... qui font d’un produit puissant qui pourrait être très agréable une vraie bouse par moments.</p> <p><em>Caveat</em> : Comme dirait <a href="http://nobox.fr">Kooorrg</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/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#pnote-445-1" id="rev-pnote-445-1">1</a>]</sup>, « cet article contient 88,8% de râlage. »</p>
<h3>3.0</h3>
<p>Si les versions « clients lourds » (des programmes Windows) traînent encore chez de nombreux utilisateurs qui n’ont pas jugé utile de payer très cher une migration, les installations les plus récentes de BO utilisent la version BO XI R2 SP3 (voire SP4). Après deux ans de débogage, cette version plante encore parfois dix fois par jour selon la configuration, l’origine du rapport (migré ou nouveau ?), et les phases de la lune. Sous IE comme sous Firefox, pas de jaloux.</p>
<p>Il y a peu est sortie une version qui aurait dû s’appeler BO XI R3. Mais, tout comme son « père » spirituel Microsoft, Business Objects est pathologiquement incapable de se tenir à une numérotation de versions définitive. La nouvelle version est donc BO XI 3.0 (mais les noms de répertoires indiquent une version 12). (<strong>Ajout de juin 2011</strong> : Et ça continue : la version actuelle est la XI 3.1 SP3, et la prochaine qui immine… BO 4 tout court : fini le XI !)</p>
<p>L’ancienne version R2 (en fait 11.5) se distinguait par une pléthore de services Windows (ou démons Unix) lancés en rafale (et pas toujours dans l’ordre qu’il aurait fallu, il faut se réécrire le script de lancement correct...) au démarrage du serveur, et aux noms assez obscurs (pour mieux se camoufler dans la jungle des autres services Windows). En XI 3.0 on arrive à l’autre extrême de deux services (dont un est Apache/Tomcat).</p>
<p>Les personnes qui ont conçu l’interface web de gestion des droits de R2 devraient être fusillées. Par contre en 3.0, mes collègues plus expérimentés m’affirment qu’il y a de nets et gros progrès (<strong>Mise à jour du 17 septembre :</strong> C’est vrai, je l’ai vu.). Le bon côté est que la logique a tellement changé qu’il faut refondre tous les droits. (Oui, c’est le « bon côté » pour le prestataire qui facture, pas l’administrateur du client.)</p>
<p>XI 3.0 offre un petit gadget sympa qui aurait dû être présent dans les versions du XXè siècle de BO, vue la clientèle assez multinationale : la traduction des objets dans les univers. La technique est « préhistorique » (<em>dixit</em> mon gourou) mais cette fonctionnalité ne nécessite réellement pas autre chose que de permettre à un traducteur de remplir une colonne de texte.</p>
<h3>Schizophrénie web</h3>
<p>Revenons à la R2 :</p>
<p>Ce n’est pas apparent, et BO ne le hurle pas aux clients : le portail web principal de BO, l’Infoview, est une abomination pour deux raisons :</p>
<p>D’abord le code est glauque : de l’ASP ou du JSP génère des pages au HTML bancal pleines de <code><table></code> pour le formatage (beûrk !), utilisant les feuilles de style au petit bonheur, avec différents éléments au sein d’un <em>frame</em> (re-beûrk !) qui communiquent par des palanquées de code Javascript. Essayer d’adapter le portail aux désirs ergonomiques souvent justifiés d’un client est plutôt hasardeux.</p>
<p>Ensuite, comme dit à l’instant, c’est de l’ASP ou du JSP : il existe DEUX versions de ce portail, codées chacune dans un langage. Oui, BO est bipolaire. Le choix entre les deux versions est très simple :</p>
<ul>
<li>En Java on peut tout faire, c’est la solution recommandée par tous ceux que je connais qui ont creusé la question. Ne rien connaître au Java à la sauce Tomcat sous-jacent ne gêne pas, car le fonctionnement de BO est une boîte noire (et le peu qu’on en voit ne donne pas envie de creuser plus). Toutes les bases de test et de démo que j’ai rencontrées utilisent cette version Java, et pour adapter le produit, on trouve du monde connaissant le SDK Java (en tout cas dans ma boîte).</li>
<li>En .Net certaines options ne sont pas utilisables, notamment tout ce qui a trait aux <em>web services</em> (un truc très à la mode sur lequel se basent plein d’outils). Dans les comparatifs par rapport à la version Java, la version .Net n’a aucun avantage majeur autre que l’éventuelle disponibilité de gens dans l’entreprise qui ont été endoctrinés par Microsoft plutôt que Sun si on veut personnaliser le portail web, et une meilleure mais non exclusive intégration du « SSO » (<em>Single Sign On</em>, un sigle barbare qui signifie que le navigateur de l’utilisateur n’a plus besoin de se rappeler des mots de passe des nombreux sites web de l’intranet de l’entreprise).</li>
</ul>
<p>Devinez ce qu’avait installé mon client, qui à présent veut rentabiliser son investissement avec les outils annexes basés sur les <em>web services</em> ? Murphy a bien rigolé quand j’ai découvert les petites lignes dans les épaisses documentations d’installation qui renvoyaient à la version Java pour telle ou telle fonctionnalité.</p>
<p>Il serait techniquement et théoriquement possible d’installer les deux versions à la fois sur une même machine, elles vivent bien côte à côte. Vue la stabilité de la bête, je sens que ça va quand même finir en désinstallation et réinstallation. En effet, le comportement du programme d’installation est bien connu, à l’installation justement. En modification d’installations existantes, il tient de la roulette russe. Ou alors je lui provoque une allergie. (<strong>Mise à jour de septembre</strong> : C’est moins pire en SP3 qu’en SP2 où c’est catastrophique.)</p>
<h3>Et puis les bugs du jour</h3>
<p>Citons quelques bugs parmi ceux que j’ai découverts récemment :</p>
<ul>
<li>Les rapports Webi ne sont pas forcément compatibles d’une version à l’autre de XI R2. Mon client utilise le SP2, moi le SP3 (à l’époque je n’avais que ça sous la main). La plupart des rapports que j’ai conçus et que je lui ai envoyés plantent à l’ouverture (message abscons <code>WIS 30270</code> habituel) : il y a un changement de format et la compatibilité descendante... BO s’en branle. Donc pression sur le client pour mettre à jour son BO en SP3, ce qui est toujours délicat. Évidemment j’avais testé au début, avec succès... (<strong>Mise à jour de septembre</strong> : En supprimant les invites des rapports, le transfert fonctionne, mais d’autres parties semblent bizarrement corrompues... Le mot d’ordre est donc plus que jamais : migrer au SP3 ! (Voire à XI 3.0 clame mon gourou personnel.) )</li>
</ul>
<ul>
<li>Un BO XI R2 SP2 fraîchement installé dans sa boîte virtuelle fonctionne très bien. En y accédant depuis le navigateur de la machine hôte, Webi fonctionne bien aussi... jusqu’au jour où je demande à exécuter des requêtes possédant des invites : sablier jusqu’à la fin des temps ou <em>Escape</em>, mais je n’aurai jamais mes résultats. À reproduire...</li>
</ul>
<ul>
<li>Si le nom du serveur BO change, il faut détruire et recréer manuellement tous les services avec leur ligne de commande à rallonge. Ça ne se scripte pas facilement. Non il n’y a pas de fichier de configuration basique avec le nom du serveur à UN endroit, ce serait trop simple.</li>
</ul>
<h3>De BO à SAP</h3>
<p>Enfin une dernière abomination pour finir : après le rachat de l’an dernier, BO a enfin été intégré à SAP (l’éditeur-monstre allemand qui tente de gober tout ce qui passe à portée et que son ennemi mortel Oracle n’a pas déjà racheté). Et ça fait très mal.</p>
<p>Le site de support n’a pas été que recoloré, il a été déplacé dans le domaine de SAP. Tous les liens vers la base de connaissance depuis les sites extérieurs ou depuis les signets, sont morts. À la mode SAP, l’ancienne page de support de BO disserte sur deux pages de verbiage sur leur nouveau site qui est plus mieux, et fournit un PDF de 42 pages (!) sur la manière de naviguer sur le nouveau site. SAP n’a jamais su faire dans le synthétique.</p>
<p>On va être positif, leur site actuel a l’air nettement mieux fichu que celui que j’ai connu il y a quelques années quand je bossais sur R/3... Et ouf, contrairement à une première impression, la documentation autrefois librement téléchargeable de BO est toujours disponible (<strong>Mise à jour de septembre</strong> : Partiellement... ).</p>
<p>Je sens que la transition de BO à SAP va rendre le produit de plus en plus pénible à utiliser malgré ses qualités intrinsèques...</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/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#rev-pnote-445-1" id="pnote-445-1">1</a>] Lequel se fait trop rare d’ailleurs.</p></div>
https://www.coindeweb.net/blogsanssujetprecis/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#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/445
L’abominable BO
urn:md5:bb51609046ce17495d9ffbfed3a831c5
2008-03-05T23:07:00+00:00
2011-05-27T20:33:48+00:00
Christophe
Informatique lourde
base de données
Business Objects
complexité
dommage
dysfonctionnement
développement
ergonomie
foutage de gueule
informatique
perfectionnisme
prise de tête
SAP
travail
<p>Le logiciel professionnel Business Objects, malgré de nombreuses qualités, se rapproche du monde à la Microsoft par certains aspects très crispants.</p> <p><em>Caveat</em> : Comme dirait <a href="http://nobox.fr">Kooorrg</a>, « cet article contient 80% de râlage. »</p>
<p><em>Caveat (bis)</em> : Ce billet est à très haute teneur en informatique d’entreprise.</p>
<h3>Ce qu’est BO</h3>
<p><a href="http://wwww.businessobjects.com/">Business Objects</a> (« BO » pour les intimes) est un outil très connu des services dirigeants, financiers et informatiques des entreprises, endroits où l’on adore faire beaucoup de tableaux avec énormément de chiffres et de graphiques.</p>
<p>Le concept le plus intéressant du produit réside dans l’« univers », une « couche sémantique »™© entre les objets de la base de données et les requêtes de l’utilisateur. Cet univers contient tout bêtement le modèle de données de la base de données sous-jacente, quelques formules, filtre des données par utilisateur, et autres raffinements.</p>
<p>À l’écran l’utilisateur « de base » ne voit plus que des objets « facture », « client », « chiffre d’affaire »... et BO s’occupe de toutes les jointures, filtres, regroupements, et nombreuses autres astuces.</p>
<p>Une requête impliquant des objets « Code client », « Région » et « Chiffre d'affaire » avec un filtre « Année en cours », objets qu’il suffira de glisser dans la fenêtre adéquate, mènera automagiquement à une requête du genre de :</p>
<blockquote><p><code><strong>SELECT</strong> CLIENTS.CODE,<br /><strong> </strong>ADRESSE.REGION,<br /> <strong> </strong><strong>SUM</strong>(COMMANDES.CA) <br /><strong>FROM</strong> CLIENTS, COMMANDES <br /><strong>WHERE</strong> CLIENTS.ID = COMMANDES.CLIENT_ID <br /><strong>AND</strong> TO_CHAR(COMMANDES.DATE,'YYYY')=2008 <br /><strong>GROUP BY</strong> CLIENTS.CODE, ADRESSE.REGION ; </code></p></blockquote>
<p>...avec possibilité éventuellement ensuite de « zoomer » de la région au département au magasin au sous-rayon. Les données sont en mémoire ou ramenées par une nouvelle requête.</p>
<p>La mise en page peut être assez complexe et les calculs très poussés, Excel est totalement enfoncé — mais parfois utilisé pour raffiner ou formater.</p>
<p>Il est possible de mélanger et croiser (« synchroniser » ) des données issues de bases (univers) différents.</p>
<p>Pour de bonnes performances et une maintenance acceptable de l’univers, des bases de données dédiées (<em>datawarehouse</em> avec <a href="http://www.systemeetl.com/concepts_star.htm">schéma en étoile</a> dénormalisé) sont conseillées.</p>
<p>S’ajoutent encore un « référentiel», c’est-à-dire une base de données comprenant les univers et des documents, pour verrouiller l’accès et garantir la cohérence des évolutions, ainsi qu’un « portail » web pour manipuler, gérer et distribuer la masse de rapports que les utilisateurs vont s’empresser de pondre en masse.</p>
<p>BO domine son secteur, et le fait payer fort cher à ses clients. Les alternatives libres ne sont pas encore au niveau mais commencent à être envisageables (JasperReports, BIRT...).</p>
<p>Je connais la version 5 de BO, un peu la 6, et la dernière XI R2 SP3 (on sent dans ce nom l’influence de Microsoft, dont BO est un équivalent français indéniable sur tous les plans) en versions « client lourd » et « Webi » (<em>ie</em> « <em>full web</em> » sans logiciel client sur le poste).</p>
<h3>De l'ergonomie et de la philosophie</h3>
<p>Soyons clair : BO n'est pas arrivé au même degré d’incohérence ergonomique que SAP, ou, bien pire, cette abomination de Lotus Notes v5. BO n’est né qu’en 1990, et évolue depuis toujours dans l’écosystème Windows, l’historique est moins écrasant.</p>
<p>BO a au moins le mérite de permettre à quelqu’un qui connaît sa philosophie et connaît les icônes, ou est simplement curieux d’y fouiller, de faire son travail. La version de BO en « client lourd » (un programme Windows classique) est cependant TRÈS loin de la perfection et de l’application bien léchée. Mais on notera globalement de nets progrès d’ergonomie sur la toute dernière version (« Webi », par le navigateur). La réécriture due au changement de technologie a impliqué une refonte de l’ergonomie globalement très positive... pour peu qu’on arrive au bout du chemin de croix de la migration...</p>
<p>BO est typiquement l’application où le talent ne peut compenser l’expérience et le nombre d’heures passées à faire des rapports un peu complexes et tordus. L’utilisation est une collection d’astuces et de « ah tiens c’est là ce truc ? ». Malheur à celui qui découvre tout sans mentor. Rien de bien différent du reste de l’informatique professionnelle, diront certains. La documentation est plus ou moins pauvre suivant les versions, mais pas indigente.</p>
<p>L’univers est un élément capital. S’il est mal foutu, l’utilisateur récupérera très facilement des données incohérentes. Bien fichu, il fait de la création des rapports un plaisir, et économisera beaucoup de temps à ceux qui auparavant faisaient tous leurs calculs sous Excel.</p>
<h3>v5</h3>
<p>La version 5 date de 2002, elle est encore utilisée assez fréquemment. (<strong>Ajout de 2011</strong> : On est en train d’achever les dernières.) Pour un utilisateur qui n’a pas des besoins énormes, la montée de version n’est pas forcément justifiée. Elle a l’avantage d’être très légère pour les machines actuelles. Elle n’est plus supportée par l’éditeur depuis longtemps, mais certains clients vivent très bien sans support. Les versions 6, 6.5 sont fonctionnellement quasiment identiques.</p>
<p>Je ne vais pas parler des fonctionnalités de base, qui sont là et globalement fonctionnent, avec des bugs occasionnels, mais comme à mon habitude je vais pester sur ce qui gâche la vie au quotidien, et qui se niche souvent dans le détail :</p>
<ul>
<li>Contrairement à Word qui offre des menus pléthoriques doublés de barres d’icônes et triplés de menus contextuels, BO en client lourd offre nombre de fonctionnalités SOIT dans les menus contextuels, SOIT dans les menus principaux, SOIT dans les barres d’icônes. Et la répartition se fait de manière totalement inconsistante. <br />Pour formater une cellule, c’est clic droit, SAUF pour régler largeur et hauteur à la main (menu <em>Affichage</em>). La gestion (ajout, suppression, renommage...) des « fournisseurs de données » (les requêtes où l’on définit les objets récupérés) s’effectue à trois ou quatre endroits différents (clic droit, menu, « cube »...).</li>
</ul>
<ul>
<li>Les boîtes de dialogue sont riquiqui et non extensibles (notamment celle de création des formules, celle de consultation des données ramenées...). En gros, la version de 1991 en 640x480 impose encore son empreinte à l’époque des 19” en 1600x1200 (pour les veinards qui ne bossent pas en SSII). Non, ça n’a pas changé avec les versions suivantes. <br />Beaucoup de fenêtres sont modales, un problème sérieux pour comparer deux rapports.</li>
</ul>
<ul>
<li>Parmi les détails énervants, le fournisseur de données n’affiche que le début du nom des objets puis des points. Très pratique quand ils se nomment tous « Montant ci ou ça » ou « Code truc ou machin ». (Problème corrigé dans la dernière version XI Deski.)</li>
</ul>
<ul>
<li>La sauvegarde et le chargement s’effectuent par défaut dans des répertoires prédéfinis, bien à lui, auxquel BO revient tout le temps. C’est très pénible quand on raisonne par projet et par application...</li>
</ul>
<ul>
<li>La gestion de la sécurité des documents est intégrée DANS le document. En clair, si un client vous envoie un rapport sans avoir coché la case « Sauver pour tous les utilisateurs » à la sauvegarde, il est impossible de le récupérer, même en possédant l’univers utilisé. Il y avait une faille en v5 (n’importe quel administrateur BO pouvait charger n’importe quel fichier sur sa propre installation). Cette faille a été comblée par la suite. <br />Il est donc hautement conseillé de créer toute version intermédiaire ou de développement ou toute archive en cochant la case fatidique, sinon la destruction du document dans le référentiel entraîne le verrouillage définitif des sauvegardes sur disque dur.<br />Parmi mille autres conséquences d’une sécurité implémentée d’une manière assez bancale pour faire plaisir aux paranoïaques des tours de la Défense ou New York : si l’univers sur lequel un rapport est basé est indisponible, ou s’il est renommé, il est impossible de <em>voir</em> la requête du document. <br />Plus grave : pour changer d’univers sur une requête (pour tester différentes versions dans une phase de développement par exemple), il est obligatoire d’avoir aussi récupéré l’ANCIEN univers avec son ancien nom, sinon il ne le trouve pas (normal) et... refuse d’en changer ! Crispant.<br />De plus, en v5, parue pourtant cinq ans au bas mot après Windows 95, BO tient absolument à conserver un nom d’univers de huit (8) lettres. Il est parfois possible de magouiller en renommant un univers APRÈS l’avoir sauvé puis en le rouvrant. Il reste des scories de ce comportement en XI. <br /> <br />Tout cela pour dire que le travail avec un « référentiel » (base de données SQL contenant l’univers) est hautement conseillé pour contourner certains de ces problèmes.</li>
</ul>
<ul>
<li>Joie : en v5 on peut accéder en SQL au modèle de données de l’univers stocké dans le référentiel (pour des requêtes de contrôle, un export Excel...), on peut même obtenir par BO une vue sur un univers BO. Excellent ! Voire indispensable pour réaliser la documentation de l’univers. <br />Horreur : les rapports par contre ne sont sauvés dans le référentiel que sous la forme d’un LONG informe qui ne peut être lui-même analysé. Sauf à utiliser des macros VBA miraculeusement disponibles sur le web, impossible de récupérer une liste à peu près complète des objets contenus dans une masse de rapports préexistants (dans le cadre d’une étude de migration par exemple).</li>
</ul>
<ul>
<li>La réutilisation de code (requêtes et formules de calculs) entre différents rapports n’est pas encouragée. Il est déjà beau qu’à partir de la v6 on puisse dupliquer une simple requête au sein d’un document, pour comparer plusieurs modes de calculs légèrement différents par exemple, ou différents paramètres. <br />Il est donc conseillé de caser le maximum de « logique fonctionnelle » dans les univers... si vous en avez la maîtrise (ils peuvent être fournis par les éditeurs des autres progiciels comme l’ERP ou la compta).</li>
</ul>
<ul>
<li>Un autre problème classique qui m’a fait m’arracher les cheveux après que mon client se soit arraché les siens : il existe un temps maximum d’exécution d’une requête au-delà duquel BO se plaint que celle-ci est trop longue, et ne retourne que des résultats partiels, voire rien.<br />En fait, une requête BO peut être scindée en deux ordres SQL (c’est normal et souvent pertinent). Et si le premier de ces ordres fait plus de la moitié du temps maximum... le <em>timeout</em> est considéré comme atteint ! Rien que rajouter systématiquement des objets « de contrôle » (date d’alimentation de la base...) peut provoquer ce phénomène !</li>
</ul>
<ul>
<li>De manière générale, les messages d'erreurs sont très imprécis et abscons. (Ça ne s’est pas arrangé avec Webi...)</li>
</ul>
<ul>
<li>Les forums de support BO sont décevants. (<strong>Ajout de décembre 2008</strong> : C’est encore pire et encore plus verrouillé depuis que tout est passé dans le giron de SAP.) Préférer le très connu <a href="http://www.forumtopics.com/busobj/index.php" hreflang="en">BOB : http://www.forumtopics.com/busobj/index.php</a>.</li>
</ul>
<h3>XI R2 SP2</h3>
<p>Comme dit plus haut, ce système de nommage de version est inspiré directement de celle de Microsoft : actuellement je travaille pour un client sous <em>Business Objects XI Release 2 Service Pack 2 Fixpack 2.6</em>. La nomenclature elle-même n’est pas très stable : les <em>Fixpacks</em> ont succédé aux <em>Hotfixes</em> et MHF, et <em>XI R3</em> s’appellera en fait « <em>XI 3.0</em> ».</p>
<p>Il faut bien faire attention aux chemins de migration ; par exemple le SP3 tout récent n’est installable que sur un SP2 jusqu’au FP2.5, sinon il faut aussi ajouter le FP 3.1, qui n’a cependant pas été disponible en même temps que le SP3. Au moment où j’écris, un 2.7 est aussi paru, et un 3.3 aussi. Sachant que le moindre de ces patchs pèsent des dizaines ou centaines de Mo et que l’installation est une orgie de configuration et de manipulation de petits fichers xml, jar et de clés de registres, un essai coûte cher en intervention de prestataire…</p>
<p>Bref, tout cela donne des indices inquiétants sur la manière bureaucratique dont s’effectue le développement...</p>
<p>XI reprend le principe du référentiel mais utilise en fait l’infrastructure développée autrefois pour Crystal Reports (racheté depuis longtemps et maintenu dans XI parallèlement au « BO » classique), avec des conséquences effroyables :</p>
<ul>
<li>La nouvelle infrastructure met en place une flopée de serveurs, dont la configuration est complexe et peu claire. Les documentations d’administration font plusieurs centimètres d’épaisseur.<br />On notera une intéressante et piégeuse distinction entre « démarrage » et « activation » d’un service d’arrière-plan. Le démarrage s’effectue par le CCM (<em>Central Configuration Manager</em>), une application Windows. L’activation s’effectue plutôt par le CMC (une console web). Oui, on a bien un CCM et une CMC ; il faut oser. Il existe aussi le CMS (un service maître). <br />Comme dans nombre de jeux, l’administration possède des outils cachés que ne trouvera que celui qui fouine partout.<br />Bref, cette plate-forme a hérité de <em>Crystal</em> la solidité que suggère le nom... <br />(Je me demande souvent si le but n'est pas de maximiser la complexité pour justifier des tarifs délirants et se mettre dans la poche des administrateurs et consultants dont le travail est garanti pour une demi-décennie. La théorie alternative remarque que BO est maintenant <em>Made in India</em>, ce qui n’a jamais été un gage de compacité et d’élégance dans l’architecture.)</li>
</ul>
<ul>
<li>BO avait déjà tendance à vouloir imposer ses répertoires de travail. À présent il impose carrément de passer par son <em>Infoview</em> (un portail web). On peut encore contourner avec le client Windows, mais pas avec Webi (la version "full web"). Bon, ça se défend. <br />L’interface du portail est fort perfectible, et fait à mon sens doublon avec la gestion des sécurités déjà présentes sur des serveurs réseau, éventuellement entre en conflit avec les serveurs web, documentaires et autres déjà en place. Mais le « portail décisionnel » est à la mode, il doit bien se marier avec les masses de documents qu’une administration privée ou publique génère.<br />L’ergonomie est basique, loin derrière le simple explorateur de Windows ; ne serait-ce qu’à cause de l’absence de glisser-déplacer et la relative lenteur de l’interface web. Certains libellés sont scandaleux (« Déplacer dans un nouveau répertoire » sert à créer un nouveau répertoire, et/ou à déplacer un rapport dans un répertoire préexistant), et la manipulation des droits est tordue. Le bouton « Supprimer » change de nom, de place, ou devient une simple icône suivant les pages. Autre exemple, l’emplacement de « Modifier » dépend du type de documents (première option pour du Webi, dernière pour du Deski...) : un véritable piège quand on est fatigué.<br />Cerise pourrie sur le gâteau, les rapports Webi ne sont plus de simples fichiers copier-collables, il faut se taper toute une procédure d’import-export entre référentiels (histoire de bétonner la cohérence entre documents, droits, univers...).</li>
</ul>
<ul>
<li>En XI, on perd la possibilité de consulter le modèle de données de l’univers directement dans le référentiel par SQL. Ce qui oblige à des recherches beaucoup plus fastidieuses quand on veut ausculter l’intérieur d'un univers (export Excel par exemple). Là aussi c’est fournir du boulot fastidieux sans fin à des consultants. (Cependant un univers XI est encore à peu près lisible par un BO v5, ce qui permet de contourner le problème... pour le moment.)<br />Autre horreur technique à mes yeux, la division des documents entre le référentiel BO dans la base de données (toujours là) qui ne contient plus que les identifiants des documents et leurs relations, et les documents eux-mêmes, cette fois stockés sous forme de fichiers sur le disque dur du serveur lui-même. Le piège est de bien synchroniser la sauvegarde du référentiel SQL et de ces documents, sinon... (On se demande à quoi bon avoir une base de données moderne derrière si on jette par dessus bord toute notion d’intégrité. J’ai du mal à croire les arguments de performances.)</li>
</ul>
<ul>
<li>Accessoirement et péniblement, XI me plante régulièrement à la tronche. Sous Webi notamment, il existe plein de délais d’expiration qui provoquent des messages d’insultes totalement hors sujet.</li>
</ul>
<p><strong>Ajout de décembre 2008</strong> : La version XI 3 ne lève pas ces remarques mais améliore tout de même sacrément l’apparence et l’ergonomie de l’interface.</p>
<h3>Webi</h3>
<p>Le client lourd habituel sous Windows, renommé « Desktop Intelligence » existe toujours — sous la pression insistante des clients, mais il est condamné. BO pousse les utilisateurs de XI à passer à la version web, « webi » (pour <em>Web Intelligence</em>).</p>
<p>Toute l’interface a donc été réécrite en Java (il y a même une version en HTML pur plus limitée, non testée), et l'éditeur en a profité pour revoir de fond en comble l’ergonomie. Les fonctionnalités sont beaucoup mieux réparties, un onglet <em>Propriétés</em> un peu fourre-tout mais bien trié permet de toujours savoir où modifier tel ou tel paramètre. Les barres d’icônes sont notablement allégées, à bon escient, et les menus ont carrément disparu.</p>
<p>La gestion des requêtes est bien plus cohérente et facile. Il y a de gros progrès aussi dans le mode exploration (changement instantané du niveau de détail de l’année au jour, ou du continent à la rue, très pratique pour l'analyse). La gestion des sections de documents est plus claire. La logique qui traite de la « fusion des dimensions » (<em>ie</em> le rapprochement des données de deux sources qui se complètent sans se recouper totalement) est nettement plus carrée. Globalement, tout est d’ailleurs plus carré.</p>
<p>Ah non, il n'y a pas toutes les fonctionnalités du client lourd Windows, même si on en est proche. Les rapports sont compatibles à 90%. Mais certaines astuces archi-classiques de formatage ne sont plus possibles, comme les copies dans les entêtes de rupture (la colonne source ne peut plus être supprimée ; cependant il est encore possible de la rendre invisible par formatage, ou de jouer avec les sections).</p>
<p>Impossible encore de voir les données brutes depuis le rapport (le « microcube »). La fonctionnalité « Coller la mise en forme » a aussi disparu, et c’est très dommage. (<strong>Mise à jour de décembre</strong> : Elle est revenue en XI 3). Les filtres ne peuvent plus être que de la forme <code>[Champ] (opérateur) <Valeur></code>, finies les formules <em>sioux</em> (il faut fastidieusement passer par des variables et non, le convertisseur ne le fera pas pour vous). Les graphiques sont à la fois mieux gérés et moins flexibles.</p>
<p>Il faudra apprendre à sauvegarder fréquemment : le bouton d’annulation ne permet plus qu’<strong>un</strong> (1) seul et unique retour en arrière (aucun en mode exploration) !!! (<strong>Mise à jour</strong> : Là aussi, c'est corrigé en XI 3). Ça tombe bien, la session du serveur expirant au bout de 20 minutes, vous pouvez perdre tout le travail en cours pendant une pause café.</p>
<p>Oubliez aussi les boutons d'alignement des cellules : disparus ! À côté de ça on remarque à peine la disparition des fonctionnalités de gestion fine des bordures (distinction intérieur/extérieur, pointillés...). La philosophie de cliquodrome total est également encore accentuée par rapport au client lourd (perte des raccourcis clavier de la version Windows).</p>
<p>Pour l’affichage et l’impression, la régression est monumentale, avec certes le PDF et le HTML comme formats d’exports privilégiés, mais on perd nombre de fonctionnalités de mise en page à l’impression qui vont de soi sous Windows (notamment le très pratique « Ajuster sur N pages en largeur et M en hauteur »).</p>
<p>Entre autres gags, les insertions de logo sont foireuses : soit on veut un logo de haute qualité, qu’il faut redimensionner dans un coin de la page, et cela ne marche qu’en impression PDF, mais pas en affichage HTML (logo tronqué), soit il faut se contenter d’un logo ayant la même taille en pixels que la cellule, et la qualité d’impression sera moyenne.</p>
<p>Je passe sur le fait que les machines de formation chez BO possédaient 2,5 Go de RAM, un processeur à 3 GHz pour faire tourner les serveurs BO et Webi (certes dans un VMWare). Ma machine au bureau, bien moins costaude, tire juste un peu la langue. Mais en tant que client simple, un XP sur une machine récente avec 512 Mo de RAM est suffisant. Certains rapports très lourds génèrent cependant lamentablement des messages d’erreurs incompréhensibles au bout de quelques temps, un des innombrables délais d’expiration doit être silencieusement violé : Webi est moins stable que le client lourd.</p>
<p>Si le développement de nouveaux rapports se fait sans trop d’anicroches, la migration des anciens peut être très fastidieuse à cause de tous les problèmes ci-dessus, des règles plus strictes qui font voler en éclat nombre d’astuces, et d’un convertisseur qui, une fois de plus, préfère inventer un message d’erreur stupide que dire la vérité. Si en plus <del>l’utilisateur</del> le lecteur final tient à sa mise en forme identique au micropoil près...</p>
<p>Bref, Webi est BO tel qu'il aurait dû être dès le départ, mais avec de scandaleuses régressions d’ergonomie par rapport au client lourd, parfois incompréhensibles. On se croit parfois revenu en 1990. On verra ce que donnera la version R3 promise pour très très bientôt.</p>
<p>D’un autre côté, Webi tourne sous Linux (j’ai sommairement testé sous Ubuntu), ça fait toujours un lien de moins avec Microsoft.</p>
<h3>Dans le futur</h3>
<p>Si je laisse parler mon côté mauvaise langue, je pourrais dire que l’alliance avec SAP est une garantie que l’ergonomie, la complexité et la lourdeur ne vont PAS s’améliorer. Pour l’ergonomie, on verra comment évolue Webi, mais le produit existe depuis longtemps et ne rattrape que lentement son retard…</p>
<p><strong>Mise à jour de décembre 2008</strong> : Il faut reconnaître que XI 3 est un énorme progrès — il corrige nombre de lacunes fonctionnelles béantes et de manques ergonomiques. XIR2 sentait le « pas fini » à plein nez, XI3 est plus léché et beaucoup plus agréable.</p>
<p><strong>Mise à jour de mai 2011</strong> : XI3 est mieux, mais au final toujours farci de bugs.</p>
<p>(<em>Suite dans : <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">L’abominable BO (suite) : de R2 à 3.0 et de BO à SAP et une pincée de schizophrénie web</a></em>)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/03/05/451-l-abominable-bo#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/410
L’échec du CRM ?
urn:md5:7ec424ffc7df88aceae312b0054c99b2
2007-08-21T07:54:00+00:00
2011-04-25T21:12:44+00:00
Christophe
Informatique lourde
administration
anticonsumérisme
base de données
bon sens
communication
complexité
CRM
dommage
déshumanisation
ergonomie
ERP
informatique
perspective
travail
<p>Grandeur et malheurs d’un <em>buzzword</em> adoré des vendeurs de logiciels.</p> <p>« Les clients se disent victimes des systèmes de GRC<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#pnote-70-1" id="rev-pnote-70-1">1</a>]</sup> » : l’article qui dénonce est ici :
<a href="http://www.lemondeinformatique.fr/actualites/lire-les-clients-se-disent-victimes-des-systemes-de-grc-22970.html">http://www.lemondeinformatique.fr/actualites/lire-les-clients-se-disent-victimes-des-systemes-de-grc-22970.html</a>.</p>
<p>Questions :</p>
<p>- Quelle est la part de l’enquête, et la part de l’envie de faire un titre un peu provocant de la part du journaliste ? Ou d’Accenture, qui a fait l’étude, et qui doit se demander quoi vendre après avoir fait l’apologie de tous les systèmes de gestion à la mode depuis un bout de temps ?</p>
<p>- On accuse le logiciel de dégrader la qualité des prestations de service au client, mais le logiciel est-il coupable quand le processus entier exige souvent des téléopérateurs et -vendeurs sous-traités et payés au lance-pierre qu’ils se comportent comme des robots et ne s’intéressent qu’à réduire au maximum la durée des appels (au pire), ou sont des petits jeunes sans expérience chargés de fourguer au client le maximum de produits (au mieux) ?</p>
<p>- Pour avoir vu fonctionner avec succès deux CRM d’assez près (support interne d’un service après-vente d’un fabricant d’électronique, et télévente de « matière première » à des professionnels de la restauration), je sais que le paramétrage d’un tel monstre est une entreprise titanesque. Les CRM sont <em>vraiment</em> flexibles, mais il faut beaucoup de réflexion et de temps. Évidemment, à l’autre bout, les besoins des clients sont infinis, donc jamais totalement couverts, et immédiats. Je me demande si ces trucs ne sont pas <em>trop</em> compliqués pour être totalement maîtrisés.</p>
<p>- L’une des plaies de notre société est le saucissonnage des tâches : un client a rarement le même interlocuteur de A à Z quand il a un problème, ce qui impose un système de suivi mais augmente les chances de « tomber au travers » et dépersonnalise la relation. Rien de logiciel là-dedans.</p>
<p>- La « relation client » est par définition la part la plus « humaine » de tout ce que peut faire une entreprise. Faut-il vraiment automatiser ça à fond ?</p>
<p>Bref, le problème est-il lié aux logiciels ou à la philosophie actuelle du service au client ?</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#rev-pnote-70-1" id="pnote-70-1">1</a>] <em>GRC est le tout aussi imprononçable équivalent français de CRM : </em>Customer Relationship Management<em> ou </em>Gestion de la Relation au Client<em>, au choix. Un concept très à la mode qui a fait la fortune des actionnaires de Siebel, SAP, Salesforce.com et consorts.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/70
Crise de nerf avec Oracle
urn:md5:bba8ed201226407b8469e8af3ec34ef3
2007-07-05T22:36:00+00:00
2011-04-24T20:39:06+00:00
Christophe
Informatique lourde
administration
base de données
bug
dysfonctionnement
ergonomie
foutage de gueule
haine
incohérence
informatique
offshore
Oracle
sabotage
SQL
<p>Je hais Oracle.</p>
<p>Je sais, depuis que je le connais, ça fait un peu ronchonnade de vieux schnock.</p> <h3>La Corp</h3>
<p>À propos d’<a href="http://www.oracle.com/" hreflang="en">Oracle-l’entreprise</a>, cela fait longtemps que j’ai dit tout le <del>bien</del> mal que j’en pensais. Support plus pressé de fermer un appel que de le résoudre, prix délirants, mentalité de vampires conscients que la clientèle <del>a peu de choix</del> croit ne pas avoir le choix, technique de prédation plutôt que de concurrence (il n’y a qu’à voir le nombre d’entreprises concurrentes rachetées en peu de temps : Siebel, Peoplesoft/JDEdwards, Sunopsis...), délocalisations massives en Inde…</p>
<p>Même Microsoft est plus sympathique, et même Bill Gates est moins mégalo que Larry Ellison.</p>
<h3>Les softs</h3>
<p><a href="http://www.oracle.com/products/middleware/" hreflang="en">Oracle-le middleware</a> est une collection impressionnante de logiciels sur un peu tous les thèmes informatiques : deux ETL (Warehouse Builder, le boulet maison et Sunopsis, renommé Data Integrator<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#pnote-317-1" id="rev-pnote-317-1">1</a>]</sup>), un serveur web (Apache en fait), un serveur d’application, une distribution de Linux (piquée à RedHat), des solutions de sécurité (douteuses, vu le passif pire que microsoftien de l’entreprise sur le sujet), un requêteur (<a href="http://www.oracle.com/technology/products/database/sql_developer/index.html" hreflang="en">SQLDeveloper</a>, lourd mais pas mal ; il est juste arrivé une décennie trop tard pendant laquelle il a fallu se limiter au néolithique <a href="http://www.oracle.com/technology/docs/tech/sql_plus/index.html" hreflang="en">SQL*Plus</a> ou investir dans l’excellent et dispendieux <a href="http://www.toadsoft.com/" hreflang="en">Toad</a>), un outil de développement graphique qu’ils ont oublié de maintenir depuis le siècle dernier (Forms), etc.</p>
<p>Le pire côtoie des bijoux, et la tendance générale est au « ça marche mais qu’est-ce que c’est lourd ! », « c’est quoi cette limite débile ? », « tiens, ils l’ont réécrit en Java, c’est dix fois plus moche qu’avant », « quelle ergonomie de merde <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#pnote-317-2" id="rev-pnote-317-2">2</a>]</sup> »</p>
<h3>Le joyau de la couronne</h3>
<p><a href="http://www.oracle.com/database/" hreflang="en">Oracle-la base</a> était jusque là préservée de mon mépris. Depuis des années que je la matraque, je l’ai rarement prise en défaut. Il y a bien le bug occasionnel qui fait rire et douter de sa proverbiale solidité (j’ai littéralement tué une base un jour avec un <code>TRUNCATE TABLE</code> suivi d’un <code>Ctrl-C</code> - Dieu merci ce n’était pas en production), ou les optimiseurs de performance qui pètent facilement un câble quand le nombre de jointures devient « intéressant », ou encore le langage maison (le PL/SQL) qui est par certains côtés un peu limité mais n’est pas mal pensé…</p>
<p>Globalement il n’y a pas de quoi se plaindre. Surtout par contraste avec SAP.</p>
<p>À mon nouveau poste, la maintenance d’une base Oracle déjà installée et paramétrée depuis six mois ne s’était pas non plus révélée trop pénible. Enterprise Manager, l’interface graphique d’administration de la version 9i, a le mérite d’exister, contrairement à il y a quelques années, et si elle n’est pas un modèle d’ergonomie, elle permet de faire son travail. Certes, certaines options un peu avancées (du genre compactage de <em>tablespaces</em> pour récupérer quelques gigaoctets de disque) ne sont pas disponibles sans invoquer un outil non installé par défaut, mais je me suis amusé à générer en PL/SQL les ordres du genre <code>ALTER DATABASE</code> nécessaires. Il est bon de savoir mettre les mains dans le cambouis de temps à autre…</p>
<p>De toutes façons, EM a disparu en version 10g, remplacé par une interface web beaucoup plus lourde et anti-ergonomique.</p>
<h3>Installation</h3>
<p>L’installation d’une base, même moderne (version 10g), c’est parfois autre chose. Certes, je complique les choses, il y avait déjà sur le serveur une autre instance (9i) que je ne tiens pas à détruire, et il y avait une autre installation 10g, bancale.</p>
<p>D’entrée, la base Oracle ne veut pas être réinstallée sous le même répertoire (<code>ORACLE_HOME</code>) qu’une précédente installation. Cette ancienne instance peut être dans la corbeille depuis longtemps, la corbeille vidée, tous les fichiers de config connus purgés<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#pnote-317-3" id="rev-pnote-317-3">3</a>]</sup>, et la base de registres de Windows nettoyée, Oracle refuse de réutiliser le nom et l’emplacement. Quelque part dans le .XML maintenu par le programme d’installation universel d’Oracle<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#pnote-317-4" id="rev-pnote-317-4">4</a>]</sup>, il y a la mention de l’ancienne instance. Il faut donc relancer le programme d’installation pour désinstaller ce qui n’existe plus. Bref.</p>
<p>Je m’étais déjà pris le second écueil en pleine face à l’époque où je testais la version Mac OS X d’Oracle 10g (immonde bouse dont aucun script n’était adapté au dialecte maison d’Unix courant des Mac ; c’était une bêta mais tout de même...) : il lui faut une IP fixe ! Il se contrefiche que ce soit une fausse IP, qu’on lui enlève ensuite, mais pour installer, désolé, faut pas de DHCP. Sublime. La magouille pour contourner est documentée, mais ça sent quand même le bricolage (avec forcément un effet de bord par-ci ou par-là quand on fait joujou avec le DNS).</p>
<p>Finalement on arrive au cœur du <del>problème</del> système, et on est libre de nommer, dimensionner, paramétrer, sa toute nouvelle base et de se poser des questions sur la nécessité d’avoir l’option OLAP, sur comment répartir la mémoire entre SGA et PGA, etc. grâce à plusieurs assistants qui s’enchaînent les uns les autres.</p>
<p>Il y eut juste un petit hoquet pendant la mise en place de la base (elle était DÉJÀ dans le
<code>TNSNAMES.ORA</code>, oh insulte suprême !). Problème qui n’en était pas un, vite corrigé. La suite se passe correctement. Mais l’installateur (celui qui a lancé l’assistant de configuration de base précédemment perturbé), lui, repère une ligne dans un log d’erreur (Oracle adore laisser des fichiers de logs partout, comme mon fils laisse traîner ses dessins dans tout l’appartement).
Il se plaint qu’il y a eu un problème, que je dois relancer l’assistant fautif. Puis tout se fige. Je n’ai jamais repris la main.</p>
<p>Quant à relancer le programme d’installation pour reprendre cette main et compléter, impossible :
le <code>ORACLE_HOME</code> est en mémoire, il est hors de question d’installer par dessus. Désinstallation
du truc mal installé d’abord obligatoire... :-( Et c’est long, une installation de 10g...<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#pnote-317-5" id="rev-pnote-317-5">5</a>]</sup></p>
<p>C’est bien simple : j’ai eu le temps de taper tout ce que vous lisez ci-dessus depuis que j’ai cliqué sur <em>Enlever</em> pour désinstaller un Oracle 10g. Le CPU est à 100% depuis le début (et la barre de progression à 99% depuis presque aussi longtemps), je n’ai aucune idée de ce qu’il fait réellement,
mais toutes les minutes il indique supprimer un morceau différent. Je suspecte qu’il sous-traite en Inde par Internet pour être aussi lent, c’est pas possible autrement. Même la désinstallation de Norton sur le portable tout neuf de ma voisine a été plus courte.</p>
<p>Bien sûr, un programme de désinstallation figé supprimé ne peut pas forcément être relancé : apparemment il se supprime lui-même avant la fin de la désinstallation. Comment désinstallé-je sans programme de désinstallation ? (Ouf, il était encore sur le CD).</p>
<blockquote><p>Moralité : pour désinstaller un <code>ORACLE_HOME</code>, le plus rapide est :<br />- de le détruire par l’explorateur,<br />- de lancer l’installateur universel et de lui faire supprimer la référence à ce Home.</p></blockquote>
<p>Il faut savoir être bourrin parfois.</p>
<p><strong>PS</strong> : Ah, j’ai cru être plus finaud que lui en repartant de zéro, en créant
l’instance d’abord, et en créant la base de données dans un deuxième temps.
Au premier abord (longtemps après, c’est dingue le temps qu’il lui faut
pour créer une base vide), cela fonctionne. Au deuxième abord on s’aperçoit
qu’il n’y a ni <em>listener</em> actif, ni <code>TNSNAMES.ORA</code> renseigné. Trop compliqué à
rajouter spontanément je suppose. Les docs de formation confirment que c’est à bibi de se taper le boulot. Bravo !</p>
<p>Finalement, après avoir joué un temps avec les <code>TNSNAMES.ORA</code> et les <code>LISTENER.ORA</code>, le <code>$PATH</code> et toutes ces sortes de choses, fouillé sur le web, j’ai mes bases fonctionnelles, et utilisables depuis les deux versions (9i et 10g) de SQL*Plus. Même l’interface web d’administration fonctionne. Par contre, iSQL*Plus refuse de s’installer, il plante en demandant d’envoyer au support une poignée de fichiers vides. On fera sans.</p>
<p><strong>PS bis</strong> : Depuis que j’ai brouillonné les lignes ci-dessus, j’ai également dépanné un collègue pas très porté sur la technique à se dépêtrer de son installation. J’ai découvert qu’une 9i installée après désinstallation (sauvage ?) d’une 8 utilisait les fichiers de configuration (<code>TNSNAMES.ORA</code> et <code>LISTENER.ORA</code>) laissés par ladite 8, mais installait quand mêmes les siens. C’est toujours sympa les fichiers en double. SQL*Plus fonctionnait très bien, mais impossible de lancer la console d’administration. Ce n’est pas la cause qui m’a fait braire (un <code>SERVICE_NAME</code> au lieu d’un <code>SID</code>), mais le message d’erreur totalement absent. Il est rare qu’une application ne réagisse <em>pas du tout</em> après un clic sur <code>OK</code>.</p>
<p>Quand je pense qu’il paraît que le libre à la réputation d’être compliqué et difficile à installer...</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#rev-pnote-317-1" id="pnote-317-1">1</a>] <em>Du même nom que le concurrent <del>détenu</del> racheté par Business Objects, rien que pour tenter de lui ravir la première place sur Google.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#rev-pnote-317-2" id="pnote-317-2">2</a>] <em>À propos d’ergonomie : depuis que je connais Oracle, SAP et Business Objects, je peste beaucoup moins contre les outils Microsoft. C’est pas Apple certes.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#rev-pnote-317-3" id="pnote-317-3">3</a>] <em>Pour ceux qui ne connaissent pas, Oracle est un grand amateur de très nombreux fichiers de configuration répartis un peu partout sur le disque dur : config du </em>listener<em>, config des services réseaux, fichiers de contrôle de la base, fichier d’initialisation d’icelle, fichier binaire de configuration... Une véritable orgie née du louable mais ici débile souci de ne surtout pas changer les habitudes des anciens DBA maison au prix de la santé mentale de milliers de clients.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#rev-pnote-317-4" id="pnote-317-4">4</a>] <em>Vous avez vu ? Encore un programme qui croit qu’il fait mieux que les outils d’administration du système d’exploitation </em>et<em> qu’une norme simple et stricte à partir du système de fichiers pour gérer ce qui est installé sur une machine.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#rev-pnote-317-5" id="pnote-317-5">5</a>] <em>Moins que Business Objects version XI, mais celui-là est hors concours.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/07/05/360-crise-de-nerf-avec-oracle#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/317
Retour sur Vista : un point de menu
urn:md5:e143975d51e98fdc78e1fb06edc68b0f
2007-01-02T22:43:00+00:00
2010-11-21T16:47:13+00:00
Christophe
Informatique : l’art du développement
Apple
auto-organisation
dommage
dysfonctionnement
développement
ergonomie
hiérarchie
informatique
logiciel libre
MacOS
Microsoft
organisation
Windows
<p>Réunionnite aiguë sur un menu à trois choix.</p> <p>J’avais <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/13/159-les-retards-de-vista">parlé ici, l’été dernier, des catastrophiques problèmes de retards de Vista</a> : années de travail jetées à la poubelle, <em>process gone thermonuclear</em>, incitation limitée au résultat, poids délirant de la compatibilité ascendante à tout prix, etc...</p>
<p>Un exemple concret est donné par le toujours pertinent <a href="http://www.joelonsoftware.com/items/2006/11/21.html" hreflang="en">Joel Spolsky, avec pour exemple le menu pour arrêter ou mettre en veille Vista</a>. La copie d’écran vaut le détour : beaucoup trop d’icônes, de boutons... partout ; un débutant est saturé d’informations et ne sait pas où donner de la tête (au contraire de l’informaticien chevronné qui sait mentalement faire le tri et hiérarchiser cette avalanche de symboles). Plus précisément, Spolsky met le doigt sur la multitude d’options disponibles quand nombre d’entre elles se recoupent quand on y réfléchit un peu.</p>
<p>Sur ce point précis, <a href="http://moishelettvin.blogspot.com/2006/11/windows-shutdown-crapfest.html" hreflang="en">Moishe Lettvin, un des programmeurs de Microsoft, a répondu et confirme les pires craintes sur l’ambiance de développement de Microsoft</a> (même si en <em>ante-scriptum</em> il a rajouté qu’il ne pense pas que le problème soit commun à tout Vista, il a manifestement vexé quelques collègues). Réunionnite aïgue, pléthore de personnel, mille-feuille bureaucratique, division du travail à l’extrême... Beaucoup de maladies de notre époque sont visibles comme le nez au milieu de la figure.</p>
<p>Une remarque étonnante : Moishe Lettvin précise que plusieurs des équipes impliquées possèdent des Mac et veulent s’en inspirer. Mais la philosophie du « simple et clair »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/02/285-retour-sur-vista#pnote-251-1" id="rev-pnote-251-1">1</a>]</sup> si propre à Apple semble totalement hermétique au personnel de Microsoft.</p>
<p>Le <a href="http://www.joelonsoftware.com/items/2006/11/24.html" hreflang="en">verdict final de Spolsky</a> (lui-même ancien de l’équipe Excel de Microsoft) est sans appel : Microsoft est gangréné par la bureaucratie, comprend trop de monde, et en conséquence a même dû réduire la barre à l’embauche.</p>
<p>Je laisse aux <em>geeks</em> de service le soin de comparer avec l’ambience « joyeux bordel » typique du logiciel libre. Je remarquerai juste que là, le progrès est incrémental et que ce sont les ingénieurs qui sont aux commandes.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/02/285-retour-sur-vista#rev-pnote-251-1" id="pnote-251-1">1</a>] <em>Je rappelle qu’un Mac fait à peu près les mêmes choses qu’un PC, et a ses propres conventions à apprendre, ses contraintes, ses bugs, ses limites... Mais pour chaque opération, la manière de la faire semble en général beaucoup plus simple, sans boîtes de dialogues surchargées de texte ni fouilli d’icônes.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/02/285-retour-sur-vista#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/251
Le paradis des informaticiens
urn:md5:935ba465dae632342b488a1d9bbba45b
2006-09-15T00:00:00+00:00
2010-11-03T21:17:09+00:00
Christophe
Informatique : l’art du développement
administration
bon sens
développement
ergonomie
hiérarchie
informatique
optimisme
organisation
ouverture d’esprit
perspective
pouvoir d’acheter
science-fiction
surréalisme
travail
utopie
émerveillement
<p>Joel Spolsky décrit une entreprise où les développeurs sont choyés, et démontre que cela est rentable. Chiche !</p> <p>Je ne présente plus Joel Spolsky, le développeur new-yorkais chroniqueur. <a href="http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html">Son dernier billet en date au moment où je tape ceci explique comment recruter des développeurs (forcément des bons), comment les attirer, comment les conserver</a>.</p>
<p>C’est beau comme de la SF.</p>
<p>Il milite pour investir dans ce qui peut faire grimper la productivité du développeur, sans coûter forcément si cher au final. Notamment :</p>
<ul>
<li>des chaises ergonomiques (pub pour <a href="http://www.darwinmag.com/read/writeon/column.html?ArticleID=733" hreflang="en">Aeron</a>) : au final, un surcoût équivalent au budget papier toilette ;</li>
</ul>
<ul>
<li>des bureaux pour chacun :</li>
</ul>
<blockquote><p><em>So my experience has been that a number of excuses all pile up until it’s virtually impossible to get private offices for developers in any but the most enlightened of companies, and even in those companies, the decision of where to move and where people should work is often taken once every ten years by a committee consisting of the office manager’s secretary and a junior associate from a big architecture firm, who is apt to believe <strong>architecture-school fairy tales about how open spaces mean open companies</strong>, or whatever, with close to zero input from the developers or the development team.</em></p></blockquote>
<ul>
<li>tous les gadgets utiles possibles :</li>
</ul>
<blockquote><p><em>Similar logic applies for other developer toys. <strong>There is simply no reason not to get your developers top of the line computers</strong>, at least two large (21”) LCD screens (or one 30” screen), and give them free reign on Amazon.com to order any technical book they want. These are obvious productivity gains, but more importantly to our discussion here, they’re <strong>crucial recruiting tools</strong>, especially in a world where most companies treat programmers as interchangeable cogs, typists, really, why do you need such a big monitor and what’s wrong with 15” CRTs? </em></p></blockquote>
<ul>
<li>pas de politique interne au bureau à cause du sens de la justice très prononcé chez l’informaticien moyen :</li>
</ul>
<blockquote><p><em>Code either works, or it doesn’t. There’s no sense in arguing whether a bug exists, since you can test the code and find out. The world of programming is very just and very strictly ordered and a heck of a lot of people go into programming in the first place because they prefer to spend their time in a just, orderly place, <strong>a strict meritocracy where you can win any debate simply by being right</strong>.</em></p></blockquote>
<ul>
<li>l’envie de travailler (pour l’ambiance au bureau, le travail, ou le but final) :</li>
</ul>
<blockquote><p><em>Another thing developers like is working on something simple enough or popular enough that they can explain to Aunt Irma, at Thanksgiving. Aunt Irma, of course, being a nuclear physicist, doesn’t really know that much about Ruby programming in the gravel and sand industry.</em></p></blockquote>
<ul>
<li>l’argent, de manière relativement accessoire mais suffisante :</li>
</ul>
<blockquote><p><em>They don’t care about money, actually, unless you’re screwing up on the other things. <strong>If you start to hear complaints about salaries where you never heard them before, that’s usually a sign that people aren’t really loving their job</strong>. If potential new hires just won’t back down on their demands for outlandish salaries, you’re probably dealing with a case of people who are thinking, “Well, if it’s going to have to suck to go to work, at least I should be getting paid well.” (...)<br /> Offering high salaries is a surprisingly ineffective tool in overcoming problems like the fact that programmers get 15” monitors and salespeople yell at them all the time and the job involves making nuclear weapons out of baby seals.</em></p></blockquote>
<p>De la science-fiction, je vous dis !</p>
<p>(Actuellement, je travaille dans une salle de six personnes au bas mot, le bâtiment est promis à une destruction prochaine, les toilettes sont bouchées toutes les deux semaines, certaines chaises n’ont plus de rembourrage, les écrans cathodiques font un peu mal aux yeux mais je suis content du 13” de mon portable ; j’ai peiné à m’approprier un clavier USB pour soulager mes poignets ; la politique est présente mais, en tant que pion de société de service, ce n’est même pas la peine que je cherche à m’en mêler. Cadre, je dois (en théorie) demander l’autorisation pour acquérir le moindre livre. Mon salaire, certes humain, a progressé avec l’inflation mais je pleure en parcourant <em>Courrier Cadres</em> et je préfère ne pas en parler en famille de peur qu’on ait pitié de moi. Je travaille sur des technologies demandées mais archaïques <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/19/186-prise-de-tete-en-abap">voire que je déteste</a>, pour des industriels qui ne sauveront pas le monde, et pour la plus grande gloire d’actionnaires dont certains sont des caricatures vivantes. <del>Non je ne suis pas aigri.</del> Je suis conscient que mon sort est bien plus enviable que celui de beaucoup d’autres.)<br />(<strong>Note postérieure</strong> : J’ai quand même démissionné quelques semaines semaines après avoir écrit ces lignes.)</p>
<p><strong>Ajout du 17 janvier 2007</strong> : Dans le même esprit, mais plus revendicatif, existe une <a href="http://www.codinghorror.com/blog/archives/000666.html" hreflang="en">Déclaration des Droits du Programmeur</a> (merci Steve !). De l’utopie pure sur à peu près tous les points.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/15/236-le-paradis-des-informaticiens#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/208
Justification des majuscules accentuées
urn:md5:7af884f5d47e5eaa0f7a26baf5e9686b
2006-07-25T20:19:00+00:00
2010-11-01T18:36:10+00:00
Christophe
Des formes des mots
bon sens
communication
conquête de l’inutile
dysfonctionnement
défense du français
ergonomie
howto
informatique
Linux
Mac
MacOS
mème
panurgisme
perspective
précision
signifié
Windows
émerveillement
<p>Démonstration de la nécessité des accents sur les majuscules.</p> <p>Il est un domaine typographique où la tradition n’est pas fixe : les accents sur les majuscules (cédilles sur les Ç comprises).</p>
<p>Nombre de publications ne les mettent pas. Les limites de la mécanique des machines à écrire, puis celles de l’informatique, de DOS à Windows, enfin le conservatisme et la difficulté de les taper sur nos clavier, ont souvent eu raison d’elles.</p>
<h3>Pourquoi</h3>
<p>Le <a href="http://perso.wanadoo.fr/jm3/trucs/maj_accent.htm">site de Jacques Mauger</a> explique qu’il <em>faut</em> les mettre. Deux arguments sont évoqués :</p>
<ul>
<li>l’argument d’autorité, avec les recommandations de l’<a href="http://www.academie-francaise.fr/langue/questions.html#accentuation">Académie</a>, de l’Union Européenne, de l’Imprimerie Nationale, de Grevisse… ;</li>
<li>quelques exemples bien sentis, reproduits ci-dessous, où le sens de phrases en majuscules (par exemple des titres de journaux) devient ambigu, notamment à cause de nos participes passés en é ;</li>
</ul>
<ul>
<li>et pour ma part, je me demande simplement pourquoi on n’accentuerait pas les majuscules, quand elles existent sur les minuscules et qu’il est possible de les taper au clavier aisément (au moins sur les <a href="http://www.apple.fr/macosx/">systèmes</a> <a href="http://www.ubuntu-fr.org/">modernes</a>...).</li>
</ul>
<h3>Exemples définitifs</h3>
<p>Ce qui suit est emprunté au site de Jacques Mauger, et à <a href="http://blog.empyree.org/?1427-exemples-pertinents-de-lutilite-des-majuscules-accentuees">un billet d’Empyrée</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-1" id="rev-pnote-78-1">1</a>]</sup></p>
<blockquote><p><strong>« VILLEPIN CHAHUTE A L’ASSEMBLEE »</strong> : petit garnement !<br /><strong>« VILLEPIN CHAHUTÉ À L’ASSEMBLÉE »</strong> : il a souffert.</p></blockquote>
<blockquote><p><strong>« ENFANTS LEGITIMES »</strong> : nés dans le mariage.<br /><strong>« ENFANTS LÉGITIMÉS »</strong> : petits bâtards reconnus par leur pécheur de père.</p></blockquote>
<blockquote><p><strong>« UN PERE INDIGNE »</strong> : ses enfants sont à la DDASS.<br /><strong>« UN PÈRE INDIGNÉ »</strong> : il protège sa progéniture contre, disons, les excès de la télé-poubelle.</p></blockquote>
<blockquote><p><strong>« AUGMENTATION DES RETRAITES »</strong> : revendication catégorielle.<br /><strong>« AUGMENTATION DES RETRAITÉS »</strong> : invasion du troisième âge.</p></blockquote>
<blockquote><p><strong>« UN HOMME TUE »</strong> : assassin.<br /> <strong>« UN HOMME TUÉ »</strong> : victime.</p></blockquote>
<blockquote><p><strong>« CHIRAC DEBARQUE »</strong> : il arrive comme un cheveu sur la soupe<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-2" id="rev-pnote-78-2">2</a>]</sup>.<br /><strong>« CHIRAC DÉBARQUÉ »</strong> : les électeurs lui ont refusé un troisième mandat<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-3" id="rev-pnote-78-3">3</a>]</sup>.</p></blockquote>
<blockquote><p><strong>« CE GARCON EST GENE »</strong> : bonjour, Gene !<br /><strong>« CE GARÇON EST GÊNÉ »</strong> : bien embêté.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-4" id="rev-pnote-78-4">4</a>]</sup></p></blockquote>
<p>La légende veut que le tristement célèbre <a href="http://fr.wikipedia.org/wiki/Marcel_Petiot">docteur Petiot</a> ait joué sur le double sens de ceci :</p>
<blockquote><p><strong>« EX-INTERNE DE L’HOPITAL SAINT-ANNE »</strong> : médecin <br /><strong>« EX-INTERNÉ DE L’HÔPITAL SAINT-ANNE »</strong> : psychopathe</p></blockquote>
<p>Dans un email promotionnel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-5" id="rev-pnote-78-5">5</a>]</sup> :</p>
<blockquote><p>« <strong>Prolongation exceptionnelle des offres CONGRES !</strong> » : promotion en poissonnerie. <br /> « <strong>Prolongation exceptionnelle des offres CONGRÈS !</strong> » : rassemblement de costumes-cravates.</p></blockquote>
<p>Une annonce de Minitel rose<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#pnote-78-6" id="rev-pnote-78-6">6</a>]</sup> :</p>
<blockquote><p><strong>« CHOUETTE NANA, 18 ANS, CHERCHE MEC, MEME AGE »</strong></p></blockquote>
<p>risque d’être interprétée par de vieux cochons ainsi :</p>
<blockquote><p><strong>« CHOUETTE NANA, 18 ANS, CHERCHE MEC, MÊME ÂGÉ »</strong></p></blockquote>
<h3>Comment</h3>
<p><em>(Ce qui suit reprend en partie mon <a href="https://www.coindeweb.net/monblog/index.php/2005/09/07/3-majuscules-accentuees">billet du 7 septembre 2005</a> ; le consulter pour les détails.)</em></p>
<h4>Windows XP</h4>
<p>Le <a href="http://perso.wanadoo.fr/jm3/trucs/maj_accent.htm">site lié ci-dessus</a> décrit plusieurs manières de forcer Windows XP à entrer ces majuscules, et fournit force liens utiles :</p>
<ul>
<li>on peut taper le code Unicode grâce à la célèbre et anti-conviviale combinaison <strong><code>Alt+code</code></strong> (par exemple <code>Alt-0201</code> pour <code>É</code>) - ça a le mérite d’exister et certains aiment muscler ainsi leur mémoire ;</li>
<li>les <strong>touches mortes</strong> fonctionnent souvent, notamment <code>`+A = À</code>, les lettres avec tréma ou accent circonflexe, mais je ne suis pas parvenu à obtenir toutes les majuscules ainsi (cédille, accent aigu…) ;</li>
<li>le panneau « Insertion de caractères spéciaux », à titre exceptionnel ;</li>
<li>un utilitaire, <a href="http://www.reseau.org/keymap/">KeyMap</a>, que je n’ai pas testé.</li>
</ul>
<h4>Linux et MacOSX</h4>
<p>La touche <strong><code>Caps Lock</code></strong> (celle au-dessus de <code>Shift</code>, souvent porteuse d’un voyant) a un rôle différent par rapport à Windows : au lieu de remplacer un <code>Shift</code> (majuscule) bloqué, elle indique bien le <strong>mode majuscule</strong>. Donc <code>CapsLock</code> puis <code>é</code> = <code>É</code>.</p>
<p>Ce mode majuscule est bien pratique pour taper du texte tout en majuscule, mais ceux qui sous Windows utilisaient <code>CapsLock</code> pour forcer les chiffres sur un portable doivent être désorientés.</p>
<p>Sous MacOS, une inconsistence fait que le Ç et le Ù ne s'obtiennent pas de la même manière, il faut plutôt un Alt-ç ou Alt-ù.</p>
<p>Sous Linux, la touche <code>Compose</code> (souvent une des touches au logo Windows) permet de taper par exemple <code>Compose+'+E</code> pour obtenir <code>É</code>.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-1" id="pnote-78-1">1</a>] <em>Je compte amender cette collection avec le temps ; j’adore ce genre de cas où un détail fait basculer le sens d’une phrase. Cela doit être mon côté d’adorateur du chaos, ou une déformation professionnelle d’informaticien rompu à la chasse aux bugs subtils nés d’un bit de travers.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-2" id="pnote-78-2">2</a>] <em>Comme d’hab’.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-3" id="pnote-78-3">3</a>] <em>J’aimerais en être sûr...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-4" id="pnote-78-4">4</a>] <em>Exemple emprunté à <a href="http://paternoster.canalblog.com/archives/2007/04/05/4538956.html">paternoster</a>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-5" id="pnote-78-5">5</a>] <em>Merci à Pierre Buard (mai 2009).</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#rev-pnote-78-6" id="pnote-78-6">6</a>] <em>Exemple piqué à l’excellent </em><a href="http://jacques-andre.fr/faqtypo/lessons.pdf">Petites leçons de typographie</a><em> de Jacques André.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/25/75-justification-des-majuscules-accentuees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/78
Prise de tête en ABAP
urn:md5:f11bca39aa015f90a708f8efb799ac3f
2006-07-19T13:31:00+00:00
2010-11-01T18:13:08+00:00
Christophe
Informatique lourde
base de données
dommage
dysfonctionnement
développement
ergonomie
ERP
haine
incohérence
informatique
offshore
ponctuation
prise de tête
SAP
SSII
<p>Aberrations syntaxiques d’un langage aux lacunes parfois hallucinantes.</p> <p><em>(Rappel : L’ABAP est le langage dans lequel tout SAP R/3 est développé. On parle là d’un <a href="https://www.coindeweb.net/blogeclectique/index.php?category/Informatique-lourder">ERP</a> à beaucoup de millions d’euros de license, avec une industrie entière qui gravite autour. Il montre parfois qu’il a trois décennies d’âge.)</em></p>
<p>Ce code compile (sans rien faire mais ce n’est pas le problème) :</p>
<blockquote><p><code>REPORT ZCCO_TEST.</code><br />
<code>IF 1 > 2 .</code><br />
<code>ENDIF.</code></p></blockquote>
<p>Ceci ne compile pas :</p>
<blockquote><p><code>REPORT ZCCO_TEST.</code><br /><code>IF ( 1 * 5 ) > 2 .</code><br /><code>ENDIF.</code></p></blockquote>
<p>“<code>Relational operator "*" is not supported</code>”, qu’il dit. On ne fait donc pas de calcul dans une condition. Je suis condamné à utiliser une variable de travail (une de plus).</p>
<p>Ceci non plus ne passe pas :</p>
<blockquote><p><code>REPORT ZCCO_TEST.<br />IF 1>2.<br />ENDIF.</code></p></blockquote>
<p>Pourquoi ? Il manque des espaces autour du <code>></code>. Un scandale, effectivement.</p>
<p>C’est pareil pour les parenthèses (<code>IF ( 1 > 2 ) .</code>), il faut les séparer de ce qu’elles contiennent par des espaces. Sauf dans le cas d’un ordre SQL comme <code>SELECT... INTO (variable1, variable2) WHERE...</code> où, là, les parenthèses doivent être collées au reste.</p>
<p>Les limites de ce genre sont pléthore en ABAP. Je hais ce langage. On peut faire son boulot avec, mais c’est comme taper sur un clavier avec des moufles.</p>
<p>Il y a aussi des incohérences un peu pénibles. Par exemple, deux syntaxes totalement différentes selon que l’on recherche une donnée dans une table réelle (de la base de données) ou interne (un bête tableau en mémoire, de même structure que la table réelle).</p>
<p>Le premier ressemble à ça (recherche d’un poste de commande sur sa clé primaire constituée de <code>vbeln</code> et <code>posnr</code>) :</p>
<blockquote><p><code>SELECT ... FROM vbap<br />WHERE vbeln = ... <br />AND posnr = ...</code></p></blockquote>
<p>Par contre pour la table interne :</p>
<blockquote><p><code>READ TABLE t_vbap ... <br />WITH KEY vbeln =...<br />posnr = ...</code></p></blockquote>
<p>Vous avez remarqué : dans un cas il y a un <code>AND</code> entre les deux critères de recherche. Dans l’autre, non. Pourquoi ? Mystère. Petit détail, oui. Mais à la fin de la journée on en perd, des minutes à faire plaisir au compilateur.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/19/186-prise-de-tete-en-abap#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/167
La Guerre des ERP : SAP vs Oracle Applications (5) : Schémas de données
urn:md5:bbf126b980bb6984d074230ba27103bb
2006-07-05T11:11:00+00:00
2010-11-01T08:26:48+00:00
Christophe
Informatique lourde
base de données
complexité
dommage
développement
ergonomie
ERP
incohérence
informatique
métainformation
Oracle
prise de tête
SAP
SQL
travail
<p>Un ERP, c’est une foule d’écrans, de fonctions, de formulaires... pour manier des données, mais d’abord une masse (souvent montrueuse) de données soigneusement rangées dans des tables, bien au chaud au sein d’une grosse base.</p>
<p>Ce qui ne veut pas dire que les deux ennemis se ressemblent sur ce point...</p> <p>(<em>Caveat</em> : Des notions de maniement de bases de données ne nuiront pas à la compréhension de ce qui suit. - <strong>Addendum</strong> : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/05/28/403-cle-primaire-de-substitution-ou-cle-naturelle">Je parle plus en détail et en théorie des différences entre clés fonctionnelles et arbitraires dans ce billet</a>)</p>
<h3>Oracle Applications</h3>
<p>Le schéma de données est à peu près <a href="http://tecfa.unige.ch/staf/staf-h/tassini/staf2x/Heidi/last_bd.htm">normalisé</a> ; les noms de table sont en anglais, à peu près explicites. Chaque ligne porte un identifiant numérique, distinct de celui vu par l’être humain sur un écran ou un rapport. Bref, une conception comme on l’enseigne aux étudiants de première année d’informatique.</p>
<p>Par exemple, la table des en-têtes de commande <code>OE_ORDER_HEADERS</code> a comme
<a href="http://fr.wikipedia.org/wiki/Clé_primaire">clé primaire</a> un identifiant numérique <code>ORDER_HEADER_ID</code>, et un numéro de commande utilisateur <code>ORDER_NUMBER</code>. <br />Cet <code>ORDER_HEADER_ID</code> sert de clé externe pour une <a href="http://fr.wikipedia.org/wiki/Jointure">jointure</a> sur la table des lignes de commandes, <code>OE_ORDER_LINES</code>, dont la clé est <code>ORDER_LINE_ID</code>. <br />Pour être compréhensible par un humain, une ligne (un enregistrement dans la table), possède les champs <code>LINE_NUMBER</code> (valeur démarrant à <code>1</code>) et <code>SHIPMENT_NUMBER</code> (idem). <br />Ce sont ces deux dernières valeurs qui s’affichent sur un écran ou un rapport, les clés réelles ne sont utiles qu’aux développeurs.</p>
<p><em>Exemple</em> : par le <code>ORDER_HEADER_ID</code> <code>175321</code>, je peux joindre les deux tables
et récupérer les identifiants apparents de la commande, par exemple <code>ORDER_NUMBER</code> = <code>1000</code>
et <code>LINE_NUMBER</code> = <code>1</code> et <code>SHIPMENT_NUMBER</code> = <code>1</code>.</p>
<p>Un <code>ORDER_NUMBER</code> possède ses contraintes de numérotation (telle plage pour tel type de <em>business</em> par exemple) mais l’<code>ORDER_HEADER_ID</code>, identifiant unique de l’enregistrement, est unique et peut valoir ce qu’il veut. En général c’est une valeur abstraite mais « compréhensible » par un humain, genre <code>175321</code>. Idem pour l’<code>ORDER_LINE_ID</code>, par exemple <code>321000</code>.</p>
<p>À première vue, <strong>doublonner les identifiants numériques et les identifiants visibles semble inutile</strong> et ne facilite pas le travail du développeur ; mais au contraire cela offre une souplesse complète, les identifiants numériques pouvant
être manipulés à volonté sans conséquence visible pour l’utilisateur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-1" id="rev-pnote-158-1">1</a>]</sup>. De plus, chacune des tables principales n’a ainsi qu’une seule colonne en clé primaire, ce qui simplifie bien des choses<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-2" id="rev-pnote-158-2">2</a>]</sup>.</p>
<p>Petit bonus également pour le développeur : avec un peu d’habitude d’une base précise, il sait qu’un <code>ORDER_HEADER_ID</code> tourne autour de <code>170-180000</code>, un <code>ORDER_LINE_ID</code> de <code>320000</code>, et les reconnaît au premier coup d’oeil.<br />De la même manière, il sait vite que la colonne <code>ORDER_TYPE_ID</code> des en-têtes de commande pointe vers <code>OE_ORDER_TYPES</code>, et que la valeur <code>74</code> correspond par exemple au type de commande « Petit électroménager » dans telle installation de tel revendeur d’électroménager.<br />Le seul inconvénient que je connaisse est que la mise en place sur différentes bases du même paramétrage (par exemple création d’un nouveau type de commande sur les bases de développement, recette et production) mène à des différences d’identifiants numériques (sauf coup de bol). Ce n’est pas censé être un problème si on programme proprement (ne jamais mettre ces identifiants « en dur » dans un programme), et si on rafraîchit suffisamment souvent ses bases de développement et recette<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-3" id="rev-pnote-158-3">3</a>]</sup>.</p>
<p>Donc au final un schéma très propre, forcément touffu vu le nombre de tables impliquées, qui a cependant la mauvaise habitude de devenir de plus en plus tordu avec le temps et les nouvelles fonctionnalités. La pire aberration que j’ai rencontrée provient de lots de données qui migrent de table en table suivant l’état du statut au sein du flux logistique. Il y a peut-être une raison profonde mais cela jure avec la cohérence du reste.</p>
<h3>SAP R/3</h3>
<p>Le modèle de données de R/3 est à la fois plus simple et plus cauchemardesque.</p>
<p>Comme dit dans <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">un précédent billet</a>, R/3 (l’ERP « classique ») utilise surtout des tables dont les noms inspirés de l’allemand ont quatre lettres, du genre <code>MARA</code>, <code>VBAK</code>, <code>LIKP</code>, <code>T001</code>...</p>
<p>Dans ces tables il n’y a pas d’identifiant numérique comme sous Oracle. <strong>La clé primaire est fonctionnelle</strong>. Pour <code>VBAK</code> (les en-têtes de commande), cette clé est composée des champs <code>MANDT</code> (le mandant, qui en quelque sorte identifie la base de travail<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-4" id="rev-pnote-158-4">4</a>]</sup>) et de <code>VBELN</code>, le document commercial <em>visible par l’utilisateur</em> !</p>
<p>Évidemment, dans <code>VBAP</code>, correspondant aux postes (lignes de commandes), ce même <code>VBELN</code> sera répercuté pour identifier ce qui correspond à une commande donnée. Et la clé primaire de cette table des postes est un triplet <code>MANDT</code>, <code>VBELN</code>, <code>POSNR</code>.<br />De même, la table <code>TVAK</code> des types de commande contient la valeur de type directement
dans sa clé.</p>
<p>En conséquence, <strong>renommer un objet sous SAP revient à renommer sa clé primaire</strong> ! Ça ne se fait pas à la légère, sous peine de corrompre les données. Donc, sous SAP, on ne <strong>modifie jamais rien directement dans les tables</strong><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-5" id="rev-pnote-158-5">5</a>]</sup> ! Le système fait d’ailleurs de son mieux pour l’interdire au développeur, et il faut utiliser les fonctions, BAPIs, BADIs, IDOCs, <em>user exits</em>, programmes d’import... livrés avec le système.</p>
<p>Pire : la clé « fonctionnelle » utilisée ici n’est <strong>plus un moyen de vérifer l’unicité ou la destruction d’un enregistrement</strong>. Supposons une ligne de commande (clé : <code>VBELN</code>+<code>POSNR</code>) créée, puis détruite (pas logiquement, mais physiquement et totalement), puis récréée avec le même numéro de poste (ligne)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-6" id="rev-pnote-158-6">6</a>]</sup>. Un programme extérieur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-7" id="rev-pnote-158-7">7</a>]</sup> ne peut savoir si une ligne qu’il a mémorisée (par sa clé <code>VBELN</code>+<code>POSNR</code>) est la même ou pas.<br />Sous Oracle, le <code>ORDER_LINE_ID</code> aurait totalement disparu, et un nouveau aurait été recréé, même si l’utilisateur a choisi de conserver les mêmes <code>LINE_NUMBER</code> et <code>SHIPMENT_NUMBER</code>.</p>
<p>Il y a plus vicieux. L’utilisateur verra à l’écran un document de vente numéroté <code>18500</code>, alors que la base stockera en réalité dans <code>VBELN</code> la chaîne <code>0000018500</code> (dix caractères). Forcer la taille de la chaîne a un intérêt en terme de classement (sans cela, <code>1869</code> serait entre <code>18500</code> et <code>18695</code>), mais pour le développeur c’est un petit cauchemar : chaque variable est susceptible de contenir la chaîne avec ou sans ses zéros initiaux et il faut convertir à gogo (sachant que le moindre appel de fonction en ABAP fait cinq lignes et qu’elles ne peuvent pas être imbriquées les unes dans les autres sur la même ligne comme dans la plupart des langages de programmation).</p>
<p>Encore plus drôle : les nouveaux modules, en premier lieu le CRM mais aussi des morceaux de R/3, ont décidé de prendre en compte les avancées du dernier quart du siècle dernier en matière de bases de données, et de passer aux identifiants numériques !<br />Mais dans une optique d’universalité (sans doute pour faciliter la fusion de bases SAP différentes), ces identifiants sont des <strong>GUID</strong> (<em>global identifier</em>), en hexadécimal, du genre de 447072A2FB800063000000000A1F352F. <br />Allez déboguer des programmes où la moitié des variables sont des identifiants de ce genre...<br />Le plus drôle c’est que ces GUID apparaissent parfois à l’utilisateur (abomination peut-être liée au paramétrage là où je travaille).</p>
<p>Enfin, pour compliquer la tâche, SAP interdisant tout accès à Oracle (la base, qui en général tourne derrière) et imposant ses propres outils de développement, une bonne partie des outils de contrôle d’Oracle sont inaccessibles. Adieu les bonnes grosses requêtes de contrôle du bon déroulement d’un programme qui impliquaient dix tables...<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-8" id="rev-pnote-158-8">8</a>]</sup></p>
<h3>Verdict</h3>
<p>Travailler avec Oracle avait ses bons côtés ; j’ai beaucoup de mal à apprécier SAP pour le développement. Autant SAP est en avance par son interface perfectible mais fonctionnelle, et l’effroyable panel de possibilités, autant Oracle permet au développeur de faire ce qu’il veut pour intervenir sur les données ou rajouter des programmes, sans lui mettre de bâtons dans les roues. Mais on demande rarement son avis au développeur lors du choix d’un ERP...</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p>Partie 5 : Schémas de données</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-1" id="pnote-158-1">1</a>] <em>Encore un niveau en dessous, Oracle identifie l’enregistrement sur le disque dur par un autre identifiant, le <code>ROWID</code>, qui suit le même principe, et est susceptible de modification à tout moment, en cas de réorganisation des données. L’utilisateur de la base de donneés (le développeur) n’a en général pas à se préoccuper de ce <code>ROWID</code>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-2" id="pnote-158-2">2</a>] <em>Les tables de correspondance notamment peuvent avoir des clés composées, et rien n’interdit de rajouter des index à volonté sur les autres colonnes (au contraire).</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-3" id="pnote-158-3">3</a>] <em>Et là on s’aperçoit que c’est une opération lourde ; je travaille actuellement avec une base de développement vieille d’un an au bas mot, et mon client précédent attendait souvent six mois pour rafraîchir son Oracle.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-4" id="pnote-158-4">4</a>] <em>Je simplifie. Un mandant indique une </em>vision du monde<em>, et on peut ainsi collectioner les mandants dans une même base de données SAP : mandant de paramétrage, mandant de développement ne comportant que des programmes, mandant de test comportant des données. Lourd mais pratique. Chaque clé primaire de table commence par le mandant.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-5" id="pnote-158-5">5</a>] <em>Exception pour les tables ajoutées par l’utilisateur que SAP à proprement parler ignore.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-6" id="pnote-158-6">6</a>] <em>Je suis d’accord que ça ne devrait pas pouvoir se faire, mais l’utilisateur peut le faire, et il le fera.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-7" id="pnote-158-7">7</a>] <em>Comme celui que je suis en train d’écrire au moment où je rédige ceci.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-8" id="pnote-158-8">8</a>] <em>De plus se pose le problème des droits d’accès à la base, forcément restreints dans ce contexte...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/158
La Guerre des ERP : SAP vs Oracle Applications (4) : Philosophie opposées
urn:md5:4d36d1d9d4ea7ec1063602c848f554ee
2006-07-04T12:49:00+00:00
2010-10-31T21:19:42+00:00
Christophe
Informatique lourde
abomination
analogie
base de données
complexité
dommage
développement
ergonomie
ERP
incohérence
informatique
Mac
Oracle
organisation
panurgisme
prise de tête
SAP
SQL
sécurité
travail
économie
évolution
<p>« SAP conçoit un Mac, Oracle assemble un PC » : de l’ABAP et du PL/SQL, et des serveurs.</p> <h3>Philosophie</h3>
<p>La différence de philosophie entre SAP et Oracle Applications est très bien résumée par <a href="http://blog1.lemondeinformatique.fr/ingenierie_logicielle/2006/05/sap_construit_u.html">cette remarque de Ray Wang, reprise par Olivier Rafal</a> : <strong>SAP conçoit un Mac, Oracle assemble un PC</strong>.<br />
Autrement dit : SAP veut tout faire de A à Z (interfaces, base, administration...) et verrouille ses interfaces, alors qu’Oracle procède plutôt par agrégat de briques interconnectées, disponibles seules, dont l’utilisateur peut faire un peu ce qu’il veut.</p>
<h3>La base</h3>
<p>Oracle vend des bases de données avant tout, il a donc bâti son ERP autour de cette base, en exploitant ses spécificités (l’ERP a cependant toujours une génération de retard sur la base et les outils annexes, par conservatisme et par nécessité de migrer et certifier une telle masse de code).<br />Les tables sont directement accessibles depuis le code source du programme en PL/SQL.</p>
<p>SAP considère que la base de données peut être n’importe quoi : Oracle, SQL Server, DB2, <del>MySQL</del>... <del>Oui, même MySQL (qui existe sous la forme de <a href="http://www.mysql.com/products/maxdb/" hreflang="en">MaxDB</a> dans le monde SAP)</del> (<strong>Correction</strong> : <em>En fait, MaxDB n’a rien à voir avec la base MySQL. Ça semblait gros quand même...)</em>. SAP rajoute donc sa couche d’administration de la base, impose de passer par une version maison appauvrie du SQL pour interroger la base, et interdit toute modification sous-jacente au niveau SQL.<br />Ironie de l’histoire : l’essentiel des installations de SAP tourne cependant sous Oracle (par sécurité et panurgisme), et rapportent donc de l’argent au concurrent principal...</p>
<h3>Langage : SAP et l’ABAP</h3>
<p>SAP est basé sur un langage spécifique, utilisé nulle part ailleurs, qui fleure bon le néolithique de l’informatique, à savoir l’<strong>ABAP</strong>. Il paraît que cela ressemble au Cobol avec quelques notions simplettes de SQL.</p>
<p>Il est basé sur les notions de « structure » (un enregistrement de base de données en fait, par exemple <em>une</em> ligne de commande), que l’on manipule dans des <em>tables internes</em>, et que l’on synchronise à l’occasion avec les vraies tables de la base de données. Les jointures sont lourdes, et récupérer des données consiste souvent à récupérer un jeu de lignes, le parcourir, et réeffectuer des requêtes pour chaque ligne.</p>
<p>Le langage a tout ce qu’il faut pour être qualifié de langage de programmation, mais il manque beaucoup de « sucre syntaxique » apparu depuis les années 1990. Comme je l’ai déjà évoqué, l’environnement de développement est un éditeur imposé, intégré, basique et sans fioriture qui connaît à peine la coloration syntaxique des commentaires. Programmer en ABAP me fait l’effet de programmer avec un boulet aux pieds.</p>
<h3>Langage : Oracle et PL/SQL</h3>
<p>Oracle Applications (l’ERP) est basé sur le <strong>PL/SQL</strong>, le langage intégré à Oracle (la base). On peut aussi utiliser du Java, mais ce n’est pas si courant, du moins sur les modules les moins récents.</p>
<p>Le PL/SQL a l’avantage d’être un véritable langage, sans doute pas aussi souple et riche que du .Net ou du Ruby, mais plutôt un mariage heureux entre le Pascal et le SQL, qui évolue peu à peu et, je pense, dans la bonne direction, sans trop de fioritures inutiles. Un avantage majeur est que l’on interagit directement avec les données sans couche intermédiaire qui freine ou impose ses limites ; on profite de <em>toutes</em> les fonctionnalités d’Oracle (la base)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#pnote-141-1" id="rev-pnote-141-1">1</a>]</sup>. Les « tables internes » ne servent que dans certains cas précis d’optimisation (mise à jour en masse), puisque la base optimise déjà le commun des requêtes toute seule. La création de « requêtes de feu » de plusieurs pages n’est pas un problème ; le principe est de sous-traiter au maximum à la base de données puisqu’on est très proche d’elle.</p>
<p>Le PL/SQL est conçu pour manipuler des données mais est assez « généraliste », pas réduit à ne travailler qu’avec l’ERP. Exécuter du code d’un autre langage (hors de la base cependant, donc au niveau du système d’exploitation) n’est pas un problème, c’est prévu.</p>
<h3>Serveurs d’application et autres monstres</h3>
<p>Oracle Application inclut un serveur d’application maison, genre d’objet que je connais très mal par ailleurs. SAP mitonne son équivalent, <a href="http://de.wikipedia.org/wiki/SAP_NetWeaver" hreflang="de">Netweaver</a>, mais je ne connais pas d’environnement où Netweaver soit utilisé indépendamment de SAP.</p>
<p>À côté de tout ça, chacun a son essaim d’outils annexes, modules optionnels, portails webs, etc.</p>
<h3>Sous le capot</h3>
<p>Le modèle de données n’a <em>rien</em> à voir, et de ceci que je vais parler <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">la prochaine fois</a>…</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p>Partie 4 : Philosophies opposées</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#rev-pnote-141-1" id="pnote-141-1">1</a>] <em>Et vu le prix de la licence, c’est bien la moindre des choses...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/141
La Guerre des ERP : SAP vs Oracle Applications (3) : Des interfaces très particulières
urn:md5:ffb69bfbd90f13d2583d6312218235a4
2006-07-03T10:50:00+00:00
2010-10-31T21:15:53+00:00
Christophe
Informatique lourde
analogie
argent
base de données
complexité
dommage
dysfonctionnement
ergonomie
ERP
incohérence
informatique
Oracle
organisation
prise de tête
SAP
SSII
travail
économie
évolution
<p>Caractéristiques historiques et techniques des interfaces de SAP et Oracle.</p> <p>Les deux produits se basent au final sur des <strong>interfaces (apparence et technique) totalement propriétaires et utilisées nulle part ailleurs</strong> (sinon par leurs autres produits).</p>
<p>Qu’on ne s’imagine pas que cette indépendance permet de s’affranchir du système d’exploitation sous-jacent, je n’ai jamais vu en pratique tourner ces produits ailleurs que sous Windows. Je me trompe peut-être, les deux interfaces ont migré au moins partiellement vers Java, avec la persective théorique d’être utilisable n’importe où, mais SAP notamment est connu pour être très proche de Microsoft. Le projet <a href="http://www.lemondeinformatique.fr/actualites/lire-sapphire-06-paris-muse-devra-rendre-l-utilisateur-heureux-19651.html">Duet</a> est d’ailleurs destiné à lier de plus en plus SAP et Office. L’évolution sous forme d’applis web pourrait rendre le problème caduc, au moins pour certains modules, ou certains écrans.</p>
<p>La cause de ces interfaces bizarres serait plutôt qu’<strong>à force de migrer de système en système</strong> au cours de l’histoire de l’informatique (du listing papier de 1972 au terminal texte de 1985 au client-serveur de 1990 au client lourd de 2000 au futur <em>full web</em> de 200?), avec l’impératif de maintenir le maximum de compatibilité (pour limiter des coûts de migration toujours astronomiques<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#pnote-160-1" id="rev-pnote-160-1">1</a>]</sup>), chacun des deux systèmes s’est « enfermé » dans son propre univers. Le souci de l’interfaçage avec le reste des outils professionnels (notamment Office) s’accroît avec le temps, mais on ne cherche pas des applications intégrées parfaitement au système d’exploitation en apparence comme en comportement.</p>
<p>De plus, SAP et Oracle Applications se <strong>vendent sur leurs fonctionnalités</strong> (et leur capacité à faire le maximum de choses avec le minimum de monde, du moins en théorie), pas sur leur ergonomie ou leur <em>design</em> (un commercial m’a confié présenter Oracle Applications sur un écran au client le plus tard possible).</p>
<p>On obtient donc l’inverse total et simultané des philosophies à la Microsoft (en mettre plein la vue et insister sur la facilité d’utilisation apparente), à la Apple (interface nette et cohérente avant tout), ou à la Unix (austère et élitiste mais propre).</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p>Partie 3 : Des interfaces très particulières</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#rev-pnote-160-1" id="pnote-160-1">1</a>] <em>En réécriture ou adaptation de programmes spécifiques au client, revalidation de tous les flux métier, découverte de nouveaux bugs, formation, temps de migration technique des données, nouvelles normes de programmation... Une migration de version de SAP ou Oracle prend facilement plusieurs mois.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/160
La Guerre des ERP : SAP vs Oracle Applications (2) : Deux gros patchworks
urn:md5:25367ff598fa2f1cbcc9880db3e1df82
2006-06-30T13:42:00+00:00
2010-10-31T21:13:59+00:00
Christophe
Informatique lourde
argent
base de données
complexité
CRM
dommage
développement
ergonomie
ERP
incohérence
informatique
organisation
prise de tête
SSII
travail
économie
évolution
<p>Les deux logiciels sont en réalité un assemblage de plusieurs modules développés à part...</p> <p>Les deux logiciels sont en réalité un <strong>assemblage de plusieurs modules développés à part</strong> les uns des autres, parfois pour des commandes précises de client, parfois rachetés à d’autres entreprises, reliés à grand-peine et intégrés au chausse-pied.</p>
<p>Les <strong>modules financiers</strong> sont les plus anciens<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-1" id="rev-pnote-159-1">1</a>]</sup>, et vus leur complexité et leur importance<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-2" id="rev-pnote-159-2">2</a>]</sup>, ils n’ont jamais été totalement réécrits. <br />Du point de vue de l’organisation des données, ils ont le mérite d’une architecture simple et compréhensible. À l’utilisation, ils me sont à peu près incompréhensibles (mais je ne suis ni comptable ni formé sur ces modules).</p>
<p>À l’inverse les modules de <a href="http://fr.wikipedia.org/wiki/Gestion_de_la_relation_client">CRM</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-3" id="rev-pnote-159-3">3</a>]</sup>, à la mode depuis quelques années, bénéficient de tous les derniers gadgets d’interface <em>ad nauseam</em> : arborescences, tableaux intégrés genre Excel et pléthore d’onglets, sous-onglets, sous-sous-onglets, fenêtres imbriquées, paramétrage plus-flexible-tu-meurs.... <br />En général ces innovations sont contrebalancées par la perte des avantages de l’interface « ancien style » (facilité de recherche des champs techniques, copier-coller facile, double-clic dans SAP...) et un degré de complexité de plus dans la programmation<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-4" id="rev-pnote-159-4">4</a>]</sup>.</p>
<p>Oracle ayant racheté plusieurs de ses challengers (l’ERP <a href="http://en.wikipedia.org/wiki/Peoplesoft" hreflang="en">Peoplesoft, lui-même acquéreur auparavant de JDEdwards</a>, ou le CRM <a href="http://en.wikipedia.org/wiki/Siebel_Systems" hreflang="en">Siebel</a>), les incohérences de logique et d’interface ne sont pas terminées dans l’unification de tout ce beau monde (projet <a href="http://en.wikipedia.org/wiki/Fusion_Software" hreflang="en">Fusion</a> d’Oracle). Ce qui était au départ une base de données qui faisait tourner des programmes PL/SQL se dirige vers un mille-feuilles de PL/Java/<a href="http://fr.wikipedia.org/wiki/XML">XML</a>/<a href="http://fr.wikipedia.org/wiki/Service_Oriented_Architecture">SOA</a>/<a href="http://en.wikipedia.org/wiki/BPEL" hreflang="en">BPEL</a> intégrant l’ancienne suite d’Oracle, celle de Peoplesoft, etc.<br />SAP pour sa part cherche plus à tout redévelopper lui-même, mais fait évoluer son produit radicalement. R/3 (l’ERP « classique ») a peu évolué pendant que la partie CRM évoluait à fond, la différence est flagrante.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p>Partie 2 : Deux gros patchworks</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-1" id="pnote-159-1">1</a>] <em>Rappelez-vous : ce sont les comptables qui ont payé le développement de l’informatique (avec les militaires).</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-2" id="pnote-159-2">2</a>] <em>Un bon consultant dirait « criticité ».</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-3" id="pnote-159-3">3</a>] <em>Gestion de la Relation Client, en pseudo-français ; rappelons que cela couvre aussi bien la télé- que l’après-vente.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-4" id="pnote-159-4">4</a>] <em>Sous SAP : La programmation à l’ancienne genre ABAP/Cobol avait le mérite de la clarté besogneuse. Tenter d’y rajouter des notions de programmation objet relève du mariage contre-nature, et la difficulté tient autant à l’environnement de développement lourdingue qu’à l’évolution du langage. Sous Oracle, la transition me semble plus facile, peut-être parce qu’on reste finalement au sein de triggers, programmes, packages PL/SQL en rajoutant juste quelques types d’objets différents ; je n’ai pas touché au Java.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/159
La Guerre des ERP : SAP vs Oracle Applications (1) : Des interfaces hideuses
urn:md5:eec056667d95c5a35b8de23a72af68d0
2006-06-28T12:58:00+00:00
2010-10-31T18:25:46+00:00
Christophe
Informatique lourde
abomination
argent
base de données
complexité
CRM
dommage
défense du français
ergonomie
ERP
expertise
incohérence
informatique
Oracle
organisation
prise de tête
SAP
SSII
travail
économie
<p>Les deux poids lourds mondiaux des logiciels de gestion d’entreprise intégrés partagent les caractéristiques communes de lourdeur certaine et d’une ergonomie plus que perfectible.</p> <p>Les deux leaders sur le marché de l’ERP sont <strong>SAP</strong>, n°1 incontesté <em>made in Germany</em>, lourd et ruineux, et l’américain <strong>Oracle Applications</strong>, un cran en-dessous en terme de marché, chiffre d’affaire et fonctionnalités, mais qui achète à tour de bras pour rattraper son retard. Les autres ne comptent pas, ont un marché de niche, ciblent les PME, ou ont été rachetés.</p>
<p><a href="http://de.wikipedia.org/wiki/SAP" hreflang="de">SAP existe depuis plus longtemps que moi</a>, tandis qu’<a href="http://en.wikipedia.org/wiki/Oracle_Corporation">Oracle</a> a longtemps basé sa réputation sur <a href="http://en.wikipedia.org/wiki/Oracle_database" hreflang="en">sa base de données</a> qui, malgré bien des défauts, est devenue <em>la</em> référence dans le domaine. Si je parle d’Oracle ici, j’entends <em>Oracle Applications</em>, pas la base de données<sup>[<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#pnote-140-1" id="rev-pnote-140-1">1</a>]</sup>.</p>
<p>Je connais principalement Oracle Applications 11.0 et 11i, et, avec beaucoup moins d’expérience SAP R/3 et un peu le SAP CRM. Ce qui suit peut être dépendant du paramétrage des bases que j’ai rencontrées.</p>
<p>En passant d’Oracle à SAP, on s’aperçoit que la philosophie des deux produits est totalement opposée, même s’ils tentent de répondre aux mêmes besoins (gérer une entreprise de bonne taille de bout en bout) avec les mêmes moyens (beaucoup de MHz, de Go et de frais en licences et <em>consulting</em>).</p>
<h3>C’est hideux</h3>
<p>L’<strong>interface</strong> est aussi hideuse et anti-ergonomique chez l’un que chez l’autre, mais d’une manière totalement différente. En fait, ni l’une ni l’autre n’a vraiment évolué depuis au bas mot 1998.</p>
<ul>
<li><strong>Oracle semble avoir dix ans de retard sur le développement des interfaces graphiques à la Mac ou Windows</strong>. L’entreprise n’est pas connue pour son souci de l’ergonomie de toute manière.<br /> Depuis environ l’an 2000, l’utilisation de Java pour <em>toutes</em> les interfaces graphiques (de l’utilisateur de base à l’administrateur de la base) se traduit par une lourdeur certaine (plus supportable sur les machines actuelles), et un manque de cohérence avec les applications habituelles dans le monde Windows.<br />L’essentiel de l’ERP est resté au paradigme des <strong>fenêtres</strong> qui s’enchaînent, se chevauchent... en mode MDI (des fenêtres dans la fenêtre principale, très à la mode sous Windows 3.1). <br />Pour basculer d’une fenêtre à une autre (par exemple avoir des informations sur un article depuis l’écran d’une commande), le plus simple est encore de noter sur un papier ou dans le presse-papier ce qu’on cherche, de refermer toutes les fenêtres du module fonctionnel (!), et d’aller dans l’autre module...<br />Le passage d’une partie de l’interface au mode web est déjà effectif mais son ergonomie est pour le moins perfectible. Oracle a l’intention d’évoluer vers un modèle mixte moitié « classique » (serveurs en entreprise, licenses...) moitié « à la demande», <em>ie</em> hébergé, par le web (un peu comme <a href="http://www.salesforce.com/" hreflang="en">Salesforce</a>).</li>
</ul>
<ul>
<li><strong>SAP affiche ouvertement ses origines sur gros systèmes</strong> à une époque où l’idée d’un ordinateur sur chaque bureau relevait de la science-fiction sinon de l’utopie. Les « listes » brutes existent encore, avec les tableaux dessinés à coup de caractères de contrôle, qui autrefois s’affichaient sans doute sur un bel écran de terminal noir et vert (sinon sur du listing papier).<br />Le flux se base sur une succession d’écrans qui occupent toute la fenêtre, comme une page web, et pas comme des fenêtres séparées. À l’usage, ce n’est pas si mal.<br />Depuis le texte a été enrobé, d’absconses icônes sont apparues, quelques gadgets sont sympathiques (notamment le double-clic pour accéder à une autre information, très pratique... quand il est là), mais l’interface ferait hurler n’importe quel ergonome. Par exemple certains onglets ont l’apparence de boutons d’actions (les onglets dignes de ce nom existent aussi) : <img src="https://www.coindeweb.net/blogeclectique/images/erp/sap_commande_client.jpg" alt="Commande client SAP" style="display:block; margin:0 auto;" /><br /></li>
</ul>
<h3>Des limites énervantes partout</h3>
<p>Les limites abondent chez l’un et l’autre, qui auraient apparemment pu être levées avec un peu d’effort (mais elles sont là depuis des lustres). Quelques exemples graves ou minimes, comme ils me viennent :</p>
<ul>
<li>Le <strong>menu</strong> principal d’Oracle est du texte sous forme de menu (moche mais fonctionnel), restreint à la « responsabilité » (en gros, un module fonctionnel plus ou moins personnalisé) en cours. Les raccourcis qu’on peut y placer sont limités à dix (10), numérotés de 0 à 9. Supprimer l’un d’entre eux revient à renuméroter les autres. <br /><img src="https://www.coindeweb.net/blogeclectique/images/erp/oracle_appli_ecran_princ.jpg" alt="Écran principal Oracle" style="display:block; margin:0 auto;" /><br />Avoir plusieurs sessions simultanées d’Oracle Applications est possible en se reconnectant plusieurs fois.<br />À l’inverse, SAP offre un menu avec tous les écrans autorisés à l’utilisateur, plus les « codes transactions » (taper <code>VA03</code> pour lire les commandes, <code>VF01</code> pour créer une facture...), et la gestion simultanée de plusieurs écrans (« modes ») est facilitée.</li>
</ul>
<ul>
<li>Les <strong>raccourcis clavier</strong> sous Oracle sont assez pauvres ; sous SAP l’usage des touches de fonction est massif mais le raccourci pour une même fonctionnalité change suivant l’écran.</li>
</ul>
<ul>
<li>Les raccourcis n’ont souvent pas grand-chose en commun avec ceux répandus sous Windows ou ailleurs.</li>
</ul>
<ul>
<li>SAP prend un malin plaisir à rendre difficile le <strong>pointage de souris</strong>. Les boutons de boîtes de dialogue sont petits, les boutons par défaut ne sont pas plus grands que les autres, et, cerise sur le gâteau, une grosse icône SAP remplace les habituels trois petits boutons Réduire/Agrandir/Fermer de toute fenêtre de Windows, lesdits boutons étant décalés plus à gauche, en réduction, pour bien être sûr de mal viser. (Voir copie d’écran ci-dessous.)<br />Oracle n’a pas ce défaut, les boutons sont moches mais décemment dimensionnés. Par contre, inutile de chercher à agrandir ou réduire une fenêtre pour avoir plus de colonnes/lignes à l’écran, ce n’est pas prévu.</li>
</ul>
<ul>
<li>Nombre des écrans d’Oracle sont <strong>accessibles en écriture comme en lecture</strong>, pas de juste milieu (apparemment et simplement en tout cas). Dans le cadre de la restriction généralisée et paranoïaque des accès (<a href="http://en.wikipedia.org/wiki/Sarbanes-Oxley" hreflang="en">Sarbanes-Oxley</a> et <em>tutti quanti</em>), c’est très gênant.<br />SAP a généralisé (au moins dans les vieux modules) le principe de transactions (entrées de menu) différentes selon qu’on veut créer, modifier, ou juste voir, une commande, un article...</li>
</ul>
<ul>
<li>La <strong>traduction française</strong> est désastreuse sur SAP (je connais Oracle surtout en version originale). La grammaire est correcte, mais je comprends souvent mieux en version allemande ou anglaise, un comble ! Entre autres détails : en français, on dit « <em>Annuler</em> » pour sortir sans rien faire d’une boîte de dialogue (comme en anglais : “<em>Dismiss</em>” ou “<em>Cancel</em>”), pas « <em>Interrompre</em> » (»<em>Abbrechen</em>« en allemand) !<br />Que des morceaux d’allemand surnagent par-ci par-là dans les modules techniques, ou que des morceaux de phrases aient sauté de-ci de-là, est paradoxalement moins grave.</li>
</ul>
<ul>
<li>SAP abuse des <strong>abréviations</strong> dans les noms de colonne ou de champ, jusqu’à l’absurde (« C. » comme nom de colonne !). Y compris dans les infobulles, sisi. <br />Oracle connaît peu les infobulles mais en général remplit moins ses écrans.</li>
</ul>
<ul>
<li>L’<strong>aide</strong> en ligne des deux concurrents pèche de la même manière : correcte dans un sens descriptif, insuffisante comme base de travail pour chercher comment retrouver ou paramétrer tel ou tel objet (il faut reconnaître que l’exhaustivité serait titanesque à obtenir).</li>
</ul>
<ul>
<li>(SAP) Pour imprimer une facture, il ne faut surtout pas cliquer sur le symbole vert qui signifie « <em>OK</em> » dans la boîte de dialogue après un clic sur «<em> Éditer</em> », mais sur l’icône de l’imprimante. Le bouton vert ne <em>sert à rien</em> !<img src="https://www.coindeweb.net/blogeclectique/images/erp/SAP-facture-editer.png" alt="Édition de facture sous SAP" style="display:block; margin:0 auto;" /></li>
</ul>
<ul>
<li>Pour le développeur : dans l’éditeur de code ABAP (imposé, oubliez <a href="http://www.eclipse.org/" hreflang="en">Eclipse</a>, <a href="http://www.vim.org/" hreflang="en">vi</a>, <a href="http://www.nedit.org/" hreflang="en">nedit</a>...), les commentaires sont en bleu... s’ils sont déclarés avec une étoile sur le premier caractère de la ligne. Si le commentaire se trouve sur la même ligne que du code, séparé par un <code>"</code>, ils ne bénéficient pas de la coloration syntaxique !<br />On prend donc vite l’habitude d’aérer le code ABAP (déjà très verbeux) par des commentaires seuls sur leur ligne. Ce n’est pas si gênant, car de toute façon l’éditeur ne supporte pas les lignes de plus de 72 caractères (le standard en 1983) !<img src="https://www.coindeweb.net/blogeclectique/images/erp/sap_editeur_commentaires.jpg" alt="Éditeur ABAP" style="display:block; margin:0 auto;" /></li>
</ul>
<ul>
<li>SmartForms, un module de SAP de développement de formulaire<sup>[<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#pnote-140-2" id="rev-pnote-140-2">2</a>]</sup> possède des fenêtres avec ascenseur au sein d’autres fenêtres avec ascenseur ! Une monstruosité ergonomique que je n’ai jamais rencontré qu’au sein de pages web qui n’avaient pas le choix de faire autrement. Smartforms n’est pourtant pas un vieux clou traîné depuis vingt ans, mais un outil très récent de SAP - ce sont souvent les pires (en complexité inutile surtout).</li>
</ul>
<ul>
<li>Smartforms (encore lui) ne gère pas les différentes versions d’un objet, alors que la notion de gestion de versions est intégrée à l’éditeur des programmes ABAP depuis des années. Au passage, cela rend cauchemardesque la simple annulation de modifications... Chaque outil de développement a été ajouté sans grand respect pour la cohérence avec les outils précédents.</li>
</ul>
<ul>
<li>Etc. etc. <br />Ce ne sont que des détails, mais mis bout à bout ils me tapent sur les nerfs. Ils résument bien la philosophie des produits et la manière dont il sont conçus et vendus.</li>
</ul>
<h3>Quelques gadgets sympas</h3>
<p>C’est surtout SAP qui les possède (<strong>Mise à jour de 2008</strong>: <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap">voir aussi ce billet</a> ) :</p>
<ul>
<li>le double-clic déjà évoqué pour avoir plus d’information sur tel ou tel objet (mais il n’est pas toujours là) ;</li>
</ul>
<ul>
<li>les <em>matchcodes</em>, des petits sous-écrans qui permettent de faire des sélections de plages de valeurs un peu tordues (du genre « prendre les codes articles 1023 à 8123 sauf les 4526 à 5622, et pas le 8001 »), et bien intégrés au langage ABAP sous-jacent ; Oracle ne connaît que les plages de valeur simples ;</li>
</ul>
<ul>
<li>SAP mémorise les dernières valeurs entrées dans un champ ; si vous manipulez les dix mêmes articles/commandes/programmes, ils sont automatiquement proposés dans un menu déroulant à chaque saisie ;</li>
</ul>
<ul>
<li>Hélas, si l’interface de SAP est supportable après un peu d’apprentissage par un utilisateur, <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">celle réservée au développeur « sous le capot » fait nettement plus peur</a>…</li>
</ul>
<p>Partie 1 : Des interfaces hideuses</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<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#rev-pnote-140-1" id="pnote-140-1">1</a>] <em>De toute façon, SAP utilise en général Oracle (la base) en arrière-plan...</em></p>
<p>[<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#rev-pnote-140-2" id="pnote-140-2">2</a>] <em>Dans le sens « bout de papier à imprimer » ; pour compliquer les choses, les terminologies de « rapport » et « formulaire » sont à peu près opposées entre les deux concurrents...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/140
Pinaillages typographiques (5) : l’apostrophe courbe
urn:md5:4ac834f2c779e3aeb0c7ef0d8201cdb4
2006-05-14T22:31:00+00:00
2014-02-26T10:42:03+00:00
Christophe
Des formes des mots
communication
conquête de l’inutile
défense du français
ergonomie
informatique
Linux
Mac
MacOS
multiculturalisme
mème
perfectionnisme
ponctuation
précision
Windows
<p>Comment remplacer le triste apostrophe droit par une française et élegante apostrophe courbe.</p> <h3>Apostrophe</h3>
<p>Parlons de l’<strong>apostrophe</strong>. Là il sera encore plus compliqué de changer ses habitudes pour ne pas utiliser la déplorable version droite ( <strong>‘</strong> , touche <code>4</code>), et utiliser la version typographiquement correcte, qui est en fait un guillement anglais simple ( <strong>’</strong> ).</p>
<p>L’informatique actuelle ne nous aide pas beaucoup :</p>
<ul>
<li>sous Windows : <code>Alt+0146</code> (très pénible vue la fréquence de l’utilisation) ;</li>
<li>sur Mac : <code>Shift-Alt-4</code>, simplement (sans le Shift on récupère l’apostrophe anglaise fermante <strong>‘</strong> qui ne sert pas en français ; en anglais voir l’exemple de citations imbriquées dans <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux">un billet précédent</a> ) ;</li>
<li></li>
<li>code Unicode : <code>U2019</code> ;</li>
<li>code HTML : <code>&rsquo;</code>.</li>
</ul>
<p>Mais bien sûr la plupart des logiciels décents savent convertir l’apostrophe droite et apostrophe courbe - sauf par exemple les outils en ligne destinés aux bloggeurs comme le présent Dotclear… ou (horreur !!!) Openoffice Writer, le concurrent de Word ! (<strong>Mise à jour de 2010</strong> : Je ne sais pas dans la version installée par défaut, mais ça peut s’activer dans la correction automatique.)</p>
<p><em>À suivre…</em></p>
<div class="footnotes"><h4 class="footnotes-title">Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/14/138-apostrophe-courbee#rev-pnote-118-1" id="pnote-118-1">1</a>] <em>Ajout du 16 septembre 2006.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/14/138-apostrophe-courbee#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/118
Pinaillages typographiques (4) : justification et identité culturelle
urn:md5:bf679ab2c15bd70050c5923874f2f10b
2006-05-12T13:21:00+00:00
2014-02-26T10:39:18+00:00
Christophe
Des formes des mots
communication
conquête de l’inutile
défense du français
ergonomie
impérialisme
informatique
langues
multiculturalisme
mème
perfectionnisme
ponctuation
précision
<p>Ce qu’il ne faut pas faire, et pourquoi il faut faire.</p> <h3>Il ne faut pas…</h3>
<p>Dans un texte informatisé :</p>
<ul>
<li><strong>Ne pas utiliser les guillemets droits</strong>, si tentants sur la touche <code>3</code> de votre clavier (hors contexte informatique pur où les conventions typographiques sont de la science-fiction).<br />Et si vous cédez à cette tentation, <a href="http://marcautret.free.fr/sigma/pratik/typo/guilles/">Pauline Morface</a> conseille de les coller <strong>“</strong>comme ceci<strong>”</strong> afin qu’un logiciel comme Word ou Openoffice Writer sache corriger et déduire dans quel sens placer les guillemets français (ce qu’il ne peut pas deviner s’il y a des espaces).</li>
</ul>
<ul>
<li><strong>Ne pas utiliser des pis-aller</strong> du genre de <code><< ceci >></code> ou <code>`` cela "</code>. Les systèmes actuels sont tous capables de respecter la typographie traditionnelle, profitons-en.</li>
</ul>
<ul>
<li>Ne pas s’étonner si les guillemets anglais ouvrants et fermants s’affichent de manière identique dans certaines polices de caractères ; cela arrive mais on a bien deux caractères différents.</li>
</ul>
<ul>
<li><strong>Ne pas généraliser</strong> ce qui précède à toutes les variantes locales des langues concernées : français canadiens, suisses franco- ou germanophones… ont leurs variantes subtiles (voir les articles en références).</li>
</ul>
<h3>Pourquoi ?</h3>
<h4>Ça sert</h4>
<p>Il est si pratique d’utiliser les guillemets droits si accessibles… <br />Comme il serait si pratique d’abandonner la moitié dé raigles degra mèr ait deux laicer lait jeans écrire côme il leu désir.</p>
<p>Je parie que le dernier segment de la phrase ci-dessus a nécessité trois fois plus d’attention pour être lu que la première partie, même pour un réfractaire à l’orthographe officielle. Tout est affaire de lisibilité et de convention. On peut en changer (et pratiquer par exemple le « langage SMS », apprendre l’espagnol ou la langue des signes) mais l’adaptation est longue. Chaque groupe humain avec sa langue propre instaure de fait des conventions, dont le non-respect réduit la vitesse de compréhension. Les conventions typographiques en font partie. Ce n’est certes pas la partie la plus importante, je suis d’accord, mais c’est une partie d’un tout.</p>
<h4>Lisibilité</h4>
<p>Continuons sur la lisibilité. Dans ces exemples piqués à J.-D. Rondinet et O. Randier, cherchez le plus immédiatement compréhensible :</p>
<blockquote><p>« Attention ! »</p></blockquote>
<blockquote><p>«Attention!»</p></blockquote>
<blockquote><p>“Attention!”</p></blockquote>
<p>Notre cerveau fonctionne en reconnaissant les mots à leur forme plutôt qu’en déchiffrant lettre à lettre ; les espaces et les guillemets larges sont donc une belle invention. L’exemple suivant est encore pire :</p>
<blockquote><p>L‘“apostrophe dactylo” est à proscrire.</p></blockquote>
<blockquote><p>L’« apostrophe dactylo » est à proscrire.</p></blockquote>
<h4>Identité</h4>
<p>Ces détails typographiques font également partie de l’<strong>identité même d’une langue</strong>, et celle-ci est aussi une <strong>masse de petits détails</strong>. En français on dit « table » pour désigner un certain meuble, on ne décline pas les noms mais on conjugue assez bizarrement, on rajoute des cédilles à certains c, et on utilise des guillemets bien visibles. Il serait possible d’écrire <em>β</em> à la place de <em>ss</em> comme les Allemands, mais ça n’est pas la tradition.</p>
<p>Ces conventions changent suivant les pays pour de simples raisons d’<strong>inertie</strong> et de maintien de règles préexistantes, pour continuer à lire aisément les textes existants, mais aussi pour la lisibilité. Celles sur les guillemets français, l’espace avant les ponctuations doubles… sont liées en partie à la présence fréquente d’apostrophes chez nous. Notre longueur moyenne de mots est aussi intermédiaire entre l’anglais et l’allemand, je ne sais en quoi cela joue sur l’existence d’espaces insécables.</p>
<p>Enfin, ce genre de petit détail fait le <strong>charme</strong> et l’identité d’une civilisation - et accessoirement permet de repérer les gens instruits et consciencieux :-)</p>
<p>On rejoint la bataille pour l’orthographe. Si certains allègements sont possibles, tailler dans la logique de la langue et ce qui en fait une partie du charme est dangereux - y compris et surtout quand on cherche là à adapter la langue à des contraintes techniques, qui soit ont déjà disparu, soit le pourraient avec un minimum d’effort. Mais le plus grand danger est encore la simple ignorance.</p>
<p>Soyons optimiste : les traitements de texte notamment ont inculqué (consciemment ou pas) plus de notions de typographie au commun des mortels que bien des cours du genre de celui que vous lisez.</p>
<p><em><a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/14/138-apostrophe-courbee">À suivre…</a></em></p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/12/136-justification-et-identite-culturelle#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/127
Pinaillages typographiques (3) : guillemets anglais et d’autres lieux
urn:md5:3feb792332a26c97a333e4acf01b0657
2006-05-06T19:58:00+00:00
2014-02-26T10:39:47+00:00
Christophe
Des formes des mots
communication
conquête de l’inutile
défense du français
ergonomie
Europe
informatique
langues
Linux
Mac
MacOS
Microsoft
multiculturalisme
mème
perfectionnisme
ponctuation
précision
Windows
<p>“Young man, study history!” »So ist das Leben.«</p> <p>Le billet précédent traitait du français, mais on utilise couramment d’autres langues de nos jours :</p>
<h4>Pour l’anglais, l’américain et le <em>globish</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#pnote-116-1" id="rev-pnote-116-1">1</a>]</sup></h4>
<p>Lors d’une citation en anglais, on utilisera les guillemets <em>anglais</em>. Et ceux-ci ne sont pas droits comme le triste <strong>“</strong>, mais s’ouvrent et se ferment eux aussi. Les anglo-saxons ne sachant pas aérer leur prose, il n’y a pas d’espace entre les guillemets et les mots entourés (comme il n’y en pas non plus pour eux avant les <strong>;</strong> ou les <strong>:</strong>).</p>
<p>Ne cherchez pas sur votre clavier, il y a des combinaisons de touches à connaître :</p>
<ul>
<li>sous Windows : utiliser <code>Alt-0147</code> et <code>Alt-0148</code> pour obtenir respectivement <strong>“</strong> et <strong>”</strong> ;</li>
<li>sur Mac : <code>Alt-7</code> respectivement <code>Alt-Shift-7</code> ;</li>
<li>sous Linux : <code>Compose-<-"</code> et <code>Compose->-"</code>, ou parfois les raccourcis <code>AltGr-v</code> et <code>AlGr-b</code>.</li>
</ul>
<h4>Exemple bilingue</h4>
<blockquote><p>“Young man, study history! In history lies all the secrets of the state craft.”<br />
<br />
« Jeune homme, étudiez l’histoire ! C’est dans l’histoire que résident tous les secrets de l’art de gouverner. »<br />
<br />
(Version modifiée d’une citation de <a href="http://fr.wikipedia.org/wiki/Winston_Churchill">Winston Churchill</a> du 29 mai 1953, cité dans <em>Winston Churchill</em> (de J. C. Humes), <em>Author’s Acknowledgments</em>.)</p></blockquote>
<h3>En allemand (et slovaque et tchèque)</h3>
<ul>
<li>Soit on inverse les guillements par rapport au français : <strong>»</strong> comme guillemet ouvrant et <strong>«</strong> comme guillemet fermant ;</li>
<li>soit on utilise <strong>„</strong> (guillemets virgules inférieurs) comme guillemet ouvrant et <strong>“</strong> (guillemet anglais ouvrant) comme guillemet fermant. <br />Et pour obtenir des <strong>„</strong>, il faut :
<ul>
<li>sur Mac, taper <code>Shift-Alt-2</code> ;</li>
<li>sous Windows, <code>Alt-0132</code> ;</li>
<li>sous Linux : sur ma Ubuntu 7.04 « Feisty », il faut taper <code>Compose->-'</code><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#pnote-116-2" id="rev-pnote-116-2">2</a>]</sup> ; sur une 9.04 « Jaunty », à <code>Compose-"-,</code><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#pnote-116-3" id="rev-pnote-116-3">3</a>]</sup> <br /><br />Auparavant : pas toujours de combinaison de touche standard ; <a href="http://user.cs.tu-berlin.de/~kunegis/hacking/compose/" hreflang="en">Suse Linux</a> utiliserait <code>Compose-,-"</code>. Ubuntu aussi, avec aussi <code>Compose->-"</code>. Sur ma Debian Sarge, j’ai dû modifier le comportement de Compose (ce qui consiste à modifier le fichier <code>/usr/X11R6/lib/X11/locale/iso8859-15/Compose</code> (ou <code>/usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose</code> pour une configuration en UTF-8, ou plutôt <code>/usr/share/X11/locale/en_US.UTF-8/Compose</code> sur de l’Ubuntu 8.04<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#pnote-116-4" id="rev-pnote-116-4">4</a>]</sup>) en y rajoutant les lignes suivantes et en supprimant une préexistante :<br /> <code># Double virgule</code><br /><code><Multi_key> <comma> <comma> : "," U201E</code> <br /> <code><Multi_key> <comma> <quotedbl> : "," U201E</code> <br /> <code><Multi_key> <quotedbl> <comma> : "," U201E</code> <br /> <code># Apostrophe courbe</code><br /><code><Multi_key> <apostrophe> <apostrophe> : "'" U2019</code> <br /> <code><Multi_key> <space> <apostrophe> : "'" U2019</code> <br /> <code># Ligne supprimée</code> <br /> <code># <Multi_key> <apostrophe> <apostrophe> : "'" apostrophe</code> <br /> J’obtiens ainsi l’apostrophe courbe par <code>Compose-'-'</code> ou <code>Compose-Espace-'</code>, et la double virgule allemande par <code>Compose-,-"</code>) ;</li>
<li>code Unicode : <code>U2019</code> ;</li>
<li>code HTML : <code>&rsquo;</code>.</li>
</ul></li>
</ul>
<p>Les espaces suivent la même logique qu’en anglo-saxon.</p>
<h4>Exemple :</h4>
<blockquote><p>„Das ist ein Beispiel.”</p>
<p>
»Das ist auch ein Beispiel.«</p></blockquote>
<h3>En polonais, hongrois, suédois, finnois, danois, norvégien</h3>
<p>On utilise exclusivement les guillemets anglais <em>fermants</em>, comme ici en polonais :</p>
<blockquote><p>”Nie lubię wymiany poglądów. Zawsze na tym tracę.”<br />(« Je n’aime pas les échanges d’idées - je suis toujours perdant ! »)<br /><br />Antoni Słonimski</p></blockquote>
<h3>Exemple de guillemets anglais en français</h3>
<p>Il y a tout de même un cas en français où les guillemets anglais sont utilisés en français : lorsque dans une citation ou un dialogue on retrouve une citation :</p>
<blockquote><p>« Il me l’a dit clairement : “Il ne faut pas utiliser les guillemets anglais sauf pour une citation incluse dans une autre.” J’ai tendance à être d’accord. »</p></blockquote>
<p>(Les puristes à un niveau que je ne vais quand même pas atteindre pencheraient plutôt pour les guillemets simples, ou chevrons ouvrant/fermant (<strong>‹ ›</strong> , codes Unicode <code>U2039</code> et <code>203A</code>), mais ce n’est pas utilisé.)</p>
<p>En anglais on utilise les guillemets anglais <em>simples</em> :</p>
<blockquote><p>“That’s a ‘quote’” (ou à l’inverse : ‘that’s a “quote”’).</p></blockquote>
<p>En allemand on suit le même principe ; la double-virgule est remplacée par un guillemet-virgule identique à une virgule :</p>
<blockquote><p>„Es gibt einen Subtext zu ,sei nicht böse’ und der lautet ,set nicht illegal’.”<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#pnote-116-5" id="rev-pnote-116-5">5</a>]</sup></p></blockquote>
<p><em><a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/12/136-justification-et-identite-culturelle">À suivre…</a></em></p>
<div class="footnotes"><h4 class="footnotes-title">Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#rev-pnote-116-1" id="pnote-116-1">1</a>] <em>Sabir international à base d’anglais appauvri massacré par un peu tout le monde.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#rev-pnote-116-2" id="pnote-116-2">2</a>] <em>Ajout du 30 juin 2007.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#rev-pnote-116-3" id="pnote-116-3">3</a>] <em>Ajout de juillet 2009.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#rev-pnote-116-4" id="pnote-116-4">4</a>] <em>Mise à jour du 7 juin 2008.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#rev-pnote-116-5" id="pnote-116-5">5</a>] <em>Justification par <a href="http://en.wikipedia.org/wiki/Vint_Cerf" hreflang="en">Vint Cerf</a> de la censure opérée par Google en Chine ; <a href="http://www.heise.de/ct/06/10/006/" hreflang="de">traduction allemande issue du dossier de C’t (2006/10) sur la pieuvre Google</a> (<a href="http://www.heise.de/ct/06/10/162/" hreflang="en">version anglaise en ligne ici</a>).</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/116
Pinaillages typographiques (2) : les espaces insécables
urn:md5:125c5c24daa7af1fcccbdb50b35707a1
2006-05-01T11:30:00+00:00
2014-02-26T10:40:40+00:00
Christophe
Des formes des mots
communication
conquête de l’inutile
défense du français
ergonomie
informatique
Linux
Mac
MacOS
perfectionnisme
ponctuation
précision
Windows
<p>On ne met pas des espaces n’importe comment avant les ponctuations.</p> <p>En français la tradition veut que l’on utilise les guillemets <em>français</em>, séparés des mots par une « espace<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/01/134-espaces-insecables#pnote-126-1" id="rev-pnote-126-1">1</a>]</sup> insécable ».</p>
<p>L’espace est nécessaire pour aérer le texte, et l’espace « insécable » évite au guillemet de se retrouver sur une autre ligne que le mot à côté de lui, ce qui serait très inesthétique.</p>
<p>On doit toujours utiliser une espace insécable avant les ponctuations doubles comme <strong>;</strong> ou <strong>:</strong>. <br />On l’obtient ainsi :</p>
<ul>
<li>sous Windows : <code>Alt-0160</code> sous Windows (non, ce n’est pas pratique) ;</li>
<li>sur Mac : <code>Alt-Espace</code> sur Mac ;</li>
<li>sous Linux et dérivés : <code>Shit-Espace</code> ou <code>Alt-Espace</code> ou <code>AltGr-Espace</code> ou <code>Compose-Espace-Espace</code>, à vérifier selon la distribution ;</li>
<li>en code HTML : <code>&nbsp;</code>.</li>
</ul>
<p>Je passe sur les espaces fine, justifiable, dilatable ou pas. C’est un domaine qui m’est encore inconnu et moins visible que les guillemets et espaces insécables. (Je suis toutefois preneur de toute info incluant notamment les combinaisons de touche sous Mac, Linux, Windows).</p>
<p><em><a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/06/135-guillemets-anglais-et-d-autres-lieux">À suivre…</a></em></p>
<p><strong>Références sur la toile</strong> :</p>
<ul>
<li><em>Orthotypographie : les guillemets</em> de J.-D. Rondinet et O. Randier:<br /><a href="http://listetypo.free.fr/ortho/guillemets.html">http://listetypo.free.fr/ortho/guillemets.html</a></li>
<li>Articles Wikipédia :<br /><a href="http://fr.wikipedia.org/wiki/Guillemet">Guillemets : http://fr.wikipedia.org/wiki/Guillemet</a><br /><a href="http://fr.wikipedia.org/wiki/Aide:Caract%C3%A8res_sp%C3%A9ciaux_probl%C3%A9matiques#Guillemets_.C2.AB_et_.C2.BB">Caractères spéciaux : http://fr.wikipedia.org/wiki/Aide:Caract%C3%A8res_sp%C3%A9ciaux_probl%C3%A9matiques#Guillemets_.C2.AB_et_.C2.BB</a></li>
<li>L’excellent <em>Œuvrez les guillemets</em> de Pauline Morfouace :<br /><a href="http://marcautret.free.fr/sigma/pratik/typo/guilles/">http://marcautret.free.fr/sigma/pratik/typo/guilles/</a></li>
</ul>
<div class="footnotes"><h4 class="footnotes-title">Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/01/134-espaces-insecables#rev-pnote-126-1" id="pnote-126-1">1</a>] <em>En typographie, <a href="http://www.druide.com/points_de_langue_03.html">« espace » est féminin</a>, c’est comme ça.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/01/134-espaces-insecables#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/126
Pinaillages typographiques (1) : les guillemets français
urn:md5:aba2b6f8bb02badb710d2535bd1099b3
2006-04-20T20:35:00+00:00
2014-02-26T10:46:51+00:00
Christophe
Des formes des mots
communication
conquête de l’inutile
défense du français
ergonomie
impérialisme
informatique
langues
Linux
Mac
MacOS
Microsoft
multiculturalisme
mème
perfectionnisme
ponctuation
précision
Windows
États-Unis
<p>« Je vous le dis tout net : “Il ne faut pas utiliser les guillemets anglais, sauf pour une citation incluse dans une autre.” Et que ce soit clair. »</p> <p>Comme souvent en informatique, un standard plus ou moins bancal est apparu il y a bien longtemps, compromis de contraintes économiques et de besoins d’un marché précis (l’américain, bien sûr). Puis, habitude, comptabilité ascendante, inertie et manque de perfectionnisme aidants, ce standard a tenu à peu près inchangé jusqu’à nos jours.</p>
<p>C’est pour cela que nos claviers actuels ne comportent pas de guillemets français (<strong>«</strong> par exemple ceux qui encadrent ceci <strong>»</strong>), mais uniquement des guillemets qu’on croit <strong>“</strong>anglais<strong>”</strong> alors qu’en fait ils ne sont que droits (").</p>
<h4>Guillemets français bien de chez nous</h4>
<p>Les guillemets français ne sont pas apparents sur un clavier français standard, et leur obtention dépend du système d’exploitation :</p>
<ul>
<li>sous Windows il faut connaître les codes magiques, ce sont <code>Alt-0171</code> et <code>Alt-0187</code> pour respectivement <strong>«</strong> et <strong>»</strong> ;</li>
<li>sur Mac c’est plus convivial : <code>Alt-7</code> respectivement <code>Alt-Shift-7</code><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/04/20/127-guillemets-francais#pnote-115-1" id="rev-pnote-115-1">1</a>]</sup> ;</li>
<li>Linux offre une possibilité plus mnémotechnique par la touche <code>Compose</code> (souvent la touche Windows droite sur un PC) : taper <code>Compose-<-<</code> ou <code>Compose->-></code>. <br />Les combinaisons de touche <code>AltrGr-w</code> (ou <code>AltGr-z</code> suivant la distribution) et <code>AltGr-x</code> existent aussi, ce qui est quand même plus rapide à taper.</li>
<li>Mais plus souvent, dans les applications où la typographie a un minimum d’importance (notamment Word), des guillemets droits seront spontanément transformés en guillemets français ou anglais selon la langue du document ! Et c’est une excellente chose. <br />(Bizarre époque que la nôtre, où un logiciel phare d’un archétype de l’impérialisme techno-culturel anglo-saxon contribue à la préservation des particularismes culturels locaux...)</li>
</ul>
<h4>Utilisation</h4>
<p>Principalement dans les citations ou les mots au figuré. <br />Par contre, les titres et les mots étrangers doivent plutôt être en italique si on a le choix (et en cas d’impossibilité technique, on trouvera souvent un italique remplacé par un souligné ou encadré d’<em>underscores</em>).</p>
<blockquote><p>Jean rencontra Pierre :
<br />« Que lis-tu ? demanda-t-il.
<br />- Un article du <em>Monde informatique</em> sur le <em>benchmarking</em> dans les <em>datawarehouses</em>. »
<br />Jean repartit.</p></blockquote>
<p><em><a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/05/01/134-espaces-insecables">À suivre...</a></em></p>
<p><strong>Références sur la toile</strong> :</p>
<ul>
<li><em>Orthotypographie : les guillemets</em> de J.-D. Rondinet et O. Randier:<br /><a href="http://listetypo.free.fr/ortho/guillemets.html">http://listetypo.free.fr/ortho/guillemets.html</a></li>
<li>Articles Wikipédia :<br /><a href="http://fr.wikipedia.org/wiki/Guillemet">Guillemets : http://fr.wikipedia.org/wiki/Guillemet</a><br /><a href="http://fr.wikipedia.org/wiki/Aide:Caract%C3%A8res_sp%C3%A9ciaux_probl%C3%A9matiques#Guillemets_.C2.AB_et_.C2.BB">Caractères spéciaux : http://fr.wikipedia.org/wiki/Aide:Caract%C3%A8res_sp%C3%A9ciaux_probl%C3%A9matiques#Guillemets_.C2.AB_et_.C2.BB</a></li>
<li>L’excellent <em>Œuvrez les guillemets</em> de Pauline Morfouace :<br /><a href="http://marcautret.free.fr/sigma/pratik/typo/guilles/">http://marcautret.free.fr/sigma/pratik/typo/guilles/</a></li>
</ul>
<div class="footnotes"><h4 class="footnotes-title">Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/04/20/127-guillemets-francais#rev-pnote-115-1" id="pnote-115-1">1</a>] <em><strong>NB</strong> : La touche </em><code>Alt</code><em> et la touche </em><code>Option</code><em> (la « casserole »), c’est pareil.</em> </p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/04/20/127-guillemets-francais#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/115
Les joies de l’ERP et du CRM (I)
urn:md5:a7c454065eeee45c7c4de584724238a0
2006-03-04T16:34:00+00:00
2010-10-26T14:25:44+00:00
Christophe
Informatique lourde
argent
base de données
complexité
ergonomie
ERP
expertise
impérialisme
informatique
langues
logistique
Oracle
organisation
SAP
SQL
SSII
travail
valeur
économie
<p>Un ERP est un monstre coûteux et souvent abscons.</p> <p>Un <a href="http://www.commentcamarche.net/entreprise/erp.php3">ERP</a> est un monstre. C’est un logiciel coûteux, voire ruineux, souvent très lourd à mettre en place, qui impose sa logique à toute une entreprise, mais qui lui permet d’intégrer tout son fonctionnement de A à Z : commandes clients, livraison, production, facturation, plans de prod, achats, ressources humaines, calcul de coûts, marges, rapports fiscaux et comptables, qualité... <br />Des armées de consultant consacrent leur vie à la mise en place et la maintenance des ERP - et ils ont fait la fortune de bien des <a href="http://www.top50-ssii.com/">SSII</a>. <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-1" id="rev-pnote-87-1">1</a>]</sup> <img src="https://www.coindeweb.net/blogeclectique/images/erp/sap-buchung.jpg" alt="sap-buchung.jpg" style="float:right; margin: 0 0 1em 1em;" title="SAP" /></p>
<p>Le <a href="http://www.commentcamarche.net/entreprise/crm.php3">CRM</a> est un autre terme fourre-tout pour un logiciel censé gérer toute la « relation client »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-2" id="rev-pnote-87-2">2</a>]</sup>, de la commande au service après-vente. C’est effectivement un monde très vaste et le terme veut dire un peu tout et rien. C’est souvent un des modules d’un ERP. Comme lui, il a besoin de doses massives de paramétrage pour s’adapter aux besoins de l’utilisateur.</p>
<p>Ça fait quelques années que je me casse le crâne sur les commandes et livraisons dans des ERP,
que ce soit <a href="http://www.oracle.com/fr/">Oracle Applications</a> ou plus récemment <a href="http://www.sap.com/france/">SAP</a>.</p>
<p>Techniquement, les entrailles de ces monstres sont assez glauques. On sent l’historique
chargé<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-3" id="rev-pnote-87-3">3</a>]</sup>. Par exemple, la table des articles dans SAP se nomme <code>MARA</code>, celle des commandes
<code>VBAK</code>, celle des livraisons <code>LIKP</code>, celle des pays <code>T005</code>. <br />La première impression d’horreur est totalement justifiée : ces codes datent bien de la préhistoire de l’informatique,
de l’ère où les noms de fichiers (ne parlons pas alors de « tables ») se limitaient à 4 caractères<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-4" id="rev-pnote-87-4">4</a>]</sup>. Il y a tout de même quelques trucs mnémotechniques : le « K » dans <code>VBAK</code> et le « KP » dans <code>LIKP</code> veulent dire « en-tête »... en allemand (<em>kopf</em>). Oui, SAP est allemand<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-5" id="rev-pnote-87-5">5</a>]</sup>.</p>
<p>Dans la même logique, on verra vite que les tables de lignes de commandes et de livraisons correspondant à ces en-têtes s’appellent <code>VBAP</code> et <code>LIPS</code>. P et PS pour « poste » (<em>Position</em> outre-Rhin), évidemment ; ce serait trop simple de parler de « lignes » de commandes. Si vous ignoriez le terme dans ce contexte, je vous l’apprends, et je l’ignorais moi-même il y a deux mois.</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/oracle_appli.jpg" alt="oracle_appli.jpg" style="float:left; margin: 0 1em 1em 0;" title="oracle_appli.jpg" /> Le concurrent, Oracle Applications, est un peu plus bavard quant aux noms de tables : <code>OE_ORDER_LINES</code>
et <code>OE_ORDER_HEADERS</code>, <code>WSH_DELIVERIES</code>, <code>WSH_DELIVERY_DETAILS</code> sont beaucoup plus explicites.
Et il y a plus de chances que vous parliez anglais qu’allemand. (Par contre, l’interface utilisateur
est tellement moche qu’un commercial m’a dit éviter de la présenter en avant-vente<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-6" id="rev-pnote-87-6">6</a>]</sup>.).</p>
<p><em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii">À suivre...</a></em></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-1" id="pnote-87-1">1</a>] <em>D’ailleurs, la difficulté de modification, de paramétrage et de maintenance des ERP sont une des raisons pour lesquelles les SSII adorent les vendre : ils s’assurent ainsi une éternelle réserve de facturation toutes les années où l’ERP tournera. Les clients ne résistent souvent pas à la tentation de vouloir adapter l’outil à leurs habitudes, même si on calcule que le plus ridicule rapport ou écran coûtera plusieurs milliers d’euros.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-2" id="pnote-87-2">2</a>] <em>S’il n’y a pas de préposition, c’est de l’anglais traduit par quelqu’un qui voulait impressionner son monde.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-3" id="pnote-87-3">3</a>] <em>Le cœur de chacun de ces produits est en général très ancien, <a href="http://emploi.journaldunet.com/magazine/713/">parfois trois décennies</a> ; même s’il a été reprogrammé depuis, les anciennes modes et contraintes de programmation et d’interface y ont imprimé leur marque pour toujours. De plus, un module est souvent un logiciel tiers acheté, plus ou moins bien intégré au reste de l’ERP. Enfin, des modules récents cohabitent avec des modules antédiluviens car anciens et stables (souvent la comptabilité), ce qui occasionne de belles incohérences de logiques d’interface ou de programmation.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-4" id="pnote-87-4">4</a>] <em>De manière plus récente, certaines normes de nommage de documents sont encore influencées par celles de DOS et Windows 3.1 (8 caractères maxi), dix ans après leur disparition.</em>.</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-5" id="pnote-87-5">5</a>] <em>Et le code source des programmes est bourré de commentaires dans la langue de Goethe. Je suis très heureux de la parler.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-6" id="pnote-87-6">6</a>] <em>Qu’une interface soit moche est trompeur. Celle d’Oracle est plus consistante bien que plus limitée que SAP. Mais je crois que je les hais toutes les deux.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/87
Thème pour ce blog
urn:md5:1c9120e5694255cf31b91b65519f63a9
2005-09-10T16:04:00+00:00
2010-04-18T17:24:45+00:00
Christophe
Blogger, une aventure
blog
dotclear
ergonomie
expertise
informatique
perfectionnisme
périmé
réseau
<p>Pas de la tarte d’en choisir un.</p> <p>Si <a href="http://www.dotclear.net/">Dotclear</a> a un inconvénient, c’est bien qu’il se repère au premier coup d’œil. Mais comme le système de thèmes a l’air tout simple, j’ai testé. Pas forcément une sinécure entre les thèmes qui mettent si longtemps à s’installer que les <em>timeouts</em> expirent et ceux qui se ressemblent comme des clones.</p>
<p>Faute de mieux, j’ai choisi <a href="http://www.dotclear.net/forum/viewtopic.php?id=8400">DaClear</a>.</p>
<p>On verra à l’usage. Mais il est certain que je n’ai ni le temps pour me créer mon thème, ni les qualités pour le faire, ni le temps pour acquérir ces qualités.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/09/10/8-theme-pour-ce-blog#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/8
Les majuscules accentuées
urn:md5:99ff7ba1035f727fb348cffda3879f16
2005-09-07T21:50:00+00:00
2014-02-26T10:20:43+00:00
Christophe
Des formes des mots
apparence
Apple
communication
conquête de l’inutile
décadence
défense du français
ergonomie
howto
incohérence
informatique
langues
Linux
Mac
MacOS
perfectionnisme
ponctuation
prise de tête
précision
signifié
Ubuntu
Windows
éducation
émerveillement
<p>Les majuscules accentuées sont injustement négligées de nos jours en informatique. Ce n’est pourtant pas si dur.</p> <p>Google m’a déniché cette excellente vieille entrée de blog <a href="http://www.latchman.org/sam/index.php/2003/04/07/56-LesPointsSurLes">le Samlog</a> sur les majuscules accentuées sous Windows. Je ne rajouterai rien sur la justification (le monsieur a raison, sauvons nos particularismes).
<br />En pratique :</p>
<ul>
<li><strong>Sous Windows XP</strong> : La situation est meilleure que sur les versions précédentes même si j’ai parfois des problèmes suivant l’application (le Bloc-Notes est moins coopératif que Word).<br />L’accent circonflexe est une touche morte (on a ainsi facilement <strong>Â</strong> par <code>^</code> puis <code>A</code>).<br /><code>AltGr</code>-<code>7</code> permet d’avoir la touche morte de l’accent grave, puis on tape la majuscule (ex : <strong>À</strong>). <br />Un <code>Ctrl</code>+<code>,</code> (virgule) permet d’avoir la touche morte des cédilles (pour <strong>Ç</strong>).<br />Une sorte de « mode ligature » s’obtient par <code>Ctrl</code>+<code>&</code> (ex : <code>Ctrl</code>+<code>&</code> puis <code>O</code> donne <strong>Œ</strong>).<br />On peut se rabattre sur des codes (qui existent même en deux versions) : <code>Alt</code>+0199 = <code>Alt</code>+128 = <strong>Ç</strong>, <code>Alt</code>+0200 = <code>Alt</code>+212 = <strong>È</strong>, etc… (cf cet <a href="http://perso.wanadoo.fr/jm3/trucs/maj_accent.htm">article</a>).</li>
</ul>
<ul>
<li><strong>Sous Mac OS X</strong> : <br />La touche <code>Caps Lock</code> a un rôle différent par rapport à Windows : au lieu de remplacer un <code>Shift</code> bloqué, elle indique bien le mode <strong>majuscule</strong>. <br />Donc <code>CapsLock</code> puis <code>é</code> = <strong>É</strong>. C’est bien pratique pour taper du texte tout en majuscule, mais ceux qui sous Windows utilisaient <code>CapsLock</code> pour forcer les chiffres sur un portable doivent être désorientés.<br /><del>Problème</del> (<strong>Corrigé en 2009 avec Snow Leopard</strong>) <del>: Le <strong>Ç</strong> et le <strong>Ù</strong> ne s’obtiennent pas de la même manière, il faut plutôt un <code>Alt</code>-<code>ç</code> ou <code>Alt</code>-<code>ù</code>. Inconsistant. </del></li>
</ul>
<ul>
<li><strong>Sous Linux</strong> : <br />On procède comme sous Mac, avec en plus la souplesse de la touche <code>Compose</code> (la touche Windows droite chez moi). C’est sublime :<br /><code>Compose</code> + <code>'</code> + <code>E</code> = <strong>É</strong>,<br /><code>Compose</code> + <code>-</code> + <code>D</code> = <strong>Đ</strong> (D barré vietnamien),<br /><code>Compose</code> + <code>o</code> + <code>/</code> = <strong>ø</strong> (o barré scandinave),<br /><code>Compose</code> + <code>,</code> + <code>C</code> = <strong>Ç</strong>,<br /><code>Compose</code> + <code>O</code> + <code>R</code> = <strong>®</strong><br /><code>Compose</code> + <code>s</code> + <code>s</code> = <strong>ß</strong> (ss allemand)<br /><code>Compose</code> + <code><</code> + <code><</code> = <strong>«</strong> (guillemets français que nous devrions utiliser systématiquement à la place des <strong>“</strong> anglosaxons ; <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/2006/04/20/127-guillemets-francais">je détaille ici</a>)<br /><code>Compose</code> + <code>=</code> + <code>Y</code> = <strong>¥</strong><br /><code>Compose</code> + <code>'</code> + <code>i</code> = <strong>í</strong><br />etc.<br />On a en plus la souplesse de pouvoir reprogrammer chaque touche à volonté. C’est réservé aux gourous (il faut tutoyer <a href="http://www.linux-france.org/article/nation/Fr-HOWTO/Fr-HOWTO-8.html">xmodmap</a> ou triturer les fichiers de configurations de <a href="http://www.x.org/" hreflang="en">X</a>) mais avec un grand clavier, remapper <code>#</code> (<code>AltGr</code>+<code>3</code>) sur <code>AltGr</code>+<code>J</code> est bien utile quand on ne peut taper que d’une main.</li>
</ul>
<p>(<strong>Mise à jour du 06/01/2006</strong> : Compléments sur XP grâce à <a href="http://perso.wanadoo.fr/jm3/trucs/maj_accent.htm">ce site</a> + mise en forme.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/09/07/3-majuscules-accentuees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/3