`

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

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

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

Best CIO

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

Человек года

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

Продукт года

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

 

Lollipop "живьём", первый день реальной работы, впечатления

Как и обещала "империя добра" (хоть обещания были неофициальными), 12 ноября версии Android 5 появились для многих устройств подконтрольных Google семейств Nexus. Так как много уже написано об этой версии системы, попробую упорядочить впечатления от первого дня эксплуатации её на планшете Nexus 7 2013, и не повторить уже многократно сказанного. Текст этот пишется в среде системы Lollipop, с помощью чудесного простого текстового редактора JotterPad X (он более чем достаточен, несмотря на мнимую простоту), без внешних аппаратных клавиатур и прочих излишеств. Но не будем забегать далеко, всему своё время.

Lollipop "живьём", первый день реальной работы, впечатления

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

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

Lollipop "живьём", первый день реальной работы, впечатления

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

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

Lollipop "живьём", первый день реальной работы, впечатления

(и новые нотификации, и скроллируемое "колесо" переключателя задач; "снимки" окон приложений делаются в момент переключения, они не постоянны, и эта мелочь на деле очень удобна для визуальной навигации)

Быстродействие, производительность, "гладкость". Не могу ничего вразумительного сказать. Мучить планшет синтетическими тестами мне в голову не приходит, субъективно система работает намного "приятнее" предшественницы, больше сказать нечего.

Приложения. Я не поклонник тысяч приложений, которыми не пользуешься. Из моего списка пока только один клиент VNC оказался несовместимым с Lollipop до уровня непригодности. "Плавающие" и сто лет не обновлявшиеся приложения (словарь AntTek Dict, например) прекрасно работают, менеджер буфера копирования Clipper+ тоже ведёт себя как надо (а они, по логике, весьма критичны к системе). Остальное прикладное все работает образцово, несмотря на мои специфические привычки (например, к сторонним "лончерам" вроде Lightning launcher). То же самое можно сказать о виджетах, включая очень старые, практически классические (переключатель клавиатур, например). Как бы подводя результат - проблем практически нет (а VNC клиент любимый непременно "подлечат", потому что пользователи уже жалуются).

Lollipop "живьём", первый день реальной работы, впечатления

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

Механизм нотификаций. Это то, что тоже сразу бросается в глаза. Очень хороший, много лучше того, что было. Распространение нотификаций штатными системными средствами на экран блокировки - это тоже замечательно (но далеко не новое для опытных Android-пользователей). Управление этим механизмом не дотягивает до "великолепно", но что-то подсказывает мне, что некоторые функции в Google чуть ли не умышленно оставили сторонним разработчикам, потому что в предварительных (для разработчиков) версиях системы эти функции были, и прекрасно работали.

Клавиатура и ввод текста. Совершенно замечательно, без всяких "но". Что штатная клавиатура отлично работает в свайп-режиме (и даже удивляет развитым лексиконом), что новый экранный режим пополнения словаря клавиатуры, все это именно так, как надо. Блестящая работа программистов и дизайнеров Google. Любимая купленная клавиатура Swype не утрачивает полезности (благодаря возможности уменьшения её размера, иногда это очень полезно), как никуда и не девается легендарная Hackers Keyboard, но для написания текстов такого формата и объёма штатная клавиатура идеальна, никакого дискомфорта я не испытываю и лишних действий почти не замечаю (а это показатель, ещё год назад я бы не решился писать объемный текст на планшете без аппаратной клавиатуры).

Lollipop "живьём", первый день реальной работы, впечатления

(вот так в Lollipop пополняется словарь штатной клавитауры - новое слово в окне редактирования автоматически "подсвечивается", и к нему добавляется кнопка очевидного назначения, на опыте этого текста могу сказать - так удобнее, чем попадать пальцем в ленточную кнопку над клавиатурой)

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

Lollipop "живьём", первый день реальной работы, впечатления

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

Удивившее. Есть и такое. В штатных приложениях Lollipop нет… "галереи". Вообще нет. Ну, нет, так и нет. Оказалось, что потеря невелика. QuickPic никто не отменял (вообще эта утилита заслуживает быть системной, особенно благодаря возможности ограничения списка каталогов, где она ищет файлы изображений, чтобы хлама и визуального шума было меньше).

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

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

В традиционный финальный раздел "польза" и писать нечего пока. До обновления системы я использовал 58 приложений, после обновления их осталось 49. И то, некоторые под сомнением уже. Сокращению за ненадобностью подверглись в основном утилиты, улучшающие "по мелочам" интерфейс. Это само по себе польза. Подождем немного роста пользовательской базы Lollipop (он будет взрывным, потому что многие производители поспешили порадовать своих пользователей довольно неожиданной новостью о поддержке системы и ближайшем выходе обновлений), и новых приложений.

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

P.S. Скорость обновления приложений для новой системы впечатляет уже за один день пользования. Chrome успел обновиться трижды, ещё несколько программ ("привязанных" к различным сервисам) не от Google – по два раза. Похоже, и разработчики заждались "свежего воздуха" и новых волн пользовательской аудитории.

P.P.S. Для нетерпеливых, но не желающих связываться с процедурой "инсталляции с чистого листа" - файлы обновлений (OTA) уже "расползаются" по миру альтернативными каналами.

P.P.P.S. Уже можно подвести и итоги первой продолжительной "вивисекции" (для планшета нетипично продолжительной) - оценить что стало с энергоэффективностью, её обещали задолго до релиза Lollipop. Картина получилась такая (планшет не новый, используется интенсивно, и аккумулятор, соотвественно, тоже):

Lollipop "живьём", первый день реальной работы, впечатления

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

100 дней использования iPhone, немного статистики для разработчиков мобильных приложений

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

Итак, исследование рабочей группы "Mobile Life" Стокгольмского Университета. Группой были выбраны 15 пользователей в Швеции, Великобритании и США. Всего 15, да. Но не спешите морщить нос. В отличие от предыдущих исследований такого рода (а они были ещё во времена, когда в верху списка лидеров в производстве мобильных терминалов ещё значилась Nokia), никаких косвенных оценок (например, по логам приложений) не делалось. Пользователи согласились установить разработанное группой приложение, фиксирующее не просто всё взаимодействие пользователя с мобильным терминалом в видео (записывающее видеокопию экрана при каждой активации смартфона), но и всё "фоновое аудио" (каждое обращение к телефону превращало его в "шпионский диктофон"), для определения контекста, в котором пользователь производил те или иные действия. Степень доверия испытуемых к исследователям была очень высокой, потому что никаких исключений из единого правила не было (разве что пользователи могли запрещать передачу видео и аудио), а люди пользуются смартфонами в том числе и в очень интимных обстоятельствах.

Эксперимент длился ровно 100 дней, за это время были собраны 1695 "образцов" (видеокопий экранов и фонового аудио), при этом всего 62 "образца" были закрыты испытуемыми от исследователей по интимным причинам (более того, даже известно, что пользование телефоном из туалета испытуемые интимным не считали).

Общее время наблюдений превысило 70 часов, средняя продолжительность "взаимодействия со смартфоном" составила 38 секунд, но 10% всех "взаимодействий" можно назвать "продолжительными" - порядка четырёх с половиной минут.

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

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

100 дней использования iPhone, немного статистики для разработчиков мобильных приложений

100 дней использования iPhone, немного статистики для разработчиков мобильных приложений

100 дней использования iPhone, немного статистики для разработчиков мобильных приложений

100 дней использования iPhone, немного статистики для разработчиков мобильных приложений

Вот так 100 дней использовали свои iPhone разные испытуемые из трёх весьма разных стран. И, по моему скромному мнению, эта картина радикально отличается от blah-blah-blah, которое мы все привыкли слушать.

Начнём с общих классов.

Во-первых, вопреки расхожему "смартфон - это уже не телефон", ничего подобного не наблюдается. Де-факто смартфон в основном используется для удалённой коммуникации (о, это удивительное открытие!), разве что сугубо голосовая коммуникация теперь расширена, но вот реальное использование показывает, что доли "интернетовых" (уж извините за грубый сленг) коммуникационных каналов очень маленькие, каждый из трёх гигантов "сетевого общения" (Skype, Hangouts, Whats App) отнимал менее 1% времени пользователей. А вот это уже очень интересно. Это вообще открытие или что? Для меня лично - не открытие. "Чат на ходу" практически невозможен, аудио-видео конференции требуют мало что соответствующих каналов, так ещё и антуража (ну кто будет "общаться по скайпу" по делу из туалета или маршрутного такси, извините), а в большинстве продолжительных периодов работы люди, которым реально нужны такие каналы общения, и так имеют дело с более подходящими настольными компьютерами, лаптопами или, на худой конец, планшетами. Чуда не случилось, короче. Точнее, оно оказалось не чудом вовсе - при эпизодическом обращении к смартфону куда удобнее прочитать письмо электронной почты, чем пытаться в неподходящих условиях общаться в реальном времени. Упс, пользовательская логика, продиктованная реальностью, опять победила :(

Второе место - браузинг. Для меня лично поначалу это показалось удивительным, но потом я внимательно посмотрел на свой давно "расчищенный" от лишнего смартфон, подумал-вспомнил, и вынужден согласиться (как и с преобладающим выбором предустановленного "системного" браузера). Браузинг со смартфона - это быстро что-то "подсмотреть". Иногда. "Иногда" - это всего 19% времени пользования смартфоном. Так как совершенно заранее неизвестно и даже непонятно что именно придётся "подсмотреть" (это очевидно определяется контекстом использования), то и никакие "специализированные приложения" не заменят штатный браузер. Капитан Очевидность бурно аплодирует.  А отсюда следует второй очевидный вывод: хотите завоевать сердца пользователей - делайте хорошие мобильные сайты, и меньше "заморачивайтесь" мобильными приложениями. Хоть вообще не заморачивайтесь - пользователи в своей массе ваших усилий не оценят, потому что каждая лишняя программа - она лишняя.

Вопреки сказкам, соцсети заняли третье место, и с большим отрывом от основного назначения смартфона. 16,3% всего времени пользования - это, я бы сказал, почти ничего, если сравнивать с, опять же расхожими, байками. То есть, усреднённый пользователь не собирается совпадать с образом хипстера "всегда в фейсбуке и инстаграме". Категорически не собирается этого делать. Да, он бывает и там, и там, но точно не собирается посвящать этому свою жизнь :)

"Продуктивность и администрирование". Смешной раздел. И вот он подсказывает область неувядающего спроса для приложения сил программистами. Как ни странно, но настройки смартфона отнимают у пользователей больше времени, чем просмотр видео и слушание музыки суммарно :( Это катастрофическая новость. Разрушающая, можно сказать, устои. И отражающая реальное "совершенство платформы". В общем, делать людям удобнее, "затыкая дыры" в проектировании мобильных ОС и приложений - настоящее альпийское пастбище.

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

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

Игры и "фотачьки" на деле отнимают меньше 2,5% пользовательского времени. Ах, эти встроенные в смартфоны камеры с 21-мегапиксельной матрицей! И прочие "навороты". Поверьте, я сам фотографирую изредка в инстаграм, и здесь не всё так очевидно ©

Ну и какие выводы из всего этого можно сделать?

Во-первых, для мобильных терминалов до сих пор нет такого сервиса и механизмов общения, которые бы "ах! всегда! всем!". Ну нет их, и точка.

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

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

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

В общем, это всё.

Кому интересен оригинальный документ - поищите его в материалах ACM, "100 Days of iPhone Use: Understanding the Details of Mobile Device Use", авторы - Barry Brown, Moira McGregor, Donald McMillan Mobile Life @ Stockholm University

P.S. Пожалуйста, прежде чем написать в комментарии "а вот я...", подумайте хорошенько, что все мы очень разные, и если специалистами проводятся какие-то исследования или эксперименты, на стыке социологии и технологий, они не "от балды" организовываются и планируются. Да, любой из нас в каком-то смысле "исключение из правил". Но это никоим образом не означает, что правил вообще не существует. Если средний размер мужской ноги в США - 43, а в Китае - 41, не стоит пытаться опровергнуть эти факты своим 46. Увы, это так, и справедливо.

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 2

Продолжаем, в первой части было о "пионерах энергетики 2015", и советую обратить внимание там на две крайне интересных компании - AutoGrid Systems (живой учебник Big Data и IoT) и Cambrian Innovation (совершенно фантастические биоэнергетические разработки у них, мы уже живём в будущем).

Теперь категория "здоровье и медицина".

Компания Guardant Health. Уникальный неинвазивный метод, основанный на генетическом анализе крови (я могу немедецински выражаться, не специалист), и позволяющий диагностировать и наблюдать за протеканием онкозаболеваний без обязательной биопсии. Компания принимает 2 образца проб крови, и за 2 недели выдаёт расширенный клинический отчёт с рекомендациями лечащим врачам и прогнозами. По-моему, сомнений в том, почему Мировой Экономический Форум высоко оценил эту компанию, быть не может.

HealthCatalyst. Это опять гибрид Big Data, IoT и аналитики, но строго медицинского назначения. Продукты компании "перекрывают" все подсистемы, обеспечивающие функционирование больниц и лечебных учреждений на основе цельной концепции "позднего связывания данных и реализованных алгоритмически бизнес-правил" (советую почитать описание концепции, оно интересное).

Organovo. Если кто хочет прикоснуться к овеществлённому будущему - это как раз для них. Компания занимается "3D-печатью" функционирующих живых тканей человеческого тела для исследований и в терапевтических целях. До уровня "производства" ей ещё далеко, но над технологией первой в мире коммерческой платформы 3D биопечати они работают очень всерьёз и обещают "печать" тканей печени уже в следующем году. Похоже, что им верят не только эксперты Мирового Экономического Форума, но и инвесторы и держатели акций (которые дорожают, несмотря на сугубо затратный период в работе компании). Очень интересная компания и совершенно удивительная адаптация в том числе и программных механизмов управления процессом 3D печати (партнёр - Autodesk) к нуждам медицины.

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

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 2

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

Медицина из списка закончилась. По логике, если есть энергия и здоровье, человек заботится о доме. "Домовитые" компании забыты не были. Итак, домашняя автоматизация.

Компаний, занимающихся таким, тьма. Но выбор экспертов Эконмического Форума очень интересен. Компания SmartThings, в отличие от многих, не предлагает централизованных "сервисов-насосов", за которые надо платить ежемесячно. И не предлагает огромной продуктовой базы всяких узлов "умного дома". Их продукт - ZigBee интернет хаб всего за $99 и мобильное приложение. Всё прочее - наборы для развёртывания, дополнительные каналы оповещений и прочее, - или выбор из предлагаемого их же интернет-магазином, или свободное творчество заказчика. Говоря проще, неявный лозунг SmartThings - "мы ничего вам не навязываем, не наблюдаем за вашим домом, не храним данные о вашей жизни, не требуем постоянных выплат, но за это вы или кто-то вами нанятый должен немного потрудиться, и мы никак и ничем не ограничиваем вашу фантазию". По моему скромному мнению - единственно правильное предложение на рынке smart home.

Если у человека есть в достатке энергии, он спокоен за своё здоровье и ему уютно в его доме, ему хочется развлечься :) Итак, entertainment.

Есть и такое в списке "пионеров 2015", причём настолько яркое, что люди впечатлительные и с воображением сейчас будут биться головами о всякие твёрдые предметы и кричать "почему не я?!". Я предупредил. Всего одна компания удостоилась чести быть признанной Всемирным Экономическим Форумом, но какая.

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

AVEGANT. Вы же видели наушники с оголовьем? Пользовались ими? И миллионы видели и пользовались. А в AVEGANT придумали в оголовье... установить микродисплеи. И сделать оголовье поворотным относительно амбушюр. И получился wearable компьютер, который можно использовать как музыкальный плейер когда надо смотреть вокруг, и как видео-аудио плейер - когда не надо. Кажется, этому можно придумать море применений, кроме entertainment, компания только начинает "входить во вкус", предзаказы на Glyph уже можно оформлять.

Технические характеристики Glyph выше всяких похвал (только стерео проекционный микродисплей с разрешением 1280 x 720 для каждого глаза, по сравнению со скромными моноклями прочих wearable - это уже прекрасно), и, что главное, - устройство и выглядит совершенно привычно, без киберпанковских штучек (кто не видел людей в наушниках и кого они удивляют), и его невозможно отнести к классу "непрерывно раздражающих":

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 2

В общем, если у перспективных междисциплинарных энергетиков и медиков можно поучиться пониманию Big Data и IoT, то у AVEGANT можно учиться "креативному мышлению" (если такому вообще можно научится).

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

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

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 1, энергетика

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

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

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

  • "умных энергосетей" (smart grid), это фактически междисциплинарная область, микс из классической и неоклассической энергетики и IT;
  • "социальных персональных микросетей" для развивающихся стран;
  • биотехнологическом;
  • преобразования энергии возобновляемых источников.

Умные энергосети, smart grid, здесь "пионером 2015" объявлена компания AutoGrid Systems. Её область - системы оптимизации и управления энергетическими сетями, адаптивные и самообучающиеся на основании запросов потребителей (DROMS, Demand Response Optimization and Management System):

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 1, энергетика

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

На стыке энергетики и социального работает компания совершенно других масштабов и целевой направленности. Если в мире "золотого миллиарда" масштабы энергетических сетей представляют собой уже гуманитарную проблему, то в мирах развивающихся стран сам доступ к энергии - гуманитарная проблема. Индусы, Mera Gao Power. Разработали, производят и развёртывают за день микро энергетически сети (масштаба хутора, грубо говоря), со стоимостью развёртывания порядка $900 на деревеньку. Используют все возможные преобразования возможного в энергию. Замечательный технологически-гуманитарный проект, по достоинству оцененный.

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 1, энергетика

Биотехнологии в энергетике. Cambrian Innovation. Выходцы из MIT, довольно молодая компания, опять же мультидисциплинарная, но их главное "всё" - прямые генераторы электро- и тепловой энергии из загрязнённой воды, на основе интересного биологического явления "электрометаногенеза". Использование генетически модифицированных электроактивных бактерий (экзоэлектрогенов) позволяет Cambrian "утрамбовывать" в габариты обычного контейнера автономную электростанцию с мощностью в диапазоне от 30 до 200 киловатт. Очень интересная компания, особенно для сельскохозяйственных стран с развитым животноводством.

Вторая компания в этом сегменте занимается прямым производством из отходов. Newlight Technologies. Их технология - переработка парниковых газов в пластик:

24 технологических "пионера 2015", версия Мирового Экономического Форума, часть 1, энергетика

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

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

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

Воз, который всё там же, или wearable 2014

Если присмотреться к происходящему, можно заметить, что идея wearable вычислителей фактически поглощена теряющей на глазах очертания и смыслы аббревиатурой IoT. Ясности этот факт не добавляет что "IoT", что "wearable". Теперь почти никто ничего не понимает. Заодно и подозрительно стих ажиотаж вокруг первых потенциальных образчиков wearable. И это не очень хорошо. Попробую разобраться, насколько способен.

Изначальная идея wearable вычислителя закодирована в его названии и не изменялась очень долго, по крайней мере, новой внятной идеи никто миру не предлагал.

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

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

Если мы говорим об "элементе одежды", мы уже подразумеваем некоторую функциональность. Фундаментально одежда расширяет возможности нашего тела, что позволяет выживать в неидеальных климатческих условиях, например. Если бы не было основной функции одежды - удержание у тела слоя воздуха и снижение теплообмена, - не было бы и постоянно появляющихся синтетических материалов, позволяющих телу одновременно "дышать" и не терять тепло (Polartec Windbloc, например, etc), не было бы востребованности одежды из этих материалов, да вообще не было бы одежды, она принципиально не нужна (а принятие обществом наготы как нормы - просто гибкий вопрос этики). Ещё раз, для подчёркивания важности "открытия" (банальности слишком часто кажутся новизной) - фундаментальной функцией одежды (wear) является расширение возможностей человека в выживании в разных климатических условиях. Нефундаментальные функции тоже есть. Тут диапазон куда шире. От принадлежности к социальной группе (классу, сословию, вплоть до должности) до самовыражения, что бы это слово не значило. Мне почему-то кажется, что если нацеливаться на что-то, для чего слово "wear" является корнем, забывать о таком очевидном будет крайне неразумно. Или же разумно, если речь идёт о чём-то, что к одежде не относится вообще, потому что не может к ней относиться.

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

Воз, который всё там же, или wearable 2014

Теперь и очевиден вопрос, - чем, собственно, должен принципиально отличаться wearable-компьютер от декоративных (не фундаментально функциональных) элементов одежды, кроме стиля, - и ответ на него:

фундаментальной функциональностью, расширяющей возможности человека-носителя

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

Дальше я буду писать, исходя из принципа "because we can". Он единственно верный при разговоре о "фантастике, реализация которой уже принципиально возможна" (а wearable компьютеры до сих пор соответствуют этому принципу).

Теперь пора посмотреть на канонический концепт wearable компьютера (специально привожу некоммерческий образец, это личная разработка человека уже легендарного в мире wearable, Стива Манна):

Воз, который всё там же, или wearable 2014

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

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

Хорошо, пусть традиционное реальное расширение возможностей зрения разработчики wearable подменяют расширением возможности "визуально помнить всё". Но тогда куда интереснее действительно "помнить всё", особенно невидное даже периферийным зрением. Хотя бы просто потому, что мы это можем. Так где wearable, позволяющие сохранять панорамную круговую съёмку, например (камеры для такого есть как товар, и в количестве)? Не вижу таких. Даже концепции их не вижу.

Это был "на пальцах", поверхностный анализ реальных возможностей расширения зрения. И визуальной памяти.

Второй канал - слух, конечно. Мы слышим далеко не так хорошо. И в узком диапазоне частот (ультразвуки, конечно, очень сильно затухают в воздухе с ростом частоты, но до 200 KHz где-то "слышать" вполне реально). Расширение чувствительности, направленности и частотного диапазона слуха - очевидные возможности wearable. И где же они в реальных разработках? Не вижу. И не слышал о таком.

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

Что же происходит сейчас, в самом начале hype-волны (ни одно начинание в современной IT индустрии уже не обходится без hype, это осбенность времени сверхбыстрого распространения информации) с этими самыми загадочными wearable?

Реально ли они расширяют наши возможности? У меня есть сомнения. Массовое увлечение "wearable для фитнеса" (есть такой класс, он теперь в моде) - он об устройствах, на деле не намного расширяющих возможности обычных наручных часов (и силы воли, конечно). Что 20 минут джоггинга по часам, что 20 минут джоггинга с учётом шагов и маршрута на карте - результат один и тот же: это 20 минут джоггинга :(

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

Но я прекрасно понимаю, что "wearable для фитнеса" очень просты в разработке и производстве, и фактически не требуют каких-то исследований. Потому они пока и "в фаворе" - идёт первичный "съём сливок" с хорошо взболтанного hype рынка.

Есть ещё очень медленно растущий медицинский сектор. В нём всё очень медленно (из-за крайне строгих, дорогих и долгих процедур сертификации). Это специализированное, о нём лучше не говорить вообще.

И, собственно... И всё. То есть, сегодня мне rss-фиды приносят по 50 заголовков со словом "wearable", и за всей этой бурей практически ничего расширяющего человеческие возможности нет.

Как бы подводя итоги, и чтобы было легче разбираться в событиях и анонсах.

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

Всё, что называется wearable - это о расширении возможностей человека.

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

Точка.

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

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

Шутка с рабочей станцией в кармане. И первая "драка" в IoT

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

Начну издалека. В конце 1960х годов в Массачусетском Технологическом на деньги ARPA (Advanced Research Projects Agency), минобороны и министерства энергетики США всерьёз занялись машинной алгеброй – системами символических вычислений. Оригинальная идея принадлежала Марвину Мински. Из этих исследований возникли несколько знаменитых сегодня коммерческих систем (до сих пор не изменивших названия, например, Mathlab). Такой системой является и Macsyma (Project MAC’s SYmbolic Manipulator), первоначальным автором которой был Джоэл Мозес. Уже в 1963 году существовала программа символьной интеграции (SAINT), но, естественно, она была далека до совершенства. В то время символьные вычисления ещё не были вынесены в отдельный раздел «computer science» и относились к искусственному интеллекту. Кто интересуется историей IT, должен уже сообразить, что в основе всего этого был тогда считавшийся «языком ИИ» знаменитый Lisp, и до сих пор эта технологическая основа Macsyma остаётся незыблемой. В 1968 году была создана архитектура ядра системы, через год появился работающий код, причём «обкатывался» он на той самой DEC PDP, которая стала одним из первых хостов ARPANET. Потом система развивалась в среде ОС Multix, и длилось это очень долго, до 1980-х годов. Тогда появились доступные (по меркам времени и организационных структур) VAX’ы, систему портировали в ОС Unix, вместе с этой ОС пришла и «форк-культура» (да, это было в ещё в 80х), появились независимые её ветки – Macsyma, Maxyma, Paramax, Aljbar, Vaxima. В это же время система стала «расползаться» по университетам, потом в её истории был период неудачной коммерциализации, ею занимались очень яркие специалисты, буквально «волочили её на себе» до последних своих дней, она обрастала разнообразными прикладными пакетами, приобретала новые подсистемы, в общем, жила своей жизнью. И живёт (за этот год – 4 релиза), у неё есть обширный круг пользователей и в наши дни, она портирована во все ОС, по ней море учебников, документации, статей. И, наконец, она добралась до ОС Android. Хоть порт для Android и специфический (представьте себе – система с почти 50-летней историей, исполняющаяся «железом» и ОС, о которых не могли и мечтать её авторы), но он обозначает некий новый виток в жизни системы. Потому что именно в нём наконец результаты вычислений отображаются не традиционно трудночитаемо на алфавитно-цифровом терминале, а так, как положено в математике (опытные пользователи Unix-систем знают возможность как добиться такого, но это далеко не так удобно и просто). В общем, сейчас, в карманном варианте, это даже трудно сказать что, я бы назвал карманную версию «гиперкалькулятором», но язык не поворачивается так поступить, хотя никто не запрещает систему именно так и использовать.

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

Итак, Maxima for Android, спасибо японцу Ясуаки Хонда. Программа устанавливается в 2 этапа – собственно почти 30-мегабайтный apk-файл после инсталляции загружает ещё 14+ MB «сутевой части», этот архив разворачивается в почти 90 MB (так что оценивайте возможности ваших устройств перед установкой).

Для использования этой программы рекомендую бесплатную клавиатуру Hacker’s Keyboard, совершенно не обязательно пользоваться ею всегда (для быстрой «писанины» куда лучше свайп-клавиатуры), но в этом случае она очень полезна. Для быстрого переключения между клавиатурами очень советую этот крохотный бесплатный виджет (он экономит море лишних раздражающих движений, совершенно гениальная мелочь, не утрачивающая актуальности с версии Android 2.3) - Switch Keys.

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

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

 
Попробуем выполнить самый простой «калькуляторный» пример, найдём сумму двух дробей, 1/100 и 1/101, посмотрим, что получается и разберём пример «по косточкам». Вводим первую «задачу» по принципу «как слышим, так пишем», но завершаем точкой с запятой: 1/100 + 1/101 ;

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.
 
Точка с запятой – первый важный, условно говоря, «командный символ». Который можно и не использовать, Maxima (или Macsyma, как больше нравится) подставит его автоматически. Его назначение – указание системе вывести результат на экран. Если этого не требуется, строку следует завершить символом $.

Обратим внимание на выделенные зелёными прямоугольниками взятые в скобки похожие на «приглашения» командной оболочки строки формата (%i число). Это важные элементы взаимодействия с системой, по сути – имена переменных, которые система автоматически присваивает каждому «акту» взаимодействия с пользователем. Символ «i» в этих строках указывает, что это «ввод» (input), каждой введенной пользователем строке система ставит в соответствие неотображаемый в «мобильной» версии такой же идентификатор, с символом «o» вместо «i» (то есть, за %i1 следует невидимый идентификатор %o1, и так далее). Все эти идентификаторы могут использоваться в системе «на равных» с любыми прочими, укороченная форма (просто «%») означает результат последней выполненной команды.

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

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

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

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

Целые числа в системе – произвольной точности, и если кто-то хочет по-настоящему устать «скроллить» экран, может попробовать, например, выполнить такую команду: sum (1/x^2, x, 1, 10000); И насладиться дробью с числителем и знаменателем кошмарных значений (пользователям слабеньких нонейм Android устройств не советую этого делать категорически; а функция sum делает вполне очевидное – находит сумму переданной ей первым параметром функции, по указанной вторым параметром переменной, в диапазоне значений переменной от третьего до четвёртого параметра, это вычислительно-символическая функция, она, грубо говоря, «считает если это возможно», в противном случае порождает символический результат):

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

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

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

Начнём с простого утверждения – для некоторых чисел «a» и «b» всегда есть такое «с», для которого выполняется равенство a+b=c. Его мы вводим по принципу «что видим, то и пишем» (на снимке экрана - идентификатор %i1):

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

Никто не запрещает нам одновременно умножить левую и правую части равенства на a+b, равенство от этого не изменится. Заодно «раскроем скобки» командой expand (идентификатор %i2). Синтаксис записи этого выражения вполне очевиден, если не забывать, что % - идентификатор последнего полученного результата.

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

Теперь добавим к левой и правой частям равенства то, что записано в строке ввода %i3. Обратите внимание на синтаксис этой записи, он демонстрирует полную свободу использования идентификатора %, единственный оператор «+» в записи является бинарным, то есть, слева и справа от него - операнды.

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

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

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

Теперь можно разделить обе части равенства на (c-b-a) (строка %i5), прибавить к левой и правой частям a (строка %i6) и получить что требовалось доказать:
b+a = 0

Шутка с рабочей станцией в кармане. И первая "драка" в IoT.

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

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

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

Кажется, уже пора поговорить о чём-то совсем другом. Есть такой известный парадокс – несмотря на появление всякой компактной и мощной вычислительной техники, популярность легендарных программируемых калькуляторов Texas Instruments почему-то никуда не девается, их никто не снимает с производства, а стоят они как пристойный, например, планшет образца этого года (TI-89, например, порядка $150). Больше того. Кто-то видел уже снятые с производства, например, планшеты, которые стоят дороже новых? В мире программируемых калькуляторов TI это норма, культовые «аппараты» вроде TI-92 – это уже где-то $300 (цена Amazon), и их, трудно поверить, раскупают. И что может значить само формирование культа калькуляторов TI, а он ведь есть – целые клубы «фанатов», тематические сайты, сообщества, форумы, что угодно есть в загадочном мире этих загадочных калькуляторов.

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

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

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

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

 Из забавного, «пятничного». Есть такая компания, FTD Chips, она производит довольно дорогие (по меркам компонентного рынка) USB-микросхемы (самые «ходовые» - конверторы USB в RS232), ориентированные на производителей с малыми и средними объёмами продукции. Микросхемы хорошие и очень популярные (потому что очень облегчающие жизнь разработчикам). Настолько популярные и недешевые, что китайские мастера подделок давно и успешно создали целую индустрию FTDI fake'ов (по сообщениям некоторых пользователей, до 90% приобретённых ими через ebay микросхем и «полуфабрикатов» на их основе - подделки). И тут наступил черный день. Очередное обновление USB драйверов FTDI Windows теперь «убивает» (сбрасывая идентификатор устройства в ноль) fake микросхемы, исключая их использование из ОС семейства Windows старше XP (в XP требуются определённые «фокусы»), и «наивное» использование из семейства Linux (без определённых манипуляций с системой). В итоге пострадали пользователи… неисчислимых клонов Ardiuno. Забавная история. Эпоха IoT ещё толком и не началась, а войны на самом низком, компонентном уровне, уже начались. А также историю можно вносить в списки ярких иллюстраций обратной стороны популярности при работе в условиях повышенных рисков в «длинном хвосте».

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

 

2. «Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

Чтобы позволить себе любую экстраполяцию (она была обещана в первой части записи), надо хорошо разобраться с действительностью. В первую очередь, с тем, что нового приносит Android 5.0 Lollipop.

Если кратко, и не обращая внимание на море всяких мелочей, которые никто пока не в силах перечислить:

  • большое расширение API (более 5 тысяч новых вызовов);
  • начальное изменение модели мультизадачности (переход от переключения активных приложений к переключению «документов») и сохранение состояния переключателя между задачами после выключения-включения устройства;
  • «кросс-экранный» дизайн (Material design на деле не только и не столько соглашение о цветах и формах, сколько подлежащие механизмы, обеспечивающие единство интерфейсных элементов для устройств с принципиально отличающимися диагоналями экранов);
  • уточнение компонентной модели системы с вынесением ключевых компонентов в отдельно поставляемые традиционными для Android механизмами распространения ПО (например, компонент WebView, отвечающий за рендеринг html со всем сопутствующим, с приходом Lollipop становится приложением Play);
  • усовершенствование системы безопасности (на системном уровне – SELinux, двухфакторная авторизация при инсталляции, пользовательский механизм блокировки сброса и очистки устройства до заводских установок, режим «только одно приложение» – для безопасной передачи устройства другим лицам во временное пользование);
  • замена Java-машины Dalvik (и «срабатывающего» каждый раз при запуске приложения JIT-компилятора, соответственно) на ART (фактически – компилятора в «нативный код» конкретной платформы, срабатывающего один раз, во время инсталляции), что даёт в среднем 2х-кратный прирост производительности (за счёт некоторого увеличения расхода долговременной памяти, конечно), введение дополнительных (и очень рациональных) режимов энергосбережения.

Добавим к этому «набору» уже всем известное – заявленную поддержку Chrome OS приложений Android, расширение возможностей использования этих приложений за пределами Chrome OS, везде, где есть браузер Chrome, а также серьёзное расширение экосистемы Android за счёт традиционно бытовой техники (Chromecast, Nest, etc).

Теперь всё «тактическое» как на ладони (больше деталей будет, когда появятся овеществления Lollipop, пользователей Nexus 7 II WiFi по слухам «империя добра» осчастливит совсем скоро, 3 ноября).

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

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

Традиционно «пунктом А» были «большие машины», «пунктом Б» - малые. Так двигалась ОС Unix (от «малых ЭВМ», через рабочие станции к embedded-вычислителям и смартфонам), точно такое же движение прошла ОС NeXTStep (её модификации называются Mac OS X и iOS). Даже ОС Windows в каком-то смысле проходила этот путь (для интересующихся стариной – проект Pegasus, «усечение» только появившейся Win32 до возможностей носимых устройств того времени). Почему так было – понять несложно: компонентная база тех времён не позволяла создавать компактные, с батарейным питанием, носимые вычислители сколь-нибудь пристойной для пользовательских применений производительности. Массовый вычислитель из-за ограничений технологической базы был сначала напольным, потом – настольным. Его массовость определяла и приток разработчиков ПО во всём диапазоне, от системного до прикладного. «Настольный» рынок рос с огромной скоростью, в нём было движение денег и сил. Следствие этого периода – доступная вычислительная мощь (например, мой далеко не новый Core i5 показывает 67 GFLOPS, это примерно половина вычислительной мощности единичных суперкомпьютеров середины 90х годов) и громадная база ПО. Но есть и латентное следствие. Крайне неприятное. Это разросшееся до большой проблемы правило 80/20. В контексте допускающее много вариаций, например – востребованные восьмьюдесятью процентами пользователей задачи не требуют и 20% доступной вычислительной мощности. Или, если его реверсировать, «что бы придумать такое, чтобы оно было востребовано 80% пользователей и использовало 60% невостребованной мощности?». С ответом на этот вопрос дело обстоит далеко не так хорошо, как кажется. И уже очень давно, это вовсе не новый вопрос. Он становится неприятнее с каждым годом, потому что дальнейшее повышение вычислительной мощности даётся с каждой технологической итерацией всё труднее и дороже. И тут одновременно появляются и элементная база, и компании новой волны, и переориентировавшиеся старые, выбравшие «пункт Б» отправным. И цикл развития технологий повторяется – в «мобильное» бросились все. И теперь всё «мобильное» с завидным упорством повторяет в точности то, что происходило с «настольным»: производительность и инфраструктура ПО растут как грибы, вместе с программистской массой.

Только вот в какой «пункт С» идут компании новой волны? В первую очередь, Google, потому что теперь она (нравится ли это кому-то, или нет) является системообразующей в мобильном мире. Вроде как в сторону wearable. Но это процесс, как оказалось, очень небыстрый. А вдруг… они замыкают путь в цикл? Почему нет? Длительное затишье в «настольном» мире, неспособность Linux занять достойную нишу полноценной альтернативной системы, многолетнее отсутствие новых игроков, мягко говоря странное поведение признанных авторитетов. Речь идёт не о материализации концепции Sun – «сетевых компьютеров», это как раз уже сделано, Chrome OS уже вполне работоспособна и, с появившейся поддержкой локального исполнения приложений Android, ещё и «оснащена killing feature». Речь о вполне полноценной «десктопной системе». Когда-то та же Sun пыталась её создать, причём на той же технологической основе, это называлось Java Desktop.

Android уже работает на ключевых 64-битовых платформах – x86 и ARM? Работает, это факт. Верхний предел диапазона экранных разрешений Android-устройств уже соответствует экранным разрешениям «десктопов»? Соответствует, это тоже факт. Архитектурно система во многом превосходит «настольные» – во-первых, она существенно «моложе», и потому построена с учётом предыдущего опыта (не сомневайтесь в этом, системой занимаются крайне неглупые и очень опытные люди) и с использованием приёмов, недоступных в системах с долгой историей (полная виртуализацию userspace, например). Это спорное утверждение, конечно, но всё же что-то в нём есть, чтобы полностью его не отметать. Развивается система с реактивной скоростью, что безусловно доставляет неудобства прикладным программистам, но и свидетельствует о пригодности её архитектуры к такому развитию (разве это не факт?). Параллельно с этим развитием идёт развитие периферии – она становится куда более умной и даже часто с «облачной» поддержкой, что фактически «выносит» из архитектуры системы громадные зависимые от множества факторов и участников IT-рынка фрагменты (одна подсистема печати чего стоит, а ещё есть персональные файловые накопители, которые были HDD и USB-устройствами, а стали тонкими серверами, и вместо громадного дополнительного стека в ОС для них требуется тот же сетевой стек, что и для всего прочего).

Так вот я это всё к чему. И оно касается не только Android, похоже, и Apple движется в том же направлении с iOS. Оснащённые устройствами точно позиционирования курсора все эти планшеты-фаблеты при подключении к экрану с большой физической диагональю вполне могут стать… да, именно что рабочей станцией. Кто и что запрещает? Больше того. При виртуализации пользовательского уровня и соответствующем развитии среды исполнения (ART это будет называться или нет, не важно), никто ведь не запрещает мгновенной «миграции» приложений из мобильного устройства в «большой вычислитель», ведь правда нет никакой разницы где и для какой целевой платформы один раз компилировать «на лету» приложение при его инсталляции? Да, есть нюансы с пользовательским интерфейсом, но пока никто не решился называть их «нерешаемыми проблемами».

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

Здесь же ещё надо учесть кто и с каким «багажом» чем занимается в той же Google. Создатели ОС Plan 9 и Inferno, например. ОС, сильно обогнавших своё время и возможности UI своего времени, системы  сетевых рабочих станций, по сути способные «объединять» гетерогенные аппаратные ресурсы в единое целое с помощью простейших абстракций – пространства имён и файловой системы. ОС Inferno вообще удивительно похожа архитектурно на… Android. В ней та же виртуализация userspace (и виртуальная машина Dis – она тоже регистровая, как и Dalvik), например, и где сейчас её «отцы»? Кен Томпсон – заслуженный инженер Google, Роб Пайк – в Google, Шин Дорвард – в Google, Девид Пресотто – в Google, практически весь состав знаменитой Bell Labs, который работал над Inferno, – в Google. И в 2005 году Google выбрала в качестве покупки именно Android Inc, располагавшую тогда чем-то секретным, но удивительно похожим на «ОС Inferno, не обгоняющую время и более потребительскую на уровне UI». То есть, с одной стороны внутренние в Google симпатии к определённым архитектурным идеям – они не тайна, с другой стороны – эти архитектурные идеи никак не ограничивают область своего применения. И, наконец, с третьей стороны, «империя добра» более чем агрессивна и амбициозна.

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

Ко всему вышесказанному, есть ещё один очень интересный и очень плохо видимый (но не латентный) фактор. IoT, Internet of Things. Почему-то все с завидным упорством забывают, что появление колоссального количества датчиков и актуаторов в единой, пусть даже совершенной и идеальной, среде межмашинных коммуникаций (M2M) на базе самых замечательных единых протоколов, означает и взрывной рост требований к… тем же рабочим станциям. Колоссальные потоки данных нужны не только машинам, вот в чём проблема. И для их анализа и работы с ними, скорее всего, нужны рабочие станции нового поколения. Такие, которых ещё нет. Возможно, как раз такие, которые были задуманы создателями Plan 9 и Inferno (ну, разве что с другим, современным уровнем UI). Более чем возможно, потому что ничего более вразумительного даже на уровне идей нам никто пока не показывал. Если это предположение верно (явных опровержений его не вижу), то мы увидим настоящую Битву.

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

Теперь о пользе.

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

Тут и рассказывать особо нечего. Просто маленький синергетический эффект, но с отличными результатами.

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

2. «Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

Таких правил у меня пять (это не принципиально) – для изображений, .pdf и .djvu файлов, архивов, электронных книг в формате epub, медиафайлов. Auto Move «раскладывает завалы» из каталога Downloads по соответствующим подкаталогам, скажем, традиционно названного каталога 0day. А вот этот каталог синхронизирован с «большой» машиной с помощью Bittorent Sync. В итоге - всё на своих местах, и со всем можно обстоятельно разобраться что на планшете, что на «большом» компьютере. Это вроде как мелочь. Но на удивление удобная и полезная, особенно тем, кто, как и я, не понимает зачем в носимых устройствах много долговременной памяти (я действительно этого не понимаю) и не любит раздувающихся «мусорных свалок».

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

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

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

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

Китайская компания Shenzhen Alldo Cube, «спрятанная» за более известного своего же дистрибьютора своей же продукции Cube-Tablet, анонсировала очередной планшет и даже объявила на него предзаказ.

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

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

Восьмиядерный 64-битовый чипсет, 7-дюймовый IPS-экран с разрешением 1920x1200, двухчастотный Wi-Fi (то есть, 802.11ac присутствует), Bluetooth 4.0 (что значит – 4.0 LE тоже есть, «в комплекте»), полный набор «сотового» - 2G/3G/4G. Прочее де-факто стандартное перечислять не буду, только упомяну самую пока «свежую» версию Android (4.4.4) и уже объявленную цену - $210 (заводская цена - $145 в партиях от 2х тысяч штук).

Не берусь судить о качестве всего этого в целом, Cube, в принципе, действительно неплохой производитель, и если под давлением A-брендов они уже не играют себестоимостью «по мелочи», разделяя встроенную флэш-память на маленькую быструю и большую медленную, то должно быть действительно очень неплохо. Тем более не берусь судить о рациональности 64-битовости, - если Cube традиционно не выпустит 64-битового обновления ОС, будем считать модель «тренировкой на котиках» и «обкаткой». Меня больше интересует сочетание характеристик и ценовой диапазон. По-моему, это первый 64-битовый фаблет (семидюймовые планшеты уже почти и не планшеты, время такое) с подобными характеристиками и в ценовом диапазоне «$200-$250». И сформировал это сочетание не A-бренд, а, в общем, далеко не гигантская китайская компания.

В то время, как китайские производители, насыщающие в первую очередь свой необъятный (но не такой платёжеспособный как США и ЕС) рынок, воюют за бюджетность, сама Google новой волной линейки Nexus резко меняет курс. Теперь Nexus’ы задают тон в верхнем ценовом сегменте. При этом «штурмовики рынка» предыдущих поколений со счетов не сбрасываются, и радуйтесь, владельцы даже Nexus 7 первой модели – Lollipop у вас будет, как и у пользователей Nexus 4, 5 и довольно редкого 10. Тотальное «программное обновление» ждёт практически всех.

Это, к слову, очень рискованный для Google шаг, потому что предыдущие поколения Nexus ещё не утратили актуальности и их владельцы расставаться со своими устройствами пока не спешат. Я не голословно заявляю об этом – если посмотреть на результаты голосований заинтересованной аудитории, можно заметить в комментариях повторяющееся «у меня уже есть Nexus, и если будет Lollipop, нового мне пока не надо».

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

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

Итого, Android 5 (Lollipop) и 64-битовость. Что это значит сейчас – один вопрос, куда интереснее вопрос «что это может означать в будущем».

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

Начнём с ограниченной точности позиционирования, о ней лучше говорить как о «чудовищной неточности». Если учитывать площадь касания пальца (не из «наставлений для разработки UI платформы», а изученную физиологами) и разрешение/диагональ «де-факто стандартных» экранов, для 7-дюймового планшета получим размер в пикселах «неразрешимого пятна» порядка 127x127, с поправкой на большую пользовательскую аудиторию и популярность планшетов у немолодой её части (с уже не такой хорошей мелкой моторикой), до 178x178. Это очень много по сравнению с традиционной «мышкой», чудовищно много.

С другой стороны, высокое разрешение экрана при небольшой его физической диагонали без сомнения улучшает общее качество отображаемого контента, но сомнительно обеспечивает рациональность использования мелких деталей интерфейса – да, усредненный «невооружённый глаз» может различать на усреднённо же нормальной дистанции чтения объекты размером 0,12 мм (15 пикселов при разрешении 127 пикселов на сантиметр или 1920x1200 для 7-дюймовых экранов), но площадь касания пальцем полностью лишает смысла возможность отображения таких «мелочей».

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

С четвёртой стороны, пока не наблюдаются носимые устройства с такими объёмами оперативной памяти, при которых 64-битовость существенна.

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

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

Редко позволяю себе экстраполяции, но тут такой случай, когда удержаться трудно. Экстраполяция будет в следующей записи, tbc.

Теперь о пользе.

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

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

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

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

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

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

Чтобы не быть голословным, постараюсь показать снимками экранов о чём идёт речь.

Я расставил виджеты в пространстве 3x3 (по-моему, оно ещё разрастётся, аппетит приходит во время еды), нижний ряд в этом пространстве – новостные источники, средний с главным «рабочим столом» - «самое востребованное», верхний – «записные книжки». Для двух ориентаций планшета (важный нюанс работы на экранах с пропорциями 16:9 и 16:10) картина выглядит так:

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

 

Виджеты и прочие элементы интерфейса реально работоспособны, например, календарь при касании делает именно то, что должен делать:

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

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

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

Точно так же в режиме обзора доступно и переключение между задачами с помощью упомянутой в прежней записи утилиты Fancy Switcher:

«Леденец», 64-битовость, премиум-сегмент – Рубикон перейден, что дальше? А также мелкие полезности

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

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

Что же касается настроек для достижения всего этого. Некогда Lightning Launcher требовал для полноценной настройки вычислений «с калькулятором», сейчас этого не нужно. Просто включить в меню программы режим эксперта, потом Dual Position и выставить размер шага сетки для двух ориентаций (или вообще свободное позиционирование). Lightning Launcher позволяет настроить чуть ли ни что угодно как угодно, но прагматизм мне не позволяет углубляться в бездны настроек, я просто получаю то, чего от него хотел, мне этого хватает с избытком.

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

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

«Ни цента не жалко» – платные приложения для Android-планшета, моя версия

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

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

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

Для уточнения – речь идёт о программах для планшетов с диагональю экранов 7 и 9 дюймов, после появления компактных и качественных «7дюймовок», которые прекрасно помещаются во внутренний карман пиджака и куртки, к смартфонам я полностью охладел и постепенно «очистил» телефон до состояния «голая система». Это тоже субъективно – и не хочу портить себе зрение и нервы маленьким экраном, и не считаю удобным таскать с собой всегда, а не когда мне нужно, близкий по размерам к планшету смартфон-«лопату». И вообще предпочитаю отдельные устройства (с автономным питанием), потому что если мне нужен mp3-плейер, когда я катаюсь за городом на велосипеде, мне не нужен большой экран, а если нужен большой экран, когда читаю, то и mp3-плейер я получаю «в нагрузку»; в машине мне не нужен отдельный GPS-навигатор, потому что он в машине есть свой, вне машины городской GPS-навигатор мне нужен так редко, что каждое его использование отмечается в памяти, а туристический навигатор, водо-ударостойкий и работающий от двух батареек сутки, не заменяется ни смартфоном, ни планшетом, и т.д. и т.п. Этого я никому не навязываю, это личное, и из-за этого личного действительно хорошие приложения хуже не становятся.

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

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

SimpleMind. Это майнд-маппер, или, проще, - построитель любых, по желанию пользователя, древовидных диаграмм. Пользуюсь им как структурированной записной книжкой при чтении технической документации, стандартов, технической литературы, всего, что требует даже не столько «упорядочивания заметок», сколько реструктуризации читаемого (потому что и слишком часто имеешь дело с «распылённым» по большим объёмам материалом, и, что важнее – потребности читающего в структуре материала далеко не всегда совпадают с видением её авторами). Фактически, после более чем полугода непрерывного использования, SimpleMind стал одной из четырёх моих основных программ «активного чтения», в этот список входят собственно одна из программ-«читалок», «плавающий» словарь zAntTek Dictionary, SimpleMind и Google Keep/Evernote. С помощью SimpleMind читаемое реструктуризируется, в прочих «записных книжках» сохраняются значимые фрагменты (Keep больше подходит для коллекционирования цитат из беллетристики, Evernote – для технической литературы). Получающееся в итоге представляет самостоятельную ценность и обычно второй раз к оригиналу книги (или документа) обращаться нет никакой нужды. Ничего удобнее и лучше SimpleMind для тактильных интерфейсов не обнаружил, практически эталонная программа. Одно плохо в ней – после её удобств и тщательно продуманного интерфейса очень многое выглядит далеко не так ярко и красиво, как его представляют в описаниях. И, наконец, самое неочевидное, - несмотря на огромные потенциальные возможности майнд-мапперов, практически не использую SimpleMind за переделами задач реструктуризации текстов в электронном или бумажном виде, потому что ничего лучше карандаша и блокнота до сих пор не придумано. И теперь о них, о карандаше и блокноте.

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

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

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

Как ни странно, но к инструментам «активного чтения» я отношу… браузер. И, заплатив за Boat Browser сколько там он стоит (сущие гроши), не жалею ни копейки, хотя… основным приложением Boat не пользуюсь вообще. Дело в том, что Boat даёт, по моему скромному мнению, лучший «плавающий» браузер, который постоянно используется для обеспечения возможности «подсмотреть в интернете» при неизменности основного контекста. Это наверняка крайне субъективное мнение, но непрерывная смена основного контекста (или полноэкранное переключение между приложениями, модель, принятая разработчиками всех мобильных ОС) меня очень утомляет, как бы красиво, плавно и быстро она ни была реализована. Так что два обязательных окна поверх основного контекста – словарь и браузер, – считаю обязательным.

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

Теперь о «просто очень приятном». Уже начиная с 7 дюймов диагонали устройства, возможности штатной пользовательской оболочки Android (весьма неплохие в «свежих» версиях системы) меня не устраивают. Требования мои не меняются уже несколько лет – мне нужна возможность такого размещения виджетов при разных ориентациях устройства (планшет – не смартфон, всё-таки), при которой размеры виджетов не искажаются. Ещё проще – я хочу, чтобы в разных ориентациях устройства виджеты сохраняли свои размеры. Мне так удобно. После тщательной селекции давно не меняю альтернативную оболочку Lucid Launcher, её возможностей достаточно и в бесплатной версии, но её автор такой хороший, что оплатить Pro-версию можно и нужно просто из уважения к чужому труду и таланту (это как раз тот случай, когда заплатил за «премиум»-возможности, и ни разу ими не заинтересовался, потому что мне важны не они, а сам факт существования и поддержки этой программы). Lucid Launcher даёт мне возможность свободно размещать разные наборы виджетов для разных ориентаций устройства, выплывающую панель быстрого запуска «favorites», в общем, очень трудно что-то рассказывать о приложении, давно ставшим обыденным. Несмотря на необязательность, тот случай, когда ни цента не жалко.

Чтение rss. Трагическая история. После всех шаманских плясок и всяких сверхсложных или сверхкрасивых программ, как остановился на сочетании Reader+ и сервиса Feedly, так ничего и не меняю. По-моему, разработчику Reader+ удалось найти баланс между сложностью, возможностями и удобством. Периодически просматриваю что нового появилось в других программах (rss теперь не особо в чести почему-то, «технология вчерашнего дня», так что бури событий в мире «rss-читалок» не наблюдается), и не нахожу ничего особенного, что вынудило бы отказаться от приобретённой Reader+. В общем, оправдывает себя программа (есть у неё мелкие огрехи, но они компенсируются прочим).

Планировщики и календари. Это очень мобильное. Со времён моих любимых Palm – самое, пожалуй, мобильное. Из платного рекомендую Gtasks и/или Month. Первое – очень удобное при максимально возможной визуальной простоте, второе – просто красивое, удобное и наглядное. Основное в этих двух приложениях – замечательные информативные и удобные виджеты (считайте это «замыканием» темы пользовательской оболочки). Они органично «уживаются» в планшетном мире, несмотря на его отличия от «смартфонного» (с выпуском смартфонов с диагональю экрана 5,5-6 дюймов грань между этими мирами стирается).

Чтение электронных книг. Ещё одно горе горькое, «воз и ныне там». Я бы сказал, что потенциально лучшей программой чтения электронных книг является мобильный клиент Wolfram Alpha (считайте, что это ещё одна программа из категории «не жалко ни цента»), если бы в Wolfram наконец додумались адаптировать свои технологии для вёрстки и чтения ebooks. Но пока такого не наблюдается, и форматы электронных книг вызывают только разочарование несоответствием возможностям «инструментов чтения». Но на безрыбье… На нём, в результате долгого процесса отбора, были выбраны имеющиеся лучшие «раки». Основной «читалкой» pdf уже примерно полгода является PDF Max. Причина проста – это пока единственная реально работающая «читалка», поддерживающая «многодокументный» режим. В ней можно читать сразу несколько pdf-файлов, не без нюансов, конечно, но мы взрослые люди и понимаем, что рендеринг pdf – задача очень ресурсоёмкая, pdf вообще «не для того формат», и требовать чудес от программистов мы не будем. Хорошая «читалка», оправдывающая свою стоимость. Но я заплатил и за ezPDF Reader, и за Moon+. Все по-своему хорошие, и при этом ко всем платным «читалкам» pdf непременно понадобится бесплатный Adobe Reader, а к Moon+, заявляющей способность отображать формат ePUB, понадобится бесплатная Skoob ePUB Reader, потому что только она «по-людски» отображает документы и книги в формате ePUB 3+, а в нём уже вовсю публикуют электронные книги. Удручающая ситуация, в которой приходится выбирать не на основе единственно разумного критерия «электронная книга потому и электронная, что даёт больше, чем бумажная», а на основе всяких нюансов, вроде относительной «удобности». Здесь всё очень печально, здесь (из программистов) некому сказать громко своё слово, потому что программирование здесь (как и везде, если задуматься) – всего лишь крохотное звено очень большой цепи. В итоге, – пользуюсь всем перечисленным одновременно, подсматривая с словари и web, и не испытываю никакого чувства стыда (не настолько образован, чтобы не подсматривать сразу в нескольких источниках). Так как активное чтение – это примерно 90% моего времени использования планшета, – перебрал всё возможное, остановился на том, что мне не создаёт проблем. И могу это рекомендовать.

И, наконец, «милое». Как же ж без этого. В игры на планшете я не играю, не из снобизма, просто они все ужасно унылые (я же человек с предысторией; возможно, начинающим с планшетов так не покажется). Потому «милое» в этом контексте обозначает совершенно необязательную замену штатного, ничего, по сути, кроме «миловидности», не дающую. Мой выбор в этой категории невелик. Переключатель задач Fancy Switcher (совершенно невыносимая утилита, невозможно рационально объяснить, почему она так «цепляет»), «читалка» ресурса reddit BaconReader, твиттер-клиент Talon, музыкальный (не универсальный) плейер jetAudio Plus. Без всего этого можно обойтись. Не сомневаюсь, что можно (я же обходился, пока их не нашёл и не выбрал). Но это очень милые приложения. Не навязываю ничего из перечисленного, но предупреждаю – это действительно очень милые приложения, попробуете их – привыкните, и потом то же самое скажете кому-то (опять же, совет стартаперам – присмотритесь внимательно, почему так).

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

Это всё, что хотел сказать.

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

«Уязвимость» №1 (комедия-триллер без элементов мистики и ужасов)

Оболочка командной строки bash – утилита фактически стандартная (в мире Unix клонов) и далеко не новая. Её разработка была начата в первой половине февраля 1988 года. Инсталляционная база её очень большая. Пусть не «громадная», но действительно Очень Большая. И тут, в 2014 году, внезапно, открывается ужасное – оказывается, в bash есть уязвимости, да ещё и «жуткие», допускающие инжектирование стороннего кода для исполнения. Пока ничего не скажу об этом «кошмаре», поговорим лучше немного о другом, более фундаментальном. Точнее, о фундаментально смешном баловстве, очень старом (ещё тех времён, когда никакой Linux и в проекте не было), но всё равно забавном.

Любой мало-мальски опытный пользователь, например, ОС Linux, знает о «wildcards» (даже не хочу приводить увечные попытки перевода термина на русский) – метасимволах, по-разному интерпретируемых командной оболочкой (дальше – shell, утомительно писать много лишних букв). «*» уж точно известно всем – этот метасимвол, например, в именах файлов, заменяет shell долгое описание «любое количество любых символов, включая вообще ничего». То есть, команда shell  «ls *» выдаст в поток вывода список всех видимых в текущем положении (в файловой системе) файлов, «ls *.c» - файлов с любыми именами, в которых есть два последних символа «.c». Пока нам этого и хватит, для дальнейшего.
Давайте попробуем заглянуть в «богатый внутренний мир» простой и совершенно законной (хоть и полностью бессмысленной) операции «ls * -al» с использованием утилиты strace: «strace ls * -al». Первая же строка результата показывает нам и чем заменяет shell символ «*», и результирующий вызов функции execve с переменным числом параметров:

«Уязвимость» №1 (комедия-триллер без элементов мистики и ужасов)

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

Создадим файл с именем «-rf» - «touch -- -rf». Проверим, что он появился – «ls -al». Есть такой файл. А теперь, после strace-наблюдения за выполнением глупой команды «ls * -al» подумаем, что будет, если мы вызовем в каталоге, содержащем файл с именем «–rf», команду «rm *». Логика работы команды «rm» и механизмов подстановки shell, по идее, должна привести к удалению всех файлов, каталоги же останутся нетронутыми (и об этом shell должна сообщить). Но. Если в списке файлов есть пустое ничто с красивым именем «-rf», шелл честно передаст в списке параметров вызова функции execve строку “-rf”, которая ничем не отличается от параметров команде rm, которая, в свою очередь, искренне воспримет всё ей переданное так, как способна понять, и вместо сохранившихся каталогов в результате удаления файлов командой «rm *» не останется ничего, кроме файла с именем «-rf». Этот фокус пещерных времён Unix принято называть «инжекцией через метасимволы» (wildcard injection), и он является одним из примеров широкого класса «инжекции в канал» (channel injection), при которой для изменения исполнения чего-то используется фундаментальный принцип «сборки» этого чего-то из частей в один «канал исполнения».

С помощью инжекции через метасимволы можно, например, красиво заставлять команду chown (изменение владельца и группы файла) делать совсем не то, что подразумевает вызывающий её, в первую очередь при рекурсивном изменении файлов. Подсказка проста и кроется в возможностях самой утилиты: есть в перечне её опций «--reference=имя_файла», где имя_файла – образец для подражания, то есть, владелец и группа этого файла и будут «распространены» по прочим вызовом функции «chown –R», причём… даже если желаемые пользователь и группа указаны в команде явно, образец для подражания эту попытку ручного управления «перевесит» (не удивляйтесь, всё логично, просто это такая логика). То есть, достаточно в забитом тысячами файлов каталоге всего двух, например, одного с именем «--reference=.zykdsga.zzz» (первая точка в имени образцового файла – сугубо для увеселения), и второго – «.zykdsga.zzz», чтобы любая выполненная системным администратором команда «chown –R желаемый_пользователь:желаемая_группа» изменила всё на… пользователя и группу файла .zykdsga.zzz. Совершенно аналогичен фокус с изменением битовых масок прав доступа командой chmod (у неё есть точно такая же опция «--reference»). А вот куда более насыщенная утилита tar, например, настолько насыщенная, что man-страницу по ней никто не дочитал до конца, поэтому она позволяет тем же приёмом сделать куда более весёлые вещи. Потому что в списке её параметров есть такие милые, которые начинаются с «--checkpoint». Первый задаёт через сколько обработанных блоков данных сообщать об этом важном событии, а вот второй, «--checkpoint-action=программа» позволяет запускать на исполнение в эти важные моменты какой-то файл. Какой угодно. И не только файл, а вообще описывать какой-то сложный вызов, это же Unix. Уже понятно? Делаем в каком-то каталоге два файла, с именами, например, «--checkpoint=2» и «--checkpoint-action=sh bomb.sh», ну и, само собой, третий файл – bomb.sh. И пусть себе лежат. Если системному администратору вздумается (или он будет стимулирован) выполнить команду tar в этом каталоге, невидимо для него наш прекрасный файл bomb.sh будет выполнен с… эскалацией привилегий до максимально возможного уровня. Гениальная это команда, tar, всегда её любил, как и прочие команды с нечеловеческой бездной параметров. Ну и так далее, смотрите все команды, где там у них в параметрах есть возможность задать исполнение чего-то, а дальше - инжекция через метасимволы, древний принцип, которым можно творить, выдумывать, пробовать (и не забывайте, метасимволов больше, чем только "*", там обширное поле для творчества). И уж если кто-то добрался до шелла, пусть без прав суперпользователя, и нашёл в файловой системе каталоги, где можно что-то записать, и это старый хитрый волк, понимающий толк в социальной инженерии, то оставить после себя всяких презабавных мин замедленного действия он может предостаточно, как и активировать их…

Так вот всё это к чему. Ну, отыскали в bash кроме кучи встроенных на уровне идеологии способов инжекции кода, ещё один, позволяющий из-за «ошибки» исполнять не только записанную в переменную окружения функцию bash (что само по себе прекрасная возможность что-нибудь кому-нибудь сломать), но и «по ходу дела» дописанный после формального завершения тела функции фрагмент (я взял слово «ошибка» в кавычки не случайно, скорее всего речь идёт даже не об ошибке, а о некотором таинственном «расширенном функционале» (как всегда, где я использую слово «функционал» не в математическом его смысле, там же использую и сарказм), потому что подобный эффект проявляется не только в bash, но и в zsh, например. Говорить, что это всерьёз что-то ухудшило, трудно. Если бы не одно «но». Нечеловеческими усилиями эта странность (которую "умудрялись не замечать" сто лет) оказалась потенциально угрожающей для всяких систем, использующих CGI (Common Gateway Interface), а их очень немало. Например, результаты попытки сканирования позволили прийти этому автору к выводу об уязвимости примерно одного хоста из пятидесяти.

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

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

 
 
IDC
Реклама

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