8509

Экспекто Зависонум

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

Не так давно решил поиграть в LEGO Harry Potter — как-никак фанат и всё такое. И что вы думаете? Вылетает из игры на том же моменте!

8508

Краснознамённый телесветофор

Дело было в армии. Я единственный общался с паяльником на «ты», потому был нарасхват.

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

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

Все поставленные требования были выполнены. Сдавал лично командиру части, за что получил дембель на неделю раньше.

8507

Сервис-пак ректально

Задолбали юные айтишники. Юные не в смысле возраста, а в смысле опыта работы.

Если вы ещё вчера лазили под столами с обжимкой, а сегодня «выросли» и уже «настраиваете сервер», раздавая доменным пользователям права, это вовсе не означает, что вы достигли вершин Олимпа.

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

Но и ваше отношение к другим техническим специалистам с одной стороны раздражает, а с другой — выглядит смешно и глупо. Вы не поверите, сколько неплохо разбирающихся в своем деле специалистов не умеют правильно обжимать кабель.

Один прекрасно умеет настраивать сетевое оборудование, не просто слышал, но и понимает значение аббревиатур BGP или RIP, но при этом настоящий сетевой кабель видит в лучшем случае в виде фабричного патч-корда, а то и не видит вовсе.

Другой обслуживает вычислительные системы промышленного масштаба, от его работы зависят миллионы людей, но он тоже давно забыл, как выглядят разъёмы 8P8C.

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

А вы со своим отношением напоминаете уездного санитара, привыкшего лечить все болезни двумя таблетками аспирина — от головы и от задницы, а в тяжелых случая рекомендующего клизму (перезагрузку). Правильно, на хрена все остальные врачи?

8506

Банкомат бережёт бабло

Я тот самый программист банкоматов, упоминаемый в недавней истории. Постараюсь вкратце ответить на некоторые вопросы, волнующие автора.

Для начала давайте подумаем: что самое главное в работе банкомата? Красивый и удобный интерфейс? Нет. Последовательность выдачи денег, карты и чека? Нет. Сложная интеллектуальная система подсказок с постоянным обращением в процессиноговый центр? Опять нет.

Самое главное в работе банкомата — безопасность. Как находящихся внутри сейфа денег, так и карт клиентов. И если деньги банк ещё может застраховать, то от считывания скиммером карту застраховать не получится. Поэтому часто можно встретить накладку на картридере, которая медленно, будто умирающий лебедь, захватывает и возвращает вашу карту. Это не банкомат тормозит, это вас защищают от потенциальных мошенников.

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

Пункты в меню не работают? Опять тут «виновата» безопасность. Чем сложнее система, тем проще найти в ней уязвимость. Поэтому вместо красивых, интерактивных и интеллектуальных меню выбора суммы с подсказкой используются простые статические картинки.

У «П***-банка» тормознутые и медленные банкоматы? А вы пробовали сообщать об этом в сам банк? Большинство проблем со скоростью работы банкомата непосредственно связаны с находящимся внутри банкомата системным блоком типа «компьютер», который очень часто работает на всем известной ОС от дяди Билла. Иногда банальное увеличение ОЗУ приводит к многократному увеличению скорости работы железного ящика. Обратитесь в техподдержку банка, и через какое-то время, вполне вероятно, ваш банкомат будет летать со скоростью света.

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

8505

Базы — не игрушки

Работаю в небольшой IT-компании. Мы арендуем пару серверов в крупном датацентре. Как-то лет шесть-семь назад (вот вспомнилось почему-то) приютили мы на одном из этих серверов неких друзей тогдашнего директора с «молодым, но активно развивающимся проектом» — на первое время, пока запустятся, немного раскрутятся и определятся с собственным железом.

Проект состоял наполовину из несложных онлайн-игрушек и головоломок и поначалу жил себе на нашем сервере, никому не мешая. Спустя некоторое время нагрузка на сервер стала расти буквально не по дням, а по часам. Виновного нашли быстро, конкретную причину — ещё быстрей: достаточно было взглянуть на их MySQL-базу.

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

Созвонившись с «разработчиком» этого безобразия, я вежливо, как мог, объяснил суть проблемы и описал в общих чертах, что нужно делать. Сказать, что ответ сразил меня наповал — это сильно преуменьшить:

— Там не может быть проблем с производительностью, я всё тестировал на домашнем компе!

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

