Me deparei com um computador (a palavra computador não estava em uso na época) no ano de 1977, era apenas um curso como esse em um mehmat. Fortran IV, códigos M-20, Algol-60, PL / 1, imediatamente após a uni entrar em programadores (programadores de sistema!), E lá vamos nós ...
E há alguns anos, parei de codificar ativamente, apenas scripts para mim, agora defino tarefas para um grupo de programadores.
Seja como for, durante esse período, houve várias histórias engraçadas e / ou interessantes (bem, pelo menos lembradas), que eu convido você a ler embaixo do gato. As histórias não são necessariamente estritamente sobre programação, mais sobre a vida de um programador.
# 1
“Tags no Fortran são identificadas por números. Por exemplo, você pode escrever GOTO 21. Hee hee hee hee. ” - quase tudo que me lembro sobre estudar Fortran. Desde a primeira apresentação, ele (FORTRAN IV) não me atraiu. O interesse surgiu muito mais tarde, quando fiquei um pouco surpreso ao ver que a maioria de seus operadores individuais é implementada em equipes de muitos processadores. Por que ele, de fato, foi durante muito tempo o líder absoluto na velocidade de transmissão (eles não disseram "compilação" na época e, na verdade, não havia) e velocidade de execução.
# 2
Nada.
Porque?
- Você tem um erro no programa.
"Bem, então, o resultado está correto?"
- Sim, mas há um erro no programa. Nem deveria ser transmitido
- Mas não há mensagens de erro de transmissão e o resultado está correto - não há erro?
"Isso não pode ser."
- Desenhamos uma impressão à mão?
- Nnu, sim, aparentemente, está tudo correto. Isso está errado! A atribuição em Algol é feita através de
: = , e você só tem um sinal de igual, esta é uma comparação. Sim, e aqui e aqui - o programa simplesmente não pode ser transmitido.
- Mas a transmissão passou e o resultado está correto!
...
Um diálogo engraçado foi provocado por nós. O símbolo "retorno de carro" no meio da linha levou ao fato de que parte da linha antes de não ser impressa. Portanto, a impressão foi o que realmente foi um comentário. O tradutor (TA-1M no BESM-4) ignorou os caracteres de controle e processou o texto de origem real. Para criar o efeito, bastava fazer alguns furos adicionais no cartão com uma lâmina de barbear, para que o espaço se transformasse em CR.
No final, fomos convocados para o escritório do reitor e fizemos uma sugestão. Nós não fomos os pioneiros da piada, e não apenas éramos novos na programação. Isso também se aplicava a alguns professores, na época não era de todo surpreendente.
Ah, e sim - ainda temos o crédito.
# 3
Imediatamente após a uni, a distribuição para SoyuzEVMkompleks, um programador de sistema.
O trabalho foi basicamente assim:Instalação de sistemas operacionais em um computador da UE. By the way, valeu a pena, 2000 em si custou o sistema operacional e 640 rublos - instalação. Com todas as caudas da taxa de câmbio do então rublo, para entender, você pode fazer a ordem dos mesmos preços em dólares. Torna-se claro por que os então fabricantes de sistemas operacionais não se apaixonaram por Gates por suas vendas de sistemas operacionais dez vezes mais baratas.
Assistência a programadores de diferentes CCs na localização e correção de erros nos programas. Em diferentes idiomas, incluindo, digamos, COBOL, que eu de fato não conhecia, e BASIC, que não quero conhecer.
Ajude os engenheiros eletrônicos na solução de problemas.
O último era frequentemente necessário. O computador da CE não era apenas um buggy, mas também um sistema multiprocessador. A entrada e a saída foram feitas por processadores separados (na forma de gabinetes separados) com seus sistemas de comando e, consequentemente, seus programas de "canal". Em caso de mau funcionamento, ainda era necessário descobrir o que exatamente estava: um dispositivo, um processador de canal ou o principal.
Os programas de canal, essno, faziam parte do sistema operacional, mas para solucionar problemas, era necessário poder iniciar o seu próprio. Os padrões podem ser baixados do disco (diagnóstico especial). Mas ele pode não funcionar. Então - com fita magnética. Na pior das hipóteses, com cartões perfurados.
Nos casos mais incompreensíveis, eu tive que estupidamente estourar pequenos programas na memória do controle remotoVocê escreve um programa em códigos de programa de canal.
Você digita o endereço na memória com os interruptores na “face”, digita o valor do byte.
Você digita o valor do byte endereçado, escreve.
Você digita o seguinte endereço, o seguinte valor ...

