Bluetooth + Funambol
На работе подняли вопрос о покупке сотрудникам мобильных телефонов для работы. А я вызвался исследовать возможность синхронизации списка контактов и заданий между нашим офисным планировщиком и телефонами. Когда-то основательно повозился, настраивая синхронизацию между Nokia N73 и Google-календарём[1]. Nokia N73 работает на Symbian-e, и синхронизация там построена на SyncML. Большинство порталов, для такой синхронизации построены на базе open-source сервера Funambol.
Скачал и установил на свой компьютер Funambol. Часа 3 провозился пытаясь настроить синхронизацию данных с мобильного телефона. Основная проблема в том, что компьютер может выходить в интернет через мобильный телефон подключенный через BlueTooth, а вот телефон подключенный через BlueTooth к компьютеру, через компьютер в сеть выходить отказывается. В интернете, вроде есть рецепты для N73, но они требуют установки в Symbian дополнительного софта, который придётся долго искать и настраивать. Это куда сложнее, чем, например, скачать аську на нокиа 5800, где всё просто - поставил и работает. =( Договорился с админом, в понедельник будем пробовать синхронизацию через WiFi.
DEP
Коллега столкнулся с загадочной проблемой. У одного клиента, не работали формы созданные с помощью DreamVCL (это такие древние компоненты, включающие в себя дизайнер форм, и внутреннюю реализацию Pascal). При нажатии на кнопку выскакивал Access Violation. Известно, что аналогичная проблема встречалась ещё у двух клиентов (и не решилась). В офисе ошибку повторить не удалось. Коллега бился почти неделю, прежде чем пришёл за помощью. Пробовали отключать все возможные оптимизации, ошибка оставлась. Посоветовал ему попробовать подключить к проекту EurekaLog, чтобы точно определить место возникновения ошибки. Выяснилось что ошибка возникает при вызове события TButton.OnClick. При этом, до выполнения кода обработчика события, дело не доходит.
В результате, оказалось, что причиной для проявления проблемы была старательность системного администратора, включившего на проблемном компьютере DEP не только для сервисов Windows, а для всех программ. После того как наша софтина была добавлена в исключения, проблема пропала. Что интересно, что сначала мне пришла в голову мысль: "а может это DEP как-нибудь влияет", и только после того как выяснилось что это действительно DEP, я прочитал в Wiki описание DEP, и стало ясно почему так происходило. Вот так вот, в кои-то веки интуиция выручила. Теперь интересно, свободны ли другие "Form Designer-ы"(Greatis Form Designer, EControl Form Designer) от подобного бага.
Кстати, было бы очень интересно почитать обзор и сравнение функционала этих дизайнеров. Если кто-нибудь встречал сравнительный обзор, поделитесь пожалуйста ссылочкой. ;-)
Пост о DEP(+набор ссылок): http://alt0.livejournal.com/118310.html
UDF
Помимо этого, начальство подняло вопрос о переходе на Firebird 2.x, и выяснилось, что сдерживающим фактором здесь являются наши внутренние udf-ки. Сервер 2.1 под Windows просто падает при вызове некоторых функций. Udf-ки писались и компилировались лет 5 тому назад. Человек, который их писал, уже давно ушёл. На Си у нас никто не программирует и опыта особого не имеет(я лет 8 назад все лабораторки в универе писал на Borland C 3.1, потому что на моём факультете Паскаль на первом курсе не преподали). Переход на Firebird 2.x был отложен до лучших времён. И вот эти времена настали. Часть времени этой недели было потрачено на попытки собрать исходник на Си в dll-ку под Windows c помощью MinGW. Хвала Dimitry Sibiryakov и неизвестному человеку из RedSoft за помощь, dll-ка получилась. Сейчас думаю, о том, как бы организовать сборку 4-х версий для Windows/Linux/32bit/64bit на одной машине. Но судя по тому, что удалось найти в интернете о cross toolchain, это задачка не из тривиальных и быстрее и выгоднее будет собрать нужные версии под соответствующими ОСями.
[1] Для синхронизации планировщика в телефоне и календаря Гагл, я использую сервис ScheduleWorld. Этот сервис построен на базе Funambol, и умеет синхронизироваться с сервисами Google. Хотя совсем недавно, сервисы Google наконец-то обзавелись собственной поддержкой SyncML, но пока что это работает только для контактов.
Должен сообщить, что UDF для Firebird не обязательно писать на C.
ОтветитьУдалитьЭто можно сделать на Delphi или FreePascal(для Linux и Free BSD)
Это обычная dll, нужно только правильно указать
соглашеня о вызовах (stdcall)
и есть особенности выделения и освобождения памяти.
Об этом можно прочитать на www.ibase.ru
Да я знаю =) Я много материала перерыл, пока искал материал. В моём случае у меня уже были исходники написанные на Си, и после перекомпиляции они должны были работать точь-в-точь как раньше. Едва ли переписывание их на FreePascal было бы меньшим из этих зол.
ОтветитьУдалить