bash.im ithappens.me zadolba.li
10455

TCP вручную

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

Зашёл в гости к коллеге. Достаточно большая фирма, отдельная серверная, отдельная админская. Работали два человека, хорошие ребята. Прошло время, фирма разрослась, взяли эти ребята себе помощника. Совсем молодой пацан, почти ничего не знает, но очень старается.

Обычный рабочий день. Сидят три наших героя в серверной, работу работают. Одному из «ветеранов» (назовём его Лёхой) становится скучно. Внезапно он начинает громко стучать по клавишам, потом подмигивает коллеге и говорит нервным голосом:

— Серёга! Всё, п#$дец, кластер упал!

Серёга подыгрывает, садится рядом, морщит лоб и восклицает:

— Точно упал! Чёрт, что же теперь делать-то?

Лёха обращается к новичку:

— Так, срочно беги к серверную и принеси аварийные TCP-пакеты! 256 штук, не меньше!

Ребята сыграли очень убедительно. Новичок подпрыгнул из-за компьютера и, опрокинув стул, унёсся в серверную. «Ветераны» довольно хрюкнули, стараясь громко не ржать вслед, и уже прикидывали, что же он им принесёт.

Как известно, бегущий генерал в мирное время вызывает смех, а в военное — панику. Это я к тому, что бегущий админ — очень плохая примета.

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

— И куда это мы так быстро бежим?
— В серверную.
— Хм. А зачем, можно узнать?
— Там кластер упал.
— Что-о-о?! — глаза у начальника стали чуть больше линз очков.
— Да! Кластер! Упал! Мне Лёха сказал срочно принести двестиписятшесть аварийных тисипи-пакетов!

Начальник вздохнул, незаметно улыбнулся, очень внимательно посмотрел в глаза юноше и спросил:

— Точно Лёха сказал?
— Точно.
— Так, всё нормально. Быстро пошли за мной! Будут ему пакеты, хе-хе.

Шеф с новичком забежали на кухню, и начальник взял на полке с разного рода бытовой химией толстый рулон пакетов для мусора. Уже у себя в кабинете отодрал бирку с рулона и напечатал новую, на которой крупными буквами читалась надпись: «Аварийные UDP-пакеты. 256 штук». Отдал эту «дубинку» молодому и сказал, очень чётко выговаривая каждое слово:

— Иди сейчас к Алексею. Потом ё&ни его этим по голове и скажи, что аварийных TCP не было, только UDP. И если до него не дойдёт, пусть перестанет заниматься х$#нёй на рабочем месте, а то второй пакет он получит от Геннадия Игоревича лично!

Подружились, работают втроём до сих пор, всё у них отлично.

6525

Важнейшим из чисел для нас является…

Я разрабатываю СПО. В силу особенностей аппаратной реализации программы для одних модулей контейнера пишем мы, для других — отделение за 2000 км от нас. В мои обязанности входит тестирование присылаемых версий и контроль взаимодействия частей ПО. Грубо говоря, от меня зависит, будет работать сборная солянка или нет.

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

Вызывают: дескать, всё сделали по написанному, оно иногда работает, но чаще нет. Смотрю буферное ОЗУ — а там каша вместо параметров. Спрашиваю программиста, где данные из файлов. «Я всё загрузил». Показывает, как грузит. Всё окей, но после запуска программы лезет та самая каша.

Ковыряюсь целый день, гоняя прогу по шагам. Программа считывает массив из буферного ОЗУ — и капец. Перебираю буфер, копирую массив, сравниваю с эталоном из файла. Опа — там же нули должны быть, а вместо них месиво, причём каждый раз разное! Писать чушь в буфер может как иногородняя программа, так и наша. Их не пишет — зуб даю. Зову программера: «Не надо считать меня дураком!» Проверяю его творение — не пишет. Так, тупик.

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

— Признавайся.
— Я ничего не делал!
— Ага, не делал! Вот моя прошивка, вот твоя. Куда килобайт данных пропал?
— Каких данных? Там нулевые блоки между массивами были, я их вырезал. На фиг они нужны? Буферное ОЗУ маленькое, я код оптимизировал.
— А тебе в голову не приходило, что ноль — это тоже число?

8760

Байка с демонстрацией

Начала сбоить моя верная 9600 GSO: линии через экран, то тут, то там всплывающие квадраты и прочие прелести агонизирующего чипа. Поскольку питание было нормальным, а кулер — мощным и хорошо смазанным, понёс в техцентр, благо гарантия ещё не кончилась. Родная коробка, упаковка, все дела.

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

Доплатил, конечно, но зато теперь у меня есть новая 550 Ti.

3647

Большой медвежий пересбор

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

Начинаю курить код. В какой-то момент понимаю, что проблема в том, что XML содержит ноды с описанием картинок, но они не десериализуются в класс. Смотрю в десериализацию и натыкаюсь на [XmlIgnore] перед списком загружаемых картинок. Типизация сделана в другом, более общем проекте, поэтому трогать нужно осторожно. Там всё хорошо, билдятся оба, но «рид-онли» остаётся на месте.

От отчаяния плюю и дописываю: public int medved = 100500. На этот раз компилятор понял, что такое капитальное изменение в коде требует обновления DLL-ки, и софт начал вести себя предсказуемо. Положение спасено.

11691

Синдром сисадмина

Что позволяют себе эти работнички в офисах?

Только начнёшь мыть пол — тут же начинают ходить туда-сюда. Не видите — уборка?! Закрою дверь на швабру, подождут!

Программисты ругаются, что сервер опять выключен? А мне провода мешали! И гудел! Ничего, подождут, потерпят.

Почему документы переложены на столе? А вы посмотрите вокруг — у всех так! Так красивее, и мне проще пыль вытирать. А то понаразложили тут кто что хотел!

* * *

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

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

Если сотрудник тупой и не в состоянии осилить простейшую инструкцию, обратитесь к руководству: оно нанимало сотрудника, ему и решать, тупой он или полезный.

Откуда этот синдром вахтёра? Хоть маленькая — но власть, так, что ли?

9443

Понять и удовлетворить

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

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

И вот пришло на днях такое:

Версия QIP: QIP 2012
Пользовательское сообщение:
язык запросов qip.ru

Воспалённому недоспавшему мозгу плохо, когда с ним шутят. Он готов рассказать про API, SDK, Store API и кучу других «языков запросов», которые предоставляет QIP, но вовремя себя одёргивает. В итоговом ответе не удержался от налёта иронии:

Здравствуйте!

Язык техподдержки QIP — русский.
Ждём подробностей, как мы можем вам помочь.

С уважением, служба поддержки проекта QIP

Пока молчат. Потому что главная задача саппорта — это понять и удовлетворить потребности пользователя. Кстати, писали, что характерно, с почты Mail.ru.

10556

Ты мой файл папка класть

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

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

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

12421

Не всё то золото, что запускается

На тему того, что человек — это самый опасный компьютерный вирус, мне вспомнился ещё один факап из детства с компьютером «Роботрон».

Первое время я вообще плохо понимал, что делать с компьютером. Литературы у меня пока не было, и я тыкал и нажимал, куда придётся. Глядя в зелёные глаза Нортон-коммандера (монитор был монохромным), я сообразил, что всякие игрушки и прочие программы запускаются из файлов с расширением exe, и начал искать такие файлы, запускать их и смотреть, что получится.

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

Потом мне, конечно, всё восстановили, но я понял: не всё то золото, что имеет расширение exe.

13488

Алое око пожара

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

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