Логи где? Нет, вон в тех стапятиста мегабайтах сами ковыряйтесь. Где логи «пришло-ушло-упало»? Да, надо сделать. Да, именно так. Нет, стопицот не надо. Не получается? Подсказываю: гоогле-точка-ком, шестая ссылка, читать, делать. Мне за вас сделать? Хорошо, зарплату перечислите авансом или потом?
#8505: Базы — не игрушки
16:45 13.02.2012, IT happens
Работаю в небольшой IT-компании. Мы арендуем пару серверов в крупном датацентре. Как-то лет шесть-семь назад (вот вспомнилось почему-то) приютили мы на одном из этих серверов неких друзей тогдашнего директора с «молодым, но активно развивающимся проектом» — на первое время, пока запустятся, немного раскрутятся и определятся с собственным железом.
Проект состоял наполовину из несложных онлайн-игрушек и головоломок и поначалу жил себе на нашем сервере, никому не мешая. Спустя некоторое время нагрузка на сервер стала расти буквально не по дням, а по часам. Виновного нашли быстро, конкретную причину — ещё быстрей: достаточно было взглянуть на их MySQL-базу.
Обо всяких там нормальных формах автор вряд ли когда-либо слышал, об оптимизации — тем более. О существовании индексов если и догадывался, то вряд ли задавался вопросом, зачем они нужны. Ходы всех текущих игр хранились вместе с ранее сыгранными в одних бесконечно растущих таблицах. Естественно, всю глубину человеческого невежества сервер испытал на себе раньше, чем количество пользователей этого парка аттракционов достигло пары сотен.
Созвонившись с «разработчиком» этого безобразия, я вежливо, как мог, объяснил суть проблемы и описал в общих чертах, что нужно делать. Сказать, что ответ сразил меня наповал — это сильно преуменьшить:
— Там не может быть проблем с производительностью, я всё тестировал на домашнем компе!
Я не стал расспрашивать, как он это делал, не стал и объяснять очевидных вещей. Знаю только, что проект доводили до ума (если доводили) уже где-то в другом месте.
#8506: Банкомат бережёт бабло
16:45 13.02.2012, IT happens
Я тот самый программист банкоматов, упоминаемый в недавней истории[4]. Постараюсь вкратце ответить на некоторые вопросы, волнующие автора.
Для начала давайте подумаем: что самое главное в работе банкомата? Красивый и удобный интерфейс? Нет. Последовательность выдачи денег, карты и чека? Нет. Сложная интеллектуальная система подсказок с постоянным обращением в процессиноговый центр? Опять нет.
Самое главное в работе банкомата — безопасность. Как находящихся внутри сейфа денег, так и карт клиентов. И если деньги банк ещё может застраховать, то от считывания скиммером карту застраховать не получится. Поэтому часто можно встретить накладку на картридере, которая медленно, будто умирающий лебедь, захватывает и возвращает вашу карту. Это не банкомат тормозит, это вас защищают от потенциальных мошенников.
Почему на пин-клавиатуре не работает кнопка Enter, а подтверждение происходит по нажатии боковой кнопки? Да потому, что пин-клавиатура и боковая кнопка — это разные устройства, подключённые к разным контроллерам, и назначение у них разное. Если клавиатуру вырвут с корнем из корпуса (такое бывало) и вставят в фейковый банкомат, то пин-код с помощью неё ввести не получится — для того и сделано отдельное подтверждение.
Пункты в меню не работают? Опять тут «виновата» безопасность. Чем сложнее система, тем проще найти в ней уязвимость. Поэтому вместо красивых, интерактивных и интеллектуальных меню выбора суммы с подсказкой используются простые статические картинки.
У «П***-банка» тормознутые и медленные банкоматы? А вы пробовали сообщать об этом в сам банк? Большинство проблем со скоростью работы банкомата непосредственно связаны с находящимся внутри банкомата системным блоком типа «компьютер», который очень часто работает на всем известной ОС от дяди Билла. Иногда банальное увеличение ОЗУ приводит к многократному увеличению скорости работы железного ящика. Обратитесь в техподдержку банка, и через какое-то время, вполне вероятно, ваш банкомат будет летать со скоростью света.
И пока у банков на первом месте будет безопасность средств клиентов, вы не сможете поиграть в «косынку» на банкомате, как это делают на богомерзких платёжных терминалах, с вашей карты не украдут ни рубля, а запрошенная сумма будет всегда выдаваться в полном объёме и без сбоев. Удачи!