This article will teach you how to use SAML2 authentication with Spring Boot and Keycloak. Security Assertion Markup Language (SAML) is a standard for exchanging authentication and authorization identities between an Identity Provider (IdP) and a Service Provider. It is an XML-based protocol that uses security tokens with information about a principal. Currently, it is less popular than OICD (OpenID Connect) but is not outdated yet. In fact, many organizations still use SAML for SSO. In our example, Keycloak will act as an Identity Provider. Keycloak supports SAML 2.0. We can also use Spring Security mechanisms supporting SAML authentication on…
Author: drweb
This article will teach you how to use the Spring AI project to build applications based on different chat models. The Spring AI Chat Model is a simple and portable interface that allows us to interact with these models. Our sample Spring Boot application will switch between three popular chat models provided by OpenAI, Mistral AI, and Ollama. This article is the first in a series explaining AI concepts with Spring Boot. Look for more on my blog in this area soon. If you are interested in Spring Boot, read my article about tips, tricks, and techniques for this framework…
This article will show you how to use Spring AI support for Java function calling with the OpenAI chat model. The Spring AI function calling feature lets us connect the LLM capabilities with external APIs or systems. OpenAI’s models are trained to know when to call a function. We will work on implementing a Java function that takes the call arguments from the AI model and sends the result back. Our main goal is to connect to the third-party APIs to provide these results. Then the AI model uses the provided results to complete the conversation. This article is the…
This article will teach you how to create a Spring Boot application that uses RAG (Retrieval Augmented Generation) and vector store with Spring AI. We will continue experiments with stock data, which were initiated in my previous article about Spring AI. This is the third part of my series of articles about Spring Boot and AI. It is worth reading the following posts before proceeding with the current one: https://piotrminkowski.com/2025/01/28/getting-started-with-spring-ai-and-chat-model: The first tutorial introduces the Spring AI project and its support for building applications based on chat models like OpenAI or Mistral AI. https://piotrminkowski.com/2025/01/30/getting-started-with-spring-ai-function-calling: The second tutorial shows Spring AI…
You may have always dreamed of creating your own video game. Late nights spent sketching characters, scribbling level designs, and imagining epic boss battles have fueled your passion.Now, you’re ready to turn those ideas into reality. Python, with its beginner-friendly syntax and powerful libraries, offers the perfect starting point for your game development journey.Python’s influence reaches beyond traditional video games. Many online gaming platforms use it for backend operations and game logic, this versatility shows Python’s strength in gaming.Let’s explore the top 5 Python libraries that are changing game development.Pygame: The Classic Choice for Python Game DevelopmentPygame remains a favorite…
Creating Finxter was a life-changing, almost spiritual experience for me. My main goal was always to help improve collective intelligence.Pursuing that goal, we educated more than 16 million people online. And that’s counting only those on the blog itself.Let’s reflect on some key observationsOn average, a Finxter visitor spent 42 seconds (of all numbers) investing their most precious resource: time & attention.That’s millions of human attention minutes.❓ Q: But how much is human attention worth? Well – the baseline calculation would be: 16 million people * 42s engagement time= 11 million minutes= 186k hoursFinxter is an educational/technical site so the…
I’ve always found Python to be a fun and flexible way to make games. It has the gentle syntax I like, plus a range of libraries that keep me engaged and on the edge.In this short piece, I’m sharing a list of my top Python game libraries and what makes them stand out compared to each other. Let’s begin.First, Why Does Python Feel Right For Game Development?Python often brings a sense of simplicity and friendliness. People new to coding can learn it faster because they don’t have to work with complicated syntax. Also, Python OGs stick to it because of…
✨ Key Points AGI is expected around the 2040s, with some predictions as early as 2025.ASI is predicted to follow shortly after AGI, likely by the mid-2040s to early 2050s.AGI Timeline✨ Artificial General Intelligence (AGI) is AI that can perform any intellectual task a human can, at human level. Based on expert surveys and predictions, AGI is anticipated to be achieved around the 2040s.For example, the AI Impacts 2023 survey, with 2,778 AI researchers, suggests a median timeline of 2047 for high-level machine intelligence, which aligns with AGI in some definitions. However, community predictions on Metaculus estimate it could be…
The Screen is a container for your widgets. These screens occupy the dimensions of your terminal by default. While you can have many different screens in a single application, only one screen may be active at a time. When you create your App class, Textual will create a screen object implicitly. Yes, Textual requires you to have at least one screen or your application won’t work. If you do not create a new screen or switch to a different one, the default screen is where your widgets will get mounted or composed to. Screens are a great way to organize your application. Many…
We have an exciting opportunity for a full-time, permanent Full Stack Web Developer to join our software development team. This role can either be office-based or home-based, with a requirement to travel to one of our offices in Telford or Nottingham as needed. The Role In this role, you will work on customer-facing websites, e-commerce stores, and internal applications/services. Some of the technologies we use include Laravel, React, InertiaJS, Typescript, FilamentPHP, MySQL, JIRA, Tailwind, Pulumi, Shopify, and Docker. If you have experience with any of these, this could be the job for you. The successful candidate will be responsible for:…
