Отъявленный программист: лайфхакинг из первых рук - Игорь Савчук 10 стр.


Что же касается демиурга, поскольку воплощенный мир обречен лишь комично подражать высшим существам, можно определенно сказать, что в каждом человеке, в том числе и в программисте, есть нечто от демиурга (например, образ и подобие).


Меня интересует, с одной стороны, свобода, о которой мы много говорили, а с другой — некоммерческие программистские проекты, движимые глубинными человеческими идеалами. Вот, скажем, Open Source — это борьба с контролем? Современные социальные сети и шифрование — все это закабаляет или, наоборот, освобождает людей?


Все, что воодушевляет людей, начинается как борьба с контролем. Технология Open Source так и начиналась, но теперь большой кусок, связанный с GPLv3, работает уже на контроль. Технология PGP так и начиналась (я, кстати, один из авторов, занимался локализацией), потом это разбудило повсеместную сильную криптографию, потом пошли сертификаты, что в конечном итоге тендирует к цифровому паспорту/счету личности.

Социальные сети — почти идеальное воплощение Паноптикума, когда за каждым движением пользователя приставлены следить множество знакомых глаз. Даже обычная сеть WWW в этом смысле отслеживается гораздо меньше, всего лишь некими молчаливыми неизвестными посетителями.


Кстати, в недавнем моем интервью Столлман высказывался о том, что Open Source сегодня чаще всего такой же бизнес, как и любой другой, со всеми вытекающими отсюда последствиями и ограничениями.


Я согласен со Столлманом в этом моменте. Я наблюдал достаточно общественно-полезных проектов, работающих многие годы на чистом энтузиазме. В конечном счете выхода у них всего два. Со временем (или с возрастом) приходит ощущение ничем не компенсированной затратности усилий, и проект либо закрывается навсегда, либо тем или иным способом себя монетизирует, что также сказывается на нем не лучшим образом. Если не брать в расчет отдельные исключения, живой Open Source сегодня — это либо еще стартап, либо уже бизнес.


Что же это за такая меркантильная личина сокрыта в современных людях, что даже в таком рафинированно-образцовом альтруизме, как Open Source, в конечном итоге скрывается лишь отсроченная по времени функция «деньгопотребления». Этот холодный прагматизм приходит с возрастом или это заложено в нас изначально?


«За всем стоят деньги» — одна из популярных современных конспирологических теорий. Но деньги лишь репрезентируют системы символического обмена в обществе, обмена в том смысле, в котором его рассматривали Марсель Мосс и затем Бодрийяр. Любой символический обмен, включая дар, устроен экономически. В этой парадигме и альтруист получает нечто ощутимое взамен своей деятельности, не важно, в каком виде.

В свете сказанного символический обмен в ИТ-области сейчас тендирует к неравноценности, что приводит к фрустрации, а та приводит или к закрытию проектов, или к попытке силой навязать обмен, то есть к монетизации. Чтобы не дожидаться такой развилки, часто проект строится изначально на бизнес-основе лишь с дополнительной «фичей» Open Source, например для бесплатных багфиксов или повышения доверия. Если рассматривать исключения, то довольно часто они выживают лишь за счет перехвата умирающих проектов «нерастраченной» молодежной сменой.

Кстати говоря, Столлман и сам пал жертвой такой деградации: его GPLv3 — это профессиональное выгорание, попытка юридически принудить других к обмену (кодом в данном случае). Как это всегда бывает с идеологиями истощенных ресурсов, проект GPLv3 пытается забрать даже больше, чем отдает сам, так что теперь как грибы растут альтернативы GNU-программам, автоматически перешедшим под GPLv3, взять хотя бы Clang.


Хорошо, продолжая тему Open Source, давайте поговорим о важной вехе в вашей жизни — проекте FreeBSD. Для начала — почему именно FreeBSD? Почему, например, не более популярный сегодня проект Linux?


Исторически я принимал участие в разработке систем МНОС РЛ и DEMOS, основанных на BSD-коде, так что переход к FreeBSD явился логичным продолжением.

Тема Linux vs. BSD давно стала эпической holy war, и в таком контексте отстаивать ту или иную позицию мне представляется неуместным. Формально могу отметить пару вещей.

Например, с эстетической точки зрения код FreeBSD для меня выглядит более изящным и менее тяжеловесным, чем код, инспирированный System V, как в Linux. Однако с учетом огромного количества разработчиков, так или иначе вовлеченных сейчас в Linux-проекты, это утверждение может оказаться неверным в отдельных частях.

Далее код Linux, в отличие от кода FreeBSD, не является по-настоящему свободным. Он вынуждает соблюдать ряд ограничений, лишь усиливающихся со временем в свете постепенного ужесточения лицензий семейства GPL, которые, изначально исходя из идеи свободы кода, стали органичным дополнением в инструментарии ее подавления.

В Linux сейчас проблемой становится огромный объем кода ядра, идущий рука об руку с падением производительности и качества кода, что признает и Торвальдс. Такова плата за расширение возможностей в рамках выбранной в Linux модели управления проектом. Проектная модель FreeBSD в этом смысле более оптимальна.


Как я понял, за вами до сих пор сохранен commit bit? Участвуете ли вы в последнее время в разработке или судьбе FreeBSD? Какую ОС сейчас использует бывший член FreeBSD Core Team?


Да, сохранен.

Во FreeBSD Project было интереснее всего после старта проекта, когда это был своего рода междусобойчик. Тем не менее в FreeBSD Project участвую до сих пор, но эпизодически, обычно если лично у меня что-то работает не так. С тех пор как я начинал, пришло новое поколение людей, в силу популярности проект пошел разрастаться вширь, что радует многих молодых участников и одновременно несколько огорчает тех, кто стоял у истоков. Потому что одновременно с этим трендом в системе стало больше и хронически заброшенных мест.

Про текущую ОС меня очень часто спрашивают... На некоем условном «80-м уровне мастерства» выбор ОС — это не дело принципа и даже не баланс компромиссов, ведь при помощи лома и животворящей фразы со «словом на букву ё» совершенно в любой современной ОС можно нормально устроиться, жить и работать. Поэтому в итоге так сложилось, что на моих домашних машинах сейчас стоят одновременно FreeBSD-current и Windows 7.


Каким вы видите будущее открытых проектов типа Linux или FreeBSD?


За Linux я никогда не следил. С программистской точки зрения, с таким неизящным кодом и bloat’ингом он «проигравший победитель», такой же, каким была система Windows.

Победителями оказались обе по причине низкой цены их символического обмена, которая есть прямое следствие системных недочетов. Рассказывать же про FreeBSD в духе «ожидаются фичи № 1, № 2 и № 3» — мне не интересно. На фоне наступающей «балканизации» Интернета разговоры о будущем сетевых по сути проектов не очень уместны.


Давайте обобщим все сказанное. Информатизация общества — что это такое? Некоторые чувствуют, что знание сейчас для многих стало как будто жвачкой, оно не делает большинство людей умнее и мудрее, сводясь к некоему полуфабрикату из пошагового howto (обратная индукция от чего — примитивные тесты ЕГЭ).


Если не вдаваться в детали, фраза «информатизация общества» означает, что появится еще больше ламеров с планшетами, сидящих в браузерной ОС или тыкающих пальцем в какой-нибудь Android. Причем это даже не означает, что автоматически появится больше рабочих мест в ИТ, скорей наоборот. В будущем в SMB секторе будут сплошные облака и DevOps, так что нужда в классических сисадминах значительно сократится.


Получается, ИТ-отрасль в процессе своего развития пожирает своих служителей. Или количество начинает переходить в качество? Каким будет ИТ в ближайшем будущем?


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


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

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


Подводя итог: вы коснулись темы деградации и одновременно эволюции ИТ-отрасли, но как это сочетается все вместе? Я так понимаю, что это общий для нашей цивилизации тренд, но зачем природе такое вырождение через развитие?

