Выбрать главу

Если в проекте используется сторонняя библиотека, её надо объявить дерьмом и написать свою. Если в проекте встретилась слишком простая функция — её надо обязательно переписать на ассемблере.

Если поставлена задача написать виндовую программу, то надо обязательно писать кроссплатформанный проект, довести до половины, а потом потом бросить поддержку парочки платформ.

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

Если можно прикрутить какой-то хак, специфичный для конкретного билда ОС или видеокарты, это сделать попросту обязательно.

Думаете, смешно? А я насмотрелся на поделки, где одновременно используется три самопальных класса для одних и тех же кнопок на тулбаре, три библиотеки для работы со строками и пять подпрограмм для умножения матриц — с ошибками, естественно. На программы, где на ассемблере с SSE переписаны функции копирования памяти, при этом один и тот же файл открывается и закрывается в цикле двадцать раз, чтобы прочесть первые три байта сигнатуры. На проги, где используются параллельно оконная библиотека MFC и своя, с ней несовместимая. Программы, у которых после наведения «архитектурной чистоты» начинались тормоза, а размер своп-файлов поднимался с единиц мегабайтов до терабайтов. Многопоточные программы, которые не в состоянии были загрузить процессор на 40%, потому что потоки дрались за критические секции...

КПД программерского коллектива — как у паровоза Черепановых: все пыхтят и создают работу друг для друга. Полезный выход — два процента.

Думаете, отчего я такой злой? Просто я всё это добро портирую с платформы на платформу, просматривая и исправляя чужой код по мегабайту в день.

#4350: Jack goes where?

13:00 06.10.2010, IT happens

Адаптер для модема с переменными 9 В. 12 В с плюсом на центре для USB-вайфай-роутера. 9 В с плюсом на корпусе для сканера штрих-кодов. Все к дной машине.

В конторе появляется новенькая светленькая девочка. Прибегает утром и плачет.

— Кто тебя довёл?

— Мужики — придурки! Кто придумал эти дырки сделать одинаковыми?

Я в шоке. Думаю, кто счастливчик, когда успел и когда приедет милиция.

Секунд через десять сдавленного хохота соседей и перетыкания штекеров я понял, что нам всё же нужен новый роутер. Сканер выжил, «омни-зухель» тоже.

#4351: Ни «X» себе

15:00 06.10.2010, IT happens

Жалоба: не открывается документ, говорит что-то о не найденном конвертере. Админских прав у пользователя нет. Коннекчусь, переустанавливаю конвертер, чтобы открывать документы 2007-го Ворда в 2003-м — иногда он отползает. Ан нет, то же самое: Офис хочет установить какой-то конвертер, выдаёт ошибку и предлагает на выбор кодировки.

Думал недолго, но метод перевода файла из новой версии Офиса в старую путем изменения расширения с .docx на .doc меня поразил.

#4352: Молодильные файлики

15:00 06.10.2010, IT happens

Позвонила одноклассница:

— Привет, Ром, у меня не работает вирус! Ой, антивирус. Пишет, что базы вирусов сильно устарели. Как сделать, чтобы они омолодились, а?

— В главном окне нажми «Обновить».

— Чёрт, ничего не получается! Не хочет. Говорит, не найден источник обновления.

— Э… Видимо, сервак упал.

— (удивлённо) Кто упал?!

— Источник обновления отключился. Подожди дня два и по всяким сайтам лишним не лазай.

— Ага. Ну ладно. Кстати, у меня тут собаки провод перегрызли.

— Какой провод?

— Как какой? Который интернет включает.

— Пока!

#4353: sleep 28800

15:00 06.10.2010, IT happens

Как положено ночью, сплю. Рядом спит ноут с Кубунтой. Около трёх часов ночи стало ясно, что в комнате спала и кошка, которая уже совсем даже не спит, а просится выйти из комнаты, царапая дверь. Надо вставать открывать, но нет: я же так сладко сплю! И тут приходит идея: надо открыть дверь, не вставая с кровати, то есть удалённо.

Разворачиваю Yakuake, но четвёртые «кеды» плохо работают на моих мозгах. Печатаю в консоли вместо символов абракадабру. Удивляться нечему: на сайте KDE нет ни слова о поддержке моей мозговой платформы. Перезапускаю KWin, снова консоль, и наконец-то могу печатать нормально. Набираю eject и крепко задумываюсь: какой девайс указать? Дверцу привода я могу открыть (/dev/sr0), но дверца комнаты не подключена к моей системе; более того, я даже не знаю, как она отображается в /dev!