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

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

Инструменты: одна единица измерения

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

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

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

Практический пример: цельная ли эта столешница?

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

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

Второй пример: стал ли холодильник работать хуже?

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

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

Объекты: о чем именно это измерение

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

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

Вам не обязательно сразу всё распределять по папкам. Измерение можно сохранить без привязки и прикрепить к объекту позже — именно так обычно и происходит в магазине: сначала делаем измерение, а потом решаем, к чему его отнести.

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

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

Активность: несколько инструментов, одна задача

Некоторые вопросы не укладываются в рамки одного измерения. Для вопроса «Достаточно ли толстая стена в спальне, чтобы заглушить соседский телевизор?» требуются два замера: опорный и замер прошедшего звука. Для вопроса «Нужно ли мне проверить слух?» нужна серия тонов на заданных уровнях громкости в строгом порядке, а результаты должны быть собраны воедино. Ответ на вопрос «Что это за материал?» заслуживает большего доверия, когда три удара согласуются друг с другом, чем когда уверенность демонстрирует лишь один удар.

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

Сеансы активности по задумке эфемерны. Вы запускаете сеанс, получаете ответ, и ничего не записывается в каталог, пока вы не нажмете «Сохранить в Объекты» — после чего сохраняются обычные измерения, подшитые к обычным объектам, ничем не отличающиеся от тех, что вы сделали вручную. Никакого второго, параллельного типа данных не существует.

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

Платформа, а не неизменный прибор

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

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

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

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

С чего начать

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