NVN - что же это всё-таки такое?

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

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

Как этого достичь:

  1. Первое - эргономика, собственно оно может развиваться отдельно от остальной работы.
    Дело в том, что классическое меню существует давно и мало кто его стремится переделать, но при его создании, на мой взгляд не шибко много времени уделили исследованиям того, что чаще всего используется.
    Предлагаю провести реальное мощное статистическое исследования тех пунктов меню и настроек, которые чаще всего используются и имеют особую важность - их надо озвучивать и представлять раньше других. Тут также надо предусмотреть правильные горячие клавиши + добротною настройку и подстройку "под себя".
  2. Второе - браузер, на мой взгляд, должен определять, есть ли в системе скринридер, если есть - то давать этому скринридеру хорошо отформатированный и отфильтрованные материал, если нет, то на базе eSpeak , можно сделать встроенный ридер. Более того, можно сделать пункт в меню, предусматривающий отключение системного скринридера в пользу встроенного только для браузера при желании пользователя.
  3. Последнее, наиболее важное, WebKit - это собственно движок браузера, нам либо придётся модернизировать его, для нужного нам отображения, либо написать к нему обёртку, тот и другой способ имеет свои плюсы и минусы.

Собственно - это основные три направления, остальные фитчи после.

Обсуждаем, задаём вопросы, критикуем и предлагаем.)))

возм. это не к месту, но - надо глянуть такую тему - если хотим получить в том числе и полезный опыт по изучению движку и разницы нет (если нет) - почему бы не рассмотреть тему типа gecko vs webkit ?
как здесь = http://habrahabr.ru/post/31251/ человек пишет =

.......У Gecko больше доля рынка, поясняет Knoll........
.......Для Linux существует три возможных варианта: Firefox (или другой браузер на движке Gecko), Konqueror или Opera.

что именно
ну мой взгляд

  1. это QMainWindow )))))))) - с главным меню - и как минимум - адресной строкой -
  2. главное меню предоставляет в том числе конфигурацию горячих клавиш - и разные опции настроек (сохранения закладок и т.д. а также, возможно - функционал дополнительных модулей -напр. я хочу сделать интерфейс для интеграции с сайтов - для которого на серваке должен быть реализован модуль по определённым правилам)
  3. Ну - и ниже менюшки окно движка - наша задача "выдернуть и прочитать" оттуда текст - и предоставить пользователю удобный доступ к элементам управления )) - тут место для идей. - но как сказано выше - есть и много чисто технически вопросов
humanmashine's picture

По поводу WebKit - я его предлагаю потому, что он встроен в Qt библиотеку. Собственно Gecko был бы лучше, но там придётся учить технологии Mozilla, да ещё и не понятно на чём он написан. Просто WebKit для нас более простой вариант.

это QMainWindow )))))))) - с главным меню - и как минимум - адресной строкой -

))))) Я в первый пункт вложил понятие эргономики, подозревая, что мы смакаем open source приложение, которое по согласию пользователей в целях помощи проектов будет отслеживать как люди пользуются браузерами и соберёт нам статистику, проанализировав которую мы как раз и подумаем, как лучше будет выглядеть QMainWindows (кстати надо будет назвать по-приличнее).

QMainWindow

это название дали разработчики Qt ))

humanmashine's picture

Полностью согласен, но они не могли предугадать все варианты, дали универсальный, а мы можем QNvnWindow что более специализирован, но это мы бред обсуждаем... совсем не важный)))
Хотя во многих проектах как бы есть определённые правила наименования объектов, это часто бывает полезно.

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

.....претендаторы....м-да))

кстати - а почему не написано что webkit создан на Qt?
да - там многие браузеры го использующие написаны на Qt - но сам он вроде нет...

да и ещё немного глупый вопрос - в какой именно виде мы будет взаимодейсвовать с движком - вебкитом например - на питоне исходников нет -значит используем dll ?

humanmashine's picture

Qt для питона скомпилирован уже, там есть модуль webkit и его интерфейсом... трабла в том, что если мы модернизируем webkit под наши нужды на QtC++ нам надо будет как-то скомпилить их для использования в python - а это реально трабла..... пока трабла.....

humanmashine's picture

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

Вот тут описание QWebView для PyQt,

ок) вебкит или нет но что-то действительно есть )) это хорошо)

humanmashine's picture

Там в детализированном описании написано что это на WebKit.

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

humanmashine's picture

хм... тут я ничего сказать не могу

humanmashine's picture

По-моему вот это и вот это и в общем это нам пригодится)))

humanmashine's picture

Итак, я рассмотрел Gecko в кратце, и понял, WebKit гораздо проще. Самый нативный для проектов Mozilla язык декларативный - это декларативный XUL, на котором можно писать интерфейсы, но логику не опишешь. Для XUL Gecko имеет встроенную поддержку.
В сети я стал искать, есть ли модули для встраивания Gecko в Python приложения - нашёл что-то невразумительное, самое лучшее - это. Кстати там есть ссылка на генерирования XUL кода в Python - тут. Ну а так - не пойдёт, по-моему.
По самому Gecko есть техническая документация на инглише: здеся.

Итак, выводы:
-------.....-----\\\\\ ВЫВОДЫ /////-----...---------
По моему видению дела, если мы хотим использовать Gecko, то мы должны идти по-следующей схеме:

  • Написать на С++ модуль расширения для Python который будет запускать движок и предоставлять доступ для всех необходимых для нас функций. Для этого можно использовать SIP или SWIG
  • Встроить с помощью С++ в Gecko возможность "фильтра" для парсера, то есть мы будем скачивать html и иные странички, фильтровать и изменять контент, а потом передавать всё это нашей библиотечке-модулю, управляющей Gecko, чтобы тот уже отобразил.
    Можно всё это реализовать иначе, главное, добиться того, чтобы мы могли с помощью Python повлиять на работу Gecko - опять прибегая к SIP или SWIG
  • Далее, вести разработку "как ни в чём не бывало", будто мы остались на WebKit

-------.....-----\\\\\ ВЫВОДЫ /////-----...---------
предлагаю тогда использовать webkit
humanmashine, благодарю вас качественный за анализ ситуации

самое лучшее - это

да. жёсткий сайт упоминает о братском мне Delphi))))))

Написать на С++ модуль расширения для Python который будет запускать движок и предоставлять доступ для всех необходимых для нас функций. Для этого можно использовать SIP или SWIG
Встроить с помощью С++ в Gecko возможность "фильтра" для парсера, то есть мы будем скачивать html и иные странички, фильтровать и изменять контент, а потом передавать всё это нашей библиотечке-модулю, управляющей Gecko, чтобы тот уже отобразил.
Можно всё это реализовать иначе, главное, добиться того, чтобы мы могли с помощью Python повлиять на работу Gecko - опять прибегая к SIP или SWIG
Далее, вести разработку "как ни в чём не бывало", будто мы остались на WebKit

адский план!

ВЕБкит форевер - мы любим тебя!

humanmashine's picture

Ахаах)))) Ну WebKit так WebKit