habrahabr

Первоапрельская шутка, из-за которой меня едва не уволили

  • пятница, 4 апреля 2025 г. в 00:00:16
https://habr.com/ru/articles/896792/

Каждый хотя бы раз в жизни должен устроить одну великолепную шутку. В этой статье я расскажу о своей (кажется, срок исковой давности уже прошёл). История правдива, вырезаны только имена, чтобы защитить виновного.

На своей первой работе после колледжа я был программистом баз данных, несмотря на то, что мой диплом никак не был связан с компьютерами, да и сегодняшняя профессия тоже. Причина заключалась в том, что университет, в котором я работал, не мог предложить конкурентоспособную зарплату, но имел различные неденежные бонусы, плюс они готовы были обучать любого, обладавшего достаточными для работы знаниями. Я, только что выпустившийся студент Университета Калифорнии, вполне освоил работу как минимум с BSD/386 и SunOS, и, что более важно, имел отличные рекомендации от своего предшественника, получившего повышение. Меня наняли, и это стало их первой ошибкой.

Я должен был работать с HP 9000 K250 — одним из крупных серверов Hewlett-Packard PA-RISC. К сожалению, у меня не сохранилось фотографий, лишь пара некачественных сканов полароидных снимков моего офиса. Серверная находилась этажом ниже моего офиса, на двери стоял открываемый картой замок. K250 стоял там, позже его заменили на какую-то модель Encore mini (вероятно, на Multimax, потому что ему было уже несколько лет, а Encore 88K оказались бы слишком новыми для университета) и AIX RS/6000, работавший со студенческими и факультетскими шелл-аккаунтами и почтой; ещё там были линии T1, несколько терминальных серверов, огромные маршрутизаторы Cabletron и множество телекоммуникационного оборудования. Одна из катушек с лентой Encore до сих пор висит на моей стене как память.

K250 и заменивший его Encore (а также L-Class, который позже заменил K250) управляли полнофункциональной студенческой информационной системой CARS. CARS по-прежнему используется, теперь под названием Jenzabar, однако подозреваю, что многие её внутренности остались прежними. В те времена CARS была огромным оверлеем, загружавшимся поверх операционной системы и базы данных; когда я приступал к работе, это были HP/UX 10.20 и Informix. (Да, я древний.) В ней использовались таблицы, экраны и хранимые процедуры Informix, плюс собственные библиотеки текстового UI для выполнения кода, написанного ранее в виде экранов Perform, SQL, скриптов C-shell и старого доброго C или ESQL/C. Всё отслеживалось в RCS при помощи разросшихся Makefile. Я занимался администраторской частью (управлением ресурсами, финансовыми делами, трекерами посещения занятий и так далее), а мой коллега по офису — научной стороной (в основном оценками и факультетами). Моя работа заключалась в написании и поддержке этого кода, а вскоре я занялся и помощью университету в создании приложений в новом веб-модуле CARS, для чего был выбран новый популярный скриптовый язык Perl. К счастью, я достаточно хорошо изучил Perl в рамках курса компьютерной лингвистики.

CARS также управляла большинством принтеров кампуса, за исключением тех, которые напрямую контролировал RS/6000. В основном администраторскими принтерами кампуса были какие-то модели HP LaserJet 4, оснащённые сетевыми картами JetDirect. Это хорошие «рабочие лошадки», одни из лучших лазерных принтеров HP. Подозреваю, в других местах стояли и построчные принтеры, но в офисах университета по большей мере использовались HP.

Оказалось, что сообщение READY («Готов»), отображаемое на VFD-панелях этих принтеров, можно было менять. Не помню, откуда я узнал об этом, вероятно, перелистывая руководство по эксплуатации во время обеда. Первой забавной шуткой, которая пришла мне в голову, стало отображение приветствия моей начальнице, когда она отправляла на принтер задачи. Но потом меня осенило: так как у меня был доступ к спулам принтеров на K250, а папки спулов были удобно названы по именам хостов, я знал, в каком месте кампуса находится каждый сетевой LaserJet. Я был молод, горяч и мотивирован. Я не мог удержаться от этого хака. Это будет даже лучше, чем моя любимая шутка: в моей альма-матер сервисы кампуса, публиковавшие уведомления о временных ограничениях работы сервисов, однажды 1 апреля сообщили, что в некоторых корпусах будет временно отключена гравитация. Я был уверен, что мой хак превзойдёт этот розыгрыш.

Я планировал 1 апреля прийти на работу очень рано и для каждого принтера в буфере поменять сообщение «Готов» на «Вставьте 5 центов». Показалось бы, что каждый сетевой LaserJet в кампусе просит денег для печати. Скрипт был очень простым (это реальный скрипт, я сохранил его):

#!/bin/csh -f

