В давние времена, когда ZX Spectrum был далеко не у каждого, мой однокурсник собрал по схеме из популярного журнала компьютер «Специалист». На заказ печатной платы в Москве денег у него не хватило, поэтому он иголкой в листе картона натыкал дырочек под выводы микросхем и распаял схему с обратной стороны кусочками провода МГТФ. Включил — не работает. Бедняга дважды проверил монтаж, ошибки не нашел и принёс его мне для отладки.
Увидев порождение настолько адского трудолюбия, я живо представил себе грядущую бессонную ночь и со вздохом включил осциллограф. Через пять минут неисправность была найдена — виновником оказался бракованный конденсатор в цепи видеовыхода, а остальная схема исправно работала!
Стоит ли упоминать, что 8-килобайтную прошивку BIOS'a мой приятель вручную набрал в шестнадцатеричных кодах на программаторе с клавиатурой от старого калькулятора?
Как-то раз, будучи в командировке, на территории заказчика отлаживал я работу одной несложной программки. Где-то глубоко в ней скрылся очень неприятный баг. Времени на отладку было немного, бегал я целыми днями в мыле.
Ситуацию ухудшал неприятный тип — начальник отдела, в котором я и устанавливал эту прогу. Умом был не силён, мышкой еле шевелил, да и вообще не очень понимал, для чего ему сдалась эта программа, однако под давлением сверху всё время капал мне на мозги фразой «когда будет готово?»
В один день моя расшатанная дебаггингом нервная система не выдержала — в ответ начальнику отдела была выдана фраза, после которой он долго боялся меня о чём-либо спрашивать:
— В данный момент прикладное программное обеспечение для сбора информации через коммутируемый канал оператора телефонной связи находится на стадии отладки программного кода, вследствие чего работоспособность его ограничена и полноценное функционирование не может быть обеспечено. В данный момент нашими специалистами ведётся работа по нахождению несоответствия в работе программного кода — как только данная проблема будет решена, я обязательно поставлю Вас в известность.
У мобильных игр иногда появляются моды — невероятно, но факт. Чаще всего моддеры меняют графику, оставляя уровни без изменений. Например: Игра наподобие King's Bounty — Heroes III Mobile. Средней руки платформер — «Петька и Василий Иванович спасают галактику».
Хотя мод — это признак любви к игре, начальство с моддерством борется, как с пиратством. Понять его можно: корявая моддерская графика (а тем более плагиат из других игр) дискредитирует контору. Впрочем, бывают моды и не такие.
Однажды нашу игру (полустратегию, полу-RPG) перевели на китайский. Впечатляет один только список препятствий, стоявших перед хакером: 1. В игре тексты выводились самодельным шрифтом (не столько для красоты, сколько для технологичности). Все операторы вывода моддер старательно заменил на стандартный шрифт телефона. Выглядело это, конечно, коряво, дизайн окошек «поплыл» — впрочем, китайцам лучше знать. 2. Тексты были в собственной однобайтовой кодировке — он добавил второй текстовый ресурс, написанный Юникодом. 3. Программа обфусцирована, а у картинок обрезаны заголовки. Исходников у него, конечно же, не было.
Начальство попыталось пресечь и такое моддерство - впрочем, резонно остановилось. Такого хакера, надо полагать, не остановят никакие преграды.
Однажды я проходил собеседование на должность программиста. HR-менеджер в числе прочего спросила: «Как вы начали программировать?» Никогда об этом не задумывался, но всё-таки вспомнил.
В самом начале девяностых я учился классе в пятом и захотел себе компьютер для игрушек. Жили мы в то время небогато, родители такую покупку бы не потянули — на компьютер копил я сам, долго и упорно подрабатывая по мелочи.
Наконец красавец-компьютер был куплен. 48 Кбайт ОЗУ и процессор Z80 — это был всем известный ZX Spectrum. Подразумевалось, что дисплеем должен служить телевизор, а в качестве внешнего накопителя использоваться кассетный магнитофон. Вооружившись паяльником, к телевизору я «спектрум» подключил , а вот с магнитофоном повезло меньше — его не было. Свовсем.
Все игры были записаны на кассеты — загрузить их было нельзя, а играть-то хотелось. Пришлось писать игрушки самому — совсем простенькие, зато свои!
Каникулы теперь у меня выглядели следующим образом: полдня пишу игру, полдня играю, а вечером мама, вернувшись с работы, вырубает машину и тем самым уничтожает все труды. Следующим утром цикл повторялся.
Если же я не успевал дописать игру или результат выходил уж очень интересным, листинг «сохранялся» на бумагу при помощи ручки и с утра набирался заново. Частенько я замечал, что процесс написания стал интереснее самих игр!
Когда я был молод и горяч, довелось мне поработать админом-эникейщиком.
Рабочий день в разгаре, я беру очередной уровень в «линейке». По законам жанра в кабинет заходит начальник — подполковник в отставке — и застаёт меня за этим недостойным занятием.
— Ты не опух ли на работе в игрушки играть? — Вроде всё работает, проблем нет, чем ещё заниматься? — Работать!
Вроде и не поспоришь, но меня вдруг пробирает:
— Знаете ли вы, за что платили врачам в древнем Китае?
Босс безмолвствует.
— За здоровых пациентов. В конце месяца каждый больной уменьшал жалованье доктора.
Я думал, что увольнение неизбежно, но в итоге получил солидную прибавку к окладу и внеплановый апгрейд рабочей машины.
В далёкую эпоху всемогущего ассемблера для программирования активно использовались перфокарты. Недавно я с удивлением узнал, насколько нестандартное применение нашли им студентки.
Когда в карте пробивали отверстия, оставалось большое количество маленьких прямоугольничков. Модницы-программистки при помощь иголок и пинцетов аккуратно выкладывали картонными «битами» узоры на ногтях, а затем фиксировали рисунки лаком.
В школьные годы, помню, проводили у нас олимпиаду по программированию. Меня, как самого продвинутого, послали на нее. В то время о VB и Delphi никто и не знал почти, поэтому программирвали на Паскале и QBasic'е. Задачи все были сложные, и очень небольшой процент людей смог сделать хоть что-то... Но я смог. Одну задачу.
Суть ее состояла в том, чтобы загрузить из текстового файла матрицу — модель лабиринта, в которой цифрами обозначались стены, пустые пространства и начальная позиция, и выяснить, есть ли из него выход. Предполагалось, что программа должна виртуально "пройти" этот лабиринт, возвращаться из тупиков и следить за тем, чтобы не войти в цикл. Я же сделал проще — нарисовал этот лабиринт на экране, в начальной позиции сделал операцию заливки, а вне границ рисунка — операцию считывания цвета с экрана. Если лабиринт замкнут, заливка не выходила за его пределы, если же выход имелся, заливка распостранялась на весь экран и оператор считывания цвета возвращал значение ее цвета.
До сих пор помню смех моего учителя, который рассказывал про офигевшие лица организаторов, открывших посмотреть текст программы и увидевших 10 банальных строк кода. За одну лишь эту задачу присудили 6 место.Вот оно — нетрадиционное мышление.
После института я переехал к себе в квартиру и перевез туда компьютер, подаренный мне вскладчину на день рождения.
Понадобилось мне распознать стопку документов. Сканера у меня не было, зарплаты тоже. Вспомнил вдруг, что для работы телефона необходимо только лишь напряжение в линии, разве только гудка не будет.
Я выпросил у отца старый факс, у его коллег попросил два севших аккумулятора от бесперебойника. На компьютер я поставил VentaFax, подключил кабель к батареям, соединив факс и модем ZyXEL.
Итог: в программе жмем «прием факса», на факсовом аппарате начинаем передачу, предварительно загрузив лист с текстом. Через несколько секунд получаем копию в компе, которую можно распознать Файнридером.
Кстати, как принтер этот факс тоже работал, только операции уже производились в обратном порядке...