, сдуру положил ее в 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 мб, весь рантайм тягает за собой); с другой стороны, можно спокойно изучать исходники.
ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.
А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.
Здравствуйте, adontz, Вы писали:
A>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.
Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет.
Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном.
Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс).
Мне кажется, оченно у многих такая штука найдет свое применение.
Кстати, то, что здесь ссылки не работают вообще — это не принципиальное решение, а недоделка: в конечном итоге, ссылки на тот же словарь будут открываться прямо в нано, а все остальные — в дефолтном браузере.
A>А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.
Здравствуйте, adontz, Вы писали:
A>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер. A>А вообще я бы запихал поле ввода в панельку типа той, что делает WMP10 в свёрнутом состоянии.
К слову, ты его руками потрогал? Мне интересно, как оно наощупь (все эти извращения вместо скролла) безотносительно к цели программы.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>К слову, ты его руками потрогал? Мне интересно, как оно наощупь (все эти извращения вместо скролла) безотносительно к цели программы.
Как тебе сказать. Какое-то наколеночное ощущение. POC он и есть POC
Да, вот ещё, когда появилась консоль я жутко испугался.
ЗХ>в замену им принято два решения: ЗХ>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо 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! А то я не запомню все комбинации
Здравствуйте, Mamut, Вы писали:
ЗХ>>в замену им принято два решения: ЗХ>>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна.
M>Вот это мне не нравится. Просто у меня есть пример программы без скролла — миранды, там колесо мыши крутит именно список, а не ресайзит окно. Минус в ресайзе окна по скроллу:
M>- скролл предполагает, что не глаза двигаются, а документ сдвигается на уровень глаз. В случае с ресайзом окна такого не происходит. M>- В данной имплементации при ресайзе окно вылазит за пределы экрана, что неудобно M>- вот. При загрузке статьи view показывает самый ее низ:
[...] M>так и хочется проскроллить, а низзя — окно меняет размер.
Тут на самом деле баг не то htmlayout, не то моего с ним взаимодействия.
Идея же такова:
* в идеале, хрень предназначена для показа небольших статей (абзац-два).
* в идеале, значимая часть статьи всегда помещается.
* ...но если вдруг, случайно, не поместилась, одним движением можно "дочитать". (это и к обвинению, что "текст двигается на уровне глаз" — теоретически, ресайз используется когда ты дочитал да края и "хочэш ишшо", тогда "ишшо" появится ровно там где надо).
то ись как бы предполагается, что это функция редко, но с удовольствием используемая.
чтобы этого добиться, надо еще поиграться с "выдиральщиками" словарей они пока очень простые и наивные, поэтому размеры статьи непредсказуемы) и умолчательным размером самого окна. Как-то так, да.
в общем, я настаиваю на том, чтобы эту штуку распробовали, прежде чем критиковать
ЗХ>>Работающие на данный момент словари:
[...]
M>Народ скандирует F1! F1! А то я не запомню все комбинации
Там будет гибкая и умная подсказка. Какой-нибудь пробел, или контрол-пробел — все возможные словари; выбрал словарь — умная история запросов по этому словарю. В общем, не все сразу.
ЗХ>в общем, я настаиваю на том, чтобы эту штуку распробовали, прежде чем критиковать
Так как у меня основные поиски по словарям — это google define и lingvo, то вот на вуашту я напоролся сразу А ради ресайза окна отказываться от привычки скролить (которая по умолчанию во всех других приложениях) отказываюсь Правда, здесь затык больше в удобство против привычки
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Здравствуйте, adontz, Вы писали:
A>>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.
ЗХ>Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет. ЗХ>Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном. ЗХ>Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс).
Кстати, в Trillian есть такой плагин. Я, правда, так и не нашел времени разобраться, как он работает, но он иногда подсвечивает некоторые слова в сообщениях, и показывает Wiki для них в тултипе:
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>>Здравствуйте, adontz, Вы писали:
A>>>ИМХО сильно заточено под твой стиль работы. Я же люблю пошёлкать по перекрёстным ссылкам и нано явно не мой размер.
ЗХ>>Понятное дело, что у полновесной Википедии свое применение, и ее ценности это не отменяет. ЗХ>>Просто я неимоверно часто сталкиваюсь с короткими вопросами уровня "что это такое вообще", "такое вообще бывает?", "какие есть варианты перевода" — это в окололитературном. ЗХ>>Плюс к тому, я думаю, как туда поизящнее программистские подсказки вкрутить — очень часто прототипа функции и абзаца ее описания достаточно (только не надо мне про интеллисенс). S>Кстати, в Trillian есть такой плагин. Я, правда, так и не нашел времени разобраться, как он работает, но он иногда подсвечивает некоторые слова в сообщениях, и показывает Wiki для них в тултипе.
Кажется, именно он и натолкнул меня на изначальную идею
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>2. скроллбары здесь отсутствуют как класс. то ись вообще. ЗХ>в замену им принято два решения: ЗХ>а) чтобы посмотреть непоместившийся кусок слишком длинной статьи, изменяется размер самого окна, путем прокручивания колесика мышки (ага, вместо скролла ), либо Ctrl+Gray Plus, Ctrl+Gray Minus, либо как обычно ресайзят окна. ЗХ>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей Это загруженные статьи в хронологическом порядке загрузки: по центру читаем текущую, ниже нее — те, что были загружены раньше; если кликнуть на одну из них, она будет по центру, над ней будут загруженные позже нее, под ней — загруженные раньше. Перемещение по ленте также возможно с помощью Ctrl+вверх, Ctrl+вниз; кроме того, если еще раз задать уже загруженный запрос, соответствующая статья из ленты окажется по центру.
Посмотри htmlayoutsdk\html_samples\behaviors\scroller.htm в browse.exe
Что-то мне подсказывает что этот способ скролирвания можно развить.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей
А нельзя ли приделать к этим "странным квадратикам" всплывающие подсказки, а то 3 буквы маловато несут информации.
ЗХ>Помнить, что это proof-of-concept, то есть никаких настроек подключения/прокси и вообще ничего умного там нету.
Здравствуйте, anonymous, Вы писали:
ЗХ>>б) чтобы перемещаться по "бесконечной ленте", используем вот эти странные квадратики сверху и снизу от статей
A>А нельзя ли приделать к этим "странным квадратикам" всплывающие подсказки, а то 3 буквы маловато несут информации.
Странные квадратики еще будем улучшать (я, честно говоря, надеялся, что тут кто-то будет чего обсуждать, но нет — так нет.)
Скорее всего, они будут отличаться цветом рамочки (каждому словарю — свой цвет). Тултипы — тоже может быть, хотя я и не уверен, на что они будут похожи. Возможно, будет переключение по квадратикам наведением, а не кликом — то есть такой вот "тултип" размером во все окно программы
ЗХ>>Помнить, что это proof-of-concept, то есть никаких настроек подключения/прокси и вообще ничего умного там нету.
A>А когда будет прокси?
А чего, этим уже кто-то реально пользуется?
Вообще, прокси добавить, кажется, не сложно, почему я этого пока не сделал — лень лепить ГУИ-настройки. То есть, он может появиться скоро, но настройки будут в файлах конфигов
Вообще, план на ближайшие версии такой:
* сделать нормальную поддержку сети (прокси, переадресации, отсутствующие страницы и т.п.)
* движок описания и выдирания словарей улучшить
* ввести умные подсказки при наборе запроса
* много экспериментироватьс UI с целью найти максимально удобный, лаконичный и извращенческий вариант
* сделать ГУИ-поддержку настроек (и даже наверное загрузки новых описаний словарей из Интернет-репозитория)
Люди, посигнальте вообще — это кому-то интересно? Продолжать тут выкладывать?
Здравствуйте, 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. здоровенного монстра.
Здравствуйте, anonymous, Вы писали:
A>>>А когда будет прокси? ЗХ>>А чего, этим уже кто-то реально пользуется? A>Я попытался, но меня прокси не пускает. )
Окь. Сделаю в ближайшее время.
ЗХ>>* сделать ГУИ-поддержку настроек (и даже наверное загрузки новых описаний словарей из Интернет-репозитория) A>А синтаксис формата описания стандартный или придуман?
Если скачал — посмотри sites/*.conf
Там, конечно, бардак, но должно быть понятно.
Единственное "но" — сейчас "нужная часть страницы" описывается регекспами, и как это работает, мне ни разу не нравится. Поэтому будет что-то вроде XPath или CSS-селекторов.
"Стандартный" — какой? (в смысле, есть какой-то близкий к теме стандарт? XML не предлагайте, пожалуйста.)
Здравствуйте, Mamut, Вы писали:
ЗХ>>А чего, этим уже кто-то реально пользуется?
M>Ну, я готов пользоваться часто
M>Главный минус, который мне пока видится — это то, что запускается окно командной строки.