11411

Взгляни, почини, научи, промолчи

Давным-давно, когда мы выводили из эксплуатации Пентиумы и вводили новые машины на базе Socket 478, в то время как электрики выводили из работы СМ-2М… Так вот, примерно тогда старшие товарищи в ответ на наши претензии нас учили.

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

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

Ещё программист-разработчик должен уметь вовремя устранять баги и обновлять свой продукт.

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

11410

Patch it again, Tony

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

Одним из требований соответствия двигателя внутреннего сгорания нормам «Евро-3» является точное определение пропусков вспышек в цилиндрах: компьютер должен точно знать, в каком цилиндре это произошло, и в случае повторения выключить эту форсунку, дабы неиспользованная порция топлива не догорала уже в нейтрализаторе, выводя его из строя. В схеме с «Евро-2» компьютер управляет форсунками попарно-параллельно по схеме 1–4, 2–3, опираясь на данные от датчика положения коленвала. Чтобы знать точно, в каком цилиндре будет следующий рабочий ход, обычно ставят дополнительный датчик, сообщающий компьютеру также и о положении распределительного вала, и этих данных ему вполне хватает.

Однако итальянская фирма, чьё название в Америке расшифровывают не иначе как «Fix it again, Tony», в своё время решила, что им будет накладно проектировать и разрабатывать новый двигатель со всеми новыми мудрёными системами, и они модифицировали алгоритм работы бортового компьютера следующим образом. Во время пуска двигателя электронный блок управления выключает форсунку первого цилиндра и в течение последующих десяти оборотов проверяет, не провалилась ли частота вращения. Если обороты провалились, значит, это и был первый цилиндр; ну, а если нет, то мы не угадали, и это всё-таки был четвёртый. Грубо? Примитивно? Но ведь работает!

11409

Не учили ремеслу девчат айтишному

Ох, попадали бедняги-гипервизоры!

Ох, исчезли сервера из сетки офисной!

Ох, ключи забрали девочки коварные!

Ох, повыдергали технику железную!

Не учили их не дёргать на горячую,

Не учили ремеслу девчат айтишному,

А учили их железочки учитывать,

Переписывать с них циферки да буковки.

А учили их считать рубли-процентики,

А учили их вести себя с налоговой,

А учили их тому, чему айтишников

Не научишь и под дулом пистолетика.

Ты умеешь гипервизоры настраивать,

А девчата — гипервизоры подсчитывать.

Напиши, админ, на блейде номер спереди —

И не будет женский пол его выдёргивать.

11408

Отдал файл и был таков

Моему другу захотелось переустановить Windows XP — сослался на то, что ОС подтормаживает. Этот индивидуум, долго не думая, скачал первую попавшуюся под руку сборку на трекере и без задней мысли запустил установку из образа. Можете представить себе его удивление в момент появления надписи белым по чёрному, что источника установки не существует…

11407

1200 рублей в минуту

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

Переткнули монтёры кабель, зашли в квартиру. Так, мол, и так — надо настроить. А кабель у меня воткнут в роутер. Итог: с мамы взяли 800 рублей за настройку роутера. За смену внешнего IP со статики на автоматическое получение. Стоимость роутера: 600 рублей. Время, потраченное на настройку: 40 секунд. А за прошлый месяц я настроил, перепрошил и воскресил роутеров больше, чем вся их контора с момента открытия.

Пятница, 13-е, только начиналась…

11406

Я тебя породил — я тебя не убью

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

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

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

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

«Не страшно, — думаю. — Ctrl+Alt+Del я-то не заблокировал». Хотя были мысли и эту комбинацию заблокировать, так как не завершать работу аварийно, когда им что-то непонятно, я так и не научил.

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

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

11405

Приличные люди исходниками не сверкают

Один из вузов нашей необъятной Руси (татарской её части). Институт управления, автоматизации и тому подобного. Факультет управления и автоматизации. Направление — информатика и вычислительная техника. Препод:

— К экзамену по информатике знать: операционные системы с текстовым интерфейсом типа DOS, с графическим интерфейсом типа MS Windows, текстовый процессор MS Word. Компьютеров в аудитории мало, поэтому сдавать будете по очереди.

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

— Можно будет принести свой аппарат и на нём сдавать экзамен?

— Конечно!

— А если на нём в Дебиане виртуалку Windows запущу и там поменяю ядро системы, зачёт автоматом будет? — спрашиваю с подколом.

— Молодой человек, у нас тут приличное заведение, а вы сюда с линуксом! Будь моя воля, я бы вас всех, пингвинолюбов, отчислял бы!

— Почему?!

— Пользоваться Linux — значит жульничать!

11404

D — значит дрянь

Когда я только начинал читать IT happens, я думал, что истории про плохое оборудование D-фирмы — в основном дань фольклору. Как же я ошибался!

Четыре с лишним года назад я выбрал (методом тыка — тогда в железе ничего не понимал) и купил недорогой роутер созвучной марки на букву «Т». Тем же вечером подключил, настроил, закинул на высокие антресоли и благополучно забыл. Я видел его раз в полгода, когда протирал пыль или подключал новые кабели. Редкие скачки напряжения и месячные аптаймы не сказывались на качестве работы. Надо ли говорить, что настройки домашнего инета я без договора уже не помнил?

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

Одно из двух: или я познаю дзен, или я пойду и куплю что-то нормальное за свои кровные. И это точно будет не D-фирма.

11403

Тянет-потянет — вытянуть несложно

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

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

Товарищ отправился в серверную на разведку. Через пять минут вернулся, отказался сообщать причину падения и просто начал раздавать указания по подъёму всей системы.

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

11402

Админ не выживет один

Еду в метро. Один из пассажиров внимательно смотрит на меня, а потом удивлённо произносит:

— Разве так бывает?

И сначала тычет пальцем в моё пузо, а потом в правую ладонь.

Да, действительно. На майке пингвин, на безымянном пальце кольцо. Конечно же, бывает!