Contes de la crypte (de 40 ans de travail du programmeur)

Je suis tombé sur un ordinateur (le mot ordinateur n'était pas utilisé à l'époque) en 1977, c'était juste un cours comme ça sur un mehmat. Fortran IV, codes M-20, Algol-60, PL / 1, immédiatement après que uni est entré dans les programmeurs (programmeurs système!), Et puis de suite ...

Et il y a quelques années, j'ai cessé de coder activement, uniquement des scripts pour moi-même, maintenant je fixe des tâches pour un groupe de programmeurs.

Quoi qu'il en soit, pendant cette période, il y a eu un certain nombre d'histoires drôles et / ou intéressantes (enfin, du moins mémorisées), que je vous invite à lire sous le chat. Les histoires ne sont pas nécessairement strictement sur la programmation, plus sur la vie d'un programmeur.

# 1


«Les étiquettes à Fortran sont identifiées par des numéros. Par exemple, vous pouvez écrire GOTO 21. Hee hee hee hee. » - presque tout ce dont je me souviens sur l'étude de Fortran. Dès la première représentation, il (FORTRAN IV) ne m'a pas séduit. L'intérêt est apparu beaucoup plus tard, lorsque j'ai été quelque peu surpris de voir que la plupart de ses opérateurs individuels sont mis en œuvre dans des équipes de nombreux processeurs. Pourquoi, en fait, il a longtemps été le leader absolu de la vitesse de diffusion (ils ne disaient pas "compilation" à l'époque, et il n'y en avait pas, en fait) et de la vitesse d'exécution.

# 2


- Rien.
- Pourquoi?
- Vous avez une erreur de programme.
"Alors, le résultat est-il correct?"
- Oui, mais il y a une erreur dans le programme. Il ne devrait même pas être diffusé
- Mais il n'y a pas de messages d'erreur de diffusion, et le résultat est correct - n'y a-t-il pas d'erreur?
"Cela ne peut pas être."
- Avons-nous dessiné une impression à la main?
- Nnu, oui, apparemment, tout est correct. C'est - faux! L'affectation à Algol se fait par : = , et vous avez juste un signe égal, c'est une comparaison. Oui, et ici, et ici - le programme ne peut tout simplement pas être diffusé.
- Mais l'émission est passée et le résultat est correct!
...
Un drôle de dialogue a été provoqué par nous. Le symbole "retour chariot" au milieu de la ligne a conduit au fait qu'une partie de la ligne avant qu'elle ne soit imprimée. L'impression était donc ce qui était en fait un commentaire. Le traducteur (TA-1M sur BESM-4) a ignoré les caractères de contrôle et a traité le texte source réel. Pour créer l'effet, il suffisait de percer quelques trous supplémentaires dans la carte avec une lame de rasoir pour que l'écart se transforme en CR.

Finalement, nous avons été convoqués au bureau du doyen et avons fait une suggestion. Nous n'étions pas les pionniers de la blague, et non seulement nous étions nouveaux dans la programmation. Cela s'appliquait également à certains enseignants, à l'époque ce n'était pas du tout surprenant.
Oh, et oui - nous avons toujours le crédit.

# 3


Immédiatement après uni, la distribution à SoyuzEVMkompleks, un programmeur système.

Le travail était essentiellement comme ceci:
Installation de systèmes d'exploitation sur un ordinateur de l'UE. À propos, cela en valait la peine, 2000 lui-même a coûté le système d'exploitation et 640 roubles - installation. Avec toutes les queues du taux de change alors en rouble, pour comprendre, vous pouvez prendre l'ordre des mêmes prix en dollars. Il devient clair pourquoi les fabricants d'OS de l'époque n'étaient pas tombés amoureux de Gates avec ses ventes d'OS dix fois moins chères.

Assistance aux programmeurs de différents CC pour trouver et corriger les erreurs dans les programmes. Dans différentes langues, y compris, disons, COBOL, que je ne connaissais pas, et BASIC, que je ne veux pas connaître.

Aidez les ingénieurs en électronique à résoudre les problèmes.

