[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]

[Burichan] [Futaba] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PNG
  • Maximum file size allowed is 10240 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1271426055630.jpg -(610445 B, 1920x1200) Thumbnail displayed, click image for full size.
610445 No.30684  

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

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

итт давайте придумаем идеальный интерфейс.

>> No.30687  

телепатия

>> No.30690  
File: 1271429791012.gif -(11453 B, 334x646) Thumbnail displayed, click image for full size.
11453

инбифо петросяны.

>> No.30693  

>>30684
Идеальный интерфейс - пустая форма с надписью "мне уже хорошо" (с)
А если по делу, то ничего функциональней CLI на сегодняшний день не придумали, хотя многим он и кажется неудобным. С другой стороны если потратить год-другой на освоение, то все GUI будут казаться жутко неудобными, громоздкими и малофункциональными.

>> No.30715  
File: 1271433536508.jpg -(68221 B, 450x600) Thumbnail displayed, click image for full size.
68221

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

>> No.30717  

>>30715
Под изучением CLI я подразумевал основной синтаксис bash и всевозможные полезные приемчики, наиболее часто встречающиеся ключи и так далее.
Дальше алгоритм прост - формулируешь для себя задачу, прикидываешь какие абстрактные инструменты тебе для этого понадобятся, если про какой-то из них ты не знаешь -> google. Устанавливаешь то, что тебе нужно, если ты не умеешь этим пользоваться/не знаешь нужных ключей -> man. Потом просто описываешь задачу в понятном для компьютера виде и выполняешь.
Конечно на первых порах придется часто лезть в google/man за ответами, но дальше, когда мозг закеширует достаточно информации, это будет нужно только для принципиально новых задач.
Олсо GUI не поможет, если ты не знаешь, каким инструментом решить задачу.

>> No.30719  
File: 1271434421000.jpg -(445273 B, 667x800) Thumbnail displayed, click image for full size.
445273

>>30717
капитан, да вы сегодня в тонусе.

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

>> No.30720  
File: 1271434546853.jpg -(128889 B, 483x485) Thumbnail displayed, click image for full size.
128889

>>30719
и где ваш дух изобретательства, в конце концов!

>> No.30721  

>>30719

> гуй делает процесс взаимодействия с неизвестной программой проще, так как в нём справка непосредственно выведена для каждого элемента, и удобно расположена в пространстве

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

>> No.30751  

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

>> No.30766  
File: 1271522398371.png -(10675 B, 640x120) Thumbnail displayed, click image for full size.
10675

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

>> No.30772  

>>30766
man man
man info
Шаблоны и примеры там, читать это не обязательно в терминале, есть всякие маночиталки.

>> No.30778  
File: 1271536449423.png -(169092 B, 555x253) Thumbnail displayed, click image for full size.
169092

>>30766

> что-то вроде попапов относительно интересующих функций, чтобы не читать маны в отдельном терминале

Cisco уже все придумало за тебя.

>> No.30795  
File: 1271569068498.png -(19260 B, 650x391) Thumbnail displayed, click image for full size.
19260

>>30778>>30772
но ведь это можно было бы значительно удобнее организовать. у нас же есть двухмерное пространство с оконной системой, а не только сраный терминал 80*24

>> No.30803  

>>30795
Например?

>> No.30809  
File: 1271588285630.png -(120720 B, 1206x842) Thumbnail displayed, click image for full size.
120720

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

речь идёт о смеси современных проводникообразных файлменеджеров и консоли.

>> No.30810  

>>30809
плюс неплохо было бы встроить в консоль трейсер кода.

>> No.30816  

>>30810 Но зачем ?

И вообще, соглашусь с >>30693-оратором. Неэффективности gui хорошо демонстрируется на примере стой популярной в определенных кругах программы mathcad.

>> No.30817  
File: 1271599422176.jpg -(36886 B, 202x174) Thumbnail displayed, click image for full size.
36886

>>30816
на новере стало слишком много капитанов.

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

>> No.30820  

>>30809
В дебиане была попытка приделать автокомплит в баше ко всем известным ключам и их аргументам. Как результат - работать стало даже неудобней, чем без всех этих ухищрений, поскольку редкие ключи они как обычно добавить забыли, сделав фильтр по расширению добавили далеко не все возможные типы файлов. В результате в unrar перестали автокомплитится файлы с расширением .jpg (надеюсь вы понимаете о чем я), также автокомплитом перестали дописываться редкие форматы аудио/видео для mplayer. Через пару месяцев мне это надоело настолько, что я просто убил все эти тонкие настройки, оставив автокомплит только на уровне любых файлов.

