bash.im ithappens.me zadolba.li
12555

Спасая сеть во тьме сырой

Я девушка, блондинка, единственный эникейщик в довольно известной столичной компании. Нормальных сисадминов у нас трое. Двое по серверам и один что-то типа эникей-про, то есть решает все проблемы, которые у меня не решаются даже с помощью великого Гугла. Стать сисадмином я мечтала ещё в школе, и вот, наконец, мечта начала сбываться. Работу я обожаю, очень стараюсь, всё свободное время на работе посвящаю мануалам и интерактивным обучалкам, мне интересно, всё нравится. Кроме коллег. Они постоянно прикалываются по-разному, но с подтекстом, что я дурочка, ведь не может «блондинко» быть нормальным админом. Что компьютеры я чиню, погладив и сказав: «Ну, не шали, мой хороший, пожа-алуйста, ради меня», — это у них одно из любимых. А я так только раз сделала, и то кривлялась, уже всё починив, чтобы развеселить девушку за этим компом, очень уж она грустная была. Кто ж знал, что коллега это увидит и всем расскажет? Я думала, что уже привыкла и смирилась, до недавнего времени.

Давным-давно какой-то гений расположил стойку со свитчами для всего здания… в подвале, прекрасно подходящем для съёмок ужастиков без дополнительных вложений в декорации. Кроме стойки и труб, там нет вообще ничего, ламп тоже. И нормальной лестницы нет. Есть вертикальная (это как верёвочная, но только металлическая и к стене крепится). Каждый раз спускаешься по ней, а она угрожающе поскрипывает и пошатывается, добавляя адреналина. Свет только от фонарика, или если кто-нибудь идёт с тобой и придерживает дверь открытой (она на тугой пружине). Так тоже темно, но хоть что-то видно.

А я ужасно боюсь темноты. Самый главный страх, с детства. Даже сплю всегда с ночником. И вот, в один прекрасный день мне надо было пойти в подвал, так как в очередной раз наглухо завис свитч (он часто зависал, помогало только сбросить настройки в ноль и загрузить их из файла). Целый этаж остался без сети. А на этом этаже как раз демонстрационный зал, и туда пришли заказчики смотреть, что же с их заказом творится. А без сети показать им ничего невозможно. Глава проекта наорал на моего начальника, тот в ультимативной форме отправил меня в подвал одну. Я и раньше лазила туда, потому что самая лёгкая в отделе, а лесенка и правда ненадёжная. Совсем ненадёжная, как оказалось. Но всегда кто-нибудь ходил со мной и сверху стоял (ну, я просила, чтобы не так страшно было, лучше уж пусть поржут лишний раз, чем в темноте с одним фонариком остаться). Начальник знал, что у меня фобия, но остальные сейчас один в отпуске, двое на больничных. Некого было со мной послать. Сам он занят был, успокаивал руководителя проекта.

Так вот, лестница эта идиотская обвалилась, когда я только начала спускаться. Я ногу подвернула, падая, руку сильно расшибла. На ногу вообще не наступить было, из руки кровь даже не ручьём, а, блин, небольшой речкой лилась, на пол капала. А крови я, кстати, тоже боюсь. Меньше, чем темноты, но всё-таки. Фонарь разбился. Скорее всего, я об его осколки руку и рассадила. Созвонилась с начальником по мобильному, героически сдержалась, не истерила, а спокойно объяснила обстановку. Он сказал, что сейчас пошлёт людей меня оттуда вызволять, ну, а я чтобы все-таки перезалила свитч, если смогу до него доковылять, потому что заказчики уже в бешенстве, скоро час будет, как они ждут. Собрав всю волю и смелость, я таки доползла в темноте до стойки, чуть не подвывая от ужаса, ориентируясь по светодиодам, сделала всё, что надо. Постоянно казалось, что сейчас из темноты кто-нибудь схватит, рука всё это время ощутимо кровоточила, прямо кожей чувствовалось, как кровь течёт и течёт. Потом вернулась, меня подняли на страховочном поясе, врачей уже вызвали, мне прямо на месте руку зашили и перевязали, на ногу шину наложили. Домой меня начальник на машине отвёз, сказал, чтобы отдыхала неделю без вычета из зарплаты (зарплата не белая, по больничному там был бы большой минус).

