Полчаса назад — звонок. Неизвестный номер. Голос бабушки в районе 70–80 лет:
— Алло, вечер добрый! Извините, что так поздно, мне Света сказала, что вы поможете. (Какая Света? У меня много знакомых Свет, ну да ладно.) У меня так и так, то-то и то-то.
Ну, что по телефону, что через удалённое управление, но вроде бы всё настроил, починил, долго и муторно выслушивая причитания из разряда «Я ракетные двигатели проектировала, а с этой железкой справиться не могу» и по возможности молча старался всё исправить побыстрее.
Под конец, прощаясь, бабуля выдала фразу, после которой начался истерический смех:
— Спасибо вам огромное, Сергей! Я завтра вашей жене на работу занесу конфет и домашних пирожков. Пусть вам передаст, попробуете — понравится.
В общем, сижу смеюсь. Я Николай и уже три года как в разводе. Да и жену звали Анной, а не Светланой… Так что, уважаемый Сергей, с тебя 50% пирожков!
Большой и ужасно серьёзный институт автоматизации и робототехники в некой стране победившего капитализма. Целая группа инженеров (все — выходцы из экс-СССР) вечерами задерживается после работы на три-четыре часа и с сосредоточенными видом ковыряет квадрокоптер с камерой.
— А как оно будет ориентироваться?
— Метки у цели поклеим, чтобы сверху было видно.
— Не-е, какой-то костыль, надо, чтобы оно получало положение по GPS!
— Да вы чего, всё же элементарно! Цель темнее бетона и неоднородная. Повесить камеру и лазерный дальномер, заодно сможет само отличать груз от всяких обычных штук.
— Не-е, а вдруг что-то не то за груз примет? Не надо нам таких эвристических надстроек, задача-то детерминированная!
— А как с контролем высоты? На захвате нет датчиков, будет воздух хватать же!
— Может, метки на грузе с обратной связью? Какой-нибудь NFC?
— Не-е, дороговато выходит…
Так проходит два месяца. Ценных узлов угроблено на четырёхзначную сумму в местной валюте, несколько раз на испытания чудо-агрегата приезжала полиция, коллеги, лишённые русского духа экспериментаторства, крутят пальцем у виска, но результат достигнут.
На пятом этаже института здоровенный страшный квадрокоптер по расписанию вечером снимается с зарядной базы, подлетает к общему мусорному ведру, снимает клешнёй со специальных направляющих ручки мусорного пакета, тащит его по воздуху к окну, окно открывается сервомотором по BT-команде, коптер вытаскивает свой груз на улицу, несёт его 50 метров и роняет точно в стоящий во дворе большой мусорный бункер, после чего возвращается на базу.
Зато не надо выяснять, чья очередь выносить мусор.
Молодёжь… Считать удобным круглый втыкающийся шнур питания ноутбука могут только те, кто никогда не задевал его ногой, отправляя ноут в полёт по всему помещению.
Как сейчас помню счастье и радость после появления магнитных шнуров. Это было… Это было как попасть в будущее. И мысль: это же так просто, почему раньше никто не додумался?
А не додумались потому, что нам и лапти норм, зачем нам туфли?
Джон шёл с работы, привычно ориентируясь в лондонском тумане по едва заметным контурам. Вдруг возникла фигура туриста:
— Извините, в какую сторону к морю?
Джон ответил:
— Да здесь в любую сторону — к морю! Остров хренов…
Лёша размышлял о том, что лучше, Micro USB или Lightning. На стороне первого — распространённость зарядок, зато второй можно подключать любой стороной, не глядя. С этой мыслью он воткнул шнур питания в нетбук.
Любой стороной, не глядя! Столько лет пользуюсь, а не задумывался. Только сторон не две, а 360. Это в градусах. А в градах — 400. А с учётом отсутствия дискретности — бесконечность. И крепкий! Не то что дискредитировавший идею нокиевский «хоботок». И никаких чипов. Как в анекдоте: в любую сторону — к морю!
На экране бодро запереливалась заставка Android-x86. А в Olivetti отдельные умы задумались о выходе на мобильный рынок. Инженеры о чем-то оживлённо спорят, но в одном единодушны: новый разъём SoberPlug будет иметь в поперечном сечении форму сапога. Не спят и в Tadiran — там тоже хотят выпускать мобильники. Разъём будет напоминать по форме жало той отвёртки, которой их разбирают и собирают. Таким проще попасть не глядя — если он будет коаксиальным, а не со штырьками по вершинам. Стремится на рынок смартов и Rekam. Чего? Кленовый лист? Вот это уже сложнее…
Но это уже фантазии. Пусть лучше будет как есть — всё со всем совместимо. Так удобнее, а то не верит — достаньте из ящика стола аппарат середины двухтысячных и попробуйте купить зарядку.
Прошло полтора года. Точка доступа в связи с заменой на халявный и чуть менее глючный «Треполёт» ушла на заслуженный отдых. Так бы она и пылилась в шкафу до скончания веков, если бы не…
— Алло! У тебя случайно нет лишнего роутера?
Отчего бы не помочь хорошей девушке, тем более что готовит она божественно? Да и традиции русского гостеприимства свято чтит — пока я не был прилично накормлен, к делу подруга мне перейти не давала.
Но вот это случилось — я наполнил свою утробу, и, сыто улыбаясь, предложил начать. Дел на пять минут, казалось бы. Угу…
Прикол первый: железка успешно забыла пароль на доступ в админку. Где-то там была кнопка сброса…
— Марин, у тебя есть что-то длинное и тонкое?
— Невидимка подойдёт?
Подошла. Hard reset прошёл успешно.
Прикол второй: железяка упорно отказывалась пускать кого угодно в веб-интерфейс. Пляски с питанием и кабелем результатов не принесли. Ну… Семь бед, один Reset. Невидимка уже не вынимается из гнезда.
Потом я минут пятнадцать выбивал из железки нужный мне тип связи, которого «почему-то» не было в списке, хотя до этого он там точно был. Здесь виноват оказался я — забыл переключиться на нужный режим работы.
В общем, спустя сорок минут, два сброса и робкий намёк «может, завтра закончим?» настройки были наконец-то забиты как надо. Минута… Две… Пять… Инета нет. Лезу в настройки, перепроверяю всё. Чисто. Перезагружаю через интерфейс, вбиваю всё заново (одна из особенностей этой железки — при перезагрузке терять настройки). Тишина. Лезу в логи…
— Что значит «неизвестный хост»?!
Звоню соседу, ибо айпишник резервного сервера давно забыл. Кое-как выбил. Ввожу его — ничего не меняется. Признавая своё поражение, иду к упрямой железке с целью забрать на базу для детального разбора полётов… Но беглый взгляд рассталяет всё по местам:
— А ты знаешь, почему оно не работало?
— Ну?
— Потому что какой-то тупой я выдернул из него кабель!
Инет появился почти сразу после подключения аппарата к витой паре. Подруга довольна, а я вынес не только полный желудок, но и две морали:
«Не гонялся бы ты, поп, за дешевизной!»
2: Неча на железо пенять, коли руки из жопы. Даже если это железо такими же руками делалось. Особенно если ими.
До чего же интересно читать лесорубов, как они превозносят свои топоры и как смеются над любителями лобзиков из набора «Сделай сам»! Вот только они уже и не видят, что их топор из лёгкого и удобного инструмента превратился в странный, бесформенный, абсолютно неподъёмный агрегат. Встроенная система кондиционирования, щётка для ботинок, графический интерфейс для установки дополнительных лезвий и регулировки баланса. Для использования этого устройства нужны определённым образом накачанные руки и ноги. Кроме того, дровосеку надо точно знать, какое лезвие выбрать и под каким углом рубить дерево. Малейшие отклонения баланса, неправильно занесённое или неправильно выбранное лезвие — и странная конструкция уже завязла в дереве. Кроме того, жуки-короеды очень любят лаковые красные рукояти. Поэтому необходимо постоянно следить, чтобы защитный слой был обновлён. Но всё равно риск того, что жуки обглодают дочиста, ненулевой.
То ли дело самоделки-лобзики! Их такое многообразие и так часто меняется состав, что жуки не успевают приспособиться. Можно собрать на свой вкус. Лобзик? Хорошее название для конструктора. Из него можно собрать бензопилу, а можно — станок с ЧПУ. А можно — такой же универсальный монструозный топор, как и у тех странных мужиков-лесорубов. Вот электропила-сучкорезка, вчера собрал. Работает идеально. А вот — большая бензопила типа «Дружбы». Вот пилорама. Что ж, не такая красивая и стоит не так дорого, как та, напротив. Да, и огоньков нет, рекламы по ночам. И не приезжает на трёх лимузинах техподдержка. Подарков от реселлеров тоже не видать. Работает третий год, я туда не захожу почти. Кушает втрое меньше электричества и умещается на куске земли в два раза меньше.
А ещё у меня есть три палки, трансформатор и пять кусков адамантитовой руды. Надо будет собрать ещё что-нибудь. Возможно, и не выйдет каменный цветок, но попробовать надо. Пусть и могу рассчитывать только на себя да толпу таких же фанатов открытых систем деревообработки.
Добрый день, коллеги по цеху! Я бы хотел уточнить один вопрос. Как вы считаете, крокодил — он больше длинный, чем зелёный, или наоборот? Я, честное слово, с большим непониманием читаю все эти истории о тупых менеджерах/бухгалтерах/секретарях и мудрых и благородных админах/программистах.
Начнём с начала, чтобы картина моего повествования выглядела полнее.
Решили вы открыть своё дело. Поздравляю вас с этим судьбоносным решением! Завертелось, денежки капают, всё хорошо. Но в определённый момент вы сталкиваетесь с дефицитом собственного времени. Вы нанимаете помощника, которому делегируете часть своих полномочий. Это первый и важнейший этап понимания того, что вы не бог и везде одновременно вам находиться, увы, не дано.
Идём дальше. Ваша фирма растёт, вы не справляетесь уже не только с основным профилем работ, но даже с документооборотом. Вы нанимаете секретаря. На первых порах для вас важнее, чтобы ваш помощник делал рутинную работу, занимающую основное время. Но вот к вам начинают обращаться представители серьёзных организаций, и вы сажаете в секретарское кресло девушку модельной внешности. А тихая ли она и исполнительная — тут уж решать вам.
Задумайтесь, дорогие коллеги, как выглядит ваше поведение со стороны. Ведь вы нанимались решать определённые задачи, как, кстати, и те, кого вы считаете тупыми.
Не нравится решение управленца? Так он тоже персонал. Ему тоже поставили задачу. Пытайтесь координировать усилия. Не вышло с управленцем — пишите начальству. Начальство не оценило вашей инициативы? Что ж, возможно, вы не видите всей картины.
Вы бы лучше организовали производство, ведь вы специалист? Требуйте перевода в управленцы. Уверен, начальство оценит ваши незаурядные таланты.
Надоело спорить с бухгалтерами/секретарями? Попробуйте в обед угостить их печенькой и ещё раз спросить, что именно и как не получается. Поверьте, в большинстве случаев это работает. Не вышло? Пишите начальству!
Запомните: добрым словом и письмом начальнику можно добиться большего, чем просто добрым словом.
Коллеги! Выбирайте технологии. Выбирайте так, чтобы потом не жаловаться, что приходится поддерживать за кем-то код «не очень красивого цвета», который ещё и пахнет соответственно.
Поделюсь немного своим опытом. Я веб-разработчик, программист, в основном бэкэнд.
До относительно недавних пор я работал преимущественно с широко известной в России CMS, отличающейся агрессивным маркетингом (вплоть до упоминания жёлтой программы в своём названии), низким порогом вхождения и широкими возможностями нарушения архитектуры. Точно так же, как и многие любители чистого и красивого кода, плакал кровью, глядя на некоторые конструкции, особенно написанные «золотыми сертифицированными партнёрами», осилившими эпический труд «PHP за 24 часа для чайников». Компонент (почти аналог контроллера в традиционных системах), который не содержит логики, а только подключает тот или иной шаблон в зависимости от входного параметра — нормально! А вся логика в шаблоне. Вплоть до обращения к БД. Да, прямыми SQL-запросами, несмотря на то, что система имеет хоть и своеобразный, но всё же ORM. А что? В учебниках для начинающих же действительно есть такие примеры, и возможность обратиться в БД прямо из HTML-файла преподносится как преимущество и неоспоримое достоинство PHP. Но ладно. Сами авторы системы тоже не ангелы. Кто-то про классы жаловался? Так вот, классы — это, по мнению авторов замечательной (без иронии) CMS, всего лишь способ логически объединить несколько функций. Большинство методов класса статические. Но в некоторых случаях нужно создавать объект класса, который будет использован только для вызова одного метода, и нигде и никогда больше. Такое своеобразное видение ООП.
Беда? Однозначно беда. Копаться в таком быдлокоде — приятного мало. Надо было что-то делать. Я изучил альтернативы и остановился на приятном фреймворке Django, с помощью которого теперь и разрабатываю сайты. Возможно, вы не поверите, но проблема чужого кода исчезла. Во-первых, оформление кода. Оно всегда и у всех одинаковое. Синтаксис языка Python предъявляет жёсткие требования. Питоновская идеология также гласит, что для решения задачи должен быть один очевидный способ. В Django эта идея поддерживается. И это помогает, экономит время и нервы. Кто бы ни писал до меня, я заранее знаю, где искать нужный код, даже если проект впервые вижу.
Порог вхождения намного выше. То есть нельзя, просмотрев один 15-минутный видеоурок, сразу начать клепать «визиточки». Нужно иметь некоторую базовую подготовку и потратить время на изучение. Это отсекает случайных людей: средний уровень разработчика на Django намного выше, чем средний уровень широко рекламируемых решений с низким порогом вхождения. А значит, и качество кода выше.
И ещё один бонус, который не сразу очевиден: повышается качество заказчиков. Довольно легко убедить в преимуществах своего предложения заказчика, которому важен результат, нацеленного на долгосрочное сотрудничество. И практически невозможно склонить на свою сторону тех, чья главная цель — снять с себя ответственность: всяких менеджеров по просиживанию штанов.
В общем, я для себя нашёл инструмент, который помогает работать эффективно и с удовольствием, а не страдать от кривых решений. Ищите и вы. Пробуйте, изучайте. Хороших инструментов много. Спрос на качественную работу есть. А кому надо подешевле, и чтобы легко найти какого-нибудь неудачника нам на замену, те пусть жуют свой кактус сами: не в наших интересах таких поддерживать.
Странное дело: вроде не первый день работают человеки и вполне заслуженно занимают немалый сектор среди нуждающихся и в антивирусной защите и в средствах бэкапов, а лепят такие пуськи, что за голову хватаешься (если кто не догадался: речь о жёлтой компании на букву «S»). Пересказывать всю эпопею сражения с продуктами этого производителя за всего-то два с небольшим года тесного общения с оными не буду, хотя, если добавить немного экшна, вполне сойдёт за трэшовый приключенческий роман в двух-трёх томах. Расскажу только о текущей каке с маком.
Если удалить один из подчинённых серверов с управляющего, добавить его обратно невозможно. Даже если переустановить.
Удалить ненужный бэкап возможности нет. Хотя не совсем правильно: удалить-то можно, но исчезают они только из списка имеющихся точек восстановления, на винте по-прежнему занимают место. А удалить их вручную хоть и сложно, но можно, однако чревато поломкой хранилища.
Если на хранилище закончилось место, выдаётся предупреждение. Заметьте: не ядрёный панический алерт, вопящий во все стороны, что бэкапить некуда, а маленькое незаметное предупреждение, которое очень легко вообще не заметить. При этом машинка пытается-таки забэкапиться на хранилище, которое забито, со скоростью, которая не спеша стремится к нулю. Но и это бы ладно, но остальные машины, которые должны бэкапиться на это же хранилище, не выдают вообще никаких сообщений — они тупо становятся в очередь и ждут. Более того, они готовы ждать вечно. Когда в понедельник я увидел, что на хранилке в ночь с пятницы на субботу закончилось место, заметил очередь из 16 заданий, терпеливо ожидающих освобождения места, из всего 7 ежесуточных, ссылающихся на эту хранилку, а в каждом задании от 2 до 20 машин.
Программа для создания бэкапов, работающая с VMware не первый год, не может забэкапить отдельную VMDK-шку, если машина состоит из нескольких. И ещё один сюрприз: виртуалка не может быть забэкаплена, если в машине есть VMDK больше 2 ТБ (чё-чё?).
Управляющий сервер не может забэкапить сам себя.
Про то, что не работают некоторые заявленные плюшки и феньки, можно не говорить — про это и так слишком много сказано, — зато есть несколько совершенно бесполезных, но, определённо, привлекающих внимание (привет маркетологам?).
Короче, суть ясна, а мораль… Морали нет, просто пожаловался, вы уж извините.
Автор истории о бесчеловечных методах производства юзверей в промышленных масштабах даже не подозревает, насколько он ошибается.
В подростковом возрасте во мне проснулся интерес к миру IT: учебная программа трудностей в освоении не вызывала, а унять пытливый ум больно уж хотелось. Дома компьютера до 2008 года не было, поэтому на помощь пришёл мой ныне покоящийся с миром SE Z530i. Сначала это были мобильные форумы, потом первые попытки сваять Java-приложение на само́м телефоне (да, умельцы с одного сайта сделали портативную связку «компилятор — преверификатор — упаковщик), потом я вычитал в учебнике по ИКТ про основы HTML-разметки. Первые опыты создания страничек на телефоне были успешнее, чем программирование, и я загорелся желанием двигаться в этом направлении. В школе от нечего делать на этих самых уроках по ИКТ я ваял простые странички, правда, мои старания кроме меня самого тогда никто не оценил. Я всё ждал, когда учительница даст заветное задание из книжки, а я мастерски выполню его и представлю ей. Фигушки. Седьмой, восьмой, девятый класс заканчивался, мы изредка писали простенькие программки на Паскале, при этом не трогая злосчастные учебники. Лишь изредка мы конспектировали материал по алгебре логики, по тому, сколько бит в байте и байт в килобайте. Каждый год я исправно сдавал и брал новые учебники про пресловутому ИКТ, узнавая оттуда про протокол HTTP, про создание десктопных приложений на MS Visual Basic. Руки чесались сделать что-нибудь полезное, но вот даже с появившимся тогда компьютером мне не представлялось возможности достать несчастный Visual Basic. Учебники целый год проводили у меня в столе, иногда я перечитывал их от скуки. В 10 классе я даже, рискнув нарваться на немилость одноклассников, спросил у учительницы, почему мы не по учебникам учимся, а занимаемся ерундой вроде рисования звёздочек в Фотошопе, на что получил невнятный ответ, что программу так построили, что поделать. В 11 классе уроков ИКТ вообще как таковых не было, на них все готовились к ЕГЭ по своим предметам, только лишь мы с одноклассником решали тестовые задания по этому экзамену.
В чём суть столь расплывчатого повествования? Если бы в школах действительно почаще открывали эти самые учебники по ИКТ, в которых пусть даже запросы на кириллице, а реляционные СУБД управляют внезапно реляционными же БД (в компьютерных классах практику не на бумаге выполняют, поэтому опыт и осознание неточностей всегда появляется), то наверняка сайт не пестрил бы историями о бухгалтерах, которые не умеют читать сообщения на экране, или о клиентах техподдержки провайдера, которые не в состоянии найти ярлык запуска сконфигурированного соединения. Так что если на учебнике написано: «Рекомендовано Министерством образования и науки Российской Федерации», может, стоит прислушаться к рекомендации?