Показаны сообщения с ярлыком Delphi. Показать все сообщения
Показаны сообщения с ярлыком Delphi. Показать все сообщения

14 авг. 2022 г.

Как приступить к разработке платформы Гедымин

Для разработки платформы необходим компьютер с операционной системой Windows не ниже Windows XP и 8 или 16 Гб ОЗУ. Мы рекомендуем больше памяти при использовании виртуальной машины.

Существует два варианта подготовки инструментария для компиляции. Первый -- установить Delphi 5 и Firebird 2.5 непосредственно на компьютер следуя этой инструкции.

Второй вариант -- это обратиться к специалистам нашей компании за готовой виртуальной машиной с предустановленной системой Delphi и сервером баз данных.

Существует два режима работы Гедымина с сервером базы данных. В режим клиент-сервер необходима клиентская библиотека (fbclient.dll или gds32.dll -- обязательно разрядностью 32 бита!) и запущенный сервер (на этом же компьютере или доступный по сети).

В режиме встроенного сервера необходима библиотека fbembed.dll которая, собственно, представляет собой весь сервер Firebird выполняющийся в адресном пространстве gedemin.exe.

В настоящее время Гедымин поддерживает серверы Firebird 2.5, Firebird 3 и Firebird 4. Для двух последних необходимо дополнительно настроить файл конфигурации firebird.conf

Некоторые базы данных могут использовать внешние функции из библиотеки GUDF.DLL. Ее следует скачать с нашего сайта и поместить в подкаталог UDF сервера.

Для запуска Гедымина в рабочем режиме потребуется файл базы данных. Это может быть т.н. эталон -- чистая база данных без загруженных прикладных решений. Свежий эталон всегда находится здесь. Либо, можно воспользоваться одной из установок прикладных решений и взять из нее файл базы данных уже с загруженными пространствами имен (так у нас называются файлы с исходным кодом прикладных решений).

Далее, переходим к получению исходного кода, который находится на github.com в приватном репозитории. Обратитесь к сотрудникам компании, чтобы они предоставили вам доступ к нему.

Мы работаем по такому алгоритму:

0. Настраиваем git. Прописываем свое имя пользователя и email командами:

git config --global user.name "FIRST_NAME LAST_NAME"

git config --global user.email "MY_NAME@example.com"

1. Создаем папку \Golden, переходим в нее и клонируем репозиторий себе на компьютер командой:

git clone https://github.com/GoldenSoftwareLtd/gedemin-private.git gedemin

Выполняем действия для подготовки исходников к компиляции, которые указаны в инструкции выше. Компилируем все библиотеки и сам Гедымин согласно инструкции.

2. Основная ветка -- master -- сразу идет в продакшн. В эту ветку мы не комитим изменения напрямую. Перед тем как делать какие-то изменения снимаем код с сервера и создаем новую ветку:

git pull

git checkout -b IssueXXXX

Команду выполняем в папке Gedemin. Имя ветки на ваш выбор.

3. Делаем изменения. Затем комитим их в свою ветку:

Важно! Перед комитом проверяем, что исходники компилируются в Delphi без ошибок.

git commit -a -m "Пишем комментарий"

Перед комитом можно просмотреть сделанные изменения командой:

git status -uno

Важно! Не следует включать в комит следующие файлы, даже если они были изменены:

  • gedemin.res, и, вообще, все *.res файлы
  • файлы экранных форм *.DFM, где только поменялись координаты экранных элементов при открытии формы в Delphi

Если такие файлы показывает git как измененные, следует вернуть их в исходное состояние. Например, в окне комита оболочки TortoiseGit выбрать такой файл в списке и из контекстного меню вызвать команду Revert.

4. Загружаем изменения в свою ветку в github:

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

git push --set-upstream origin <YOUR BRANCH NAME>

В последствии можно выполнять:

git push

5. Идем на сайт github.com и создаем Pull Request из вашей ветки в мастер. После того, как ведущий разработчик подтвердит ваши изменения, они попадут в мастер и пойдут в продакшн.

6. На своем компьютере переключаетесь на ветку мастер и снимаете последние изменения:

git checkout master

git pull

7. Подключив телеграм бот @gbuilderbot можно получать уведомления об автоматической компиляции проекта и сборке дистрибутивов.

С чего начать?

Мы планируем доработки и регистрируем ошибки и пожелания в списке Issues в этом репозитории.

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

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

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

22 апр. 2021 г.

Новый сервер компиляции gedemin.exe

Многие годы за автоматическую компиляцию gedemin.exe и формирование пакетов прикладных решений отвечали несколько изощренных bat файлов. Технология пакетной обработки была заложена вместе с первыми версиями DOS еще в начале восьмидесятых прошлого века и предоставляет разработчику очень скудный функционал. Для любого отступления за рамки элементарного копирования/удаления и вызова сторонних программ приходится создавать свои утилиты или приспосабливать свободно доступные из всемирной сети.

