методы работы с большими объемами данных
От: Eugene Kilachkoff Россия  
Дата: 13.12.04 13:53
Оценка: 7 (1)
Прежде чем перейти к формулировке вопроса, сразу скажу, что он относится больше к юзабилити, чем к архитектуре и дизайну софта. К последнем он, впрочем, тоже имеет некоторое касательство, но весьма поверхностное. Об этом позже. За неимением форума по юзабилити — пишу сюда. Соответственно, под "методами" вынесенными в заголовок топика поразумеваются скорее способы структурирования и организации представления информации так, чтобы это было удобно пользователю. Теперь, собственно, формулировка:

КАК ?

Проще всего, наверное, пояснить на примере. Чтобы далеко за ним не ходить, возьмем тот же RSDN@Home. Сейчас у меня в форуме по c++ 7000+ сообщений, и это еще мало (примерно три месяца). Найти там нужный топик с первого раза — фиг. Да, я знаю про поиск. Проблема в том, что те критерии, которые удается сформулировать достаточно четко, чтобы скормить поисковому движку дают слишком большую выборку. Остальное — ручками и глазками. От той же проблемы страдает mozilla с двумя десятками ньюсгрупп с многолетней историей в каждой. Та же мозилла на время выполнения поиска фактически блокирует все остальные действия. Это уже "динамическая" проблема — потенцально долгий запрос блокирует систему и заставляет юзера ждать пока она не освободится.

Еще один аспект проблемы — ввод данных. Под вводом подразумевается достаточно узкий смысл, а именно — задача выделения некоторого подмножества из ответа для дальнейшей обработки. Заставить юзера прокликать мышкой тысячу чекбоксов — в конечном итоге получится только . Сюда же относятся и всяческие sliders & scrollbars, которые требуется точно спозиционировать в диапазоне 1.0 — 10000.0. И, хотя в некоторых случаях еще можно организовать ввод числовых данных, это не всегда удается. Жизненный пример — регулировка громкости. Импеданс моих наушников и звуковой платы так "удачно" согласуются, что юзабельных делений всего два: тихо и громко (в самом низу шкалы). От остального закладывает уши. Здесь выходом могла бы быть логарифмическая шкала. Мышиная акселерация — примерно из той же области.

Теперь, собственно, как с этим бороться. Все это достаточно разрозненные мысли, поэтому изложение немного сумбурно.
Ну, во-первых, при большом объеме выборки можно применить кластеризацию данных. То есть, близкие по какому либо критерию данные представляются как одна смысловая единица. В том же rsdn@home можно было бы сворачивать ветки недельной, месячной итд давности в одну строчку. Во-вторых, выборку можно делить на обозримые элементы (пример: каталог веб-магазина с кнопкой "показать модели только этого производителя", "показать с характеристикой не хуже чем.."). Из той же серии — сворачивание кода в visual studio. Сюда же можно отнести выделение наиболее "интересных" результатов, типа скоринга в gnus. Тоже в тему — быстрый доступ к элементам выборки, наподобие find-as-you-type в Lingvo и firefox, но это применимо не везде.
Выделение данных. Здесь в общем-то способ один, только с различными вариациями — запомнить сделанный один раз выбор и позволить им воспользоваться в дальнейшем. Это и "временные панели" в файловых менеджерах, позволяющие долго и методично выбирать нужные файлы, а потом одним махом сделать над ними какую-либо операцию, и 3dsmax, запоминающий множество выбранных примитивов. Ну или группировка юнитов в warcraft. В общем, подход типа "shopping cart".
Теперь с динамикой. Подход в общем-то один — пакетная обработка. Например, virtual dub позволяет отложить задание и выполнить все накопившееся сразу пачкой. Drweb выдает список найденных вирусов в конце работы, делая ненужным присутствие оператора за клавиатурой. В corel photo-paint в свое время была чудная фишка (сейчас убрали вроде) — он позволял загрузить уменьшенную копию изображения, затем записывал все действия, а потом воспроизводил их на полноформатной копии.

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

Что посоветует общественность ?
... << RSDN@Home 1.1.3 stable >>
Re: методы работы с большими объемами данных
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.12.04 09:58
Оценка: 6 (1)
Здравствуйте, Eugene Kilachkoff, Вы писали:

EK>Что посоветует общественность ?

Re[7]: Загрузка большого объема данных
Автор: Sinclair
Дата: 30.06.03
.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: методы работы с большими объемами данных
От: Eugene Kilachkoff Россия  
Дата: 14.12.04 20:11
Оценка:
Здравствуйте, Sinclair, Вы писали:
EK>>Что посоветует общественность ?
S>Re[7]: Загрузка большого объема данных
Автор: Sinclair
Дата: 30.06.03
.

Интересно. Спасибо.
А еще ? Это все касается группировки данных. А что с многомерными данными ? А динамика ?

