Проектировал изначально небольшую и простую базу данных для маленькой, но гордой аутсорсинговой компании. Пришёл к следующим законам Мерфи для реляционных баз данных:
1. Не существует отношений «один к одному». Все такие отношения вырождаются в «один ко многим». Проявляются после написания полного и подробного ТЗ.
2. Не существует отношений «один ко многим» — все они вырождаются в «многие ко многим». Появляются после слов заказчика: «Может быть только так и никак иначе».
3. Не существует отношений «многие ко многим» — все они вырождаются в направленные графы. Появляются после слов заказчика: «А давайте сделаем так, чтобы когда я чешу за ухом, у меня шнурки завязывались».
4. Не существует направленных графов. Есть просто графы. Появляются после описания всех возможных и невозможных связей.
5. Не существует графов. Есть хаос.
Через полтора месяца ежедневного выноса мозгов к работе над проектом подключился главный директор, через три дня был уволен технический директор (тот, с которым я всё это время общался), а через пару недель макет БД был полностью написан и передан прикладным программистам для интеграции.
Бессонная ночь перед сдачей проекта заказчику. Всё проверить, протестировать, чтобы выглядело замечательно. Солнце уже встаёт, первые лучи показались на горизонте и начали освещать комнату. Глаза закрываются, организм требует энергии. Идти спать — не выход. Нужен кофе.
Заглянув на кухню, замечаю коробку зелёного цвета, которой прежде не было. Взяв в руки, читаю: «Ш**гит — Активатор воды». Подумав про себя: «Что же творится с миром? Даже вода стала требовать активацию!», всё же пошел спать.
Коллеги, не усердствуйте. Заказ заказом, но здоровье беречь следует.
Каких только сообщений от программ я не насмотрелся за свою жизнь, но это меня порадовало:
ivan@tomb ~/sites/wtpsu/server $ ./packsquid.sh tar: Робкий отказ от создания пустого архива Попробуйте `tar –help’ или `tar –usage’ для получения дополнительной информации.
Походы в блинные нашего города мне напоминают работу с программами, разработчики которых вставили никому не нужные навязчивые диалоговые окна. Подходим к прилавку.
— Что будете заказывать? (Появляется диалоговое окно, в котором можно выбрать с помощью чекбоксов нужные нам позиции).
— Мне, пожалуйста, блинчик с курицей и чай. (Отмечаем нужные позиции, нажимаем «ОК»).
— Соус, зелень добавить в блины? (Первое диалоговое окно, звук события Windows, фокус по умолчанию на кнопке «Да»).
— Нет, спасибо. (Жмём «Tab», нажимаем на кнопку «Нет»).
— Сладкий блинчик с вареньем не хотите на десерт? (Второе диалоговое окно).
— Спасибо, не надо.
— Окрошку? Борщ? Наше фирменное блюдо не хотите попробовать? (Третье диалоговое окно, звук события Windows).
— Неееет! (В сердцах с силой бьём по табуляции и пробелу).
— Ваш заказ — 110 рублей.
Такое ощущение, что если бы разработчики программы (маркетологи блинной сети) добавили ещё одно окно, я бы перестал пользоваться их приложением.
Маленький секрет: в «Макдональдсах» в форме заказа есть маленький незаметный чекбокс «И всё». Если его отметить, то всплывающих окон не будет.
Праздновали на днях день рождения огромной толпой. Как полагается, красивые девушки, головная боль с утра... Только вот уборку захотелось сделать сразу, ничего не дожидаясь. Весь хлам распихали по пакетам и выкинули в мусорный бак. По пути встретились пенсионеры, устроившие субботник.
Часа через три, уже протрезвев, я понял, что случайно выбросил флешку с очень важным проектом вместе с грудой хлама. Думаю, чёрт с ним, не обломаюсь, пойду и заберу пакет. Прихожу и вижу: эти пенсионеры со своим субботником завалили весь бак ветками и строительным мусором. На дворе день, люди ходят. Ладно, думаю, вечером бомжару найду, чтобы достал за пиво. Дожидаясь темноты, ищу ненужные вещи, фонарик и нож на случай, если совсем всё будет плохо.
Первый час ночи, на улице ни души, фонари не горят, я в маске-шапке с прорезями двигаю к баку. А долбаные коммунальщики весь мусор уже убрали! Понимаю, что впервые в жизни не рад оперативной работе мусорщиков. Эх, не стать мне матёрым хакером, как Кевин Митник, который извлекал ценные данные из помойных баков!
Надо было мне переименовать небольшую кучку файлов под один шаблон. Полез в Гугл искать подходящую утилиту. Первая ссылка вела к Quick File Renamer. Взору предстал красочно оформленный сайт с кучей рекламы этого самого «ренеймера». Скачиваю программу, ставлю. После установки утилита снова всячески пиарит себя. Настраиваю шаблон — говорит, что в триальной версии такие опции заблокированы.
Чертыхаюсь, иду снова в Гугл, нахожу Bulk Rename Utility, скачиваю с невзрачного сайта, выставляю нужные опции и быстро добиваюсь цели.
Задумываюсь: две программы, не очень-то и сложные. Одна распиарена и расфуфырена, требует кучу денег за свою работу, а другая просто берёт и делает своё дело без лишних вопросов. А ведь так и у людей: Человек-Харизма и Человек-Админ...
Работал я во второй половине девяностых в немаленькой конторе. Только что перешли окончательно на 95-ю винду — мышки стали таким же важным инструментом, как и клавиатуры, и проблема с грызуном реально тормозила работу. В ходу были оптомеханические мышки: покрытый резиной тяжёлый шарик, катаясь по поверхности стола, крутил колёсики с прорезями, которые вращались между светодиодом и фотоприёмником и таким образом генерировали прерывыстые сигналы, понятные компьютеру. Проблемы были простыми: пережатые жилки мышиного хвостика, «культурный слой» на валиках, постепенное старение, с которым боролись сближением светодиода и фотоприёмника, и естественная смерть.
В один прекрасный день мышки у части сотрудников стали вести себя странно. Приходит народ на работу утром в понедельник — мышка в лучшем случае еле двигается. К обеду положение улучшается. Дело к вечеру — опять та же история. Как будто с утра у мышки «после вчерашнего» ничего как следует не работает, а вечером — от усталости. И так каждый день.
Живая? Ага, как же. Я сам переученный левша и почти одинаково хорошо владею обеими руками. Мышку привык держать в левой руке, так как правой удобнее набирать на цифровой клавиатуре и играть, конечно. При очередном вызове вначале проверил, что, действительно, мышке поплохело, а потом по привычке поменял руку, и — о чудо! — мышка излечилась. Что за хрень? Вернул назад — опять «отстаньте от меня, дайте полежать спокойно». Не стал я грозных слов говорить, а разобрал манипулятор, снял верхнюю крышку и проверил, как работает, крутится и движется всё, кроме курсора на экране. Накрыл мышку ладонью более тщательно — наступило явное улучшение. Я взял ножницы и чёрную бумагу, которая как раз осталась после распаковки новой мебели, вырезал кусочек по форме верхней части корпуса мышки и вставил внутрь. «Похмелье» и приступы послеобеденной лени у мышки как рукой сняло. Аналогичная операция над остальными мышками тоже помогла — работали они, пока не умерли от старости через пару лет.
Шаманство? Ничуть. Я уже упоминал светодиоды и фотоприёмники. Естественное старение ухудшает их характеристики, в результате они становятся более чувствительны к помехам. В данном случае помехой стал свет. Проблемы с мышкой появлялись у сотрудников, которые сидели у окна, через которое по утрам лился яркий свет, а вечером все включали настольные лампы. Корпуса мышей светло-бежевого цвета неплохо пропускали свет — вот и забивал этот свет полезный сигнал. Конечно, можно было предложить обнимать мышек более страстно, что сокращало бы площадь, освещённую солнцем и доказывало наличие биополя и астральную связь между человеком и мышкой. Но мы, люди приземлённые, все эти тонкие материи заменили обрывком бумажки. Вспомните Оккама — не плодите лишние сущности, а оглянитесь повнимательнее вокруг и перелистайте школьный учебник физики.