vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Вообще обсуждение уже принесло немало интересного, хотя постоянно норовит свалиься куда-то на низкий уровень - в обсуждение шин сообщений и прочих API. А мы вообще-то еще требования к UI не сформулирвали.

Но вот [livejournal.com profile] 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. Вот до сих пор это у нас был текст, который мы набирали, и ассоциировался он с набором инструментов для работы с содержимым, а сейчас это стал верстаемый документ, и набор инструментов стал совсем другой.

Date: 2012-08-15 07:48 am (UTC)
filin: (Default)
From: [personal profile] filin
"Открыть окно поверх, что-то сделать не выпадая из контекста и закрыть" неизбежно приводит к модальному окну. Поскольку "поверх" означает потерю видимости того, что под ним (полупрозрачность на практике не помогает) и что более существенно, потерю возможности управлять этим, хоть тресни. Я считаю, что это извращение, но поскольку модальные окна в существующих интерфейсах есть, все уважающие себя тайловые wm понятие модального окна поверх поддерживают.

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

Date: 2012-08-15 08:05 am (UTC)
From: [identity profile] max630.net
Голословно и неправда. Видимость не пропадает, прозрачность помогает (по Alt+колесо - правда удобно), почему должда пропадать возможность управления - и вовсе непонятно. Ну разве что если AutoRaise стоит, так не надо его ставить.

Date: 2012-08-15 08:29 am (UTC)
filin: (Default)
From: [personal profile] filin
Крутить прозрачность вручную, да еще мышью? И это пишет человек, которого ресайзы соседних окон выбивают из контекста?

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

1) схватиться за мышь

2) переместить ее за пределы всплывшего окна

3) хитрожопо прокрутить нижележащее окно, чтобы вытащить нужное место из-под всплывшего окна

4) провести операцию

5) опять схватиться за мышь

6) вернуть фокус во всплывшее окно.

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

Date: 2012-08-15 09:12 am (UTC)
From: [identity profile] max630.net
Крутить - это же несложно: вжик-вжик. Хотя я это не использую, потому что это было в гноме, а можно ли запустить fvwm с компизом мне разбираться лень. Но понравилось.

Последовательность не такая. Мешающее окно отодвигается в сторону. И всё. Можно мышкой, можно клавиатурной комбинацией (Alt-Pg(Up|Down)|Insert|Delete - в угол экрана). В идеале с помощью TrackPoint, но покупать клавиатуру с ним меня жаба давит. Если после этого надо - клавиатурой (Alt-Up|Down) переключается фокус.

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

Date: 2012-08-15 12:59 pm (UTC)
filin: (Default)
From: [personal profile] filin
> Крутить - это же несложно: вжик-вжик

Не договоримся. И на предмет отодвинуть в угол окно, всплывшее для временной работы с ним - тоже не договоримся.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 17 18 192021
22232425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2025 11:08 am
Powered by Dreamwidth Studios