23 сент. 2012 г.

Чтобы git кирилические имена файлов отображал

Следует в git\etc\gitconfig прописать:

...
[i18n]
commitencoding = cp1251
logoutputencoding = cp866

Вместе с другими полезными установками будет:

[core]
symlinks = false
autocrlf = true
quotepath = false
ignorecase = true
[color]
diff = auto
status = auto
branch = auto
interactive = true
[pack]
packSizeLimit = 2g
[help]
format = html
[http]
sslCAinfo = /bin/curl-ca-bundle.crt
[sendemail]
smtpserver = /bin/msmtp.exe
[diff "astextplain"]
textconv = astextplain
[rebase]
autosquash = true
[i18n]
commitencoding = cp1251
logoutputencoding = cp866

20 сент. 2012 г.

Subversion, Git, Mercurial...

Такое впечатление, пока разберешься со всеми нюансами Git и Mercurial (чтобы сделать осознанный выбор) выйдет новая версия SubVersion, где будет решена проблема офф-лайн комитов и переименования файлов, что сразу снимет все вопросы.

18 сент. 2012 г.

Маска для IPv4 адреса

Маска для оператора SIMILAR TO, которую можно использовать, например, при создании домена:

CREATE DOMAIN dipaddress
VARCHAR(15)
CHECK(VALUE SIMILAR TO
'(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-6]).){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-6])')

17 сент. 2012 г.

Multithreaded debugging

Справа Oracle VM VirtualBox в котором крутится WinXP 32bit. В отладчике — Гедымин в режиме HTTP сервера. Слева — основная система для разработки — Win7 64bit. В отладчике виден код HTTP клиента платформы Гедымин.

Используется библиотека интернет компонент Indy 9.

13 сент. 2012 г.

Apple и деньги

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

Купил яблочный музыкальный плейер? Заплати копеечку за сетевой адаптер. Можно конечно и не покупать, в стандартной поставке идет USB кабель, но тогда придется забыть о быстрой подзарядке. Позарился на новейшую модель? Раскошеливайся на переходник стоимостью 29 USD или выкидывай вполне себе годное подзарядное, так как новый разъем не совместим ни с чем из существующего в природе.

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

Следите за руками:

  1. Вы разработчик мобильного приложения, которое создали, скажем, с использованием кросс-платформенного фрэймворка PhoneGap.
  2. Вы успешно запустили свое приложение на Android и Windows Phone, и теперь хотите осчастливить сотни миллионов обладателей устройств iOS.
  3. Здесь начинается самое интересное. Единственный легальный способ распространения — это магазин App Store. Для доступа к нему следует стать участником iOS Developer Program всего за (сюрприз!) 99 долларов в год.
  4. Откомпилированный проект вы не можете просто так загрузить для распространения. Файлы должны быть подписаны цифровым сертификатом, который генерируется программой Keychain Access, которая (сюрприз №2!) является приложением под операционную систему Mac OS X. Т.е. между делом вам придется прикупить хотя бы самый дешевенький (если такое понятие вообще применимо к продукту с логотипом надкушенного яблока) макинтош.
  5. Ваши финансовые вливания не гарантируют, что программа пройдет цензуру App Store и будет допущена к распространению. Но, если вам повезло, то с этого момента вы работаете не только на себя, но и на толстого дядю из солнечной Калифорнии.

    Потому как с каждой продажи Apple забирает себе скромные 30% комиссионных.

30 авг. 2012 г.

Как определить версию СУБД Firebird по номеру ODS файла базы данных

Я знаю, что в интернете есть масса информации по этому поводу, тем не менее еще раз:
  1. Пусть мы имеем файл базы данных с именем etalon.fdb
  2. Переходим в режим командной строки и выполняем команду:

    gstat -h etalon.fdb

  3. Получаем на экран информацию следующего вида:

    Database "etalon.fdb"
    Database header page information:
    Flags 0
    Checksum 12345
    Generation 1020092
    Page size 8192
    ODS version 10.0
    Oldest transaction 1020036
    Oldest active 1020037
    Oldest snapshot 1020037
    Next transaction 1020039
    Bumped transaction 1
    Sequence number 0
    Next attachment ID 15
    Implementation ID 16
    Shadow count 0
    Page buffers 8192
    Next header page 0
    Database dialect 3
    Creation date Dec 3, 2008 15:57:35
    Attributes force write

    Variable header data:
    Sweep interval: 20000
    *END*

  4. Нас интересует строка ODS (в тексте выделена). ODS расшифровывается как On Disk Structure. Смотрим номер и сверяем с таблицей:

    Номер ODSВерсия сервера Firebird
    10.0Firebird 1.0 или Yaffil
    10.1Firebird 1.5
    11.0Firebird 2.0
    11.1Firebird 2.1
    11.2Firebird 2.5
Полный список номеров ODS приведен здесь.

24 авг. 2012 г.

Ветка HTTPSRV

Создал ветку HTTPSRV на основе текущих исходников с компонентами Indy 9. Цель -- встроить в Гедымин HTTP сервер. Первый шаг:
  • Сделать нить с низким приоритетом в которую поместить компонент TidHTTPServer.
  • При обращении клиента запрашивать логин и пароль, а затем генерировать страничку с информацией о системе (такой, как в окне О программе...)
Второй шаг:
  1. Подумать как подключать скрипт-функции для обработки событий HTTP сервера.
  2. Реализовать вызов скрипт-функции из нити HTTP сервера.
  3. Реализовать формирование странички и взаимодействие с браузером в скрипт-функции.

8 авг. 2012 г.

2.5.16

Вышла версия платформы Гедымин 2.5.16.

7 авг. 2012 г.

Республиканский семинар в ОАО "Витебская бройлерная птицефабрика"

05.07.2012 состоялся республиканский семинар : «Развитие информационной системы АПК Витебской области. Автоматизация бухгалтерского учета и бизнес-планирования, как элементов внутрихозяйственной информационной системы».

Читать дальше...

5 авг. 2012 г.

Виртуальная машина для компиляции Гедымина

Сколько там обещанного ждут? Трех лет точно не прошло, а виртуальная машина для компиляции Гедымина уже тут. Образ под Oracle VM Virtual Box включает:
  • Borland Delphi 5
  • Tortoise SVN
  • Firebird 2.5
  • Исходный код платформы Гедымин
  • Тестовую базу данных
  • IBExpert
  • Файловый менеджер FAR
Теперь любая кухарка сможет управлять государством каждый желающий сможет с минимальными усилиями "выпекать" для себя свежайший экзешник.

UPD: Исходный код Гедымина располагается на диске c: в папке Golden. Для его обновления до текущей версии следует на папке нажать правую кнопку мыши и выбрать команду SVN Update.

24 июл. 2012 г.

Сохранение состояния бизнес-объекта

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

Проблема в том, что у нас не предусмотрена передача состояния между исходным и созданным бизнес-объектами. Пример из жизни: идет удаление нескольких выделенных записей. В процессе, для каждой создается отдельный экземпляр БО. На одной из записей возникает ошибка. Мы хотим спросить пользователя: прервать весь процесс или продолжить, пропуская проблемные записи. Вопрос в том, как и где сохранить ответ пользователя, чтобы использовать его при отработке следующих по списку записей.

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

20 июл. 2012 г.

Контрольный пример по расчету ЗП

Контрольный пример по расчету заработной платы в типовых настройках, авторства Натальи Леонидовны Белковской, добавлен в раздел документация.