LINUX.ORG.RU

Work in progress


0

0

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

Почему на жабу а не на питон/перл/лазарус? Потому, что надо а) минимизировать затраты б) получить максимально технологичную инсталяцию, в том числе под виндой, где как известно привыкли делать next->next->next и репозиториев нет в) хочется вменяемый платформенно-независсимый тулкит для работы с СУБД г) не хочется держать кучу сборок для кучи платформ.

Из прочего (кроме первичного каракаса приложения) среда разарботки и панель google gadgets с украшалочками. Все это на ноутбуке с C2D и 2GB оперативки, все оборудование работает, включая камеру, микрофон, вай-фай, кард-ридер и сканер отпечатков пальцев.

>>> Просмотр (1280x800, 241 Kb)

★★★★★

Проверено: hibou ()

цветочек справа умиляет :)

stave ★★★★★
()

странно... я думал на ноутбуках люди стараются оптимально использовать рабочее пространство, ан нет... рамки окон пошире, панельки со свистелками... страхи в общем.

Andru ★★★★
()
Ответ на: комментарий от tailgunner

> Fedora Eclipse - это опять попытка сборки Eclipse при помощи gcj, или что?

У шапки был IcedTea, возможно им.

a3
()

> Почему на жабу а не на питон/перл/лазарус? ... next->next->next и репозиториев нет 

тыг perl например поумолчанию установлен, а жабу нада доустанавливать..

mkfifo
()
Ответ на: комментарий от mkfifo

> тыг perl например поумолчанию установлен, а жабу нада доустанавливать..

Ну ладно, давай смоделируем ситуацию с установкой гуевой части системы на винде: скачиваем перл, ставим, скачиваем GTK, ставим, скачиваем биндинги GTK на перл, ставим, ставим клиентские бибилитеки нужной СУБД, компилируем, ставим, скачиваем перловские драйверы для этой СУБД (если они есть), ставим... И молимся чтобы оно со всей этой фигенй выжило. Да, а ведь в программке есть еще и маленький медиаплеер, а с этим в перле вообще все запущено.

Нет, в жабе лучше - javax.audio.sampled.AudioSystem и все работает - причем под виндой, линуксом, солярисом, макосом, фрей и прочими.

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

> Fedora Eclipse - это опять попытка сборки Eclipse при помощи gcj, или что?

А фиг его знает. Главное, что это в плане плагинов совместимо с Eclipse 3.4.2 и позволяет вполне себе комфортно работать с кодом, предоставляя автодополнения и всякие мелочи в плане рефакторинга. Ну и плюс компиляция "на лету" с моментальной подсветкой ошибок компиляции и обращений к deprecated-методам, то есть если в коде в редакторе нет красных меток, то он сп ервого захода собирается "внешним" javac и работает (последнейй не всегда, но сильно чаще чем обычно :-))

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от Jayrome

> Это Виста чтоли? Зачем оно здесь?

Ну, кому как не тебе знать винда это или не винда... Судя по твоему юзерагенту, ты в этом эксперт :-)

no-dashi ★★★★★
() автор топика

А что до того, что на скрине все "вистоподобненько", могу сразу сказать - визуально виста мне нравится гораздо больше чем XP, и выглядит виста гораздо аккуратней и приятней чем очень многие скрины в местной "галлерее".

no-dashi ★★★★★
() автор топика

python + cxFreeze (linux, Windows) | py2app (MacOSX) == максимально технологическое решение "в один клик". И в отличие от Явы, НЕ ТОРМОЗИТ (и разрабатывается существенно быстрее).

glebiao
()
Ответ на: комментарий от Andru

> я думал на ноутбуках люди стараются оптимально использовать рабочее пространство

а) при разрешении 1280x800 критичным ресурсом является высота, а не ширина

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

в) размер заголовка окна вполен разумный IMHO - заголовок виден, в него легко попасть при работе мышой, и не надо напрягать глаз

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от glebiao

> python + cxFreeze

И из питона можно будет однообразно работать с Oracle, MSSQL, Firebird и PosgresSQL без перекомпиляции, и сделать GUI можно будет только на стандартной билиотеке, без доставки GTK/QT и PyGTK+PyQT? :-)

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от no-dashi

ну в Висте панельку нижнюю можно растянуть, чтобы список приложений не скукоживался.
А на скрине, плюс ко всему прочему, еще и строка меню.
Не жмёт в пространстве?

