Истории с тегом: давным-давно

Всего историй: 557

4780

Срач в системе

СМ-ЭВМ, конец восьмидесятых. Подходит к программистам оператор и с ухмылкой заявляет:

— Идите смотрите: опять срач в системе.

Оказалось, system crash. А слово я употребляю до сих пор.

4747

В большом городе герконом не щёлкают

1989 год, четыре ленинградских «Спектрума» (железные корпуса, герконовые клавиши), четыре советских цветных телевизора, магнитофон «Весна». Практически всегда — аншлаг. В разгар рубилова я зевнул, и кто–то из трудных сп#$%ил единственную кассету с играми. Оставив хозяйство на доверенных, я отправился в забег по конкурентам. Конкуренты кривились и морщились, но отслюнявили пару кассет чего поплоше методом тупой перезаписи: программы–копировщика не было ни у кого.

Вернулся к себе и вижу: все компьютеры заняты. Мой напарник и компаньон научил хулиганов основам Бейсика, и молодёжь вовсю рисовала круги и квадраты, будучи очень собою довольна. Очередь волновалась, но зря: машинное время было оплачено.

Из двадцати, что ли, программ прочиталась в итоге только одна. Неделю или две, пока какая–то добрая душа не нашла мне копировщик, все играли в Pyjamarama, а особо продвинутые так и рисовали круги за свои денежки. Я тогда понял, что разнообразие, по большому счёту, нужно немногим; главное — возможность щёлкать герконами внутри железной коробочки.

4634

Вот и усё

В доисторические времена использовали мы в институте компьютеры типа «ДВК». Работали они с кодировкой КОИ-7, соответственно, на экран выводилась либо латиница, либо кириллица, причём если вовремя в программе не проследить за переключением шрифтов, то вывод на экран становился малопредсказуемым.

Операционная система содержала «защиту от дурака», переспрашивая оператора о нужности введенной команды вопросом «USE?» («использовать?»). Так вот, на введённую однажды команду delete *.* машина удивлённо спросила: «УСЕ?»

Усё, дорогая, усё...

4507

Подо мной будешь

Когда-то я был маленьким сорванцом и практически всё время проводил за игрушками на своем 300-м «пеньке». Сетей тогда еще не было, интернет — диалап, а меняться играми с друзьями ой как хотелось. Болванки тогда стоили много, резаки были не у всех, так что приходилось таскать друг к другу винты.

Часто возникала проблема с определением дисков биосом. Перебирались всевозможные комбинации джамперов со «слейвами» и «мастерами», пока чудесным образом не обнаруживалась рабочая. Помню, я тогда искренне верил, что если винчестер в системнике переставить на полочку пониже «мастера», он непременно станет «слейвом», и всё заработает.

4489

↑ ↑ ↓ ↓ ← → ← → B A

Захотелось мне в «Денди» поиграть, молодость вспомнить. Установил эмулятор, поиграл. Совсем не то! Ощущения тактильные от USB-геймпада не те: слишком мягкие клавиши, слишком правильные линии под руки. А душа просит родимого прямоугольного джойстика с красно-белыми жёсткими кнопками, да и по картриджам я соскучился.

Отправился на барахолку компьютерную, нашёл приставку и несколько любимых картриджей. Через два часа уже дома с любимой консолью — а телевизора-то и нет! «Денди» втыкается в антенный выход ТВ-тюнера, который на компе не использовался со времен царя Гороха. Ищутся дрова под эту древность, настраивается программное обеспечение...

Не прошло и трёх часов, как всё заработало. Счастливый, поиграл десять минут и пошёл на улицу пить пиво. Для меня этот мир уже не будет прежним.

4475

Ускорено серым веществом

Во времена моего программерского расцвета, в первой половине девяностых, из всех вменяемых междумордных библиотек (для DOS/Windows) существовало всего две: трубо-вижн-борландюшатник и Цинк. Были и ещё какие-то: либо со строго закрытым коммерческим API, доступным только за очень отдельные деньги, либо откровенно лажающие на самых примитивных контролах. В общем, всего две. И ни одна из них не прикручивалась к Clipper 5.x напрямую — всё равно надо было кодить пакет-посредник, что вдвое снижало время отклика.

В общем, мы с коллегой решили: нужен набор интерфейсных примитивов, написанный на самóм Клиппере (и примкнувшем к нему ассемблере). Благо 5.2+ уже в полной мере был вменяемым объектным языком, и всего лишь нужно было заэксплуатировать недокументированное. Сели, обдумали концепт, за пару недель создали ТЗ, ещё через пару месяцев на свет появилась библиотека (статическая, само собой: дело-то под «доской» происходило), которая из текстового описания динамически порождала экранные формы с полнофункциональными контролами. Это вам не из бинарных .FRM вынимать поток — это реальный конструктор форм. Вплоть до того, что сами описания форм можно было хранить в таблице БД и при необходимости править при помощи банального memoedit'а... Да-да, и мета-язык тоже был! Это оно сейчас, когда визуальноe программирование стало нормой, кажется смешным. У нас на тот момент выбор был небогатый.

В середине девяностых на моём домашнем компе умер винч. Умер зонами, в одну из которых попали исходники этой самой библиотеки. Причём и сама бибилиотека, и .OBJ для неё выжили. Пока ещё был некий коммерческий спрос на DOS-программы, эта либа честно поучаствовала в нескольких вполне продаваемых проектах. При этом переписать её не было никакой физической возможности: исходники вымерли вместе с винчестером, а Клиппер-декомпилятор смог возродить менее трети текстов. Остальное не воспроизводилось, так как опиралось на вскрытые, но таки недокументированные особенности языка.