А теперь то, из-за чего я это всё пишу. Когда вернулась на работу, мне все коллеги (уже вернувшись из отпуска и больничного) так или иначе высказали: «Поняла теперь, почему это не женская работа?» Один предложил устроить помощником к своему другу: там и зарплата гораздо выше получится, и вообще, девушке оно больше подходит. Они все уверены, что теперь я уволюсь, потому что осознала свою ошибку: не дело это — девушке работать в такой сфере. Они, что, реально думают, что будь я мужчиной, подо мной бы лестница не обвалилась?! Или у мужчин такая твердокаменная кожа, что они бы не поранились, упав с трёх метров? Я разве плохо что-то сделала? Я, блин, фобию детства преодолела, будучи довольно сильно травмирована, только ради того, чтобы исполнить свои профессиональные обязанности как можно лучше и быстрее! Они бы так смогли? Не знаю, конечно, чего они боятся, но вот разве обязательно смогли бы? Ну почему, когда они лажают, это «интересный случай», или «пользователи-рукожопы», или «оборудование надо не на свалке брать» (хотя у нас, на минуточку, почти все сетевое оборудование — Cisco, сервера и компы тоже очень достойные, всё ПО лицензионное, жаловаться вообще не на что). А когда я даже не по своей вине хоть что-нибудь делаю не идеально, это всегда только потому, что я девушка, чего с меня взять…

Достало такое отношение. Просто достало. Будьте же вы хоть чуть-чуть толерантнее к коллегам другого с вами пола, а? Нам тоже нравится эта профессия, нечестно так себя вести.

12562

Выдыхай, ангар, выдыхай!

Закрыли все порты на оборудовании, забыв оставить себе SSH-лазейку, а потом пришлось к серверу-аутисту два часа лететь на вертолёте и три дня ехать на верблюдах? Поверьте, это ещё не самый плохой вариант.

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

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

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

Умная управляющая программа даёт команду охладителю на включение, компрессорам на увеличение режима для компенсации возросшего сопротивления, а контроллеру воздухозаборников — на полное закрытие порта внешнего отбора и открытие порта охладителя. Все спешно начинают выполнять приказания начальства — компрессоры разгоняются, охладитель булькает аммиаком, контроллер воздухозаборников… Контроллер, простая глупая ПЛКшка, лениво шевелит актуатором створок-жалюзи внешнего порта, периодически проверяя показания датчиков о положении этих створок, и, выведя их в закрытое положение, начинает открывать створки порта охладителя. Не тут-то было: компрессоры уже вышли на режим и создали в теперь уже наглухо закрытой компрессорной разрежение, которое актуатору пересилить не хватает мощности. Контроллер удивляется сообщениям датчиков о неизменном угле поворота и замыкается в попытках открыть-таки створки, забыв сообщить о задержке «наверх».

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

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

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

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

12502

Что нам стоит суперкар построить

Как-то давно, в детстве, я прочитал журнал про автомобили. Так получилось, что помимо компьютеров моё хобби — авто. Там говорилось про очень интересную модель, которую можно смело называть самой быстрой (на тот момент) среди серийных автомобилей. Именно в тот момент у меня появилась мечта управлять такой машиной. Имя ей — «Ниссан-Скайлайн».

Потом вышла небезызвестная серия фильмов «Форсаж», где эта модель появлялась чаще остальных. Как положено молодым людям конца девяностых, все захотели ездить на ней просто для того, чтобы сказать: «Да, эта машина из фильма». Я узнал о «Скайлайне» задолго до киноленты и очень надеюсь, что не поддался стадному желанию обладать этим автомобилем только из-за того, что это «круто, как в фильме». По крайне мере, я очень на это надеюсь.

Прошло …дцать лет, и я его купил. Сейчас «Скайлайны» стоят относительно дёшево, но качество сказывается: ездят хорошо и по сей день. Но речь пойдёт не о ТТХ, а о человеке и его увлечении.

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

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

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

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

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

Я начал уставать, меньше спать и есть. Но это была усталость от счастья, нежели от чего-то другого. Шло время, шёл процесс, я проводил бессонные ночи то под машиной, то под капотом. Установил другой двигатель, другую коробку переключения передач, другую подвеску. Отсутствие запчастей из-за того, что сращивались три машины в одну, было нормально, поэтому большинство из них не покупалось, а делалось. За каждой мелочью я бегал то к токарю, то на лазерную резку, то к электрикам, то к мотористам. Каждый поход отнимал уйму времени. Люди смотрели на меня как на ребёнка, который занимается, мягко говоря, не тем, чем нужно. Семья была того же мнения.