Хотя так да, симпатичный скрин.

Correctnoe_imya_polzovatelya ★★★★★
()
Ответ на: комментарий от no-dashi

>И из питона можно будет однообразно работать с Oracle, MSSQL, Firebird и PosgresSQL без перекомпиляции

конечно

>только на стандартной билиотеке, без доставки GTK/QT и PyGTK+PyQT? :-)

ставишь PyQt(4) на машину разработчика. cxFreeze делает .exe + кучу .so/.dll, включая PyQt4. Всё. Юзер знать ни о чём не знает.

glebiao
()
Ответ на: комментарий от Correctnoe_imya_polzovatelya

> Не жмёт в пространстве?

Нижняя панель - не жмет.

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

Так что обычный расклад в режиме кодинга - на первом воркспейсе IDE и справка по API, на втором то что надо для тестов, на третьем линк с базой данных, на четвертом всякие фоновые задачи.

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от glebiao

> cxFreeze делает .exe + кучу .so/.dll, включая PyQt4

И все равно тащить с собой GTK или QT, и native-клиенты к СУБД. Плюс у каждого из клиентов своя собственная методика конфигурации. JDBC thin драйвер может и не так быстр, но не привязан к платформе, и весит раз этак в пять меньше.

P.S.: и еще - жаба не тормозит. Проверено, и не только мной

no-dashi ★★★★★
() автор топика

однако односельчанин! а то думаю зачем погодный гаджет показывает мою температуру за окном =)

v0rbis ★★
()
Ответ на: комментарий от no-dashi

>> cxFreeze делает .exe + кучу .so/.dll, включая PyQt4 > И все равно тащить с собой GTK или QT,

ой. можно подумать свинг за собой не таскаешь.

> и native-клиенты к СУБД.

нет, доступ к СУБД прозрачно встроен в стандартную библиотеку питона и не зависит (в общем случае) о используемой СУБД

> Плюс у каждого из клиентов своя собственная методика конфигурации.

см. выше.

Конечно, если захочется макс. эффективности или доп. плюшек. тогда конечно, можно использовать специализированные (под конкретную СУБД) модули. В любом случае никакой специальной конфигурации, не требуется.

>P.S.: и еще - жаба не тормозит. Проверено, и не только мной

агащасблин

glebiao
()
Ответ на: комментарий от no-dashi

> А что до того, что на скрине все "вистоподобненько", могу сразу сказать - визуально виста мне нравится гораздо больше чем XP, и выглядит виста гораздо аккуратней и приятней чем очень многие скрины в местной "галлерее".

Ну то, что на скрине, по убогости переплюнуло сам оригинал. Да и висит оно всё в той же
> "галлерее"

Jayrome ★★★★★
()
Ответ на: комментарий от nekromancer

> на какой стадии портированый прорект и будет ли возможность его заиметь

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

Проект закрытый, сугубо коммерческий, сильно завязаный на бизнес-процессы покупателя. В связи с такой спецификой, с каждым покупателем продукта ведется индивидуальная работа, в том числе по интеграции продукта с пользовательским ERP/CRM, ну и наличествует завязка на записывающее звук оборудование.

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

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

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от glebiao

> ой. можно подумать свинг за собой не таскаешь.

Не таскаю. Есть $jre_home/rt.jar, там оно лежит. Ставится вместе с JRE :-)

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от no-dashi

>> ой. можно подумать свинг за собой не таскаешь. > Не таскаю. Есть $jre_home/rt.jar, там оно лежит. Ставится вместе с JRE :-)

ну и какая половая разница?

glebiao
()

> с дельфи на жабу

+1

Зачетно!

Bioreactor ★★★★★
()

Мило... :) А чего под встроенным аудиоплеером такое большое пустое пространство?

X-Pilot ★★★★★
()

Нет, ну конечно же жуткая проприетарщина, дельфи, жаба это труЪ (вон даже биореактор одобрил). Самому тоже приходится заниматься подобным :(

Но по скриншоту - вистоватенько и шрифты в заголовках - леденящий душу пиздец...

RaySlava
()
Ответ на: комментарий от glebiao

> ну и какая половая разница?

Сантиметров этак 20 :-)

Во-первых, не надо таскать дополнительных библиотек. То есть клиент ставит JRE и ставит JAR-ы приложения (вместе с JAR-ами JDBC-драйверов, если это позволяет лицензия на драйвер) - все, приложение готово к работе. Сравни это с твоей схемой: юзер ставит питон, затем ставит QT/GTK, затем ставит приложение, ставит нативного клиента к СУБД, затем ставит приложение.

