8 мая 2015 г.

Первая в мире реализация игры крестики-нолики на Prolog

Крестики-нолики на платформе Гедымин. Игровой движок реализован на Prolog. Исходный код тут.


Клонируйте проект gedemin-prolog. Устанавливайте пространство имен GS.Пролог.Учебный пример.Игра крестики-нолики.yml. Получайте удовольствие!

PS: получится обыграть машину на максимальном поле и уровне сложности -- обязательно пишите сюда. 

6 мая 2015 г.

Delphi vs Visual Studio vs Xamarin vs AppCelerator. Сравниваем цены

Беглый взгляд на текущие цены на кросс-платформенные средства разработки. Считаем на 1 разработчика на период 2 года. Платформы те, что есть в Делфи, т.е. Win32 + 64, MacOS, iOS, Android. Интересует создание нативных приложений. Cравниваем версии, по возможностям близкие к Delphi Enterprise edition, цены в USD:

Delphi XE8

Delphi XE8 Enterprise + подписка на 2 года = 2433 + 811 * 2 = 4055

Visual Studio 2015

Нет поддержки iOS и MacOS, зато включает подписку на MSDN.

Visual Studio 2015 Professional = 1199 + 799 * 2 = 2797

Xamarin

Используется .Net (по крайней мере для Win).

Xamarin Business = 2997 * 2 = 5994

Qt

Есть возможность создания приложений для Linux (в приведенную ниже цену не включено).

Qt Professional = 399 * 24 = 9576

AppMethod

Delphi XE8 без VCL.

AppMethod Individual = 120 * 24 = 2880

AppMethod Eterprise -- цену умножаем в три раза.

31 марта 2015 г.

Выпущен Firebird 2.5.4

Исправление ошибок и два улучшения:
  1. Возможность проверки целостности таблиц и индексов без отключения пользователей от БД.
  2. Оптимизация использования памяти под временные BLOB.
Подробнее здесь.

Скачать файлы.

18 марта 2015 г.

Firebird Tour 2015

В рамках тура однодневные семинары пройдут:
  • 24 Апреля - Зелигенштадт, Германия
  • 19 Мая – Прага, Чехия
  • 5 Июня – Москва, Россия
Центральная тема семинара - оптимизация производительности SQL. Семинары проводятся IBSurgeon и IBPhoenix, при поддержке Firebird Developers Team.

Программа семинара, места проведения, расписание.

20 февр. 2015 г.

Интервью с Jim Starkey, создателем СУБД Interbase.
I think we're living in a world where the expertise of programmers is now very heavily oriented towards mobile applications and fancy GUIs. So dealing with practical aspects of data management in the application just isn't going to happen.

12 февр. 2015 г.

Переговоры в Минске и скрытая реклама Гедымина ))

11 февр. 2015 г.

В коробке с Делфи раньше шел вот такой постер:
Похоже на схему бизнес-классов Гедымина?

25 янв. 2015 г.

2014 Critics' Choice Award Winner - Best Free PHP CMS

Тем временем, горячо любимая нами CMS ProcessWire взяла первое место в номинации Best Free PHP CMS в 2014 Critics' Choice Award. Поздравляем!

14 янв. 2015 г.

Temporal SQL

Слюнки текут. Доживем ли мы до поддержки Temporal SQL в Firebird? В кратце: для указанных таблиц сервер связывает значение записи с определенным временным интервалом. Разумеется, интервалов может быть несколько и для каждого будет храниться своя запись. При извлечении указываем период и, вуаля, получаем актуальные значения именно для этого периода. Например, печатаем накладную за 1930 г. -- видим Кооператив "Геркулес". Тот же бланк, но за 2000 г. -- ООО "Геркулес". А в 2015 г. может и целое ЧУП "Геркулес", если не прикроют конечно.

19 дек. 2014 г.

Нават сайт Беларускі дзэн выкарыстоўвае іконку Гедыміна.

16 дек. 2014 г.

Древовидная структура -> HTML

В копилку полезных запросов. Берем дерево команд Исследователя и получаем на выходе HTML код.
EXECUTE BLOCK
  RETURNS(name VARCHAR(200))
AS
  DECLARE VARIABLE prev_indent INTEGER = 0;
  DECLARE VARIABLE indent INTEGER;
  DECLARE VARIABLE I INTEGER;
  DECLARE VARIABLE n VARCHAR(200);
BEGIN
  name = '
    '; SUSPEND; FOR WITH RECURSIVE group_tree AS ( SELECT id, parent, name, CAST('' AS VARCHAR(255)) AS indent FROM gd_command WHERE parent IS NULL UNION ALL SELECT g.id, g.parent, g.name, h.indent || rpad('', 2) FROM gd_command g JOIN group_tree h ON g.parent = h.id ) SELECT CHARACTER_LENGTH(gt.indent), TRIM(gt.name) FROM group_tree gt INTO :indent, :n DO BEGIN I = :indent - :prev_indent; IF (:I > 0) THEN BEGIN name = '
      '; SUSPEND; prev_indent = :indent; END IF (:I < 0) THEN BEGIN name = '
    '; SUSPEND; prev_indent = :indent; END name = '
  • ' || :n || '
  • '; SUSPEND; END name = '
'; SUSPEND; END

23 нояб. 2014 г.

15-я группа

Успешно грызла гранит науки на курсах по основам платформы Гедымин с 11 по 14 ноября.