bash.im ithappens.me zadolba.li

Давным-давно

4595

Первый канал второй палаты

3 ноября 2010, 16:45

Сегодня никого не удивить ноутбуком. Даже у двоечников (скорее, у двоечников, которых родители тянут, не жалея сил) есть эти удобные устройства. Меня профессия и природная любознательность вкупе со стремлением к познанию всего нового подстёгивала быть на пике технологий. И статус велит: я директор хоть и мелкой, но гордой софтверной фирмы. И кому какое дело, что у того директора программеры частенько зарплату больше имеют — нужно соответствовать. Я и соответствовал в силу возможностей.

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

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

Зашёл намедни навестить подружку корефана в больничке. И что вижу: нынче из меня такого Гудвина, как раньше, уже не получилось бы. Если не телевизор, то ноутбук; если не ноутбук, то что-нибудь карманное. И не то что на палату — у каждого! XXI век, однако.

4507

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

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

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

4489

↑ ↑ ↓ ↓ ← → ← → B A

22 октября 2010, 08:00

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

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

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

4475

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

20 октября 2010, 11:45

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

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

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

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

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

4472

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

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

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

4358

Нет уж, лучше вы к нам

В далёких девяностых после смены версии ядра Linux перестал работать у заказчика АЦПУ. Было у заказчика изрядно долгов, и ехать в промзону в это АТП не слишком хотелось. Предложил я им привезти «принтер» к нам: разберёмся и настроим, тем более что автотранспорта у них хватает. На том конце возникла минутная пауза.

— Молодой человек, этот «принтер» весит полторы тонны. Когда здание строилось, его краном установили, а потом крышу делали.

А делов было — поменять /dev/lp1 на /dev/lp0.

4236

Агент N/A

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

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

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

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

4235

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

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

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

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

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

4212

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

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

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

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