Внутренний двигатель для развития самих ИТ это скорее лень. А для конечного пользователя идеалом является универсальная абстрактная кнопка «Сделать все хорошо». В целом, как я уже говорил раньше, люди не хотят меняться или развиваться, они хотят спокойно жить. Помимо малого процента любопытствующих для большинства развитие — вынужденная мера приспособления. Был бы человек физиологически приспособлен к среде обитания на уровне вершины биологической эволюции — верблюда, и мозга такого не возникло бы. Развитый мозг тут лишь как компенсация ущербности.

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

В заключение интервью какие советы вы можете дать современному айтишнику? Как ему выжить в ускоряющейся гонке технологий и технического прогресса?

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

Также следует уделить особое внимание кистям рук. Чтобы избежать карпального синдрома, есть специальные упражнения, можно использовать коврик для мыши с подушечкой под запястье и клавиатуру с площадкой для опоры. Все остальное вроде информационной перегрузки исправлять бессмысленно, так что на этом, пожалуй, и все.

ГЛАВА 4. Сеть через прицел DPI — анатомия китайского Интернета

Герой интервью пожелал остаться анонимным. Это бывший россиянин, который уже 6 лет проживает в континентальном Китае, работая в местной телекоммуникационной компании старшим инженером-администратором.

Интервью взято в конце 2013 года.

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


* * *

Расскажите про Великий китайский фаервол, который китайцы сами называют «Золотой щит». Что он из себя представляет в техническом плане? Каково его главное предназначение?


На данный момент это три составляющие, три дракона, на которых он базируется, — технологии Deep Packet Inspection (DPI), Connection probe и Support vector machines (SVM). Все вместе они представляют собой очень продвинутый фильтр, который блокирует доступ к запрещенным коммунистической партией ресурсам из внешнего Интернета.

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


Давайте подробно рассмотрим каждую из названных составляющих. Итак, что такое Deep Packet Inspection?


Говоря кратко, это технология низкоуровневой проверки и фильтрации сетевых пакетов по их содержимому. Тут сразу нужно провести красную черту: коренное отличие от уже всем привычных брандмауеров в том, что DPI анализирует не столько заголовки пакетов (что, конечно, тоже может), сколько зарывается в содержимое транзитного трафика на уровнях модели OSI со второго и выше.

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


В России в последнее время очень много пишут о внедрении DPI, многие федеральные операторы (особенно это касается мобильных операторов) даже якобы уже имеют его в рабочем виде. Можно ли сказать, что нами перенимается китайский опыт?


Российские и китайские DPI кроме общего названия и принципов работы практически ничего не объединяет. Дело тут прежде всего в масштабе и серьезности их реализации. Как очевидно из описанного ранее способа работы, DPI потребляет прорву ресурсов, ведь все многочисленные операции, производимые им (например, дефрагментация пакетов, их распаковка, распознавание типов данных и протоколов, сканирование содержимого, многочисленные эвристики и многоемногое другое), должны происходить в режиме реального времени. Поэтому главный критерий степени серьезности DPI — глубина анализа транзитного трафика, который может позволить себе эта система, чтобы при этом сохранять приемлемый уровень латентности.

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

Часто в этой ситуации применяются технологические или оптимизирующие ноу-хау, а можно пойти иначе — просто радикально увеличить вычислительную мощность. Так вот, когда мы говорим о китайском проекте DPI, нужно понимать, что это именно последний путь — реально это датацентр размером с самый настоящий районный город, который применяет роевой интеллект (Swarm Intellegence) для управления балансировкой и обработкой данных между его бесчисленными частями-узлами.

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


Переходим ко второму китайскому дракону — что такое connection probe?


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

Если, например, вы используете запрещенный в Китае сервис, то его клиентский протокол должен быть серьезно обфусцирован, чтобы суметь преодолеть сигнатурный механизм поиска DPI. При использовании против вас connection probe потребуется обфускация ответа уже и со стороны сервера, то есть в общем случае вы не сможете пользоваться стандартными публичными сервисами в случае их запрета.

На данный момент connection probe позволяет достаточно точно и малыми ресурсами определить тип внешнего сервиса, которым желает воспользоваться пользователь из Китая. Если приводить более жизненный пример, то именно эта технология была с успехом применена против оверлейной сети i2p, после чего оная в Китае была заблокирована.

Назад Дальше