cd /opt/carsi/spool
foreach i (*)
        echo '^[%-12345X@PJL RDYMSG DISPLAY="INSERT 5 CENTS"' | netto $i 9100
end

^[ — это литеральный 27-й символ ASCII ESCape, а netto — простой похожий на netcat скрипт, который я написал в те времена, когда netcat ещё не использовался так широко. Вот и всё. Уточню, что принтер по-прежнему оставался готовым к работе. Изменение было исключительно косметическим! Если отправлять на принтер задачи, то он печатал бы. Тем не менее, чтобы дополнить шутку, я отправил сообщение в администраторскую рассылку кампуса (текст я тоже сохранил):

To: xxx@xxx.xxx
Date: xxx, 1 Apr xxxx 05:41:34 -0800 (PST)
Subject: ВАЖНОЕ СООБЩЕНИЕ О ПОЛИТИКЕ ИСПОЛЬЗОВАНИЯ ПРИНТЕРОВ

Из-за увеличившихся затрат на содержание принтеров кампуса
все принтеры в кампусе будут перепрограммированы на постраничную оплату
для оплаты этих выросших расходов. Изменение вступает в силу незамедлительно.

Большинство принтеров будет требовать по 5 центов за каждую печатаемую страницу.
Оплата возможна на счёт или через специальные монетоприёмники на корпусе устройства,
которые установят техники к концу недели. Если для вашего офиса ещё не создан
счёт, то принтер автоматически будет запрашивать вставить 5 центов
за каждую печатаемую страницу. Чтобы узнать, требует ли ваш принтер 5 центов,
взгляните на его ЖК-дисплей перед использованием принтера.

На дополнительные принтеры платёжное оборудование будет установлено в кратчайшие
сроки. Техники сообщат отделам конкретные подробности.

Все счета будут управляться системой CARS. Не следует звонить в службу поддержки.
Для создания или проверки аккаунта принтера своего отдела звоните мне по номеру
xxxx.

Со всеми вопросами тоже обращайтесь ко мне.

Мы просим прощения за возникшие неудобства и надеемся, что новое требование оплаты
не повлияет отрицательно на продуктивность вашего отдела.

В конце дня я бы снова вернул все надписи READY, самодовольно улыбнулся и продолжил своё жалкое существование. Таким был план.

Отправив рассылку, я получил несколько звонков от раздражённых сотрудников, которые громко рассмеялись, узнав о шутке, после чего я вручную вернул их принтеры в исходное состояние. Мои знакомые знали, что я люблю шутить, посмотрели на календарь и выразили одобрение. Лучший из ответов был отправлен в тот же день почтой кампуса — это была распечатанная на лазерном принтере страница с приклеенной скотчем пятицентовой монетой.

К сожалению, не все в кампусе знали меня, и кто-то не стал звонить мне, а сразу связался с администрацией университета. К 8:30 в главном офисе начался хаос, а информация дошла до главы отдела HR, который, скорее всего, не знал меня, и сказал, что мне лучше как можно скорее разослать опровержение, пока письмо не прочитал финдиректор, и я не попал в большие неприятности. Но с этим тоже всё пошло не совсем так, потому что в моём опровержении говорилось, что администрация кампуса не рассматривает возможность постраничной оплаты, хотя, как оказалось, они об этом думали. Поэтому мне пришлось опровергнуть опровержение, чтобы не привлекать внимания к этому факту. Кроме того, мне пришлось раньше запустить откатывающий изменения скрипт. Где-то к полудню шумиха утихла. Все в офисе посчитали, что это было очень смешно. Даже моя начальница, официально выразившая недовольство, думала, что это довольно забавно.

Как будто этого было мало, возникла и ещё одна проблема — директор отдела ИТ (начальник моей начальницы) в то время находился в отпуске. (Читать почту удалённо? Да кому это нужно?). Я усугубил ситуацию, уехав кататься на лыжах на следующие выходные и часть недели. И когда он прочитал кучу разгневанных писем, меня рядом не было и объясниться я не мог. (Мой коллега по офису вспоминал, что директор зашёл с широко раскрытыми глазами и спросил: «Что он натворил?») Когда я вернулся, обстановка в офисе была холоднее, чем на вершине горы, с которой я катался. Помощник директора, посчитавший мою шутку смешной, попал в неприятности из-за того, что не положил ей конец, а я был в ещё большей беде. Я глубоко покаялся, принёс множество извинений и после этого на неестественно долгий промежуток времени стал образцовым сотрудником, что для меня было нехарактерно.

Ледниковый период наконец закончился, а инцидент был официально исчерпан, если не считать нелестной характеристики при моей следующей аттестации и удовлетворения от лучшей шутки, когда-либо провёрнутой в кампусе. Даже годы спустя люди говорили, что она была легендарной.

Мне нравится думать, что они и сейчас так считают.