Параноидальная система защиты от копирования считает ресет попыткой обмана и требует заново вбить все ключи и повторно активировать программы на сайте производителя. Но это так, мелочи.
* * *
Утро. Начальник отдела идёт к рабочему месту, протискиваясь через столы и стулья, принесённые из уже не наших помещений. При этом яростно спорит с идущим за ним программистом.
— …и зачем только весь этот хлам на нас свалили! — заканчивает он фразу, начатую ещё на лестнице.
— Добрый день, — из-под стола высовывается несколько испуганный тестер (мышь подключал).
— Нет, это я не вам, не вам! Это я про «восьмёрку», — успокаивает его начальник.
* * *
— Свяжитесь с ними по скайпу и объясните. Пусть покажут через Тимвьюер, что у них не получается.
— Невозможно. Скорость 30 килобайт. Ни голосовой связи с ними, ни ремоут-десктопов не будет, пока снег не растает.
— Канал снегом занесло?
— Можно сказать и так. Коллектор, где обещали волокно проложить, забит снегом. Рассчитывали, что к апрелю подтает. Пока сидят с модемом.
#10795: Do you speak CP 866?
12:15 04.04.2013, IT happens
Кто тут хотел баек от сорокалетних спецов с двадцатилетним стажем? Их есть у меня.
Дело было лет двадцать назад, когда писишка была редкостью, стоила дорого и не всегда комплектовалась мышкой, а про локальные сети мало кто слышал. Действующие лица: студенты специальностей 220100, 220400 и 220500 в количестве пяти человек. Инвентарь: БК-0010 с дисководом и принтером СМ6337.
Один из студентов приносит дискету (5,25 дюйма на 800 КБ, «бэкашка» другие не понимала) с книжкой по IBM PC в виде голого текста. В книжке, по его рассказу, много интересного. Возникает идея распечатать, тем более что книжка специально порезана на кусочки по 8–10 килобайт, что позволяет напечатать её на БК (там всего чуть меньше 16 КБ для программ и данных выделено).
Мгновенно ваяется программочка, перекидывающая байтики в порт принтера, начиная с определённого адреса памяти. А чего? Несколько команд на ассемблере. В нужную область памяти грузится первый файл, программа запускается, принтер печатает несколько знаков… и затыкается. Программа завершает работу.
Студенты садятся думать, как решить проблему. Минут через пять в процессе чтения мануала на принтер (изрядной толщины книжица с кучей технических данных и таблиц) кого-то осеняет, что программа кидает в порт данные быстрее, чем принтер их переваривает. Вместо того чтобы проверять готовность принтера к приёму данных, в программу всовывается пустой цикл, который заставляет кидать эти данные пореже.
Печать пошла. Только вместо текста полезли кракозябры. «Опа! — говорит один из студентов. — На писишке кодировка 866-я, а тут КОИ-8». Возникает логичный вопрос: что делать? Таблиц с кодировками под рукой нет, посмотреть их негде (про интернет тогда никто и не слышал), а распечатку получить хочется.
В попытках перекодировать вручную доходят до частотного анализа, благо перекодировка идёт простой заменой символов. Проходит часа полтора-два, но пока безрезультатно. Вдруг один из студентов тычет пальцем в мануал на принтер и заявляет: «Мы идиоты». Принтер отлично знает о существовании разных кодовых страниц. Мало того, он умеет на них печатать, только перед подачей самого текста надо переключиться на соответствующую кодовую страницу специальной эскейп-командой.
Распечатка у меня до сих пор где-то валяется. Только я не пошёл по программистской части, и многие интересные сведения из неё мне оказались без надобности.
#10796: Иксы и игреки
12:15 04.04.2013, IT happens
Глаза слипаются. Четвёртый час ночи. Нужно дописать прогу и идти спать. Делов-то на пять минут — и о чём раньше думал? А всё эта лень. Ей нормально, а ты страдай потом.
Ну что уж там демагогию разводить… Накидал форму, написал код. Всё работает. Правда, как всегда, по-индусски: куча ненужных переменных, кривой код. Ну да ладно, зато форма яркая: всевозможные плюшки типа кнопочек, эдитов, лейблов и других никому не сдавшихся блэкджеков. Напоследок глянул форму. О, лишняя кнопка «Button 5». Удалил. Закрыл прогу. И перед самым выходом из системы мне на глаза попалась эта самая кнопка прямо в центре рабочего стола. Она яростно стучала в экран монитора с обратной стороны. Я наклонился к ней и отчётливо услышал вопрос.
— Для чего? — страдальчески кричала она. — Скажи мне, для чего всё это?
— Мне нужно было умножить X на Y, — ответил я.
Кнопка потупила взор и медленно скатилась по экрану вниз.
— Как же так? — прошептала она. — Икс и игрек? Не может быть.
Её глаза налились слезами, и сквозь них она продолжила: