Читая произведение З. Фрейда «Тотем и табу», понял, где коренится причина многих диких и нелогичных действий некоторых пользователей: в магической, а не причинно-следственной картине мира и следующей из неё анимистической технике, для которой и расстояния при отсутствии среды передачи не помеха, и телепатия в порядке вещей, причём между неодушевлёнными предметами тоже.
Ещё в 1902 году газеты просвещённой Англии писали, хотя и в качестве курьёза, о женщине, умершей от столбняка, потому что она по старому магическому обычаю заботилась о гвозде, на которой напоролась, а не о своей ране. Хочется верить, что многие здешние истории будут восприниматься тоже как проявление дикости не только в среде касты служителей вычислительной техники, но и во всём обществе много раньше, чем через сто лет. Но для этого помимо ликвидации компьютерной безграмотности надо, чтобы и сисадмины не строили из себя жрецов, подпитывая веру неокрепших умов, а знали матчасть настолько хорошо, чтобы суметь доходчиво и не привлекая магических сущностей отвечать на вопросы пользователей.
Компьютеры и прочая лабудень остались далеко в прошлом. Ну, как в прошлом — до армии увлекался. А сейчас семья, дети надо зарабатывать, а не просто работать.
Позвонил знакомый, сто лет с ним не виделись. Слово за слово — «О, дак ты ж связист, йопт! Поедем на дачу ко мне, интернет мне с 3Г-модема сделаешь». Обещание напоить шашлыком и накормить пивом сулило перспективы. На свою дурную голову согласился на выходных помочь.
День Ч, час Х. Выдвигаемся на дачу. Расположение дачи мне сразу как-то не понравилось. С одной стороны лес и за ним трасса на отметке +17 м от уровня горизонта, с другой стороны лес. Просто лес. Ни фига там нету.
Мне выдаётся компьютер, модем — и всё, в бой!
Для начала выясняется что сети нет. Хорошо… Сканирование сетей через телефон выдаёт всего две доступные. Знакомый посылается за модемом с яйцами. Ребёнок хочет мультики — не жалеем ни сил, ни времени.
Втыкаю новый модем. Хорошо, сеть есть, но не 3Г, а обычный GPRS. Брожения по участку и в пределах дома признаков 3Г не выдают. Чешем репу, накатываем. Знакомый снова отсылается в город с женой за рулём. Привозит самый дешёвый планшет…
Погуляв вокруг дома, на втором этаже ловим-таки 3Г. Путём нехитрых манипуляций крепим планшет на антенну от старого телевизора, и интернет становится даже не 3Г, а 3G. Покурив, выстраиваем конструкцию хенд-мейд: стол, на нём коробка из-под доширака, сверху стальная решётка от гриля, на ней стоит круглая антенна от телевизора, в которую воткнут планшет, к которому подключено зарядное, и всё это пашет на ура и раздаёт вайфай с приличной такой скоростью.
Сегодня утром я сделал открытие. Я понял, отчего звереют сотрудники мобилоремонтов.
Наткнулся на одном форуме на длинную тему, начатую в 2007 году, а оконченную аж в 2012-м. Вся она посвящена вопросу, как «без палева» (слово-то какое!) перед самым окончанием гарантийного срока испортить мобильный девайс так, чтобы на экспертизе решили, что он сломался сам, и вернули деньги.
Таких пользователей мало, но тень от них падает на всех остальных. Вы ж не только бездушные железки ломаете. Вы ж загружаете живых сотрудников СЦ экспертизами, за которые они от вас не получают ни копейки, поэтому вынуждены повышать цены для остальных. А потом страдают другие живые люди, которые не фокусничают, а вынуждены переплачивать.
Не нравится нечестность многих (не всех!) мастеров? Боритесь с ней не негативными, а позитивными методами. Каждая неисправность индивидуальна, каждый пользователь индивидуален, каждая железка индивидуальна. Чувствуете, что справитесь — направьте свои скиллы не на поломку «без палева», а на самостоятельный ремонт. Чувствуете, что не справитесь — проголосуйте рублём за того ремонтника, который не обманывает. Обманывающий сдуется сам. А то выдумали: пока одни стараются продлить срок службы устройства с установленных производителями двух-трёх лет хотя бы до десяти, что вполне реально, другие искусственно его портят. Не смешно самим-то?
Я нового ничего не сказал. Такое давно имеет место на одном форуме по ремонту холодильников. Там мастера не секретничают, а обладают невероятным чутьём. Чувствует ремонтник, что клиент справится сам — жертвует хлебом, чтобы спасти репутацию. Во всех подробностях рассказывает, где купить запчасть и как её поставить. Чувствует, что не справится — объясняет, почему лучше самому не лезть, предлагает свои услуги и получает честно заработанный хлеб. А клиенты, в свою очередь, не занимаются выкрутасами с гарантиями. Вот бы эту идиллию, да в мир мобилоремонта!
Есть фирма, названная в честь того, что погубило построенный профессионалами «Титаник», но не тронуло построенный любителем ковчег. Там есть как мастерская, так и магазин запчастей для желающих починить самостоятельно. Выбирай тот путь, который нравится! И рубрика «вопрос — ответ», где можно получить совет. И, что характерно, глыба эта уверенно плавает по рынку десятилетия два, никого не задевая, и сама не разоряется.
Термостат настраивал. Вспомнил уроки информатики в четвёртом классе. БК-0010 с Бейсиком, 16-битный процессор, 32 килобайта ПЗУ, 16 ОЗУ, 16 видеопамяти, разрешение 512×256, несколько десятков клавиш. Достаточно ресурсов, чтобы сделать имена переменных многосимвольными. Но они односимвольные.
А термостат? Внутрь не лазил, но навскидку — контроллер восьмибитный, ПЗУ килобайт восемь, ОЗУ килобайта два. Видеопамять отсутствует как класс, индикация — восемь семисегментных знакомест. Кнопок всего три. Казалось бы, надо каждый байт экономить, но нет — имена переменных четырёхсимвольные.
Что имеем в первом случае? Программистов, которые задолго до БК работали на чём-нибудь с намного более ограниченными ресурсами и, получив в распоряжение машину с бóльшими ресурсами, от привычки экономить память не отказались.
А во втором? Наоборот. В распоряжении программистов современная персоналка, которой БК по ресурсам в подмётки не годится, где экономить не надо ничего, а когда понадобилось написать прошивку для контроллера, где ресурсов меньше, чем в БК — привычка экономить сама ниоткуда не взялась.
Потому что ничего само ниоткуда не берётся. Даже привычки.
Большинство спама с рекламой летит в «Нежелательные». Можно почти не глядя очищать папку, но в последнее время спам стал обходить фильтры. И знаете как? Спамеры взяли на вооружение русскую классику XIX века!
После рекламы какого-нибудь дурацкого такси или ликвидации предприятия просто вставляют несколько произвольных абзацев из романа. Вот из сегодняшнего спама:
Толпа дворовых не высыпала на крыльцо встречать господ; показалась всего одна девочка лет двенадцати, а вслед за ней вышел из дому молодой парень, очень похожий на Петра, одетый в серую ливрейную куртку с белыми гербовыми пуговицами, слуга Павла Петровича Кирсанова. Он молча отворил.
И всё, это как бы осмысленный текст, и спам-фильтры его пропускают.
Если бы писателям сказали, что роботы будут бомбить почтовые ящики, завернув рекламу в их нетленку, они бы, верно, пришли в ужас!
Суть такова: есть заграничная контора, в которой я теперь работаю, есть отечественный клиент, которому контора продаёт своё супер-пупер-кастомизированное решение и саппорт к нему, и есть ещё одна отечественная фирма — ей клиент заказал дополнительную бизнес-логику, которую следовало интегрировать в наш софт через веб-сервисы.
В контору я пришёл сравнительно недавно, когда проект уже прошёл стадию тестов, более-менее стабильная версия была внедрена в сети, шла активная полировка и вылавливание блох. Мой ПМ страшно обрадовался программисту, свободно владеющему русским языком, и я, наивный человек, не придал этому особого значения. Ну, возникают недопонимания, с кем не бывает. Собственно, в основном именно по этому проекту я и должен был работать.
Где-то на стыке с внешней бизнес-логикой выловили целую пачку багов. Вооружился, значится, я утверждённой всевозможными аналитиками и менеджерами документацией… и вот тогда мне поплохело.
Договор на внешний модуль заключён между клиентом и фирмой. По-русски, без перевода для конторы. ТЗ написано фирмой и утверждено клиентом. Перевод не предусмотрен. Формулировки — размытей не бывает: модуль будет петь (что именно? на каком языке? как громко?), танцевать (что именно? как долго? ему музыка нужна будет?) и читать стихи (ну, вы поняли). Из всей полезной документации для интеграции — скупое описание контракта веб-сервиса.
Мой предшественник закинул этот «документ» в Гугл-транслейт, прочитал, пожал плечами и прикрутил модуль к софту самым простым способом: «получил — отправил», эксепшны в лог, вот и весь разговор.
Клиент, разумеется, завалил нас багами: тут не сходится, там не работает, это вот плохо, ваш софт говно, мы несём убытки. Стал я при поддержке ПМа теребить фирму — оказалось, нюансов в работе их модуля на пару добрых А4. «Вот это событие должно обрабатываться особым образом, вот это, хоть оно и есть, вообще нужно игнорировать, тут нужна дополнительная проверка, а вот тут — ни в коем случае не проверять, а то отвалится. Говорите, при вот этом пустом значении сервис падает через эксепшн? Ну, убедитесь, что такое не будет к нам отправляться, мы дополнительные проверки вводить не будем».
Клиент уже и не рад. Смотрит на ТЗ, а придраться-то и не к чему: технические аспекты интеграции там не оговорены, наши требования и пожелания к внешнему модулю — тоже такого нет. Фирма, ясное дело, не горит желанием вносить изменения в уже проданный продукт — нехотя исправляет только слишком явные косяки.
Но в самом глубоком и тёмном месте моя контора: решение-то работает с багами, чтобы от них наверняка избавиться, нужны изменения во внешнем модуле (либо основательная перестройка логики нашего софта, что по целому ряду причин не представляется возможным), а заставить «хитрых русских» делать то, чего они не хотят и, если совсем формально, не обязаны — заданьице то ещё.
Мораль: если вылезет ещё хоть один баг, который окажется очередной «фичей», совершенно не согласованной с интеграцией в наш софт, я пойду и набью нашему менеджеру морду. Чтобы он больше никогда, никогда не отдавал на откуп клиенту заказ и ТЗ на модуль, за работу которого нам потом придётся отвечать. Пусть даже если клиент и подрядчик могут свободно между собой договориться, а ты с ними — нет.
Когда я только ещё начинал свой неловкий путь девелопера, выдали мне небольшой проект (по сути — импорт данных из одной системы в другую) с заданием «добавить новую фичу». По-хорошему, задание нужно сделать было за два-три дня, я же умудрился по незнанию растянуть всё это дело на неделю с хвостиком. В понедельник, перепроверив всё, что только можно, закоммитил, собрал патч и со спокойной душой ушёл домой.
Утром меня ждало письмо с заголовком «Ни черта не работает». Удивляюсь: кроме меня, на сопровождении этого софта больше никто не работает, вчера всё проверял при тестировщике. Запускаю программу — реально ничего не работает! Точнее, записи по кругу импортируются, как в бесконечном цикле.
Данные источник поставлял в виде XML-сообщений, а уникальность проверялась по дате создания. Почему-то творец логики решил особо не заморачиватся с парсингом и сравнивал записи о дате создания как строки. В источнике формат
dd/MM/yyyy
, в приёмнике —
d/MM/yyyy
. А так как моя работа над всем этим пришлась аккурат под конец месяца, баг только сейчас и всплыл. Закончил бы раньше — так бы и не узнали до продакшна. Как это не выловили за два долгие года работы на продакшне — ума не приложу.
Две вещи, которые я вынес из всего этого:
я никогда не смогу учесть всего, и моё творение обязательно упадёт/зависнет в последнюю секунду 29 февраля високосного года;
данные нужно приводить к виду, с которым нужно работать.
Без общения с единомышленниками обладатель любого хобби действительно зачахнет. А будет ли это общение реальным или виртуальным, не столь важно.
Год был 1996-й. Так получилось, что я оказался единственным ретрокомпьютерщиком на весь свой район и несколько близлежащих. У меня — ZX и БК, у остальных — либо приставки, ретрокомпьютерами тогда не считавшиеся, либо разнокалиберные PC от 286-го и выше. В школе — тоже не первой свежести, но PC. Интернет и Фидонет были недоступны по причине страшной дороговизны модемов. Общаться на тему ретрокомпьютинга было абсолютно не с кем. А хотелось!
Как-то увидел телепередачу о неком клубе-центре для реабилитации шизофреников. Реабилитация была многоплановой: арт-терапия, музыкотерапия, сценическое искусство и… программирование. Увидев класс для последнего вида терапии, я обомлел: стройные ряды величественных Daewoo CPC на Z80!
Я долго кусал локти, что не успел записать координаты клуба, а передачу больше не повторяли. Ради того, чтобы в неформальной обстановке пообщаться на его занятиях по программированию с единомышленниками по ретрокомпьютингу, я был от безрыбья готов на всё. Даже прикинуться шизофреником!
Работал я эникеем около года и решил, что пора расти. Пошёл учиться в некую %academyName%, где обучают всяким IT-специальностям. В группе, ориентированной на программирование и системное администрирование, оказалось, к моему удивлению, две девушки.
Шёл второй день обучения. В ходе разговоров на всякие темы по железу одна из девушек то ли по необходимости, то ли для поддержания разговора задала вопрос.
— А как долго должна заряжаться батарея от UPS?
— Ну, смотря какая батарея.
— У меня бесперебойник неделю стоит пищит, светится индикатор «Батарея заряжается». Сначала, когда его купили, такого не было, а потом я включила в него пылесос…
Дальше все ржали.
Мой интерес взял верх, и я решил узнать подробности. Пылесос проработал около трёх секунд, «очень тихо», после чего бесперебойник умер.
Какой способ насолить конкуренту эффективнее, чем заслать казачка? Заслать дурачка.
Дурачок нечаянно натворит больше бед, чем казачок специально. Не говорите ему, для чего засылаете. Просто зашлите. Дальше он, сам того не ведая, сделает всё сам. Потом его, конечно, выгонят, но перед этим он успеет попортить конкуренту немало нервишек.
И не вздумайте заслать казачка, косящего под дурачка. Так, как у настоящего дурачка, у него не получится.
Вот такие мыли навеяла бригада установщиков, поставивших в нашем универсаме холодильную витрину вверх ногами и долго не понимавших, что они сделали не так.