New training course: Developing AI chat assistants with Java / Spring AI

The course "Developing AI Chat Assistants with Java Spring" provides a comprehensive overview of implementing AI chat assistants using the Retrieval-Augmented Generation pattern and the latest Java Spring library. Through a blend of theoretical explanations and practical exercises, you will learn to develop and customize advanced AI chat assistants. Participants will learn how the Retrieval-Augmented Generation pattern works for AI text generation. […]
Different Methods for Resetting Files in Git

Confused by the various options for cleaning up or resetting your branch, working area, or staging area? Use this overview to help get things sorted: Command Description Affects Working Area Affects Staging Area Example Call git reset (no options) Resets the current branch to a specific commit and removes changes from the Staging Area, […]
Nginx Cache for WordPress

In the world of web hosting, speed is a crucial factor for a website's success. This is where the Nginx cache comes into play, especially for WordPress websites. In this blog post, we'll discuss how to configure the Nginx cache for WordPress, its advantages, and potential problems. Configuring the Nginx Cache for WordPress […]
Keycloak Integration in Spring Applications

Keycloak is an open-source identity and access management tool widely used by Java developers to integrate security features into applications. It is particularly useful for applications based on Spring Boot. In this short blog, we'll take a look at what Keycloak is used for, its configuration options, and how to integrate it into a Spring application. […]
Virtual Threads in Java 21

Virtual Threads in Java: A Paradigm Shift in Concurrent Programming Introduction to Virtual Threads With the introduction of virtual threads in Java (also known as lightweight threads), we are experiencing a significant evolution in concurrent programming. Traditional threads, which are directly mapped to OS threads, are resource-intensive and limit the scalability of modern applications. Virtual threads, […]