Generated by Rank Math SEO, this is an llms.txt file designed to help LLMs better understand and index this website. # Learn 4D – Professional Training Platform: Learn 4D – Professional Training Platform ## Sitemaps [XML Sitemap](https://learn.4d.com/sitemap_index.xml): Includes all crawlable and indexable pages. ## Courses - [Timestamps #08: Let’s go further](https://learn.4d.com/courses/timestamps-08-lets-go-further/): In this last course of the series, we'll take the use of timestamps a step further by integrating them into advanced 4D mechanisms. - [Timestamps #07: Implementing ORDA](https://learn.4d.com/courses/timestamps-07-implementing-orda/): In this course, we take the power of timestamps to the next level by combining them with 4D's advanced features, including ORDA and calculated attributes. - [Timestamps #06: Time zones](https://learn.4d.com/courses/timestamps-06-time-zones/): In this, the sixth course in the series, we take a look at a concept that cannot be ignored when an application goes beyond the borders of a single country: time zones. - [Timestamps #05: Calendars](https://learn.4d.com/courses/timestamps-05-calendars/): In this course, we'll be reprinting an article previously published on Christmas Day 2011 under the title "In 2012, Christmas falls on December 25!" - [4D Qodly Pro : Implementing Deep Linking in Your Applications](https://learn.4d.com/courses/4d-qodly-pro-implementing-deep-linking-in-your-applications/): Learn how to implement deep linking in a 4D Qodly Pro application to allow users to directly access specific resources after authentication. - [Vibe Coding with 4D](https://learn.4d.com/courses/vibe-coding-with-4d/): Join Mathieu Ferry, 4D Product Team Manager, for a 60-minute webinar and discover how natural language prompts can transform the way you create and add functionality to your business applications. - [Timestamps #04: Days, weeks, months](https://learn.4d.com/courses/timestamps-04-days-weeks-months/): In this fourth course, we'll be taking a look at concepts we deal with on a daily basis - weeks, relative dates, durations, time zones - but which are often more complex to code than they appear. - [Timestamps #03: in the data](https://learn.4d.com/courses/timestamps-03-in-the-data/): In this third course of the series, it's time to move on from code to the 4D database and see how timestamps work in real-life conditions. - [Timestamps #02: Extending the class](https://learn.4d.com/courses/timestamps-02-etendre-la-classe/): In this second course, we're going to deepen our understanding of the codes presented in the previous course, " Timestamps #01: the basics ". - [Timestamps #01: The basics](https://learn.4d.com/courses/timestamps-01-the-basics/): In September 2009, we published a series of four articles on the 4D blog entitled "TimeStamp, my love". It addressed a key subject for many developers: the management of timestamps and their role in data consistency. - [The importance of putting things to the test](https://learn.4d.com/courses/the-importance-of-putting-things-to-the-test/): One of the golden rules of optimization is to regularly re-read your code to identify possible improvements, while taking into account the evolution of the 4D language, its commands and functionalities. - [4D Qodly pro – Secure Data Access in your Application](https://learn.4d.com/courses/4d-qodly-pro-secure-data-access-in-your-application/): Discover best practices for securing data access in 4D Qodly Pro. - [Generating an executable application with 4D](https://learn.4d.com/courses/generating-an-executable-application-with-4d/): Learn how to transform a 4D project into a complete executable application, ready to be delivered to your users.This course guides you through all the stages of the process: compilation, generation of a client, server or standalone application, management of automatic updates and deployment licenses.You will discover the three generation methods (dialog, BUILD APPLICATION command, Build4D component), as well as automation tools via GitHub to industrialize your deployments.A clear theoretical part is followed by a complete demonstration. - [Building a Complete Web Application with 4D Qodly Pro](https://learn.4d.com/courses/building-a-complete-web-application-with-4d-qodly-pro/): Welcome to this 4D Qodly Pro course!In this series, we’ll explore the essential features of Qodly Pro by building a complete web application designed to manage a company’s projects — from creating and editing them, to assigning employees, handling authentication, and even optimizing for mobile devices. - [AI with 4D 21 & 4D AI Kit](https://learn.4d.com/courses/ai-with-4d-21-4d-ai-kit/): Join Mathieu Ferry, to discover how 4D 21 LTS is transforming the way users search your applications: from complex queries to simple natural language questions. - [4D Coding #06 – Signal and Semaphore](https://learn.4d.com/courses/4d-coding-06-signal-and-semaphore/): This module introduces 4D's synchronization mechanisms: signals and semaphores.These tools enable you to coordinate several processes working in parallel, avoid access conflicts to shared resources and guarantee smooth processing in a multi-process environment. - [4D Coding #05 – Processes, workers and cousins](https://learn.4d.com/courses/4d-coding-05-processes-workers-and-cousins/): In the beginning, there were processes, which enabled us to carry out several actions in parallel and to multi-window. Then the evolution of 4D brought workers into the tools available to developers. Processes and workers have a lot in common, but there are a few differences that you need to know and understand to make the right choice between the two. - [4D Coding #04 – Associative arrays](https://learn.4d.com/courses/4d-coding-04-les-tableaux-associatifs/): With associative arrays, you can use the power of a data dictionary in 4D. Associative arrays, also known as catalog objects, allow you to organize information so that it can be accessed as quickly as possible. - [4D Coding #03 – Objects and collections](https://learn.4d.com/courses/4d-coding-03-objects-and-collections/): In a very short space of time, objects have become an essential part of the 4D language and form the basis of ORDA's capabilities. In this course, we'll take a look at the capabilities of objects (and collections), and tell you a little more about how they're used and how they work internally. - [4D Coding #02 – Variables](https://learn.4d.com/courses/4d-coding-02-variables/): In this training course, you'll get a complete overview of the different types of variables available. In fact, beyond local, process and interprocess variables, you'll see that there are many other ways of cataloguing variables... Each type and category of variable is useful in a more or less specific context, and some variables are highly specialized. - [4D Coding #01 – Newcomers to the language](https://learn.4d.com/courses/4d-coding-1-newcomers-in-language/): This course gives an overview of the main developments in the 4D language, both recent versions and improvements introduced over the years. - [Understanding System Workers in 4D](https://learn.4d.com/courses/understanding-system-workers-in-4d/): System Workers are a key element of multitasking in 4D.This course introduces you to the fundamentals of System Workers, their role in asynchronous task execution, and their use in communicating with external processes. - [Fundamentals of Git and GitHub for 4D projects](https://learn.4d.com/courses/the-basics-of-git-and-github-for-your-4d-projects/): Version management has become an essential pillar of modern software development. In an environment where several developers collaborate on the same project, it's crucial to be able to track changes precisely, go back if necessary, and work simultaneously without the risk of overwriting each other's work. - [4D for Beginners: Build your first 4D Application with ORDA in Project Mode](https://learn.4d.com/courses/4d-for-beginners-build-your-first-4d-application-with-orda-in-project-mode/): This course introduces you to the essential concepts of 4D and guides you through the creation of your first 4D application.Step by step, you will discover the fundamentals of 4D — including tables, fields, data types, project forms, and methods — while learning how to build a simple, fast, and ergonomic interface using modern coding practices with ORDA and objects in Project Mode. - [Customize your 4D forms with CSS!](https://learn.4d.com/courses/customize-your-4d-forms-with-css/): Use CSS in 4D to customize your forms with just a few lines of script. Harmonize the look and feel of your entire application. Apply global modifications instantly. Simplify and accelerate the maintenance and evolution of your application's user interface. - [How to make a widget in 15 minutes?](https://learn.4d.com/courses/how-to-make-a-widget-in-15-minutes/): Who hasn't encountered stars in everyday life? In the 1920s, the Michelin brothers had the ingenious idea of awarding stars to the restaurants in their famous Guide Rouge. Since then, stars have become a universal symbol of quality, ingrained in our collective unconscious. Nowadays, you don't have to be a Guide inspector to receive stars. We award them after a relaxing weekend, a cab ride, or even a medical consultation! - [4D Qodly Pro – Quickly and easily add web browser-based forms to your desktop application](https://learn.4d.com/courses/4d-qodly-pro-quickly-and-easily-add-web-browser-based-forms-to-your-desktop-application/): If you're a long-time 4D developer and your users are asking for web access, but you don't have the skills or time to do it, then this webinar is for you. Thomas Maul will show you a simple way to provide web access without starting from scratch. - [Next-Level Documents with 4D Write Pro](https://learn.4d.com/courses/next-level-documents-with-4d-write-pro/): Unlock the full potential of your documents with the latest features in 4D Write Pro - [Strict Typing & 4D](https://learn.4d.com/courses/strict-typing-4d/): Join Thomas Maul, Vice President of 4D Strategy. - [Unlock the power of .query()](https://learn.4d.com/courses/unlock-the-power-of-query/): Since the introduction of ORDA in 4D, many developers have become accustomed to writing database queries using a new syntax. - [When 4D Write Pro & 4D View Pro meet 4D 20](https://learn.4d.com/courses/when-4d-write-pro-4d-view-pro-meet-4d-20/): In this session, we're going to access any content in a database application very easily from 4D Write Pro and 4D View Pro. But not as records. With the help of ORDA, we use data in a new way from entities and entity selections. With this data, we create a data context for use in intelligent models, built with 4D Write Pro or 4D View Pro. These intelligent templates contain references or placeholders for displaying data from the data context. Some of these functions were already available in v19. Now, thanks to the new features in 4D v20, you can access a new level of powerful report creation with a lot of automation and a minimum of work. Of course, templates can be created manually by you or your user, or programmatically. - [Go Places with SystemWorkers!](https://learn.4d.com/courses/get-ahead-with-systemworkers/): The SystemWorkers are here! In this session, you'll learn how this feature opens the door to new possibilities, its strengths and advantages over the LAUNCH EXTERNAL PROCESS or PHP Execute command, with a bonus primer on the ubiquitous Go programming language. - [Project Mode and Continuous Integration/Continuous Delivery (CI/CD)](https://learn.4d.com/courses/project-mode-and-continuous-integration-continuous-delivery-ci-cd/): In this session, we will present the fundamentals of Project Mode, as well as best practices and tips for team development using the latest version management tools. - [Scale your Web Server](https://learn.4d.com/courses/scale-your-web-server/): 4D Web Server has had a few milestones over the years. The introduction of Web Session Management in v13 paved the way for efficient web coding as well as the capability for each web connection to reuse a previously defined context. As 4D technology evolves to multi-threaded processing, so does the web implementation that utilizes this new architecture. 4D v19 marked another milestone with the introduction of Scalable Web Sessions. This feature is fully multi-threaded support and is here to promote a higher performance and scalable web server deployment. Learn how to take advantage of this feature to get the most out of your 4D Web Server application. - [Discover Qodly Studio](https://learn.4d.com/courses/discover-qodly-studio/): In this Masterclass, you'll learn step-by-step how to quickly port your existing 4D application to the web using Qodly Studio.Qodly Studio also lets you easily extend the capabilities of your desktop applications, by adding new functions to the web. - [Advanced Options for the Application Builder](https://learn.4d.com/courses/advanced-options-for-the-application-builder/): Do you build your 4D app? Do you have an XML project to configure your application exactly how it ought to be deployed? This session will explain the benefits of building your 4D app and how to take full advantage of various build options, most of which are not exposed in the standard application build tool. ## Lessons - [4. Verify anteriority](https://learn.4d.com/lessons/4-verify-anteriority/): Let's go back to our table of visits using the date and time fields: - [3. Create an event record](https://learn.4d.com/lessons/3-create-an-event-record/): In a previous lesson we described and explained this data structure: - [2. Enter back-stage](https://learn.4d.com/lessons/2-enter-back-stage/): In this lesson, we're giving you VIP back-stage access to see what happens behind the curtain when the 4D engine starts singing! - [1. Automatic writing](https://learn.4d.com/lessons/1-automatic-writing/): If we summarise the lessons from the previous lessons for a calculated attribute, we need to write the equivalent of this code in the VisitEntity class: - [11. Mod or % Mod or % Mod or % Mod or % Mod or % Mod or % Mod or % Mod or % Mod](https://learn.4d.com/lessons/11-mod-or-mod-or-mod-or-mod-or-mod-or-mod-or-mod-or-mod-or-mod/): In the previous codes, we used the % operator to extract the modulo from the timestamp. In the 4D language we also have the Mod(x;y) command, which does the same thing. - [10. Before the time, it’s not the time](https://learn.4d.com/lessons/10-before-the-time-its-not-the-time/): In the previous lesson, we created the queryTimeFunction in the stmp class, but it does not take into account the operator passed by the developer in his search for the calculated attribute: - [9. It’s time, my lord](https://learn.4d.com/lessons/9-its-time-my-lord/): Now that we've taken care of the dates, it's time to move on to the times. - [8. Sort these dates](https://learn.4d.com/lessons/8-sort-these-dates/): We've spent a few lessons writing the query function, and now it's time to move on to the sort function. - [7. Help me find all the dates](https://learn.4d.com/lessons/7-help-me-find-all-the-dates/): In the previous lessons, we covered all the cases for the query function associated with the calculated attribute arrivalDate. But of course, it won't be long before you need the same thing for the departureDate calculated attribute. - [6. My date collection](https://learn.4d.com/lessons/6-my-date-collection/): With the 6 operators covered in the previous lessons, we thought we'd finished working on the query function for our calculated field, but in fact we haven't. We've still got to respond to this kind of query. We still have to respond to this type of query: - [5. Before or after is also important](https://learn.4d.com/lessons/5-before-or-after-is-also-important/): At the moment, our query function handles the equality and difference operators, but it's not complete. In fact, if you test the following line : - [4. Can’t find the date](https://learn.4d.com/lessons/4-cant-find-the-date/): Finding the records in the Visit table that match a date is useful.But it can also be useful to find records that don't match a date. To do this, we write the following line: - [3. Find me the date](https://learn.4d.com/lessons/3-find-me-the-date/): Now that we have a calculated arrivalDate attribute, it's very tempting to use it! And in particular to use it in searches, such as this code: - [2. Change the date](https://learn.4d.com/lessons/2-change-the-date/): Suppose we have this input object in a form : - [1. Give me the date](https://learn.4d.com/lessons/1-give-me-the-date/): If we go back to the very first lesson in this series of lessons, we had this code: - [Publish Technical Note](https://learn.4d.com/lessons/publish-technical-note/): When the Technical Note is published, an automatic synchronization with GitHub is triggered, if the following conditions are met: - [Enter the URL of the GitHub repo](https://learn.4d.com/lessons/enter-the-url-of-the-github-repo/): This URL is essential to activate synchronization between Learn 4D and GitHub.When the Technical Note is published, it automatically triggers the export of the course content to the associated GitHub repository. - [Setting up editorial proofreading](https://learn.4d.com/lessons/setting-up-editorial-proofreading/): Before submitting the publication for review, you must indicate at the bottom of the page the persons to be notified in the event of : - [Save your work and manage status](https://learn.4d.com/lessons/save-your-work-and-manage-status/): Writing can be done in several sessions; it's not necessary to write everything at once.The Technical Note can be built up over several days.Two approaches are possible: - [Writing lesson content](https://learn.4d.com/lessons/writing-lesson-content/): 1. Click on the action to edit the lesson; - [Building the Technical Note curriculum](https://learn.4d.com/lessons/building-the-technical-note-curriculum/): The Technical Note should be structured like a mini-reading course. - [Complete editorial information](https://learn.4d.com/lessons/complete-editorial-information/): In the Extra Information area, complete the following - [Configuring the repo home page](https://learn.4d.com/lessons/configuring-the-repo-home-page/): On the home page of the new repository, there is some information to set up: - [Assign the 4D staff team](https://learn.4d.com/lessons/assign-the-4d-staff-team/): This last configuration will automatically switch the GitHub repo to "public" status when the tech note is changed to "Published" status on Learn 4D, so you don't have to do it manually :) - [Enter general information](https://learn.4d.com/lessons/enter-general-information/): When creating a Technical Note, start by entering : - [Access the list of publications](https://learn.4d.com/lessons/access-the-list-of-publications/): Open the left-hand menu and go to LearnPress > Courses: - [Create a new Tech Note](https://learn.4d.com/lessons/create-a-new-tech-note/): Two options: - [Check access to WordPress back-office](https://learn.4d.com/lessons/check-access-to-wordpress-back-office/): If you have the necessary authorizations, a WordPress menu bar appears at the top of the site.This bar provides access to the site's back office: - [Learn 4D connection](https://learn.4d.com/lessons/learn-4d-connection/): Here's the URL for the pre-production site: preprod-learn.4d.com - [Développer le projet de démo et versionner](https://learn.4d.com/lessons/developper-le-projet-de-demo-et-versionner/) - [Cloner le dépôt en local](https://learn.4d.com/lessons/cloner-le-depot-en-local/) - [Repo creation](https://learn.4d.com/lessons/repo-creation/): Each new Tech Note must have its own GitHub repository in the 4dknowledge-base organization. - [Entering the GitHub token in Learn 4D](https://learn.4d.com/lessons/entering-the-github-token-in-learn-4d/): Now we're going to set up this token in your Learn 4D profile. This will synchronize the content of your Tech Note to the associated GitHub repo with the necessary permissions and in your name. - [Generate and set up a GitHub token](https://learn.4d.com/lessons/generate-and-set-up-a-github-token/): To enable synchronization of Tech Note content from Learn 4D to GitHub on behalf of the editor, we'll need a personal GitHub token to be set up on Learn 4D. - [Process overview](https://learn.4d.com/lessons/process-overview/): On the GitHub side create a private GitHub repository in the 4dknowledge-base organization ; develop the 4D demo project in this repository; Learn 4D side create and configure the course on Learn 4D ; write the Tech Note as a course structured into sections and lessons; submit the Tech Note for review; publish the Tech Note - [Workflow objectives](https://learn.4d.com/lessons/workflow-objectives/): The aim of this new process is to replace the old publication model based on a ZIP archive containing : - [Preliminary notes](https://learn.4d.com/lessons/preliminary-notes/): At present, this process is still in the testing phase.Editors must therefore work on Learn 4D's pre-production environment. - [4. ISO8601 with time zones](https://learn.4d.com/lessons/4-iso8601-with-time-zones/): Now that we have a good idea for dealing with time zones, we can take the .toISO8601() and .fromISO8601() functions and improve them by taking into account the 'time zone' part of the standard. - [3. Improving basic functions](https://learn.4d.com/lessons/3-improving-basic-functions/): When we construct a timestamp we write the following line, for example: - [2. What time is it there?](https://learn.4d.com/lessons/2-what-time-is-it-there/): If it's midday in Paris, what time is it in Horta?Paris is in UTC 1, and Horta, as we saw in the previous lesson, is in UTC-1, so when it's midday in Paris it's 10am in Horta. - [1. Here London](https://learn.4d.com/lessons/1-here-london/): If you develop web-based applications, you will no doubt need to display dates and times according to the time zone of your users. For example, for the start of a meeting, the launch of an operation, the release of a version, etc - [6. Semester and quarter](https://learn.4d.com/lessons/6-semester-and-quarter/): In the field of business management, the concepts of quarters and semesters are commonly used for scheduling, setting goals, and even planning time off… - [5. Calculating the day of the week of a date](https://learn.4d.com/lessons/5-calculating-the-day-of-the-week-of-a-date/): The 4D Day number command offers a simple and effective solution for the Gregorian calendar. However, it does not handle dates prior to October 4, 1582, and returns an incorrect result. If you work on historical topics or genealogy, this issue should come as no surprise. Here is a short 4D method that allows you to obtain the day number in all cases. - [4. The week and the days](https://learn.4d.com/lessons/4-the-week-and-the-days/): The three major calendars (Christian, Muslim, and Jewish) all use the concept of the week. Many questions arise regarding the week and its origins. - [3. When will we be eating pancakes?](https://learn.4d.com/lessons/3-when-will-we-be-eating-pancakes/): When asked, "When will we eat crêpes?" the Bretons will answer, "Tonight."But for the rest of France, it will be February 2 for Candlemas, a religious holiday commemorating the presentation of the infant Jesus at the Temple… 
 - [2. Easter calculation](https://learn.4d.com/lessons/2-easter-calculation/): 
In the Christian calendar, Easter commemorates the death and resurrection of Christ.

 - [1. The sun has an appointment with the moon](https://learn.4d.com/lessons/1-the-sun-has-an-appointment-with-the-moon/): All Western calendars are based on the two major stars of the sky: the sun and the moon. The sun's cycle determines the year. The months, on the other hand, are more or less aligned with the moon... We can immediately see the problems - [Vibe Coding with 4D](https://learn.4d.com/lessons/vibe-coding-with-4d/): Related videos: - [8. End-to-End Testing](https://learn.4d.com/lessons/8-end-to-end-testing/): In this final lesson, you will validate the entire workflow through multiple scenarios: - [7. Generating and Sharing Deep Links](https://learn.4d.com/lessons/7-generating-and-sharing-deep-links/): Learn how to generate deep links dynamically and share them with users. ## Quizzes - [Quiz – Short questions](https://learn.4d.com/quizzes/quiz-short-questions/): https://vimeo.com/1122218447 - [4D for Beginners: Final Quiz](https://learn.4d.com/quizzes/4d-for-beginners-final-quiz/): Here we are at the end of this training. I hope you have learned a lot!I have included a self-assessment quiz to check that you have learnt the basic concepts of 4D and my recommendations. - [Quiz – HTML basics](https://learn.4d.com/quizzes/quiz-html-basics/) ## Types - [4D Summit](https://learn.4d.com/lp_type/4d-summit/) - [Step-by-step](https://learn.4d.com/lp_type/step-by-step/) - [Training](https://learn.4d.com/lp_type/training/) - [Webinar](https://learn.4d.com/lp_type/webinar/) ## Course Categories - [4D 21](https://learn.4d.com/course-category/4d-21/) - [4D Database](https://learn.4d.com/course-category/4d-database/) - [4D Language](https://learn.4d.com/course-category/4d-language/) - [4D Qodly Pro](https://learn.4d.com/course-category/4d-qodly-pro/) - [4D View Pro](https://learn.4d.com/course-category/4d-view-pro/) - [4D Web Server](https://learn.4d.com/course-category/4d-web-server/) - [4D Write Pro](https://learn.4d.com/course-category/4d-write-pro/) - [AI](https://learn.4d.com/course-category/ai/) - [Deployment](https://learn.4d.com/course-category/deployment/) - [Development Mode](https://learn.4d.com/course-category/development-mode/) - [Methodology](https://learn.4d.com/course-category/methodology/) - [ORDA](https://learn.4d.com/course-category/orda/) - [User Interface](https://learn.4d.com/course-category/user-interface/)