`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

"Развенчание" Google Glass или что бы это значило

Известный сайт, поставляющий конструкторам обзорную техническую информацию о деталях реализации всякого разного "модного", Teardown, недавно опубликовал оценку ориентировочной стоимости компонентного набора Google Glass. Что вызвало в "широких слоях населения" если не возмущение, то весьма предсказуемую реакцию. Воспользуемся доступным и попробуем подумать - что бы всё это значило.

Итак, по порядку. Основной узел Google Glass - "материнская плата" (здесь и дальше ссылки в тексте дают возможность просмотреть те же изображения с высоким разрешением, электронщики и конструкторы печатных плат могут оценить эту возможность "бесплатного технического шпионажа :) ), вид со стороны монтажа ключевых компонентов:

"Развенчание" Google Glass или что бы это значило

Ничего "аэрокосмического" в списке ключевых компонентов нет, как и нет ничего "сверхсвежего" (и было бы странно, если бы такие компоненты обнаружились - речь ведь идёт об изделии, предназначенном для массового производства). Далеко не новая система на чипе OMAP 4430 от Texas Instruments с фактически "родной" микросхемой управления питанием, 16 GB флеш-памяти, явно "бутерброд" из двух микросхем (по 512 MB) ОЗУ. По оценкам инженеров Teardown (с моими уточнениями) в апреле этого года видимый с этой стороны платы компонентный набор обходится производителю примерно в $15-$16 (речь идёт о ценах компонентов в партиях).

Посмотрим на обратную сторону той же платы:

"Развенчание" Google Glass или что бы это значило

Здесь сконцентрированы компоненты, отвечающие за "connectivity" и аудио-возможности Glass. Тоже заурядная довольно картина, стоимость ориентировочно $13-$15.  Это уже само по себе забавный факт, не замеченный инженерами Teardown - мы видим, что стоимость сугубо "компьютерной" начинки стала практически равна стоимости "соединений" этой "начинки" с прочим миром. Пожалуй, лучшая иллюстрация одного из отличий wearable-компьютеров от всех лаптопов и прочего "традиционного", где connectivity - сущие гроши по сравнению со всем остальным, буквально "в нагрузку".

Не буду здесь приводить снимок контроллера тактильного экрана, он бессодержательный, скажу лишь, что, собственно, на этом вся "электронная начинка" Google Glass почти закончилась. Остались камера и, конечно, микродисплей, о котором деликатно никому ничего не известно. Пластиковые корпусные детали - о них можно даже не говорить.

Без моих личных сомнений в стоимости микродисплея, сугубо по оценке инженеров Teardown, себестоимость компонентного набора Google Glass (включая конструктивные элементы корпуса и аккумулятор) составляет порядка $80.

С учётом моих личных сомнений в правильности оценки стоимости микродисплея, оценка становится вероятностной и находится в пределах $120-$200.

Как бы там ни было, но десяти- или даже двадцатикратный "запас" от себестоимости до рыночной цены $1500, кажется очень странным для крайне прагматичной Google, умеющей штурмовать рынки соотношением качество/цена. Что и вызвало некоторое "бурление в интернете", особенно в нетерпеливых массах, желающих уже вчера украсить себя Glass'ами.

В мире прагматиков любая странность означает или наличие какого-то плана, или учёт каких-то невидимых стороннему наблюдателю сложностей (к сожалению, в "геополитическом" мире эти простые соображения, похоже, уже вообще не действуют). Стало быть, что-то в Google задумали, раз не завалили буквально рынко Glass'ами с розничной ценой $250 (при которой этими wearable уж точно украсили себя все желающие).

Что может быть причиной такого "завышения" цены?

Я об этом уже писал где-то вскользь, теперь попробую поделиться более подробными рассуждениями. Google Glass - первый серийный потребительский wearable-компьютер. Де-факто и  де-юре. Никакого социального опыта массового использования wearable-машин ни в одной стране мира ни у одной социальной прослойки сейчас нет. Это очень большой и серьёзный социальный эксперимент, максимально отдалённый от всяких технических сложностей. Чистый социальный эксперимент. С технической точки зрения в нём нет ничего сложного вообще, разработка аналога Google Glass доступна в 2014 году практически кому угодно. Но массовые wearable вносят столько никому не известных нюансов в привычный нам мир, что пока никто толком не знает, чем эти нюансы могут обернуться. В Google точно никто не знает всех возможных (и, тем более, кажущихся невозможными) социальных последствий такого эксперимента. С учётом неопределённых, но явно существующих рисков, в Google приняли очень правильное по моему скромному мнению решение и установили "ценовой фильтр" для потенциальной пользовательской аудитории. $1500 за wearable-приставку - цена билета в социальный эксперимент Google, а вовсе не цена wearable-компьютерчика. Вполне разумная цифра. И не слишком завышена (чтобы не отпугнуть реально заинтересованных пользователей), и не обрушена ниже барьера, через который кому угодно легко перепрыгнуть из-за простого любопытства. Учитывая весьма очевидное - социальные эксперименты быстрыми не бывают, - ожидать "на днях" существенного снижения Glass не стоит. Что самое забавное и хорошо иллюстрирующее ситуацию - неисчислимые производители "концептуальные копировщики" (а их тьма) совершенно не спешат завалить рынок аналогичными wearable "по $200 за пару". Потому что "концептуальные копировщики" никогда не работают в "областях риска", их бизнес - быстрые реинжиниринг, проектирование и подготовка производства исключительно в области полной уверенности (в успехе предприятия).

А потенциальных социальных сложностей с wearable класса Google Glass так много, что даже на уровне концептуальной модели совершенно невозможно предусмотреть всё. Группа "сложностей с приватностью", например. Я ничуть не удивлюсь, например, сервису от той же Google, позволяющему блокировать работу камеры Glass в определённых местах и учреждениях. Как и не удивлюсь противостоянию групп "анархистов с отладчиками и паяльниками" такому сервису. Не удивлюсь и сервису автоматизированного контроля видео, поступающего именно с Google Glass пользователей (как и не удивлюсь тяжёлому кризису индустрии эротики и XXX от потоков home video). Большие сложности и тонкости во взаимоотношениях с носителями wearable таит неизвестный мир для производителей и поставщиков рекламы (я бы сказал, что этот мир ждут очень серьёзные изменения). А ведь есть ещё обязательные для любой страны режимные объекты, классифицированные документы, есть разнообразные в своих целях и методах миры криминала, и т.д., и т.п.

В общем, в социальной области эксперимент Google - это куда сложнее, чем долгое и довольно скучное (так как очень рациональное) освоение близкого космоса. Мне уже самому интересно, когда этот эксперимент по мнению социальных инженеров и исследователей Google будет считаться завершённым. А мы об этом узнаем непременно - как только Glass (или какая-то новая модель) подчинят общему принципу ценообразования, принятому в Google (а мы его уже видим по линейкам Nexus * и Moto *) - так и сразу. И сразу же предприимчивые "концептуальные копировщики" кинутся окучивать рынок неисчислимыми клонами и аналогами. Но что-то мне подсказывает, что до этого момента ещё далековато. Одно дело - крохотная аудитория техноманьяков и всевозможных гиков-фриков, и совсем другое дело - массовая аудитория "всех, кому не жалко $250".

Очень жаль, что социальная составляющая этого эксперимента довольно, как бы это сказать, коммерчески секретна. Хоть и понятно почему  (кто располагает такими данными, тот и будет фактически устанавливать правила игры в weatable-мире), но жаль. Я ничуть не сомневаюсь, что такая составляющая есть. Или адаптивно формируется по мере прохождения эксперимента.

Ну и очевидное очень важное "но". Wearable-компьютеры резко увеличат ширину пропасти "digital gap", отдаляющей развитые страны не от третьего мира, а от государств с "альтернативными путями развития". Это совершенно очевидно. Всякое чучхейство (с его вечным стремлением непременно к супер-ЭВМ и прочему "уникальному для нужд обороны") непременно отреагирует развитой запретительной системой. В то же время страны третьего мира, в силу специфики урбанистических процессов, скорее всего, довольно быстро адаптируют wearable под свои скромные и рациональные нужды и вполне возможно - удивят мир чем-то очень рациональным (как уже удивила мир Африка своим рациональным использованием обычных мобильных телефонов для построения больших виртуальных бирж сельхозпродукции для малых и индивидуальных производителей).

В общем, нам пока ничего не остаётся, будем просто наблюдать то, что отсюда видимо. Если судить по бурному развитию отечественного сегмента сервисов для мобильных пользователей (о, это такое бурное развитие, что микроскоп помогает с трудом), всё это катится куда-то мимо и мимо. Тем более, сейчас.

Теперь пара слов о всякой мелкой пользе.

Кому-то наверняка очень пригодится забавный "сервис", позволяющий интерактивно строить битовые образы пакетов разных сетевых протоколов Interactive Packet Builder. Даже странно, что он такой один и совсем новый.

Ну и вот очередной текстовый редактор (да, ещё один текстовый редактор) Atom, который "раскачивали" как "нечто совершенно особенного", стал и бесплатным, и с открытыми исходными текстами, и совсем кросс-платформенным "для ленивых". Не могу пока что-то внятное о нём сказать, но шума было много, и вдруг это жжжж неспроста? Хотя, конечно, персональный текстовый редактор на основе как бы совершенно серверной Node.js - это да, это здравствуй, новый прекрасный мир.

Откланиваюсь

(продолжение предыдущего - в следующей записи)

 

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

С выходом новой “долгоиграющей” версии всех ответвлений ОС Ubuntu (14.04 LTS, “долго поддерживаемая”) произошли некоторые весьма интересные изменения, малозаметные наблюдателю “с улицы”. Косметические перемены (которым я уделю внимание), существенное и очень ощутимое даже визуально обновление ядра ОС - всё это без сомнения приятно и важно (как индикатор живучести и хорошей управляемости проекта), но оно не самое главное в судьбе Ubuntu. Время как бы совсем не подходящее для объявления “революционными” изменений каких-то кнопок интерфейса (или прочего само собой разумеющегося из области userspace). Главное, что случилось с Ubuntu (и с Xubuntu, само собой) - полноценная интеграция проектом стремительно набирающей популярность Docker - универсальной как швейцарский ножик подсистемы поддержки “контейнерного” распространения, эксплуатации и разработки ПО. Впрочем, всему своё время.

Сразу избавлю потенциального читателя от попыток любых параллелей между популярной сейчас темой “с уходом Windows XP пора переходить на Linux” и этим циклом записей в блоге (где непременно будет и продолжение тематики Java 8, я ничего не забыл, но я живой и мне нужно время чтобы узнать что-то до той степени, когда я могу знаемым делиться, и это становится всё труднее). По моему мнению (и кто меня читает давно, тот знает, что это не голословное утверждение) “переход на *nix-подобную ОС” никак не связан и не может быть связан с судьбой систем из мира Windows. Слишком это разные миры, чтобы бросаться из одного в другой только потому, что какая-то мертворождённая ветка в одном из них наконец де-факто прекратила свои мучения (и пользователей). Я не призываю куда-то переходить и делать как я. Упаси бог. Просто рассказываю, что делаю, как, и, по возможности, пытаюсь объяснить - зачем и почему именно так (последнее, кажется, куда ценнее всего прочего).

Инсталляции Xubuntu я даже не буду касаться - она давно ничуть не сложнее аналогов из мира коммерческого ПО (а в чём-то даже и логичнее). Поддержку аппаратных средств мне трудно оценить - я использую Xubuntu на машинах далеко не первой свежести, с ними нет никаких проблем (по сравнению с предыдущей версией кой-какие мелочи улучшились, например, система стала “понимать” расширенные возможности тачпадов Synaptics после инсталляции “из коробки”, дальше извинюсь за этот термин). Забегая вперёд, могу обоснованно и подтверждённо о качестве поддержки аппаратных средств (и в целом о качестве дистрибутива системы) сообщить только кое-что косвенное. При этом постараюсь быть не голословным. Одна из моих целевых платформ для Xubuntu - старенький нетбук Samsung NB-30 (ну полюбил я этот добротный “танчик” мира нетбуков и не собираюсь от него отказываться, он же делает всё, что мне нужно). Вот что о нём сообщает утилита inxi:

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

Как видно из снимка экрана, компьютерчик по меркам 2014 года смешнее смартфона среднего класса. При этом - 64-битовость ОС и приложений, четыре виртуальных экрана, куча запущенных приложений (включая монстра NetBeans 8), и самое удивительное - в Xubuntu 14.04 всё это работает на такой смешной машинке реально быстро. Или даже лучше - нереально быстро. Не буду выдумывать, и просто покажу экраны этой самой смешной машинки во время написания текста (виртуальных экранов - 4, дань привычке):

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

Xubuntu 14.04 + старый нетбук + планшет + Docker = рабочая лошадка

От Windows 7 и последующих ничего подобного (на этом “железе”, конечно) с таким же мгновенным переключением между виртуальными экранами и общей работоспособностью под нагрузкой GUI-приложений добиться невозможно, я проверял многократно и довольно настойчиво (к слову, именно поэтому отношусь к анонсированному “чуду” бесплатного распространения Windows для устройств с малой диагональю экранов как к имиджевому недоразумению - или производители начнут делать 7-8 дюймовые Windows-планшеты c 8 гигабайтов RAM, или всё начинание уйдёт в никуда, потому что Windows Очень Любит Оперативную Память, и это факт).

В общем, это работает и меня удовлетворяет. Но за это я чем-то плачу. Весьма серьёзно. Правда, оплата “в свою пользу”. Сказать, что что-то существенно теряю, трудно - при малой диагонали экрана и убогих параметрах “железа”, - фактически ничего не теряю, потому что в реальности большие программные пакеты, “столпы” рабочих станций, на этом несчастье и так работать не могут по определению. Всё сказанное ни в коем случае не означает, что *nix системы целесообразны исключительно на “позавчерашнем железе”, я этого не говорил, не пытайтесь даже обвинить. Они целесообразны на “старье”, да. Но ничуть не больше, ничуть не меньше. Впрочем, это будет понятно далее.

Штатная “из имиджа” (ну какая “коробка” в 2014 году, извините?) система даёт какой-то там минимальный набор прикладных программ (честно скажу - я их разглядываю разве что ради удаления), разумно достаточный для весьма пожилого пользователя компьютера. И это хорошо. Дистрибутивы, напичканные “всем”, неизбежно будут подвергаться суровому обстрелу критиков. Точно так же, как пиратские “сборки” Windows, которые видели многие - в них есть что угодно, и всегда не то, что реально нужно именно вам именно когда нужно. Это несоответствие между потребностями и предложением открытого гигантского рынка, и разрешить его могут пытаться разве что наследники советского генплана, определяя кому, сколько и какого цвета носков нужно на год.

Главное в Xubuntu, что несущественно изменяется от версии к версии, - “среда десктопа” Xfce. Не буду пытаться утверждать, что она - совершенство, но. Она делает тот минимум, который должна делать (именно что минимум, например, из неё, пользуясь только её GUI, выяснить на что именно ссылаются иконки, можно не совсем очевидными способами), но делает его неплохо. Большего не требуется в 95% случаев (если серьёзно, то в оставшихся 5% уже вообще ничего не помогает).

Мне совершенно неинтересен, например, текстовый редактор AbiWord. Не потому что он плох. Он мне просто неинтересен. И я не настолько умалишённый, чтобы вынуждать себя писать тексты (не программ) в том же Vim. Мне нужен FocusWriter. Я привык к нему. И особенно привык к звукам печатной машинки, которые этот distraction free текстовый редактор потенциально умеет издавать. Потому что звук печатной машинки очень успокаивает и концентрирует (не знаю почему так, но я точно не один такой странный). FocusWriter - обязательная в моём списке программа. С инсталляции её и начинаются противные мелочи. Мне об этих мелочах трудно писать со 100%-й точностью (которая требует пошаговой проверки действий, а, следовательно, переустановки всего с “нуля”), но сразу и уверенно могу сказать - если мы соотечественники, и вы честно указали при установке системы какой-то город нашей родной Украины (что в терминах системы прозаично означает установку локали), подсистема управления пакетами ПО вашей копии ОС окажется настроенной на наше украинское зеркало пакетов проекта Ubuntu. И это не совсем хорошо. Не буду судить, почему так получается, что это не совсем хорошо, но рекомендую любым доступным способом (я предпочитаю модификацией файла /etc/apt/sources.list, можно с помощью GUI) перенастроить систему на зеркала из стран "первого мира". Потеря во времени загрузки пакетов будет минимальной, и существенной нагрузки на эти зеркала наша “армия” пользователей не создаст. Но доступ ко всем “свежим” пакетам у вас будет, а это главное.

Что же касается FocusWriter, его абсолютно обычная (в терминах механизмов системы) инсталляция (если она есть в репозитории пакетов) требует разве что минимального дополнительного поиска словаря проверки правописания для Open- или LibreOffice (файл с расширением .oxt для нужного языка) и подключения его с помощью GUI-настроек программы. Но настоящий эстет FocusWriter непременно захочет звуков печатной машинки, которые в любой Ubuntu-системе редактор издавать не может без инсталляции пугающей изобилием библиотеки SDL (нужный пакет для установки вроде минималистичен - libsdl-mixer1.2-dev, - но он “тянет” за собой всё, что может “утянуть”). После этой “добавки” FocusWriter работает так, как должен, ленивые могут поискать в интернете “focuswriter themes” и добавить готовые шаблоны оформления (zip-упакованные файлы .theme), я именно такой ленивый и предпочитаю пользоваться готовым, благо, его в достатке. 

Вторая важная для меня подсистема любой рабочей машины - JDK (Java Development Kit). И непременно “оригинальный” JDK, теперь от Oracle (когда-то это была Sun, лицензионные пуристы пусть даже не пытаются что-то писать в ответ, мне всё равно, мне нужна хорошая работа, а не чистота лицензий). Если вам не нужна Java - просто пропустите это необязательное. Есть два (точнее - три, третий - отдельно) способа инсталляции Oracle JDK в Ubuntu. Мне больше нравится “ручной” способ, потому что он концентрирует всё большое файловое дерево JDK под одним каталогом (по правилу умолчанию, которое нет  смысла нарушать - под /usr/local/java). Автоматизированный способ “размазывает” то же самое дерево JDK по и без того “размазанной” файловой системе Linux и вводит зависимость вашей инсталляции от третьих лиц, правда, весьма ответственно относящихся к своим “обязанностям”. Почему и зачем JDK? Потому что на Java написано море эталонных бесплатных программ, с годами не утрачивающих ценности, потому что Java - очень хороший (пусть и многословный) язык программирования, потому что JDK - основа для неисчислимого количества прекрасных готовых библиотек. Зачем? Кажется, я уже ответил на это в ответе на “почему”. Об инсталляции JDK детально будет позже.
К перечисленному фундаментальному я для себя отношу среды разработки на языках Go и Python. Причины примерно те же, что и для JDK. И, конечно, простой и удобный Bittorent Sync, давно заменивший мне в быту флеш-накопители.
Собственно, это весь мой базовый набор дополнительного ПО, прочее нужное повседневное или есть в дистрибутиве Xubuntu (браузер, файловый менеджер, вьювер pdf-файлов), или легко находится среди неисчислимых web-сервисов.

Теперь буквально совсем немного об обновившемся штатном в Xubuntu 14.04 (снимков экрана приводить не буду, они неинформативны). В списке существенных обновлений - появление нового пользовательского меню (аналог той самой кнопки “старт”) Whiskermenu. По сравнению с предыдущим аналогом, меню стало очень быстрым, доступ к системным настройкам вынесен в общее (независимое от просматриваемой подкатегории) поле.
К обновлённому штатному меню добавлен и новый интерактивный его редактор MenuLibre, легковесный (независимый от больших пользовательских окружений вроде Gnome), более чем употребимый и понятный. Несущественные обновления - наконец страшненький скринсейвер ушёл в прошлое (из-за этого были незначительные проблемы, но они уже устранены и у меня лично не проявляются), появился диалог редактирования профиля пользователя (для некоторых приложений), добавились новые “обои” и темы интерфейса.
Всё это в целом очень добротно “пригнано” и “вылизано”. Настолько, что никаких изменений в установленной системе делать не хочется, да и нет смысла.

Ну а теперь начнётся самое интересное. Раз уж Docker стал “естественным обитателем” Ubuntu, это неспроста и очень полезно.

Docker - по сути разработанная на языке Go надстройка над многоуровневым стеком механизмов ядра Linux по управлению возможностями групп процессов (process groups). Где-то глубоко, на самом нижнем уровне ядра ОС находится созданный специалистами Google механизм cgroups. Это сама по себе очень серьёзная разработка, прошедшая многолетнюю “обкатку” (разработка была начата в 2006 году). Cgroups вводит настраиваемые ограничения для иерархических групп процессов, что позволяет, например, ограничить доступ этих процессов к ресурсам ОС. Для управления cgroups предусмотрена и виртуальная файловая система, и утилиты, и системный демон. Забавно, что оригинальная статья, фактически анонсирующая проект cgroups, в названии уже содержала слово “контейнер”, которое будет использоваться в дальнейшем практически постоянно. Cgroups также косвенно связана с управлением “пространством имён” (namespace), любопытным для справки привожу только ключевые элементы этого механизма - системный вызов clone() и одноимённую “облатку” к нему в С-библиотеке glibc (clone() как бы аналог знаменитой функции fork(), но позволяющий дочернему процессу разделять часть контекста с родительским), а также утилиту unshare (позволяющую фактически высокоуровнево “отсоединять” фрагменты этого разделяемого контекста). Выше, над cgroups и управлением пространством имён, в иерархии стека Docker находится LXC (LinuX Containers) - интегрирующий механизм, объединяющий эти две возможности в цельное понятие “контейнера” - изолированного окружения приложений. Это не полноценная виртуализация, она не требует виртуальной машины и использует что реальное “железо”, что одно и то же ядро ОС, и даже при необходимости одни и те же библиотеки (это зависит от конфигурирования). Достоинства такого подхода очевидны - во-первых, и самое главное, - он легковесный. Для его реализации требуется несоизмеримо меньше любых системных ресурсов по сравнению с полноценной виртуализацией. К изолированным процессам, названным контейнерами, разработчики Docker добавили возможности файловой системы Aufs, высокоуровневые механизмы когерентного управления всем технологическим стеком и веб-сервис. Aufs, несмотря на страшное название (“слоистая файловая система”, layered filesystem), позволяет делать вполне очевидные и полезные вещи - группировать каталоги реальной файловой системы в отдельную развитую виртуальную с динамическим управлением, собственными правами доступа, логическими модификациями файлов и т.д. Синергетический эффект от объединения контейнеров и Aufs оказался именно тем, чего ждал мир Linux - легковесные изолированные процессы-контейнеры в комплекте с виртуальной гибкой файловой системой, позволяющей разделять отдельные каталоги между несколькими файловыми системами с собственными настройками в каждой, - серьёзный ответ на множество вопросов, объединяемых ёмким словом “software deployment”.

Как бы забегая вперёд поясню “на пальцах” - на уровне файловой системы Docker позволяет ”упрятать” то, что традиционно “размазывается” по файловой системе, в отдельные иерархии подкаталога /var/lib/docker (речь идёт о системах семейства Ubuntu). Процессам-контейнерам эти иерархии будут "видеться" полноценными каталогами в нормальной файловой иерархии ОС Linux, при этом хранения “всего” не требуется, только необходимого "персонально" процессу-контейнеру. Это означает и компактность, и возможность создания контейнеров для одного и того же процесса, например, но с разными версиями библиотек, и т.д. В общем, это означает мечту deployment-инженера, а также любого программиста или грамотного пользователя, любящего порядок. Контейнеры (пока не будем наводить порядок с довольно запутанной терминологией Docker) можно экспортировать в архивы, хранить и обмениваться ими локально или глобально, с помощью web-сервисов, в том числе и сервиса самого Docker.

Это была затянутая преамбула. Дальше мы "слепим" вручную (чтобы понять принципы) из комбинации Docker и Xubuntu контейнерный персональный "облачный" сервер для планшетов и прочего, и даже отдельный десктоп для удалённого доступа. А также вспомним обещанное "про Java 8". Время сейчас такое, что очень полезно занимать себя чем-то интересным и реально полезным.

Откланиваюсь.

О странностях и своевременности

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

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

Устойчивость же определяет диапазон изменений параметров системы, в котором возможно функционирование системы.

Это максимально упрощённо, конечно, сугубо для объяснения «на пальцах» понятий теории систем.

И я это к тому, что любая компания – она очень сложная система, а уж большая компания… тут уровень сложности такой, что ни о какой алгоритмике моделирования поведения больших компаний в быстро изменяющихся условиях речи всерьёз никто не ведёт.

Сейчас ситуация в IT изменяется быстро как никогда прежде. Очень смелое утверждение, но я его попытаюсь объяснить:

  • уровень доступности (не только цен в партиях) компонентов достиг востребованного производствами средних и даже малых масштабов и планка доступности продолжает опускаться, во многом это благодаря резко усилившейся конкуренции и открытой модели лицензируемой IP (революционеры-партизаны рынка ARM и MIPS) и пресыщенности рынков развитых стран, чтобы понять масштабы происходящего, достаточно упомянуть о только отпразднованном юбилее – произведенном 50-миллиардном ARM-процессоре или системе на чипе ;
  • уровни доступности и качества системного ПО со свободными схемами лицензирования уже соответствуют показателям коммерческого ПО, а часто и превосходят их (особенно в некритичных областях), было бы не так – картина использования тех же ОС Linux и FreeRTOS была бы совершенно иной;
  • рынки массовой продукции подбираются к точке пресыщения, генерация чего-то «нового» становится всё труднее, лучший индикатор этого – анонсы «нового ради нового» (вроде искривлённых смартфонов и «умных часов», которые давным-давно де-факто были) и очевидный переход недавно ещё вяло обновлявшихся систем в категорию legacy (Ms Windows, Apple Mac OS X – всё это легаси-системы с по сути косметическими изменениями);
  • смещение бизнес-интересов в сторону «четвёртых стран» (например, Африки), где требования очевидно очень специфичны (например, любой попутешествовавший по миру инженер может написать трактат «почему батарейки лучше несменных аккумуляторов», и если раньше такие трактаты бизнес игнорировал, то теперь времена меняются).

Есть ещё много явных подтверждающих факторов (одной commodity-революции в мирах «больших вычислений», СХД и сетевого оборудования достаточно, к ней можно добавить немыслимые взлёты гениальных стартапов, фактически из нуля в области восьмизначных сумм), так что расписываться нет смысла – в подобных условиях большие системы IT-бизнесов ещё не работали никогда, и всё только начинается. Так что мы можем невооружённым взглядом наблюдать очень интересные явления в поведении больших корпоративных IT-бизнесов, это познавательно и даже в какой-то степени поучительно.

Начнём с престранной истории входа Intel в рынки IoT (Internet of Things) и с судьбы системы на чипе Quark, о которой было столько шума. Анонс Quark был примерно год назад, в апреле 2013-го, на Intel Developer Forum. И вызвал волну публикаций по всему миру, об анонсе отписались даже самые ленивые, нерадивые и неграмотные копипастеры от «IT-журналистики». Мотивы у «нагоняющих волну» в силу больших различий в образовании и знании предметной области очевидно были разные – кто-то «гнал» просто потому что Intel, кто-то с надеждой на «вдруг перепадут плюшки», мне же что масштабы, что шкуры неубитого медведя безразличны, но не отдать дань компании, де-факто создавшей сверхживучий и сверхпопулярный «микроконтроллер эпохи» (я об Intel 8051), с которого начиналось когда-то и моя затянувшаяся страсть к микроконтроллерам, я просто не мог.

В отличие от многих, у меня хватило терпения даже изучать документацию на Quark, и уж точно из IT-журналистов единицы сподобились почитать errata (коррекции) к этой документации.

Своё мнение о Quark я уже высказывал в блоге, оно не изменилось – очень странная разработка, явно очень сырая и делалась в спешке (если судить по кошмару errata), но главное – явно «сработали» масштабы Intel, специфика производственных мощностей корпорации и как бы это сказать, - «бизнес-мышление по шаблону», – «мы убеждены, что доминирование системы команд x86 и сверхразвитая инфраструктура средств разработки непременно обязаны обеспечить популярность».

В качестве подтверждения этого могу привести одну важную деталь, которая была как бы малозаметна и не очень понятна неспециалистам – для встраиваемых вычислителей исключительно важна способность быстро изменять состояния объектов внешнего мира (потому что они для того и делаются), иными словами – то, что принято в «не мире не совсем встраиваемых систем» называть GPIO (ввод-вывод общего назначения), должно быть быстрым. Насколько быстро? Например, 50-центовый восьмибитовый микроконтроллер без всяких дополнительных деталей и ухищрений в 2014 году может довольно умно делать это, скажем, 10 тысяч раз в секунду. Не очень умно – 100 тысяч раз. С помощью встроенной специфической периферии и в специфических задачах – миллионы раз. Если очень хитро и грамотно разрабатывать ПО – цифры будут на порядок выше (естественно, ограниченные аппаратными возможностями). А вот реальный первенец на базе Quark, одноплатный встраиваемый компьютер Intel Galileo, поразил тех, кто «в теме», загадочным максимальным показателем быстродействия GPIO – 230 Hz. 230 раз в секунду? Очень странная цифра для встраиваемых систем в 2014 году. Тем более, при тактовой частоте 400 MHz. И, тем более, при x86 архитектуре с её кэшированием везде и сложной логикой выполнения команд (опять поясню – встраиваемые системы слишком часто требуют фундаментальной предсказуемости и «повторяемости всегда» времени исполнения каждой команды, есть множество приложений, в которых «джиттер» или, грубо говоря, точность соблюдения временных интервалов между изменениями состояний выводов GPIO, строго ограничен требованиями прикладной области и должен быть минимально возможным).

В общем, универсальным вычислителем для IoT Quark могли называть только очень неграмотные журналисты (что и делали не без успеха). Ничуть не сомневаюсь, что специалисты Intel превосходно знают прикладную область и даже высказывали скепсис относительно позиционирования Quark как IoT-SOC (системы на чипе). Но, по-видимому, бизнес-логика победила. И теперь мы фактически видим развязку всей истории.

Один из двух известных (и официально анонсированных) продуктов на базе Quark, одноплатная машинка Intel Galileo, до сих пор у одного из крупнейших дистрибьюторов Mouser Electronics значится в очень странном состоянии – на складе ноль, заказов – ноль, срок поставки 10 недель. Второй продукт – специфический вычислитель в формате SD-карты, Intel Edison, внезапно и малозаметно для публики изменился, больше не будет Edison на базе Quark, эта пока существующая в анонсах то ли платформа, то ли форм-фактор, не разобрать, теперь будет только на основе двухъядерного Intel Atom с пониженной до 500MHz тактовой частотой. Больше того. Форм-фактор, очевидно, тоже изменится (к слову, никаких особенных достоинств в формате SD-карточки я лично не вижу, мне вообще трудно объяснить на основании какой логики и кто в Intel это придумал, если речь идёт о простоте использования за счёт доступности стандартных разъёмов, то у стандартной SD-карточки всего ничего выводов – 9, и зачем во встраиваемом мире мощный вычислитель с девятью выводами – вопрос не ко мне, а если возникает ещё и нестандартный разъём – то кому это вообще надо, увеличивать стоимость конечного изделия за счёт этого разъёма, – тоже вопрос не ко мне).

В общем, прощай и Edison, ты больше никогда не будешь таким, каким ты так и не стал.

А теперь, внимание, «следим за руками». Если уж я «повесил на стену» в начале этой записи ружьё, заряженное быстро изменяющейся ситуацией на рынке, то пора ему выстрелить. Пока длилась годичной продолжительности «игра в кварки», тихо-тихо, без особой помпы британская (ох уж эти британцы) Imagination Technologies (MIPS) и китайская Ingenic Semiconductor (лицензиат MIPS) приготовили для разработчиков из самого аппетитного сегмента встраиваемых систем – wearable, – подарочек. Вот он:
 

О странностях и своевременности

Чтобы ни у кого не оставалось сомнений, «подарочек» назван… нет, не Edison, но Newton. Кроме wearable-рынка, который буквально манит всех (смотрите, смотрите кого внезапно прикупила Intel!), Newton нацелен и на всё остальное – от систем биометрии до промышленного управления.

«Напичкан» этот встраиваемый компьютер так, что если не захватывает дух, то вызывает уважение – процессор с тактовой до гигагерца (одноядерный), 3GB RAM, почти всё беспроводное (WiFi, Bluetooth 4 включая LE, NFC и даже FM-тюнер), сенсоры – «какие хочешь» (все возможные трёхосевые – гироскоп, акселерометр, магнетометр, аналоговые каналы электрокардиографа (!), датчики давления, влажности и температуры), и, наконец, заявленная, но пока нигде не раскрытая подсистема «управления двигателями» (вероятнее всего, аппаратная поддержка генерации многофазных PWM-сигналов). Всё это богатство «утрамбовано» на плате размером примерно 4x2 сантиметра толщиной 3 мм и поддерживает что Linux, что Android. И всё это чётко и открыто позиционируется как конкурент неслучившейся пока платформе Edison.

И очень похоже, что в поднебесной это не единственная такая разработка (несмотря на незабвенное «русский с китайцем – братья навек», китайские компании категорически не уважают ранних анонсов, чем страдает или наслаждается весь бывший СССР).

И подобное не может не вызвать ответной реакции Intel. Она наступила – Intel «вваливает» (извините за жаргон) 100 миллионов долларов в Capital China Smart Device Innovation Fund, открывает Intel Smart Device Innovation Center в Шэньчжене, и, само собой, ничуть не скрывает целей этих действий – стимулировать использование своих полупроводников.

Иными словами – начинается серьёзная большая открытая война за рынок встраиваемой электроники, в первую очередь – бурно растущий и всеядный китайский. Очень, очень интересная война. И даже полезная (все бы войны такие).

Китайский массовый рынок всё равно остаётся очень эластичным, и научившиеся массовому производству китайцы очень требовательны к соотношению «возможности-цена» компонентов.

Сможет ли огромная и не очень потому быстрая корпорация в таких условиях успешно сражаться за свой кусок пирога? Вот и посмотрим. Это всегда интересно. Тем более интересно после очень странной истории Quark, Galileo и Edison.

А теперь о второй истории "своевременности" в сочетании со странностями. Как-то так получилось, что три анонса от Microsoft практически совпали – корпорация поместила исходные тексты MS DOS в «компьютерный музей», сделав их доступными для изучения (но не «открытыми» в смысле открытых лицензий ПО), в этот же музей на тех же условиях попали и исходные тексты Word версии 1.1, и, наконец, из состава Microsoft Office стала бесплатной программа OneNote, и она же появилась для платформы Mac OS X, правда, в весьма усечённом варианте.

Зачем и кому нужны в 2014 году исходные тексты MS DOS и замшелого Word – я ума не приложу (правда, общественность для развлечения уже прошлась по коду Word статическим анализатором, отыскала кой-какие ошибки, в целом похвалила), даже как PR-ход эта инициатива выглядит больше глумлением, чем реально кому-то полезным действом.

А вот про OneNote вынужден сказать элементарное – к моему сожалению, это сделано очень и очень поздно. Вообще, история этого неплохого пакета симптоматична в смысле пресловутого бизнес-критерия «успей на рынок». Очень и очень поздно появились мобильные версии OneNote для сторонних, в первую очередь мобильных, платформ. Очень и очень поздно OneNote начали отделять от Office. Ну и совсем поздно он стал бесплатным. Паровозик с пользователями уехал далеко-далеко, и кочегары из Pocket, Evernote, Springpad, WizNote etc не устают подбрасывать угля. Переносить накопленное за годы никто не станет – это слишком затратно, все web-клипперы как раз и сделаны для практически беззатратного накопления и хранения фрагментов контента, потому именно для пользователей этих систем «бесплатность с опозданием» не значит ничего хорошего. Чего ещё не пользующимся web-клипперами искать уникального в OneNote – на этот вопрос, к сожалению, маркетинг чёткого ответа не даёт.

В общем, картинки становятся всё страннее и страннее. Я понимаю, что это всё мелочи, по сути. Но этот факт не отменяет того, что они как бы показывают нарастающие проблемы гигантов в прекрасном новом мире. Потому что этот мир вводит бронтозавров в испытания на адаптируемость и устойчивость. И открывает новые условия для сонма мелких вроде безвредных млекопитающих.

У меня на этот раз всё.

Откланиваюсь.

Wearable MIPS и IoT от Wintel

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

Вот и первое не совсем стандартное решение - "Imagination является первой и единственной пока компанией, интеллектуальная собственность которой (IP) на CPU позволила получить статус "партнёра по запуску" (launch partner) в проекте Google Android Wear" (не совсем дословно цитирую спикера компании Imagimation). Если название Imagination вам ни о чём не говорит - это уже не совсем новый собственник MIPS. А Google Android Wear - то самое нечто новое в мобильном (как положено, - тоже не совсем новое), "гуглочасы", если хотите, наконец-то "умные часы" вполне и умышленно похожие на традиционные часы (что очень замечательно, по моему скромному мнению).

Само собой, платформа Android Wear не будет ограничена только аппаратными средствами MIPS - там будет и де-факто стандартная для экосистемы Android ARM, и всё ещё скромно участвующая "в доле" Intel. Но выбор в качестве "партнёра по запуску" именно MIPS - он символичен. Вспомним политику Google в двух сегментах - планшетов и смартфонов. Она лаконична, проста, довольно жёсткая и очевидная - "мы задаём планку соотношения качество/цена, вы можете играть выше, вы можете играть ниже - ваше дело и ваши риски". В полном соответствии с политикой, для новой платформы был нужен и знаковый стартовый партнёр, предлагающий "всё то же самое, только дешевле и лучше (или уж точно не хуже)". Ну что ж, Google это сказала, все это услышали.

Что ещё интереснее в сказанном - MIPS ведь не производитель реального "кремния", MIPS - поставщик IP (и не только процессоров, но и специализированных завершённых решений, например "систем обработки радиосигналов, RPU", повзоляющих максимально упростить реализацию многопротокольных беспроводных подсистем). А вот с реальным  MIPS-"железом" в новом мире Android Wear же "засветилась" китайская компания Ingenic. У которой в закромах уже несколько MIPS-основанных систем на чипе специально для "умных часов" и прочего wearable. Очень интересная комбинация получается, и я не буду удивлён, если Китай, например, станет одним из первых массовых wearable-рынков.

Теперь немного об IoT, потому что это модно и вообще. Начали просачиваться слухи, что в апреле империя Wintel (Microsoft и Intel) нанесёт ответный удар по растущему и неоформленному рынку IoT. Дескать, процессор Intel Quark будет дополнен чем-то очень важным системно-программным от Microsoft, и мир увидит принципиально новую IoT-платформу, которой надо заранее уже бояться. Прочие подробности никому не известны, и гадать что именно Microsoft объявит я не хочу (кроме очевидного утверждения - скорее всего какую-то адаптацию Windows Embedded, хоть рынок IoT и ещё совершенно не определённый в части стнадартов и прочего общепризнанного, исследовательские разработоки врядли будут выставлены "на продажу"). Но вот что заранее хочу сказать - в силу специфики Quark не может претендовать на какую-то серьёзную роль в IoT,  тем более, на "системообразующую". Не буду пространно объяснять почему, я об этом уже писал. И, кажется, мы впервые увидим действительно нечто новое - игру гигантского концера на поле, где все принципиально равны и масштабы погоды не делают. А вот это уже будет очень интересно. Система стандартизации, кажется, в части IoT уже определилась, и закрытые перетяжелённые стандарты, ещё и зависимые от технологий всего одного игрока её не интересуют. Изобилие конккрирующих предложений от средних и малых компаний вносит полную неразбериху, потому что, в принципе, у всех всё очень разное и весьма адекватное. Короче, ландшафт IoT превращается в поле битвы толп шустрых и мелких Давидов и огромных хорошо откормленных Голиафов, причём битва по принципу "каждый за себя", ещё и с динамичной стохастической организацией временных альянсов.

Это пока всё, про Java 8 - чуть позже

Откланиваюсь

Java 8 - что нового. Часть 1 - интерфейсы.

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

Для начала - немного относительно "свежих" и очевидных фактов, объясняющих почему эволюция Java-платформы важна для IT в целом:

  • несмотря на любые домыслы, Java остаётся платформой №1;
  • количество разработчиков оценивается на уровне 9 миллионов;
  • число загрузок Java (рантайм и JDK) - больше 1 миллиарда в год;
  • количество Java-устройств в мире оценивается на уровне 3 миллиардов;
  • 97% рабочих компьютеров из корпоративного сектора исполняют  Java-приложения;
  • Java прочто удерживает титул самой востребованной платформы в сегменте анализа данных.

Проверял я работу Java 8 SDK на двух машинах - одна под управлением Windows 8.1, вторая - Xubuntu 13.10, причём совсем слабенькая, она еле дышит под той же Windows 8.1. Выбор машин - умышленный, как и приложений. Java слишком обширна, чтобы ограничиваться только серверными приложениями, над платформой надстроен великолепный технологический стек для повседневного программистского, причём выходящего далеко за границы Java (например, среда разрабтки PyCharm для Python), и игнорировать эту составляющую никак нельзя.

Но детали - это не главное.

Итак, что же серьёзное случилось в Java 8 и как разработчики языка умудрились "вписать" это серьёзное в развитие платформы так, чтобы ничего не "сломать" во всём её прошлом?

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

Попробую объяснить проще - "интерфейс" в Java мог содержать только константы и описания методов (функций). Без всякой реализации. "Овеществить" такое (создать объект такого типа), очевидно, без явной реализации всего, что существует только на уровне описаний, невозможно. И нужно всё это для описания "набора правил поведения" будущих объектов классов, реализующих интерфейс. Как программист реализует следование "правилам поведения" - его личное дело, интерфейс же гарантирует соблюдение объектом этих правил. Поэтому можно считать интерфейс неким соглашением (контрактом) с внешним по отношению к реализующим его объектам, миром.

С помощью интерфейсов в Java всегда компенсировалась (и очень разумно) "врождённая недостаточность" множественного наследования, которого язык принципиально не поддерживает. В общем, интерфейсы - фундаментальная и одна из главнейших концепций Java.

Java 8 внесла существенную корректировку в эту концепцию. начнём с того, что теперь "интерфейс" может быть как бы частично абстрактным, потому что в Java 8 появились "методы интерфейсов, определённые по умолчанию" (interface default methods), а также статические методы.

Default methods - конструкция, которая, по идее, нужна была давно. Без неё научились обходиться и сформировали разные приёмы проектирования и реализации, но если есть возможность избежать лишнего - лучше его избежать (собственно, это и особенно привлекательно в модификациях интерфейсов Java 8 - все они явно подсказаны практикой и накопленным опытом).  Предпосылкой необходимости default methods стал очевидный вопрос: если  "интерфейс" - это де-факто контракт, то что произойдёт с его реализацией и со всеми "подписантами" в случае изменения контракта? Программные системы ведь эволюционируют, и уровень проектирования "до самых мелочей" возможет только в очень специфических случаях. Этот вопрос сам по себе неприятен на уровне работы с исходными кодами, но ещё же есть бинарное представление программ и крайне неприятная, но нужная в реальности "бинарная совместимость" (не всё можно перекомпилировать и пересобрать по разным причинам - или нет исходных текстов, или просто не позволяют ресурсы). Методы интерфейсов, определённые по умолчанию (default methods) - один из вариантов ответа на этот вопрос в Java 8. Default методы интерфейсов теперь содержат реализации. При этом соблюдается следующая логика:

  • очевидно, что раз реализация default метода интерфейса существует до момента "овеществления" объекта, реализующего интерфейс, функциональность default-методов ограничена доступом к объектам "внешнего мира" - мы не можем оперировать несуществующим;
  • все default-методы интерфейса по умолчанию являются публично доступными (public);
  • при расширении интерфейса возможны три варианта - не обращать внимание на default-методы вообще (и их реализации будут использованы "как есть"), объявить не-default абстрактный метод с той же сигнатурой, что у default-метода из расширяемого интерфейса (в этом случае в новом расширенном интерфейсе метод станет абстрактным), явно переопределить (override) метод вместе с его реализацией;
  • только если класс, реализующий интерфейс, реализует и все методы интерфейса, возможна его компиляция и последующее "овеществление" с использованием его собственных реализаций методов (включая default-методы), в противном случае Java-компилятор пытается отыскать default-реализации нереализованных методов в интерфейсе (интерфейсах), а в случае возникновения "бриллиантовой проблемы" (о ней - чуть позже два слова буквально), формируется ошибка компиляции;
  • default-методы не нарушают бинарной совместимости кода, реализующего интерфейсы, то есть, их можно добавлять к интерфейсам, расширяя их для новых разработок, при этом старые библиотеки остаются полностью работоспособными (что подтверждается работоспособностью всех Java-приложений дремучих времён в Java 8, где уже default-методов интерфейсов море).

Упомянутую "бриллиантовую проблему" знают многие программисты, имеющие дело с языками, допускающими множественное наследование - если есть абстрактный класс A с одним единственным абстрактным методом M, этот класс наследуют и по-разному реализуют метод М два класса B и С, и есть четвёртый класс - D, наследующий классы B и C и не переопределяющий реализацию метода M, то какая из конкретных реализаций M должна использоваться овеществлениями класса D - B.M или C.M? Ответа на этот вопрос нет, это грубейшая семантическая ошибка на уровне проектирования, потому и "бриллиантовую проблему" жёстко называют "deadly diamond of death".

Кроме default-методов, обновлённые интерфейсы Java 8 позволяют описывать реализации статических (static) методов, являющихся общими для всего класса, а не для овеществлений отдельных объектов класса. Это, можно сказать, тактическое решение, упрощающее де-факто стандартную реализацию паттерна "фабрика объектов", который требовал в общем случае отдельного утилитарного класса со статическими методами генерации объектов. Появление статических методов в интерфейсах позволяет во многих случаях избежать потребности в таком дополнительном классе. Разработчики языка сочли это весомым аргументом.

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

В целом впечатления от Java 8 более чем положительные. Конечно, ожидалось нечто большее (в первую очередь модульность), но, понимая сложность платформы и её критическую значимость для IT, с желаниями больших изменений можно повременить, куда важнее стабильная работа и сохранение всего, что сделано в мире Java за долгие годы существования платформы.

В качестве приятного бонуса - Java 8 при исполнении больших пользовательских приложений (из проверенных мной Netbeans 8, Eclipse, PyCharm и Intellij Idea) в Linux стала существенно "быстрее" и "легковеснее". Это очень заметно и радует.

На сегодня у меня всё.

Откланивась

Феномен MOOV (и не только) и немножко больно (и не только немножко)

У каждого нормально написанного текста должна быть какая-то предыстория. Иначе цена этому тексту – чисто коммерческая, «за тысячу знаков».

Этот текст начался с выплывшей из наших уже дней и из новой уже реальности совершенно потрясающей формулировки неизвестного мне автора явно из региональной прессы. По-моему, автор сам не понял, как «снайперски выстрелил» сочетанием двух набивших оскомину шаблонов:

«За нами - история подвигов наших отцов. Впереди - счастье наших детей»

Чтобы было понятнее, даже поясню. Есть временная точка где вот все мы в сию секунду находимся, скажем, это точка Tnow. Понятно, что по шкале времени в направлении прошлого на каком-то отступе от Tnow располагается история подвигов наших отцов. Понятно, что по шкале времени в направлении будущего где-то там располагается счастье наших детей (которых пока у многих ещё и нет). Непонятно главное – что располагается между двумя чётко обозначенными областями, вот там, где мы все сию секунду? Ответа нет. Там - ничто. А что происходит при перемещении точки Tnow? Мы же ещё живы, и секунды тикают. Да ничего не происходит. Точнее, происходит движение ничто. Кто-то становится отцом, и передаёт точку Tnow дитю. Остаётся недолго в ничто, потом попадает в историю подвигов. И так каждое поколение находится в плавающей области «ничто», без каких-либо изменений. Это принцип для «навсегда». Чудовищно мощный, пушки по сравнению с ним – детский лепет (так что бояться надо не пушек, а именно этого принципа, как оружия массового поражения).

После столь дивного лозунга мои злобные rss-фиды, как сговорившись, притащили сразу кучу всякого, в точности попадающего в описанную выше область «ничто», где мы всё время и «во имя», ну, вы понимаете. Ещё и очень интересного притащили, в очень интересных смыслах. В том числе и упомянутую в названии MOOV. Но тут я вынужден немного изменить порядок и вклинить сюда то, к чему технологические новости меня сподвигли. Потому что это же рекурсивный процесс – восприятие новостей (особенно в условиях изобилия источников с мизерной степенью доверительности). Погружение, так сказать. И вот решил я проверить себя и вспомнить «внезапно» что такое «урбанизация» (почему внезапно – будет понятно потом). Обычно я принципиально не читаю русскоязычную википедию (и категорически не советую этого делать просто потому, что википедия – совершенно не «отсюда» проект, его неоригинальные адаптации так же неинтересны, как неинтересны некогда итальянские автомобили марки «Жигули», всё хорошо в оригинале), но тут вот решился. Катастрофическое различие между семантикой первых же фраз поставило меня в тупик. Вы сами можете проверить, это элементарно. Я буду придерживаться англоязычной версии просто потому, что сам термин «урбанизация» в контексте приведенной выше «формулы для навсегда» означает знаменитое «сближение города и деревни» (если кто хочет подробностей – газета «Правда» от 4 марта 1951 года, статья теперь виноватого во всём Н.С.Хрущёва «О строительстве и благоустройстве колхозов» с плодотворной идеей агрогородов спутников гигантских полей и огородов, для обеспечения полноты освобождения от бремени частной собственности). Сближение это удалось. Но в несколько ином смысле – обессиленная ограбленная деревня хлынула в город и действительно очень сильно приблизила то, к чему не привыкла, к тому, к чему привыкла. Но к урбанизации, как к всемирному явлению, эта локальная особенность имеет такое же отношение, какое имеет популярность велосипедов (как разновидности транспорта и даже такси) в странах четвёртого мира к популярности проката велосипедов в Лондоне или Копенгагене.

Что же касается урбанизации, то очень советую всем прочесть большую и серьёзную статью Рика Робинсона (весьма немаленького человека в IBM, занимающегося проблемами «умных городов», Smart Cities), не пропустите этот материал, Робинсон очень хорошо знает своё дело.

Теперь можно и к компании MOOV приступить. Почему я выбрал именно её? В том числе и потому, что её продукт – фактически  типичный для растущего как на дрожжах нового сегмента IT-рынка, «проникающего компьютинга», весьма далёкого от традиционных «чисто компьютерных» областей. Это представитель новой «большой волны» IT, если хотите. Именно в этой области «проникающего компьютинга» и будут делаться большие деньги, концентрироваться усилия, вестись социологические и прочие научные исследования, весьма далёкие от привычных IT.

Яркий успех даже не компании, а маленького коллектива (10 человек) должен же ж о чём-то нам сказать. Тем более, что в MOOV не пошли уже традиционным (сейчас именно традиционным) путём – не стали играть в краудсоурсинг (например, в Kickstarter). Напротив, MOOV действовала, если так можно сказать, супер-консервативно (что само по себе является неким элементом новизны для «стартапов нашего времени»). На уровне готовности прототипа компания не искала кому бы продаться подороже, а… объявила предзаказ на продукцию. Через свой собственный сайт. И не прогадала – на первый миллион долларов вся продукция MOOVE уже выкуплена (20000 комплектов). Это тот самый миллион, который уже получен от предпродаж по сниженной акционной цене.

Что, собственно, предлагает MOOV?

Феномен MOOV (и не только) и немножко больно (и не только немножко)

Смешно сказать, но ровным счётом ничего особенного. Есть такой класс устройств – шагомеры. Они бывают по-разному исполненными. От механических (и плохо работающих по идее) до электронных и MEMS (микроэклектронномеханических). Вне зависимости от исполнения, все они делают по сути одно и то же – регистрируют колебания. Продукт MOOV – MEMS-датчик с по возможности универсальным креплением и радиоканалом. Это как бы «супершагомер», регистрирующий с помощью MEMS-датчика свои движения в пространстве. Датчик используется явно типовой, его условно называют «9-осевым», на деле это гибрид трёхосевых MEMS-гироскопа, акселерометра и магнитометра, такие микросхемы выпускаются серийно и доступны всем желающим.  Никакой rocket science во всём устройстве нет (кроме, безусловно, дизайна и механизма крепления). На уровне электроники и firmware (прошивки) это, по сути, курсовая работа хорошо подготовленного любопытного студента. Само устройство дополняется программой для смартфонов под управлением ОС iOS и сервисом. Всё вместе образует нечто вроде персонального фитнесс-тренера – позволяет оценить затраты энергии от занятий, использовать интерактивный режим (с подсказками голосом, для которых нужно iOS-устройство, само собой) тренировок etc.

Можно ли сказать, что это какой-то технологический «взрыв»? Да упаси бог. Например, Lewe – нечто весьма подобное, полностью открытое, с небольшими затратами труда способное стать практически тем же самым функционально. Например, некоторых очевидно нужных, но сложно реализуемых с учётом возможности крепления устройства «где угодно» функций у устройства нет (в первую очередь – пульсометра). Но устройство оказалось успешным (люди же проголосовали за него деньгами). В чём же могут быть причины успеха MOOV? Разве это не интересный вопрос? Когда-нибудь, надеюсь, ответы на него станут кому-то и важными (когда – см. правило выше, так что я не знаю когда именно, но не утрачиваю надежды).

Сугубо для иллюстрации, чтобы показать «проникающий компьютинг» в действии, приведу ещё один совсем свежий пример. Многие слышали имя бренда Babolat, хорошо известное увлекающимся теннисом. Babolat разработала и уже производит первую «умную теннисную ракетку» - Babolat Play.

Феномен MOOV (и не только) и немножко больно (и не только немножко)

Это устройство уже сложнее, чем MOOV и Lewe, но фундаментальный принцип всё тот же – это компьютер+программы, расширяющие возможности привычной вещи, не меняющие её принципиальную функциональность, но добавляющие нечто как будто совершенно необязательное.
 
И ещё для иллюстрации «новых IT» нечто из совершенно другой оперы и совершенно других масштабов. Голландия, Амстердам, «3D-отпечатанный» квартал, который уже открывается для туристов и посетителей:

Феномен MOOV (и не только) и немножко больно (и не только немножко)

 
Голландская архитектурная студия DUS Architects (студия! не гордая «корпорация», не чудище обло озорно etc «холдинг», а просто скромно студия!) таким образом пропагандирует новые способы проектирования и строительства, заодно и свой 3D-принтер KamerMaker (и материалы для него), предназначенные для «печати» габаритных конструкций. То есть, DUS Architects адаптируют прямое производство к архитектуре, фактически сводя капитальное строительство к чистой IT-составляющей (программная поддержка проектирования, 3D-печати и упрятанной в 3D-принтер алгоритмике низкоуровневого управления) и, естественно, к специфике прикладной области.

Вернёмся к MOOV. Давайте не играть традиционно «от личностей», не те времена как бы. А начнём с больших и важных вещей.

Во-первых, кому нужен продукт MOOVE? Ответ очевиден – людям, имеющим достаточно времени и средств для инвестиций в своё здоровье и в активный образ жизни. Кем могут быть эти люди? Не совсем очевидно, но можно предположить, что они в большинстве своём не пенсионного возраста и не заняты физическим трудом на свежем воздухе. Не совсем очевидно, но можно предположить, что по большей части они – и продукт, и «моторчик» процесса урбанизации. Здесь всё логично – можно представить себе тружеников отдалённых одиноко стоящих ранчо и прочих хуторов при бескрайних полях, изнуряющих себя целевым троеборьем для сжигания калорий – джоггингом, плаванием и велосипедом, – но после хорошей осмысленной физической работы на действительно свежем воздухе как-то это всё отходит на второй план.  Если же вернуться к формулировке неизвестного автора, то где на временной линии находятся потребители MOOV? Без сомнения – в той самой точке, где «ничто», в Tnow. Эти люди хотят сейчас и здесь заниматься вот этими всеми «многоборьями», соревнуясь с самими собой. Нравится им это, наверное. Потому что на потребителей устройств для людей пожилых и потому уже дрожащих о здоровье (например, на потребителей тонометров) они точно не похожи именно этой своей потребностью в чём-то избыточном, высокотехнологичном и просто можно сказать – забавном.

Что и кому даёт продукт MOOV? Потребителям – понятно что, об этом выше. Урбанистическому обществу, из которого явно происходит компания-разработчик – если поверхностно, то рабочие места и движение денег, а если глубже задуматься – пользователям этого удовольствия явно нужны свободное время, беговые дорожки в парках и сами парки, освещение и безопасность в парках, бассейны, велосипедные дорожки, спортзалы, чистый воздух, спортивная одежда, её постоянные стирки (да, и это), обувь, многим наверняка – здоровое возможно специальное питание, etc, и кто-то же должен им всё это дать. Компании-разработчику – средства для развития. Компаниям-исполнителям – заказы и, опять, же, рабочие места. Кстати, о компаниях-исполнителях. Они, что неудивительно, китайские. И стартовый объём производства, затребованный ими, оказался вполне реалистичным - $40000.

Мы можем взглянуть в доступную нашу статистику, чтобы рассмотреть потенциальную аудиторию пользователей MOOVE в наших специфических условиях. Благо, такая сравнительно свежая (не могу сказать насколько доверительная) статистика в наличии. Если судить по клиентам фитнес-клубов, потенциальная аудитория для чего-то подобного продукции MOOVE вроде как не маленькая – порядка 960 тысяч человек. Причём часть из них была готова платить до 50000 гривен в год за пользование «премиум класса» фитнесс-клубами:

Феномен MOOV (и не только) и немножко больно (и не только немножко)

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

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

Мы унаследовали города, десятилетиями целенаправленно создававшиеся по каким угодно принципам, кроме урбанистических (вообще, «создавать город» и «урбанизация» – противоположные понятия, урбанизация – это эволюционный процесс, с неизбежными революциями). Или синтетические города-спутники гигантских системообразующих предприятий, или даже «города специального назначения», само существование которых отражает некое целевое назначение, что отражается уже в языковых паттернах и мемах (например, «Николаев – город корабелов»). Города, вырванные из естественной эволюции, для которых этот процесс «вырывания» опять же десятилетиями вынужденно «подкармливался», потому что остановка системообразующего предприятия фактически означает гуманитарную катастрофу масштабов синтетического города-спутника. Это замкнутый цикл, не приводящий ни к чему новому и, как мы уже видим, хорошему – гигантские предприятия не могут быть вечными (хуже того – если они стали гигантскими не эволюционно, а были созданы такими по команде, они не живучи) и катастрофу можно разве что отдалить, но избежать её способом «любой ценой сохранить масштабы производства» принципиально невозможно (кто думает, что это уникальное для пост-СССР явление – взгляните на историю Детройта). И во всём этом удивительно как ещё держащемся на плаву мы видели очевидные безумства «инвестиционных проектов по команде» – строительства никому не нужных мегастадионов там, где как воздух нужна просто соответствующая потребностям города система общественного транспорта, раздувание аэропортов там, где пассажиропоток полностью удовлетворялся уже имеющейся инфраструктурой, а для повышения туристической привлекательности нужны не аэропорты вовсе, а развитая инфраструктура обслуживания и развлечения туристов (читай – сверхразвитый малый и средний бизнес), мы видели феноменального идиотизма прожекты истеричного переделывания по сути ночлежек в «гостиницы среднего класса». Мы слышали бесконечные сказки о велосипедных дорожках, и видели замаскированное этими сказками сокращение лесопарковой инфраструктуры для насаждения каких-то очередных ублюдочных строений.

Вы ещё не поняли почему и зачем я это очевидное собираю в кучу? Объясню открытым текстом – пока оно всё будет в движущейся вместе с нами точке Tnow как оно было, мы всё дальше уходим от маршрута естественного эволюционного движения современных IT, всё дальше уходим в даже не знаю куда, сейчас никто не способен понять логику происходящего и направление движения. Но очевидно одно – ubiquitous computing, который уже пришёл в другие миры, в такой мир не придёт просто потому, что в точке Tnow нет массового потребителя продуктов. В этой точке – перемещающаяся во времени пустота, занятая пропагандой, и в этой пустоте страдальцы за подвиги отцов уже готовы убивать мечтателей о счастье детей, и наоборот. А так как ubiquitous computing – уже не будущее, а настоящее, то пора бы озаботиться всем, кто из отечественных IT.

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

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

Для чего я это очевидное пишу? Господа ITшники, наступает время «междисциплинарных IT», в которых никому особо не интересно как там обновлять драйверы или хитро использовать программу A для решения задачи B. Это нужно, конечно, и даже полезно иногда. Но уже совершенно не интересно. Современное интересное и приносящее деньги (ubiquitous computing, коммерческая робототехника, масштабные потребительские сервисы) – оно ограничивается пещерным состоянием урбанизации нашей многострадальной страны. Стало быть, наступает время проявлять активность во вроде как не IT-областях. И делать это всерьёз.

Я многократно читал бурные дискуссии в комментариях к обсуждениям всяких возможных масштабных реформ системы образования и прочего, что людям не из верхушки госуправления и не от формирования бюджета разумно обсуждать разве что на кухне и не на совсем трезвую голову. Это всё пустое. 

Пока что есть всё тот же один доступный способ внести свой вклад в урбанизацию. Малозатратный. И очень важный. Я понимаю прагматичное желание IT-бизнесменов получить «по щелчку» как можно больше подготовленных «белых воротничков» (от программирования, например). Но не понимаю надежд на исполнение этого желания и попыток блогами и комментариями влиять на ещё одно реформирование деформированной до почти бессмысленности системы образования (где уже неисчислимые «университеты» обесценены чуть ли не до «обучения по вывескам»).

Так вот, о способе. Господа, мы все можем хоть немногое сделать для этой самой «урбанизации». Не ожидая чудес от распорядителей бюджетом и министерских деятелей. Немногое – уже больше чем ничего. Я не говорю об имитации урбанистических явлений, типа пафосных, под фанфары, актов дарения сельским школам морально устаревшего компьютерного оборудования. Это самое пустое и бессмысленное, что можно сделать. Отъедьте от своего города 50-80 км и побудьте в любом селе-посёлке пару дней. Посмотрите на образ жизни людей. Детей, подростков. Вы уверены, что планшет внесёт существенное разнообразие в этот образ жизни? Или «откроет двери к новым возможностям»? Я – нет. Предустановленные игрушки скрасят досуг какое-то время, потом ненужная в хозяйстве штуковина будет пылиться где-то на видном месте, возле телевизора. Где она пылится у очень многих горожан, кстати.

Людям надо «делать интересно и доступно». И так, чтобы с какой-то перспективой. С детства «делать интересно» и показывать эту перспективу. Иначе «смычка города с деревней» из хрущёвской модели не вырвется и так и будет оборачиваться заплёванным асфальтом у лавочек и грудами пустых пивных бутылок.

Селам, посёлкам и малым городам нужны реализации того, смыслы чего мы давно исказили и забыли - клубы и кружки. Технического творчества, например. Да как хотите это называйте, в IT 2010-х годов помещается что угодно – посмотрите на список приобретений той же Google, на активность Microsoft в области совсем недавно весьма нестандартной периферии (Kinect), на движение Amazon в сторону коммерциализации нестандартных средств доставки товаров, куда угодно посмотрите – IT перестала быть «келейной» «замкнутой на сервер, ПК, смартфон или планшет» технологией. И ещё нужны книги. Даже лучше – учебники или «научно-популярные учебники». Как хотите – так и называйте. Но IT 2010-х годов уже вовсе не самоучитель Linux или Python (их никто не отменяет вовсе), и уж тем более – не многотомный Дональд Кнут, осиливать труды которого уже нужно больше для самосовершенствования, а не для делания. IT 2010-х годов, если кто-то не заметил ещё, – это цикл «измерил или оценил в реальном мире – обработал – отобразил – изменил реальный мир». К этому шокирующему определению не готовы профессиональные программисты и «классические ITшники», что уж говорить о школьных учителях или людях из министерств. Откуда же завтра возьмутся подготовленные к такому «неожиданному» изменению IT-ландшафта новые люди?

Зарабатывание денег сегодня – это безусловно хорошо. Но откуда брать людей для продолжения этого процесса в то самое завтра, за счастье детей в котором мы готовы не щадить своего сегодня? И ведь речь идёт не о громадных инвестициях. Реализация подобных проектов доступна отдельным людям, вовсе не бизнесменам.

Да, быстрых результатов здесь ожидать не приходится. Это надолго. Что очевидно. И здесь есть некоторая не менее очевидная рекламная составляющая – кто хотя бы начнёт играть в такое (создаст где-то, в близлежащем населённом пункте, какой-то кружок или клуб, будет минимально поддерживать его работу, своими силами отберёт, переведёт или напишет, или закажет написание книг нового поколения, etc) – тот очевидно заявит всей стране: «я – надолго, и потому всерьёз». Что само по себе отличная реклама, много лучше любой другой. Да, это не столько затратно, сколько непросто реализуемо – надо придумывать и разрабатывать действительно интересные и современные программы обучения, отыскивать местных «фанатов», способных почти волонтёрствовать преподавателями, надо делать, короче. Только не надо больше развёртывать новых «компьютерных классов» - это бессмысленно, в них в подавляющем большинстве случаев неподготовленные учителя неинтересно [м]учат детей бесполезному, ещё и по замшелым учебникам.

Я знаю, что могут сказать многие. Тысячу раз слышал такое – «всё это бесполезные фантазии». Хотите действительно бесполезную фантазию, для сравнения? Вот она – программа «городской урожай» в Бирмингеме. Они там у себя собрали 10 тысяч фунтов на поддержку… сбора ненужного горожанам урожая с придомовых деревьев. И сформировали бригады волонтёров. Формально – чтобы ничего не пропадало, чтобы всё отвезти и раздать умеющим и желающим переработать этот урожай на дому. Как вы думаете, зачем это всё? Чтобы заменить несколькими тоннами городских яблок импорт из Новой Зеландии? Возможно, Бирмингем это спасёт (для очень серьёзных людей поднимаю транспарант «сарказм»). На деле же, несмотря на любые заявления даже самих участников проекта, «Urban Harvest» – формирование некоторой «урбанистической экоподсистемы», объединяющей «споносоров» проекта, волонтёров, владельцев придомовых участков, любителей варить джемы на дому и давить сок, etc. Куча людей задействуется общим делом. Не таким уж и бесполезным даже в смысле итогового продукта. Но главный продукт «Urban Harvest» - не джемы и не грушки-яблочки с соками, а именно это умение совершенно разных людей взаимодействовать ради достижения какой-то, пусть и незначительной, цели. Это умение и есть «город», а его формирование и есть «урбанизация». И не удивляйтесь, что этот чепуховый проект – неотъемлемая часть многовековой истории эволюции Бирмингема, который с его шестью признанными в мире университетами считается первым индустриальным городом в мировой истории (1791 год, например). И если вы чертыхнулись – «Зубинский тут бредит», то выйдите, пожалуйста, на улицу, посмотрите вокруг себя и хорошенько подумайте – почему вокруг какой-то вот совсем не Бирмингем, а то, что есть (кто из Бирмингема меня зачем-то читает, вас это не касается, конечно). Хватит, господа, заполнять пустоту в точке Tnow совковым снобизмом и презрением к «мелочам» – во взаимодействии людей нет недостойных нас мелочей, а если мы их выдумали себе, то давайте не будем жаловаться на (казённым языком) «тяготы и лишения». Мы точно так их всемерно приближали, как и те, кого мы в них обвиняем.

Можно написать много слезливо-сопливых строк в бложек – ах, экономика рухнула, ох, с ней и IT пошла по той приятной неровной линии, которую принято называть зачем-то грубо, ой, нехватка квалифицированных кадров, уууу, плохое образование, эх, переделать бы политику и механизмы образования etc. Пустая болтовня из блаженного времени оклеенных золотой плёнкой Infinity (видел такое чудовище, натуральный памятник ушедшей эпохе, в Одессе), залапанных жирными от «больших контрактов» пальцами.

Это время закончилось. И больше его не будет никогда. Такого – точно не будет, наш Боливар не выносит что двоих, что одного по второму разу.

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

Я уже читал где-то всё тем же чудовищным «шершавым языком» высказанное, что «ITшники – это передовой отряд» чего-то там, не совсем понял, чего именно. Чушь, конечно, собачья, заезженный унылый советский шаблон «пролетариат – передовой и направляющий отряд», вытравить который из языка, как оказалось, очень трудно, даже изучение PHP или Javascript не помогает.

Так вот. Как показывает новейшая история, вся эта пыльная риторика весьма действенна по сей день. Она очень живуча. И будет жить, подпитывая то самое правило, в котором нет места для настоящего. Поэтому мирно и бескровно что-то изменить можно только неспешно, маленькими действиями, объединяющими людей. Потому что это и есть урбанизация. А она и есть наш особый непростой путь хотя бы в ту же сторону, в которую уже вовсю движутся IT. У нас ещё есть какое-то время. Пара лет, наверное. Пропустим его, как всегда, – будем периодически стонать от рухнувших госзакупок и писать слезливые записи в блогах о несовершенстве системы образования в стиле «прииди, о, Государь, и сделай так, чтобы нам обломилось много дешёвых хорошо подготовленных Java-программистов уровня senior c претензией на зарплату дворника».

Кажется, я всё сказал.

Откланиваюсь.

Маленький шкандаль в семействе нуворишей

Давно я ждал чего-то подобного - чтобы кто-то задался очевидным вопросом о "data science". Задался им Мико Мастсумуро, вице-президент Hazelcast, компании, широко известной в узких кругах. Матсумуро настолько смело задался этим вопросом, что с совершенно подростковой прямолинейностью заявил - "Data Science is Dead". Упс. А как же - "это"? Ну, всё "это"? Как же ж книги, которых наштамповали (справедливости ради, - собирая в эти книги "по кусочку того-сего")? Как же ж рейтинги популярных профессий? Как же ж всё, что ещё толком не стало всем, а только входило в пик hype?

Короткую (и по моему мнению излишне эмоциональную) статью Матсумуро вы прочтёте сами, я не переводчик пока ещё. Давайте лучше поговорим взвешенно и обстоятельно о том же самом. И начнём с определения, конечно, за которым обратимся к википедии (в технических статьях она вполне приемлема, чего не скажешь о политических, или, тем более, об относящихся к персонам):

"Data science is the study of the generalizable extraction of knowledge from data"

Интересное определение, и авторы статьи википедии "нажимают" на слово science.

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

Если мы собираемся "выжимать" из массива данных знания, мы можем это делать известными и давно обобщёнными до алгоритмов и программных реализаций методами. Речь по сути идёт о задачах распознавания образов, или ещё проще - о задачах классификации.  Как вы ни называйте эти задачи по-другому, всё одно они сведутся к механизму классификации, выделяющему в пространстве параметров какие-то области, к одной (или нескольким) из которых с некоей степенью уверенности можно отнести объект, описываемый набором параметров. Всё прочее, что в первую очередь касается семантики этих выявленных областей пространства параметров, - оно далеко за пределами любой науки. Вы вольны строить любые гипотезы о "смыслах" и этих областей, и их взаимного расположения в многомерном пространстве параметров, и о чём угодно вообще, в чём явно или неявно присутствует слово "смысл". Просто потому что формальные методы классификации (распознавания образов, факторного анализа etc) никогда и никак, никаким боком, с семантикой не связаны. Благодаря чему и работают. В некоторых областях. В каких именно - чуть дальше. Пока же зафиксируем очевидное - результатом формального анализа данных в общем (и даже в лучшем) случае могут быть только *гипотезы*. А гипотезы, что очевидно, вовсе не знания.

Теперь вернёмся к данным. Любой механизм классификации или распознавания с обучением строится на основе понятия "представительной выборки". На пальцах объяснить его просто - чтобы научиться визуально хорошо отличать "яблоко" от прочих фруктов, даже такому совершенному механизму распознавания, как наш мозг, нужно предъявить очень много очень разных фруктов, среди которых очень много очень разных яблок и долго подсказывать - где яблоко, а где - нет. И то, не факт, что какой-то вовсе вычурный сорт, плод трудов обезумевших мичуринцев, будет надёжно распознан. На более научном, но не менее внятном языке, всё то же самое звучит так:

"Представительной считается такая обучающая выборка A, которая в заданном пространстве признаков и заданном классе решающих функций позволяет построить правило распознавания новых объектов (контрольной выборки Q) с ошибкой, не превышающей заданной величины"

Об этом логичном определении отлично известно одно "но" - оно не является конструктивным. Поясню, о чём идёт речь. Если бы процесс обучения проводился на всех возможных данных (например, на множестве "вообще всех яблок, существовавших, существующих и которые будут когда-либо существовать"), проблем бы не возникло. У нас есть полная выборка, мы формально строим правила классификации или распознавания - и вуаля. Но вот беда, - полной выборки у нас никогда нет. И никакие big data полноту выборки не обеспечивают, вообще ничто не обеспечивает её в бесконечной (что пространственно, что во временном смысле) Вселенной. И всегда возникает очевидное противоречие - механизмы распознавания или классификации обучаются на одной выборке, а для распознавания им предъявляются объекты, которых в обучающей выборке не было. Потому и ошибку, которая "не превышает заданной величины", абсолютно невозможно как-то формально измерить или вычислить. Речь, опять же, может идти только о гипотезах. И о неисчислимых эвристиках, которые позволяют эти гипотезы хоть как-то формировать.

Есть ещё методы распознавания, классификации и прочего смежного, которые принято называть "без учителя". То есть, у всех них есть нечто общее - а именно, если вернуться к примеру с яблоками, этим методам предъявляется груда каких-то то ли фруктов, то ли смеси фуктов с сапогами, резиновыми уточками и чугунными бюстами, методы формируют некоторые правила классификации всего этого, и потом уже надо восстанавливать семантику - то есть, садиться и разбираться какие правила что определяют. Если речь идёт только о яблоках - это уже не так просто, как может показаться. А уж если мы говорим о каких-то абстрактных объектах с огромным множеством параметров каждый, - опять начинается область эвристик и гипотез.

Всё это - совершенно не откровения, а азы. И это всё реально работает, и даже работает хорошо. В некоторых областях применения. Например, у вас есть автомобильный двигатель внутреннего сгорания. Конкретный, определённой модели. Вы "обвешиваете" его датчиками вибрации. И пытаетесь из потока данных о вибрациях разных узлов двигателя "вынимать" знания о неполадках в его работе. Несмотря на в целом стохастический низкоуровневый характер работы двигателя (случайные различия в объёмах  впрыснутого горючего, в углах опережения зажигания, в постоянно меняющихся износах узлов, в однородности масла и его распределения, etc, список огромен), вы добьётесь положительных результатов. Потому что двигатель в целом - вполне хорошо определённая (иначе он бы вообще не существовал) тремодинамико-механически-электрически-электронно замкнутая система, для которой даже есть понятие "нормальных режимов работы".

Если же вы те же самые методы попытаетесь использоваться для другой стохастической системы, например, для покупателя большого универсального магазина, все ваши гипотезы разобьются в щепки реальностью - покупатель не является "замкнутой системой" в том смысле, что только на основе содержимого его чеков вы не можете строить никаких гипотез, кроме основанных на здравом смысле и на знаниях о "надсистеме" (например, перед каким-то праздником в этой надсистеме принято покупать какие-то мелочи в качестве подарков, и характер мелочей связан с семантикой праздника). Например, у покупателя внезапно возник всплеск - он накупил каких-то странных залёжанных дешёвых рыболовных крючков, лески, удочек, спинниг и блёсны, несмотря на погоду (гарантированно не клюёт), время года (гарантированно ничего не ловится на спиннинг) и вообще ни на что объяснимое. И вдруг алгоритмика выявляет класс таких покупателей,  человек 20. И всё это происходит за два дня. Data scientist морщит умище и выдаёт сложное объяснение "тренду" - "рост спроса на рыболовецкие снасти нижнего ценового диапазона свидетельствует об осторожном росте интереса к активным видам отдыха blah-blah-blah", который на деле заключается в том, что к бывшим выпускникам приехал в гости давно уехавший куда-то приятель и созвал всех "на рыбалку" (ну, вы понимаете, как оно бывает), а всё это копеечное барахло нужно больше для успокоения жён и оправдания "движухи". И таких "трендов" в открытой и неизвестной системе будет примерно столько, сколько есть покупателей, а на деле - даже ещё больше, ведь возможны и неявные связи между покупателями. Безусловно, вы можете пытаться объединять анализ социальных сетей с анализом чеков (для какого-то "замыкания системы"), но это "замыкание" строится на гипотезе, что все пользователи социальных сетей непременно и для вас пишут там "ура! приехал Вася! мы едем на рыбалку такого-то числа с тем-то, тем-то etc!". Одной этой гипотезы достаточно для иллюстрации серьёзности всех последующих "построений".

Так вот я к чему это всё.

Мико Мастсумуро, конечно, излишне эмоциален, но формально прав. Если говорить о Data Science как о науке из определения википедии - то лучше или не говорить, или вносить алхимию в список наук.

Если говорить о Data Science как о науке, изучающей, формализующей и создающей алгоритмы анализа данных и определяющей области и  способы применения этих алгоритмов, - то ничего с Data Science не случилось, она на своём месте, где всегда и была (причём и в докомпьютерные времена, что характерно, статистика - вовсе не детище IT).

Вся проблема - в hype и в формах игривого использования "сакральных" знаний Data Science не по назначению (модный "хакинг стайл").

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

Теперь о совсем другом буквально два слова.

Поздравляю приватные бизнесы США - Федеральная Администрация Авиации (FAA) этой страны легализовала коммерческое использование дронов.

Совершенно не понимаю, чем это может помочь нам или как может сказаться на нас, но завидно.

Откланиваюсь.

Фастов + Идея + FreeBSD + Erlang = 19 миллиардов

На фоне непрекращающихся и нарастающих успехов нашей экономики $19 миллиардов, щедро «отсыпанные» за Whatsapp, кажутся форменным издевательством и полным крахом «обнадёживающих» картин «национального спасения за счёт доходов от крупной приватизации», с которыми у нас принято носитися дурнями з писаною торбою (я не ошибся, не «як дурнi», а именно как написано).

Особенно же издевательски цифра выглядит в сочетании с организационной и исторической спецификой Whatsapp – в компании чуть больше полусотни человек персонала (львиная доля – сервис-инженеры), а основатель компании Ян Кум – наш соотечественник и многим из нас практически земляк, родившийся в Киеве и выросший в Фастове, в трудном подростковом шестнадцатилетнем возрасте в не менее трудное время популярности «кравчучек» (1992 год) перевезенный родителями в США. «Американская мечта» как она есть. Впрочем, не будем о грустном, и без него невесело.

Бизнес-версий о сделке я строить не буду, это сделали без меня, да и совершенно бессмысленны сейчас любые попытки догадок как Facebook утилизирует приобретение, как и с какими целями интегрирует обе масштабные системы. По-моему, это вообще гадание на кофейной гуще, потому что и в самой Facebook могут пока точно не знать, что же «такого» сделать с Whatsapp, чтобы в итоге получилось «нечто». Достаточно того, что все желавшие приобрести Whatsapp очевидно понимали – это «нечто» непременно может получиться в итоге. И не стоит удивляться если на пути к этому «нечто» будут многочисленные пробы и ошибки, и даже не надо удивляться, если «нечто» вообще не получится. Такие игры потому что, и они без всяких гарантий.

Не буду увлекаться и реверансами Яну Куму за гениальность ключевой идеи Whatsapp. Просто скажу – она безукоризненно гениальна. Что в с своей простоте – ну как никто до него не видел возможности заменить унылый ввод имени пользователя и пароля (ещё и с предупреждениями о надёжности последнего) тем, что всегда есть в любом телефоне (даже не обязательно смартфоне) – номером телефона и IMEI, что в естественной интеграции разных до неё миров (сугубо «телефонного» и сугубо «messengers») – ведь номера телефонов в записной книжке пользователя – это готовая нужная ему контактная база. Великолепная и гениальная идея. И эту гениальность оценили пользователи. Точка.

И не буду пытаться строить ненужные конспиративные теории относительно модели безопасности приватности пользовательских данных в Whatsapp и возможных «расширенных» использований её для всяких потенциальных big data «вкусностей». Просто констатирую её – в Whatsapp история сообщений и сами сообщения не хранятся нигде кроме телефонов пользователей, о которых сервису ничего не известно (пол, возраст, реальные имена, адреса etc), каналы телефон-сервис дополнительно защищённые (SSL, инкапсулированный в собственную «защиту» GSM или всяких там *G). Поговаривают, что необходимость в такой модели Ян Кум впитал на исторической родине, возможно, это городская легенда, но в таком варианте я лично не сильно сомневаюсь.

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

Я хочу о другом поговорить. Об инфраструктуре Whatsapp, о «железе», программных системах и ухищрениях инженеров, которые в сумме реализуют сервис. Потому как это и есть материальная составляющая Whatsapp, её «заводы, мосты и пароходы».

Насколько можно восстановить по разрозненным данным, аппаратная основа Whatsapp – порядка 350-400 (или даже 600-700, в зависимости от того, что понимается под «core» в упомянутых самим Кумом «8000 cores») нод единой для Whatsapp конфигурации – двухпроцессорные машины c CPU от Intel (семейства Wetrmere, шестиядерные), 100 GB оперативной памяти, SSD-накопитель, две сетевые карты – одна «смотрит портом» в публичную сеть, вторая – в приватную, в бэкенд сервиса.

Ну, вполне логичная хорошая «машина как машина» для своих задач, ничего удивительного для 2013-2014 годов. И ещё послужит прилично. Разве что забавно одно – механические накопители (HDD) в описании конфигурации вообще не упоминаются. В сочетании с приличным объёмом оперативной памяти каждой ноды и с realtime-характером сервиса в целом, факт неупоминания HDD позволяет утверждать, что реализации всех программных систем Whatsapp основаны на «in memory» модели. А вот это уже интересно. Стало быть, в 2013-2014 году действительно большая «in memory» система может работать весьма надёжно, Whatsapp никогда не отличался особыми «взбрыками» в работе и на фоне прочих больших сервисов всегда выглядел достойно. И это уже нечто полезное, например, для системных архитекторов – при правильном проектировании можно не бояться 24/7/365 in-memory архитектур, они работают.

Теперь взглянем на системное ПО, обеспечивающее работу Whatsapp. Вот здесь начинается интересное.

Во-первых, выбор ОС. Он как бы не нов для тех, кто всерьёз интересуется построением высокодоступных и надёжных систем, но может несколько удивить всех прочих – несмотря на все достоинства всех ОС семейства Linux, несмотря на постоянные заявления всяких альтернативно одарённых о «перманентном умирании» *BSD систем – Whatsapp реализован на основе ОС FreeBSD (даже известна версия – 8.3). И не просто «реализован». Сама история Whatsapp – целая отдельная замечательная история раскрытия реальных возможностей этой ОС.

Во-вторых, - выбор единой технологической основы (или платформы) для реализации сервиса. Он тоже известен – платформа Erlang.
Пока остановимся, и взглянем на цепочку эволюции реальных возможностей этой явно удачной технологической пары (я собрал их твиттера и блогов Whatsapp):

Загрузка сервиса на начальном этапе довольно непростого завоевания популярности:
200 одновременных TCP сессий на одну ноду

23 сентября 2011 года, одна нода сервиса:
1016313 (больше миллиона одновременных TCP сессий)

6 января 2012 года, одна нода сервиса:
2277845 (больше двух миллионов одновременных сессий)

31 декабря 2012 года, суммарная оценка предновогодней нагрузки:
18 миллиардов обработанных сообщений за день

Достойные показатели, и сказать нечего, и оспаривать нет смысла. И они реально нужны для решения двух задач – минимизации расходов на масштабирование системы (эту задачу в Whatsapp очевидно решали – сверхэффективная монетизация не была главной целью сервиса, и всесторонним изучением поведения с тонкими настройками ОС и программных подсистем нужно было «вытягивать максимально возможное») и обеспечения бесперебойного и качественного обслуживания 450+ миллионов пользователей сервиса при росте пользовательской базы со скоростью миллион человек в день.

Теперь вернёмся к подробностям.

Стек Whatsapp – FreeBSD 8.3 + Erlang OTP R14B03 + Yaws (реализованный на Erlang HTTP-сервер для динамического контента) + Lighttpd (HTTP-сервер для статического контента). По аналогии с общеупотребительной аббревиатурой LAMP (Linux + Apache + MySQL + PHP/Perl/Python), получаем FEYL, который хоть и похож по звучанию на «fail», но вот всем бы хорошим людям – да такие «фейлы».

Совершенно «нестандартный» стек. Причём о нечто подобное в своё время «сломали зубы» в… Facebook. Именно с поддержкой Erlang-реализации протокола своего чата в Facebook в своё время не справились из-за невозможности отыскать достаточное количество квалифицированных разработчиков. В Whatsapp начали с открытой Erlang-реализации протокола XMPP и сервера Ejabberd, но довольно быстро были вынуждены полностью переделать что сервер, что и вовсе сам протокол – он довольно давно у них собственный. После чего ещё и серьёзно модифицировали виртуальную машину Erlang для достижения требуемых показателей. Вот деталька с отказом от XMPP и переходом на собственный протокол – она ещё одна заметочка в копилку знаний смелых и умных системных архитекторов – оказывается, протоколы и прочие «условно стандартные» нюансы всего лишь инструменты, и если задачи требуют радикального изменения инструментов, совершенно незачем цепляться за «стандартность» до последнего (об очевидной ответственности за уровень и качество проектных решений молчу). Иначе за $19 миллиардов точно не купит никто.

Следует заметить, что от традиционного LAMP в технологическом стеке Whatsapp кое-что осталось. Как это ни странно для специфического и «неправильного» FEYL, последняя буква P в LAMP. И за ней стоит… многострадальный PHP, неиссякаемый источник язвительных шуток «шибко вумных программистов». В общем, доподлинно известно, что где-то там в Whatsapp PHP используется, где его рационально использовать, но точно уж не в realtime-части сервиса. Это не основная часть стека, посему места для него в аббревиатуре FEYL я и не предусмотрел. Но всё правильно – если инструмент позволяет решить задачу, то незачем его не использовать по каким-то другим причинам.

Теперь несколько слов о методике «тюнинга» FreeBSD, принятой в Whatsapp. Она строится на циклическом принципе – «пробуй-измеряй-меняй настройки». И качество измерений в ней – один из ключевых моментов. Реализованная в FreeBSD подсистема мониторинга ядра ОС, изначально разработанная в Sun, dtrace, для задач мониторинга и изучения поведения используется только в цикле разработки и отладки кода. На «боевых» нодах сервиса она не используется. Для мониторинга «боевых» нод применяется собственная подсистема (wsar), причём с одним очень забавным нюансом характера использования – на начальных этапах развития сервиса период между «измерениями характеристик» нод был равен одной минуте, но по мере роста нагрузки и уровня утилизации имеющихся вычислительных мощностей его уменьшали и довели до одной секунды – большее временное разрешение просто неинформативно для оценки состояния системы такого масштаба. На основе оценок поведения системы методом проб и ошибок подбирались и настройки, причём по словам самих инженеров Whatsapp, «экстремальная оптимизация настроек – это тёмная магия, доступная только гномам и инженерам». 

Вот такая примерно картинка получается.

Откланиваюсь

Embedded World 2014, очень кратко, для не-embedder'ов

Даже трудно с чего-то начать после всей этой бури событий. Тем более трудно, что почти месяц rss-фиды приносили что-то совершенно бессмысленное, и казалось, что ничего ровным счётом не происходит. Но буквально за вчерашний день ситуация начала меняться к лучшему. Кой-чего интересного из происходящего можно выудить, а это уже Событие.

Во-первых, в Нюрнберге проходит большая выставка Embedded World, экспозицию которой формируют компании-участницы из 21-страничного списка (всего их около 900). В этом списке практически все «монстры» всех подотраслей IT (включая, например, Microsoft, активность которой в выставках сугубо «потребительского характера» с 2013 года снизилась).

Очевидно, что Embedded World – не выставка «конечной продукции», это, скорее, большое шоу для тех, кто конечную продукцию создаёт. Высокая активность посетителей (которых только предварительно зарегистрировалось более 22 тысяч) если не полностью убеждает, то вселяет уверенность, что кризис-кризисом (а он ещё не собирался заканчиваться), а производители самых разных масштабов живы, относительно здоровы (раз позволяют себе отправлять сотрудников на выставку в Германию) и сдаваться не собираются. Больше того, кризис обострил затянувшиеся войны, в которых размер Голиафа далеко не всегда имеет значение, и многие мелкие Давиды получают дополнительные преимущества. Так, буквально за день до начала выставки, Ford анонсировала перевод систем инфотаймента (Ford Sync) своих автомобилей с операционной системы от Microsoft (очевидно, речь идёт о Windows Embedded) на ОС QNX (принадлежащая BlackBerry канадская QNX и без этой сделки более чем хорошо чувствует себя в автомобильном инфотайменте).

Поразительно, но купленная BlackBerry за смешные по сравнению с суммами нашумевших последних сделок $200 миллионов, QNX после принятия её «в эксплуатацию» Ford заполучает почти 70% рынка автомобильного инфотаймента. А это для мира встраиваемых систем – в первую очередь очень большое число проданных копий, только Ford за 2013 год произвела 6,4 миллиона автомобилей. Даже если учесть, что инфотаймент пока ещё не стандартная подсистема для автомобилей младшего ценового диапазона, цифра всё равно получается внушительной. Такие емкие (и довольно стабильные) сегменты рынка без боя не отдают. Очень интересно, как, чем и насколько быстро ответит Microsoft на доминирование QNX в автомобильном секторе, потому что объявленные Ford причины выбора довольно ясно определяют и косвенные задачи для Microsoft – QNX дешевле и надёжнее. Ну и совсем интересное в этом сегменте начнётся в ближайшее время – на сцену выходит специализированная платформа Genivi на основе ОС Linux, проект очень серьёзного альянса, и ему прочат инсталляционную базу на уровне 28 миллионов к концу 2018 года.

В контексте Embedded World QNX упомянута не просто так – за разработанную систему активного подавления шумов в салоне автомобиля QNX стала победительницей Embedded World 2014 в категории ПО.

Теперь немного о том показанном на Embedded World, что мне показалось ярким и знаковым.

Во-первых, подозрительно многие производители показывали то, что ещё не имеет обобщающего названия, поэтому я себе позволю его придумать. Речь идёт об «умных почти дискретных компонентах общего назначения». Дискретный компонент общего назначения в традиционной терминологии электроники – такая обычно очень дешёвая деталька, у которой характерно мало выводов. Например, двухвыводные дискретные компоненты общего назначения – резистор и конденсатор. Нужны они всем и пока мы не вышли за пределы традиционной электроники – всегда, стоят гроши (если они общего назначения, прецизионные же могут стоить очень дорого), габариты их крохотные и поставляются они традиционно в лентах для машинного монтажа и пайки. Функциональность их фиксирована и ограничена физическими принципами работы. Полной противоположностью им были «умные компоненты» - микропроцессоры и микроконтроллеры, с их большими габаритами, большим числом выводов (у микропроцессоров – вообще огромным) и некоторой претензией на «универсальность». Производились и микроконтроллеры с малым числом выводов, но и они как бы оставались «достаточно универсальными машинами». И вот нечто стало меняться. «Умные почти дискретные компоненты общего назначения» по габаритам корпуса приближаются к традиционным дискретным, число выводов у них сокращается, а функциональная начинка «специализируется» до чёткого определения классов приложений. При этом они остаются «умными» (то есть, программируемыми), и цены на них падают «стремительным домкратом» уже ниже ценовой планки в 50 центов. Это означает, что при ярких идеях и талантливом подходе к проектированию (на что производителей подстёгивает кризис), волна «поумнения» должна захлестнуть самые неожиданные устройства, изделия, конструкции, всё что угодно.

В качестве полярных примеров этого явления можно привести до невозможности разные «умные почти дискретные компоненты общего назначения» Microchip PIC12F1571 и Freescale Kinetis KL03. Первый – восьмивыводный с размером корпуса 3x3 мм, восьмибитовый, с очень скромными возможностями вычислительного ядра, но с отличной и чётко очерченного назначения периферией. Этот «умный компонент» безоговорочно предназначен для максимального упрощения реализации любых дистанционно управляемых устройств (об этом говорит наличие асинхронного приёмопередатчика, USART), в которых требуется непрецизионные замкнутые контуры аналогово-цифрового управления. Потенциально «компонент» позволяет реализовать три таких контура, способных работать почти независимо от вычислительного ядра. В нюансах исполнения отдельных узлов (в частности, генераторов широтно-импульсно модулированных сигналов, PWM) «компонент» исключительно хорош и дает разработчику конечного продукта почти всё, что могли придумать инженеры. Сочетание его возможностей, мизерного энергопотребления, габаритов и цены (38 центов в больших партиях) позволяют утверждать – весьма скоро он будет обнаруживаться чуть ли ни где угодно, начиная, конечно, со светодиодных ламп и некритичных узлов автомобильной и бытовой техники, и заканчивая дронами, роботами и детскими игрушками. Габариты Freescale Kinetis KL03 ещё меньше – всего 1,6x2,0 мм, это мощный (по сравнению с PIC12) 32-битовый контроллер с ядром ARM Cortex-M0 и с весьма традиционной «нейтральной» к области применения интегрированной периферией. Цена этого удовольствия также скромна – 75 центов.

Эти примеры «подобраны» не случайно – они демонстрируют мирное сосуществование двух концепций архитектур встраиваемых вычислителей: процессорное ядро достаточной для выполнения сервисных задач производительности в сочетании с высокоразвитой ориентированной на класс задач независимой периферией против мощного процессорного ядра с универсальной периферией. Или, чтобы было понятнее, преимущественно аппаратной реализации функциональности против преимущественно программной. У каждой концепции есть свои достоинства и недостатки, потому им и всегда находится применение.

Вторая составляющая, конечно, IoT (Internet of Things). Несмотря на мнения скептиков, производители компонентного уровня и системного ПО буквально штурмуют ещё только зарождающийся рынок. Изобилие выбора подкрепляется отсутствием единой системы стандартов для мира IoT, пока в нём полная свобода и каждый волен делать что по силам и что может понравиться рынку. В этом сегменте, пожалуй, самое яркое (и даже не совсем обычное решение) представлено компанией CSR. Bluetooth 4.0 меш-сеть CSR Mesh – нечто действительно новое и обещающее недостижимые для прочих беспроводных технологий удобства, потому что в этой сети любое устройство имеет канал связи с, например, смартфоном, никаких «пограничных роутеров» сети не требуется, и каждое устройство сети может состоять в нескольких логических группах. Ну и, конечно, однокристальная реализация основной части узла такой сети, объединяющая Bluetooth адаптер и 16-битовый микроконтроллер с достаточными для решения массы задач производительностью и емкостью памяти, – очень красивая разработка (вообще, будет совсем не удивительно, если небольшую CSR кто-то большой в скором времени купит). В этом же сегменте очень жизнеутверждающе выглядят разработка чешской компании Microrisc, ставшая победителем Embedded Award 2014. У работающей с 1991 года Microrisc разработок много, в целом они называются платформой IQRF, которая обладает очень привлекательными конкурентоспособными возможностями и характеристиками, а в чём-то и вовсе уникальна, например, в реализации протокола прямого доступа к периферии DPA, позволяющего строить функционально завершенные масштабные IQRF сети вообще без программирования. Именно за протокол DPA Microrisc получила заслуженную награду. Но IQRF и DPA достойны отдельного рассмотрения, я о них напишу позже, когда получу возможность «помучить» реальные модули.

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

На этот раз пока всё.

Откланиваюсь.

Загадочные ходы эволюции

Недавно произошло действительно знаменательное событие. Нет, их было много всяких невыносимо знаменательных, вплоть до каких-то невероятных воспрявших из тьмы казаков с нагайками (и это уже серьёзно, это исключительно галоперидолом нужно). Но вот действительно знаменательных событий было немного. Одно из них - день рождения первого компьютера Macintosh. Ему исполнилось 30 лет.  Юбилейную дату отметили формально, но я настырный, и хочу вспомнить тот (без преувеличения великий) Macintosh с очень специфическими ностальгическими нотками, но без очевидных упоминаний о несомненной революционной роли, и посмотреть на него немного по-другому. И даже хочу позволить себе сравнить что было с тем, что стало. И позволю :)

Итак, вот он, культовый компьютер 30-летней давности, Macintosh 128K 1984 года образца:

Загадочные ходы эволюции

Вот теперь пора позволить себе немного ностальгии. Я уверен, что в моём родном Киеве "живьём" этот компьтерчик многие видели строго один раз в жизни (и даже знаю где и когда). В 1987 году, на ВДНХ, на выставке "Информатика в жизни США". До 1987 года он был тут практически невероятен. Он же на 32-битовом процессоре Motorola 68000, который на много лет полюбился "американской военщине" и вообще, по-моему, тогда попадал под ограничения COCOM (и братский болгарский народ, которому СЭВ была доверена  разработка методом послойного спиливания микросхем Motorola, освоил только восьмибитовый CM601, в оригинале - Motorola 6800).

А после 1987 года начались времена больших перемен и они как-то затянулись, а потом, когда всё наладилось, первый "макинтошик" уже устарел.

В общем, Macintosh 128K - это совершенно выпавший из нашего мира великий компьютерчик, теперь разве что радость для коллекционеров.

К сожалению, я не смог найти ни одной фотографии той чудовищной очереди в Киеве на "Информатику в жизни США", не сохранился у меня и значок, канул в Лету кулёчек (ооо, да, кульки той выставки были долго радостным и "продвинутым" предметом обихода), да и буклета уже нет, запомнился он разве что совершенно непривычным для того времени дизайном. В общем, всхлипнем (это мы ещё сделаем не раз), кто помнит, а кто или уже не помнит, или ещё ничего такого не знает - тем повезло :)

Загадочные ходы эволюции

А теперь давайте посмотрим на эту по сей день милую машинку совершенно по-другому. Глазами технопсиха, что в современном мире называется "geek porn". И глазами инженера.

Вот как выглядит освобождённый от "одежд" Macintosh 128K (огромное спасибо техноманьякам сайта ifixit.com за возможность посмотреть красиво сделанное в хорошем качестве):

Загадочные ходы эволюции

Это почти всё. Потому что есть ещё элемент конструктива - "корзина", в которой располагаются собственно плата компьютера (она ещё вовсе не "материнская", без паяльника вне предусмотренных разъёмов подключать к ней нечего) и внушающий уважение  габаритами накопитель на гибких дисках:

Загадочные ходы эволюции

Даже глядя из сегодняшнего дня на эту конструкцию можно сказать очевидное - в ней продумано практически всё (хи-хи, не очень удобно отсоединять высоковольный блок питания от ЭЛТ, хи-хи, не очень удобно раскручивать корпус, потому что винты утоплены очень глубоко, чуть позже я объясню эти усмешки). Ни одной не просто лишней, - ни одной сомнительно нужной детали в ней нет. Практически эталонное сочетание функциональности, технологичности, качества производства и дизайна. Да, и дизайна - только специфическая  еле заметная кривизна пластиковой декоративной передней панели, предназначенная для визуальной компенсации технологической кривизны экрана ЭЛТ, только явно тщательно выбранная глубина установки экрана ЭЛТ, только контуры фасок, опять же "нейтрализующих" кривизну экрана - они и по нынешним временам доступных 3D CAD систем чертовски хороши:

Загадочные ходы эволюции

 

В простоте и технологичности Macintosh тех времён есть что-то неуловимо "военное", именно так, в кавычках. "Военное" в идеальном смысле. Я не случайно в предыдщем абзаце позволил себе похихикать - мне доводилось видеть море чудовищно (и даже хтонически чудовищно) сделанной техники сугубо военного назначения, поэтому древний "макинтошик" в разобранном виде вызывает у меня именно "идеалистически-военные" (если допустить, что такой идеализм вообще возможен у психически здорового человека) ассоциации. И зависть (потому что вот хочется же ж так красиво уметь).

Прочие детали и нюансы проектирования этой машинки тоже вызывают зависть до сих пор. Пластик для штамповки корпусных деталей выбирался не просто так, "какой есть на складе" - от него требовались одновременно доступность, приятная на ощупь фактура, прочность, устойчивость к царапинам и, наконец, - цвет. Устойчивый к старению. Даже точное название цвета сохранилось - tawny brown (рыжевато-коричневый) PMS 453. Цвет пластика корпуса предыдущей модели, Lisa, оказался слишком нестойким под солнечными лучами и приобретал со временем розовато-оранжевый оттенок. С выбором пластика и цвета получилось - те "макинтошики" 128K, которые я видел, и сейчас того же цвета.

Дизайном корпуса под личным руководством Стивена Джобса занимались эти два человека - Терри Ойяма (сугубо промышленный дизайнер) и Джерри Мэнок (инженер-механик, ставший промышленным дизайнером):

Загадочные ходы эволюции

Дизайн отрабатывался на гипсовых моделях, которых, как я понимаю, за несколько месяцев работы только над геометрией, Ояйма и Мэнок вылепили шесть или семь штук. Удивительно, что когда я начал писать эту запись, я ни разу не заглядывал в технологическую историю корпуса "макинтошика", но мне всегда в глаза бросалась эта лёгкая кривизна передней панели - в её неброскости и необходимости вплоть до цельности визуального восприятия корпуса машинки чувствовалось очень много работы. Как всегда "внезапно" оказалось, что так оно и есть. По воспоминаниям современников и участников процесса проектирования, Джобс лично осматривал все модели корпуса и комментировал их на строгом инженерном языке (что несколько неожиданно узнавать после окончательной идолизации кумира многих до "чисто бизнесмена"), больше того, Джобс идеально владел этим языком (с его "углами скосов фасок с криволинейной поверхностью" и прочим, вводящим дизайнеров в тупик) и требовал того же от всех работников проекта, невзирая на их специализацию (упс). И вот именно эта неуловимая кривизна передней панели очень долго была объектом пристального внимания всей команды. Гипсовые модели предыдущих итераций никогда не выбрасывались, они использовались как варианты для визуального сравнения. Через семь или восемь итераций с вариантом гипсового  "макинтошика" Джобс согласился и дальше неизвестно какими способами (крайне интересно, какими) корпус был превращён в инженерную документацию для производства технологической оснастки - штампов. Это до сих пор область полунауки-полумастерства-полушаманства и очень серьёзных технологий, к сожалению, о ней нет упоминаний вообще. А было бы очень интересно узнать - как, всё-таки, в те времена была сделана оснастка для массового производства очень непростого и габаритного изделия с очень высокой точностью и наверняка низким количеством брака при производстве. Особенно в контексте непрекращающихся на самых высоких уровнях  обречённых стонов о "неконкурентоспособности" не совсем даже понятно чего. 

Как бы подводя итоги технологической истории корпуса "макинтошика", остаётся только упомянуть, что работа над ним вышла из предварительной стадии обсуждения "отцами-основателями" концепции (она длилась около двух месяцев) примерно весной 1981 года, а завершилось всё фактически первыми образцами отштампованных деталей в феврале 1982 года. Благодаря чему мы можем понять, чего стоит "неуловимая кривизна передней панели, благодаря которой корпус не воспринимается как корбка, а кривизна экрана не бросается в глаза".

Основную плату "макинтошика" проектировал Баррелл Карвел Смит, вот он, выделен в неполной команде разработчиков:

Загадочные ходы эволюции

Он тогда был совсем молодым, 26 лет, и потому осмеливался  перечить Джобсу (например, предрекать "заторможенность" Macintosh 128K из-за нехватки памяти) до такой степени, что Джобс вынужден был строго запретить всякие разговоры о возможной нехватке памяти, и, тем более, любые технические решения, позволяющие память расширять - машина должна была быть хоть в какой-то мере разумно бюджетной. Смит всё равно сделал по-своему, но не выходя из бюджета - он был большим поклонником программируемой логики и заменял всё что можно было заменить "прошивками" ПЛИС, программируемой матрицы, и отыскал возможность "вшить" в конструкцию "макинтошика" возможность увеличения объёма памяти заменой микросхем RAM до 512 KB. Буквально через девять месяцев после начала продаж Macintosh эта возможность очень пригодилась, потому что машинке действительно не хватало "проворности".

Вот такая технологическая история и такие стороны того самого Macintosh 128K, с которого началось много чего. И вот я смотрю на разобранный "макинтошик" 30-летней давности и до сих пор любуюсь как это красиво сделано. И вот я смотрю на разобранное (спасибо, коллега) вот это вот, даже не знаю как бы его назвать, omfg, и думаю о всяком странном. Примерно так думаю. Господа инженерА Apple, что с вами там случилось? Это вот что вы такое учудили? Специфическая рабочая станция, с ограниченным рынком сбыта, и вот для неё - весь этот антитехнологический пафос кучи плат немыслимых нестандартных размеров и форм? Нет, у меня нет сомнений в качестве проектирования этого. Ни одного сомнения. Я понимаю, что это будет хорошо работать. И ценю яркую демонстрацию владения CAD системами и культуру проектирования. Но посмотрите в своё прошлое. На эти машинки, технологически простые как боевое оружие. И одновременно такие милые снаружи. И вот где же ж оно? Ну, то, что было. Где это, короче? :)

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

А теперь совсем не о том, а "на злобу дня", если уж окунаться в чудовищный новояз давних времён.

Какие, всё-таки, тайны нам открывает этот медленный, недостаточный и очень недешёвый по своим временам "макинтошик", машинка первобытных технопсихов :)

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

За прошлый год и начало этого не только я миллион раз слышал плач о "неконкурентоспособности" (если судить по частоте употребления, сложилось впечатление, что это уже какое-то национальное достояние), и плач этот и стоны до такой степени меня достали  (извините), что не вспомнить ту пятичасовую очередь на выставку, где "макинтошики" были как бы обыденностью, не могу. Как и не могу забыть слова Дугласа Адамса о Macintosh 128K - "Я влюбился не в саму машину - невероятно медленную и недостаточную, но в романтическую идею этой машины".

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

Откланиваюсь

 
 
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT