Работаю системным оператором в одной из организаций в сфере энергетики. Откомандирован в одну из ведомственных «испытательных лабораторий», назовём её так. К нам (точнее к ним, в лабораторию) прислали «не имеющий аналогов» забугорный прибор, который планируется использовать для «более экономичных расчетов повышения коэффициента эффективности энергоресурсов». Дескать, нынче кризис, надо изыскивать внутренние резервы.
Прибор мало того, что западный, так еще и в британской системе мер: фунты на квадратный дюйм, галлоны в час и прочие прелести. Меня попросили сделать программу, которая бы переводила величины от них к нам. Как всякий человек, я изрядно ленив. Пересчитывать всё лично мне было лень, поэтому на себя я оставил лишь написание программки, а вот сами коэффициенты решил позаимствовать. Я знал, что у моего коллеги, оставшегося на основном рабочем месте, есть таблица, в которой есть формулы по переводу любых величин друг в друга. Лезу в инет — облом, местный провайдер проводит «отключения электричества для экономии электричества». Достаю сотовый, уже находясь в готовности к длительному разговору по уточнению цифр (мой коллега — изрядный педант и имеет привычку отвечать именно на тот вопрос, который ему задали, даже если вопрос был поставлен неверно):
— Дружище, выручай, как кубические дюймы в литры перевести? — Дели на 61, будет приблизительный результат. — Мне не надо приблизительно, мне надо точно! — (вздыхает) Тогда дели на 61,023744094732284.
Работаю я специалистом по юзабилити, то есть слежу, чтобы программисты о пользователе не забывали. Каждый экран должен быть удобным и понятным — только в таком случае юзеры потом разработчиков не будут материть.
На работе Супер-Срочный Заказ. Домой приезжаю только поспать, и то ненадолго — использую для работы каждую минуту. А поскольку езжу на работу на поезде (Хайфа — Тель-Авив), то работаю и там.
В тот день, как назло, села батарейка в компьютере. Но не могу же я просто так целый час в окошко смотреть! Достаю бумагу, карандаш... Схемы экранов — не код, их можно и на листочке набросать. Сижу, рисую, концепцию навигации продумываю, экраны на логические зоны делю. Вот только подспудный страх мучает: «А вдруг сотрётся? Как же это я не сохраняюсь?» И тут же одёргиваю себя: «Как не сохранится? Это же бумага!» Но всё-таки беспокойство остаётся.
Зачем против своих инстинктов идти? Дорисовал в верхнем левом углу иконку «Сохранить». Хорошо вышло, похоже. Еду дальше, работаю, периодически на дискетку пальцем жму. Правда, некоторые пассажиры с удивлением мне через плечо заглядывают. Ну и пусть заглядывают — душевное спокойствие важнее!
Был у нас в регионе небольшой сотовый оператор, где я и трудился. Ныне это филиал большого и гордого предприятия. Занимался я там многими вещами, но любимой «игрушкой» был находящийся в подчинении SMS-центр. Больших программ я никогда не писал — работа была несколько иная, но вот мелких скриптов я настрочил массу. Про один из них и хочу рассказать.
Два-три десятка строк на перле и вуаля — пользователи интернета могут отправлять SMS друзьям и родственникам с нашего сайта (не более 10 в сутки с одного IP). Написал, запустил и забыл. Через несколько месяцев начали поступать жалобы на спам в наш колл-центр. Абонентов донимала некая Лена, которая просила закинуть ей на номер 300 рублей.
Можно было бы добавить капчу на сайт, но делать это было лень. Я немного поколдовал над скриптом и с божьей помощью в регулярных выражениях научил скрипт выбирать из массы сообщений отправленные Леной и подменять номер получателя на номер попрошайки.
Сел наблюдать. Лена опять отправила сообщения нашим абонентам с просьбами помочь материально. На месте барышне не сиделось — SMS были отправлены с тридцати разных IP-адресов. На следующий день ситуация повторилась. На третий тоже. На четвёртый Лена, видимо, включила телефон, чтобы посмотреть на улов, и получила несколько сотен входящих.
Несколько дней была тишина, но где-то через неделю напасть началась снова — немного поменялся текст сообщения. Мой скрипт был начеку — он способен был разобрать символы «0», «I», «Б» вместо нуля, единицы и шестерки в номере телефона, не говоря уже о подмене русских букв латинскими аналогами. Леночка сопротивлялась недолго и вскоре ушла искать счастья на сайтах других операторов, о чем я узнал из сообщений на их форумах.
Война окончена. Враг посрамлён, абоненты успокоились, мы довольны.
В школьные годы я частенько участвовал в холиварах «FAR против Total Commander». Мне всегда больше нравился FAR, но у «Тотала» тоже было довольно много сторонников. В конечном счете оказалось, что без плагинов пользоваться невозможно ни тем, ни другим, а многие плагины совместимы. Получается, что в общем-то разницы никакой, а дело сводится к разнице в GUI. Однако произошел-таки один случай, в котором FAR мне помог, а сторонники «Тотала» спасовали.
Дело было во времена Windows 98. Как-то раз, объясняя знакомому, как настраивается разрешение, я поставил такие параметры, которые мой монитор заведомо не выдерживал, и нажал кнопку «Применить»:
— Смотри, если ты что-то сделаешь не так, то через 10 секунд...
Ни через 10 секунд, ни через минуту картинка не появилась. Я нажал Reset, надеясь, что настройки висят где-нибудь в памяти. Комп загрузился, но разрешение осталось неизменным — экран продожал издевательски показывать табличку «No signal». Я перезагрузился в безопасный режим — 640х480, обратно — всё как раньше.
Решение проблемы нашлось само собой. Как наиболее часто запускаемое приложение, FAR висел на хоткее. Жму комбинацию, открывается окошко. Правда, я этого не вижу, но какое мне дело до такой мелочи? Alt+Enter, и файл-менеджер переходит в полноэкранный режим, в котором разрешение от настроек системы не зависит. Я нашел файл с описанием реестра, открыл его по F3, нашел нужный ключик, скопировал параметр, закрыл редактор, открыл плагин для правки реестра, внёс изменения и запустил перезагрузку, после которой все заработало.
Вот так-то! «Тотал» ваш переходить в полноэкранный режим не умеет.
Работаю в компании, разрабатывающей ПО для восстановления баз данных. Запускали мы новый продукт. После очередной крупной сборки отослали копию московскому начальству — посмотреть и попробовать. Через пару часов приходит ответ:
Запустил программу. GUI простой и понятный, всё нормально. Взял три базы, попробовал восстановить. На двух программа просто завалилась, на третьей выдала message box с таким текстом (скриншот прилагаю):
Shit happens. Keep smiling!!!
Не знаю, что и думать...
В тот день разработчики надолго остались на работе.
Устанавливаю программу для проверки знаний английского языка. Программа хорошая, лицензионная, но после третьего шага вдруг матюгнулась и заявила что-то вроде: «Работать не буду пока не установишь поддержку проигрывания файлов типа WAV. Систему, обнови, вот потом и поговорим».
Ось — Виста, железо хорошее, все кодеки стоят. Почесал голову, пошел к Биллу. Рылся, все обновления скачал, кодеки переустановил — всё ништяк, писюк любые хитрозакодированные фильмы читает, а тут какой-то элементарный формат не поддерживается!
Мучился ровно полдня. Перекопал весь установочный диск, WAV-файлов не нашёл. Тут меня осенило! Сунул наушники в разъем; вуаля — установщик тут же всё оформил в лучшем виде.
Все сообщения об ошибках выводились на английском, и я не совсем правильно понял, что имелось в виду. Впрочем, первый экзамен на знание языка я прошел успешно — хоть и, так скажем, с пересдачи.
Писали с другом программу для автоматизации процессов печати приложений к диплому в одном из учебных заведений. Делали быстро, но на совесть, и в работоспособности были уверены на 150%. Сломаться или затереться ничего не могло в принципе.
Наконец настал момент долгожданной сдачи проекта. Заказчику программа понравилось, и все разбежались довольными. Через некоторое время вызывают: «Не работает, и всё тут».
Приезжаем, смотрим. Сбились поля. Текст должен быть посередине, а на деле съезжает вправо. Долго думали, что могло повлиять на это. Перерыли весь код — не нашли ничего. Решили проверить в режиме дебага, что может вызывать такие неполадки — всё работает как швейцарские часы. Ступор. Совершенное непонимание. Проверяем несколько раз, ответ очевиден: программа исправна.
Едем на место и просим показать, как сотрудники заполняют формы. Результат не заставил себя долго ждать: девушка-секретарь, стуча ногтями по пробелу, вручную сдвигала текст на середину экранного поля. Понятно, что при печати текст выравнивался по середине с учётом пробелов. Интересуемся у дамочки:
— Зачем вы это делаете? Ведь в инструкции написано, что при печати текст будет отформатирован автоматически. — Инструкция — это вредная бумажка, которую читают законченные ламеры!
Хуже дурака только дурак с инициативой. Пришёл в кабинет решать проблемы с принтером. Пока я ковырялся в недрах машинки, сидевшая рядом девушка спросила меня, почему ворд подчёркивает некоторые слова волнистой линией.
Объясняю, что бывают слова, о которых программа не слышала, и их надо добавлять в словарь вручную. Через некоторое время приглядываюсь — девушка печатает с потрясающим количеством грамматических ошибок ( про пунктуацию вообще молчу). Ворд изо всех сил подчёркивает ошибки, но девушка упрямо и настойчиво кликает на каждом слове «Добавить в словарь».
Проводил я инвентаризацию ИТ-хозяйства в конторе. Для учёта составил экселевскую табличку, в которую вбивал наименования всех матценностей вместе с их инвентарными номерами. Процесс трудоёмкий — очередь запаса мышек подошла только ближе к ночи. Закончились разнообразные модели Logitech, и я добрался до Genius. Их у нас была только одна разновидность, так что я один раз вбил название NetScroll PS/2 и, растянув на нужное количество полей, отправился спать домой.
На утро прихожу, окидываю свежим взглядом табличку и вижу такую картину: