Mes calendriers

Mes calendriers sous divers formats

Ma collection

Toute ma collection de calculatrices, calculatrices programmable, ordinateur de poche.

Ma bibliothèque

Tous les scans de ma bibliothèque

Ancienne Collection

Machines dont le me suis séparé, et qui ne font plus partie de ma collection.

 ↑  
Me contacter

pour me contacter, remplissez le formulaire en cliquant ici open_envolope.jpg

si le formulaire ne fonctionne pas, envoyez-moi un mail à

collection point sasfepu chez free point fr

Offrez moi un café

Si mes calendriers, mes scans ou mon site vous ont intéressés, offrez moi un café en cliquant sur la tasse.

tasse_cafe.png

Visites

 107948 visiteurs

 3 visiteurs en ligne

Les affres de la création (première partie) STM 59

 Le processus de la création intellectuelle est une chose fascinante. Les grands créateurs de ce monde - qu'ils produisent des oeuvres de papier ou des inventions géniales - ont souvent une aura de mystère ou de légende. Et Dave Small ? En tant que bidouilleur de génie, Dave a souvent connu les angoisses de l'idée géniale qui prend tant de temps et de peine à se concrétiser. A cela se sont ajoutés les soucis de l'entrepreneur. Cette expérience vaut la peine d'être partagée. Ce premier article d'une série de deux nous décrit les phases durant lesquelles germe l'Idée...

Perles de sagesse

