`

Schneider Electric - Узнайте все про энергоэффективность ЦОД


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

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

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

Best CIO

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

Человек года

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

Продукт года

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

 

Старый нетбук, Xubuntu (или любая из *buntu), Docker, «проект на вечер»

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

Задача, решаемая в этой записи блога, предельно проста – избавиться от зависимости от не очень хорошо предсказуемых сервисов чтения rss-новостей, причём с минимальными и необязательными разовыми затратами (на Android или iOS клиент) вместо ежемесячной оплаты чтений блогов сервисов в стиле «нас опять DDOS-атаковали» или «у нас сервисное обслуживание».

Объяснюсь, почему выбрал именно эту задачу.

По моему скромному мнению, для rss-новостей заменителя не придумали. Twitter слишком малословен, и в нём заголовок должен ещё сопровождаться ссылкой, в итоге - сгенерированные заголовки новостей в нём кошмарны и для негуманоидов, а нанимать стада «чирикающих» людей, способных прочитать, понять и красиво уложить суть новости в 120 символов (что адский труд, большой талант и потому очень недёшево), – не по деньгам никому. Соцсети чудовищно перегружены красотами вебдванолья, но не это главное – в них нет реально удобного механизма группирования многочисленных «каналов» в множество групп (да они по сути для строго противоположного), и его пока никто не придумал. Электронная почта для оперативных новостей архаична (хотя до сих пор непревзойдённая для «самого главного за приличный интервал времени», что не теряет актуальности, скажем, за неделю). В общем, аудитория против всего этого проголосовала деньгами, хлынув в альтернативные закрытому Google «ридеру» сервисы. Разработчики же этих сервисов… Они или копируют привычный и удачный (был бы неудачным – и не был бы привычным, и не копировали бы) интерфейс Google Reader, или, извините, соревнуются в неадекватности. То какие-то квадратные «плитки» с микроподписями, предполагающие обязательное наличие «картинки» в новости и орлиного зрения читателя, то вообще «шарики» (OMFG), то трёхмерное что-то (вызывающее хтонический ужас на двумерном экране), в общем, ставить на себе чужие эксперименты – это прекрасно, но для ценителей BDSM-культуры (ничуть их не осуждаю, кстати, просто не являюсь таковым).

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

Теперь ситуация изменилась – Windows восьмой ветки уже по озвученному мнению Microsoft получилась «ни для чего», и потому уже анонсирована девятая ветка, которая наконец опять будет похожа на всё равно тяжёлую для нетбуков седьмую (я о нетактильных экранах говорю), а Linux всё-таки доросла до пригодности и практической безболезненности, особенно на обкатанном старом, распространённом, но неплохом, «железе».

Так что нетбук, XFCE-дистрибутив (Xubuntu), Docker, немного времени, и строим свой сервис rss-новостей, ни от кого (кроме провайдера и облэнерго) не зависящий.

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

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

Проверьте, есть ли в вашей системе мелкая и полезная утилита curl (по умолчанию в Xubuntu, например, её нет):
whereis curl
Если нет – установите её: sudo apt-get install curl
И сразу устанавливаем Docker:
curl -s https://get.docker.io/ubuntu/ | sudo sh
Проверяем, всё ли нормально (это паранойя) и есть ли в системе стартовый файл Docker: sudo less /etc/default/docker
Если он есть, пейджер less покажет текстовое содержимое файла, начинающееся с комментария #Docker Upstart…, этого достаточно, нажимаем Q.
Смотрим, запущен ли процесс docker (опять паранойя):
ps –A | grep ‘docker’
Должен быть запущен.
Запоминаем - пока реально выполнено одно инсталляционное действие (прочее – необязательно).

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

Создаём нового пользователя:
sudo adduser _какое_нравится_имя_
Заполняем что требует диалог команды (разумно без всяких опциональных деталей, запросы на ввод которых идентифицируются парой скобок []).
Проверяем, какие группы вообще представлены в системе, и ищем, есть ли группа docker (ещё раз паранойя):
getent group
Просматриваем результат. Если ваша машина «напичкана» вами же (или разработчиками дистрибутива) всякими сервисами, вывод команды может быть большим, и чтобы не листать и не выискивать глазами, можно сразу проверить наличие группы docker в результате, так что этот пункт на ваш выбор – или упрощённо, или вот так:
getent group | grep ‘docker’
Добавляем пользователю _какое_нравится_имя_ (он совершенно обычный) возможность использовать привилегированные ресурсы системы с помощью команды sudo:
sudo visudo
Префикс «vi» этой команды в случае Xubuntu разве что напоминает о классике, команда запускает редактор nano с открытым файлом /etc/sudoers.tmp. В нём найдите строку, начинающуюся с комментария «#User privilege specification» и добавьте после обязательной строки под ним root… следующее:
_какое_нравится_имя_ ALL=(ALL:ALL) ALL
Выполните запись в файл /etc/sudoers (без .tmp – расширения!) – Ctrl-O c последующим удалением из имени файла ненужного расширения, затем выход из visudo (в реальности nano) – Ctrl-X.
Дело за малым – добавить этого пользователя в группу docker:
sudo usermod -a -G docker _какое_нравится_имя_

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

Первая делает всё, что нужно, для создания и запуска контейнера, содержащего настроенную СУБД PostgreSQL:
docker run -d --name ttrssdb nornagon/postgres
Надо немного подождать (и понаблюдать за выводом команды), потому что объёмы загружаемого будут приличными.

Вторая команда развёртывает всё, что нужно для работы собственно Tiny Tiny Rss – полный стек (web-сервер nginx, среду PHP5 со всем необходимым, систему контроля версий git, самую «свежую» версию Tiny Rss и кой-какие мелочи):
docker run -d --link ttrssdb:db -p 80:80 clue/ttrss

Я не буду даже расписывать смысла этой команды, ограничусь сведением – через «внешний» мир реальной машины к этому контейнеру можно «достучаться» через (естественно, IP-адрес самой машины) порт 80, если вас это не устраивает по каким-то причинам, вы можете изменить этот порт с использованием шаблона:
docker run -d --link ttrssdb:db -p _порт_реальной_машины_:80 clue/ttrss

Итак, после выполнения всего двух этих команд вы можете выполнить docker ps и посмотреть, какие контейнеры запущены и работают. Их должно быть два, естественно – в одном упрятана PostgreSQL, во втором – стек Tiny Tiny Rss.

Если всё выглядит как должно (каких-то серьёзных причин я не вижу почему это может быть не так), то запускайте пока локальный браузер (на той же машине, где вы всё это делаете) и «натравливайте» его на адрес http://localhost.

Пользователь-пароль по умолчанию – admin/password. Вводим их (если браузер запрашивает, надо ли сохранять данные логина – лучше пока не надо) и попадаем в основной интерфейс Tiny Tiny Rss.

По классике, первая задача настройки – изменение пароля администратора. Если вы не собираетесь «выпускать» свой «Tiny Tiny Rss сервис» за пределы своей же домашней сети – можно даже обойтись без паранойи, но культура есть культура. Выбираем в верхнем правом углу интерфейса Actions, и в выпавшем меню – Preference.

Навигация в настройках Tiny Tiny Rss осуществляется по «лентам» секций, выбираем Personal data/… и заполняем что там надо заполнить, включая поля обновления пароля (не забываем, что текущий пользователь – администратор, и что Tiny Tiny Rss – это сервис, он многопользовательский, и это важный нюанс, о нём чуть позже). Административный аккаунт – далеко не лучшее, что можно использовать для повседневной бытовой работы, нам понадобится добавить обычного пользователя, поэтому для «чистоты эксперимента» сохраняем новый пароль администратора: выбираем ленту Preference, сохраняем текущую конфигурацию (кнопкой Save configuration), выходим из режима редактирования настроек (Exit preference) и полностью покидаем Tiny Tiny Rss (ActionsLogout).
Повторяем вход в Tiny Tiny Rss администратором с новым паролем (и вот теперь браузеру можно разрешить его запомнить), опять выбираем настройки и в табовом интерфейсе активируем таб Users.

Добавление пользователя очевидно (Create user в меню – и дальше по навязываемым действиям), разве что советую для персонального сервиса выбирать уровень доступа Power User. Сохраняем настройки (Preference Save Configuration), делаем Logout и повторяем вход в Tiny Tiny Rss теперь уже только что созданным пользователем. И опять заходим в настройки, выбираем интересующий интервал обновления фидов (в Preference Default feed update interval) и, самое главное, если собираемся использовать планшет (и/или смартфон – но это при «выставлении» Tiny Tiny Rss за пределы домашней сети, зачем читать новости дома со смартфона?) для чтения новостей – надо обязательно для обычного пользователя, с данными которого (имя/пароль) вы будете "заходить" на свой сервис с планшета или смартфона, включить API-доступ к Tiny Tiny Rss. Это включение работоспособно именно для каждого конкретного пользователя, только из административного аккаунта его недостаточно.

Сохраняем настройки.

Что делать дальше – ответ на этот вопрос зависит от того, с чем вы имели дело раньше.

Немного скажу о самом распространённом сервисе – Feedly, который за последние несколько недель ещё и умудрился получить титул самого annoying.

Экспортируем из Feedly ompl-файл своих «подписок». Находим меню настроек Feedly (три точки в панели слева), выбираем Organize, внизу страницы будет маленькая ссылочка Save as OMPL, она и нужна.

Дальше – новая страница со всего одной «кнопкой», и сохранение локального файла. Именно этот файл и нужно загрузить в Tiny Tiny Rss из соответствующих диалогов.

Не забываем сохранить настройки, и, собственно, с «сервисной частью» это всё. Проверяем локальную работу Tiny Tiny Rss – всё уже должно работать и rss-лента должна читаться почти в добром старом привычном формате почившего Google Reader.

Теперь давайте сделаем маленькое отступление, позволяющее понять, почему все так «ухватились» за Docker, и почему это действительно гениальная разработка, что большая редкость в наши времена «инноваций». Давайте вообще сделаем Logout из Tiny Tiny Rss и вернёмся к консоли.

Посмотрим командой docker ps какие контейнеры у нас «бегают».

Весь очень непростой в инсталляции сервис Tiny Tiny Rss «фактически» уместился в две сущности, создаваемых всего двумя командами (само собой, кто-то перед этим потрудился, но я бы не сказал, что это был титанический труд). У этих сущностей есть глобальные уникальные идентификаторы (CONTAINER ID) и локальные, от запуска к запуску контейнера изменяемые и генерируемые Docker имена – NAMES. Команды Docker могут использовать и то, и другое, теперь вы можете остановить исполнение контейнера clue/ttrss (docker stop _идентификатор_или_имя_), перезапустить контейнер той же командой, которая была уже использована (при этом он стартует почти мгновенно, потому что всё ему нужное уже есть локальное) и выполнять ещё море действий, которые относятся к deployment. Советую теперь «погулять» по файловой системе вашей машины – она девственно чиста от всего «технологического» мусора, сопутствующего развёртыванию груды программных систем, входящих в состав Tiny Tiny Rss. Если в вашей системе не было PHP, его и нет. Всё осталось как было. Можете убедиться в этом. Docker всё упрятал, причём в, грубо говоря, «дельты» к реальной файловой системе. Что ещё лучше, – разработчики контейнеров PostgreSQL и Tiny Tiny Rss даже не знакомы друг с другом и не делали эти контейнеры «в паре», под одну задачу. А Docker, как огромный уже сервис, обеспечивает и пространства имён (пользователь/проект, например, clue/ttrss), и хранение в этом пространстве файлов управления процессом deployment контейнеров, и бинарные образы контейнеров, и массу всякого ещё, что в итоге всего двумя командами полностью освободило вас от развёртывания и настройки кучи программных систем, а вашу машину – от моря «хлама» в файловой системе, и, тем самым, от печально известной и до сих пор никуда не девающейся проблемы с версиями динамически загружаемых библиотек (символично, что Docker реализован на языке Google Go, в котором эта проблема решена единственно возможным радикальным до экстремизма способом).

Пора перейти к планшету (смартфону). Я говорю об Android-устройствах, для iOS, по-моему, всё то же самое. У проекта Tiny Tiny Rss есть свой мобильный rss-ридер, предназначенный для работы с сервисом. Устанавливаем его. Настраиваем – настройки минимальны, пользователя и его пароль мы уже знаем, потому что сами создавали его, сетевой адрес машины или домашней сети – тоже (ну не могу я расписывать все нюансы с «пробросом» портов роутером, с DNS и прочим, включая ssh туннели или VPN, за меня это сделали тысячу раз), остальное там очевидно.

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

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

Надеюсь, кому-то это совершенно потешное в усилиях, но очень приятное в результатах, пригодится.

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

PS

Мне пришлось отказаться от скриншотов. При горизонтальном разрешении 430 пикселов они абсолютно бесполезны, да и в полном размере практически бессодержательны, интерфейс Tiny Tiny Rss абсолютно "прозрачный", единственный "подводный камень" (с персонификацией доступа к API) я выделил в тексте.

Что-то случилось с augmented reality и с wearable computing

Эти понятия взаимосвязанные – «дополненная реальность» (augmented reality, AR) и «информационный ассистент как элемент повседневной одежды» (лучше перевести wearable computing у меня не получается, а аббревиатура смешной получается, не буду ею пользоваться вообще, дальше для краткости будет только wear). И с ними явно что-то случилось – hype из-за дополненной реальности полностью сошёл на нет, никто не помнит сверхобещающих начинаний Liar, например, а большинство вообще не заметило, что такое и было когда-то в каких-то социумах. Мне уже даже не кажется, а вполне понятно, что именно происходит и с этими взаимосвязанными мирами, и в них. И почему скорого массового появления ни первого, ни второго, ожидать не следует.

Теперь главное – почему дополненная реальность и wear компьютеры я считаю одним и тем же по сути.

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

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

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

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

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

В подлинной реальности есть вывески, дорожные указатели, доски объявлений, таблички с номерами на домах etc.

В виртуальности есть карты (на стыке с реальностью - с навигацией), соцсети, информационные каналы etc.

Что-то новое и там, и там – огромное событие, настолько огромное и потому редкое, что о нём уже никто долго ничего не слышал.

Значит, искать новое надо где-то на границе между реальностью и виртуальностью, а это и есть «дополненная реальность», и вот ту-то начинается список всяких «но»…

Начнём с самого простого – с технологических проблем.

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

Концептуальная модель массового wear компьютера, предложенная пока только Google (Glass), совершенно не панацея. И, скорее всего, даже не реально перспективная разработка (увы, особенно для тех, кто заждался).

Дело не в устарелых компонентах внутри Glass, это-то как раз не проблема – никакого секрета нет в том, что всё, что ещё только готовится к массовому производству, уже устарело на компонентном уровне, всегда и безоговорочно.

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

Во-первых, он требует автономного питания wear-части составного компьютера. А автономное питание в сочетании с миниатюрностью и мизерным весом (никто не хочет таскать на голове постоянно три килограмма, даже цари, хоть корона – это так много во всех смыслах, что она оправдывает временные неудобства) означает что? Правильно, - катастрофическую нехватку этого самого питания. Законов сохранения энергии никто не отменял, как и никто пока не отменял физических и технологических возможностей хранения энергии в крохотных объёмах.

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

Визуальная информация требует обработки в реальном времени, а ещё есть звуковой канал, обоняние, тактильные каналы, информация о положении носителя в пространстве etc.

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

Очень грамотно инженерно реализованные Google Glass дают нам наглядную картину этой энергетической недостаточности. В известной общей массе всего устройства 50 граммов батарея питания составляет неизвестную величину, но мы знаем, что её ёмкость 2.1 Wh, и что она – литий-полимерная, а для Li-Poly батарей показатель specific energy (не буду переводить, http://goo.gl/vCpjbB) – 100-300 ватт-часов/килограмм массы батареи. Из этих данных можем оценить массу батареи – от 21 грамма до 7 граммов. Или, в процентах от общей массы устройства, – примерно от 40% до 15%. Замена литий-полимерной батареи на тионилхлоридную (предположим, что она возможна, и кто-то сделал крохотную литий-тионилхлоридную батарею с достаточным для питания устройства напряжением) позволит потенциально повысить её ёмкость (с учётом specific energy и доступной рациональной массы батареи), скажем, в 4 раза. Пусть даже в 5 раз. Чтобы не мелочиться. То есть, потенциально можно (это не значит, что технологически) получить источник питания с ёмкостью порядка 10 Wh при той же массе.

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

Например, реально работающую «умную камеру» машинного зрения - http://goo.gl/B5BZGR. Ей требуется немного по промышленным меркам – 0,132 A при напряжении питания 24 вольта. Но это – 3,2 ватта. И при идеальной подсистеме питания (обычно малогабаритные батареи не дают необходимого напряжения питания и требуют преобразователей, характеризующихся КПД < 1) 10 Wh батарея обеспечит непрерывную работу такой камеры всего три часа. Достаточно ли это для wear компьютера? С учётом того, что задачи сугубо машинного зрения – всего лишь небольшая часть подсистемы дополненной реальности. Категорически недостаточно.

И это – сверхвысокоуровневая модель «сферического wear компьютера дополненной реальности в вакууме», реальность же, с её технологическими ограничениями превратит эти абстрактные 3 часа в пшик. Удивительно, правда, что уже все пользователи Google Glass жалуются на время автономной работы, правда, это удивительно? Даже с учётом того, что Glass де-факто своей «вычислительной мощностью» категорически не способны «перемалывать» в реальном времени «весёлые картинки» от встроенной камеры 720p – это же означает 921600 пикселей 60 раз в секунду, без всяких специально настроенных освещений сцены (посмотрите «в этом вашем интернете»™ machine vision lightning и подумайте, почему и зачем это производят и как этим пользуются, и что может значить «произвольное освещение сцены», в котором люди живут в реальности).

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

Наивность – замечательное свойство определённого возраста и ментального состояния, без неё мы – не люди, но только не в инженерии и не в социуме. Увы.

Давайте добавим к этому всему, что из-за нашей противной рациональности мы все ждём от wear компьютинга расширения наших человеческих возможностей (даже если не совсем понимаем о чём речь вообще) – мы хотим лучше видеть в разных условиях (а некоторым это просто необходимо в силу ограниченных возможностей), причём видеть то, чего мы не можем видеть без wear компьютера (например, многодиапазонное видение, почему нет?), лучше слышать etc. И мы хотим этого не непрерывно, а только когда нам это нужно (любое непрерывное вмешательство в реальность – раздражает). Я даже боюсь делать оценки реальной потребности в вычислительной мощности, памяти и энергоснабжении реального wear вычислителя – могу только сказать, что живой классик украинской литературы Лесь Подерв'янський сформулировал бы эти потребности всего одним словом, которое неприемлемо в профессиональном дискурсе.

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

В общем, я всё это к тому, что забудьте надолго о дополненной реальности wear-компьютеров в модели «беспроводный модуль – основной вычислитель (смартфон etc)». Это не будет работать просто потому что не может. Не увы, не ах, не открытие, не развенчание, ничего такого вообще – простая инженерная оценка «на пальцах». А вот согласится ли социум с довольно тяжёлой коробкой на поясе и шнурком к модулю на голове, как с хотя бы приемлемым «на каждый день» – вовсе не инженерный вопрос. Это уже социальное, см. выше, – будет ли создана некая система, для начала хотя бы разъясняющая, что это даёт, когда и кому.

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

Масла в огонь подлили ранние разработки в области wearable и их фанаты – все эти смешные технопсихи, увешанные адскими бандурами (посмотрите поиском картинки wearable computing history, там смешно). Но. «Киберпанк» положительных коннотаций у подавляющего большинства даже понимающих что оно такое, не вызывает. Включать напичканный неисчислимыми миллиардами CMOS-транзисторов смартфон в режим «фонарика», чтобы пробраться по «убитому» неосвещённому подъезду в разваливающемся лифте до бронедвери, защищающей «наше всё с евроремонтом» - это небольшая радость, и это и есть «киберпанк во плоти» - high tech and low life.

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

Кто, какими средствами, затратами, воздействиями, может переместить представление о wearable компьютинге из ниши «киберпанка» в огромный мир повседневности? Я не знаю… Не представляю даже, как это можно сделать. Даже гениальность создателей рекламных клипов Honda здесь не поможет так, чтобы сразу и навсегда. Это нужна очень большая система, работающая на единую цель. А для неё нужно принятие модели wearable компьютинга сразу всей индустрией, всеми трендсеттерами, всей машиной формирования и распространения информации etc. В общем, слетать на Марс – детская шалость по сравнению с (потому что «слетать на Марс» - чётко поставленная задача: надо просто полететь на Марс).

В качестве итога.

Недавно общался с другом, мы обсуждали унылое «наполнение» приложениями Google Glass. Картина вырисовалась печальная. Какая-то совершенная чепуха, «приложения ради приложений», бесполезные в реальности. Кризис идей. Здесь я постарался собрать то, что вижу, почему ситуация именно такая, и почему без кучи ограничений, соглашений между носителями wearable и производителями, ничего ни в куда не сдвинется. Хотя, безусловно, это интереснейшая область, дивная даже. Мы как-то забыли в уюте, что моторчиком движения человека (как зверушки) в его эволюции всегда было желание превозмочь ограничения биологического тела – хотелось летать (и летаем), передвигаться со скоростями, которые непозволительны биологически (и передвигаемся – 500 км за 4,5 часов доступно всем), видеть что невозможно увидеть из точки расположения (и видим же ж – есть бинокли, ночное видение, телевидение, в конце концов, видеочаты, etc) и т.д.

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

Тихий омут Google Docs

Практически полная беспафосность Google в моменты появления весьма знаковых продуктов – очень забавная примета времени. Например, вчера сервис Google Drive претерпел радикальные изменения в мобильной его составляющей – и всё случилось так тихо, как будто ничего и не случилось вообще. Так как машина супермаркета Play работает не очень быстро, не откладывая в долгий ящик привожу для нетерпеливых источники ссылок на официальные .apk файлы инсталляций двух обновлённых ключевых приложений в составе Andorid Google Drive – незамысловато названных текстового процессора Docs и электронных таблиц Sheets: в конце заметок на этих страницах есть сразу несколько зеркал (загрузка совершенно легальна, и не надо бояться, «полиция андроида» правил не нарушает, это официальные .apk), http://goo.gl/2b6p6D и http://goo.gl/woichw .

Появление радикально обновлённой «классической тройки» - текстовый процессор, электронные таблицы и презентации (Google Slides), должно что-то означать. В списке приложений платформы Android это означает официальное списание QuickOffice (купленного когда-то Google) в неподдерживаемое (что уже объявлено). Что есть мелочь, не заслуживающая большего внимания (потому что внутренняя тактика Google). Но явно есть что-то куда большее в самой стратегии Google, что можно увидеть только всмотревшись в возможности новых пакетов и сервиса в целом.

Придётся, правда, начинать издалека. Я терпеливо искал детальное сравнение реальных возможностей «облачных» и «настольных» офисов. Находил только неисчислимые дивно многословные (и потому весьма сомнительные) описания «за что выгоднее платить». И не находил (не нахожу), например, признанных тестовых документов, позволяющих оценить возможности того или другого варианта. Картина вырисовывается такая – все говорят только о том, что выгоднее – «облачное» офисное ПО или локальное, но никто не говорит вообще – а чем, собственно, они отличаются в главном – в возможности использовать, создавать, распространять и хранить документы. Табуированная тема. Но офисное ПО – оно же не только для того, чтобы за него кому-то платить, не правда ли? И очень хочется знать – за что именно надо платить. Какие именно фрагменты документов (на основе каких именно технологий или вкраплений в формате данных) будут доступны, читаемы в той или иной мере (в какой именно?), модифицируемы, какие вообще будут недоступны, что надо делать, чтобы доступным всем стало всё, как быть со старыми документами, в которых используется то, что недоступно в «облачных» системах etc. У меня тьма вопросов об этом. Которые совершенно без ответов. По-моему, я вообще единственный, кто предпринял когда-то «беспрецедентную акцию» сравнения возможностей разных мобильных офисных пакетов в работе с документами. Это была мизерная, смешная попытка (но ничуть не наивная, я это и тогда делал не случайно), не вызвавшая де-факто никакой реакции. Из чего я могу сделать один очевидный вывод, но пока повременю с ним. У меня ещё есть вопросы. И главный вопрос у меня к тем, кто пишет много букв о миграции офисных пакетов в облачные сервисы. Скажите пожалуйста, моё личное мнение о развитом офисном пакете совпадает с вашим? – Развитый офисный пакет должен предоставлять две ключевые функции: возможность включения динамических фрагментов одних документов в другие и возможность автоматизации в широком смысле слова (вплоть до связывания динамических фрагментов документов с базами данных и чем угодно вообще). Если совпадает, и вы тоже понимаете, что офисный пакет – это не просто набор standalone-редакторов, и что полноценная эксплуатация офисного пакета какой-то организацией предусматривает «обрастание» его «самодельными» (на любых условиях, хоть бы и сторонними силами, главное – в целях и интересах пользователя) дополнениями, то где именно я могу найти готовые тесты на пригодность моей «офисно-пакетной» инфраструктуры и накопленных «офисных данных» к миграции в облачные сервисы? Я хочу видеть готовые решения, а не бездну «консультантов», потому что, извините, предположим - я владелец большой «инфраструктуры офисного ПО», я уже истратил кучу денег на закупку «офисного» ПО, потом – кучу денег на «допиливание» его под мои нужды, и теперь ещё раз должен тратить кучу денег на сторонние консультации, подсказывающие, как бы опять потратить кучу денег на миграцию от одного вендора к нему же? Где это? Вопрос без ответа. И при этом же отсутствующем PR-машины убедительно показывают (это не совсем то же самое, что доказывают): «облачные офисы» – именно то, чего все ждали так долго.

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

В общем, «случилось страшное» (или даже «Ужас!», я могу себе позволить не начинать с такого заголовка, мы не жёлтая пресса). А именно, - критическая масса пользователей деньгами согласилась с избыточностью модели «офисного ПО», ранее считавшейся канонической. А такое без последствий не бывает. И ничуть не удивительно, что последствия такого «страшного» плохо предсказуемы, потому что вводят в «поле равенства возможностей» чуть ли не кого угодно (утрирую, конечно, но, по большому счёту, именно так). Офисное ПО десакрализовано, в том числе и усилиями самих ключевых игроков индустрии – невозможно без итоговой десакрализации долго продвигать идею сверхнеобходимости сверхразвитых сверхвозможностей, и потом мгновенно объявить концепцию «разумной достаточности урезанных облачных сервисов» – разумной и достаточной (вся тавтология – умышленная, конечно).
Итак, «офис десакрализован». Де-факто и де-юре (с подписями главных владельцев, разве что Sun расписалась так давно, что многие и не помнят, откуда Open Office). А десакрализация инструмента означает, что он перестаёт быть «чем-то особенным», но и не отменяет его нужности. Что вполне логично. Всё это означает – на рынке «офисных инструментов» всё изменяется. Радикально. Пусть тихо и малозаметно (что больше следствие десакрализации, кстати), но изменяется.

Теперь вернёмся к «гуглодокументам». Если вы установите новые версии (или они уже у вас обновились), вы заметите – поддержка «оригинального офиса» Google в них изменилась почти никак. Но стоит вам создать любой документ Microsoft Office – вы получаете совсем другую среду, с другими возможностями.
Кстати, о разнице в возможностях. Они как бы разделены на две части. В первой менее важны традиционно значимые в офисных пакетах визуальные красоты, зато крайне необходимые простые операции работают как должно по логике (сомневающимся советую попробовать в Excel сравнить две таблицы или «базы данных» в терминах функций Excel, так, чтобы просто выделить отличающиеся строки-записи, и то же самое сделать средствами Google Sheets, это не дурацкий пример вовсе, электронные таблицы – инструмент анализа «What If»; сомневающимся из другого лагеря советую сравнить построение диаграмм там и там). Во второй – красоты на месте, но проблем они никак не отменяют и ничем не облегчают.

Всё это я веду к тому, что на поле «офисных приложений» началась очень интересная борьба. Microsoft, далеко не такая уже, как прежде, одновременно и неумышленно «давит» новых игроков накопленной за десятилетия полного доминирования громадной инсталляционной базой, и умышленно вынуждена прибегать к беспрецедентным мерам, чтобы поддерживать «вращение раскрученного маховика». Я выдумываю? Тогда что может значить это загадочное предложение дорогущего Office (кстати, какой версии именно – кто-то понимает?) на очень странных условиях всего за $10 ( http://goo.gl/V5zq0t ) :

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

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

Google фактически эту войну объявила, причём сразу на всех фронтах. Складывайте заявленную поддержку Chrome OS приложений Android, уже запущенную совместимость с документами Microsoft Office всех подсистем Google Drive, обещанную и уже показанную «документоориентированную мультизадачность» в Android L, неожиданный для всех рост популярности в бизнес-секторе «хромобуков» и, наконец, принципиальную крайне либеральную (если кто не заметил, – Google  скрупулёзно выделяет свои ещё недавно «штатные» приложения Android в независимые закрытые обычные в Play) открытость всего системного и технологического… И добавьте самое важное – над Google c её Android и Chrome OS не довлеет legacy, эти системы никогда не претендовали на роль «настольных почти рабочих станций». Они претендуют на куда большее – на обыденное повседневное. В котором совершенно всё равно, есть в документе OLE-контейнер или нет (если есть, - ну, не увижу, ничего не потеряю с вероятностью 99%, а если реально нужно будет увидеть – добьюсь, чтобы мне показали так, как я могу увидеть), есть ли там времён «очаковских и покоренья крыма» (глумлюсь, конечно) какие-то VBA-скрипты.

Итак, Google, по-индейски крадучись, вышла на тропу войны «за офис». И мечом Android L + Chrome OS (что-то мне подсказывает, что всё это появится раньше, чем обещалось) Google не машет, распугивая весь мир, не случайно. Они что-то там доводят до готовности, у них совсем другие приёмы.

Я не привожу бессмысленных, но красивых скриншотов – работают Google Docs, Sheets и Slides как им должно работать (Slides – почти идеально на моём тестовом .pptx файле с очень вычурными анимациями и прочим, Docs – более чем неплохо с файлами .docx, Sheets я ещё испытываю, благо, есть на чём). Вы сами в этом убедитесь, если уже не. Скриншоты не важны. Важно главное – привычный мир «уютного сверхразвитого офисного ПО, которого никто толком не знает и не умеет», меняется, и я не удивлюсь, если он изменится до неузнаваемости – мне кажется, что полумеры (а они – совершенствование клиентского ПО), это временное. Браузеры, ECMAscript и его действительно грозные конкуренты, новые фреймворки и старые wiki engines – всё это непременно должно создать синергетический эффект. Это же эволюция.

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

Немного о настоящей новизне, доступной и реальной

В прошлой записи обещал что-то действительно новое, но тихое и почти никому не заметное (с действительно новым так и должно быть, по логике, оно в «раскручивании» не нуждается). Особенно приятно, что речь пойдёт не о чём-то «на бумаге», а о вполне доступном удовольствии, которое любой любопытный смертный может позволить себе за каких-то 4-5 евро.

Итак, есть корпорация Panasonic, о существовании мощного полупроводникового производства и исследовательских подразделениях которой в бывшем СССР знают разве что узкие специалисты. И есть знаменитый в мире электроники китайский американец филиппинского происхождения Леон Чуа (транслитерировать ˈtʃwɑː очень непросто), придумавший когда-то из соображений физической симметрии недостающий абстрактный элемент электронных цепей – мемристор. О мемристорах было много шума, одно время в Hewlett Packard ими очень увлекались (да и сейчас увлекаются, и даже затеяли большой проект «совершенно нового компьютера», с мемристорной памятью как раз, но это пока проект именно что «на бумаге», нам это неинтересно).

Так, основные персонажи выставлены на сцену, пора начинать действие.

У дистрибьютора электронных компонентов Mouser любой желающий может купить микросхему MN101L производства Panasonic. Цена указана, в наличии их достаточно. Этот почти традиционный (если судить по списку параметров) 8-битовый микроконтроллер на деле – настоящая революционная машина, пока вообще единственная в своём роде. Всё дело в технологической реализации подсистемы памяти - MN101L первый, единственный и серийный вычислитель с работоспособной «почти совсем мемристорной» памятью. Или с одной из возможных вариаций технологической реализации мемристорной памяти – не суть важно (по крайней мере, сам Леон Чуа  и специалисты той же Hewlett Packard отнесли именно этот тип памяти к мемристорам, а им можно, наверное, верить, научные споры если же и ведутся, то больше об уточнении понятия «мемристор» с учётом возможных «мемристорных» вольт-амперных характеристик, мы в эти тонкости вдаваться не будем, кому интересно – рекомендую эту статью, несмотря на её «страшное» название). Мы лучше поговорим о первом доступном серийном вычислителе с мемристорной всё-таки памятью ReRAM.

Panasonic больше года готовила технологический процесс для серийного выпуска этой памяти и микросхем на её основе на своём заводе в Тонами с 0,18-микронным техпроцессом, а перед тем – больше года доводила саму технологическую концепцию до уровня прототипирования. Происходило это в очень непростых для полупроводникового бизнеса (да и всей корпорации) Panasonic времена, итогом которых стало формирование совместного предприятия по производству микросхем и оптических сенсоров с контрольной долей 51% весьма интересной израильской компании TowerJazz. Это важная деталь – в Panasonic явно не побоялись идти на очень большие риски (а какие ещё могут быть риски в области, где ты фактически первый?) в очень сложное время.

Мемристорная память MN101L основана на вроде как совсем простых ячейках, в которых в качестве основного «мемристорного» материала используется слой оксида тантала, расположенный между двумя электродами:

Немного о настоящей новизне, доступной и реальной
 
Кажущаяся простота на деле и в деталях оборачивается настоящим технологическим кошмаром (иначе флэш-память уже бы стала прошлым). А кроме производственных нюансов есть ещё особенности эксплуатации, которые существенно усложняют реализацию мемристорной памяти (изначально, на доступном уровне технологии, «не любившей» повышенных температур). Похоже, что в Panasonic добились по крайней мере соответствия ReRAM требованиям промышленного температурного диапазона (от -40° C до 85° C). А это уже немало, это свидетельство «взрослости» технологии.

Принцип «работы» мемристорной ячейки памяти радикально отличается от всех прочих технологий, причём с инженерной точки зрения (то есть, для потребителя ячейки памяти как продукта) даёт ряд существенных преимуществ. Главные из которых – низкие рабочие напряжения и высокая скорость процессов. Физический эффект, лежащий в основе принципа – формирование в результате приложения разности потенциалов определённой полярности «нитей проводимости» (filaments) в токонепроводящем слое оксида тантала со сформированной во время производства глубокой зоной с нехваткой атомов кислорода:

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

Но всё это вместе позволяет называть память такого типа именно *RAM, несмотря на принципиальную энергонезависимость. В существующих реализациях ReRAM всё ещё далека от лабораторных показателей (особенно по количеству перезаписей ячеек, которое пока на уровне гарантируемых 100000), но это же только начало.

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

К признакам нового можно отнести и миграцию аппаратной поддержки высокоуровневых протоколов аутентификации и шифрования-дешифрования данных в микроконтроллеры. Это уже де-факто случившееся – и если, например, Atmel предлагает отдельные микросхемы аппаратной поддержки шифрования, то Microchip выпустила семейство 16-битовых контроллеров со встроенным модулем криптографии (PIC24 семейства GB2), причём в очень интересных конфигурациях, уточняющих одно из возможных представлений о том, что такое встраиваемый вычислитель для IoT. В этом латентном уточнении нет ничего таинственного – если у явно IoT вычислителя (а зачем традиционным простым M2M протоколам грубо говоря «интернет-стандартное» шифрование?) очень много последовательных интерфейсов (например, 3 – SPI, 2 – I2C, 4 - UART) и не очень много аппаратных выводов вообще (например, 44), это означает – в Microchip уже видят IoT-машины многопроцессорными, с чётким разделением функций для отдельных вычислителей, и даже не пытаются «утрамбовать всё в одном». Забавно, но существующие распространённые операционные системы реального времени пока ничем особо не поддерживают такой идеологии, а middleware и «тонкие» протоколы межмашинного обмена для сетей масштаба одной печатной платы и сверхмалых вычислителей – явления почти не существующие. Так что в этой области явно открывается огромная «ниша».

Первое было технологически и фундаментально новым, второе – архитектурно и системно новым, осталось новое в социуме. Его тоже у меня есть. Буквально на днях возникла быстрозатихающая истерика вокруг чуть ли не запрета коммерческого применения беспилотных летательных аппаратов в США (UAV или дронов). Потом Федерация Воздухоплавания пояснила свою позицию и всё стало на свои места. То есть, строго наоборот. Как раз коммерческая эксплуатация (находящаяся в строгих рамках правил) ничуть не запрещена, а вот любительская… С ней получилось неприятно, подозреваю, что в основном по вине толп самих любителей. В общем, любительские автопилоты для UAV попадают под ограничения, эксплуатация любительских UAV разрешается только в пределах прямой их видимости оператором и в режиме управления с земли без обратной связи «через камеру» дрона, и т.д., и т.п., там целый документ большой. Речь идёт о США, это не всемирное пока явление. Но, думаю, что-то подобное будет неизбежным везде. Такой вот социальный эффект 2014 года – взрывной рост доступности и уровня технологий «летающих роботов» привёл к хаосу в их использовании, они стали летать там, где уже реально угрожают, например, пассажирским самолётам (несколько зафиксированных «встреч» с любительскими дронами на высотах более километра), плюс проблемы с авариями самих дронов, плюс судебные скандалы из-за зоркости оптических подсистем любительских дронов etc. Сейчас начинается вторая волна этого социального явления – дело в том, что вокруг любительских дронов сформировалась целая промышленная подсистема, дающая в том числе и рабочие места. И она вместе с фанатами UAV очень болезненно реагирует на запреты. Будет затухающий колебательный процесс, который в итоге приведёт к чему-то рациональному. Посмотрим. Когда ещё в истории человечества возникали государственные проблемы с персональными летающими роботами? По-моему, никогда. Так что нечего и гадать о возможных результатах.

Есть ещё всякого нового, но приберегу.

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

Под шумок Google I/O, но без шума, опять скучная планшетная тема

По поводу конференции Google I/O, к которой «прикованы взгляды прогрессивной общественности», пока что-то лишнее говорить воздержусь (надо всё пересмотреть-послушать-подумать), но кое-что скажу, довольно неожиданное – по моему скромному мнению о самом интересном, что готовит «империя добра», там сказали мало, если вообще не сказали ничего. Потому что интересное в этом неинтересном мире (даже на уровне очень абстрактных идей) – синоним Очень Дорогого. Так что Google I/O – это тактика (и актуальный временный «корм» для сонма разработчиков), но есть ещё и стратегия. И вот она… Если кратко, то давайте посмотрим на странно гениальную (кто-то вообще видел не странно гениальных?) французскую компанию Archos. Что предлагает Archos, которую хоронили многие много раз по тысячам причин? Посмотрите внимательно, вспомните умный и красивый термостат, который теперь уже Google Nest, добавьте к нему теперь уже официально заданный минимальный уровень аппаратного обеспечения для пользователей (все семейства Nexus, я не раз говорил ранее, что Google устанавливает «планку» в мире аппаратных средств, теперь это официальная стратегия, ключевые слова Android One), Android, сервисы и масштабы Google, сложите это всё в одно целое… Больше не скажу пока ни слова.

Давайте лучше поговорим о другом. Так как в уже наступившей post-PC эпохе наступает и период первой серьёзной попытки поиска определённости (что есть что, зачем оно и кому вообще), активные не-разработчики (пользователи, если хотите, но это не совсем так, скорее – говорливые пользователи) приобретают особую ценность. Потому что посредством их говорливости и замыкается цепь обратной связи «пользователь – разработчик», которая определяет работу всей системы «потребитель – производитель» в периоды эволюционного развития технологий. Мы говорим именно об эволюции (революционное тоже в этом лучшем из миров есть, но о нём принято говорить тихо, я в следующей записи в блоге что-нибудь прошепчу о по-настоящему революционном), так что не ожидайте в замыкании цепи обратной связи «сногсшибательного», его не будет (и это хорошо, наверное). К моему сожалению, далеко не все производители умеют замыкать эту цепь. К ещё большему моему сожалению не очень умные (но с хорошим аппетитом) «специалисты по маркетингу» пытаются имитировать производителю замыкание этой цепи, за его же деньги. Итогом бурной имитации становятся всякие загадочные объекты материального мира, живущие ровно столько, сколько живут запущенные и оплаченные под них маркетинговые мемы. В общем, давайте выбросим из головы всякий маркетинг и поговорим о постыдно (потому что никто не оплатит же ж) простых вещах. Может, замкнём одну из цепей обратных связей, и что-то улучшится в этом мире.

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

Как-то незаметно мой уже четвёртый по счёту планшет дожил до Android версии 4.4.4. Независимо от изменения цифр версии Android изменялось и моё отношение к использованию планшета – от полного неприятия концепции во времена доступности резистивных тактильных экранов, через сомнительное удовлетворение от 10-дюймовых моделей, через разумность (на основе накопленного опыта) использования 7-дюймового оптимального для своей цены – до некоторых сожалений о возможностях той же резистивной тактильности, с которой всё начиналось.

Сейчас мой Nexus 7 2013 – объект, без которого мне очень неуютно. В любой обстановке. Потому что в нём – «всё». При этом я не технофашист, и этого «всего» далеко не так много, чтобы было страшно или даже минимально утомительно. Удивительно, но мне кажется, что некоторые очевидные вещи из списка этого немногого «всего» очень многим неизвестны.

1.    Я не люблю штатную пользовательскую оболочку (на сленге - лончер) «всей Android» от Google. Не буду объяснять многословно, почему. Есть прекрасные альтернативы, но. Когда планшет становится даже не инструментом, а одним из бытовых приборов, всё сложное, требующее вдумчивого конфигурирования, тоже становится избыточно-ненужным. По-моему, это очевидно (и это очевидное обеспечивает новым разработчикам место под солнцем). Если ещё и безжалостно выпарить бессмысленное эпигонство (вроде имитаций «красивых иконочек» iOS или ничем по сути, кроме шлакоблочных габаритов, не отличающегося интерфейса мобильной Windows), то в сухом остатке Google Play можно отыскать настоящие (очередные, по мере становления технологии) шедевры. Очередной (это же взаимодействие людей, пользователя и разработчиков, здесь ничего не может быть «навсегда») мой выбор – Lucid Launcher. Уникальная и очень недооцененная (именно для планшетов небольшой диагонали), если судить по количеству загрузок в Google Play, разработка. Даже не верится, что кто-то до этого додумался. Много говорить об этой оболочке не буду, к моему стыду (и к гордости авторов) – практически не заглядывал в её настройки, не было такой нужды. В Lucid Launcher главное – понять в ней главное. А его в достатке. Во-первых, оболочка позволяет создавать разные наборы виджетов для разных ориентаций устройства (и это абсолютно гениально по моему скромному мнению), во-вторых, в ней нет ни понятия «единой сетки» (определяющей и изменение размеров виджетов при изменении ориентации устройства, и вообще возможность формирования «рабочих пространств»), ни «раздельных сеток для ориентации» – в Lucid Launcher можно расставлять на экране что хочешь и как хочешь для выбранной ориентации, в-третьих, она очень скромна в потреблении ресурсов (много скромнее штатной оболочки), в-четвёртых, в ней есть панель «быстрого запуска фаворитов», доступ к списку всех приложений жестом, доступ к поиску, «закладкам» (bookmarks) и встроенному браузеру – тоже жестом. В общем, это нечто совершенно непохожее на общепринятое. Но на удивление грамотно спроектированное и реализованное (и очень активно развивающееся, если судить по частоте обновлений). Очень рекомендую его всем пользователям планшетов, кто не боится непривычного. Гениальная программа.

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

2.    «Сладкая парочка» Pushbullet и Bittorrent Sync. Я забыл когда подключал USB-шнурком планшет к своим «большим компьютерам», любому из них. Несколько каталогов («для чтения на раз», «для слушания на раз», «для смотрения на раз», «оперативные документы», обратите внимание на повторяющееся «на раз») синхронизируются в 802.11n сети с той же практически скоростью, которую обеспечивает USB, минус время на поиск «шнурка» и муки с его втыканием в USB-разъём (говорят, есть люди, которым это удаётся с первого раза, я лично этих людей не видел). Pushbullet позволяет многое, в данном случае – удобно «перебросить» код «секрета» Bittorrentsync (да, можно пользоваться генерируемыми QR-кодами и встроенным в Android-версию сканером, но подозрительно часто бывает так, что скопировать-вставить много удобнее, например, если вы решили что-то добавить к списку синхронизируемого, а планшет у вас «прикроватный», он валяется на привычном месте в где-то в спальне).

3.    Браузер. Увы для всех разработчиков сторонних браузеров, но «родное» приложение есть родное. Chrome закономерно стал лучшим для своей платформы. Но. Принципиальное решение Google не поддерживать расширения в мобильной версии (вполне понятное – «империя добра» оставляет место для прочих, в том числе и чтобы очевидно избежать антимонопольных исков) создаёт дополнительные нюансы. Поэтому на платформе Android браузер становится «всего лишь одним из» приложений, требующих дополнений. Самое недостающее в планшетном Chrome – «режим чтения». Он есть штатный в Firefox (с вечными нюансами браузер) и в Opera (норвежцы молодцы), есть расширение для популярного Dolphin, etc. А вот Chrome – увы. Но этот недостаток компенсируется небольшим полезным фокусом. Сразу говорю – получившееся в итоге превосходит все прочие варианты по качеству «очистки» контента, но требует кой-каких «лишних» движений и минимального терпения из-за небольшой временной задержки. Больше того, этот «фокус» повторим как шаблон, для многих других целей.

Итак, делаем в Chrome «режим чтения». Есть замечательный старый проверенный популярный сервис Readability, предоставляющий букмарклет для доступа к ресурсам сервиса «очистки» и переформатирования web-страниц. И есть мобильный Chrome. На основе этого «набора» сформируем простой шаблон использования букмарклетов вообще – копируем ссылку на букмарклет на соответствующей странице Readability, делаем закладку в браузере (не важно чего, хоть этой же страницы), теперь в буфере копирования Android находится URL букмарклета (на деле – Javascript), а в списке закладок Chrome – ненужная закладка, редактируем её: изменяем имя на что-то «нетиповое» для web и удобно набираемое на клавиатуре, например, на $$1, вместо URL закладки вставляем из буфера URL букмарклета, сохраняем. Дальше всё просто – на нужной странице «тырцаем» в строку URL Chrome, набираем $$1, нажимаем Enter – и через секунду можем читать очень хорошо очищенный текст, с сохранёнными сутевыми иллюстрациями и всем, что нужно для нормального чтения. Точно так же можно поступать с прочими полезными букмарклетами.
Естественно, раз мы говорим «планшетный браузер», мы подразумеваем, что есть ещё и «большой браузер». Опять же, Pushbullet и замечательная утилита URL Shortener (эталонно реализованная). И до сих пор неизменная GBookmark – для доступа, хранения и синхронизации закладок независимо от браузера (это бывает очень полезно). Собственно, это всё «браузероцентрическое».

4.    Чтение. Рубрика «печаль и отчаяние». Для полноценных электронных книг есть в избытке всё что нужно, но мы до сих пор имеем «аналоги бумажных книг на перфокартах с возможностью выбора фона страницы», и ничего не меняется – всё так же надо «скакать» через пять страниц, чтобы посмотреть рисунок, потом возвращаться к тексту (и в вычурности этого процесса разработчики соревнуются), всё так же надо где-то искать варианты перевода абзаца текста на другие языки, всё так же кошмарны сноски (или их вообще нет), всё так же… Даже не хочется продолжать, придётся ругаться. Ладно, будем говорить о том, что есть. Его есть множество, хоть каждый день пробуй что-то новое. Но делать этого не стоит, не совсем оно разумно. Удивительно, но контролирующая pdf-формат Adobe в итоге всё-таки сделала действительно хорошую «читалку» pdf, оставив «альтернативщикам» разве что области всяких украшательств. Формат epub (3.0 и последующие) всё так же остаётся «нехорошим» для «читалок», но. Есть такой Skoob ePUB Reader, и если вам важнее сохранение форматирования ePUB 3 книг, а не всякие «раскраски-настройки», то эта минималистичная программа – для вас. Делает что должна делать, в ней минимум настроек и «бантиков», но…
К «чтению» относится и клиент системы управления «книжным контентом» Calibre – Calibre Companion. За неимением лучшего можно сказать что он – лучший. Это как бы необязательное, но содержать персональную библиотеку без Calibre уже не получается, как не получалось это раньше без книжных шкафов или полок.

5.    Персональные хранилища «клип-информации», всяких интересных «кусочков», фрагментов, изображений etc. Это отдельная область, я бы сказал – самая «планшетная». Экранная площадь смартфонов в реальности недостаточна для такого, «большие компьютеры» предоставляют кучу локальных возможностей, а вот находящийся где-то между ними мобильный планшет – как раз «самое то» для персональных коллекций. Так что неудивительно количество и качество доступных решений – Pocket, Evernote, WizNote, Nimbus Notes, Google Keep etc (даже ссылок не даю). Я использую все перечисленные. По разным причинам. Google Keep очень удобен для plain text и растровых изображений. WizNote даёт возможность получения локальных копий фрагментов контента в самом «человеческом» виде (речь идёт о файловом представлении). Evernote – один из патриархов этого сегмента, в нём много уже накоплено, пусть там и будет. Pocket – самый удобный для оперативного сохранения интересного прямо с планшета, сейчас к нему по удобству подбирается молодой Nimbus Notes (по крайней мере, только Pocket и Nimbus Notes предлагают бесплатные реально работающие мобильные версии web-клипперов).

6.    «Пресловутый офис». Учитывая ещё недавнюю «смертельную серьёзность» вопроса, из середины 2014 года вся эта «офисная возня» кажется смешной. Потому что при соблюдении минимальных правил здравого смысла (например, не включать OLE-объекты в версии документов для мобильных пользователей) фактически любые документы доступны с помощью любых соответствующих программ. И некоторые мобильные сторонние офисные пакеты ничем не уступают «оригинальному образцу» (я бы не стесняясь сказал – почти во всём превосходят). Впрочем, цифры говорят за себя – китайский WPS Office «окучил» 210+ миллионов зарегистрированных пользователей, Google Docs (от которых ожидается скорая поддержка документов Microsoft Office, это уже анонсировано официально) активно используют 190+ миллионов (среди этих 400+ миллионов и я), и так далее. К слову, буквально вчера Google без фанфар дополнила Google Docs (теперь – раздельный инструментальный набор Google Drive) последней традиционной составляющей – Google Slides, очень хорошо работающей с оригинальными презентациями Microsoft Office .pptx с развитой анимацией (я уже проверил). И, уже даже не кажется, заявленный Slides уровень совместимости будет в ближайшем будущем продолжен в остальных программах Drive – Docs и Sheets.
К «офисному» отнесу и отличный текстовый процессор Quip, которым постоянно пользуюсь по ряду совершенно нетехнических причин.
Ну и маленькое дополнение к «офисному». Мой личный небольшой опрос среди пользователей Android выявил, что почти никто не знает о наличии механизма drag’n’drop во всех текстовых полях ввода без скроллинга. Удивительно, но факт. А он есть – выделите слово и, не отнимая пальца, «перетаскивайте» его куда хотите, это работает.

В общем, без всяких ненужных выдумок – «битва за офис 2014» заканчивается фактически «вознёй в облачных песочницах»: только Microsoft пытается повысить привлекательность OneDrive и Office 365 увеличенными до 15 Gb и 1 TB объёмами хранения, тут же Google анонсирует «вообще безразмерный» Drive за те же деньги. Публика зевает. На этом офисная часть и заканчивается – всё работает, если по-людски им пользоваться. И это и есть настоящие реалии post-PC эпохи, наконец-то.

7.    Общение и прочее вебдванольное. Здесь рекомендаций быть не может вообще, но я вынес этот пункт специально для единственного вопроса – наступит ли тот день, когда или все пользователи разом покинут Skype, или не-Windows версии Skype лишатся фундаментальных недостатков: Android-версия перестанет «выжигать» батарею, а для отправки файла не надо будет из диалога чата возвращаться в диалог контактов и там ещё и искать, а Linux-версия просто станет похожа на написанное гуманоидами приложение и перестанет впадать в кому при открытии активных конференций? Если в post-PC мире этого не случится в 2014 году, в 2015-м мы увидим триллер «Судьба ICQ 2.0».

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

В очередной раз подводя итоги эволюционного «исследования на себе» и наблюдая за многими пользователями, прихожу к следующему выводу – планшеты заняли чётко определённые ниши, зависящие в том числе от возраста пользователей. Дети (не подростки) – это игры и «мультики», фактически компактная игровая приставка + телевизор. Подростки гипермобильны и непредсказуемы, занимающие место хрупкие планшеты они не любят (да и не выживают хрупкие планшеты у них), им достаточны смартфоны. Люди пожилые не любят маленьких экранов смартфонов и чаще всего не нуждаются в возможностях полноценных лаптопов, доступные планшеты с минимальным набором «браузер – почта – чат – читалка книг – казуальная игрушка для совещаний или посиделок в кресле» в этой возрастной категории набирают популярность. В возрастном промежутке между этими крайностями – полная неразбериха. Вычеркнем очевидное сугубо специальное терминальное использование представителями всяких «мобильных профессий» (коммивояжеры, экспедиторы etc). В прочих случаях устройства с малой площадью экрана фактически непригодны для любой профессиональной деятельности (больше того, любая профессиональная деятельность требует полиэкранной работы и очень больших экранов). Но крайне полезны для эпизодического применения (вплоть до быстрого создания каких-то документов) и как «персональные информаторы для определённых сценариев» (например, прикроватного, диванного, в транспорте etc). По-моему, это совершенно очевидно, и волна попыток «приспособить» планшет для профессиональной работы совсем сошла на нет (а такое было), несмотря на несомненное улучшение планшетов. Потому, например, очень странной кажется попытка создания концепции диковинного гибрида вроде как полнофункционального ПК средней производительности с маленьким для ПК экраном и планшета с большой для планшета диагональю экрана. Похоже, что в этой концепции повторяется шутка Б.Шоу о том, от кого что обычно наследуется. Но алогичности не следует удивляться, время такое – помните, давеча все уши прожужжали 4K форматом всякого отображающего движущиеся картинки, что 4K чуть ли не нужен прямо сейчас и каждому? А через месяца три-четыре после начала маркетинговой истерии кто-то дотошный наконец мрачно заметил, что 4K – это безусловно замечательно, но вот спецификации HDMI как-то совсем не соответствуют заявленным возможностям 4K и HDMI просто не позволяет «протащить» через себя те гигапиксели не только с заявленной частотой кадров 120 Hz, но и даже 30 Hz. А реальные 24 Hz – это не очень хорошо, совсем не очень хорошо (и для глаз в том числе).

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

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

 

PS

Труднее всего вспомнить очевидные и постоянно автоматически выполняемые действия :( Очень советую дополнять фокус с превращением web-страниц в читабельное с помощью букмарклета Readability сохранением результата в pdf прямо в Google Drive.

Очень приземлённый IoT или IoE (даже подземный)

Любой большой кумулятивный «сдвиг парадигмы» (что по-людски называется эволюционным скачком – десятилетиями накопленное пришло в точку озарения) вызывает неизбежный hype (специально не хочу переводить слово, оно очень ёмкое). Потому из потока проходных материалов (не обязательно бравурных, все hypes непременно сопровождаются и воплями отчаяния, и мрачными прозрениями) выбрать что-то действительно рациональное очень непросто. Но бывает так, что на ловца и зверь…

Есть такая глобализованная компания со штаб-квартирой в Канаде – Dundee Precious Metals (DPM). Специализируется на добыче драгоценных металлов и совершенно не скрывает сути своих корыстных глобалистских намерений – DPM ищет, приобретает, финансирует и развивает дешёвые (на момент приобретения) небольшие «долгоиграющие» шахты.

А в Болгарии есть такой посёлок – Челопеч, старинный, с населением менее 2 тысяч человек. И в этом посёлке чуть ли не с начала времён почти вечного правления «настоящего хозяйственника» Тодора Живкова (точнее, с 1954 г) была развёрнута добыча медной руды по всем канонам социалистического хозяйствования – с громадьём планов по валу. В реальности получилось как всегда – к 1971 г. шахта Челопеча выдавала на-гора 100 тысяч тонн руды, а всего за историю рачительного социалистического хозяйствования из недр Челопеча выгребли 19,7 миллионов тонн. Проблема оказалась в том, что содержание меди в руде Челопеча всегда было 1,2% максимум, а концентраты серы и мышьяка в породе – чрезвычайно высокие. Бурная деятельность считавшего и себя, и ресурсы вечными, «настоящего хозяйственника» привели к тому, что к 1990 г. руда Челопеча стала настолько опасной для выплавки меди, что добычу остановили, потом шахту заморозили, потом приватизировали, потом продали компании, которая затем успешно обанкротилась, в общем, всё, как во всём пост-СССР (Болгарию не зря называли до поры до времени 16-й республикой).

В 2003м году DPM выкупила у банкрота права на шахту Челопеча и началась новая история. Я не буду копошиться в технологических нюансах решения DPM дилеммы строгих экологических требований Евросоюза и содержанием мышьяка в породе, в DPM умеют решать технологические проблемы (иначе давно бы были банкротами, даже если бы владели только шахтами в каком-то Зимбабве, где очень просто решать все проблемы традиционной «бизнес-смазкой» государственных механизмов). А сконцентрируюсь на IT-составляющей развития шахты Челопеча, вызванных очевидным – по мере эксплуатации шахты порода лучше не стала, и DPM нужно было поднимать объёмы выработки, чтобы получить рентабельное производство без взрывного увеличения в том числе людских ресурсов (потому что это и риски, и просто посёлок Челопеч не выдержит притока тысяч семей, времена великих строек коммунизма давно закончились). Объёмы инвестиций DPM в шахту Челопеча начали расти – с $42 миллионов в 2008 до $72 миллионов в 2011, объёмы добычи – аналогично, и в 2011 году шахта выдала и переработала 1,35 миллиона тонн руды. И вот теперь пора детально об IT-составляющей.

В 2010м году DPM поставили перед собой задачу – увеличить выработку, в том числе за счёт совершенствования механизмов управления шахтой до уровня «реального времени и во всём». Решали задачу и своими силами (у DPM есть собственная контрактная разработка и электроники, и встраиваемых управляемых программ), и с помощью партнёров, в списке которых Cisco и Dassault Systemes. И вот что примерно уже получилось в итоге.

Старые шахтные сети (аналоговая беспроводная – голосовой связи и кабельные – управляющие) были заменены на специально адаптированную подземную Wi-Fi сеть со сквозным (по всей шахте) электромагнитным полем. Эту базу обеспечивала Cisco с помощью ряда небольших компаний, специализирующихся на решении очень специфических технологических задач – от разработки антенн для сложных условий (что, кстати, очень нетривиально для шахт) до взрывобезопасных радиопрозрачных герметичных корпусов и искробезопасных систем питания.

280 сильно модифицированных для шахтных условий точек доступа Cisco Aironet в сочетании с оптоволоконный бэкбоном обеспечили полное покрытие более чем 50 километров штреков единой беспроводной IP-сетью. На основе которой нарастили «мясо» всей системы управления.

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

Все горные машины «обвесили» бепроводными Wi-Fi датчиками (с IP-протоколами обмена, не забываем) – не для красоты и не потому что «теперь так можно»: данные о нагрузке на электродвигатели, о рабочей температуре аккумуляторов и изнашивающихся механических узлов с повышенным трением, о времени наработки узлов и даже о коррозии поставляются в базу данных шахты для системы предикативного управления логистикой, чтобы упреждающе и спокойно проводить регламентные работы вместо внезапно и панически – ремонтные.

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

Шахтёры и все работники шахты получили непрерывную push-to-talk связь и даже видеоконференции. Последнее, оказывается, не глупая прихоть – многие мелкие неисправности в технике шахтёры могут устранять сами в режиме видеоконсультаций с наземными службами, просто показывая место обнаружения неисправности, без необходимости отправлять под землю специалиста из-за какой-то чепухи.

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

И, наконец, всё это точно так же – непрерывно и в реальном времени существует и в виртуальной реальности – в трёхмерных моделях системы шахтного проектирования и моделирования GEOVIA Surpac™ (от Dassault Systemes), где специалисты выполняют и непрерывное высокоуровневое проектирование шахты (увязывая в одно целое, например, планирование очистных забоев с загрузкой шахтного транспорта).

Что в итоге? Повышение безопасности работ, 30% снижение себестоимости руды, двукратное увеличение объёмов производства (примерно с 1 миллиона тонн в 2011м – до двух с лишним миллионов тонн в 2013м), примерно 20 тысяч тонн меди и 3,7 тонны золота в 2013 году и… снижение ежегодных затрат на IT-подсистемы на $1,5 миллиона во многом именно из-за IoE – Internet of Everything, единство протоколов, всё-таки, очень много значит при построении действительно больших систем.

Ну и совсем приземлённое – 2 миллиона тонн руды на шахте Челопеча добывает коллектив из 1217 человек, на 99% состоящий из жителей самого Челопеча (то есть, весь посёлок практически), 59% персонала в возрасте от 30 до 50 лет, среднегодовая зарплата сотрудника (исключая менеджмент) - $14190 (при усреднённой по всей Болгарии $5847).

Вот такой вот приземлённый IoT. Который IoE. Так что кому больше нравится – называйте это M2M на основе TCP/IP или как угодно вообще, смысл от этого не изменится.

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

Картинок по теме не приводил, их есть в достатке на сайте DPM, компании есть чем гордиться. И маленькое уточнение – после «обкатки» системы, DPM развёртывает её аналоги на шахтах в Армении и Нигерии.

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

Очередная попытка выбора "алгоритма алгоритмов". Теперь обоснованная

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

К сожалению, у меня нет сравнительно «свежих» точных данных (уж больно они дорогие), но если считать, что краткосрочные оценки рынка, сделанные в начале 2013 года, не сильно ошибочны, можно утверждать – только в одном сегменте рынка «алгоритм всех времён и народов» был в прошлом году растиражирован примерно 17ю миллиардами копий. А до этого, в 2011 году, например, 11ю миллиардами, в 2012-м – 15ю миллиардами. То есть, за три года суммарное число «инсталляций» реализаций алгоритма составило порядка 43х миллиардов. И это ещё не всё, есть ещё один сегмент рынка, в котором доступны, к сожалению, только финансовые оценки, зато его ёмкость весьма стабильна (порядка $3 миллиарда в год), и примерно половина его – это тоже «алгоритм всех алгоритмов». Причём специфика этих «тиражей» и сегментов рынка такова, что «самый-самый алгоритм» категорически необходим, без него просто бесполезны содержащие (и реализующие) его устройства.

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

В общем, пора открыть карты – алгоритм всех времён и народов, классический дихотомический поиск «разделяй и властвуй», или, языком практиков – бинарный поиск. Он настолько «общеизвестный», что не получается даже отыскать его автора (или авторов), если такой вообще был (Д.Кнут в «Искусстве программирования» упоминает, что первый вариант алгоритма был опубликован в 1946 г., но первая безошибочно работающая реализация его – в 1962).

При этом он настолько хорош нюансами, что во времена, когда профессиональные программисты ещё вынуждены были «писать руками» свои реализации бинарного поиска, Джон Бентли (автор знаменитой книги «Programming Pearls» и преподаватель, подготовивший не одного гуру программирования), проверяя «боевых» программистов Bell Labs и IBM, сделал открытие – только 10% профессиональных программистов способны написать безошибочно с первого раза работающую процедуру бинарного поиска.

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

Предположим, мы хотим измерить в какой-то момент времени некоторое значение сравнением с сеткой эталонных значений. Нам известен диапазон возможных изменений измеряемого. Раз он известен, то мы можем говорить, что вне зависимости от изменения измеряемого во времени, в каждый конкретный момент измеряемая величина фактически описывается монотонной функцией – она может быть точкой на линейной шкале в заданных известных пределах измерения. Эта отправная идея – собственно, и почти всё нужное, чтобы применить алгоритм бинарного поиска: мы «предъявляем» для сравнения точку в середине шкалы, сравниваем значение с измеряемым, выбираем в какой половине шкалы находится измеряемое значение, предъявляем для сравнения середину этой половины шкалы, и т.д., до совпадения. Механика в реализации несколько сложнее, чем последовательный линейный поиск, но скорость…

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

Очередная попытка выбора "алгоритма алгоритмов". Теперь обоснованная

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

SAR ADC – де-факто обязательный узел любого микроконтроллера (по сути, один из ключевых узлов, наличие которых отличает микроконтроллер от универсального микропроцессора). А микроконтроллеров производится примерно столько, сколько было сказано в самом начале – около 43 миллиардов за 3 года.

Очередная попытка выбора "алгоритма алгоритмов". Теперь обоснованная

И ещё есть SAR DAC, выполненные в виде отдельных микросхем, и это тоже очень большой рынок (примерно половина всего 3-миллиардного годового рынка АЦП).

Что получается в итоге? Фактически копеечным и всегда «в нагрузку» к любому микроконтроллеру стал встроенный 10-битовый SAR ADC. То есть, преобразующий измеряемое напряжение в 10-битовый код. Сейчас ему на смену приходят де-факто стандартные 12 битов (при той же скорости работы механизмов бинарного поиска). Массово доступная скорость одного бинарного поиска обеспечивает до 100 тысяч измерений в секунду.

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

Очередная попытка выбора "алгоритма алгоритмов". Теперь обоснованная

( LTC2378-20 - пока вроде рекордсмен в мире SAR ADC, до миллиона 20-битовых бинарных поисков в секунду, к "эскстремалам" можно отнести и Maxim MAX11156 - 500 тысяч 18-битовых бинарных поисков в сек., это всё крайне "небытовые" микросхемы с ценой порядка $50 за штуку)

Впрочем, экстремальные SAR ADC конкурируют с аналогичными других архитектур, да и экстремальность всегда далеко не самая востребованная.

А вот в области «обыденных», то есть, реально нужных для решения реальных задач, параметров, дешёвые «измерительные машины бинарного поиска», по сути – реализации великого алгоритма, – вне конкуренции. И их будет ещё больше, даже не берусь представить сколько – достаточно упомянуть одну новость: правительство Китая «запускает» программу государственной поддержки развития IoT (Internet of Things) с объёмом финансирования… $600 миллиардов до 2020 года (и ещё одно далёкое отступление в новости - чем оборачивается китайская поддержка сугубо своих IT-производителей, позволяет оценить ещё один факт – буквально на днях очень китайское мобильное приложение Kingsoft Office было переименовано в WPS Office в честь преодоления 210-миллионого барьера числа пользователей во всём мире, по-моему, это впечатляющий результат для разработчика, пользующегося господдержкой и буквально пару лет назад никому за пределами Поднебесной не известного).

В общем, я не нашёл замены этому претенденту на звание «алгоритма алгоритмов». Про остальные девять (раз уж принято писать почему-то про 10 именно) ничего сказать пока не могу, но бинарный поиск – бесспорный №1. Что в бритвенном станке с моторчиком, что в зарядном устройстве для аккумуляторов, что в приводе стёкол автомобиля, в общем, почти везде – каждое любое измерение (которых обычно делается тьма в секунду) – это бинарный поиск.

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

Реальный работающий IoT

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

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

Это мусорные баки Барселоны:

Реальный работающий IoT

Если присмотреться к крышкам баков, можно увидеть вот такой «наплыв» на них:

Реальный работающий IoT

Внутри пластикового «наплыва» - сенсор заполненности бака и IoT-компьютерчик с радиоканалом.

За технологической начинкой и «интернетом умных мусорных баков» стоит компания с ирландской регистрацией и очевидным названием  SmartBin. Компания существует с 2010 года, и, что характерно, является торговым филиалом бОльшей компании с не менее очевидным названием - M2M Telematics Ltd. Просто идеальная иллюстрация к сказке «откуда у IoT ноги растут».

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

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

А вот вроде как обычная парковка в той же Барселоне. Парковочное место. С неконтактными IoT-датчиками наличия автомобиля на нём. И с сервисом, где в реальном времени можно сразу найти ближайшее свободное парковочное место без 40-минутных блужданий по улочкам (а это обычное мучение в старинных городах Европы, кстати):

Реальный работающий IoT

За такой парковочной службой стоит IoT-сервис. И он же уже интегрируется с сервисами дорожных информационных табло, предупреждающих водителей, например, просто не заезжать в район если там негде припарковать машину. Это ещё один сервис. Аналогичный и большой парковочный IoT-сервис в стадии «обкатки» развёрнут в Сан-Франциско, в нём уже «обинтернечены» 8200 парковочных мест.

А вот из совсем другой оперы совсем внезапное – «воздушный трактор». Ну, он так называется, Air Tractor (потому что 802-я модель «тягает» по небу 4 тонны груза):

Реальный работающий IoT

Машина очень популярна в сельском хозяйстве США. И у её «начинки» есть удивительные возможности. Главная – бортовые системы «воздушного трактора» способны каждые несколько метров полёта изменять концентрацию жидких удобрений для прецизионного их внесения. А чтобы так точно вносить удобрения, надо очень точно знать в куда и сколько. Пока нормой является точная разметка полей и дорогие ручные измерения параметров (которых для хорошего выращивания пшеницы, оказывается, в американской агроинженерии принято оценивать целых 43). В стадии «обкатки» - развёртываемые на полях беспроводные IoT-сети. Если «воздушные тракторы» уже являются частями IoT-систем сами по себе (логистика, всё логистика – самолётам нужны запчасти, топливо, удобрения надо свозить на промежуточные торговые базы, etc), то интеграция с «умным полем», что очевидно, позволяет снизить расходы на те же полевые измерения (которые весьма недёшевы) и увеличить точность внесения удобрений (а это – снижение себестоимости зерна, увеличение в итоге его качества и в целом – повышение живучести сельского хозяйства).

Концерн John Deere (35 миллиардов годового дохода), производитель сельхозтехники, фактически уже использует собственную сеть сенсоров своих машин в сугубо IoT-системе, например, для оценки будущих урожаев. Потому что объёмы выпуска запчастей и спрос на новые машины непременно взаимосвязаны с будущим урожаем (об очевидной финансовой стороне вопроса, кстати, можно и не говорить). Потому John Deere уже несколько лет трансформирует свою M2M-систему в IoT-систему (и очень охотно нанимает на работу профессиональных аналитиков со знанием статистики и умением языка R). Интеграция IoT «умных полей» с IoT производителей сельхозмашин, удобрений, гербицидов и пестицидов и прочего, без чего невозможны агросистемы – задача №1, её никто не скрывает, и в эту область буквально «вваливаются» большие деньги, потому что рынок, грубо говоря, еды, растёт и будет расти с ростом численности населения, а плодородных земель больше не становится. В общем, много лишних слов не нужно, достаточно посмотреть что предлагают электронные подразделения John Deere (3 завода в США + центр логистики), чтобы увидеть классические узлы IoT во всей красе (и страницу сенсоров обязательно посмотреть, замечательные сенсоры у John Deere).

Вот ещё одна картинка:

Реальный работающий IoT

Это IoT-станция (если точнее - пограничный роутер) беспроводной меш-сети проекта «умной агрокультуры» в Риас Бахас (Галисия). Там выращивают сорт белого винограда Алварино и делают из него замечательное вино. Проект начинался в 2012 году, но оказался настолько успешным, что за первый год «разросся» от тестовой инсталляции до охвата четырёхсот (из почти тысячи) винодельческих хозяйств и виноградников. Чистая IoT-система мониторинга, управления поливом и оптимизации использования удобрений и фунгицидов. Итоги двухлетней эксплуатации – снижение на 20% расходов и количества химии, прирост урожайности – на 15%.

А вот совершенно иной мир – некоммерческая IoT-система Air Quality Egg, строящаяся силами открытого сообщества, порядка 950 IoT-датчиков содержания в воздухе NO2 и CO. Накопленные и получаемые ею данные со временем вполне могут стать основой для чего-то полезного (например, дополнительным источником данных для управления городским трафиком, это уже зависит от воображения).

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

В первой фазе, которую мы наблюдаем, идёт формирование основ IoT-систем фактически дополнением хорошо известных M2M решений web-технологиями с открытыми API и доступом к базам данных. Вторая фаза – формирование новых интегральных сервисов на основе результатов первой фазы. Третья – физические обратные связи с реальным миром. Ну и всё это, в конце концов, именно для того, чтобы придать новые свойства обычным предметам или процессам.

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

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

Большие и [не]ожиданные новости в мире IoT

Неоднократно говорил очевидное, и не устаю его повторять – поднимающаяся волна IoT радикально изменяет ландшафт мира IT. Юные, быстрые и неотягощённые унаследованным бременем Давиды IoT весьма бойко теснят Голиафов (действия последних вообще выглядят странно, но я не о том).

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

Если кто не знает (или забыл), Франция в доинтернетовые времена очень долго использовала собственную уникальную информационную систему Minitel, которая в смысле «сервис-ориентированности» до сих пор слишком высоко держит планку для Internet стран «ортогональных миров» (с очень собственными путями развития) – в 1996 году порядка десяти миллионов (!) Minitel-терминалов предоставляли пользователям почти 26 тысяч (!) сервисов. И пользовалась этим примерно половина взрослого населения Франции. Речь идёт именно о сервисах, не о «вебдванольном шлаке» (извините), - в той же середине 90-х годов региональные базы пользователей Minitel-сервисов, например, в сфере сельского хозяйства, насчитывали десятки тысяч фермеров и кооперативов. Minitel была во Франции всепроникающей почти 20 лет и обеспечивала порядка 100 миллионов долларов годового оборота провайдеру сетевых услуг и поставщикам сервисов. У истории Minitel были косвенные и причины, и следствия. В начале 1980-х годов французская экономика начала движение в «длинный хвост» - рыночная доля малых и средних компаний и их значимость стала увеличиваться. Minitel давала этим компаниям возможность быстро, недорого и удобно развивать доступ к своим сервисам (любым, в основном к «не IT»), и, соответственно, сама требовала развития, и уже в 1999 механизмы госфинансирования поддерживали более 250 IT-стартапов, всего же за этот год было создано порядка 8 тысяч новых IT-компаний. Впрочем, понятно, что речь идёт не об игрушечной системе – Minitel строилась на едином электронном каталоге сервисов национального масштаба, например. Впрочем, хватит истории. Пора к делу.

Французская молодая компания SigFox фактически получила концессию на развёртывание первой реально очень большой и целостной беспроводной сугубо IoT системы. Причем, – где. В США. Мало того, – в «кремниевой долине». И слова «большая IoT система» – они не для красоты, речь идёт о масштабе практически всего полуострова Сан-Франциско, и не только урбанизированной его части, но и 40-мильной южной. Сейчас SigFox заканчивает сертификацию своего оборудования, и к концу этого года всё заработает. Можно не сомневаться, что заработает, потому что оно уже вовсю работает в той же Франции.

Это была как бы официальная поверхность айсберга. А теперь давайте заглянем «под воду», там самое интересное.

SigFox строит свою IoT-систему (или, если кому больше нравится, сугубо M2M-систему, Machine 2 Machine communication) на основе… внимание (!)… собственных разработок чуть ли не на всех уровнях.

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

На уровне всем понятных цифр всё это звучит более приземлённо – IoT от SigFox работает в нелицензируемых ISM диапазонах 915 MHz (для США) или 868 MHz (для ЕС), стоимость беспроводной «аппаратуры» для одной IoT-точки – порядка $2, стоимость годового обслуживания одной IoT-точки - $1, удалённость устойчивой работы IoT точки от базовой станции – в городских условиях 3-10 км, за городом – до 50 км, при этом энергопотребление радиоканала – всего 50 микроватт. В результате всё это позволяет быстро развернуть сеть базовых станций IoT (потому что их нужно немного из-за большой дальности связи с IoT-узлами), получить мизерно потребляющую энергию огромную систему (IoT-системы сами являются энергопотребителями, и если говорить о системе с миллиардом узлов, каждый из которых всего десять раз в сутки отправляет с помощью традиционного GSM-модема всего 10 крохотных пакетов данных, то суммарное потребление всего этого удовольствия только за счёт GSM-модемов можно оценить на уровне 400 мегаватт/час), узлы которой при отправке 3-5 сообщений в сутки (что достаточно для такого типового приложения, как опрос электросчётчика) могут работать от 2500mА/ч батарейки почти 20 лет.
О совершенно правильном «наплевательском» отношении конструкторов SigFox ко всему, что не относится к фундаментальным вещам (физике, электронике, распространению радиоволн), говорят высокоуровневые характеристики протокола обмена – максимальная скорость передачи порядка 100 битов в секунду (это не ошибка, именно битов), полезная нагрузка (payload) одного пакета протокола – 12 байт, ёмкость канала от одного IoT-устройства – до 140 пакетов в сутки. Кто всерьёз интересуется IoT, тот ничего подобного в самом «нашумевшем» не наблюдал, это полностью дерзкая «отсебятина» SigFox, которую по мере притока денег от растущего числа инсталляций компания понемногу превращает в стандарты (и отсутствие поспешности в этой сфере деятельности SigFox на деле очень радует – каждая реальная большая инсталляция явно даёт массу уроков конструкторам и программистам, и неизбежно отражается на совершенствовании всех подсистем).

В общем, SigFox – большие молодцы, смелые, умные и своевременные.

А теперь совсем другая крайность IoT. Но тоже из совершенно нового мира. На днях в США был небольшой такой скандальчик, на который обратили внимание только граждане, очень интересующиеся своими правами владения огнестрельным оружием. В общем, возникли трения между активистами оружейных свобод и двумя серьёзными ассоциациями владельцев оружия (национальной стрелковой ассоциацией NRA, National Rifle Association, и Национальной Ассоциацией Стрелкового Спорта NSSA, National Shooting Sports Foundation) по поводу «интеллектуального оружия». Активисты требуют убрать его с прилавков, ассоциации выступают против и вообще называют «интеллектуальное оружие» более конкретно – «оружием с распознаванием авторизованного использования». Речь пока идёт об одном пистолете .22 калибра производства немецкой компании Armatix - iP1:

Большие и [не]ожиданные новости в мире IoT

Сама компания очень интересна – она сформировалась как симбиоз менеджмента из знаменитой оружейной Heckler & Koch и совершенно мирной SimonsVoss, специализирующейся на высокотехнологичном бытовом, в том числе и на IoT. Результат – пистолет, который без весьма серьёзных ухищрений можно использовать разве что для забивания гвоздей, если комплектные к нему электронные часы (со встроенной активной RFID-меткой) не находятся в поле действия встроенного в пистолет считывателя.

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

Вот такое происходит в мире, пока мы тут… (даже не хочу дальше)

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

Микроконтроллеры и embedded вообще, часть 03

Предыдущие части были как бы совсем вводными, и обстоятельно подумав, я решил немного ускорить процесс и многого, что можно без труда узнать самостоятельно, не разжёвывать. Но впредь всё равно буду концентрироваться на том важном, что отдаляет (и даже отделяет) embedded-разработку от традиционного «большого» программирования.

Теперь – к делу. Извините, но никаких Arduino не будет. Вообще. 8-битовые микроконтроллеры Atmel безусловно хороши (но далеко не всегда и не везде, как и всё прочее), Arduino – полезная и забавная разработка, но обо всём этом без меня написали мегатонны текстов (хороших ли, плохих ли, не мне судить, у меня нет сил всё это читать). Но причина «не-arduin-истости» вовсе не в этом. Слепое использование для обучения Arduino прячет так много важных и интересных деталей, что это уже не столько обучение, сколько баловство без смысла и каких-либо перспектив (это моё скромное мнение, и оно совершенно нескромно обсуждению не подлежит :) ).

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

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

Итак, начнём с задачи выбора. Она начинается с понимания и оценки собственно «Задачи Создания Чего-то». Типовой «реальный мир» в «поле зрения» встраиваемого вычислителя выглядит примерно так:

Микроконтроллеры и embedded вообще, часть 03
 
nT – всё, что можно наблюдать во внешнем мире, и что определяется «временем». Так как у нас нет никаких абсолютных способов измерения «времени», мы говорим о соотношении одного числа событий с другими. Например, «временной интервал» - это число событий с заведомо известными параметрами, которое мы подсчитываем в промежутке между двумя другими событиями. «Частота» - почти то же самое, только события с неизвестными параметрами меняются местами с двумя событиями с известными параметрами. И временные параметры задачи (сколько их и какие они) – пожалуй, самое главное, что в ней есть. Ещё главнее только анализ этих временных параметров и выявление из них самого непродолжительного («короткого»). От него зависит всё остальное, в том числе и выбор того, что нужно для решения задачи. Диапазон временных параметров в реальных задачах огромен. В качестве примера возьмём совершенно заурядную задачку – «умный» сенсорный выключатель света. Если это просто «включить-выключить» устройство, то проектировщик его располагает чуть ли не полной свободой – у человека, касающегося сенсора, время реакции очень большое, порядка 0,1 секунды, за это время встраиваемый RISC-вычислитель с тактовой частотой 10 MHz может сделать чуть ли не что угодно, потому что исполнит примерно миллион команд (0,1*10.000.000). Но стоит добавить функцию диммирования (управления яркостью), задача (если мы стараемся её решить максимально задействуя возможности вычислителя, и если речь идёт о лампах накаливания) изменится, для управления яркостью ламп накаливания нужна синхронизация с частотой переменного тока сети, и минимальный временной интервал станет не 0,1 сек, а 1/50 или 1/60 секунды (даже меньше, но это пока неважные детали). С другой стороны, задачи управления малым летательным аппаратом (дроном, например) могут потребовать минимального временного интервала порядка единиц миллисекунд, а что-то ещё (из области управления техническими системами) – и вовсе микросекунд. В общем, если ввести показатель K, индицирующий насколько хорошо разработчик понял задачу и как удачно выделил в ней минимальный временной интервал – стоимость разработки будет N*K, а время - NK (или наоборот, или одновременно с наихудшим значением, как повезёт), где N – произвольное значение, выбираемое по принципу «чтобы больше испугаться».

UI – это напряжения и/или токи. Здесь тоже есть свои нюансы. Для каждого наблюдаемого UI важны диапазоны изменений – это раз,  скорости изменений – два, «чистота» (или наоборот, зашумлённость) – три. Ну и, конечно, количество наблюдаемых UI – это номер «ноль». Естественно, в реальном мире все эти параметры (величины) могут быть исключительно «аналоговыми», и это уже дело разработчика как и когда трактовать аналоговое для решения задачи – когда ограничиваться просто обнаружением факта наличия сигнала (это уже дискретный мир), когда дискретности не достаточно.
∑ - всевозможные косвенные параметры, оценки которых можно или свести ухищрениями к nT и/или UI, или можно и нужно использовать преобразователи этих параметров в перечисленные фундаментальные (сенсоры).

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

Итак, самый первоначальный выбор начинается с анализа задачи – надо составить табличку (или любое неформальное описание) событий (сигналов) внешнего мира, которые необходимы для решения задачи и тщательно изучить особенности этих событий. Имея под рукой такую табличку решать задачу выбора встраиваемого вычислителя намного проще. Например, в табличке есть 14 аналоговых сигналов и 17 дискретных. Это без всяких дополнительных рассуждений означает, что микроконтроллер со всего 18-ю выводами без дополнительных ухищрений для решения задачи не подойдёт. Если есть уточняющая информация о минимальном временном интервале задачи – довольно легко понять какие вычислительные характеристики окажутся пригодными, тем самым можно сразу отсечь море заранее неподходящих микроконтроллеров.

Кроме этих очевидных фундаментальных факторов выбора «от задачи», есть ещё и технологические. Даже если вы любитель и для вас это дело не больше удовлетворения любопытства. Технологичность – штука сложная, потому что учитывает реальные возможности производств (и чужих, и своих). Даже «производство на коленях» имеет свои особенности. Например, позволяющие существенно экономить площадь печатных плат QFN-корпуса – крайне неприятны для любителей, в то же время «сугубо любительские» DIP-корпуса уже смело можно считать устаревшими, потому как всякое «подручное» для любительского использования даже самых маленьких выводных корпусов поверхностного монтажа (SOIC и SSOP) стало совершенно доступным и никаких особенных сложностей с ними нет. К технологичности можно отнести и «доставабельность». В любом нашем магазине электронных компонентов вы можете увидеть унылых людей со списками, наивно пытающихся купить какую-то совершенно замечательную микросхему, которых в нашей реальности просто не существует (и не только потому, что мы такие, какие есть – удачные и очень нужные микросхемы чаще всего выкупаются у производителей огромными тиражами на годы вперёд и их очень трудно отыскать у любых дистрибьюторов). К «доставабельности» относится и политика производителя – некоторые производители компонентов поддерживают небольшие фирмы, ориентированные на выпуск полууникальных изделий с малой серийностью, собственными каналами прямых продаж. И это существенно облегчает жизнь. В более глубокие детали я не хочу и не могу вдаваться, достаточно сказать, что без нормального этапа выбора обычно получается или избыточное, дорогое и сложное аппаратно, или очень простое, но с такой сложностью разработки ПО, что при сравнительно немалой серии лучше пусть оно будет в 10 раз дороже «по железу». К технологическим нюансам следует отнести и инструментальную поддержку производителем, но в 2014 году различия де-факто нивелированы, и большинство компаний предлагают «вообще всё» - от ассемблеров и компиляторов до IDE, очень развитых фреймворков (да, в embedded-программировании эпоха библиотек, похоже, закончилась) и аппаратных средств отладки.

В общем, на основании неоднократных (и не могу сказать, что неуспешных) процедур выбора я давно остановился на контроллерах производства Microchip. И присматриваюсь к многочисленным ARM-контроллерам (особенно с ядром Cortex-M0). К сожалению, производители ARM-контроллеров пока не предлагают самый интересный класс «умных компонентов» (даже несмотря на резкое снижение цен). Ну и у некоторых именитых производителей ARM-клонов (не хочу показывать пальцем) такая документация, что впору её распространять зашифрованной, не раскрывая ключа, разница будет невелика. Посему будем «дружить» с Microchip. Благо, «доставабельность» у них нормальная, но сразу советую не искать каких-то вычурных путей и покупать их «для вивисекции» у нормальных поставщиков (в Украине таковым в первую очередь является официальный дистрибьютор Microchip «Гамма», это не реклама, в вынужденная ссылка).

Microchip производит 3 класса микроконтроллеров с разной разрядностью обрабатываемых данных (обратите внимание на курсив) – 8, 16 и 32 бита. В каждом классе есть свои подклассы, а в них уже – десятки (а то и сотни) моделей. Мы начнём наши «игры» с самыми малышами, которые ещё не совсем «умные компоненты», но уже почти к ним близки. Это обновлённое семейство знаменитых в до-Arduino времена среди самодельщиков мира PIC16. Обновление (Enhanced Mid-Range Architecture, EMRA) оказалось настолько значимым и удачным, что Microchip, невзирая на потоки материалов «8-битовые микроконтроллеры мертвы» впечатляющими темпами «клепает» всё новые и новые микросхемы, и они, похоже, разлетаются, как горячие пирожки (если судить по принципиальной недоставабельности наиболее востребованных промышленностью именно что «умных компонентов» нижнего ценового диапазона).

Пришло время для самого интересного промежуточного – сколько стоит «вход в увлечение» (а для кого-то, возможно, и в будущую профессию). Или минимальный набор «юного embedded-садомазохиста». Цены указывать не буду (они сейчас быстро меняются), но, скажем, всё это будет в пределах похода в ресторан чуть выше средней руки. Главный инструмент – программатор-отладчик. Они у Microchip есть профессиональные (и если для уровня ваших доходов ресторан средней руки характеризуется чеком порядка $300, можете не стесняясь один раз не сходить ради такого удовольствия), есть и более скромные, но пригодные для почти чего угодно. Самое подходящее - PICkit 3 (лучше всего оригинальный, хотя на рынке есть и клоны, которые почему-то дороже). Ориентировочная цена – 500-600 грн. Это самая большая инвестиция. Собственно микросхемы, монтажные платы и прочая мелочь – здесь счёт на десятки гривен. Ну и маленький удобный паяльник (или паяльная станция). Для начала - всё. Необходимое ПО легально бесплатно доступно с сайта Microchip. О прочих нюансах и деталях будет по ходу дела. Как и не только о микроконтроллерах, embedded мир не ими одними жив.

Итак, начнём. PIC16 Enhanced Mid-Range Architecture (EMRA), усовершенствованная архитектура среднего уровня. Признаком принадлежности к ней является шаблон наименования микроконтроллера – все EMRA модели PIC16 именуются так: PIC16(F/L)XXXX, где X – цифра (PIC16 предыдущего поколения содержали три цифры в названиях моделей). Из доступного и очень интересного я выбрал микросхему PIC16F1783. Пока просто скажу – это очень хорошая машина (даже замечательная). Для подчёркивания общности иногда будет упоминаться PIC16F1829. И некоторое внимание будет уделено совсем малышу PIC16F1509, оснащённому очень интересными аппаратными подсистемами. Так, на примере трёх доступных контроллеров, мы попробуем осмотреть если не всё, что можно, то очень многое.

Первое, что нужно сделать, услышав наименование нового микроконтроллера – посетить сайт производителя и загрузить документацию для вдумчивого последующего её изучения. У Microchip она, к слову, одна из лучших в индустрии (до сих пор сказывается опыт, культура и рука Бонни Бейкер, замечательной женщины-инженера, автора неисчислимых документов и многих настольных для профессионалов книг, теперь работающей в Texas Instruments). Два главных класса документов для любого микроконтроллера - Data Sheet и Errata. Первое в деталях описывает как и что должно быть, а второе – как и что получилось в реальности не так, как должно быть (идеального ничего не бывает).

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

Во-первых, мы говорим о машине гарвардского типа, в главном являющейся классической RISC – длина машинного слова в битах у неё больше, чем длина обрабатываемого слова данных. В частности, для EMRA PIC16 разрядность машинного слова – 14 битов, разрядность слова данных – 8 битов. Все машинные команды состоят из одного 14-битового слова, команд из нескольких машинных слов не существует.

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

В-третьих, у этой машины очень много регистров, которые для запутывания непосвящённых называются RAM. Так что изучение «чистого CPU» в отрыве от подсистем памяти в случае с этой машиной почти невозможно.

В-четвёртых, EMRA PIC-контроллеров целостно почти нигде не описана (это связано больше с ориентацией Microchip на профессиональных разработчиков, которых у них армия по всему миру, дескать, профи сами разберутся и оценят). Я попробую несколько не по-Microchip’овски сделать цельное ознакомительное описание и даже осмелюсь ввести кой-какую собственную терминологию, которая по моему мнению актуальная возможностям архитектуры.

Видимая программисту машина EMRA PIC16 состоит из 31-го почти одинакового «регистрового окна контекста» (пусть будет РОК) и 32-го «регистрового окна специального контекста» (РОСК), доступ к каждому из которых осуществляется изменением содержимого специального регистра. Одно РОК состоит из 127 регистров с адресами от 0 до 126 (0x00-0x7F в 16-ричной системе, то есть, внутри окна контекста для адресации индивидуальных регистров достаточно семи битов) и выглядит так:

Микроконтроллеры и embedded вообще, часть 03

 
Выделенные красным области (регистры процессорного ядра и независимые от контекста) при выборе любого из 32-х контекстов остаются в адресном пространстве CPU «на своих местах», то есть всегда доступны, они одни и те же, независимо от выбранного контекста. О «фокусе» с отображением регистров всех окон контекстов на линейную систему адресов и о регистровом окне специального контекста (РОСК) поговорим позже (оно принципиально новое в EMRA), после необходимой детализации.
12 регистров процессорного ядра – то, что в более традиционных микроконтроллерах и процессорах принято называть собственно «архитектурой CPU» (для начала приведу просто таблицу, затем проиллюстрирую её более наглядным рисунком):

Микроконтроллеры и embedded вообще, часть 03

«Подсвеченные» желтым цветом регистры EMRA CPU выделены не для красоты – их содержимое автоматически аппаратно сохраняется в «теневых» копиях в начале процедур обработки прерывания (и содержимое этих «теневых копий» программно доступно, но и  об этом позже). Давайте посмотрим на эту таблицу более традиционно, как принято для большинства CPU:

Микроконтроллеры и embedded вообще, часть 03

 
На деле это очень традиционный CPU, архитектурно весьма похожий на знаменитые и до сих пор выпускающиеся встраиваемые CISC-процессоры, например, на культовый Motorola 6809, наследники которого живее всех живых по сей день:

Микроконтроллеры и embedded вообще, часть 03
 
Теперь давайте «соберём» часть большой картины:

Микроконтроллеры и embedded вообще, часть 03

 
В зависимости от физического количества регистров общего назначения NR (размера RAM или SRAM согласно документации), каждый конкретный EMRA PIC16 содержит целое число NR/80 регистровых окон контекста (РОК) c 80-ю регистрами общего назначения, возможно одно дополнительное РОК с числом регистров общего назначения, равным остатку от деления на 80, и непременно последнее, 32-е регистровое окно специального контекста РОСК. Так, например, PIC16F1783 содержит целых семь заполненных регистрами общего назначения РОК (шесть – по 80 регистров общего назначения, и одно – 32 регистра) и одно обязательное РОСК. В РОК, где нет регистров общего назначения, всё равно есть регистры интрефейсов периферии (зелёная лента на рисунке) и две обязательные разделяемые регистровые области. В общей для всех РОК и РОСК 12-регистровой области (верхняя красная полоса на рисунке) 5 младших битов содержимого регистра BSR (голубой прямоугольник на красном, селектор регистрового окна) определяют текущий РОК, который в данный момент «попадает» в 7-битовое адресное пространство системы команд CPU. За пределы этого адресного пространства можно «заглядывать» с помощью косвенной адресации, причём косвенная адресация отображает на единое линейной адресное пространство RAM (регистры) и память программ (что для машины гарвардской архитектуры – весьма забавная особенность). Больше того, EMRA PIC16 позволяют с помощью механизма косвенной адресации программно «переписывать» флеш-память программ (что раньше было отличительной способностью высокоуровневых микроконтроллеров).

Пока ни разу не был упомянут важнейший элемент любого процессора – стек возвратов, – давайте посмотрим на эту архитектуру глазами программиста из 2014 года. Это нужно для пояснения весьма вольных терминов «регистровое окно контекста». По сути, архитектура реализует существенный фрагмент аппаратной поддержки «актёров» (шаблонов ли програмимрования, архитектуры ли, не важно). Она даёт в распоряжение программиста быстро изменяемый одной машинной командой контекст (80 байтов для многих управляющих задач далеко не так мало, как кажется, а с учётом «напичканности» почти автономной периферией EMRA PIC16 – и  вовсе большая цифра), за пределы которого можно «выглянуть» только специальным методом адресации и несколькими специальными командами, его использующими. Она даёт разделяемую между «актёрами» память (16 независимых от контекста регистров), или mailbox, в терминах архитектуры «актёров». И, наконец, она даёт очень быстрый вход в процедуру обработки прерывания (с копированием всех нужных системных регистров в теневой области – от трёх до пяти машинных циклов), без единого лишнего действия со стороны программиста.

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

Система команд EMRA PIC16 компактна – всего 49 команд, причём, как положено чистой RISC-машине, любая команда реализуется всего одним 14-битовым словом. Для большинства RMW-операций (это же RISC-машина, и в ней почти все операции – Read-Modify-Write, я об этой идиоме писал ранее) все 127 регистров текущего РОК практически равнозначны, аккумулятор WREG хоть и сохраняет своё специфическое назначение, но в RMW-командах можно выбирать куда будет помещён результат – в аккумулятор или указанный в коде команды регистр.

В следующем фрагменте продвинемся дальше. И так – вплоть до конкретики (что это будет – пока тайна, но, надеюсь, будет интересно).  

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

 
 
Реклама

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