Во-вторых, нет нужды иметь несколько девелоперских окружений: поведение виджетов абсолютно одинаково на всех платформах - нет привязки к версиям QT/GTK и прочих странных проблем, не надо выдумывать воркэраунды для "платформенных" багов.

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от X-Pilot

> Мило... :) А чего под встроенным аудиоплеером такое большое пустое пространство?

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

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от RaySlava

> Нет, ну конечно же жуткая проприетарщина

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

no-dashi ★★★★★
() автор топика

Скажите, а методология и идеология сильно отличается от делфевой? И что можно почитать по сабжу.

zensey
()
Ответ на: комментарий от zensey

> Скажите, а методология и идеология сильно отличается от делфевой?

Очень. Начать с того, что в жабе у всех компонентов разнесены модель данных, внешнее представление и реакция на события, задекларирован отказ от "пиксельной" фиксированной разметки (используются LayoutManager'ы), и совершенно другое API.

> И что можно почитать по сабжу.

Не надо читать. Надо садиться и писать код. Ничто не заменит опыт.

no-dashi ★★★★★
() автор топика

> Потому, что надо а) минимизировать затраты

Жаба... ага... ну вы поняли.

Если ООП то на QT никак не судьба ? Уж минимальный рантайм qt куда как меньше и шустрее нежели JRE. И кроссплатформенность присутствует.

Ы?

iBliss
()
Ответ на: комментарий от iBliss

> И кроссплатформенность присутствует.

И девелоперское окружение для каждой платформы (то есть минимум два - для винды и для линукса). И привязка на native-драйверы клиентов СУБД (mssql для линукса? oracle для freebsd?)

no-dashi ★★★★★
() автор топика

Ну и еще по интерфейсу: панель с кнопками плеера - отцепляема (ее можно перетаскивать?! o_O)? Кстати, какой LayoutManager использовался?

X-Pilot ★★★★★
()
Ответ на: комментарий от X-Pilot

> Ну и еще по интерфейсу: панель с кнопками плеера - отцепляема (ее можно перетаскивать?! o_O)?

Это отключаемо - можно взвести соответствующий флажок, и панель станет нетаскабельна. Знание матчасти рулит и педалит, да! :-)

> Кстати, какой LayoutManager использовался?

Если ты используешь JToolBar, то лучшим (а может и единственным) выбором будет BorderLayout - панель инструментов прицепляется через <Container>.add(<Component>,BorderLayout.{SOUTH|NORD|EAST|WEST}). Разделение рабочей области на две зоны сделано через JSplitPane.

no-dashi ★★★★★
() автор топика

Гы, помнится, в одной конторе начальство очень любило послушать записи переговоров техподов с абонентами,через DragNet-овскую тулзень ;-)

Вопрос к автору, а почему морда на Swing, а не SWT?

sabonez ★☆☆☆
()
Ответ на: комментарий от no-dashi

> И девелоперское окружение для каждой платформы (то есть минимум два - для винды и для линукса).

Ну тут зоопарк виртуалок рулит. Ориентировочно 1-платформа ~ 3Gb. И оттестить можно даже то, что предполагается только в перспективе.

> И привязка на native-драйверы клиентов СУБД (mssql для линукса? oracle для freebsd?)

У QT свой фрэймворк к UnixODBC - этот должен покрыть и оракел и mssql.

Ну таки да тут скорее вопрос важность/сложность vs скорость разработки.

iBliss
()
Ответ на: комментарий от no-dashi

>mssql для линукса? oracle для freebsd?

А odbc не проканает?

sabonez ★☆☆☆
()

Я бы поправил в настройках emerald'а обводку заголовков и выбрал всё-таки pyqt, хотя про базы данных конечно вам виднее...

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

а всё таки скажу что имхо для такой задачи тупо файловая система правильнее и не надо oracle под freebsd городить...

ps. у нас БД преподает Рудаков... корни вероятно искать где-то тут...

ei-grad ★★★★★
()

эклипс на русском, офигеть %)

thevery ★★★★
()
Ответ на: комментарий от iBliss

уж если так хочется кутей, то есть QT Jambi под Java.

ps у кутэ, кстати, LGPL лицензия совсем недавно появилась

thevery ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.