8504

Мои маленькие кривокодики

Ну что, программеры, померялись? А теперь слово службе сопровождения ваших творений.

При установке необходимо отредактировать конфиги в XML. Господа, кто вам сказал, что XML подходит для этого? Перемещаться внутри облака тегов в поисках начала и конца, особенно если конфиг «всё в одном» — та ещё задача. Что, какой специальный редактор? Софт устанавливается на сервер, что стоит в бункере, и на каждый байт там требуется свидетельство о сертификации на гербовой бумаге. Что помешало посмотреть, как это делается вот уже более 30 лет в UNIX-системах?

Установка внезапно валится на одном из этапов. В мануале: «Укажите путь к файлу в конфиге». На деле в половине модулей эта настройка игнорируется, а путь тупо забит в коде. Да, это быстрее, чем парсить XML-конфиг, — а я что говорил?

В программе сотрудник привязан к двум отделам — такое ТЗ дал менеджер проекта. Но вот теперь нам надо к трём отделам. Что? Нужно полностью пересматривать структуру базы? А почему было не сделать это с помощью двух таблиц и связки между ними? Думали, не нужно? Сложно спорить. Программисту надо ставить задачу чётко, он рассуждать не умеет. Может, и код за вас написать?

Разработали новую версию? Ну зачем, зачем было менять структуру конфига? Это же теперь переносить все настройки со старого в новый. Кстати, как там с путями? Берётся везде из конфига, окей. А почему не работает? Путь слишком длинный, больше 256 байт? И что? Ограничение Виндоус? При чём тут Виндоус, у нас ведь Джава на Соляре? У вас Виндоус, вы думали, так везде?

Не хватает производительности базы, надо таблицы партиционировать. Что такое партиционировать? Это вы меня сейчас спрашиваете, разработчики? Подсказываю: вевеве-точка-гоогле-точка-ком. Индекс слетает, говорите? Подсказываю… А-а, догадались сами?

Логи где? Нет, вон в тех стапятиста мегабайтах сами ковыряйтесь. Где логи «пришло-ушло-упало»? Да, надо сделать. Да, именно так. Нет, стопицот не надо. Не получается? Подсказываю: гоогле-точка-ком, шестая ссылка, читать, делать. Мне за вас сделать? Хорошо, зарплату перечислите авансом или потом?

8503

Мелкий в мягком

В 2005 году доводилось мне работать на единственного в маленьком городке хостинг-провайдера. Услуга у нас была всего одна — BSD-хостинг. А один клиент захотел сайт разместить на Windows.

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

Убрали сервер только в 2007 году, когда клиент ушёл. Проверок за этот период было целых три, и залезть в диван никто не догадался.

8502

Трындеть команды не было

Работал в юридической фирме IT-директором и по совместительству менеджером проектов. На очередной оперативке директор решил, что юристам не стоит пользоваться ICQ по соображениям безопасности. Но общаться-то как-то нужно.

Не вопрос! Нашли мы со старшим сисадмином бессерверный чат, потестировали, настроили. Написал я всю документацию, озаглавил: «Программа поддержки обмена сообщениями между пользователями». Приношу на подпись директору документы. Через некоторое время получаю обратно все доки с резолюцией на заглавной странице: «А зачем пользователям обмениваться сообщениями?»

Даже не нашёлся, что ответить. Страницу с резолюцией сохранил на память.

8501

Распечатать перед замятием

Пожаловались конторские тётки, что бумага в HP LJ 5200 застряла. Вытаскиваю. Принтер затаскивает следующий лист — и опять до половины. Одна из тётечек подходит, говорит: «Какие картинки!»

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

Оказывается, после того, как сам догадаешься и достанешь застрявшую бумагу, принтер распечатывает инструкцию по проведению этого процесса. При этом он не понимает, что заправлена А3, поэтому, нарисовав пол-листа, останавливается.

8500

Бородач с тысячью имён

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

Придумали решение, чтобы обеспечить народ приличной зарплатой.

Управление IT теперь называется «управление по менеджменту в сфере корпоративных информационных технологий».

Инженер-программист — «менеджер внутрикорпоративных программных продуктов».

Инженер по проектированию и прокладке сетей — «менеджер по решению проблем корпоративных сетей».

Центр управления сетями — «отдел менеджмента корпоративных сетей».