Vê as rodas pretas na parte inferior? Aqui, no dígito hexadecimal, e termine. Felizmente, os programas eram curtos, em cem, raramente mais bytes.
No caso em que era necessário multiplicar ou imprimir um baralho de cartões perfurados em uma máquina sem sistema operacional, “três cartões” foram salvos. Um programa maravilhoso de 240 bytes. Você coloca três cartões perfurados no leitor e inicializa a partir deles. Se as cartas foram na mesma ordem, o próximo baralho foi para a impressão. No outro - para copiar para "barmales", saída de cartão perfurado. No terceiro - acreditava-se que o baralho contém o programa em formato binário, que foi lançado. Estes não foram três programas diferentes! Era impossível descartar qualquer um dos cartões em qualquer uma das opções.
# 4
Houve muitas falhas, por exemplo, com discos.
Drive EC-5061
Torceu nesta unidade um pacote de discos com capacidade de 29mb:

11 discos, 20 superfícies de trabalho (as superfícies superior e inferior não são usadas).
A bolsa estava em uma caixa de plástico, inserida na unidade, após a qual a caixa foi removida. Para um maior entendimento, esses detalhes são significativos.
Não era incomum que um pacote nessa unidade específica não fosse lido, mas no próximo era lido normalmente. Havia o hábito, se alguma coisa, de reorganizar o pacote em outra unidade. O que levou à seguinte história:
Turno da noite. A unidade travou. O operador troca os pacotes em duas unidades. Geralmente isso ajudava, mas agora os dois foram para a cama. Bem, neste caso, há um pacote com uma cópia dos dados na prateleira. Ele remove um que falhou, coloca outro - não pode ser lido! Ele coloca outros pacotes, tenta passar para outra tarefa - não, nada é lido.
Finalmente, chega a manhã, o restante da equipe vem. Eles começam a desmontar e entender. De uma maneira desconhecida (havia filtros por toda parte), uma barata se arrastou para dentro da bolsa. E ficou entre a bolsa e a cabeça. A cabeça bateu na sacola e "puxou", fazendo um belo buraco no prato. Após os rearranjos, o prato quebrado estragou a cabeça na próxima unidade e a cabeça quebrada estragou o próximo prato.
De manhã, havia uma rota total: várias cabeças de leitura / gravação, cinco ou mais (não me lembro) pacotes - estavam arruinadas. Perda de 2500 rublos, que eles tentaram pendurar em uma operadora pobre com um salário inferior a 100 rublos. Mas de alguma maneira eles conseguiram abaixar tudo no freio.
# 5
Os anos 80 estavam se aproximando, o papel estava entre os déficits. Em alguns CCs, a situação era tão aguda que as impressões após a pesquisa (buscando erros no programa ou visualizando os resultados do trabalho) foram coletadas, cuidadosamente coletadas ao longo das linhas de quebra, coladas e recolocadas para impressão no trabalho no verso. Colocar chá ou um sanduíche na impressão foi considerado indelicado.
# 6
Servi a fábrica VTS em Taganrog. Eu estava carregando a distribuição do sistema operacional (duas bobinas de fita magnética de 30 cm de diâmetro, 20mb e peso por quilograma, provavelmente) e impressões dos códigos-fonte dos programas que eles escreveram lá, para que pudessem descobrir os erros em casa que eles pediram para encontrar. E o posto de controle foi difícil ... o CC teve que me endireitar o passe para o "posto de controle do diretor geral". De qualquer forma, as impressões foram escolhidas. Por estupidez, tentei explicar que as impressões são pah, aqui estão as fitas, sim, posso levar a planta inteira para elas. Eu quase entendi que eles pararam de me deixar ir - no último momento eu percebi e parei.
# 7
Finalmente, chegou a hora do PC. Eu trabalhei no Robotron-1715.
Oito bits, no CPM, mas bom, de alta qualidade, e não alguns dos nossos Sparks.
Mas a sala estava aquecida, para dizer o mínimo. No inverno, você vem de manhã - o gelo flutua na jarra. O robô, até aquecer, despejou caracteres aleatórios do teclado em um ritmo frenético. Tentei brincar dizendo que ele estava transmitindo tudo para o satélite - havia um homem que acreditava :-) De qualquer forma, o dia de trabalho começou com o fato de eu bater no baklusha por uma hora e meia, beber chá, aquecer e esperar o computador esquentar.
# 8
No mesmo robotron, comecei a escrever uma tarefa de armazém. E para fazê-lo em Pascal - não, virei-me para a novidade, para o dBaseII, na moda na época. Esse é o próprio "DBMS" a partir do qual os FoxBase e Clipper, ainda vivos, cresceram. Tudo ficaria bem, mas os arquivos com as tabelas eram puramente
texto , portanto, eles ocupavam muito espaço (mas portabilidade!).
Já era impossível mudar a plataforma, e os clientes exigiam aumentar o tamanho da base, até o crack. E onde aumentá-lo em um disquete? Comecei a fazer uma biblioteca, algo como ZIP com UUCP em uma garrafa. E para que a estrutura do arquivo não seja quebrada. E - ele escreveu, mesmo no escritório de Nantucket (fabricante Clipper'a) em Moscou, eles consideraram isso (talvez, é claro, apenas por polidez).
Sim, e assim: quase exatamente no dia em que depurei tudo completamente e estava pronto para dar essa opção ao cliente, o primeiro disco rígido de 5 megabytes chegou até nós.
# 9
E disquetes novamente. 5 ", 40 faixas, 128kb (eles me corrigiram, 110kb). Estou escrevendo um programa, passando-o para o cliente (que está além do Círculo Polar Ártico, por sinal). O processo está em andamento, eles corrigem a produção em movimento, eu corrigo os bugs em tempo real, tudo é como sempre.
Mas o progresso não pára, eles me colocaram em uma linha de flop de 80 pistas. Hurrah, 256kb (também corrigido, 360kb)! Mas apenas para si mesmos, os clientes têm disquetes antigos. E começou ... eu corrijo o programa, transfiro-o para o cliente - não funciona. A regra, estou enviando, não funciona, e os erros são antigos como eram, permaneceram. Volto a verificar cem vezes - está tudo bem. Eu até fiz uma viagem de negócios lá, além do Círculo Polar Ártico. De fato, eles têm uma versão do “tempo de Ochakov e da conquista da Crimeia”, embora o disquete seja o que eu transmiti. Milagres!
Mas descobri, é claro. No modo de gravação de 40 trilhas, um guia de flop de 80 trilhas escreveu apenas 40 trilhas, mas tinha uma cabeça menor e a largura da trilha gravada era muito mais estreita. No local do cliente, o condutor do flop de 40 pistas leu uma faixa larga, ignorou o registro estreito e novo e pegou as informações antigas gravadas quando diabos.
Aqui, eu até desenhei uma foto - o que aconteceu:

# 10
Com o passar do tempo, as tarefas do dBase e do tipo contábil foram esquecidas (eu não as amei a vida inteira, apesar de sinceramente me alimentarem sete anos). De qualquer forma, estou crescendo, já estou escrevendo em C (não, ainda não em C ++) no MSC 6.0 (não, não, não no MS Visual C).
E - deja vu.
Estou escrevendo um programa, dou para os clientes - um erro. Estou fazendo um assembly de depuração, dirijo na cauda e na crina - tudo está em perfeita ordem. Chegou ao ponto de ele abalar a antiguidade, entrar em códigos e lixões. Acabou por passar o parâmetro curto para a função. O short tinha 16 bits na época. E na pilha sob o parâmetro todos os mesmos 32 bits foram alocados, uma palavra. E, tram-tararam, na versão curta, foi escrito em uma metade da palavra e em depuração - na outra. E sempre foi lido da mesma metade. Portanto, no parâmetro debug passado corretamente, e no lançamento de algum lixo.
# 11
Sim, a tarefa do armazém me alimentou nos momentos mais difíceis. E ensinado a viver.
Eu faço a próxima opção para o próximo escritório. Eu dou um relatório. Eles se alegram com o resultado, mas pedem o "número 8". Bem, pergunto o que é, corrijo o relatório. Eles se alegram - confortáveis, bonitos, melhores do que no papel ... "mas onde está a fiação número 8". Ah, eu simplesmente não saí do vapor - não, não é isso. Por fim, perdendo a paciência, ele adotou a opção mais antiga, mais simples e, portanto, a mais rápida, e escreveu em grande formato “Postagem nº 8” na maior fonte permitida pela então impressora (matriz).
- Finalmente, muito obrigado, estamos muito felizes!
Estou feliz também, os prazos já estão no nariz. E só mais tarde eu percebo que não é necessário ser inteligente em excesso, você precisa fazer algo que funcione em tecnologia. E mais uma coisa: você não deve apenas ouvir o cliente, mas também estudar a área, se quiser se sair bem.
# 12
Crescer sob a liderança do paciente é conveniente, e a maneira mais fácil de inventar algo é não saber o que já foi feito. Então eu cresci e criei redes neurais. Essa palavra era então, nos anos 80, não particularmente em uso, eu não o conhecia. Mas - eu escrevi tudo a mesma coisa. É claro que não poderia ganhar a sério, as boas redes neurais crescem com a boa matemática, e eu tinha uma aritmética idiota. Mas ela estudou e até fez um diagnóstico simples de falhas no computador. Nível puramente demo, é claro.
Como esperado, era necessária muita memória. Eu não podia sonhar com gigabytes de RAM, onde "640k deveria ser o suficiente para qualquer um" ainda funcionava. O espaço de endereço é 1mb e a memória real é o mesmo 640k.
A idéia surgiu: usar a memória do adaptador gráfico VGA, porque ele foi mapeado para um espaço de endereço comum. Mal disse o que fez. Até 256k suplementos! Para velocidade, a tela desligou; caso contrário, devido à sincronização com a tela, funcionou extremamente devagar.
E, às vezes, não era desligado, porque era muito interessante observar como a tela ficou cinza ao aprender à medida que o preto se formava, formações e transbordamentos, que ao longo do tempo fluíam para pontos brilhantes de decisões. Muita gente veio ver como a máquina pensa.
# 13
Sob esse número, apenas sobre o vírus e diga. Naquela época, os vírus eram mais engraçados do que maliciosos, os autores estavam mais preocupados em escrever um vírus em geral e ter um efeito mais divertido. Havia um vírus incendiário quando a imagem foi queimando lentamente. Essa técnica sobreviveu até o presente nos protetores de tela:

Havia outros mais simples, por exemplo, um flipper:

Em algum momento, ele se arrastou pelo escritório. Em todos os lugares eles me pedem ajuda, como ex-engenheiro de sistemas. Bem, eu vou, eu piloto carros. Tendo tratado os outros, apenas no caso de eu estar indo para o lugar mais calmo, onde não fui chamado. Surpreendentemente, isso é contabilidade. Acontece que as mulheres não se incomodaram: viraram os monitores de cabeça para baixo e calmamente continuaram a trabalhar.
Eu sei, eu sei, muitos já se depararam com uma descrição semelhante na forma de uma piada. Então: às vezes era pura verdade.
# 14
Bem, não funciona para sempre, acontece no dia primeiro de abril. Agora é de alguma forma chato, mas antes que eles tentassem e o inventassem. Era muito engraçado nos computadores, de costas um para o outro, para os ratos. Você move o mouse - e nada, o cursor se depara com um colega oposto. De repente, seu cursor começa a pular descontroladamente - esse colega também está tentando entender o que é o quê.
Quando os mouses ópticos apareceram, colar uma janela de ótica com um pedaço de fita isolante
vermelha funcionou bem. O mouse para de funcionar e você olha de baixo - tudo parece normal, brilha em vermelho como sempre.
Na verdade, é tudo. Não faz sentido contar sobre os últimos tempos, os mais recentes são familiares a todos o que dizer lá. E, devo admitir, já sou cotacionista como programador. Então, às vezes eu escrevo scripts para mim. Defino tarefas para um grupo de crianças mais novas.
Vou acrescentar, mais uma bicicleta foi lembrada no decorrer dos comentários
# 15
Eles colocaram a memória no lugar. O gabinete é grande, pesa 600 kg. Eles já se arrastaram para o corredor, agora basta empurrá-lo no chão, já que tudo está sobre rodas ...
Bem, nós empurramos, e então o piso elevado começa a dobrar e desmoronar. Pare - ele cairá meio metro abaixo, e pegue-o. Sim, e suas pernas vão nos quebrar. Não há nada a ser feito, você precisa empurrá-lo para todo o lugar. Quase empurrado, e lá cai.

Em geral, essa memória passou por quase todo o salão, abrindo o piso elevado como um quebra-gelo. No final, mais perto da parede, o chão era mais forte, por isso terminou feliz. Bem, exceto para reconstruir o chão.
# 16
Bem, eu ainda lembrava!
Quando o pessoal apareceu, mas era extremamente raro, várias pessoas adquiriram o hábito de ir à minha casa, para enviar correspondência ou imprimir alguma coisa. Era de alguma forma inconveniente recusar, mas logo se transformou em apenas um castigo - eles começaram a ir como se para mim mesmo, como se agora eu os devo.
Mas uma vez eu tive quase um sonho:Teclado MS Natural. Aquele, o primeiro, o real. Feito no México, como todas as glândulas frias da MS. Naturalmente, sem letras russas. As pessoas estavam no exterior, compradas para vender caras aqui. Eles venderam o computador, mas ninguém pega o teclado. Portanto, comprei muito barato, embora o MS Natural fosse muito caro.
Arrastado para casa, alegre-se. Já no segundo dia, ele naturalmente começou a digitar às cegas com todos os dedos.
Sim ... então, mais uma vez, ele precisa digitar o texto. Sorrindo amplamente, com um gesto de boas-vindas, aceno com a mão: "Sim, por favor, sente-se, encha-o". Ele hesitou, hesitou e saiu. Por alguma razão, não imprimi. E outros assim logo não deram em nada.
A propósito, estou digitando este texto e, desde 1997, ele trabalha continuamente e sem falhas. Aqui está ela, beleza:

E vários não meus, selecionados a partir de comentários para ficarem juntos:# 17
DrPass disse:
Lembrei-me da minha história há 20 anos, sobre o flip, o primeiro de abril e a paciência. Então enviei a um amigo esse programa, ou melhor, não um programa, mas um arquivo SFX com fotos digitalizadas. As fotos estavam realmente lá, e o módulo SFX era falso. Ele não descompactou nada (ele nem precisava, eu apenas fixei as imagens em JPEG como estavam nos recursos), mas, além das imagens dos recursos, ele também retirou e escreveu um programa na inicialização que vira a tela e abana a janela. Desligou essa coisa simplesmente, de acordo com a ESC. Bem, ela me ligou, riu e já se esqueceu.
Cerca de seis meses depois, quando as folhas caíram, ela me perguntou quando eu removeria essa sujeira do computador.
# 18
Jef239 disse:
Deixe-me falar melhor sobre o furo. Dushanbe, o serviço "09" (consulta telefônica), essas mesmas RPs por 29 megas, o ano é de 1980. Dushanbe se distingue pelo fato de que, algumas vezes por dia, há um interruptor dos cabos que fornecem eletricidade (como em São Petersburgo, Vaska) + periodicamente apenas uma falta de energia.
Quando desconectados, os capacitores nas unidades podem ser removidos quando desconectados ou podem não ser removidos. E as cabeças desses discos estão subindo, com asas. Se o disco parar, a cabeça cai sobre o disco e o arranha. Bem, não como uma barata, mas ainda não será lido.Existe uma grande passagem entre a sala dos engenheiros e a sala de disco. Quando a luz pisca, os engenheiros voam no meio da multidão na sala de discotecas e puxam as cabeças para fora dos discos. Além disso, quem é o que dirige - pré-agendado e elaborado.# 19
toivo61 disse:E nossas jovens se divertiram com um teste de graça ... As fitas eram condicionalmente UE e SM (duas vezes menos). Portanto, a jovem foi considerada graciosa se pudesse prender uma “tira” da fita SM na cintura. :-)Nota de Bedal : na cintura 60 - apertada.# 20
tiger_sc disse:Pelo programador, lembro, fiz um bug-2001. Só o programa funcionou por dois anos e parou de repente. Foi útil debater - descobriu-se que em um lugar era necessário cortar os dois últimos caracteres do ano a partir da data completa e, por causa do erro, não foram cortados 3-4 caracteres, mas 2-3. Como resultado, em 1999, o programa funcionou corretamente; também em 2000, e somente em 2001, um bug apareceu.