Прошло два года. Я стал заметно агрессивнее и раздражительнее, особенно когда говорили про машины. Мотор стоял на своём месте, но завести его не получалось даже потому, что блок управления двигателем не считывал сигналов со многих датчиков, которые стояли на родном (для этого двигателя) автомобиле. Тут вновь возник вопрос: что дешевле? Купить эти дорогостоящие запчасти или поковырять блок управления? Я думаю, ответ очевиден. Я начал искать распиновки контактов, соединять соединяемое и обманывать необходимое. Поскольку от электрики и паяльника я был очень далёк, все шло долго, муторно и начинало нервировать.

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

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

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

Рассуждать о правильности или неправильности каких-либо действий можно, но уже не хочется. За те три с половиной года, которыми я обладал этим автомобилем, я проехал семь тысяч километров. Для сравнения, сейчас мой пробег в среднем составляет две-три тысячи километров в месяц только на то, чтобы добраться до работы и обратно, без учёта внеплановых поездок. К слову, мой хороший знакомый примерно в то же время, что и я, купил себе в кредит новый импортный бюджетный автомобиль, в адрес которого на тот момент я выражался: «Ширпотребная телега, на которой стыдно на рыбалку выехать». За то свободное время, что я лежал под машиной, он подрабатывал в разных фирмах, чем-то занимался и радовался жизни. Он выплатил кредит за свой автомобиль, устроился на серьёзную работу, накопил денег и открыл своё дело. А я построил автомобиль! Здорово, не правда ли?

Ах да, к чему я? Я работаю IT-специалистом, потому что назвать себя системным администратором сейчас уже рука не поднимается. Но знаю одно: никогда больше не подойду к свободным операционным системам. Никогда больше не буду говорить: «Форточки — самое худшее, что мог придумать человек». Никогда больше не сяду настраивать серверы на FreeBSD. Никогда больше не буду соваться в стойки, если всё работает. Никогда больше не буду думать, что я умнее тех специалистов, которые пишут проприетарное ПО. Если я захочу добиться результата, куплю нужный инструмент и не буду изобретать велосипед. Пусть поклонники свободного ПО меня закидают шапками, хоть я и сам раньше любил freeware. Но я понял, что скупой платит дважды, и на первый взгляд дешёвая затея выливается всегда дороже. Всегда.


Спасибо, что вы прочитали этот монолог. Я не ищу понимания, но буду очень рад, если эта статья поможет хоть одному человеку. Благодарю вас — и да пребудет с вами сила, друзья!

12568

Говорит глас Гугла

На досуге приключился квест: кончились деньги на счёте мобильного телефона. Хотел было лёгким движением руки, не выходя из дома, пополнить баланс через интернет-банк, но оказалось, что пароль забыт. А чтобы сбросить пароль — нужно позвонить в техподдержку! Рекурсия, однако. И из дома выходить по-прежнему лень… Замечаю на страничке входа кнопочку «позвонить из любой точки мира», тычусь. Флеш просит разрешить сайту использовать средства связи — и вуаля, в колонках голос девушки-оператора!

На этом проблема бы решилась, будь у меня микрофон… Но его нет. Зато есть Гугл-транслейт. Выставляю в качестве устройства записи системный микшер, открываю страничку, ввожу «Здравствуйте» и тычу кнопку вызова техподдержки.

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

Когда я уже сам перестал верить в успех задумки, проверку после некоторой паузы сочли пройденной. Пароль был сброшен, телефон оплачен, а для оператора первой линии, возможно, жизнь уже никогда не будет прежней: так ведь недолго и в восстание машин с Матрицей поверить…

12533

Живая рекурсия

Пятница, вечер. Звонит мне знакомый, который работает бригадиром в компании, занимающейся СКС, и предлагает подработку в свободное время. Приводит он меня на объект, показывает, откуда и докуда нужно тянуть кабели. Всё стандартно, всё понятно, но есть одна загвоздка: все его рабочие на объектах, так что работать мне придётся одному, и сделать всё нужно за выходные. 500 рублей за метр работы, а метров там получалось довольно много. Деньги неплохие, но я так прикинул и пришёл к выводу, что один за выходные не справлюсь. Копаюсь в чертогах разума и вспоминаю про своего бывшего напарника, с которым уже давно не виделся. В своё время мы с ним вот так же много раз подрабатывали. Звоню, предлагаю подработку, привожу его на объект, показываю, откуда и докуда что нужно сделать. Напарник с серьёзным видом ходит за мной, молча кивает головой, со всем соглашается. Задаёт вопрос:

