В нашей компании для разных нужд применяются виртуальные машины. Коллега создал набор программ, облегчающих работу с этими машинами. Была устроена презентация новшества для руководства и заинтересованных лиц.
Представьте: пафосный конференц-зал, большой экран, в первом ряду высокое руководство, партнёры, гости; сзади толпа сотрудников. Коллега говорит вступительные слова, открывает во весь экран виртуальную машину и запускает под ней что-то из своих разработок.
Пауза. Запущенная программа выдаёт сообщение об ошибке и захлопывается. Через несколько секунд виртуальная машина подвисает и тоже закрывается. Ещё несколько секунд консоль управления этими машинами застревает намертво. Бедный сотрудник пытается реанимировать консоль, но на экран массово выпадают уведомления об ошибках разного калибра. В конце концов основная ОС перестаёт отвечать на устройства ввода, жужжит диском и вываливается в синий экран.
В конференц-зале — продолжительная немая сцена. Наконец виновник торжества с энтузиазмом произносит:
Скачал я недавно с просторов глобальной информационной некую программку, позволяющую качать со всяческих файлообменников без ожидания и ввода «капчи». Сую этой штуке ссылку с «рапиды» — она определяет размер файла и предлагает тотчас же скачать. Не чудо ли для человека, обладающего серым айпишником?
Пока файл лился, я открыл readme, решив изучить список возможностей. Начинаю замечать, что при переключении между задачами окна отрисовываются медленно, да и музыка заикается. Запускаю диспетчер задач — мама дорогая, процессор загружен на 100%! Ну ладно, думаю, может, скрипт какой выполняется хитрый. Оставляю программу работать.
Через некоторое время файл скачивается, открываю rar'ом — битый архив. При пристальном осмотре оказалось, что размер файла совпадал с тем, что я ожидал получить, а вот содержимое состояло из повторяющихся фраз:
Error: You want to download the following file: xxxxxxxx.rar Your IP address xx.xx.xxx.xx is already downloading a file. Please wait until the download is completed.
Некогда я работал в компании-разработчике мобильных игр. Для очередного проекта нам потребовался универсальный редактор уровней для ускорения процесса. Писать взялся главный специалист по WinAPI. «Нафаршировал» он редактор по полной: многовкладочные стыкующиеся панели инструментов а-ля Photoshop, сплэш-картинка красоты неимоверной, нарисованная главным художником, и всё в таком духе.
В один прекрасный день кто-то из программистов написал ещё один редактор, до ужаса корявый, и... все дизайнеры в одночасье переметнулись на него. Очевидно, «фотошоп в миниатюре» их не устраивал. На вопрос, что же не понравилось творцам в старом редакторе, дизайнер показал мне меню с пятью пунктами: «Тайлсеты», «Тайлсет», «Тайлтип», «Тайлики», «Тайлик».
В начале двухтысячных админил я в ХХХ-банке. Среди прочих была у нас программа «Обменный пункт», знаменитая тем, что она никогда не ломалась. Программка была проста донельзя — оператор с утра вводил дату и курс, весь день продавал валюту, а вечером печатал отчет.
И вот однажды мне сообщают из дальнего обменника, что программа наконец сбойнула — они вводят правильный курс, но компьютер «продаёт по-вчерашнему». Беру машину, еду на точку, ввожу правильный курс — шестнадцать, что ли рублей — прога продает по 15,70. Смотрю базу — все записи нормальные, что сегодня, что вчера. Меняю экзешники и библиотеки — нет результата. Начинаю дебаггинг — дохлый номер, откуда-то из базы вырисовываются 15,70, хоть ты тресни.
Осеняет меня часа через три. Отсортировав базу по дате ввода, нахожу, что курс введён на 24 июля 2024 года. Программа честно выбирала запись с самой новой датой... Провожу допрос — никто не колется, оператор божится, что вводила всё верно.
Ещё несколько манипуляций с базой показали, что неправильный курс ввели аж три недели назад. Всё это время обменник работал по жёсткому курсу то в плюс, то в минус родному банку, и никто этого не заметил. Ох, и крику-то было!
Как-то недавно наша секретарша, милая глупенькая девочка, подошла и попросила поставить на её рабочую машину фотошоп. У меня с ней отношения хорошие, поэтому я, решив не нагружать её нравоучениями про гвозди и микроскопы, установил ей GIMP.
Неделей позже я краем глаза заметил, что на её мониторе вместо привычных и незатейливых виндовых картинок появилось что-то интересное. Подхожу поближе и вижу фотографию с участием нашей красавицы и Ричарда Гира. Более того, натренированный на тысячах плохих «фотожаб» глаз не сразу отрапортовал, что это коллаж! На вопрос «Как тебе такое удалось?» девушка, засмущавшись, достала с полки книгу «Самоучитель Photoshop CS2».
До сих пор не понимаю, как юное создание, достающее меня по всякой мелочи вроде отключенного нампада, разобралось с непростой программой на английском языке по книжке про совершенно другую программу на русском!
Дело было году в 96-м. Администрировал я тогда сеть одной торговой фирмочки. Обороты росли, потребовалась мощная база данных, и начальство нашло двух крутых специалистов, которые взялись разработать требуемый продукт. С утра на пороге появились эти корифеи и сходу обругали всю мою сеть: компьютеры не те, коаксиал (может, помнит кто?) проложен не по правилам, и так далее. Посетовали ещё немного на нашу техническую необеспеченность и взялись писать базу.
Проходит пара месяцев, вызывает меня директор и начинает осторожно выспрашивать, сколько получают в Москве программисты. Я, естественно, интересуюсь, в чём же дело. Выясняется, что крутые базописатели изначально запросили за работу $15000, но, получив эту сумму и немного поработав, потребовали еще $3000: «Работа мудрёная — добавить надо...» Начальство задумалось, но добавило.
Наконец, база была запущена в эксплуатацию, и немедленно полезли глюки и баги. Естественно, менеджеры начали звонить мне. Я пошел к начальству прояснять ситуацию:
— А почему нельзя обратиться к авторам базы? — Они требуют $100 в час за поддержку. — А вы в договоре прописали порядок проведения и оплаты пусконаладочных работ? — Мы с ними договор не заключали. — А где описание базы и инструкция по эксплуатации? — Они ничего не оставили...
Тут грянула деноминация 1997 года — убирали лишние три нуля с денежных купюр. Естественно, потребовалось эти нули убрать во всей базе. Начальство звонит создателям — в квартире теперь живут другие люди, на призывы по пейджеру никто не отзывается, а сотовые телефоны тогда ещё были не в ходу.
Подоспел дефолт. Фирма обанкротилась, и модернизация базы потеряла актуальность. Через пару лет на одном из старых компьютеров я случайно обнаружил исходники знаменитой базы. К тому моменту я уже разбирался в этих вопросах гораздо лучше, и решил, наконец, посмотреть, на что потратили больше 18 килобаксов. Что же я обнаружил? Одну из первых версий 1С с незначительной правкой!
Вспомнил я на днях, как однажды устроился на работу сисадмином. Для начальника не было понятия «сисадмин» и «IT-аутсорсинг» — в штат он непременно хотел программиста. Подход к приему на работу был необычным; собеседование он превратил в тест: «Удивишь меня через два часа — работа твоя!»
Заприметил у начальника на рабочем столе Оперу, я расспросил, как он ей пользуется и зачем, и получил четкий ответ: «Это Интернет».
Удостоверившись в уровне компьютерной грамотности руководства, я час плевал в потолок, пока качал Delphi, а за следующий час по скриншотам норвежской программы на компоненте TWebBrowser набросал свой обозреватель. Начальник всё это время сидел рядом и следил, чтобы я литературой (конечно же, бумажной) не пользовался, а руководствовался своими знаниями — отдельное спасибо Гуглу!
Через два часа начальник со словами «Время вышло!» взглянул на экран монитора, и, узрев знакомые черты, побежал всем рассказывать про нового сотрудника, который за два часа «написал Интернет».
Отличия от Оперы у моего недобраузера были существенные — всего одна вкладка, но и этого хватило, чтобы заставить «свой собственный Интернет» работать.
Говорят, у вас в России погрузчики автоматические котиков засыпают, а тележки склад разносят? А я вот уже два года как переехал в США и работаю в правительственной организации — не то что бы очень крутой программист, но учусь быстро. Наша группа занимается системами наблюдения и обнаружения беспилотников типа Global Hawk. На днях на рабочем форуме опубликовали знатный багрепорт.
На полигоне машина должна была в автоматическом режиме найти командный центр вероятного противника и уничтожить его ракетно-бомбовым ударом без участия человека. Поставили палатку, пару генераторов, несколько старых компьютеров, радиостанцию — всё работает, изображая командование противника. Hawk заводят по телеметрии в зону учений, отдают бортовым системам управление и наблюдают. Через 20 минут машинка находит цель и отсылает на землю лог:
— Цель обнаружил. — Выхожу на траекторию атаки. — Вышел на траекторию. — Готовлюсь к атаке.
Тут наблюдательная группа, которая тоже находится на полигоне понимает: что-то пошло не так. Координаты Global Hawk и «штаба противника» не совпадают! Нawk продолжает бодро рапортовать:
— На цель вышел. — Атаку произвёл.
Наблюдатели, сидевшие в быстровозводимом здании-ангаре, едва успели услышать свист реактивного двигателя, как потолок проломила 200-килограммовая болванка, призванная изображать авиационную бомбу. Оказывается, умная бортовая электроника обнаружила и цель, и наблюдателей, после чего решила, что несколько десятков мощнейших компьютеров и спутниковый передатчик — более лакомая цель, чем комплект антиквариата в палатке.
Весь персонал группы наблюдения молился Богу, что «Ястреба» вооружили простой болванкой, а не бомбой. Я только улыбнулся — главный инженер по вооружению, убедивший начальство не использовать настоящий боекомплект, по происхождению оказался русским.
Помнится, где-то полгода назад у нас на информатику пришло слишком много народу, поэтому компов на всех не хватило — за некоторыми машинами сидело по два человека. Мы с другом оказались в числе таких «парочек». Могли ли мы знать, что досталась нам одна из самых тормознутых машин?
Сначала это чудо выдало ошибку о том, что падает сеть. Мы попытались его перезагрузить, комп вырубился, а включаться ни в какую не хотел. Грузили и в safe mode, и в «последней удачной конфигурации» — безрезультатно. Наконец минут через двадцать мучений железный ящик соизволил работать.
Приступили к заданию. Я двигал мышкой, друг стучал по клавиатуре. Через четверть часа была готова только половина задания, но устройство зависло, не реагируя на внешние раздражители. Конечно, мы не сохранились, но учительница, проникшись чувством сострадания, разрешила нам сдать эту половину проекта.
Минут через десять информатичка отправилась по классу оценивать результаты. Она пристально смотрела на каждый монитор и что-то записывала в блокнот. Когда до нашего компа ей оставалась всего пара метров, случилось самое страшное: винда запустила скринсейвер. Чёрный экран с бегающим логотипом информатичка за задание, к нашему горю, не приняла.