>> No.30822  

>>30820
воспользуемся командой file для получения расширения.

>> No.30824  

>>30822
Как быть с тем что например для unrar аргументом может быть как .rar архив, так и jpeg или png картинка? Как быть с тем что в качестве -dvd-device mplayer кушает как физическое устройство, так и образ или каталог в который этот образ смонтирован? Если поискать то можно найти еще пару десятков мало документированных возможностей различных программ.

>> No.30830  
File: 1271603757692.jpg -(131708 B, 480x640) Thumbnail displayed, click image for full size.
131708

>>30824
это всё уже детали, мы ещё даже концепцию вывода информации не обдумали. к тому же никто не мешает отключить эту байду нажатием на специальную клавишу, если тебе нужно ручное управление.

>> No.30990  

>>30820 Посмотри zsh, там очень грамотно реализовано автодополнение. Работать очень удобно.

>> No.31137  
File: 1271866133455.jpg -(99985 B, 566x800) Thumbnail displayed, click image for full size.
99985

>>30990
что-то я нихрена не понял, она вообще о чём, эта зсх?

>> No.31356  

>>30721 Паста старая, но как раз про 2-3 кнопки

Как создавать пользовательские интерфейсы? Вот хочу я "умный дом", где управлять светом я смогу через компьютер (и инет, с телефона и т.д.). Предположим, что аппаратная часть уже готова, как и некая liblight.so, которая принимает на себя ID лампочки и % освещенности как float-значение. А вот как это оформить в виде интерфейса пользователя?

Можно нарисовать 2 кнопки "вкл" и "выкл", но тогда чем это будет отличаться от классического выключателя? А можно нарисовать бегунок, задающий яркость лампочки в %%, но вот двигать которым - неудобно, ибо надо тянуться к мышке. Может нарисовать 2 кнопки, а между ними бегунок? Тоже вариант! Но если я не хочу включать на полную мощность каждый раз, а предпочитаю мягкий, рассеянный свет - мне от бегунка таки не уйти, да? Или добавить еще кнопок/комбобокс и поддержку профилей вида "совсем яркий, приглушенный свет, ночная подсветка"? А еще можно сделать плавное переключение между режимами, дабы лампочка дольше работала и плавно включалась/выключалась, но как это отразить в интерфейсе? Можно конечно сделать примитивную линейную интерполяцию, длительностью 0.5 секунды, но это слишком частный случай для гика. Я бы предпочел возможность задать кривую (возможно даже через кривые Безье) и длительность, но это слишком перегрузит интерфейс.

А если в люстре несколько лампочек? Дублировать ли мне все эти кнопочки/ползунки для каждой, или управлять всеми одновременно? Если всеми, то при 20% яркости будут включены все 5 ламп на 20%, или 1 на 100%? Если одна, то какая именно? Нужно будет создавать очередь для указания приоритета? А если лампочки разной мощности, как в этом случае быть? Указывать в настройках типы ламп? Или добавить в систему датчик освещенности и мерять результат в люксах? Кстати, о датчике: он может мерять не только свет от ламп, но и свет с улицы, тем самым подстраивая свет в комнате под определенное значение. Но тогда придется делать еще бегунки для управления общей яркостью, а кнопки упраления лампами придется отключить. Причем, если система будет автоматической, то нужно предусмотреть таймер, дабы отключал свет автоматически, если я уснул на клавиатуре. Но какой интерфейс для таймера сделать? Простой спинбокс "вырубить свет после NN часов", или расписание у духе гуглькалендаря, где десятки полей и кнопок? Вообще, система таймера хороша, но если я заснул на клаве, зачем лампочке гореть еще 3 часа, может взять картинку с камеры (какой умный дом дом без камер?), да искать активность на ней? Если активности нет в течении НН-минут, то выключаем свет. Для этого надо добавить еще 1 поле времени и простой графический редактор для задания маски (например, закрасить окно/шторы, дабы свет от проезжающих автомобилей не учитывался при расчете движения).