Cette dernière était souvent requise. L'ordinateur EC n'était pas seulement bogué, mais aussi un système multiprocesseur. Les entrées-sorties ont été effectuées par des processeurs séparés (sous forme d'armoires séparées) avec leurs systèmes de commande et, par conséquent, leurs programmes «canal». En cas de dysfonctionnements, il fallait encore comprendre ce qui se trouve exactement: un appareil, un processeur de canal ou le principal.
Les programmes de chaînes, essno, faisaient partie du système d'exploitation, mais pour résoudre les problèmes, vous deviez pouvoir lancer le vôtre. Les standards peuvent être téléchargés à partir du disque (diagnostic spécial). Mais il pourrait ne pas travailler. Ensuite - avec une bande magnétique. Au pire, avec des cartes perforées.
Dans les cas les plus incompréhensibles, j'ai dû bousculer bêtement de petits programmes dans la mémoire depuis la télécommande
Vous écrivez un programme dans des codes de programme de canal.

Vous tapez l'adresse en mémoire avec les interrupteurs sur la «face», vous tapez la valeur de l'octet.
Vous tapez la valeur de l'octet adressé, écrivez.

Vous saisissez l'adresse suivante, la valeur suivante ...



Vous voyez les roues noires en bas? Ici, sur le chiffre hexadécimal, et terminez. Heureusement, les programmes étaient courts, dans une centaine, rarement plus, octets.

Dans le cas où il fallait multiplier ou imprimer un jeu de cartes perforées sur une machine sans OS, «trois cartes» étaient enregistrées. Un merveilleux programme de 240 octets. Vous déposez trois cartes perforées dans le lecteur, démarrez à partir d'eux. Si les cartes sont allées dans le même ordre, le jeu suivant est allé à l'impression. Dans l'autre - pour copier sur "barmales", sortie de carte perforée. Dans le troisième - on pensait que le jeu contenait le programme sous forme binaire, qui a été lancé. Ce n'étaient pas trois programmes différents! Il était impossible de défausser aucune des cartes dans aucune des options.

# 4


Il y a eu de nombreux échecs, par exemple, avec les disques.

Entraînement EC-5061


Twisted ce lecteur un paquet de disques d'une capacité de 29 Mo:



11 disques, 20 surfaces de travail (les surfaces supérieure et inférieure ne sont pas utilisées).

Le sac était dans un boîtier en plastique, inséré dans le lecteur, après quoi le boîtier a été retiré. Pour une meilleure compréhension, ces détails sont importants.
Il n'était pas rare qu'un paquet dans ce lecteur particulier ne soit pas lu, mais dans le suivant, il était lu normalement. Il y avait une habitude, le cas échéant, de réorganiser le package dans un autre lecteur. Ce qui a conduit à l'histoire suivante:

Quart de nuit. Le lecteur s'est écrasé. L'opérateur échange les packages sur deux disques. Habituellement, cela aidait, mais maintenant ils se couchaient tous les deux. Eh bien, dans ce cas, il y a un paquet avec une copie des données sur l'étagère. Il supprime un échec, en met un de rechange - il ne peut pas être lu! Il met d'autres paquets, essaie de passer à une autre tâche - non, rien n'est lu.

Enfin, le matin arrive, le reste du personnel arrive. Ils commencent à se démonter et à comprendre. De façon inconnue (il y avait des filtres partout) un cafard a rampé dans le sac. Et j'ai pris entre le sac et la tête. La tête a frappé le sac et s'est «relevée», faisant un joli nid de poule dans l'assiette. Après des réarrangements, la plaque cassée a abîmé la tête sur le lecteur suivant, et la tête cassée a abîmé la plaque suivante.

Le matin, il y avait une déroute totale: plusieurs têtes de lecture / écriture, cinq paquets ou plus (je ne me souviens pas) ont été ruinés. Perte de 2 500 roubles, qu'ils ont tenté d'accrocher à une pauvre opératrice avec un salaire inférieur à 100 roubles. Mais d'une manière ou d'une autre, ils ont réussi à tout abaisser sur les freins.

# 5


Les années 80 approchaient, le papier faisait partie des déficits. Dans certains CC, la situation était si grave que les impressions après la recherche (recherche d'erreurs dans le programme ou affichage des résultats du travail) ont été collectées, soigneusement collectées le long des lignes de rupture, collées ensemble et réimprimées pour le travail au verso. Mettre du thé ou un sandwich sur l'impression était considéré comme impoli.

# 6


J'ai servi l'usine VTS à Taganrog. Je traînais avec la distribution du système d'exploitation (deux bobines de bande magnétique de 30 cm de diamètre, 20 Mo et poids par kilogramme, probablement) et les impressions des codes sources des programmes qu'ils ont écrits là-bas, afin qu'à la maison ils puissent faire face aux erreurs qu'ils ont demandé de trouver. Et le checkpoint était dur ... le CC a dû me redresser la passe au "checkpoint du directeur général". Quoi qu'il en soit, les impressions ont été tordues. Par stupidité, j'ai essayé d'expliquer que les impressions sont pah, voici les bandes, oui, je peux leur apporter toute la plante. J'ai presque compris qu'ils avaient cessé de me laisser partir - au dernier moment j'ai quand même réalisé et arrêté.

# 7


Enfin, le moment est venu de PC. J'ai travaillé sur le Robotron-1715.
Huit bits, sur le CPM, mais bon, de haute qualité, pas deux de nos Sparks.

Mais la pièce était chauffée, pour le moins, mal. En hiver, vous venez le matin - la glace flotte dans la carafe. Le robot, jusqu'à ce qu'il se réchauffe, a déversé des caractères aléatoires du clavier à un rythme effréné. J'ai essayé de plaisanter qu'il transmettait tout à un satellite - il y avait un homme qui croyait :-) En tout cas, la journée de travail a commencé avec le fait que j'ai battu le baklusha pendant une heure et demie, bu du thé, réchauffé et attendu que l'ordinateur se réchauffe.

# 8


Sur le même robotron, j'ai commencé à écrire une tâche d'entrepôt. Et pour le faire en Pascal - non, je me suis tourné vers la nouveauté, vers dBaseII, à la mode à l'époque. C'est le très «SGBD» à partir duquel les FoxBase et Clipper encore vivants ont grandi. Tout irait bien, mais les fichiers avec les tables étaient purement texte , donc ils prenaient beaucoup de place (mais portabilité!).

Il était déjà impossible de changer de plateforme, et les clients exigeaient d'augmenter la taille de la base, voire de se fissurer. Et où l'augmenter sur une disquette? J'ai commencé à faire une bibliothèque, quelque chose comme ZIP avec UUCP dans une bouteille. Et pour que la structure du fichier ne soit pas rompue. Et - il a écrit, même dans le bureau de Moscou de Nantucket (fabricant Clipper'a), ils l'ont considéré (peut-être, bien sûr, juste par politesse).