— Сколько за метр работы?

— 250 рублей на каждого.

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

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

Вот так мой напарник чуть не стал работать сам на себя, а я стал частью живой рекурсии.

12577

Горим и тонем

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

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

А теперь картина по минутам, как её увидел дежурный у себя на пульте.

12:00:00. Датчик температуры трансформаторной подстанции скачкообразно перескакивает с +60 °С на +176 °C. Видимо, был бракованный. Но в систему не закладывался алгоритм контроля неисправности оборудования, и, громко пискнув в колонки и подсветив на схеме красным, компьютер вырубает трансформаторную подстанцию, написав крупными буквами: «ПЕРЕГРЕВ». Дежурный немного напрягается.

12:00:02. Система видит катастрофическое падение напряжения в сети и, следуя заложенному в него алгоритму, запускает дизель-генератор. Дежурный звонит энергетикам, чтобы посмотрели, что с подстанцией. У генератора прогорает выхлопная труба, выхлоп идёт в помещение.

12:00:30. На пульте раздаётся тревожный писк, помещение с оборудованием отмечается значком и значком «пожар». Сообщение дублируется большими буквами под словом «ПЕРЕГРЕВ». Дежурный напрягается ещё сильнее.

12:00:35. Система, спасая корпоративное имущество, включает умную пожарную систему, переключая насосы в трубы пожаротушения, повышает их производительность и открывает вентили в помещение с огнём, то есть в траншею с оборудованием.

12:00:50. На пульте с тревожным писком отображается иконка о затоплении помещения с оборудованием. Под надписями «ПОЖАР» и «ПЕРЕГРЕВ» появляется ещё одна, соответствующая ситуации. Дежурный уже очень напряжён: в его инструкции ничего не написано о действиях в ситуации, когда одно и то же помещение перегрето, горит и тонет. Всё это время в траншею закачивается вода, приблизительно 10 кубометров в минуту.

12:01:10. В помещении дежурного с грустным писком на пульте появляется сообщение о неисправности пневматической системы и падении давления в воздухопроводе. Местом неисправности предательски обозначается всё то же помещение.

12:01:15. Отрубается второй компрессор. Критически падает давление воздуха. Перекрываются заслонки ресивера. Система отмечает надписью «УТЕЧКА» злосчастное помещение с оборудованием. Дежурный в панике: он не успевает обзвонить всех ответственных за выходящие из строя узлы.

12:01:42. Локальный апокалипсис продолжается. Генератор сообщает на пульт о неисправности системы забора воздуха и отрубается. К этому моменту вода достигает уровня крыши траншеи и начинает переливаться во двор. Аварийная система переходит на UPS.

12:01:45. Насосы сообщают на пульт, что без основного и аварийного питания они работать не будут, и отключаются.

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

12:01:48. Из-под крыши помещения начинается бурление параллельно с резким охлаждением воды.

12:02:00. Оживает датчик температуры, видимо, окрылённый общим охлаждением помещения, и радостно заявляет на пульт: «Ща напруга будет, начальника! Подавать?» — и заискивающе мигает окошечком подтверждения оператору. Дежурный, впав в транс, давит на большую красную кнопку: отключить всё, аварийно остановить производство.


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

12483

Вебдев руками юных дев

Мне 12. Серьёзно.

Я создаю сайты. Статейники, по большей части. Они работают на самописных CMS (автор — я). Проекты собирают от 500 уников в сутки. HTML, CSS и PHP изучала самостоятельно, сейчас вот Ruby учу. В общем, в вопросах современных технологий я более продвинута, чем мои сверстники, которые «хакеры».

Я уже привыкла, что меня никто и нигде не воспринимает всерьёз, поэтому везде прикрываюсь выдуманной личностью.

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

Захожу в кабинет. За столом сидит парень (на вид — класс девятый), который взглядом обезьяны уставился на экран монитора. Отдаю учителю флешку, смотрю на экран. Оказывается, парень проходит вёрстку, и ему дали простейшее (как мне кажется) задание — написать сайт-галерею на HTML + CSS. Картинки, само собой, нужно расположить в строчку. У него ничего не получается.

