Сменилось руководство, притащило своих программистов кодить 1С. Не знаю, кто они, но точно не программисты жёлтой. И начали они кодить…
«Что такое ссылка? Я не понимаю!» — восклицал их начальник. Он же в запросе ставил условие
ЭтоГруппа = 2
. В этот момент мне вспомнился фрагмент из «Футурамы», когда Бендеру снится кошмар, где всплывают единицы и нули, и он просыпается с криком: «Кажется, я видел двойку!» При моей поправке, что нужно поставить 0 или 1, мне ответили тоном мудреца: «Не надо! У нас тут своё». Естественно, ничего не выполнялось и указывало ошибку на это условие. И все эти эксперименты — на рабочей базе.
Дальше — больше. Был показан крутой отчёт, над которым ребята трудились месяц. Параметров нет, отборов нет, группировок нет, поля поменять местами или убрать нельзя: всё жёстко забито в коде и выполняется только при открытии. Чтобы посмотреть данные, нужно переоткрыть отчёт. Функциональность на высоте: запросы написаны на T-SQL и к базе обращаются через ADO в обход RLS и всего остального «ненужного». Пофиг, что теперь все смогут увидеть информацию, которую не положено; пофиг на то, что мы полгода потратили на разборку, что и кому показывать…
Появляется второй отчёт. Нет, теперь 1С не нужна. Они из Экселя макросом дёргают инфу из базы. Ага, с полными правами и открытым паролем, вписанным в код (безопасники рукоплещут). 1С же «тупит», так быстрее. А ещё информацию можно менять напрямую.
Прошло время, база стала тупить ещё больше. Блокировками уже никого не удивишь. Стало ещё хуже, чем было. Печально, что из-за действий вот таких людей и формируется отношение к программе конечных пользователей.
Пятница, вечер. Звонит мне знакомый, который работает бригадиром в компании, занимающейся СКС, и предлагает подработку в свободное время. Приводит он меня на объект, показывает, откуда и докуда нужно тянуть кабели. Всё стандартно, всё понятно, но есть одна загвоздка: все его рабочие на объектах, так что работать мне придётся одному, и сделать всё нужно за выходные. 500 рублей за метр работы, а метров там получалось довольно много. Деньги неплохие, но я так прикинул и пришёл к выводу, что один за выходные не справлюсь. Копаюсь в чертогах разума и вспоминаю про своего бывшего напарника, с которым уже давно не виделся. В своё время мы с ним вот так же много раз подрабатывали. Звоню, предлагаю подработку, привожу его на объект, показываю, откуда и докуда что нужно сделать. Напарник с серьёзным видом ходит за мной, молча кивает головой, со всем соглашается. Задаёт вопрос:
— Сколько за метр работы?
— 250 рублей на каждого.
И тут он складывается пополам и начинает не то что смеяться, а натурально ржать, разве что на землю не падает и не катается. Я стою и не знаю, что делать: то ли в больницу звонить, то ли ещё куда. Смотрю по сторонам — вроде всё нормально. В голове умножаю деньги на метры — получается довольно солидная сумма. В общем, стою в ступоре. Когда напарник отсмеялся, вот он мне что поведал.
Недавно он устроился в начинающую компанию админом. Сняли они здание, инфраструктуры ноль. Так как работы там достаточно много, он решил нанять подрядчика для протяжки СКС. Выделили ему средства, он нашёл подрядчика за 1000 рублей метр. Так вот, объект, на который я его привёл, и есть его контора, а мой знакомый бригадир — его подрядчик. Тут уже и я сложился пополам от хохота.
Вот так мой напарник чуть не стал работать сам на себя, а я стал частью живой рекурсии.
Был у меня сервер на Linux. И случилась с ним беда как-то — что-то нехорошее произошло. То ли сеть из-под ног выдернули, то ли что… Работает, пингуется, можно зайти, творить что угодно, только вот Самба отказывается принимать новые подключения.
Сервер далеко, подключаюсь удалённо. Пробую перезапустить службу — затык. Процесс завис где-то на ядерной функции. Пробую прибить — не прибивается. Перебираю все возможные сигналы, даже SIGUSR1 — глухо.
Хм. Что ж, делать нечего — перезапустим сервер.
shutdown -r now
. Энтер. Отключаюсь. Через полминуты снова подключаюсь. Уже загрузился? Хорошо. А Самба? Снова? Нет, стоп. Аптайм — много дней. И тикает.
Паника.
Паника-паника-паника.
Думаю.
init 6
?
reboot
?
halt
?
kill 1
? Аптайм продолжает идти, зараза.
Так, пошли грязные методы. Хорошо что есть рут-доступ. Вотчдог есть софтверный. Не получается повесить. Занулить память ядра? Нет. Как-то вызвать панику ядра? Система стабильная нынче, и старые шутки типа битого образа по сети не работают. Что ещё, что ещё?
«Нет, хозяин, ты велел работать».
О! Точно! Вот оно! Как хорошо что я не отключил в приступе паранойи magic SysRq!
Как только получил очередной наборчик с популярным микроконтроллером, кинулся пробовать очередную поделку. Схемка давно нарисована, частично на макетке уже натыкана, скетч давно накидан. В общем, дело за малым: дотыкать пару мосфетов и проводков и загрузить код в контроллер.
Так, по привычке берём красненький под питалово, чёрненький под землю и цветной — красивенький, оранжевый, из нового набора — под управляющий. Ага, ну кто ж обещал, что с первого раза да без отладки? Ничего, ща проверим… Так, питание есть, транзисторы не выбиты, секции индикаторов работают, пинами не промахнулся… Больше вроде ломаться нечему. Ага, продублируем вывод управляющего пина и посмотрим в порт… Есть. Непропай пина? Нет, логика исправно дёргается. Притянуть управляющий к земле на макетке резюком понежнее? Сделано, и всё равно лежит на этой самой земле мёртво…
Три вечера одних и тех же проверок. Не проверены остаются только шесть проводков, из которых два — питание, исправно идущее, и четыре цветных сигнальных, из которых три уже использовались ранее для макетирования… Стоп! Красивенький, оранжевый, новенький выдрать из конструкции — и на омметр. Твою ж мать! Красивенький, оранжевый, новенький проводничок оказывается изолятором.
Сделал для себя два вывода:
Теперь я знаю точно: невозможное — возможно! Приходится соглашаться с автором, хоть и не поклонник.
Перепроверять следует даже самые простые и очевидные вещи.
Препарирование показало, что торопливые узкоглазики запаяли в термоусадку проводок, обжатый без снятия изоляции. После замены ненавистной оранжевой гадины конструкция заработала на ура без дополнительных отладок.
Зашёл я как-то в гости к маме, которая теперь работает в моей альма-матер. Один из двух высших колледжей страны. Гордость. Выпускает каждый год кучу «паяльников» и кодеров.
Сам когда-то в нём подрабатывал, но потом ушёл. Сеть, система, компьютеры — всё это было довольно хаотичного вида. В аудиториях часто были эпидемии, с ними с переменным успехом справлялись. Иногда происходил тотальный экстерминатус переустановкой операционки. Интернет скоростью под 50 килобит (да, именно килобит) на компьютер в лучшее время. Сотрудники почти полностью менялись за год-два.
За неделю до прихода в гости. Первая жалоба: не печатает сетевой принтер. Местные сисадмины сказали, что это невозможно, ибо на одном компьютере «семёрка», на втором — «хрюша». На клочке бумажки записываю алгоритм действий: зайти на сайт, скачать драйвера и так далее.
День до прихода. Сисадмины поставили дрова. Принтер заработал. Сисадмины грешат на магию, ибо оно ведь не должно работать! По договору с матерью всё-таки прихожу в гости глянуть, что там у неё с компами.
Я в гостях. Пью чай, а в голове крутится фраза: «Понабирали по объявлениям!» Мифический компьютер с «семёркой» оказался обычной «хрюшей», даже без следов присутствия «зверя» или других украшательств. Как её приняли за «семёрку» — до сих пор не пойму. Дальше — лучше. Из трёх компов на одном стоит свежий антивирус, на втором базам полгода, на третьем вообще нету. Мать записывает на бумажке: «Попросить ВЦ установить антивирус».
Попросили установить карту города. Поставил на закачку. Ну, скорость с моих времён выросла. В два раза. При условии, что во всём здании сейчас от силы человек десять, скорость в 110 килобит как-то настораживает.
Следующая жалоба — как-то долго открываются вордовские файлы на одном из компьютеров. Машина — 1,8 гигагерц, 512 RAM, «хрюша» зверевской сборки, куча приложений и десятый Офис. «Поставить Офис 2003 или ХР», — записывается опять на бумажку.
Следующая просьба — сказать, какая скорость интернета тут. Сисадмин сообщил, что на одном компьютере гигабит, на втором — сто мегабит. «Понабирали по объявлениям», — опять звучит в мозгу.
Неделя после посещения. Сисадмины проблему отсутствия антивируса решили полным восстановлением системы после перезагрузки и снесли везде антивирусы (даже где стояли со свежими базами).
Сижу сейчас, пишу матери список, ради чего сейчас надо будет каждый раз вызывать админов, чтобы обновили образ для обновления. Пока выходит чуть более десятка пунктов, которые будут выполняться в день несколько раз.
Интересно, что на это придумают отважные бойцы патч-корда и свитча?
Вот тут недавно появилась история: бедного студента колледжа злые преподаватели не хотят мотивировать и заинтересовывать. Уж простите, но что вы ожидали, идя на программиста и не умея программировать до этого? В Советском Союзе, говорят, система образования была хорошая, инженеры выходили такие, что весь мир с руками отхватывал. Так, в принципе, и было, но мы уже не в Советском Союзе живём. Мы живём в современном мире, где цель любого учебного заведения — не знания, а бумажка. И не надо тыкать пальцами в Россию: дела обстоят так у половины Европы, и если вы об этом не знали до уже вполне взрослого возраста, то, видимо, росли вы в каком-то розовом пузыре.
Я не хочу сейчас никого обидеть, но претензии эти для меня звучали как крик капризной принцессы, которая топает ножкой и кричит: «Программистом быть хочу, пусть меня научат». Но желание учиться у вас пропало за один (sic!) год, и говорите об этом вы так, будто это чьи-то проблемы, кроме ваших. Вот уже появилась одна история от девушки, которая добилась успеха самообучением. Я уверен, что к концу недели IT happens будет завален подобными историями, потому что либо так, либо никак.
Могу рассказать и свою историю. Я тоже учился в колледже, пусть и на специальности, не связанной с программированием: «Вычислительные машины, комплексы, системы и сети». К четвёртому курсу я уже свободно писал на C/C++, PHP, C#, имел несколько своих мелких проектов, а изучение нового языка занимало у меня один день курения исходников работающей программы, будь то хоть скриптовый Lua для аддона к игре, хоть извращённый BYOND. И не требовалось мне никого, чтобы меня мотивировать и учить. Единственным курсом из этой области, что я когда-либо прошёл, был кружок изучения JavaScript в седьмом классе.
Вы с такой ненавистью адресуете все свои проблемы колледжу, но с чего вы взяли, что в вузе будет как-то по-другому? Спойлер: будет всё то же самое, только тем самым парам программирования, где вас не мотивируют, будет уделено меньше времени за счёт философии, права и экономики. Недавно ко мне обращался младший брат моего хорошего знакомого, просил помочь ему с ассемблером, потому что это требуется в курсовике, а он ничего не знает. Преподаватель, мол, появилась всего раз, сказала: «Там всё просто, сами поймёте», — и ушла на больничный до конца семестра. Это, если что, один из лучших вузов северной столицы.
Однажды один мой преподаватель сказал: «Единственная цель любого учебного заведения — не научить вас чему-либо, а чтобы вы научились учиться». И это чертовски верно: пройдя все сессии, выдавая свои два грамма знаний за тонну, отвечая на тему, о которой ты услышал впервые на экзамене, обладая лишь телефоном с 2G, проводя несколько ночей без сна подряд, ты учишься поглощать информацию, как губка, учишься гуглить так, что один запрос ответит сразу на три вопроса, да так, чтобы прочитать было можно успеть за то время, пока преподаватель отошёл в туалет. И это то, чему нигде больше тебя не научат, в отличие от программирования, которое все и так изучают дома. А если нет мотивации, то стоит задуматься о другой профессии, пока ещё не поздно.
Сапожник в грязных, но очень удобных и долговечных сапогах, сливающихся с грязными ногами, бывает. Но бывает и так, что действительно без сапог. Итак, встречайте: родители, абсолютно не умеющие плавать, но научившие этому детей.
Помогла им в этом старая брошюра «Плавать раньше, чем ходить», в которой описана популярная некогда методика обучения плаванию грудных детей дома в ванне. Нельзя сказать, что со всеми детьми получается, но с этими получилось. И, естественно, умение плавать от того, кто обучает, при этой методике не требуется. А взрослому учиться по такой книжке уже поздно — нужны совсем другие методики.
Видимо, их кто-то знает. Не просто так на улицах иногда раздают рекламки «Обучение взрослых плаванию». Я поначалу был уверен, что эти учителя разорятся: где они хоть раз видели взрослого, не умеющего плавать? А вот теперь я двоих таких взрослых знаю. Получается, контингентом подобные деятели не обделены. Он мал, зато стабилен.
Вот таковы порой и учителя информатики. Бывает, что они просто читают вслух учебник, в котором сами ничего не смыслят, а «школоло» оказывается совсем не «школолом» — слушает, пробует, да и впитывает. А другие люди раза в два-три старше этих учителей не знают компьютерной грамоты совсем — и где же найти метод, чтобы научить их самостоятельно «плавать» в компьютерном мире и слезть с шей молодых органических посредников?
С рабочим компом приключилась беда. Внезапно изображение на экране зависло и перестало реагировать как на манипуляции с клавиатурой, так и на магические пассы мышкой. При этом жёсткий диск, судя по индикатору обращений, не был чересчур занят. Потыкавшись туда-сюда, я решил перезагрузить компьютер. Выключил его кнопкой на корпусе, дал минутку отдохнуть, включаю обратно — растение семейства капустных вам, в смысле, хрен. Не включается компьютер, откровенно наплевав на тычки в кнопку включения.
Ладно, выключил его из розетки, подождал десять минут, подключил питание обратно, пинаю компьютер в область кнопки включения. Комп включается, радостно добирается до заставки входа в Windows и зависает снова. И вроде поле ввода пароля видно, и кнопочка выключения тут же есть, но ничего не работает: курсор не двигается, нажатия клавиш не производят видимого эффекта.
Типичная картина перегрева. Я мог бы попробовать проверить температуру процессора сам, но BIOS запаролен, а системник заперт на замок, так что приходится звонить нашей техподдержке. Вот только как покороче сформулировать анамнез?
Чувствуя себя блондинкой в самом плохом смысле этого слова, я вынужденно сообщаю снявшему трубку технику:
— У меня компьютер не включается и не выключается!..
Вместо постскриптума — «В мире мудрых правил»: для обращения в техподдержку по поводу неисправностей с компьютером необходимо составить заявку в электронной форме на внутреннем сайте техподдержки. Соль ситуации в том, что заявка обязана быть составлена с того компьютера, к которому вызывают техника, чтобы он мог прихватить с собой подходящие детальки… А иначе никак!
Часто айтишники не любят интересоваться тем, что их не касается, но вот эта конкретная тема обычно касается практически каждого. Речь пойдёт о колл-центре.
Представьте себя на стороне, скажем, провайдера: у вас три специалиста, которые могут ответить на телефон и исправить ошибку.
Пока у вас десяток клиентов — проблемы нет. Сотня — уже напрягает: надо же иногда и отойти, а ещё звонят ночью, в выходные. Держать дежурную смену — можно, конечно, но это ведь либо по одному человеку в смену, либо так же, по три, но в три смены, итого девять. И всем нужна зарплата, за всех надо заплатить НДФЛ, в ПФ, ФОМС…
Но вот у вас уже тысяча человек. Среди них обязательно найдется свой «ни единого разрыва!». Обязательно найдётся инженер с тремя «вышками» или профессор кафедры института, который будет учить вас, «молодой человек», работать с компьютерами и спрашивать, какой стороной вставляется флешка. Найдутся болтуны, тупицы, хамы. И пока задолбанный вконец специалист будет слушать тонны мата, ещё пара десятков не сможет дозвониться.
Для этого придумали колл-центры: там работает много людей, отобранных по принципу «здравствуйте, мне на вас пофиг, чем могу помочь?», которые будут принимать звонки круглосуточно. Если вы не можете содержать свой собственный колл-центр, придётся арендовать услугу у профессионалов.
Профессиональный сотрудник колл-центра ответит на вопрос «как выйти в интернет, если вот такая и крутится вот так, вот так», «сколько стоит лак для ногтей» и «подходит ли эта кувалда к „Тойоте-Прадо“?» Для этого у него есть инструкции с тупыми вопросами и вариантами ответов от фирм, заказывавших услуги.
Наезжая на сотрудника, вы не добьётесь ничего: в инструкции наверняка нет пункта «при истерике включить доступ». Просто, если вы считаете, что прохождение по списку вопросов зря отнимает ваше время, постарайтесь пройти его быстрее, и тогда вас, возможно, переключат уже на специалиста.
И не расстраивайтесь: в конце концов, ведь именно вы могли бы оказаться тем самым, «без разрывов», или занудным инженером-незнайкой, или просто тупым хамлом. Но не оказались ведь, правда?
Читаю все эти истории и все больше убеждаюсь, что в глазах админов любая компания существует только для того, чтобы купить админу компьютеры и роутеры, обеспечить его игрушками. Всё остальное — чепуха.
Много лет назад я воевал в одной компании по поводу компьютеров и интернета. В самом прямом смысле: чтобы покупали компьютеры и подключали интернет. Помню визг главбуха на совещании, что это у меня «детство в жопе играет», а компьютеры и интернет мне нужны для того, чтобы «смотреть порнографию».
Я победил, конечно. Точнее, само время победило. Шеф поддержал — он видел, что без этого уже не обойтись.
Постепенно мы стали пересылать документы электронной почтой. Со временем я начал внедрять автоматизацию учёта и выгрузки подвижного состава. Было интересно и весело. Но в один прекрасный день шеф вызвал меня на ковёр и устроил тотальный разнос по поводу отсутствия журналов учёта. Обычных толстых журналов, куда ручками всё вписывалось. Разнос был очень унизительным, я смириться не смог и вскоре ушёл из той компании. Я никак не мог взять в толк: зачем нам это ретроградство, когда есть компы и всё такое?
Сейчас я сам шеф, у меня свой ресторан и две транспортные компании. Сегодня я сам поддерживаю молодых и активных парней. Но всегда и везде я им вдалбливаю, что помимо крутых компов и сканеров штрихкодов под рукой обязан быть старый добрый журнал, куда всё будет записываться руками. Точнее — должна быть возможность вести записи руками. Так-то хоть печатайте его на принтере.
Почему?
Да потому, что даже если я увижу на горизонте ядерный гриб, моя компания будет продолжать работать, потому что помимо всяких новых модных фишек, которые, не спорю, очень и очень облегчают и ускоряют работу, в компании есть запасная линия, которая подхватит дело, даже если компы вообще исчезнут. Никакой обиженный админ не сможет повлиять на работу компании, оставив программную бомбу. У нас никому и в голову не придёт сказать: «Я ничего не делаю, потому что комп не работает».
Так что да: админы админами, но цель у компании всегда совершенно не связана с ними.