Процесс запускался по расписанию один раз в сутки, а не в ответ на изменения в исходном коде платформы и решений.

Все бы ничего, пока строго один gedemin.exe "выпекался" из текущих исходников ветки master в репозитории. Несколько лет назад на крупных предприятиях значение генератора GD_G_UNIQUE стало подбираться к верхнему пределу доступных положительных 32-х битных целочисленных значений. В качестве быстрого решения проблемы мы ввели механизм поиска доступных интервалов в последовательности идентификаторов во всех таблицах базы и записи их в специальную таблицу, откуда Гедымин берет новые идентификаторы по мере необходимости. И... начали думать над долговременным решением, которым должно стать использование 64-х битных целочисленных идентификаторов записей.

Надо сказать, что 20 лет назад никто не задумывался над проблемой исчерпания идентификаторов и внутри исходного кода разработчики сплошь и рядом использовали тип Integer или полагались на длину строго в 4 байта при записи и чтении из буфера. Что еще хуже, Delphi 5 не поддерживает тип Int64 в библиотеке типов COM, через которую объекты Гедымина взаимодействуют с программным кодом на VBScript.

Первым шагом трансформации исходного кода стало введение специального типа для идентификаторов TID и набора функций для преобразования идентификаторов в/из строк, целых чисел, чисел с плавающей точкой и т.п. Разумеется, что замена типа затронула большинство из файлов проекта. Для справки, всего Гедымин насчитывает 5164 .pas файла, если считать вместе со сторонними библиотеками. В зависимости от символа условной компиляции ID64 тип TID превращается либо в 32-х битный Integer, либо в Int64. 

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

Таким образом, у нас появляются три версии выполняемого файла:

  1. стабильный, проверенный временем gedemin.exe c 32-х битными идентификаторами.
  2. gedemin.exe на основе новых исходников с 32-х битными идентификаторами.
  3. gedemin.exe c 64-х битными идентификаторами.

Поддерживать такое хозяйство с помощью устаревшей технологии bat файлов и остаться при этом в здравом рассудке не представляется возможным. Пару месяцев назад мы начали проект gbuilder -- сервер компиляции Гедымина и прикладных решений. В настоящее время готова первая очередь. Из специальной ветки с именем india компилируется gedemin.exe на основе стабильных исходников. Прикладные решения формируются из ветки master репозитория gedemin-apps. Сервер компиляции предоставляет разработчику интерфейс через чат-бот в телеграме @gbuilderbot. Компиляция активируется через github webhooks по мере поступления на сервер изменений в исходный код.

В скором времени будет добавлена компиляция бета версий gedemin.exe из новейших исходников с 32-х битными и 64-х битными идентификаторами.

gbuilder реализован на платформе NodeJS. Язык программирования Typescript. Скомпилированные файлы можно скачать из соответствующего раздела нашего сайта.


28 авг. 2016 г.

Только до 9 сентября Embarcadero раздает Delphi 10.1 Starter Edition бесплатно. Не триал и не демо версия, а полностью рабочий продукт с серийным номером.

15 авг. 2015 г.

Application hangs in Windows XP SP2 compatibility mode under Windows 10

Seems that WinXP SP2 compatibility mode in the new Windows 10 has some... incompatibilities. Half of the past week was spent for a struggle with a mysterious application hang. Through some experiments it was found that the hanging is a result of interaction between gdNotifierThread and assigned notifier window. Although an update of a visual control is carried through a call of Synchronize method the whole application becomes unresponsive. The problem was solved by replacement of Synchronize call with sending a custom message using PostMessage function.

One could ask what is the reason in running Gedemin in a compatibility mode in the first place. Well, this is quick and dirty solution to make Gedemin's windows look good. Newest Windows 10 display theme looks weird with a windows and dialog boxes designed in the times when Ctl3D was a first class fashion.

6 июл. 2015 г.

Fix blurry fonts in Delphi 5 IDE on Windows 8

The post can save you a quite amount of time. Following steps helped me (although there are could be other solutions).
  1. Open command prompt and run regedit.exe
  2. Open folder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
  3. Find all entries for MS Sans Serif and set them to tahoma.ttf
  4. Open folder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
  5. Find entries MS Shell Dlg and MS Shell Dlg 2 and set them to Tahoma
  6. Reboot system
  7. Open display settings (Right click on desktop - Personalize - Display). Check that there 100% scaling is set (slider is on Smaller value)
  8. Turn ClearType ON and adjust it to your taste
  9. Use your monitor settings (if available) and adjust sharpness
  10. Reboot system one more time

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 -- цену умножаем в три раза.

11 февр. 2015 г.

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

2 сент. 2014 г.

Релиз Delphi XE7

Подробности в официальном пресс-релизе Embarcadero и в блоге Tim Anderson.

13 мая 2014 г.

Запуск RAD StudioXE6 в Минске

27 мая 2014 г. Минск. Отель Crowne Plaza, ул. Кирова, 13.
Приглашаем вас принять участие в мероприятиях, посвящённых запуску – RAD Studio XE6.

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

Вы узнаете, как с помощью новых возможностей RAD Studio XE6:

  • Улучшить свои Windows приложения с помощью новых стилей VCL, меню, компонентов для поддержки работы с датчиками. Расширить существующие Windows приложения для сопряжения с новыми мобильными приложениями;
  • Перевести ваши мобильные приложения на новый уровень с помощью интеграции с облачными BaaS сервисами, включая аутентификацию, Push – уведомлениямя и монетизацию приложений с использованием встроенных покупок и рекламы;
  • Разрабатывать Delphi и C++. приложения для Android и переносных гаджетов
Кроме этого вы сможете задать все ваши вопросы экспертам, поделиться впечатлениями о продуктах и узнать о планах по дальнейшему развитию портфеля решений компании. Ни один вопрос не останется без внимания!

Количество мест ограничено, регистрируйтесь заранее.

Регистрация и дополнительная информация http://delphitour.ru

15 нояб. 2013 г.

Marco Cantu (главный по Делфи на Embarcadero) спрашивает у пользователей старых и очень старых версий, что мешает им обновиться.

15 авг. 2013 г.

День сурка -- это 15 лет работы с молодыми программистами. Раз за разом приходится объяснять очевидные вещи. Например, что нельзя формировать SQL запрос из кусочков текста, используя функции преобразования DateToStr, FloatToStr и т.п. Указанные функции при форматировании результата используют локальные региональные установки, которые могут не совпадать с требованиями стандарта SQL. Так, Firebird понимает дату из строки вида 'dd.mm.yyyy', а на компьютере пользователя может быть установлен формат 'dd-mm-yyyy'. Хуже всего, когда на машине разработчика локальный формат удовлетворяет сервер, а на компьютере клиента -- нет.

С функциями конвертации типов понятно. А строки? Строки вставлять категорически запрещается. Во-первых, наличие одинарных кавычек во вставляемом значении приведет либо к синтаксической ошибке, либо к неверной выборке. Во-вторых, см. SQL Injection.

10 авг. 2013 г.

Таки дождались: Delphi for Android в стадии бета теста.

14 февр. 2013 г.

Delphi исполнилось 18 лет

На видео Delphi 1 под управлением Windows 3.1. Как же не хватает сейчас такого простого, строгого, незамутненого, прямоугольного интерфейса.

На первой версии были написаны наши программы Секрет Анжелики, Зарплата Анжелики, Средства Анжелики.

28 сент. 2012 г.

Compare file version strings

На всякий случай код функции сравнения строк с номерами версий файлов. А то в интернете находятся только какие-то монстры.
function CompareVersionStrings(const V1, 
  V2: String): Integer;

  function ExtractInt(const V: String; 
    var B: Integer): Integer;
  var
    E: Integer;
  begin
    E := B + 1;
    while (B <= Length(V)) and (E <= Length(V)) 
      and (V[E] <> '.') do Inc(E);
    Result := StrToIntDef(Copy(V, B, E - B), 0);
    B := E + 1;
  end;

var
  B1, B2: Integer;
begin
  B1 := 1; B2 := 1;
  repeat
    Result := ExtractInt(V1, B1) - ExtractInt(V2, B2);
  until (Result <> 0) or 
    ((B1 > Length(V1)) and (B2 > Length(V2)));
end;

17 сент. 2012 г.

Multithreaded debugging

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

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

27 мая 2012 г.

Delphi жив

Эстонская компания Erply реализовала новаторскую идею по интеграции POS терминала (кассовой системы) с социальными сетями и платежной системой PayPal: Windows версия сделана на Delphi XE2 с использованием библиотеки FireMonkey.

19 июл. 2011 г.

Delphi XE 2 (Pulsar) 64 bit

Стали участниками бета тестирования новейшей разработки Embarcadero. С минимальными изменениями удалось перекомпилировать GUDF.DLL под 64 бита. Работоспособность библиотеки еще не проверяли. Будущая Делфи обещает много вкусного, но рассказывать пока нельзя. Подписка о неразглашении.

6 апр. 2011 г.

Delphi 64

Свершилось! Embarcadero начинает закрытое бета тестирование 64-х битного Delphi. Мы записались в список. После 10-го обещают дать ответ: допустят или нет. 64-бита нужны нам в первую очередь для компиляции GUDF.DLL для 64-х битного сервера Firebird. Можно будет проверить несколько идей по быстрому "сворачиванию" данных, которые основаны на использовании больших массивов (каждый свыше 1 Гб) в оперативной памяти.

11 сент. 2009 г.

Delphi Help goes online

A long awaited move from Embarcadero. They finally have adopted wiki technology and put all Delphi documentation online.

16 авг. 2009 г.

Delphi 2010. 8 days remaining...

This version in fact is the Delphi 2009 re-tooled and bug free (at least, it is promised). The same was with transition from Delphi 4 to Delphi 5. Is it time to move?