Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Сбор мнений по поводу возможного нового проекта  (Прочитано 1848 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн maximand

  • Активист
  • *
  • Сообщений: 307
    • Просмотр профиля
Однако, главный вопрос так и остался открытым. На чём и как лучше писать «морду» приложения?
Только предложу что знаю: wxPython (существуют ещё wxRuby, wxPascal, wxJava  и, наверное, прочие wx)

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
maximand, будем медленно работать, что-то компилируемое надо.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
maximand,
man exifА JAVA не нужна.

Оффлайн jcrush

  • Активист
  • *
  • Сообщений: 678
  • Khabara.Ru
    • Просмотр профиля
    • Компьютерные интернет обзоры
я бы поставил просмотрщик, которые по меткам из заголовок фоток раставлял координаты на гугл карте, как в ВК. ну плюс по годам и месяцам и городам из этих же методанных, а так особо не нужно ничего
Ubuntu Mate Stfw.Ru — SEO блог ...

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Python для интерфейса, если готовы его учить (что несложно, особенно при наличии опыта программирования). Для него, чтобы кроссплатформенно, wxPython или pyQt/pySide. pyGTK, насколько я знаю, на винде/маке не очень пашет, но могу ошибаться.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
У меня есть несколько соображений.
1. Файлы в БД - это не хорошее решение. Только ссылки. На хабре это часто рассматривают. Единственный вопрос в таком решении - это синхронизация, но она решаема в принципе.
2. Делайте приложение не только межплатформенным, но и сетевым. Будет работать где угодно и откуда угодно (зачем это нужно я даже не рассматриваю - каждый придумает сам). Поэтому надо использовать клиент-серверную технологию.
3. В качестве языка программирования надо использовать питон. Единственный минус его - это привыкание. После него уже на C/C++ писать не хочется совершенно. Это я по себе говорю.
4. Сервер должен быть тоже на питоне (лучше пока версия 2.7). Я рекомендую Flask в качестве библиотеки сервера (с jango лучше не связывайтесь - это уже слишком и не так наглядно и просто). Все очень удобно, просто и быстро - практически приложение в кармане. Там все работает без неожиданностей - js(jquery - все мной применяемые плагины завелись сразу) и само собой - ajax (это обязательно для приложений).
(Нажмите, чтобы показать/скрыть)
5. БД для Ваших целей c избытком пойдет SQLite. Если вдруг придется использовать другую более могучую SQL БД, перейдете очень быстро.
« Последнее редактирование: 11 Марта 2014, 09:50:42 от alexander.pronin »

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
alexander.pronin, как понимаю, планируется работа с большим количеством данных. А теперь представьте, как будет питон проседать.

Может через cgi-bin компилируемые?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
В сетевых приложениях питон не проседает, т.к. библиотеки ввода-вывода скомпилированные низкоуровневые модули. Я этот вопрос специально изучал. А все гуи рендеринги в клиентских браузерах. Совершенно не на чем проседать.
А что-то считать в серверной части даже не планируется. Но если вдруг, то С/C++ можно заиспользовать для таких задач (как Вы правильно заметили - cgi-bin компилируемые). Но это только на всякий противопожарный случай. Думаю, что до таких вариантов даже не дойдет.
« Последнее редактирование: 11 Марта 2014, 15:24:05 от alexander.pronin »

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Что-то тема ушла в средства разработки, что на мой взгляд важно только тогда, когда определиться уже детально наполнение проекта. А пока не полностью оформлена концепция проекта...

Для начала нужно остановится на определении границ/этапов.

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

Сама идея отрыва от концепции файл - это то чего сильно не хватает и на чем и нужно сосредоточиться в рамках такого проекта...

А что безусловно важно сразу заложить в интерфейс - возможность открытия изображений из каталога в стороннем приложении.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Lifewalker

  • Автор темы
  • Гость
alexander.pronin, клиент-серверная структура приложения, это интересно. В общем-то не предполагал замахиваться на такой масштаб, но это интересное предложение.

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

Пользователь решил продолжить мысль 11 Марта 2014, 20:02:45:
По итогам размышлений вырисовалась такая схемка.

Программа состоит из трёх уровней в порядке близости к пользователю: интерфейс, движок (логика), хранилище.

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

"Движок" не имеет представления о файлах, обменивается с "хранилищем" только посредством уникального идентификатора "образа" и набора атрибутов. Здесь предполагаю разместить сортировки, группировки, создание миниатюр и прочие глупости, имеющие отношение к изоображению. Выполняет запросы "интерфейса" на принятие и выдачу "образа" или набора/наборов "образов" по запросу. Ну типа SQL сервер, только для картинок. И проще, в разы :)