Кстати, почему нет софта написанного в таком стиле ? Ну, то что сложнее — понятно, но должно же быть какое-то применение, где это окупится А так, вообще было бы неплохо как-нить сесть за , пописать юзкейсы, выделить паттерны да и родить библиотечку
... << RSDN@Home 1.1.3 stable >>
Re[3]: методы работы с большими объемами данных
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.12.04 04:31
Оценка:
Здравствуйте, Eugene Kilachkoff, Вы писали:
EK>А еще ? Это все касается группировки данных. А что с многомерными данными ?
Ну, насколько мне известно, ничего лучше OLAP-кубов (т.е. pivot table и pivot chart) для этого не придумали.
EK>А динамика ?
А это что?
EK>Кстати, почему нет софта написанного в таком стиле ?
Руки не дошли
EK>Ну, то что сложнее — понятно, но должно же быть какое-то применение, где это окупится А так, вообще было бы неплохо как-нить сесть за , пописать юзкейсы, выделить паттерны да и родить библиотечку
Тут, видишь, надо тестировать-то на настоящих приложениях. Юзабилити — она неотделима от задачи.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: методы работы с большими объемами данных
От: kvadratik  
Дата: 15.12.04 07:58
Оценка: :)
Один знакомый мужик написал программку, которая позволяет работать с потрясающим объёмом текстовых документов. Принцип каталогизации — семантический анализ текста.. возможно, я не правильно выражаюсь.. короче, на выходе мы получаем дерево каталогов, сформированное на основе терминов (слов, фраз), используемых в тексте документов. При этом один документ может попасть в несколько веток.. к примеру, описание автомобиля может быть в разделах "авто", "техника", "новости" и "как стать самым крутым самцом на свете".

Вот ссылка: www.pcbirs.ru, может быть сможете отыскать что-нибудь полезное..
Re[5]: методы работы с большими объемами данных
От: Eugene Kilachkoff Россия  
Дата: 16.12.04 06:42
Оценка:
Здравствуйте, kvadratik, Вы писали:
K>Вот ссылка: www.pcbirs.ru, может быть сможете отыскать что-нибудь полезное..
Стремный какой-то full-text index. Ну и "future" относится к 2001 году . Впрочем, мой вопрос был все же в контексте юзабилити. Ну и конкретных систем я не ищу.
... << RSDN@Home 1.1.3 stable >>
Re[4]: методы работы с большими объемами данных
От: Eugene Kilachkoff Россия  
Дата: 22.12.04 06:48
Оценка:
Здравствуйте, Sinclair, Вы писали:
EK>>А динамика ?
S>А это что?
Я в смысле динамических характеристик системы. Ну, например, времени реакции, ее гарантированности (что долгий запрос не заблокирует нафиг все)... О ! Хорошую фичу придумал — назначать timeframe для операции, типа "результаты этого поиска мне к завтрему". Ну или ограничения вида "максимальное количество потребляемых ресурсов".

EK>>Кстати, почему нет софта написанного в таком стиле ?

S>Руки не дошли
EK>>Ну, то что сложнее — понятно, но должно же быть какое-то применение, где это окупится А так, вообще было бы неплохо как-нить сесть за , пописать юзкейсы, выделить паттерны да и родить библиотечку
S>Тут, видишь, надо тестировать-то на настоящих приложениях. Юзабилити — она неотделима от задачи.
Оно, конечно так, только вот, например, прогрессбар — он сам по себе виджет. Независимо от своего look & feel. В рамках той же "кластеризации" можно попытаться соорудить нашлепку над каким-нибудь View, чтобы он группировал данные. Ну или не над view, над document... впрочем, тут думать надо.
... << RSDN@Home 1.1.3 stable >>
Re: методы работы с большими объемами данных
От: c-smile Канада http://terrainformatica.com
Дата: 22.12.04 07:29
Оценка: 11 (2)
Здравствуйте, Eugene Kilachkoff, Вы писали:

EK>Что посоветует общественность ?


Вот смотри:
http://www.devon-technologies.com/files/screenshots/devonagent/DEVONagent_Main.jpg

Слева шкала пересечений слов в статьях с искомым 'devonian'.

Вот у них же в другом продукте "See also" панель.
http://www.devon-technologies.com/files/screenshots/devonnote/DEVONnote_SeeAlso.jpg

Я видел несколько экспиремнетальных работ в области визуализации всяко разных данных
в разных отраслях и каждая state of art. На самом деле практически все решает удачно найденная метафора
данных в данной конкретной области. Те же hyperbolic trees взять.

Вот можно начать искать отсюда и дальше по спирали:
http://www.pnl.gov/infoviz/technologies.html
http://www.otal.umd.edu/Olive/

А вообще тема интересная и нужная.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.