Так к чему я это всё? Ах, да... Среди модальных диалогов был и прогресс-бар. Который, само собой, нельзя было перерисовывать при каждой итерации: обрабатываемые таблицы вполне могли содержать миллионы записей, а рантайм Клиппера — это интерпретатор прекомпилированных байт-кодов (Явы тогда ещё и в проекте не существовало). То есть, это сразу стало ясно, нужен вменяемый пересчёт отношения «current/total» в размер окна с прогресс-баром, то есть нормализация на единице квантования бара. Было немножко арифметики вне цикла, после чего внутри цикла отрабатывались только пороговые значения, которые продвигали бар на полоску вперёд. Правда, именно на Клиппере это решалось чуть проще: часть арифметики делал рантайм, подсаженный на коллбек (и это под ДОСом).

Короче говоря, я до сих пор встречаю два вида прогресс-баров: первый, жутко тормозной, и второй, чётко и шустро отщёлкивающий прогресс — сделанный по тем же принципам, что и у меня, с учётом размера кванта. Второе решение более затратно по серому веществу (ровно на знание арифметики), первое — наповерхностно-очевидно и, следовательно, неверно. Привет коллегам-программерам из девяностых!

4472

То берёза, то рябина, куст ракиты над рекой

Служил в середине восьмидесятых под Москвой в части связи. За карманные приёмники нас гоняли под предлогом, что враг не дремлет, а приёмник — это не только приёмник, но и передатчик. Но хотелось же...

Начала появляться «Европа Плюс», да и «голоса» тоже хотелось послушать. Сослуживец, довольно далёкий от всяких наук, просветил меня, к тому времени прослушавшего в институте полкурса электротехники и электроники, что лучшей антенной для приёмника служит дерево. Я долго смеялся. Он же подключил антенное гнездо к гвоздю, вбитому в высокую берёзу. Мда, весной не только пень расцветает: мы принимали все возможные и невозможные радиостанции. По берёзе-то соки весной движутся. Вот тебе и деревянная антенна!

4236

Агент N/A

Дело было во времена появления Pentium II — одних из первых массово продававшихся RISC-CISC-трансляторов, а не классических CISC-процессоров, как Pentium и Pentium MMX. Да, именно тогда свет увидели оптимизация очереди выполнения команд, подстановочные регистры и разбиение команд на подкоманды.

Писали мы как-то с одногруппником одну задачку на ассемблере x86. По нажатии определённой комбинации клавиш надо было вывести на экран надпись: «Привет от агента 009!» Задача простая: резидент с обработчиком прерывания от клавиатуры; перехват комбинации, вывод надписи на экран, задержка и её стирание методом восстановления того, что было под ней. Да, примитивно, да, клавиатура «вставала колом» на время этой задержки, но нам для изучения прерываний больше и не нужно было.

Надпись в упор не хотела выводиться целиком. «Привет от агента» появлялось, а «009!» — ни в какую. Было выпито много пива и потрачено полдня. Уже и задержку в пять секунд вставили — не хочет.

Прихожу домой, запускаю на своём компьютере. Работает, выводит строчку целиком. Оказывается, Celeron 333 приятеля оптимизировал код на лету, и первые 16 байт строки выводились сразу, а последние 5 — непосредственно перед стиранием. Естественно, их мелькание на экране было совершенно незаметным. Мой же старенький Pentium 200 MMX ничего не изобретал — выводил всё целиком, а только потом исполнял цикл задержки. Стоит ли говорить, что ещё более древний институтский 80286 тоже не стал ничего изобретать, и лабу мы защитили успешно?

4235

Накормим железо железом

Дело было еще в Советском Союзе, когда при слове «электроника» благоговейно трепетали. Завидя некий электронный агрегат, работяги реагировали примерно следующим образом: «У-у-у, электроника! А давай-ка мы по ней кувалдой ударим, что будет?»

На одном АТП внедрили систему электронного заполнения путевых листов. Процесс заполнения путевых листов шайтан-машиной проходил так: в щель агрегата просовывался бланк путевого листа, внутренности гремели, звенели, и после изъятия путевого листа работяги лицезрели выбитые время-дату. Когда на предприятии появился чудо-агрегат, водители не обрадовались: ни тебе премиальных, ни левака. С человеком, заполняющим бланки, всегда можно было договориться, а с электроникой...

Недолго длилось горе шофёрское. Придумали они, как обойти систему. В щель автомата мужики всунули вместе с бланком лист жести. Автомат крякнул и заглох.

На этом опыт внедрения системы электронного заполнения путевых листов закончился. Следующая попытка была уже в новом веке.

4212

Бессвязный бред

В туманных восьмидесятых я работал в конторе, что разрабатывала электронные девайсы, в том числе и для несокрушимой и легендарной. Где-то через месяц после отправки на испытания мощного тропосферного радиорелейного комплекса из воинской части с соответствующим номером пришло письмо, сразившее всех туманностью формулировок. То есть как бы понятно, что речь идет об этой самой релейке, но больше не понятно ничего. Неясно, ни чего хотят, ни в чём проблема.

Недоумение рассеял весьма умудрённый как жизненным опытом, так и Вооружёнными Силами главинженер. Рассеял, надо заметить, радикально:

— Что ж тут непонятного? Всё предельно прозрачно! Перевожу: аппаратуру нашу они запустили и опробовали. Она им даже нравится. Они уже с её помощью угнали спутник-шпион и посадили вслепую вертолет на палубу рыболовецкого сейнера. Но вот как её использовать в качестве связной радиостанции, они пока не понимают.