А еще раньше была популярна такая забава как "светомузыка", которая мигала 3 лампочками в такт музыки. Фактически, для реализации светомузыки нужно только разложить звук на 3 составные, просчитать мощность каждой лампы, да сделать 3 вызова системной библиотеки. Практической пользы от нее нет, но для гика будет большим упущением, если потенциал системы будет не до конца использован. Значит ли это, что нужно добавить систему "контроллеров", которые будут брать сигналы с внешних источников (плагинов, других приложений) и контролировать уровень освещения? Например, есть система телефонии Asterisk, со встроенным синтезатором азбуки Морзе. Но ведь азбуку Морзе можно подавать и светом! Пример: система "умный дом" на даче, сработала система безопасности, телефонные линии перерезаны, энергоснабжение на резервном генераторе, хозяина на месте нет. Что делать? А система может мигать всеми лампочками в доме сигнал SOS, кто-то из соседей наверняка отреагирует, особенно если была договоренность. Алсо, тут можно будет выпустить SDK, дабы другие разработчики тоже могли создавать свои типы контроллеров, ведь звук и азбука Морзе - это не единственные источники сигналов.

Так как же мне включать/выключать свет? Научите проектировать интерфейсы!

>> No.31362  

>>31137 Очень грамотно реализованное программируемое автодополнение, единая синхронизируемая история, суффикс-алиасы, разные полезные мелочи вроде zmv и так далее.

>>31356 Хорошая паста. Я думаю, что нужно просто задокументировать все возможности, сразу выпустить СДК и приложить несколько примеров для демонстрации возможностей. Конечной пользователь сможет создать конфигурацию на основе вышеперечисленного.

>> No.31504  
File: 1272320176499.jpg -(411927 B, 882x1280) Thumbnail displayed, click image for full size.
411927

>>31362
справка всё равно неудобно выводится. неплохо было бы добавить справку завязанную на интернеты и интерфейс для иксов. 21 век уже, ёпта.

>> No.32166  
File: 1273167143253.jpg -(27377 B, 300x417) Thumbnail displayed, click image for full size.
27377

В том, что касается более элегантного отображения информации - известный мне экзотический минимум:

  • ZUI же! Zoomable User Interface, автор Раскин, книга на пикрелейтед.

Представители:
"eagle mode": "http://eaglemode.sourceforge.net/video.html" (особое внимание на настройку ядра linux), качать там же;
"PAD++" - ещё и с интересной концепцией "линз" - визуально окон, преобразующих информацию, которая "светит" сквозь них - графический аналог pipe консоли (луркай Вичку и ютюб)

Алсо, годные статьи:
http://wagner.pp.ru/~vitus/articles/true_unix_gui.html - WinRAR;
http://itc.ua/node/2149/ - "Компьютерная экология".

Что касается "когнитивных" интерфейсов - дающих возможность быстрее осваивать среду в которой работаешь:
>>30766 >>31504
The META Project тебе в помощь:
http://www.openresource.com/Meta/paper.html - строго описанная концепция
http://www.cfcl.com/rdm/carny/2000.12.html - эссе про системного администратора пожелавшего разобраться с make(1).

>>30817
lisp. Если при вычислении выражения он натыкается на что-то неопределённое - например, на неизвестную переменную - он вежливо спрашивает, какое значение ему сюда подставлять вместо того, чтобы аварийно (или с руганью) завершаться и заставлять пользователя повторять всё с начала.

>> No.32167  
File: 1273167536391.jpg -(9137 B, 167x200) Thumbnail displayed, click image for full size.
9137

>>31356
Пикрелейтед - Алан Купер "Психбольница в руках пациентов" (осторожно! при прочтении дремучими прогерами возможна PITA!) - глава "Глава 10. Проектирование ради результата" , подглава "Что делает программы вежливыми?"

>>32166-кун (альсо, ОП-кун "http://iichan.ru/b/res/1244016.html")

>> No.32180  

>>32166

> eagle mode

Мне нравиться. Поставил себе, теперь вот играюсь.

>> No.32193  
File: 1273205645219.jpg -(375753 B, 729x1080) Thumbnail displayed, click image for full size.
375753

>>32180
от него глаза не устают?

>> No.32194  

>>32193
Первое что у меня устало - палец, давящий на колесико мышки. Насчет глаз - это кому как привычней.
Олсо с кириллицей у этой штуки бида.

>> No.32196  

>>32194
В eagle mode не реализовано "логического" перемещения по видимой области. У Раскина в "Интерфейсе" это описывается как LEAP ("прыг", "http://lib.rus.ec/b/129607/read#t54") но это и так всем знакомо как инкрементальный поиск: по мере набора искомого слова курсор перемещается на совпадения.
Сама по себе прога ИМХО ещё сырая, я привёл её как пример proof of concept.



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]