D'après le courrier que je reçois et les discussions que j'ai lors des salons informatiques, bon nombre de personnes voudraient savoir quel effet cela fait d'écrire un programme comme Spectre ou d'autres (le formateur Twister, l'utilitaire de sauvegarde Meg-a-Minute, etc.). Il semble que certains de ces gens recherchent des perles de sagesse dont ils pourraient bénéficier pour entreprendre quelque chose de similaire.

Eh bien, je n'ai malheureusement pas grand chose à leur fournir en ce domaine. Les idées arrivent, sans que je sache trop pourquoi, et je n'en sais guère plus sur la façon dont elles arrivent aux autres. Mais je suis passé à travers la moulinette d'un projet de programmation suffisamment souvent pour savoir reconnaître les symptômes de tout le processus. Passons donc en revue les différentes phases de la création...

Le stade où l'on se cogne aux portes

Durant ce premier stade, vous pensez à quelque chose que vous aimeriez créer et vous commencez à vous concentrer dessus. Progressivement, l'idée occupe une part croissante de votre esprit vous commencez à y penser pendant que vous attendez à un stop, pendant que vous faites la queue, pendant que vous parlez à votre femme, bref chaque fois que votre pleine attention n'est pas requise par le monde extérieur. (Mais oui, je plaisantais, Sandy, lâche ce fusil!)

Votre esprit se focalise tant sur le problème que vous commencez a vous heurter aux obstacles, d'où le nom de ce stade. Beaucoup de gens appellent cela de la distraction. Ce n'est pas que l'on soit distrait, c'est que l'esprit est très occupé à travailler sur quelque chose d'autre (et tout chercheur en Intelligence Artificielle vous dira qu'un cerveau humain qui se focalise sur un problème est infiniment plus créatif et plus puissant que n'importe quel ordinateur). Cette situation est similaire à ce qui se passe quand on travaille sur un ordinateur multitâche lorsque quelque chose consomme la majeure partie du temps de calcul. Pour voir ce que je veux dire, il suffit de prendre une machine Unix quelconque et de lancer en tâche à fond dix programmes gourmands en calcul. Vous obtenez alors l'équivalent informatique de ce premier stade. Si vous demandez alors quoi que ce soit à votre machine, vous constatez que vous commencez à pianoter d'impatience avant qu'elle ne réponde. Si votre ordinateur pouvait marcher, il se cognerait aux murs: parce qu'il ne les remarquerait pas.

De plus, ce que vous voulez faire est parfois vraiment impossible dans l'état actuel du matériel et du logiciel. Ces problèmes-là sont à devenir fou vous avez beau repasser la question en revue dans votre tête et accumuler les pansements sur votre front, rien n'y fait, vous ne trouvez pas de solution... Cela vous démange, impossible de l'oublier. Mais là où cela devient vraiment dur, c'est quand plus tard un mois ou un an après, le même problème resurgit dans votre esprit, vous nar guant calmement, se faisant insistant... Se pourrait-il qu'au fond, ce que l'on nomme s"énilité" ne soit que l'accumulation d'un trop grand nombre de ces "tâches de fond" insolubles, sur lequel l'esprit perd à travailler?

J'ai jadis écrit un article [NdT : à paraître dans un prochain ST Mag] où je parlais des deux grands types psychologiques "N" et "S". Cette classification répartit la personnalité des individus en ces deux types selon qu'ils sont introvertis, intuitifs et vivent dans leur propre monde, ou qu'ils sont extravertis, ancrés dans leur cinq sens et tournés vers les sensations extérieures. je n'ai absolument jamais rencontré de programmeur qui ne soit pas du type intuitif "N", bien que la moitié de la population soit du type "S". Les non-programmeurs de ma connaissance qui ont des personnalités de type "S" ont en général des activités sportives genre baseball où ils peuvent mettre à profit les avantages que leur procurent leur système sensoriel développé. A l'opposé, les programmeurs travaillent le plus souvent en bâtissant des structures ou des images mentales et n'ont guère besoin de développer leurs cinq sens. Se cogner distraitement dans les portes convient assez a ce type de personnalité.

Donc, votre problème vous tourmente. Peut-être est-il insoluble. Cependant, il convient de ne jamais faire de conclusion hâtive et supposer que quelque chose ne peut pas se faire. Laissez donc au problème le temps de vous obséder, de saturer votre esprit, car Si vous vous accrochez, vous arriverez au stade suivant.

Le stade de l'inspiration fulgurante

Ce stade commence lorsque vous prenez votre bain tranquillement, réfléchissant au problème, lorsque soudain votre crâne se met à bouillir et la solution apparaît ! Vous vous mettez alors à courir dans la maison, complètement à poil et dégoulinant, en hurlant "Eurêka".

(Ne croyez pas que ce soit une plaisanterie, la légende veut que ce soit réellement ce qu'a fait Archimède lorsqu'il a trouvé la façon d'obtenir le volume exact d'une couronne d'or dont on lui avait demandé de s'assurer qu'elle ne contenait pas de plomb. Archimède s'est aperçu dans sa baignoire trop pleine que le volume d'eau qui débordait lors de l'immersion d'un objet était précisément le volume de l'objet. Simple, mais génial.)

Ce n'est sûrement pas drôle d'être l'épouse de quelqu'un qui traverse cette phase, comme ma femme Sandy vous le dirait. D'abord, on se prend les pieds dans la serviette humide qui traîne par terre, ensuite il y a des flaques dans toute la maison, et enfin la Police Municipale de Denver qui ramène encore l'inventeur nu à la maison. (Cependant, c'est peut-être bien un progrès par rapport à la phase précédente où le conjoint endommage les papiers peints avec son front, marmonne "musique orientée objet" sans arrêt, et gribouille des schémas sur les serviettes et nappes en papiers des restaurants. Mais je n'ose poser la question.)

Prenons un exemple. Supposons que vous vouliez doubler la vitesse d'entrée/sortie des lecteurs de disquettes du ST. Le problème est la vitesse de rotation de la disquette: pendant que vous déplacez la tête de lecture de piste en piste, la disquette tourne. Et quand, à la fin de la piste courante, vous passez à la piste suivante, le temps de déplacement de la tête est suffisant pour que vous ratiez le début de cette piste, qui est le secteur 1. Cela vous oblige à attendre un tour complet pour revenir au début. C'est la phase d'identification du problème. La phase Eurêka survient lorsque vous réalisez qu'on peut résoudre le problème en décalant la numérotation des secteurs de trois unités. Ainsi, durant le déplacement de la tête, les trois derniers secteurs de la piste suivante défilent et quand la tête est positionnée, elle trouve immédiatement le secteur 1. Et le lecteur de disquette peut àprésent travailler à pleine vitesse. C'est la base du fonctionnement de Twister.

Ou bien supposons que vous réfléchissiez au moyen de faire tourner des logiciels Mac sur l'architecture matérielle du ST. La plupart de gens ne dépassent jamais le stade où ils lancent un "impossible" dédaigneux. Mais ceux qui le dépassent commencent à se cogner aux portes tandis qu'ils s'attaquent aux problèmes au fur et à mesure qu'ils se présentent. Puis Jaillissent toutes sortes de petits Eurêkas quand les problèmes sont résolus.

Ainsi, le Mac réserve les adresses mémoires de $100 à $13F pour ses variables globales, des données essentielles à tout le système. Le ST, lui, a besoin de cet espace pour la table des vecteurs d'interruptions du MFP (en clair, cet espace lui sert à savoir où aller lorsque vous bougez la souris, frappez une touche ou, d'une manière générale, quand vous engendrez une interruption). La solution ? Une commande peu connue qui déplace la table à l'adresse $CO, hors du chemin du Mac, vu que celui-ci se contrefiche de ce qu'il y a entre $C0 et $FF.

Ou encore, les disquettes du Mac sont enregistrées au format GCR (Croup Coded Record, enregistrement codé par groupes) et sont écrites avec une vitesse de rotation variable. Les disquettes du ST sont au format MFM (Modified Frequency Modulation), appelé aussi "FM double densité" et tournent à une vitesse constante. La solution ? Pour pouvoir lire des disquettes de Mac sur le ST, le circuit de lecture/écriture doit pouvoir faire varier sa cadence de fonctionnement pour émuler une variation de la vitesse de rotation.

Souvent, les logiciels du Mac écrivent accidentellement à l'adresse mémoire zéro. Ce qui est sans conséquence sur un Mac. Mais sur le ST quelque peu différent (l'adressse zéro est à lecture seule), cela cause une erreur de bus (deux bombes) et plante l'ordinateur. La solution ? (Le manuel Motorola du 68000 dit qu'il n'y en a pas.) Ecrire un gestionnaire d'erreur de bus! Plutôt que d'afficher deux bombes à l'écran et de tout bloquer, le gestionnaire tente de déterminer quelle instruction a causé ce cafouillis, et essaie de la sauter intelligemment ou de la ré-exécuter différemment de façon à ne pas causer le problème, puis poursuit l'exécution. A peu près la moitié des logiciels Mac utilisés sur un ST causent des erreurs de bus régulièrement, et les utilisateurs ne s'en aperçoivent pas. Seules de nouvelles manières, particulièrement irritantes, d'écrire à l'adresse zéro parviennent à présent à planter le Spectre.

Et ainsi de suite. Une foule de "petits problèmes", autant d'"Eurêkas", et énormément de bosses au front ! Après tant d'années d'émulation Mac (rappelez-vous, mes premières cartes datent de novembre 1985), ma femme a bien des raisons de me surnommer "tête de linotte".

Mais on ne peut jamais prédire quand un Eurêka va se produire et que votre subconscient va résoudre un problème et le livrer tout mâché à votre esprit conscient. Je sais par contre que j'on peut bloquer complètement ce processus en essayant de le forcer. La plupart des Eurêkas se produisent lorsque votre esprit conscient est à la dérive, comme durant un bain ou pendant que vous tondez la pelouse. Et lorsque cela arrive, vous avez l'Exaltation.

Le stade de l'Exaltation

Après la phase Eurêka, une indicible exaltation envahit tout votre corps. Plutôt que de m'évertuer à la décrire, je vais tenter d'établir quelques analogies, après quoi vous verrez ce que je veux dire, ou vous mettrez en doute ma santé mentale... Mais je vous assure que je n'exagère pas.

Ecoutez donc l'Ouverture de 1812 [NdT: de Tchaikovski, se caractérise par un tir de canons à la 6ème minute]. Elle cherche son rythme, semble heurter un moment les limites du raisonnable, puis s'échappe dans un fracas de canons.

Le meilleur représentant de la musique rock est le premier album de Boston. Le morceau "Long Time" contient ce stupéfiant son de guitare qui a rendu le groupe célèbre : la "distorsion propre". Ordinairement lorsque vous distordez un son de guitare, vous ne pouvez faire vibrer qu'une seule des six cordes à la fois, car sinon le bruit devient horrible. Mais il est plutôt difficile de jouer un air avec une seule corde. Bien des gens y sont obligés pour pouvoir utiliser la distorsion (voir comme exemples typiques, Neil Young, "Like a hurricane", "Out of the blue", "loto the black"). La distorsion de Boston se débrouille pour donner un son magnifique en utilisant les six cordes. En fait, le leader du groupe, Tom Scholz, commercialise à présent une boite qui réalise cet exploit, le Rockman. Je le sais, j'en ai une. Et comme beaucoup de guitaristes aiment ce son, le Rockman se vend bien.

Si vous permettez une digression... Un peu avant Noèl, Sandy m'a emmené à un magasin de musique; elle a branché une guitare, un Rockman sur la guitare, et m'a tendu le tout. J'ai gratté un mi, et voici que ce son merveilleux m'a envahi et m'a emporté. Une bonne minute plus tard, je suis revenu sur terre, remarquant distraitement que mes poils étaient toujours dressés sur mes bras et qu'un frisson me parcourait l'échine, tandis que Sandy remplissait déjà un chèque pour le Rockman.

L'Exaltation vaut la peine d'être vécue. Elle justifie les bosses au front et toutes les difficultés traversées. Plus il vous a fallu lutter pour parvenir à résoudre un problème, plus sa résolution s'avère gratifiante. Je pense en être arrivé à aimer me fixer un problème apparemment insoluble, puis le résoudre, en repoussant les limites connues un peu plus loin. Je n'ai aucune idée de la raison pour laquelle les solutions me tombent du Ciel. Peut-être Dieu me prend-il en pitié et dit: "Donnons-lui une centaine d'Eurêkas dans sa vie, il en a bien besoin !"

Ou bien est-ce en fait une malédiction ? Vous aimeriez, vous, vous trouver avec des tas de problèmes qui vous démangent l'esprit ? J'en traîne toujours, des non résolus qui me titillent. Par exemple, la trissection de l'angle (partager un angle en trois angles égaux avec une règle et un compas), un vieux classique des problèmes insolub!es, qui m'a turlupiné depuis que j'en ai entendu parler pour la première fois, ce qui remonte, oh, au Cours Moyen. j'ai fini par admettre que quel que soit le nombre de fois où l'on divise un angle en deux, ce qu'on sait faire avec une règle et un compas, on n'obtient jamais un dénominateur commun avec une trissection.

Sans compter les autres problèmes informatiques, comme faire utiliser par un PC plus de 640 K de mémoire... J'ai l'intuition qu'il existe un moyen auquel on n'a pas encore pensé.

Qui que vous soyez, l'Exaltation peut soudain vous frapper, vous envahir, et les gens constatent alors que vous avez cessé de parler et qu'une très étrange lueur s'est mise à briller dans vos yeux... Et c'est alors que commence...

Le stade du baffouillage

Ce stade commence juste après celui de l'Exaltation. Il se manifeste par un désir d'expliquer à un sceptique votre solution à un problème. Et comme votre esprit est encore sous l'influence de l'Exaltation, vos phrases ne sont guère cohérentes. C'est que vous n'avez plus assez de temps de calcul à consacrer à votre interface verbale. Souvent, vous croyez devoir éclaircir vos bouts de phrases incohérents en dessinant de petits diagrammes sinueux. Ce qui n'aide pas les sceptiques à changer d'avis. En général, à ce point les gens prennent un air nonchalant, et s'assurent discrètement qu'il y a une sortie à proximité et que vous n'avez aucun objet tranchant à portée de main.

Inévitablement, vous avez droit à un certain nombre de haussement de sourcil et d'expressions amusées qui iraient trés bien à Monsieur Spock ("Vraiment, Docteur, vous devriez apprendre à maîtriser vos émotions")

Certaines personnes ne parviennent pas à saisir le message. D'autres ont une réaction embarrassée quand elles sont à leur tour atteintes par l'exaltation et qu'elles réalisent ce que vous avez essayé de formuler. (Naturellement, elles se mettent ensuite à feindre de ne pas être impressionnèes... Mais parfois, elles trouvent votre idée si fantastique qu'elles ne peuvent pas décemment rester calmes - car sinon, elles pourraient laisser croire qu'elles n'ont rien compris!)

Que le Ciel vous vienne en aide si vous vous trouvez en pleine phase de baffouillage avec quelqu'un qui ne partage pas vos connaissances en programmation. "Mais, Monsieur l'agent, je viens juste de résoudre le problème du conflit de table d'interruption du MFP! Qu'est-ce que cela peut bien faire que je sois nu?"

Bien, la partie de plaisir est finie. Vous vous êtes cognés dans tous les murs, avez fini par trouver votre Eurêka, êtes passés par les stades d'exaltation et de baffouillage. Maintenant, vous devez implémenter votre idée.

Le stade où, aie, c'est parti pour etre un sacre boulot

Après avoir réalisé que c'est faisable, le moment est venu de foncer. Le monde est rempli de gens qui ne peuvent pas mener à bien ce stade ils ont de bonne idées, essaient parfois d'en parler autour d'eux, mais ne les mettent pas en pratique. La programmation est particulière en ce sens où vous devez implémenter votre idée pour arriver à montrer où vous vouliez en venir, et c'est un processus long et acharné. (Vous ne me croyez pas ? Comparez le manuel d'utilisation d'un Mac à sa pratique - en regardant les fenêtres, les icônes, en déplaçant la souris. Le plus gros problème de marketing d'Apple c'est de faire en sorte que les acheteurs de Mac puissent le prendre en main et l'essayer, ce que ne remplace aucune description écrite.)

(Atari prenez note de cette dernière phrase. Vous aussi. Cela explique pourquoi les groupes d'utilisateurs, les démonstrations et les vendeurs sont si importants. Jack Tramiel passe pour avoir dit quelque chose comme " Il est important de laisser au moins un ordinateur à un vendeur, même à perte le vendeur a besoin de le toucher, de le comprendre, de faire corps avec lui, avant qu'on ne lui en achète. " Qu'il ait dit cela ou non, c'est tout à fait vrai.) Pendant que vous transpirez sur l'implémentation, seule votre volonté vous permet de mener à bien ce stade. Il n'y a rien d'aussi exténuant que de contrer un ordinateur avec son seul esprit. Absolument rien. (Obliger votre femme à faire ce que vous voulez ? Non, ça, c'est complètement impossible!)

Quand je lis des histoires fantastiques de sorciers invoquant des démons pour leur faire accomplir certaines tâches, je peux rééllement m'identifier au personnage. Les ordinateurs sont des êtres diaboliques. Ils ne se sentent pas le moins du monde concernés par ce que vous voulez leur faire exécuter, et n'ont pas la moindre intention de le faire.

Beaucoup de gens, particulièrement les jeunes diplômés tout juste sortis de leur école, partagent l'idée risible que les ordinateurs constituent un monde précis, exact, encadré par des limites nettes, sans nuances, à la grande différence du monde réel. C'est totalement faux, et il est presque douloureux de voir ces gens se heurter violemment aux réalités. La vérité, c'est qu'il y a tant d'inconnues, y compris dans un ordinateur que vous connaissez parfaitement, que vous pouvez toujours faire de fausses manipulations. Et bien des fois, vous planterez tout sans comprendre pourquoi.

Croyez-moi, l'air de chagrin incrédule d'un jeune programmeur face à un ordinateur irrécupérablement planté est quelque chose de triste. C'est le même air que quand ils apprennent que la Petite Souris n'était en fait que Papa et Maman, que le Père Noèl n'existe pas et que les oeufs apportés par la Cloche de Pâques viennent du supermarché. Car jusqu'à ce moment-là, ils s'étaient enfoncés dans le crâne que si un ordinateur se conduisait mal, c'était entièrement leur faute et celle de leur mauvais programmes. C'était si souvent vrai qu'ils avaient fini par se persuader que ça l'était toujours. Raté

Dans un ordinateur se passent toutes sortes de bizarreries. Il peut y avoir des bugs dans l'unité centrale (exemple du microprocessur 68000 du ST: l'instruction MOVE SR, D0 qui accède à la pile sans vous le dire). Il peut y avoir des parasites électriques, ou bien des résonnances dans un câble de disque dur. Les rayons cosmiques peuvent littéralement (je ne plaisante pas) inverser des bits au hasard à l'intérieur des puces mémoires, ce qui est la raison principale de la présence d'un neuvième bit de parité dans les compatibles PC (qui permet au moins de tout arrêter quand la mémoire a été corrompue). Et ainsi de suite.

Tous les vieux programmeurs que je connais, qui ne se soient pas lassés ou évadés vers une profession plus facile (terrassier. par exemple), traitent les ordinateurs comme s'ils étaient des démons. Ils se méfient de leurs machines, gardent un nombre ahurissant de sauvegardes.. pratiquent la "programmation préventive", et tentent de se préserver de la loi de l'emm... maximum. Bien sûr, il leur arrive aussi de se faire avoir par des bugs, mais la différence c'est qu'eux n'ont pas abandonné l'informatique.

Les vieux programmeurs ont tendance à collectionner les outils, les utilitaires, et surtout les debuggers. Ils ont appris à leurs dépens que souvent, il n'y a qu'un seul outil qui puisse leur montrer ce qui ne va pas - particulièrement lorsqu'il s'agit d'une erreur due à un parasite. Beaucoup de gens se demandent pourquoi je ne suis pas très chaud pour les "langages de haut niveau". C'est que très souvent j'ai dû chercher des bugs sans pouvoir les voir parce que le langage me les cachait; c'était l'équivalent de débugger en aveugle. A ce moment, il vous faut abandonner toute idée préconçue de ce que la machine est censée faire, et essayer d'imaginer ce qu'elle fait vraiment.

Bien sûr, cela nous ramène aux autres problèmes, et des bugs peuvent être trouvés de la même façon. surtout quand ils sont particulièrement vicieux. Vous commencez à penser à ce bug, il commence a imprégner votre esprit...

(Vous vous cognez aux portes. Eurêka. Exaltation. Bafouillage. Boulot. Vous voyez, nous n'avons pas encore résolu le problème principal et nous appliquons à ce sous-problème les mêmes étapes. C'est ce qu'on appelle la récursivité.)

D'ailleurs, Si vous croyez que les gens qui écrivent les compilateurs sont parfaits, vous croyez sans doute également au Père Noêl. Si vous utilisez un langage compilé de haut niveau et que l'auteur du compilateur ne connaissait pas le bug du MOVE SR,D0 (et qui le connaît donc ?), attendez-vous à des problèmes. Votre programme va se planter àtout bout de champ sans raison discer2 nable. Seules peuvent vous renseigner une session prolongée d'exécution pas à pas des instructions en langage machine, aidée d'une trace de ce qui s'est passé juste avant le plantage.

Et ça, ça signifie l'assembleur. C'est pour cela que je travaille ainsi. Ecoutez, la moitié du temps d'un programmeur se passe à débugger. C'est pourquoi les bons programmeurs sont toujours en train d'écouter les récits des bugs découverts par les autres programmeurs, tout en prenenant mentalement des notes. Et c'est aussi pourquoi aussi les bons programmeurs hantent les messagerie informatiques. cherchant des solutions et posant des questions lorsqu'ils sont coincés.

Enfin, si vous tenez toujours à contraindre votre machine à vous obéir, vous finissez par découvrir qu'il vous faut écrire une routine de 500 lignes pour résoudre votre problème. A ce moment, il faut serrer les dents et l'écrire Résistez à la tentation de vous trouver quelque corvée domestique urgente et faîtes-le. Rien ne remplacera ce travail. C'est long et pénible, mais c'est nécessaire, c'est le jeu. Ce n'est guère diftérent de se trouver confronté à une toile vierge à peindre ou une page blanche à remplir. Soit vous vous montrez créatif, et menez votre programme à bien pour qu'il tourne et que d'autres gens puissent le voir, soit vous le garderez pour toujours dans un coin de votre esprit. rien que le vôtre. et à quoi cela servirait-il ?

Et Si vous vous accrochez et vous obstinez, votre programme finira un jour par tourner rond si vous le traitez gentiment. Et après mise au point il résistera même aux abus. Il vérifiera les données en entrée, par exemple.

Il sera alors temps de montrer aux autres votre création.

(Suite et fin le mois prochain.)
Traduction et adaptation Pass word 90


Date de création : 16/02/2015 : 09:06
Catégorie : -
Page lue 209 fois