Страницы

пятница, 27 марта 2009 г.

Текучка 9. Итоги за неделю работы.

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, но пока что это работает только для контактов.

Контактная информация

E-mail/Google Talk

image

ICQ

image

Skype

My status

Кошельки Webmoney:

  • R422445527838
  • E344705116688
  • Z247858224495

В аське и скайпе бываю нечасто. При запросе о добавлении в аське, обязательно укажите ключевое слово Tdelphi, и о себе пишите translitom.

Языки: русский, english, latviešu.

понедельник, 23 марта 2009 г.

Lazy Delphi Builder 1.1.6.115 Alpha

  1. Добавлена кнопка "Очистить".
  2. Сделано, чтобы по ExcludeMask=*6* проверялись только имена файлов, без папок.
  3. В дереве пакетов включено выделение правой кнопкой мыши.
    Исправлено: LazyDelphiBuilder в качестве пути берёт только LibPath/DebugLibPath (c:\Program Files\CodeGear\RAD Studio\Lib), игнорируя Library Search Path.
  4. Исправлена ошибка с удалением папок(созданием бекапа)
  5. Исправлено: не работало добавление папок, если есть BasePath
  6. Добавлено: Когда пользователь прерывает операцию, показывать текст, что операция была прервана
  7. Исправлено: После загрузки профиля с относительным каталогом, оный не подсвечивается жирным
  8. Исправлено: После переустановки базовой папки, удалённые файлы вновь становятся активными.

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

Остальные ошибки считаются неизвестными и ждут того чтобы о них сообщили разработчику.;)

Скачивать здесь: http://code.google.com/p/lazyproject/downloads/list

Итоги осеннего семестра в RTU, по программе Информационные технологии.

Итак, я наконец ликвидировал в университете свои хвосты за первый семестр последнего курса, теперь буду отращивать новые и писать бакалаврскую. =)

Заметил, что к учёбе сейчас стал относиться не так как раньше. Помню когда поступал в университет после школы – совсем не представлял как и где буду использовать полученные знания. Соответственно, предметы, которые не относились к программированию, в основном сдавались “для галочки”. Восстанавливаясь на обучение в этом году, я делал это для той же галочки, но ликвидируя хвосты, понял, что учиться стало намного интереснее.

Я хочу подвести здесь некоторые итоги по предметам, чтобы не забыть за что же я платил деньги. =)

Операционные системы.

Предмет познакомил меня с bash-скриптами, регулярными выражениями, Linux-загрузчиками lilo и grub, и поиском решений к задачам о синхронизации потоков. Несколько лекций было посвящено MS-DOS(память, загрузчики, autoexec.bat и config.sys) – а это по-моему уже совсем неактуально. Было бы здорово, если бы эту часть заменили лекциями об операционках для портативных компьютеров и мобильных телефонов.

Большие Базы Данных.

Большие БД мы проходили на примере Oracle. Преподаватель предоставил потрясающие слайды, дающие исчерпывающее представление о работе с СУБД Oracle. Чтобы не писать кучу объёмных отчётов по этому предмету, я договорился с преподом, что проведу исследование о механизмах доступа к БД Oracle из Delphi. Я собрал и установил все доступные компоненты для работы с этой БД, и провёл несколько тестов, с целью выяснить, с какими типами данных Oracle Delphi умеет работать. В результате у меня получился отчёт на 50 страниц. А результаты исследования получились довольно неожиданными, и, как мне сейчас кажется не совсем корректными(часть информации полученной мной, противоречит заявленной на официальных сайтах). Именно из-за этой некорректности, я пока не публикую эти результаты в этом блоге.:( Кстати, посты Стандартный DbGrid с многострочными заголовками и Сравнительная таблица технологий доступа к СУБД Oracle из Delphi являются побочным продуктом этого исследования.:) Я также решил, что было бы хорошо развить эту тему, и выбрал её в качестве основы для бакалаврской работы.

Методы принятия решений.

Интересный предмет, на котором нам рассказывали о методах принятия решений, таких как decision matrix, decision trees. Я не нашёл в интернете информации по этому предмету на русском языке. Эти методы довольно замечательно вписываются в курс Управление Проектами. Побочным продуктом этого предмета стала одна небольшая программка, по составлению расписания мероприятий с учётом в ограничения ресурсов. Изначально я собирался выложить программку вместе с исходным кодом, но потом, оценив трудозатраты, передумал. Думаю, что из этой программки получится отличный “планировщик”.

Введение в управление проектами.

С УП мне пришлось столкнуться ещё когда я работал над первым продуктом на своей текущей работе – там как раз нужно было реализовать модуль управления типовыми проектами в дополнение к модулю планирования ресурсов. Этот предмет для меня особенно важен, ибо кодерство-кодерством, а карьеру всё-таки нужно делать, и понимание принципов управления проектами в этом плане будет существенным подспорьем. Поначалу я собирался связать тему бакалаврской работы с УП, и даже успел прочитать весь архив сообщества ru_pm в livejournal. =)

Введение в генетические алгоритмы.

Генетические алгоритмы – интересный подход к решению задач, с которыми я на практике ни разу не сталкивался. Забавно, что это был второй выборный предмет, связанный с генетическими алгоритмами, который я выбирал, так что в этот раз было легко, благо многое я уже знал. =) Курс включал в себя: решение задач поиска экстремума функций методами генетических алгоритмов и градиентным методам, решение задачи коммивояжера. Что не понравилось – необходимость рассчитывать вручную большие объёмы информации и написание огромного отчёта.

Информационные системы в логистике.

Решение задач о планировании спроса на основании статистических данных за предыдущие годы, решение задачи коммивояжера с помощью Logware. Решение задач о планировании организации цепочки поставок, рассчитав конечную стоимость для разных случаев организации поставки с помощью ASDN.

Средства для имитационного моделирования.

Практика проходила с использованием Rockwell Arena. Достаточно интересный предмет, если не обращать внимания на то, что преподавательница вела лекции так, словно её задачей было ввести студентов в транс и усыпить.


Ссылки по теме: