![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вообще обсуждение уже принесло немало интересного, хотя постоянно норовит свалиься куда-то на низкий уровень - в обсуждение шин сообщений и прочих API. А мы вообще-то еще требования к UI не сформулирвали.
Но вот
rainbow_beast просветил меня по поводу разницы между mind maps и concept maps.
Хотя я не уверен, что термин mind mapping не подходит, но все же в названии "Концептуальный интерфейс" что-то есть. Постмодерном попахивает.
На самом деле интерфейс должен быть в первую очередь самообучающим. Не самообучающимся хотя это тоже не повредит, а именно обучающим - self-tutoring или self-сouching. Причем обучать он должен в первую очередь именно конецпциям, лежащим в основе той или иной деятельности за компьютером.
Потому что компьютер это инструмент для множества очень разных задач, все из которых и не упомнишь. Постоянно приходится сталкиваться с вещами, которые несколько лет не делал и все забыл. Вот интерфейс и должен всячески помогать их вспомнить, если забыл, и узнать, если никогда не знал. Mind mapping с фокусом в примерно том же месте где и клавиатурный фокус оконной системы этому может очень неплохо помочь.
Еще интересный вопрос заключается в том, что у человека, сидящего за компьютером есть одновременно несколько контекстов с которыми он работает. Есть собственно компьютер со всем содержимым. Есть сессия, которая где-то больше компьютера - может включать в себя программы, запущенные на других компьютерах и подключенные к компьютеру разнообразные гаджеты, а в чем-то меньше - на компьютере могут одновременно работать несколько пользователей, а еще он всякими своими бэкграундными и серверными делами параллельно занимается.
Есть еще контекст текущей активности. Который тоже может выходить за пределы текущей сессии. Например активность "диалог в чате с другим человеком" явно захватывает кусочек сессии второго собеседника.
Со всеми этими контекстами человек более-менее легко справляется, если хотя бы один раз осознает их. Впрочем, в наше время по-моему ни один житель цивилизованных стран не думает, что в радиоприемнике сидят маленькие человечки, которые поют и разговаривают. Поэтому и общаясь через компьютер с другим человеком, он понимает что этот человек где-то сидит перед своим компьютером.
Вот с определением границ компьютера, сессии и клиент-серверных действий (например web-приложений) сложнее. Иногда даже и программисты не могут сразу сказать что у них выполняется сервер-сайд, а что - клиент-сайд. Хотя это крайне полезно понимать и пользователю хотя бы из соображений безопасности.
Кстати о безопасности, Систему следует планировать исходя из того, что любая из компонент может содержать если не злонамеренный код, то опасные ошибки. И везде где возможно использовать разграничения доступа к памяти, ограничения доступа к файловой системе и т.д. В качестве образца мы имеем по крайней мере две модели - классическую модель Unix и неклассическую Android с контрактами приложений. Там, правда, очень плохо сделано разграничение доступа к файловой системе. Можно еще посмотреть на остерхутовскую модель из SafeTcl.
В общем, получается такая картина - имеются tiled окна. Их немного. Даже на современном экране много tiled окон не расположешь. У окон может иметься довольно широкая рамка, куда выводятся тем или иным способом связанные с основным содержимым окна штуковины. Например, меню - это частный случай набора ассоциирующихся с содержимым окна объектов - команд, которые к этому окну можно применить.
Вокруг области tiled окон имеется рамка экрана. Где показываются какие-то объекты, связанные с сессией в целом или компьютером в целом.
У окна четыре стороны и можно их закрепить за разными типами связей.
Возможно, стоит позаимствовать из Ashton Tate Framework концепцию "изнанки фрейма". Там на изнанке фрейма можно было писать скрипт, генерирующий содержимое фрейма. Здесь более логичным является наличие на изнанке пояснительного (гипер)текста про то что можно с этим фреймом делать. Скрипт там тоже может быть, на то еcть literate programming.
Вообще хочется подложить под это какую-то ассоциативную файловую систему, объединяющую преимущества иерархической и реляционной модели, чтобы связи, скажем файла определенного типа с его возможными обработчиками были видны. Но, возможно, это следует делать уровнем выше.
Идеями Раскина насчет полностью modeless интерфейса злоупотреблять не стоит. Смена взгляда на один и тот же информационный объект иногда вполне оправдана. Но только надо оформить смену режима как переход по ссылке в concepts map. Вот до сих пор это у нас был текст, который мы набирали, и ассоциировался он с набором инструментов для работы с содержимым, а сейчас это стал верстаемый документ, и набор инструментов стал совсем другой.
Но вот
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Хотя я не уверен, что термин mind mapping не подходит, но все же в названии "Концептуальный интерфейс" что-то есть. Постмодерном попахивает.
На самом деле интерфейс должен быть в первую очередь самообучающим. Не самообучающимся хотя это тоже не повредит, а именно обучающим - self-tutoring или self-сouching. Причем обучать он должен в первую очередь именно конецпциям, лежащим в основе той или иной деятельности за компьютером.
Потому что компьютер это инструмент для множества очень разных задач, все из которых и не упомнишь. Постоянно приходится сталкиваться с вещами, которые несколько лет не делал и все забыл. Вот интерфейс и должен всячески помогать их вспомнить, если забыл, и узнать, если никогда не знал. Mind mapping с фокусом в примерно том же месте где и клавиатурный фокус оконной системы этому может очень неплохо помочь.
Еще интересный вопрос заключается в том, что у человека, сидящего за компьютером есть одновременно несколько контекстов с которыми он работает. Есть собственно компьютер со всем содержимым. Есть сессия, которая где-то больше компьютера - может включать в себя программы, запущенные на других компьютерах и подключенные к компьютеру разнообразные гаджеты, а в чем-то меньше - на компьютере могут одновременно работать несколько пользователей, а еще он всякими своими бэкграундными и серверными делами параллельно занимается.
Есть еще контекст текущей активности. Который тоже может выходить за пределы текущей сессии. Например активность "диалог в чате с другим человеком" явно захватывает кусочек сессии второго собеседника.
Со всеми этими контекстами человек более-менее легко справляется, если хотя бы один раз осознает их. Впрочем, в наше время по-моему ни один житель цивилизованных стран не думает, что в радиоприемнике сидят маленькие человечки, которые поют и разговаривают. Поэтому и общаясь через компьютер с другим человеком, он понимает что этот человек где-то сидит перед своим компьютером.
Вот с определением границ компьютера, сессии и клиент-серверных действий (например web-приложений) сложнее. Иногда даже и программисты не могут сразу сказать что у них выполняется сервер-сайд, а что - клиент-сайд. Хотя это крайне полезно понимать и пользователю хотя бы из соображений безопасности.
Кстати о безопасности, Систему следует планировать исходя из того, что любая из компонент может содержать если не злонамеренный код, то опасные ошибки. И везде где возможно использовать разграничения доступа к памяти, ограничения доступа к файловой системе и т.д. В качестве образца мы имеем по крайней мере две модели - классическую модель Unix и неклассическую Android с контрактами приложений. Там, правда, очень плохо сделано разграничение доступа к файловой системе. Можно еще посмотреть на остерхутовскую модель из SafeTcl.
В общем, получается такая картина - имеются tiled окна. Их немного. Даже на современном экране много tiled окон не расположешь. У окон может иметься довольно широкая рамка, куда выводятся тем или иным способом связанные с основным содержимым окна штуковины. Например, меню - это частный случай набора ассоциирующихся с содержимым окна объектов - команд, которые к этому окну можно применить.
Вокруг области tiled окон имеется рамка экрана. Где показываются какие-то объекты, связанные с сессией в целом или компьютером в целом.
У окна четыре стороны и можно их закрепить за разными типами связей.
Возможно, стоит позаимствовать из Ashton Tate Framework концепцию "изнанки фрейма". Там на изнанке фрейма можно было писать скрипт, генерирующий содержимое фрейма. Здесь более логичным является наличие на изнанке пояснительного (гипер)текста про то что можно с этим фреймом делать. Скрипт там тоже может быть, на то еcть literate programming.
Вообще хочется подложить под это какую-то ассоциативную файловую систему, объединяющую преимущества иерархической и реляционной модели, чтобы связи, скажем файла определенного типа с его возможными обработчиками были видны. Но, возможно, это следует делать уровнем выше.
Идеями Раскина насчет полностью modeless интерфейса злоупотреблять не стоит. Смена взгляда на один и тот же информационный объект иногда вполне оправдана. Но только надо оформить смену режима как переход по ссылке в concepts map. Вот до сих пор это у нас был текст, который мы набирали, и ассоциировался он с набором инструментов для работы с содержимым, а сейчас это стал верстаемый документ, и набор инструментов стал совсем другой.
no subject
Date: 2012-08-14 07:57 pm (UTC)no subject
Date: 2012-08-14 09:32 pm (UTC)Моя работа предполагает, если прикинуть, примерно следующие объекты:
- 1 основной текст. Это не строгий текст в Unix-смысле, я вижу там визуальное форматирование и втягиваемые иллюстрации, но основная информация именно текстовая. Объект редактирования или чтения. Забирает от 50 до 95 процентов внимания в зависимости от ситуации в данный момент.
- От 0 до 10 источников информации к тексту. На них я смотрю тогда, когда мне надо что-то узнать или проверить. Иногда источник бывает один и важный - тогда имеет смысл видеть его tiled с текстом - но чаще их несколько и нужны они урывками, то один, то другой.
- От 2 до 5 фоновых приложений, которым требуется интерфейс, но он должен обращать на себя внимание только когда он нужен (и притом только если ему сейчас это позволено). Чат-клиенты, медиаплеер, VPN-клиент, монитор мобильного инета...
- От 1 до 3 файл-менеджеров или командных строк. Существуют для упрощения доступа ко всему остальному (скажем, найти текст для редактирования проще файл-менеджером чем средствами редактора текста) или же для управления объектами тогда, когда из удобне видеть именованными файлами и не задумываться о том что внутри. Нет, даже самый лучший шелл не заменяет мне файл-менеджер, например потому что я не подписывался запоминать имена файлов или даже их первые буквы.
- Сейчас нет но очень хочется найти - менеджер информации. URLы, телефоны, текущие задачи, календарные назначения... всё что я сейчас скидываю в текстовые файлы. Я хотел бы найти приложение, позволяющее всё это удобно держать в одном месте. Когда я его найду, оно будет постоянно запущено и будет вызываться когда нужно (то есть будет как ещё один чат-клиент, наверное). Кстати, не посоветуешь случаем? Наверное скоро буду про него у себя в ЖЖ спрашивать.
Кроме такой работы, у меня бывают игры или просмотр видео, но там модель совсем простая - основное приложение плюс до 2 источников информации (чаще всего в HTML).
Я не вижу, к какому месту мне ваш тайл. А менять задачу под интерфейс не собираюсь - этот спор мы проходили ещё при обсуждении визуальной вёрстки более 10 лет назад.
no subject
Date: 2012-08-14 10:04 pm (UTC)Фоновые приложения, понятно,сидят в notification area, по команде активации (мышь или хоткей - по выбору) - разворачиваются в заранее выбранное место - либо поверх основного текста, либо поверх "панели источников", либо вообще скрывают всё. Либо, что мне оказалось удобнее всего - такие вещи вообще висят на отдельном workspace, куда и происходит переключение по их активации.
Менеджмент информации и тому подобные штуки (словарь, к примеру) внеконтекстны, поэтому открываться, как мне кажется, должны в scratchpad поверх текущих окон - здесь чистый тайл не особо удобен, потому что задолбаешься на каждом workspace прописывать, куда им попадать. У меня в ion так словарь в скратчпаде живёт - очень удобно. Вызывается, понятное дело, по хоткею.
Файлменеджеры и командные строки - на своём рабочем столе. Тамони все видны, но какой-то находится в большом фрейме, остальные - в меньших. По нажатию одной кнопки любой из них может попасть в большой фрейм, поменявшись с тем, что там в данный момент.
Ну а с играми или просмотром видео вообще просто - это живёт на отдельном workspace и открывается обычно на весь экран, скрывая даже notification area. Основное приложение плюс пара источников - тоже не проблема.
В общем, идея - окна объединяются по контекстам и группами раскидываются на разные рабочие столы, причём если есть пачка чего-то однотипного,что не может быть нужноодновременно - такое живёт в одном фрейме, табами. Если это не совпадает с вашив workflow - можно и другое придумать, дайте только начальные условия.
А вообще - спасибо огромное за нетривиальный пример, надо бы их ещё пособирать - глядишь, набор желательных возможностей нарисуется...
no subject
Date: 2012-08-14 10:13 pm (UTC)Используемая сейчас раскладка - текст на весь экран (кроме таскбара), источники на весь экран переключаемо, остальное popup по необходимости, по занимаемому месту хаотично.
С места, конечно, вижу вариант превратить недостаток 16:9 в достоинство, но на это нужны деньги - взять дюйма 24-26 16:9, создать область для текста размерами 4:3. Но в оставшийся кусочек мне не удастся комфортно поместить источники информации или привычные файл-менеджеры! И если файл-менеджер можно и поменять (ну расположатся там панели вертикально), то источники - нет.
Чтобы тайл стал мне удобен для варианта "зона текста плюс зона источников", мне надо откуда-то взять вертикальный экран, и то в режиме чтения или вычитки удобнее будет расширять текст на всё пространство. Или уж тогда - такой огромный 16:9, чтобы разделить пополам и в обоих частях достаточная ширина. Вот это уже да, всегда быо бы удобнее, но это как бы не 32 дюйма требуется. Не меньше 26 точно. А я между прочим иногда и на ноутбуке работаю, том самом на котором 15 дюймов 16:9.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-08-14 10:17 pm (UTC)тайл может быть один, но не задействовать четыре его стороны — грех.
верхняя сторона — что-то глобально-системное;
нижняя — история того, чем мы занимались, где мы «были»;
слева — действия с тем, что находится «внутри» тайла;
справа — действия с самим тайлом.
право и лево для левшей/правшей, наверно, будут меняться местами.
ну и, наверно, стоит заложить возможность скрытия/показа границ, и всех сразу, и по отдельности.
no subject
Date: 2012-08-14 10:22 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2012-08-14 10:24 pm (UTC)no subject
Date: 2012-08-15 12:36 pm (UTC)То есть, на широкоэкранном мониторе вы расположили основных 1-2 тайла (в зависимости от того, удобно ли вам работать со строками такой ширины) на первом десктопе, а на других - что-нибудь фоновое.
no subject
Date: 2012-08-14 09:57 pm (UTC)no subject
Date: 2012-08-15 04:31 am (UTC)no subject
Date: 2012-08-15 05:44 am (UTC)В GUI должна быть единственная кнопка - запустить ещё один xterm.
Кто не может пользоваться таким интерфейсом,
объявляется не владеющим компьютером.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-08-14 10:08 pm (UTC)С другой - такой вариант не дружит со sloppy focus, который хотелось бы оставить - для тайла он абсолютно естественен и экономит клики.
no subject
Date: 2012-08-15 06:44 am (UTC)Мне кажется вполне удовлетворительным показываемое по кнопке меню.
no subject
Date: 2012-08-15 06:48 am (UTC)no subject
Date: 2012-08-15 09:17 am (UTC)no subject
Date: 2012-08-15 06:10 am (UTC)У тайлов вообще есть принципиальная проблема - нельзя отвести столько места, сколько для того надо, надо отдавать полосу длиной во всю сторону окна.
Если использовать границы окон для контролов приложений, то многих авторов программ не устроит их внешний вид. Кроме того, это по сути те же тайлы, и проблема нерационального использования места для них ещёё более остра - ради пары кнопок я теряю всю полосу.
no subject
Date: 2012-08-15 06:19 am (UTC)Практика показывает, что гибкость, обеспечиваемая произвольно перекрывающимися окнами - избыточна. Многие люди как вот
Тайловая система, под которой я понимаю более-менее произвольное разделение экрана на неперекрывающиеся окна, как в Oberon, vim или emacs, является на мой взгляд, достаточно хорошим компромиссом между многооконностью и полноэкранностью.
no subject
Date: 2012-08-15 06:28 am (UTC)Тем более что наиболее продвинутые из них таки позволяют использовать плавающие окна. Так что всё это сводится к контролам и прочей вкусовщине.
Причина по которой maemo и android не использовали перекрывающиеся окна, очень проста - ограничение аппаратных возможностей.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-08-15 08:25 am (UTC)таки есть "полноэкранный" режим - окно разворачивается на полный экран не своими средствами а системными
Dock пропадает,
если надо меню родные,etc - то курсор вверх и смотрим
если приложение это нормально поддерживает то элементы вроде адресной строки браузера тоже пропадает
если надо назад - выходит
(традиционная максимизация окна тоже етсь)
авторы "специальных" текстовых редакторов вроде iA Writer даже специально рекламируют поддержку этой фичи - мол удобно писать, ничего не отвлекает
(no subject)
From:no subject
Date: 2012-08-15 09:28 am (UTC)Дело в том, что те же тайловые WM хороши только на мониторах до определённого размера. Если, к примеру, у вас монитор этак 2 метра на 2 метра, разворачивание на полный экран/половину экрана будет жутко неудобно. Поэтому, мне кажется, классический Гуй будет там в самый раз.
Соответственно, по размеру экрана есть градации:
1. Экран очень большой, значительно больше разворота книги. Лучше всего стандартный Гуй с более-менее правильной расстановкой окон (окно по-умолчанию раскрывается в размер книги, ставится в свободное место). Focus follows mouse.
2. Экран размером с разворот книги. Тут - тайлинговые WM, кол-во окон на десктоп - 2-3.
3. Экран меньше - тайлинговые WM типа как у Андроида/Iphone - один десктоп на одну задачу.
С другой стороны, остаётся ещё вопрос наличия клавиатуры, мыши, мышиного протеза в виде тачпада и стилуса/пальца. Они принципиально разные:
1. на клавиатуре много кнопок
2. мышь позволяет точно наводиться куда нужно, двигая руку не слишком далеко (то есть, движений может быть много - руки слабо устают). Т.е. с мышью легко можно бегать по экрану, перетаскивать всякое.
3. у тачпада точность фиговее, но есть "мультижесты". Перетаскивать тяжело.
4. У стилуса очень хорошая точность, но руки с ним устают сильнее. У пальца точность хуже, но есть "мультижесты".
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-08-15 02:51 pm (UTC)> разделение экрана на неперекрывающиеся окна, как в Oberon, vim или
> emacs
Кстати, бОльшая часть технологических мониторов для мало-мальски важных вещей тожэ построена по похожым принцыпам.
no subject
Date: 2012-09-09 11:40 pm (UTC)удивительно мне читать и посты и коменты..
Date: 2012-08-16 05:51 pm (UTC)Re: удивительно мне читать и посты и коменты..
Date: 2012-08-16 08:10 pm (UTC)свое место и не пытаться заменить человеку реальный мир.
Мы здесь вообще-то давно не про фантастику, а про то, что можно сделать здесь и сейчас. Про то future, которое just not evenly distributed.
Вы как всегда, потрындеть пришли, а мы тут вполне реализуемое ТЗ обсуждаем.
собственно, Вы звали именно на это.
Date: 2012-08-17 07:12 am (UTC)Впрочем, журнал - Ваша территория, потому можно позвать, потом послать или сказать что делается иное - все в Вашей воле.
Re: собственно, Вы звали именно на это.
From:спасибо, одолжения излишни.
From:Re: спасибо, одолжения излишни.
From:на вкус и цвет..
From:Re: на вкус и цвет..
From:не, ну если бы оно читало мысли...
From:Re: не, ну если бы оно читало мысли...
From:мне он очень удобен..
From:Re: мне он очень удобен..
From:речь о красоте или удобстве/пользе?
From:Re: речь о красоте или удобстве/пользе?
From:согласен, не всегда нужен.
From:Re: речь о красоте или удобстве/пользе?
From:костыль.
From: