Решил я поставить Acronis True Image, дабы создать резервные копии разделов с Минтом и «хрюшей». Установил, создал загрузочный диск и решил посмотреть, что он собой представляет. Ну, перезагрузился с диска, на экране какая-то пиксельная размазня вместо интерфейса, текст вообще нечитабелен. Плюнул, помянул недобрым словом разработчиков, перезагрузился.
Уже в процессе прорисовки рабочего стола винда повисла. Намертво. Жму ресет — винт не запускается. Вообще. BIOS уверен, что винта у меня и никогда не было. Жму ресет ещё раз. Результат тот же. Ну, думаю, всё, хана винту… Выключаю комп, лезу в системник, поправляю молекс, стартую комп. Система заводится, загружается.
Несмотря на то что проблема была найдена, меня всё равно не покидает ощущение, что Акронис таким образом решил продемонстрировать мне необходимость резервирования в целом и своей программы в частности.
Несколько лет назад на просторах нашей необъятной появился чудо-сервис: интернет 3G. Это он только так называется — «мобильный интернет», а на практике понадобился он людям не только для мобильных телефонов, но и для подключения компьютеров, по тем или иным причинам не имеющим нормального проводного интернета.
Для того чтобы компьютер подключить к 3G-интернету, нужны 3G-модемы, которые один из операторов начал продавать в своих салонах связи. При всей сложности внутренней начинки — с точки зрения компьютера 3G-модем выглядит всего лишь как обычный модем (это важно), только быстрый. В остальном — обычный модем с AT-командами.
И тут оператор задумался: вот мы продаём новые модемы, чтобы наши абоненты пользовались нашим интернетом и платили нам за это деньги. А что, если абонент решит взять наш модем и перейти к другому оператору? Не будет этого!
Конечно, в антимире оператор бы попытался выиграть борьбу за абонента за счёт расширения зоны покрытия, улучшения приёма, повышения скорости и снижения тарифов. Но это не наш метод! Решили пойти привычным путём запретов: прошивка модемов была изменена так, что модем просто отказывался работать с SIM-картами других операторов. А что, проверенное решение, да и мировой опыт одобряет.
Абонентам это не очень понравилось: модемы-то хорошие, да вот со связью не всегда всё хорошо. Умельцы подумали-подумали — да и родили команду разлочки, после которой модем начинал работать со всеми.
Оператор это дело решительно пресёк: следующая партия модемов была доработана так, чтобы не просто блокировать работу с чужими SIM-картами, но ещё и требовала раз в пару минут вводить секретный код, а не то модем отключался. Вводом кода занималась фирменная программа-звонилка, устанавливаемая в качестве драйвера. Но если для пользователей Виндоус обязательность драйверов на каждый чих очевидна, то пользователи других ОС расстроились: был модем как модем, включи и работай, а теперь надо устраивать шаманские пляски с бубном, чтобы написать скрипт, который будет во время работы запихивать в модем какие-то коды. Тем более, что фирменная — только под Виндоус.
Но и на этом оператор не остановился: видимо, кому-то пришла в голову светлая мысль, что если обязать пользователя пользоваться только фирменной программой дозвона, то можно ведь потом через неё и рекламу показывать, а значит, заработать на этом?
Поэтому или не поэтому — неведомо, но какая-то причина побудила оператора в новой партии модемов усилить защиту: теперь секретный код менялся по какому-то хитрому алгоритму, зашитому в модем и в программу дозвона. Соответственно, ни на какой другой ОС, где этой программы не было, модемы нормально не работали: код менялся постоянно, какой вводить — непонятно, соединение рвётся через пару минут.
Умельцы почесали репу и нашли прошивку аж из Австралии, с помощью которой можно было отучить модем делать нехорошее и заставить его работать нормально. Разумеется, после этой операции все ухищрения с залочкой снимались раз и навсегда.
Оператор этого так не оставил: в следующей партии модемов была встроена защита от перепрошивки. Знатоки уверяли, что там были изменения на аппаратном уровне, что-то где-то то ли откусано, то ли недопаяно, но перепрошить модем на нормальную прошивку стало невозможно, а с родной он требовал себе фирменную виндовую программу, которая нигде, кроме Виндоус, не работала.
Уж не знаю, кто это придумал — но и эта защита была побеждена: оказалось, если подключить модем через специально спаянный шнур с кнопкой-размыкателем питания и при перепрошивке строго в определённый момент, угадываемый интуитивно, нажать на эту самую кнопку, то прошивка всё-таки происходит, после чего модемом снова можно нормально пользоваться.
Наверное, оператор придумал бы что-то ещё — но к этому времени наконец-то и другие подтянулись со своими модемами, кроме того, в продаже появились «чистые», ни на кого не залоченные модемы, ещё более новые и быстрые, да ещё и сеть у других операторов работала с 3G получше. В общем, со всех сторон раздался вздох облегчения: «Да ну его на фиг!» И новые пользователи начали подключаться сразу к другим сетям, а на форумах ещё долго мелькали заметки: «*** — да ну его на фиг, возьми другой!» Хотя бы потому, что у других хоть и была залочка на SIM-карту — зато никаких специализированных программ они не требовали, несмотря на то что у них тоже была своя звонилка, на Джаве: хочешь — устанавливай, не хочешь — настраивай сам: и так, и так будет хорошо, без перепрошивок и шаманства.
Мораль сей басни такова: защищая свой продукт, не забывай о здравом смысле, ведь может получиться и так, что с тобой просто не захотят больше связываться.
Я был радиолюбителем. В то время как граждане нашей страны через знакомых и по блату доставали сборники Дюма, я доставал справочники по радиодеталям и книги по радиоэлектронике, буквально собирал по помойкам платы от телевизоров, радиол, магнитофонов и прочего электронного хлама. Дома валялась куча коробочек с выпаянными радиодеталями, от древних проволочных резисторов 50-х годов до самых современных на тот момент логических микросхем. Починить сломанный телевизор или магнитофон? Да без проблем! Спаять охранную систему-визжалку на гараж? Запросто. И конечно, я собирал всякие схемы: усилители, генераторы, приёмники, передатчики, реле времени, всякая автоматика и прочее в том же духе, не столько даже ради конечной пользы, сколько ради удовольствия.
Естественно, учиться я пошёл на радиоинженера. Относительно добросовестно отсидел пять лет, получил диплом, убедившись, что почти ничего нового, кроме методики расчёта усилительных каскадов через дифференциальные уравнения, мне тут не расскажут. Правда, я стал лучше понимать, почему отечественная электроника именно такая, какая есть, а не такая, как импортные двухкассетники из комиссионного магазина: потому что подход при их создании принципиально разный (но это тема для отдельной истории).
За это время всё радикальным образом изменилось: границы открылись, и в страну хлынул поток дешёвой и достаточно качественной электроники. Если раньше навыки радиомастера могли пригодиться хотя бы для того, чтобы починить сломанный видеомагнитофон «Электроника ВМ-12» (дефицит, который продавался с очередью под запись на год вперёд), то теперь можно было просто купить какой-нибудь Akai буквально за копейки, а если и он сломается — выкинуть и купить ещё один. Причём в новом дизайне, с новыми плюшками, иногда чисто декоративными, но в любом случае с новой, неизношенной механикой.
Вместо долгого изучения схемы и поиска перегоревшего транзистора в радиоприёмнике размером с чемодан — купить новую плоскую коробочку, которая просто работает, причём дешевле перегоревшего транзистора. А то, что внутри этой коробочки посреди крошечной платы залитая эпоксидкой бескорпусная микросхема, не оставляет никаких шансов на изучение её схемы и какой-либо ремонт. Проще, дешевле и практичнее выкинуть и купить новую.
И так практически во всём. Смысл ремонта бытовой электроники стремительно упал почти до нуля, более того, это стало просто неинтересным: одно дело — разобраться в схеме работы сложного прибора, другое — перепаять вздутый конденсатор, даже не думая, зачем он тут был. А с практической точки зрения почти всегда новый гаджет лучше старого, хоть и починенного.
Так я перестал быть радиолюбителем и решил заняться чем-то новым: компьютерами. Тут было что изучать и с чем разбираться.
Кто-то пошёл по другому пути: сейчас эти люди работают с микросхемами и процессорами, занимаются «раскрытием» возможностей современной радиоаппаратуры, перепрограммируя прошивку. Но большинство просто выбрасывает старьё и покупает новое.
У каждого есть выбор: углубиться в изучение современной электроники или стать её пользователем. Так почему с компьютерами должно было получиться иначе?
Точно так же — был период, когда для более-менее нормальной работы требовалось умение хотя бы писать простейшие скрипты, батч-файлы. Кто не умел — тот не мог пользоваться компьютером.
Был период, когда такие умельцы выделились в отдельную группу «компьютерщиков». Они занимались всем подобным, от написания баз данных на FoxPro до замены картриджей, а обычные пользователи осиливали разве что пару программ.
Был период, когда для настройки работы компьютеров требовались высококлассные специалисты, разбирающиеся в тонкостях работы ОС, при этом более простые задачи оставили «эникеям», а созданием новых программ занялись профессиональные программисты.
Сейчас наступает время, когда компьютер с уже установленной и настроенной ОС покупается в магазине как бытовая техника, и обычный пользователь вообще не разбирается в том, какая там ОС и какой там процессор. Если оно сломалось — иной раз проще выкинуть и купить новое, чем чинить.
И у вас опять есть выбор: либо вы становитесь узким специалистом по конкретному типу ОС, либо программируете что-то новое, залезая в спецификации протоколов, либо становитесь обычным пользователем компьютеров, найдя для себя что-то новое и интересное в жизни. А завирусованный компьютер выбрасываете или дарите тому, кто выбрал для себя другой путь развития.
Когда-нибудь (а теория вероятности говорит, что вероятность практически любого события больше нуля) в вашу веб-студию может обратиться заказчик с кругленькой сумой денег и готовым техническим заданием. Тому, как вести себя, если такое вдруг с вами произошло, посвящены нижеследующие рекомендации.
В первую очередь возрадуйтесь блеснувшим вдали золотым горам и ни в коем случае не читайте техническое задание. Не читайте его, когда заказчик предлагает вам составить график работ. Просто прикиньте, сколько времени потребуется на мало-мальскую переделку чего-нибудь уже готового, и поклянитесь, что сделаете всё-всё в полтора раза быстрее, чем прогнозировал заказчик.
Непременно исключите все этапы согласования с заказчиком промежуточных результатов работ и потенциально спорных моментов. Укажите, что сделаете за один день любой программный модуль, даже если имеете об этом лишь общие понятия в стиле «где-то слышал». Поверьте, заказчик будет счастлив, что вы так быстры (а вдруг и вправду у вас Супермен в команде), и подписание контракта вам обеспечено.
Когда подписанный контракт у вас в руках и кругленькая сумма приятно замаячила на горизонте, ни в коем случае не читайте техническое задание. Выведите из пятилетнего анабиотического сна того, кого называете дизайнером, и посадите его за работу. Все же знают, что за последние пять лет в дизайне сайтов ничего не изменилось.
Заказчик показал вам нечто древнее и страшное. Говорит, что сайт, заказанный у вас, предназначен для того, чтобы этот антиквариат заменить. Прекрасно — вы же можете оттуда скопировать все пункты меню. Покажите этот тлен веков своему дизайнеру, но никогда, ни при каких условиях не показывайте ему техническое задание! В конце концов, у вас же есть свой, проверенный годами шаблон, который вы уже продали целых пятнадцать раз. Перекрасьте его, поменяйте пункты меню. Будьте уверены: заказчик точно будет счастлив!
Упс. Заказчик не счастлив. Не верьте и не сдавайтесь! Нарисуйте ещё один скин своего любимого шаблона, но не читайте техническое задание.
Две трети времени, предусмотренного подписанным вами графиком, уже прошло, а ваш дизайн так и не принят? Заказчик говорит, что закажет дизайн у других и пришлёт вам? Ну и фиг с ним, раз такой дурак. Вам ведь не впервой «натягивать» чужие макеты. Забейте.
Заказчик говорит, что в техническом задании есть работа с админкой, с личным кабинетом, которую можно делать до утверждения дизайна? Не верьте ему. Будьте тверды. Скажите, что не будете ничего делать, пока не будет утверждённого дизайна.
Наконец вам прислали дизайн. Ваши верстальщики в обмороке. Вы такое никогда не делали. Не вздумайте с перепугу прочитать техническое задание! Возьмитесь за фотошоп. Нафотошопьте гибрид хотелок заказчика и своего любимого шаблона. Это будут ваши эскизы. Они не нравятся заказчику, потому что вы половину его хотелок выбросили, а остальное выглядит уродливо? Ну и ладно. В конце концов, вам тоже не нравится то, что заказчик прислал.
Когда пройдёт ещё две трети первоначального срока выполнения работ, и вы, и заказчик будете уже достаточно замучены, чтобы наконец-то согласовать дизайн. Результат будет противен обоим, но цель достигнута: вы переходите на следующий уровень.
Пообещайте заказчику, что всё остальное доделаете за неделю. Убедитесь, что, обещая, вы не прочли технического задания.
Возьмите какой-нибудь из своих старых проектов и натяните на него дизайн. Утверждайте, что вы совсем чуть-чуть не успели. Увереннее доказывайте усомнившемуся заказчику, что это именно то, чего он хотел.
Если заказчик грозится расторгнуть договор и просит предоставить документацию, отвечайте как можно лаконичнее: «сделано», «сделано частично», «не сделано». Пусть вас не смущает, что сделанным вы объявили то, что является связующим звеном между двумя не сделанными частями. Только не читайте техническое задание.
Когда время очередных доделок истекло, устройте торжественный показ. Максимум уверенности: «Тут играем, тут не играем, здесь жирное пятно — рыбу заворачивали».
Если по непонятной причине ваш доклад не произвёл должного впечатления, а заказчик постоянно упоминает какое-то техническое задание, прочтите наконец злосчастный документ.
Поставил главбуху новый комп. Пришла жаловаться: плохой комп, дисковода для дискет нет. Я, разумеется, поинтересовался, зачем ей, собственно, вообще нужны дискеты. Ответ поверг меня в ужас. Оказывается, между кабинетами главбуха и бухгалтерии обмен данными все эти годы происходил с помощью дискет.
Схема такая. На сервере документ, надо его изменить и передать другому бухгалтеру. Документ скачивается на рабочий стол, редактируется, записывается на дискету, относится главбуху, главбух тоже редактирует документ — и… записывает документ обратно на сервер.
Есть такая штука, зовут её профессиональная деформация. Так или иначе, она касается большинства авторов местных холиваров. Вот, в частности, хороший пример её — обсуждение одноразовых девайсов маркетинговой модели «купил — сломалось — выкинул».
Большая часть пользователей действительно не знает и не хочет знать, что такое джейлбрейк или чем отличается прошивка на Nexus Wi-Fi от прошивки на Nexus LTE. И не хочет знать, не надо оно им.
Я айтишник. Даже точнее: я программист. Я могу заставить выполнять всё необходимое всякие стрёмные железки. Моя VPS по характеристикам уступает домашнему десктопу в несколько раз. Тем не менее она — сервер, а на домашнем компе я слушаю музыку и играю в игры. Я могу почитать спецификации и обновляю железо только тогда, когда современные образцы действительно превосходят мою текущую конфигурацию на ощутимую величину. Это раз в пять лет. У меня телефон Motorola v3i, купленный в 2007 году. Сам не ожидал от гламурной женской модели такой выживаемости. Последний раз в прошивку я лазил в 2008-м. И если бы не аккумулятор, который, как и любая химия, имеет банальный срок годности, я бы не менял её ещё лет десять. И мне его хватает для необходимого. Думаю, многие из вас могут сказать что-то подобное. И да, если мне понадобится домашний сервер — у меня валяется системник с 32-битным Athlon X2.
Но это всё лирика. А теперь, читатель, представь, что ты, например, автомеханик. Да, ты знаешь множество автомобильных деталей если не по названию, то по крайней мере по предназначению и характеристикам. Ты можешь заглянуть под капот чему-то только сошедшему с конвейера и на глаз сказать, что сломается первым. Да, ты можешь почитать спецификацию, включить мозг (оказывается, неайтишники тоже умеют им пользоваться) и придумать, как это усилить и подтюнить. И теперь тебе, автомеханику, нужен телефон. Ты будешь забивать себе голову версиями прошивок или железа? Ты будешь читать тонны шлака на тему «Android vs iOS»? Будешь красноглазить ночами, дабы познать прелести BusyBox? Нет. Тебе этого достаточно на работе (и в хобби, если таковое есть). Тебе нужен телефон а-ля стиральная машинка: фиг его знает как, но оно работает, как получить из этого профит — можно почитать в мануале (был такой великий товарищ по имени Стив, он это понял и сделал свои девайсы соответствующими).
Если железяка сломается, поймает вирус или просто банально начнёт тормозить — ты не будешь её перешивать, искать, что же там такое запущенное. Не потому, что ты ленивый и тебе лень включать мозг — просто ты не айтишник (представьте себе). Ты отдашь её каким-нибудь ремонтникам (о которых тут тоже достаточно написано), даже гарантийным. Они зарабатывают на этом деньги, и им действительно (особенно последним) во многих случаях тупо быстрее и дешевле отдать железку под замену. А если менять — то давайте что-нибудь более современное, более крутое. И так далее.
А ты, автомеханик, и так уже наслушался рекламы о новых суперкрутых девайсах в чуть другом корпусе и с парой дополнительных букв в названии. Зачем тебе детали? Ведь ты точно так же будешь рекомендовать клиентам заменить зашумевшую на скорости 120 км/ч деталь, хотя для себя мог бы заставить машину пройти с ней ещё 100 тысяч километров.
Утро после тим-ивента. В офис пришли не все, в кубиках тихо…
Бот, раздающий задания из очереди, благополучно сдох после вчерашнего апдейта кода — да, мы маньяки, один энтузиаст после пива с устрицами поправил генерацию порядковых номеров инженеров, а второй проинициализировал бота в не подходящий этой скотине (боту же, боту!) момент.
Вот и моё чудо номер один — «outage», «Wi-Fi», «DHCP». Читаю внимательнее. Ой, port-channel.
Итак, Некто увидел, что DHCP snooping настроен только на port-channel, а на физических линках этой команды нет. Заметим, все работает, клиенты подключены. Сделал Некто из этого интересный вывод: надо включить тот самый снупинг и на физических линках (зачем, зачем?! Логический интерфейс всё равно уже делает это прямо на этом же канале).
Включил. На одном, видимо, дальше не успел, потому что интерфейс из канала выпал, port-channel пошёл пересобираться — и увидел, что конфигурация физических линков, его составляющих, разная, а значит, собрать их не получится. И поднялось у нас два параллельных канала: один — port-channel, один — физический линк. И тут — ай-ай-ай — оказывается, Некто на устройство попадал по SSH по тому самому port-channel’у! А у нас два параллельных линка, трафик то туда, то сюда, циклы, дропы.
Понял Некто, что это сбоит high availability (ну да, что ж ещё-то) и пустил active unit по питанию. Тут всё немножко подёргалось, подцепило старый конфиг — и восстановилось, конечно.
Что же наш Некто сделал? Правильно, бегом на SSH обратно — надо же вбить DHCP snooping trust на физических интерфейсах!
В этот раз, скажу честно, успел.
И открыл Некто кейс у вендора со строгим вопросом: объяснить недопустимое поведение строптивой железки. Что же такое-то, в самом деле: не читая документации, подрубил под собой сук, да не до конца, а так, на полфюрера — а оно тут само вдруг!
Можно было бы ещё писать, да тут чудо номер два подвалило… Эх, где ж мой кофе утренний?
В столовке фирмы над резюме кандидата смеются два сотрудника.
— Во, смотри, пишет: «Хочу работать в более профессиональной команде». Гы-ы… А мы-то тут при чём? И чем ему вообще можем в таком случае помочь?
Один из сотрудников — начальник группы разработки юниксовых, мобильных и встраиваемых решений в одном флаконе, другой — начальник группы облачных технологий. Прибыль фирмы — десятки лямов зелени. Треть мирового рынка в своей области. У одного стаж больше десяти лет, у другого — под тридцать. Хорошая вещь — самоирония…
Приехал к клиенту в Кингстон помогать им разбираться с нашим продуктом. Одна из частей продукта — IDE на базе Eclipse. Все собрались в офисе, попили кофе, всё обсудили, сажусь работать. Открываю файл, вношу изменения, записываю, запускаю — а на изменения ноль реакции. Смотрю на файл в vi — а изменений там нет. Смотрю на файл в IDE — а изменения куда-то исчезли совсем. Ну, думаю, старею. Повторяю всю процедуру. С тем же результатом.
Тут уже руки начинают трястись. «Изверги! — ору на весь офис. — Вы сколько травы мне в кофе подсыпали?»
А изверги смеются. Показывают страничку с баг-репортом. Подтверждённым моим же коллегой из моей же конторы…
Автор истории «Из ружья в ногу», вероятно, не задумывался, откуда берутся пользователи, а оно ведь самоочевидно: из одноразовых девайсов.
Это ведь куда как проще: купил себе игрушку (телефон, планшет, ноутбук), погонял год-другой, а там она уже устарела, нужно новую покупать. И продиктовано это не тем, что железо стало куда как круче, а тем, что на старое железо отказывается ставиться новая прошивка или компания вовсе прекратила поддержку старой модели (двухлетней свежести). Откуда такое отношение к технике, ведь она ещё может и должна работать и работать? Да из непрерывного желания заработать!
Моему ноутбуку через месяц исполняется семь лет, при покупке он был по характеристикам чуть выше среднего. Если теперь поискать ноутбук с аналогичными параметрами, то окажется, что он по характеристикам… чуть выше среднего! Ну, разве что вместо BIOS — UEFI, да дизайн изменяется с каждой добавленной буквой/цифрой в названии модели. В чём же соль, где тот бешеный прирост к мощности процессоров и объёму оперативки, которые мы наблюдали 15 лет назад? Да в самом что ни на есть простом: кремний имеет свой предел, и на сегодняшний день он почти достигнут. Но заводы продолжают работать, на складах простаивает неликвид, а производителям таки хочется кушать свой хлебушек с маслицем и икорочкой. Отсюда и проистекает решение: нужно поколение пользователей, которые не знают, что такое рут, джейлбрейк и иже с ними, которым нужно «включил — и работает по умолчанию», а не «включил — настроил — работает как надо», которым проще купить новую железку, чем найти прошивку под имеющуюся. Ну, а маркетологи, естественно, это дело в меру сил стараются раскручивать.
Мне грустно за этим наблюдать. Но, скорей всего, большинство внуков так и сделают: поймал вирус — сменил девайс. Однако теплится во мне надежда, что найдутся те…