Oui, et donc: presque exactement le jour où j'ai tout débogué et que j'étais prêt à donner cette option au client, le premier disque dur de 5 mégaoctets nous est parvenu.

# 9


Et les disquettes à nouveau. 5 ", 40 titres, 128kb (ils m'ont corrigé, 110kb). J'écris un programme, je le passe au client (qui est au-delà du cercle polaire arctique, soit dit en passant). Le processus est en cours, ils corrigent la production sur le pouce, je corrige les bugs à la volée, tout est comme d'habitude.

Mais les progrès ne s'arrêtent pas, ils m'ont mis une ligne de flop 80 pistes. Hourra, 256 Ko (également corrigé, 360 Ko)! Mais seulement pour eux-mêmes, les clients ont de vieilles disquettes. Et ça a commencé ... Je corrige le programme, je le transfère au client - ça ne marche pas. La règle, je l'envoie, ne fonctionne pas, et les erreurs sont vieilles comme elles étaient, elles sont restées. Je revérifie cent fois - tout va bien. J'ai même fait un voyage d'affaires là-bas, au-delà du cercle polaire arctique. En effet, ils ont une version du «temps d'Ochakov et de la conquête de la Crimée», bien que la disquette soit celle que j'ai transmise. Des miracles!

Mais compris, bien sûr. En mode d'enregistrement de 40 pistes, un guide de flop de 80 pistes n'a écrit que 40 pistes, mais il avait une tête plus petite et la largeur de la piste enregistrée était beaucoup plus étroite. Chez le client, le conducteur de flop à 40 pistes a lu une piste large, ignoré le nouveau record étroit et pris les anciennes informations enregistrées lors de l'enfer.
Ici, j'ai même dessiné une image - ce qui s'est passé:



# 10


Au fil du temps, les tâches de type dBase et de comptabilité ont été oubliées (je ne les ai pas aimées toute ma vie, même si elles m'ont honnêtement nourri pendant sept ans). Quoi qu'il en soit, je grandis, j'écris déjà en C (non, pas encore C ++) sous MSC 6.0 (non, non, pas MS Visual C).

Et - déjà vu.

J'écris un programme, je le donne aux clients - une erreur. Je fais un montage de débogage, je conduis dans la queue et dans la crinière - tout est en parfait état. Il est arrivé au point où il a secoué l'Antiquité, grimpé dans les codes et les décharges. Il s'est avéré passer le paramètre court à la fonction. Short était de 16 bits à l'époque. Et dans la pile sous le paramètre tout de même 32 bits ont été alloués, un mot. Et, tram-tararam, dans la version courte a été écrit dans une moitié du mot, et en débogage - dans l'autre. Et c'était toujours lu de la même moitié. Donc, dans le paramètre de débogage passé correctement, et dans la version de certains déchets.

# 11


Oui, la tâche d'entrepôt m'a nourri dans les moments les plus difficiles. Et appris à vivre.
Je fais la prochaine option pour le prochain bureau. Je donne un rapport. Ils se réjouissent que cela ait fonctionné, mais ils demandent "l'affichage du numéro 8". Eh bien, je demande ce que c'est, je corrige le rapport. Ils se réjouissent - confortables, beaux, meilleurs que sur le papier ... "mais où est le câblage numéro 8". Oh, je ne me suis juste pas essoufflé - non, pas ça. Finalement, ayant perdu patience, il prit presque la version la plus ancienne, la plus simple et donc la plus rapide et écrivit en grand format «Posting No. 8» dans la plus grande police que l'imprimante (matricielle) de l'époque permettait.
- Enfin, merci beaucoup, nous sommes très heureux!
Je suis content aussi, les délais sont déjà au nez. Et ce n'est que plus tard que je me rends compte qu'il n'est pas nécessaire d'être intelligent en excès, vous devez faire quelque chose qui fonctionnera dans la technologie. Et encore une chose: vous devez non seulement écouter le client, mais étudier le sujet vous-même, si vous voulez bien faire.

# 12


Grandir sous la direction patiente est pratique et la façon la plus simple d'inventer quelque chose est de ne pas savoir ce qui a déjà été fait. J'ai donc grandi et créé des réseaux de neurones. Ce mot était alors, dans les années 80, pas particulièrement utilisé, je ne le connaissais pas. Mais - je l'ai tout de même écrit. Bien sûr, cela ne pouvait pas gagner sérieusement, de bons réseaux de neurones se développaient sur de bonnes mathématiques, et je l'avais, connerie, arithmétique stupide. Mais elle a étudié et même fait un diagnostic simple des pannes informatiques. Un niveau purement démo, bien sûr.

Comme prévu, beaucoup de mémoire était nécessaire. Je ne pouvais pas rêver de gigaoctets de RAM, où "640k devrait être suffisant pour n'importe qui" fonctionnait toujours. L'espace d'adressage est de 1 Mo et la mémoire réelle est la même de 640 Ko.

L'idée est venue: utiliser la mémoire de la carte graphique VGA, car elle était mappée sur un espace d'adressage commun. Aussitôt dit, aussitôt fait. Jusqu'à 256 000 suppléments! Pour la vitesse, l'écran s'est éteint, sinon, en raison de la synchronisation avec l'écran, cela a fonctionné extrêmement lentement.

Et parfois, il ne s'est pas éteint, car il était sacrément intéressant de voir comment l'écran est devenu gris du noir pendant qu'il s'entraînait, des formations et des débordements se sont formés, qui se sont finalement transformés en points lumineux de décisions. Beaucoup de gens sont venus voir comment la machine pense.

# 13


Sous ce numéro, seulement sur le virus et dites. À cette époque, les virus étaient plus souvent drôles que malveillants, les auteurs étaient plus préoccupés d'écrire un virus et d'avoir un effet plus drôle. Il y avait un virus pyromane lorsque l'image s'est éteinte lentement. Cette technique a survécu jusqu'à nos jours dans les économiseurs d'écran:



Il y avait des plus simples, par exemple, un flipper:



À un moment donné, il a rampé dans le bureau. Partout, ils m'appellent à l'aide, en tant qu'ancien ingénieur système. Eh bien, je vais, je fais voler des voitures. Après avoir soigné les autres, juste au cas où je me rendrais dans l'endroit le plus calme, où je n'ai pas été appelé. Étonnamment, c'est de la comptabilité. Il s'avère que les femmes n'ont pas dérangé: elles ont renversé les moniteurs et ont calmement continué à travailler.
Je sais, je sais, beaucoup sont tombés sur une description similaire sous la forme d'une blague. Donc: parfois c'était de la pure vérité.

# 14


Eh bien, ça ne marche pas éternellement, ça arrive le 1er avril. Maintenant, c'est en quelque sorte ennuyeux, mais avant qu'ils ne l'essaient et ne l'inventent. C'était très drôle sur des ordinateurs, debout dos à dos, pour faire des souris. Vous déplacez votre souris - et rien, le curseur traverse un collègue d'en face. Tout à coup, votre curseur se met à sauter d'une manière extravagante - ce collègue essaie également de comprendre ce qui est quoi.

Lorsque des souris optiques sont apparues, le collage d'une fenêtre d'optique avec un morceau de ruban électrique rouge a bien fonctionné. La souris cesse de fonctionner, et vous regardez d'en bas - tout semble normal, elle s'allume en rouge comme toujours.



En fait, c'est tout. Il ne sert à rien de raconter les temps récents, les récents savent à tout le monde quoi dire là-bas. Et, je dois l'admettre, je suis déjà un citationniste en tant que programmeur. Donc, parfois j'écris des scripts pour moi. J'ai défini des tâches pour un groupe d'enfants plus jeunes.


J'ajoute qu'un autre vélo a été retenu au cours des commentaires

# 15

Ils ont mis la mémoire en place. L'armoire est grande, pesant 600 kilogrammes. Ils ont déjà traîné dans le hall, maintenant il suffit de le pousser sur le sol, car tout est sur roues ...
Eh bien, nous poussons, puis le plancher surélevé commence à se plier et à tomber en morceaux. Arrêtez - il s'écrase d'un demi-mètre, puis récupérez-le. Oui, et ses jambes vont nous briser. Il n'y a rien à faire, vous devez le pousser dans tout le lieu. Presque poussé, et là ça tombe.

En général, ce souvenir a traversé presque toute la salle, ouvrant le plancher surélevé comme un brise-glace. En fin de compte, plus près du mur, le sol était plus solide, donc il s'est terminé joyeusement. Eh bien, sauf pour reconstruire le sol.

# 16

Eh bien, je m'en souviens encore!
Lorsque les rencontres sont apparues, mais étaient extrêmement rares, plusieurs personnes ont pris l'habitude d'aller chez moi pour envoyer leur courrier ou imprimer quelque chose. Il était en quelque sorte gênant de refuser, mais cela s'est vite transformé en punition - ils ont commencé à s'en aller comme à moi, comme si je leur devais maintenant.
Mais une fois que j'ai eu presque un rêve:
Clavier MS Natural. Celui-là, le premier, le vrai. Fabriqué au Mexique, comme toutes les glandes fraîches de MS. Naturellement, sans lettres russes. Les gens étaient à l'étranger, achetés pour vendre cher ici. Ils ont vendu l'ordinateur, mais personne ne prend le clavier. Je l'ai donc obtenu à très bon marché, même si MS Natural était assez cher.

Ramené à la maison, réjouissez-vous. Déjà le deuxième jour, il a naturellement commencé à taper aveuglément avec tous ses doigts.
Oui ... donc, encore une fois, il vient - il doit taper le texte. Souriant largement, avec un geste de bienvenue, j'agite ma main: "Oui, veuillez vous asseoir, rembourrez-la." Il a hésité, hésité et il est parti. Pour une raison quelconque, je n'ai pas imprimé. Et d'autres comme ça ont vite échoué.
Soit dit en passant, je tape ce texte dessus, et depuis 1997, il fonctionne en continu et sans faute. La voici, la beauté:



Et plusieurs pas les miens, choisis parmi les commentaires pour être ensemble:

# 17

DrPass a déclaré:
Je me suis souvenu de mon histoire il y a 20 ans, à propos du retournement, du premier avril et de la patience. Ensuite, j'ai envoyé à un ami un tel programme, ou plutôt, pas un programme, mais une archive SFX avec des photos numérisées. Les photos étaient vraiment là, et le module SFX était faux. Il n’a rien souillé (il n’en avait pas besoin, j’ai juste épinglé les images en JPEG telles quelles dans les ressources), mais en plus des images des ressources, il a également retiré et écrit un programme au démarrage qui tourne l’écran et secoue la fenêtre dessus.Il s'est avéré que cette chose est simple, selon ESC. Eh bien, elle m'a appelé, a ri et a déjà oublié. Environ six mois plus tard, lorsque les feuilles sont tombées, elle m'a demandé quand je retirerais cette boue de son ordinateur.

# 18

Jef239 a dit:
Permettez-moi de vous parler mieux du scoop. Douchanbé, le service "09" (demande téléphonique), ces mêmes RP pour 29 Mo, l'année est vers 1980. Douchanbé se distingue par le fait que deux fois par jour, il y a un interrupteur des câbles fournissant de l'électricité (comme à Saint-Pétersbourg sur Vaska) + périodiquement juste une panne de courant.
Lorsqu'ils sont déconnectés, les condensateurs des disques peuvent être retirés lorsqu'ils sont déconnectés, ou ils ne peuvent pas être retirés. Et les têtes de ces disques planent, avec des ailes. Si le disque s'arrête, la tête tombe sur le disque et y raye. Eh bien, pas comme un cafard, mais ne sera toujours pas lu.
Il y a un large passage entre la salle des ingénieurs et la salle des disques. Lorsque la lumière clignote, les ingénieurs volent dans une foule dans la salle de discothèque et retirent les têtes des disques. De plus, qui est quoi conduire - pré-programmé et travaillé.

# 19

toivo61 a déclaré:
Et nos jeunes filles se sont amusées avec un test de grâce ... Les cassettes étaient conditionnellement EU et SM (deux fois moins). Ainsi, la jeune femme était considérée comme gracieuse si elle pouvait attacher une «sangle» du ruban SM sur sa taille. :-)
Note de Bedal : juste à la taille 60 - attaché.

# 20

tiger_sc a dit:
Du programmeur, je me souviens, fait un bug-2001. Le programme seul a fonctionné pendant deux ans et s'est soudainement arrêté. Il était utile de débattre - il s'est avéré qu'en un seul endroit, il était nécessaire de couper les deux derniers caractères de l'année de la date complète, et en raison de l'erreur, pas 3-4 caractères ont été supprimés, mais 2-3. En conséquence, en 1999, le programme a fonctionné correctement; en 2000 aussi, et seulement en 2001, un bug est apparu.

Source: https://habr.com/ru/post/fr470734/


All Articles