31 декабря 2020

Итоги 2020-го года

 13: Я самое зловещее число!
666: Нет! Я!
2020: Здра-а-асьте...

    2020-й год подошел к концу. Пандемия COVID-19 сделала его необычным, тяжелым и по своему интересным. Мне кажется, что этот год пошел компании Embarcadero на пользу. Она наконец вспомнила о умирающем сообществе разработчиков на Delphi и C++Builder: уделила большое внимание повышению качества и быстродействия RAD Studio, обновила платформу блогов компании и начала усиленно наполнять ее статьями, поддержала разработчиков проектов с открытым исходным кодом, провела множество вебинаров и даже онлайн-конференцию.
Happy New Year
    Кратко назову основные, по моему мнению, события уходящего года в мире Delphi:
  1. 25-летие релиза первой версии Borland Delphi;
  2. релиз RAD Studio Sydney 10.4 и 10.4.1;
  3. авторы Delphi отказались от использования ARC;
  4. вылет Delphi из топ-20 рейтинга языков программирования TIOBE Index, падения его на 30-ю позицию и триумфальное возвращение в топ-20 сразу на 18-ю позицию;
  5. проведение онлайн-конференции посвященной Delphi - DelphiCon Worldwide 2020;
  6. начало тестирования бета-версии Delphi, C++Builder и RAD Studio 10.4.2 Hunter;
  7. релиз FastMM 5;
  8. Bold for Delphi стал OpenSource.
    О себе могу сказать. За 2020-й год я: опубликовал в своем блоге 83 сообщения, открыл для себя язык программирования Python и познакомился с двумя интересными фреймворками - uniGUI и DelphiMVCFramework.
    Поздравляю тех, кто дочитал или долистал досюда, с окончанием бета-версии 2021-го года!

23 декабря 2020

Работа с ресурсами приложения

    Ресурсы приложения Windows – это данные, которые встроены внутрь EXE, DLL, CPL и MUI файлов. Общеизвестным примером такого ресурса является иконка приложения. Windows API предопределяет большое количество типов ресурсов приложений. Кроме них приложения могут определять свои собственные типы ресурсов. Хотя, как я понимаю, они все будут равнозначны RCDATA. Давайте добавим приложению как ресурсы логотип и пользовательское соглашение, а при его старте загрузим их на форму.
Form with resources

18 декабря 2020

December Apple Platforms Patch for RAD Studio 10.4.1 версия от 18.12.2020

    Компания Embarcadero выложила обновленную версию December Apple Platforms Patch for RAD Studio 10.4.1, о котором я писал вчера. В прошлый раз авторы патча забыли заменить в архиве ноябрьский PAServer для macOS на декабрьскую версию. Обратите внимание, что патч обновляет PAServer в каталоге RAD Studio (путь по умолчанию C:\Program Files (x86)\Embarcadero\Studio\21.0\PAServer) и вам нужно вручную скопировать обновленную версию PAServer на свои Mac'и.

Windows 10. Обновление драйвера до версии 1968 года

    Сегодня случайно заглянул в раздел "Необязательные обновления". Windows 10 Pro версии 20H2 (сборка 19042.685) предложила обновить драйвер INTEL до версии от 18 июля 1968.
Windows 10 - Back to the future - INTEL system driver update to 1968

17 декабря 2020

Обновленная версия Apple Platforms Patch for RAD Studio 10.4.1

    Компания Embarcadero выложила обновленную версию вышедшего в конце ноября Apple Platforms Patch for RAD Studio 10.4.1. Эта декабрьская версия патча является кумулятивной, т.е. включает в себя содержимое предыдущей версии, поэтому при установке патчей на релизную версию RAD Studio, Delphi или C++Builder ноябрьский Apple Platforms Patch устанавливать не нужно.

15 декабря 2020

Delphi 10.4.2. Новые возможности IDE и новый VCL контрол TControlList

    Компания Embarcadero анонсировала добавление в Delphi 10.4.2 новых Native Windows VCL контролов. Один из них TControlList - оптимизированный виртуальный listview, который позволит отображать большое количество элементов с гибким сочетанием текста и графики. Он будет похож на DBCtrlGrid, но не будет использовать DataSource и будет поддерживать LiveBindings.
Delphi 10.4.2 and TControlList

14 декабря 2020

Clever Internet Suite. Передача файлов по SFTP

    SFTP (SSH File Transfer Protocol) - протокол прикладного уровня, предназначенный для выполнения различных операций с файлами через безопасное соединение. В отличие от FTP, он шифрует команды и данные, предотвращая открытую передачу конфиденциальной информации по сети. Давайте посмотрим, как из программы на Delphi загрузить файл на SFTP-сервер и скачать его.

09 декабря 2020

Delphi, C++Builder и RAD Studio 10.4.2 Beta

    Компания Embarcadero объявила о подготовке публичного тестирования бета-версии Delphi, C++Builder и RAD Studio 10.4.2, которая носит кодовое название "Hunter".

DelphiMVCFramework. Собственный обработчик ошибок

    Осенью я написал на Delphi небольшой REST-сервис для обмена данными с информационной системой другой компании. По регламенту информационного взаимодействия ответ на HTTP-запрос с ошибкой должен быть в формате JSON:
{
  "error_code": код ошибки,
  "error_name": "текст ошибки"
}

04 декабря 2020

NGINX. Фиксим "connect() failed (10061: No connection could be made because the target machine actively refused it) while connecting to upstream"

    Несколько недель тому назад я заметил, что у одного из наших заказчиков NGINX спамит в error.log ошибки начинающиеся с "connect() failed (10061: No connection could be made because the target machine actively refused it) while connecting to upstream...":
2020/11/20 19:47:24 [error] 8560#14660: *1247 connect() failed (10061: No connection could be made because the target machine actively refused it) while connecting to upstream, client: 111.111.111.111, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "https://XYZ.XYZ.XYZ.XYZ:3000/favicon.ico", host: "domain", referrer: "https://domain/"
2020/11/20 19:47:59 [error] 8560#14660: *1247 connect() failed (10061: No connection could be made because the target machine actively refused it) while connecting to upstream, client: 111.111.111.111, server: , request: "GET /ru/search?cs=N4I...
где XYZ.XYZ.XYZ.XYZ – это IP адрес их сайта, а domain – его доменное имя.