"Интерфейс" отображает списки, картинки, метки и прочие. Думаю, тут и без слов понятно. Тонкий, тупой, шустрый, возможно (размечтался...) браузерный.

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

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

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

У кого есть соображения?
« Последнее редактирование: 11 Марта 2014, 20:07:21 от Lifewalker »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
ТС, у меня были какие-то смутные чувства, что я что-то уже где-то видел, а сегодня я понял, что Вы пытаетесь разработать велосипед.
http://galleryproject.org/
http://gallery-3.ru/forum/
Там все Ваши желания уже выполнены.

Lifewalker

  • Автор темы
  • Гость
Почти не сомневался, что я не один такой умный :)
Щас заценим.

Пользователь решил продолжить мысль 12 Марта 2014, 09:17:10:
Заценил. В общем, ситуация примерно как в анекдоте "Правда, что академик Амбарцумян выиграл в лотерею "Волгу"? Правда, но не академик, а футболист, не в лотерею, а в преферанс, не "Волгу", а сто рублей, не выиграл, а проиграл". Оно конечно похоже, но совсем не так похоже, как я хочу. Хотя, конечно за подсказку благодарю покорно, там есть пара моментов, которые я упустил бы.
« Последнее редактирование: 12 Марта 2014, 11:14:17 от Lifewalker »

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
maximand,
wxPython - очень даже понравился.
ГУЙ на нем делать легко.
Но у меня проблема в том, что в основном пишу
логические игровые программы.
Питон по скорости их ни фига не тянет.
Ни чего не помогает, ни минимакс, ни альфа-бета отсечение.
Медленный.
Пару лет назад попробовал PyPy Питон.
Вроде как порадовал производительностью, но...
как минимум он должен быть установлен в системе.

Пользователь решил продолжить мысль 12 Марта 2014, 09:58:11:
alexander.pronin,
Пока не буду скачивать.
Ибо уже четвертый год на Ubuntu-линукс сижу.
Ваша программа под винду?
« Последнее редактирование: 12 Марта 2014, 09:58:11 от Señor_Gaga »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
alexander.pronin,
Ибо уже четвертый год на Ubuntu-линукс сижу.
Ваша программа под винду?
Я не понял вопроса, но попробую ответить.
Если говорить про Flask, то он находится в оф. репозитарии Ubuntu.
http://ru.wikibooks.org/wiki/Flask
По сути пишется веб-браузер на основании библиотеки Flask. Он может быть установлен на хост с любой ОС (я ставил на Linux (Ubuntu) и на Windows (M$ Server 2008) без проблем).
Клиентом является более менее нормальный браузер, т.е. можно смотреть на планшете, на телефоне, на десктопе с любой ОС.
Нормальными браузерами я считаю: ФФ, хром, хромиум - это проверено лично. Могу еще парочку привести, но их не проверял.
Ненормальными браузерами я считаю семейство ИЕ - это уроды от рождения.

Оффлайн maximand

  • Активист
  • *
  • Сообщений: 307
    • Просмотр профиля
maximand,
wxPython - очень даже понравился.
ГУЙ на нем делать легко.
Но у меня проблема в том, что в основном пишу
логические игровые программы.
Питон по скорости их ни фига не тянет.
Ни чего не помогает, ни минимакс, ни альфа-бета отсечение.
Медленный.
Ничего не делал на Питоне, только на Lua. в Lua есть возможность как из C++ приложения запускать скрипты, так и наоборот, из Lua запускать функции, написанные на c++.
Уверен, что и в Питоне, что-то похожее есть.

 

Страница сгенерирована за 0.032 секунд. Запросов: 25.