The picture of day

I’m really hating a standard COM infrastructure for it inhumanity error messages.

Therefore my COM will be with blackJack and extended error messages.

IBProvider Trial v5.26.0.37386

Hello Everyone.

I would like to say that new IBProvider v5.26 has gone even closer to release.

Current trial is based on a new component infrastructure which resolves a couple of problems.

The first problem was connected with the single-threaded creation and destruction of COM objects. This was a pay for threads within DLL. Now this problem is solved.

The second problem was connected with internal COM objects. They behaved like public COM objects with all the linked costs. Now these objects are detached from public infrastructure and it improves the overall performance of COM server.

Of course, all these improvements won’t provide any visible effects for simple applications. But they are really useful for heavy multithreaded systems like our primary system for load testing. And this system shows that the new provider began to work better.

In any rate, without such changes it is hard to move ahead 🙂

I don’t want to add new seriously changes in these assemblies and really hope that this version will be released as is 🙂

Load tests have already run.

Work in Yandex :)

Yandex: How do we hire backend developers?
Me: I know 🙂

Yandex, Internal Server Error.

Field news

The latest IBProvider trial ( contains a considerably improved management some dynamically created global objects. I implemented a lock-free cache for these objects at last. It means that the parallel creation of metadata rowsets will work more effectively and won’t lock some other operations.

More over, this new management provides a more clear deinitialization of IBProvider state during unload.

As usual it is not enough to create a new multithreaded code. The primary problem — it’s creating tests for it. I hope I was able to do it. These tests allowed to better understand how to implement new features.

So I think I will able to avoid the usual problems which are connected with such changes.

Field news


I hate thinking that something wasn’t finished or can be improved. So, I’ve forced myself to do the following things:

1. Some important changes in EFCore provider which were postponed one year ago. These changes connected with local calculation of expressions. Now provider ignores a conversion to System.Object as it has been done in SQL translation since beginning. This real crazy thing has already been released.

2. In IBProvider was improved a management of loaded DLLs. The some of main things:
— In case of ICU libraries IBProvider calls u_init and u_cleanup.
— In case of FB/IB client libraries IBProvider now uses per DLL global locks for attach/detach/create_db/drop_db operations.

These changes will be released later after passing loaded tests.

I thought to add a call of fb_shutdown (for fbclient.dll v3+) but decided put off it. As I’ve already said many times I don’t like such an idea of deinitialization.

Do you can WPF?

Hello everyone.

At the beginning of this week I was asked about %subj%. I was interested in it a bit and I spent few days on learning this topic. Just for fun.

What I can say about it — it’s really cool to create such things without tons of infrastructure code.

… These tons of code were created by someone else 🙂

My first application for WPF+EFCore+IBProvider on GitHub.

Oh, yes. Thanks a lot to the authors of this manual!

Last Dream

James A. Starkey, замутивший хренотень, с которой потом мы играли … половину жизни, недавно опубликовал FB-Devel свои свежие мысли.

AmorphousDB White Paper

Не, мужик молодец.


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

Последнее из того что я вспомнил это «байка» моего старика.

Говорит, в конце 70-ых, когда он работал с киявлянами над автоматизацией стана 2000 (НЛМК), те привозили брошюрку Глушко «что-то там про вычислительную технику» и там на корешке была перфолента на которой дырочками было выбито на украинском «усе це гивно».

Низкоуровневый клиент для FB на C++


На гитхаб загружен исходный код встроенного клиента IBProvider для Firebird и его тестовая система.

IBProvider Client for Firebird [TechDemo]

По сути, это переработанный fbclient ISC API. В том смысле, что XSQLDA/XSQLVAR там есть.

Навскидку, в эти исходники еще попали конструкции для работы с кодовыми страницами и свойствами OLE DB.

Уровень сложности … ну как бы это сказать … в принципе, там реально все очень просто 🙂

Release it!

Люблю такие книги 🙂

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

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

Летом дочитаю. Если оно вообще будет, это лето.

А пока продолжим смотреть сериал. 464 серия, однако.

Про баги

Смотрю сериал.

1. В xxx-ой серии встречаю словосочетание «et cetera».
2. Вспоминаю про свое предпоследнее развлечение — «Онегин»:

Обоз обычный, три кибитки
Везут домашние пожитки,
Варенье в банках, тюфяки,
… <тут мозг спотыкнулся>
Горшки, тазы et cetera,
Ну много всяго добра.

3. Думаю — ладно, лень в распечатку (из хрома) смотреть, посмотрю в источнике.
4. Внезапно обнаруживаю там неизвестную строку

Везут домашние пожитки,
Кастрюльки, стулья, сундуки,

5. Открываю в хроме предварительный просмотр.
6. Точно — подвал страницы перекрывает последнюю строку.

7. Распечаталось точно так же.
8. И, по ходу, это на всех страницах.
9. … а потом грязно выругался.

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


У вас установлена последняя версия Chrome.
Версия 97.0.4692.71 (Официальная сборка), (64 бит)