Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 06:51
Оценка: 26 (5)
Я тут нарисовал одну штуку
Автор: Зверёк Харьковский
Дата: 29.11.06
, сдуру положил ее в tools (кстати, если здесь есть модераторы, нельзя ли ее сюдой принести?).
Развил идею еще чуток, и наконец-то появились собственно те concept, которых proof.

Что это такое?
Клиент к различным веб-словарям. Берет ваш запрос (например "w Nemerle"), превращает его в url (http://en.wikipedia.org/wiki/Nemerle), загружает кусок страницы (грубо говоря, первые несколько значащих абзацев) и отображает лаконично.
Как загружать — указывается в настройках шаблонами (пока не сильно гибкими). Конфигов для словарей опять же пока немного, но планируется (и словарных словарей, и всяко-разных man'ов, msdn-ов и проч.)

Зачем это надо?
...если все современные браузеры и так умеют выполнять преобразование урлов рода "w Nemerle" => http://en.wikipedia.org/wiki/Nemerle
Несколько причин:
1. отображение только значимой информации (никаких баннеров, менюшек, "обсудить эту страницу" и проч.)
2. отображение лаконичной информации (из википедии берет только первые абзацы, из лингвы выбрасывает текст примеров и т.п.) — ориентация на "быстро посмотреть разъяснение/перевод"
3. некоторая экономия трафика (грузит не всю страницу целиком, а только до нужного места, не грузит css, js, картинки и проч.)
4. словарно-ориентированный интерфейс (например, можно в пару нажатий клавиш без использования мыши скопировать перевод; история и кеширование запросов и т.п. очевидные радости)
5. в задумке — еще и некоторая автоматизация (сложные стратегии загрузки вроде "загрузить страницу по УРЛу, найти в ней ссылку определенного вида, загрузить страницу по ссылке, отобразить")

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

Итак:
0. для начала, чтоб было понятно о чем я, вот это пустое окошко (да, куча разноцветных прямоугольников — это чудовищно, я знаю, спасибо):

вот это окошко, в которое загрузили одну статью

(обратите внимание, что каретка находится внутри статьи — это позволяет быстро скопировать кусок текста, например перевод; если же нажать какую-либо редактирующую клавишу — начнется редактирование запроса)
1. ответы на запросы представлены "бесконечной лентой":

2. скроллбары здесь отсутствуют как класс. то ись вообще.
в замену им принято два решения:
а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.
б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей Это загруженные статьи в хронологическом порядке загрузки: по центру читаем текущую, ниже нее — те, что были загружены раньше; если кликнуть на одну из них, она будет по центру, над ней будут загруженные позже нее, под ней — загруженные раньше. Перемещение по ленте также возможно с помощью Ctrl+вверх, Ctrl+вниз; кроме того, если еще раз задать уже загруженный запрос, соответствующая статья из ленты окажется по центру.
3. работу с клавиатурой я постарался сделать максимально естественной, поэтому:
* Tab не работает вообще
* стрелки перемещения работают так, как можно предположить
* все клавиши редактирования переключают фокус в поле ввода запроса и срабатывают там
* дополнительные действия повешены на Ctrl+клавиша (перемещение по ленте, изменение размеров окна, теоретически еще будет удаление статьи из ленты — Ctrl+Del)
* Esc — выход, как и положено уважающему себя ненавязчивому словарю /увы, лента запросов между сеансами не сохраняется, и это, конечно, /

Собственно, интересны комментарии к этим решениями.




Если кто-то хочет подержать это в руках
Брать тута.
Помнить, что это proof-of-concept, то есть никаких настроек подключения/прокси и вообще ничего умного там нету.
Работающие на данный момент словари:
g — google
gc — google calculator
gd — google definition
gs — google spell (почему-то только аглицкий)
w — wikipedia
в — википедия русская
ll — lingvo (en->ru, мог бы в обе стороны, но переадресацию я пока не обрабатываю)
l — тот же lingvo, но более лаконичный (с выброшенными примерами)
и всо пока.
кто сильно храбрый, может попытаться определить свои словари, ориентируясь на файлы sites/*.conf

Поскольку написано на Ruby — с одной стороны, весит порядочно (1.2 мб, весь рантайм тягает за собой); с другой стороны, можно спокойно изучать исходники.

Имейте ваше удовольствие!
FAQ — це мiй ай-кью!
Re: Кое-какие proof-of-concepts
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.06 07:20
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.
А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 07:27
Оценка:
Здравствуйте, adontz, Вы писали:

A>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.


Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет.
Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном.
Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс).

Мне кажется, оченно у многих такая штука найдет свое применение.

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

A>А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.


Не понял. А можно картинку?
FAQ — це мiй ай-кью!
Re[2]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 07:33
Оценка:
Здравствуйте, adontz, Вы писали:

A>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.

A>А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.

К слову, ты его руками потрогал? Мне интересно, как оно наощупь (все эти извращения вместо скролла) безотносительно к цели программы.
FAQ — це мiй ай-кью!
Re[3]: Кое-какие proof-of-concepts
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.06 07:36
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Не понял. А можно картинку?


Как-то так.

A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 07:39
Оценка:
Здравствуйте, adontz, Вы писали:

ЗХ>>Не понял. А можно картинку?


A>Как-то так.


A>


А, ну может быть... /хотя лично я бы, кстати, предпочел system-wide hotkey, а не постоянно висящее на экране поле ввода/

Но это уже вещи уровня интеграции с системой, мне до них далеко покуда.
FAQ — це мiй ай-кью!
Re[3]: Кое-какие proof-of-concepts
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.06 07:42
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>К слову, ты его руками потрогал? Мне интересно, как оно наощупь (все эти извращения вместо скролла) безотносительно к цели программы.


Как тебе сказать. Какое-то наколеночное ощущение. POC он и есть POC
Да, вот ещё, когда появилась консоль я жутко испугался.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Кое-какие proof-of-concepts
От: Mamut Швеция http://dmitriid.com
Дата: 01.12.06 08:17
Оценка:
ЗХ>в замену им принято два решения:
ЗХ>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.

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

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

— В данной имплементации при ресайзе окно вылазит за пределы экрана, что неудобно

— вот. При загрузке статьи view показывает самый ее низ:



так и хочется проскроллить, а низзя — окно меняет размер.

ЗХ>Работающие на данный момент словари:

ЗХ>g — google
ЗХ>gc — google calculator
ЗХ>gd — google definition
ЗХ>gs — google spell (почему-то только аглицкий)
ЗХ>w — wikipedia
ЗХ>в — википедия русская
ЗХ>ll — lingvo (en->ru, мог бы в обе стороны, но переадресацию я пока не обрабатываю)
ЗХ>l — тот же lingvo, но более лаконичный (с выброшенными примерами)

Народ скандирует F1! F1! А то я не запомню все комбинации
... << RSDN@Home 1.2.0 alpha rev. 668>>


dmitriid.comGitHubLinkedIn
Re[2]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 08:26
Оценка:
Здравствуйте, Mamut, Вы писали:

ЗХ>>в замену им принято два решения:

ЗХ>>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.

M>Вот это мне не нравится. Просто у меня есть пример программы без скролла — миранды, там колесо мыши крутит именно список, а не ресайзит окно. Минус в ресайзе окна по скроллу:


M>- скролл предполагает, что не глаза двигаются, а документ сдвигается на уровень глаз. В случае с ресайзом окна такого не происходит.

M>- В данной имплементации при ресайзе окно вылазит за пределы экрана, что неудобно
M>- вот. При загрузке статьи view показывает самый ее низ:
[...]
M>так и хочется проскроллить, а низзя — окно меняет размер.

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

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

ЗХ>>Работающие на данный момент словари:

[...]

M>Народ скандирует F1! F1! А то я не запомню все комбинации


Там будет гибкая и умная подсказка. Какой-нибудь пробел, или контрол-пробел — все возможные словари; выбрал словарь — умная история запросов по этому словарю. В общем, не все сразу.
FAQ — це мiй ай-кью!
Re[3]: Кое-какие proof-of-concepts
От: Mamut Швеция http://dmitriid.com
Дата: 01.12.06 08:49
Оценка:
ЗХ>в общем, я настаиваю на том, чтобы эту штуку распробовали, прежде чем критиковать

Так как у меня основные поиски по словарям — это google define и lingvo, то вот на вуашту я напоролся сразу А ради ресайза окна отказываться от привычки скролить (которая по умолчанию во всех других приложениях) отказываюсь Правда, здесь затык больше в удобство против привычки
Автор: rm822
Дата: 29.11.06
. Так что будем посмотреть
... << RSDN@Home 1.2.0 alpha rev. 668>>


dmitriid.comGitHubLinkedIn
Re[3]: Кое-какие proof-of-concepts
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.12.06 12:01
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Здравствуйте, adontz, Вы писали:


A>>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.


ЗХ>Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет.

ЗХ>Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном.
ЗХ>Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс).
Кстати, в Trillian есть такой плагин. Я, правда, так и не нашел времени разобраться, как он работает, но он иногда подсвечивает некоторые слова в сообщениях, и показывает Wiki для них в тултипе:
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 01.12.06 12:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>Здравствуйте, adontz, Вы писали:


A>>>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.


ЗХ>>Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет.

ЗХ>>Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном.
ЗХ>>Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс).
S>Кстати, в Trillian есть такой плагин. Я, правда, так и не нашел времени разобраться, как он работает, но он иногда подсвечивает некоторые слова в сообщениях, и показывает Wiki для них в тултипе.

Кажется, именно он и натолкнул меня на изначальную идею
FAQ — це мiй ай-кью!
Re: Кое-какие proof-of-concepts
От: c-smile Канада http://terrainformatica.com
Дата: 01.12.06 23:15
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>2. скроллбары здесь отсутствуют как класс. то ись вообще.

ЗХ>в замену им принято два решения:
ЗХ>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.
ЗХ>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей Это загруженные статьи в хронологическом порядке загрузки: по центру читаем текущую, ниже нее — те, что были загружены раньше; если кликнуть на одну из них, она будет по центру, над ней будут загруженные позже нее, под ней — загруженные раньше. Перемещение по ленте также возможно с помощью Ctrl+вверх, Ctrl+вниз; кроме того, если еще раз задать уже загруженный запрос, соответствующая статья из ленты окажется по центру.

Посмотри htmlayoutsdk\html_samples\behaviors\scroller.htm в browse.exe
Что-то мне подсказывает что этот способ скролирвания можно развить.
Re: Кое-какие proof-of-concepts
От: anonymous Россия http://denis.ibaev.name/
Дата: 02.12.06 08:01
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей


А нельзя ли приделать к этим "странным квадратикам" всплывающие подсказки, а то 3 буквы маловато несут информации.

ЗХ>Помнить, что это proof-of-concept, то есть никаких настроек подключения/прокси и вообще ничего умного там нету.


А когда будет прокси?
Re[2]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 02.12.06 15:49
Оценка: +1
Здравствуйте, anonymous, Вы писали:

ЗХ>>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей


A>А нельзя ли приделать к этим "странным квадратикам" всплывающие подсказки, а то 3 буквы маловато несут информации.


Странные квадратики еще будем улучшать (я, честно говоря, надеялся, что тут кто-то будет чего обсуждать, но нет — так нет.)
Скорее всего, они будут отличаться цветом рамочки (каждому словарю — свой цвет). Тултипы — тоже может быть, хотя я и не уверен, на что они будут похожи. Возможно, будет переключение по квадратикам наведением, а не кликом — то есть такой вот "тултип" размером во все окно программы

ЗХ>>Помнить, что это proof-of-concept, то есть никаких настроек подключения/прокси и вообще ничего умного там нету.


A>А когда будет прокси?


А чего, этим уже кто-то реально пользуется?
Вообще, прокси добавить, кажется, не сложно, почему я этого пока не сделал — лень лепить ГУИ-настройки. То есть, он может появиться скоро, но настройки будут в файлах конфигов

Вообще, план на ближайшие версии такой:
* сделать нормальную поддержку сети (прокси, переадресации, отсутствующие страницы и т.п.)
* движок описания и выдирания словарей улучшить
* ввести умные подсказки при наборе запроса
* много экспериментироватьс UI с целью найти максимально удобный, лаконичный и извращенческий вариант
* сделать ГУИ-поддержку настроек (и даже наверное загрузки новых описаний словарей из Интернет-репозитория)

Люди, посигнальте вообще — это кому-то интересно? Продолжать тут выкладывать?
FAQ — це мiй ай-кью!
Re[2]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 02.12.06 15:51
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>2. скроллбары здесь отсутствуют как класс. то ись вообще.

ЗХ>>в замену им принято два решения:
ЗХ>>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.
ЗХ>>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей Это загруженные статьи в хронологическом порядке загрузки: по центру читаем текущую, ниже нее — те, что были загружены раньше; если кликнуть на одну из них, она будет по центру, над ней будут загруженные позже нее, под ней — загруженные раньше. Перемещение по ленте также возможно с помощью Ctrl+вверх, Ctrl+вниз; кроме того, если еще раз задать уже загруженный запрос, соответствующая статья из ленты окажется по центру.

CS>Посмотри htmlayoutsdk\html_samples\behaviors\scroller.htm в browse.exe

CS>Что-то мне подсказывает что этот способ скролирвания можно развить.

Может быть. Я вообще намерен очень много с UI этой штуки экспериментировать. То есть, еще раз 20 его переделать. Чего я не собираюсь делать:
1. стандартный привычный UI
2. здоровенного монстра.
FAQ — це мiй ай-кью!
Re[3]: Кое-какие proof-of-concepts
От: anonymous Россия http://denis.ibaev.name/
Дата: 04.12.06 06:29
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

A>>А когда будет прокси?

ЗХ>А чего, этим уже кто-то реально пользуется?

Я попытался, но меня прокси не пускает. )

ЗХ>То есть, он может появиться скоро, но настройки будут в файлах конфигов


Хоть так. Конфигов не боюсь.

ЗХ>* сделать ГУИ-поддержку настроек (и даже наверное загрузки новых описаний словарей из Интернет-репозитория)


А синтаксис формата описания стандартный или придуман?

ЗХ>Люди, посигнальте вообще — это кому-то интересно? Продолжать тут выкладывать?


Мне интересно, продолжай.
Re[4]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 04.12.06 06:33
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>>А когда будет прокси?

ЗХ>>А чего, этим уже кто-то реально пользуется?
A>Я попытался, но меня прокси не пускает. )

Окь. Сделаю в ближайшее время.

ЗХ>>* сделать ГУИ-поддержку настроек (и даже наверное загрузки новых описаний словарей из Интернет-репозитория)

A>А синтаксис формата описания стандартный или придуман?

Если скачал — посмотри sites/*.conf
Там, конечно, бардак, но должно быть понятно.
Единственное "но" — сейчас "нужная часть страницы" описывается регекспами, и как это работает, мне ни разу не нравится. Поэтому будет что-то вроде XPath или CSS-селекторов.

"Стандартный" — какой? (в смысле, есть какой-то близкий к теме стандарт? XML не предлагайте, пожалуйста.)
FAQ — це мiй ай-кью!
Re[3]: Кое-какие proof-of-concepts
От: Mamut Швеция http://dmitriid.com
Дата: 04.12.06 08:56
Оценка:
ЗХ>А чего, этим уже кто-то реально пользуется?

Ну, я готов пользоваться часто

Главный минус, который мне пока видится — это то, что запускается окно командной строки. Можно сделать так, по-моему:

run.cmd запускает некий loader.rb, который запускает уже nanobrowser и прекращает работу. Тогда run.cmd должен закрыться, по идее
... << RSDN@Home 1.2.0 alpha rev. 668>>


dmitriid.comGitHubLinkedIn
Re[4]: Кое-какие proof-of-concepts
От: Зверёк Харьковский  
Дата: 04.12.06 09:07
Оценка:
Здравствуйте, Mamut, Вы писали:

ЗХ>>А чего, этим уже кто-то реально пользуется?


M>Ну, я готов пользоваться часто


M>Главный минус, который мне пока видится — это то, что запускается окно командной строки.


Этого в следующем релизе уже не будет.
FAQ — це мiй ай-кью!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.