Author: Nicolas Brachfogel

Nicolas Brachfogel
• Product Owner & Senior Developer • Nicolas Brachfogel joined 4D in 2017 as a Senior Developer (4D Server and networking). As Product Owner to manage the release of Apple Silicon, he's in charge of writing user stories and translating them into functional specifications, as well as making sure that feature implementations meet customer needs. A graduate of the Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas began his career as a software developer in 2001. Following several years coding in Java and C++, he went on to specialize in client-server development for video game companies. As a server developer/architect, he successfully worked on the server architectures of many games (Dofus Arena, Drakerz, Trivial Pursuit Go!).
Product blank

Non-blocking Printing

With 4D v20 R4, we significantly improved the management of print jobs inside 4D. 4D can now run multiple print jobs in parallel, significantly increasing your applications’ reactivity while facilitating the management of concurrent print jobs.

Let me tell you more about it!

Product blank

Auto-Generated SSL/TLS Certificates for Client-Server Communications

To simplify the security of client-server communications, from 4D v20 R4 onwards, 4D Server generates its own SSL/TLS certificates instead of relying on the default certificates provided by 4D.

This update brings a significant advantage for both testing and production environments. You’ll experience heightened security measures without the necessity of providing your own certificates. Let me explain to you what will change.

Product blank

ORDA: Assigning a path to a blob or picture attribute

Non-ORDA database commands allowed you to put images and blobs outside your data file thanks to the SET EXTERNAL DATA PATH command. This command is not adapted for ORDA, so we have decided to add similar functionality in v20 R3: The ability to assign to a blob or picture attribute a path pointing to a file. Let me tell you more about it.

Product blank

Deprecation of PHP Commands & Removal of 4D Built-in PHP Interpreter

PHP has played a crucial role in web development, and it was introduced into 4D v12 to offer features not readily available in the native language, such as zip, hash, or LDAP functionality. Over time, 4D has incorporated many of these PHP features into its core functionality. As a result, we decided to remove the built-in PHP interpreter in 4D v20 R3 and begin the deprecation process for PHP commands in v21.

While we won’t entirely remove the PHP commands from 4D, we strongly encourage you to use the system workers to execute PHP code in the future.

This blog post will guide you through this transition process, demonstrating how to use an external interpreter through PHP Execute and explaining how to execute PHP code effectively with a system worker. 

Product blank

Activate QUIC Layer from the Structure, User and Database Settings

In 4D v20 beta, we were excited to show you our work on the new QUIC network layer. As the layer is still in the beta version, we deactivated it for the LTS final release. The QUIC layer will be available in the feature releases, so you can follow its development and help us improve it.

While 4D v20 allowed switching network layers only in interpreted applications and forced a new build for engined applications, 4D v20 R2 allows layer changing in compiled/build applications via the Structure, User and Database Settings to facilitate testing even in production.

Product blank

Declaring Class Properties

The 4D language is constantly improving. For v20, we bring you a new feature that will ease the use of your classes: declared class properties. Declaring your class properties will significantly improve autocomplete and give you meaningful errors when compiling. Do you want to know more about it? Let me show you how it works!

Product blank

Logging ORDA Calls on the Server

Since its release, ORDA has grown in popularity and is now widely used on your production servers.

With 4D v20, we provide two improvements on how ORDA requests are logged server-side:

  1. The first is an improvement of the request log that will now give more information about ORDA calls.
  2. The second is the addition of a server-side ORDA log similar to the client-side ORDA log. Let me introduce you to these new features.
Product blank

Automatic integration of multiple journals

As developers and database administrators, you know the importance of quickly recovering from data corruption. Backups and journals help you with the task. But sometimes, a backup may be corrupted, and you need to come back from an older backup and integrate multiple journals consecutively. Or maybe your journal file is growing big too quickly, and you prefer to regularly create a new one to avoid cluttering your server hard drive. Or you are just using your own way of backing up your database. In all these cases, you must integrate multiple journals, which is only manually possible through the Maintenance and Security Center.

With 4D v20, you can automatically integrate multiple journals at database startup. Let me explain to you how it works.

Product blank

QUIC layer: the future of network communications

The most considerable production servers running with 4D accept more than a thousand simultaneous connections, and this number keeps growing. As a consequence, performance becomes an increasingly important focus of our teams. The QUIC protocol, used by the new version of the HTTP standard, has been specifically built to increase speed and reliability. As we are always looking for exciting technologies, we are working on replacing our low-level network protocol with the QUIC protocol.

For v20, you can switch to this network layer and check if it improves your performance. This is still in beta test, as we need your feedback before using it as our default network layer. As such, you will only be able to use it on beta versions of 4D.