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

Мотивация

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

Многое взято из книги Джефа Раскина «Гуманный интерфейс».

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

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

предложение

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

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

Содержание

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

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

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

Любое из следующего является типичными примерами содержания:

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

И команды, и преобразования также можно рассматривать как содержимое.

Команды

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

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

Команды будут работать, когда ожидается, что они будут работать, и будут выдавать бессмысленные выходные данные, когда входные данные бессмысленны (например, деление на ноль будет выдавать NaN, а не отображать диалоговое окно).

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

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

Команды можно рассматривать как содержимое.

Преобразования

Преобразования позволяют преобразовывать содержимое из одного типа в другой. Например, изображение может быть преобразовано в формат, читаемый сложной командой изображения, и обратно (эквивалент преобразования в PSD для использования в Photoshop). Или аудиофайл может быть преобразован в лирический текст.

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

Преобразования не сохраняются, так как выходные данные команды являются постоянными.

Преобразования можно рассматривать как содержимое, как и команды.

Трубопроводы

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

Постоянное хранилище и идентификация

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

Контент будет храниться в соответствии с MIME-типом в каталоге /Content внутри Dropbox. Команды будут храниться в /Commands, а преобразования — в /Transformations.

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

Навигация

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

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

Пользователю не нужно запоминать имена файлов, запоминать расположение файлов в файловой системе или придумывать новые имена файлов. Действительно, пользователь не должен знать, что «все является файлом».