Подхожу. Объясняю, как это реализовать. Девятиклассник ошарашенно на меня глядит, а затем выдаёт:

— Что ты там понимать можешь, ты же ребёнок! Вот подрастёшь, тогда и будешь со своими советами лезть.

Я пожимаю плечами и отхожу. Учитель проверяет задание, я жду. Парень яростно тыкает в клавиши одним пальцем. Когда он отходит, я тихонько правлю код. Парень возвращается и сдаёт задание, гордо выпятив грудь.

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

12476

Пора готовить лыжи

Устроился в одну контору программистом с испытательным сроком. Как известно, для хорошего программиста язык — это инструмент, как для слесаря пассатижи.

Сразу предупредили, что язык сложный (Caché ObjectScript), и до меня было много претендентов, но никто не справился. Наставником определили бывшего препода по информатике, 50+.

Первое задание: морской бой. Консольный вариант: 80×25, мыши нет, псевдографика. Написал, показываю. Наставник негодует:

— А почему у тебя координаты надо вводить? Давай позиционирование по полю противника сделаем курсором и расстановку кораблей тоже.

Переделал, показываю.

— У тебя всплывающие сообщения игры слишком большие, давай окошки сделаем поменьше. И у меня всегда должно быть право выбора!

Уделал этот морской бой до неузнаваемости: фон псевдографикой, меню настроек фона, цвета окон, способы стрельбы, подсказки и т. д. Было бы в 90-е — продал бы его. Показываю.

— Ну, я тебе троечку с минусом за эту работу поставлю, только за то, что что-то делал.

— Тут оценки ставят?

— Нет, это чтоб ты ощущал.

Потом открывает код, и начинается самое интересное:

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

И начинает учить ходить заново:

1. Каждый оператор с новой строки!

То есть запись на C++ вида int a, b, c, d; должна быть:

int a;
int b;
int c; …

2. Если количество операторов внутри цикла или условия больше трёх — нужно выносить код в отдельную процедуру.

Запись вида:

if (k == 1) {
    f = "Фамилия";
    n = "Имя"; 
    o = "Отчество";
    t = "123-45-67";
} 

должна выглядеть так:

if (k == 1) { pr () }

void pr (void) {
    f = "Фамилия";
    n = "Имя"; 
    o = "Отчество";
    t = "123-45-67";
} 

3. Имена процедур называем большим буквами, и не более восьми символов. В то же время имя процедуры должно явно отражать её действие. Переменные и функции называем маленькими буквами, названия тоже должны быть недлинными, но информативными.

И тут мой наставник сразил меня наповал:

— Ты же знаешь, чем отличаются функции от процедур?

— Да. Функция возвращает значение, процедура — нет.

— Не только! — торжественно произносит он и вопрошает, тыкая курсором в код. — Это что?

— Процедура.

— Нет! Это функция, ты ж ей параметры передаёшь!

Я не нашёлся, что ответить.

Попробовав переписать программу на этот лад, я остановился, не дойдя до середины. Я запутался в своём же коде: какая процедура откуда вызвалась и к чему относится. Фантазия на имена процедур тоже кончилась.

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

12557

Свидетель Битрикса

На этом сайте стало мемом обсуждение темы взаимоотношений айтишников с окружением в виде кошек, пива, кофе, бухгалтеров, уборщиц, детей и так далее, а теперь ещё и «Свидетелей Иеговы». Держите мой пятак.

Разместили вакансию. Требования: коммуникабельность, трудолюбие, умение работать с такими-то CMS, всё как обычно, и отдельным пунктом — знание иностранных языков, хотя из описания вакансии ясно, что оно никогда не понадобится.

На собеседование приходит соискатель, у которого из пакета небрежно торчат какие-то брошюры на нескольких иностранных языках. И так ясно, что полиглот, поэтому об этом спрашивать его не стали. О CMS кратко расспросили, поняли, что знает. Приняли.

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

Год успешной работы. Наконец догадались посмотреть повнимательнее. Брошюры на иностранных языках оказались от «Свидетелей Иеговы» — они постоянно раздают свои материалы у метро на нескольких языках. Знания иностранных языков у сотрудника не было совсем — он делал вид, что читает, но оно за год так ни разу и не понадобилось. CMS’ит он хорошо, а большего от него и не требуется.

Мы его оставили.