суббота, 15 марта 2014 г.

SDL-хост. Первый шаг сделан.

Отдельной подсистемой появился SDL-хост, согласно идеям герметичности. Для него был собран отдельный пускач x86sdl.exe. Сейчас разработка идёт под Windows, когда каркас поднимется полностью, перенесём и на Linux.

Третьего дня отладили инициализатор, который открывает окно SDL и запускает главный цикл (event loop).

Первая демка успешно отрисовала примитивы:

воскресенье, 9 марта 2014 г.

Идём на SDL

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

Сейчас у нас есть компонентный биндинг к SDL2, очень минимальный, реализующий только самое необходимое для старта. Конечно, в процессе переноса хоста на SDL, биндинг тоже будет прокачиваться.

Интересно, что в итоге получится и сколько времени займёт переход на SDL. 

вторник, 25 июня 2013 г.

Как избавить свой модуль от опасных зависимостей

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

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

Решил проблему простым хуком, который устанавливается в журнал уже после того, как прогрузится всё ядро, с помощью скрипта System\Config. То есть, зависимости от TextViews перенесены из журнала в хук.

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


вторник, 26 февраля 2013 г.

Быстрота следует за подготовкой

Самописный контрол Caption потребовал центровки надписи и отбивки от краёв. Код занял 4 строчки, а вот усилия по вспоминанию механизма настройки соответствующих свойств контрола и разборки с DevInspector заняли больше часа.

вторник, 17 июля 2012 г.

Паттерн Proxy на Files.

Реализовал шаблон Заместитель, который встраивается в абстрактный интерфейс Files и обрабатывает обращения к некоторым каталогам. Остальные запросы передаются в HostFiles, и файловая система работает как обычно.

Понадобилось это для создания портала в базу данных. Другими словами, всё, что пишешь в специальный каталог, автоматически падает в особую табличку в подключенной базе. А если обращаешься к такому каталогу, он выдаёт список файлов из базы данных или хэндлер файла.

Удобство Заместителя в том, что остальные компоненты вообще не видят подмены. 

понедельник, 2 июля 2012 г.

Обертон

Сегодня поднялся домен obertone.ru. Это будет наш небольшой портальчик со всякими интересностями по оберону и блэкбоксу в частности. Дизайн ишшо не придуман, а содержание планируется примерно такое:

- блоги разработчиков,
- презентации разработанного софта
- видеоуроки.

Как-то так. Попытаемся сделать максимально простую страничку, в суровом духе Оберона )

среда, 1 февраля 2012 г.

Стабильность

Вообще-то, не так много факторов, которыми можно добиваться стабильности софта, созданного с помощью BlackBox.

1)Не делать необоснованных предположений (в том числе избегать уверенности, что указатель не NIL),
2) В непонятных точках ставить ассерты.

Если чётко придерживаться подобного стиля, то вывести прогу в стабильный режим не так уж и сложно.

Постоянные читатели