Только что мне звонил на мобильный какой-то программер из Германии и начал рассказывать на плохом-плохом русском, что нашёл древний пост на форуме GotDotNet, где я выкладывал один исходник на C#. Насколько я понял, парень сейчас пишет такую же штуку на Java и просит моей помощи.
По нику немец нашёл мой standalone-блог, который я не обновляю уже полтора года, оттуда по ссылкам вышел на сайт моего работодателя, а от него узнал номер моего сотового.
Вот вам и анонимность в интернете! А парню я, конечно же, помогу.
Дело было в июле прошлого года. Привлекло. Подловили. Клюнул на посулы как зелёный тинейджер — купил-таки журнал «CHIP Россия», поверив большой надписи на обложке: «Подарок». Кто виноват? Ну конечно же, Владимир Иванович Даль, со своим живым великорусским определением этого слова.
«Дарили», конечно, не сам журнал. Обложка «Чипа», стоящего на витрине газетного ларька, гласила, что на прилагаемом к журналу диске DVD наличествует подарочный MS Office 2007. Ну, а что, сто тысяч экземпляров журнала — капля в море желающих иметь новейший легальный «офис» по цене 110 рублей. Раздача слонов в рекламных целях за символическую плату.
Статья в журнале, повествующая о новинке, не внесла ясности, умалчивая и о подарке, и о цене. Оставался последний рубеж на подходе к истине — прилагавшийся диск. Аннотация расставила всё по местам: «60-дневная пробная версия». Ясно: корпорация дяди Билла считает подарком и великой милостью саму возможность постоять рядом со своей поделкой.
Казалось бы, можно было вздохнуть с облегчением — устоявшийся порядок вещей не дрогнул, акула капитализма вновь подтвердила свой статус. Однако же облегчения не ощущалось из-за явного кидалова со стороны не раз помогавшего в былые времена журнала.
Беглый просмотр номера окончательно поверг в философско-меланхолическое состояние, когда я увидел, какими смысловыми химерами стали травить неискушённого читателя. На страницах можно было встретить «стандартный настольный компьютер», процессорные сокеты «90», «70», «55» и страшную сказку про блок питания компьютера, который, «будучи не загруженным по максимуму, впустую сжигает киловатты». Видимо, по понятиям автора этого перла, БП компьютера мало отличается своим устройством от утюга.
Примета эпохи оголтелого маркетинга — деньги не пахнут, а продавец — молодец, ведь смог впарить гнилое суконце.
Брат заканчивал подготовку к диплому. Осталось только написать презентацию в Microsoft PowerPoint, демонстрирующую работу программы расчёта САПР. Для наглядного примера попросил через QIP скинуть знакомого его вариант — знакомый долго ломался, не желая делится кровно выстраданным продуктом интеллектуального труда, но выслал архив на 4,5 МБ.
Кое-как приняв на маленькой скорости архив, брат распаковал его и обнаружил, что на ноуте у него стоит 2003 версия MS Office, а присланный файл сохранён для 2007. Покорячившись и так, и сяк, он решил попросить меня попробовать открыть образец — как назло, у меня «пауэрпойнта» не оказалось вовсе.
Брат опять стучит товарищу и просит сконвертировать презентацию в формат 2003 — заодно и размер должен был уменьшиться. Тот лёгких путей не искал и выслал пакет обеспечения совместимости MS Office (тот самый FileFormatConverters.exe), который занимал 27,5 МБ.
Вот такая у нас молодёжь пошла — продвинутая, но ленивая. Хорошо, хоть интернет теперь безлимитный...
Был у нас в группе был мальчик один — программист до мозга костей. Что удивительно, не пил и не курил — мы над ним постоянно шутили по этому поводу. Поскольку жил юноша в общежитии, вечно такое продолжаться не могло — на третьем курсе мы напоили его водкой. Побежал Костя не к подругам, не в туалет, а к компьютеру. Оттащить от машины его мы так и не смогли. Только рукой махнули — пьянка продолжалась.
С утра Костян был обнаружен за компом. Он сидел, держась за больную голову, и бубнил себе под нос одну фразу: «Как же я это написал?..»
Будучи в совершенно непотребном состоянии, мальчик за ночь накатал курсовую по ассемблеру — базу данных со своей собственной реализацией файлового хранилища данных и графическим интерфейсом. Правда, в итоге он так и не смог разобраться, как всё это работало, но заслуженную пятёрку получил.
В 2002 году я работал автоматизатором в городском отделении пенсионного фонда. Где-то в апреле пришла из Москвы БД с данными пенсионеров-участников войны с графической оболочкой на Visual FoxPro. Задача: открыть в одном окне эту оболочку, в другом — нашу пенсионную базу и сверить данные по всем имеющимся пенсионерам: ФИО, адрес и ещё около тридцати пунктов.
Трудность в том, что пенсионеров в базе несколько тысяч, а интерфейс оболочки был написан в каком-то особо извращённом стиле. За давностью лет подробностей не помню, но для просмотра параметров нужно было нажать правую кнопку на фамилии, потом клавиш 5 на клавиатуре, а для перехода к следующему полю ещё какой-то хитрый аккорд.
Посмотрев на этот кошмар, я понял, что задача проста: надо лишь вытащить из нашей основной БД (благо, тоже написанной на FoxPro) необходимые данные по этим пенсионерам и поместить их в столичную базу. За пару часов пишу программку, дампящую из одной базы нужные поля и заливающие их в другую. Через двадцать минут, когда винчестер перестаёт шуршать, открываю московскую оболочку — всё отлично!
Отдаю работу начальству со словами: «Давайте остальным отделениям мой скрипт отправим, чего они зря мучаться будут?» В ответ получаю гневную тираду о том, чтобы и мыслей таких не было — ни в коем случае нельзя никому рассказывать о том, как у нас всё быстро получилось.
Потом я расспросил коллег из соседних отделений, как они справились с этой задачей. Все, кроме меня, стали строго следовать инструкциям Москвы и, потратив количество времени, прямо пропорциональное объёму БД, всё сделали вручную. В отделении с примерно нашим количеством пенсионеров работала пара айтишников: один смотрел в одну базу и читал записи вслух, другой сравнивал со второй базой и впечатывал отличия. Ушло у ребят на это две недели.
Как-то раз «попросили» меня срочно сочинить одну программку: с любого рабочего места нужно было получить возможность смены прошивки в мозгах одной из железяк нашего комплекса. Имелся один нюанс — для переключения из рабочего режима в режим программирования в разъём на железякиной морде вставлялся хвостик, оканчивающийся обычным двухпозиционным тумблером. Тумблер, естественно, никак не был промаркирован — положений-то всего два.
В то время я занимался большой красивой задачей, и отвлекаться на подобную фигню совершенно не хотел. Получившаяся в итоге программка была обозвана неприлично звучащей аббревиатурой, интерфейс имела весьма скромный, но работала. При старте программа проверяла, в каком режиме находится железка, и при необходимости выдавала лаконичное сообщение: «Щёлкни тумблером».
В один прекрасный день моему коллеге понадобилось загрузить новую прошивку. Он поинтересовался, что означает фраза «щёлкни тумблером». Я объяснил в двух словах. Какое-то время коллега меня не беспокоил, но чуть позже появился над моим столом с пунцовым лицом и вежливо, но громко вопросил: «Какого хрена? Ты что, издеваешься? Я уже полчаса щёлкаю этим @#$ным тумблером!»
Немало удивившись, я отправился на стенд, прихватив по пути одного из аппаратчиков. Причина «ужасного» глюка обнаружилась мгновенно — у тумблера отвалился один из проводков, так что можно было щёлкать им аж до судного дня. Но виноватыми, как водится, всё равно остались программисты.
Я уж думал, что совсем свихнулся. Моя числодробилка периодически показывает, какую итерацию она сейчас считает. Запустил, понял, что надо бы немного поменять алгоритм. Нажал Ctrl+C, поправил код, снова пускаю. Пишет:
а = -1 а = -0.9 а = -0.8 а = 0.3 а = -0.7
И почему же она на 0.3 скакнула, а потом вернулась обратно на –0.7 вернулась? Опять жму Ctrl+C, снова лезу в алгоритм, всё просматриваю — не может такого быть! Я этот код долго вылизывал, нечему там ломаться. Запускаю по новой.
а = -1 а = -0.9 а = 0.6 а = -0.8 а = -0.7 а = 0.7
Такого не может быть, потому что такого не может быть никогда! Я поиском по коду смотрел — переменная меняется только в строчке «for a = -1:0.1:1». Понял, в чём было дело, только когда появилось сообщение «запущенный в бэкграунде процесс завершён». Я случайно не прервал выполнение программы, а отправил её в фон, откуда она и посылала мне свои «приветы».
Работаю в небольшой компании программистом. Чаще всего мне приходится писать программки ленивым студентам.
В среду после обеда с сайта приходит заказ на курсовую. Собственно, работа не очень сложная, но указана куча дополнительных требований: какие конструкции использовать, как организовать хранение данных и так далее. В поле «срок выполнения» стоит «четверг, вечер».
Шеф, прикинув, заявляет: «Ну его, дольше требования читать! И так работы сейчас хватает — конец семестра, дипломы». Отправили заказчику ответ, что сроки слишком сжатые — не возьмёмся.
В четверг после обеда от студента приходит ещё одно сообщение: «Так уж и быть, можно до вечера пятницы».
Работаю в небольшой конторке, занимаемся поставкой различной съедобной продукции. Имеем две базы 1С: одна управленка, а другая чисто бухгалтерия. И так уж вышло, что директория с бухгалтерией находится в директории базы-управленки. Всё это бэкапится хорошей (на мой взгляд) программкой-бэкапером.
Спустя некоторое время пришлось переселить управленку на SQL, а бухгалтерию оставить, как было, в файловом хранении, в той самой папочке со старенькими файликами управленки. Настроили бэкапер на бэкап скульной базы и отключили бэкап старой, файловой базы, позабыв о работающей бухгалтерской.
Сегодня утром, главный бухгалтер что-то не то выгрузил и загрузил в свою базу. И, конечно же, сразу обратился ко мне, чтобы я восстановил свеженький бэкапчик. Но как только я понял, что речь идёт о той самой базе, которую удалил из задач бэкапера ещё неделю назад, я упал в осадок. Перед тем как расстроить бухгалтера, решил глянуть, за какое число есть последний бэкап. Как же велико было моё удивление, когда я увидел, что последний бэкап той самой базы был сегодня! Все счастливы, все рады.
Спасибо бэкаперу, что вовремя заглючил и продолжил делать свою работу несмотря на то, что правило уже давно было удалено.