Pseudo-Random Number Generators: From the Origins to Modern Algorithms

How can we generate a uniform sequence of random numbers? The randomness so beautifully and abundantly generated by nature has not always been easy for humans to extract and quantify. Pseudo-Random Number Generators are fundamental tools in many areas of software development: PRNGs do not produce truly random numbers but rather deterministic sequences that simulate randomness. The quality of a PRNG is determined by its ability to produce sequences that are statistically indistinguishable from t

langchain4j ollama LLM AI

Langchain4J musings

I’m coming relatively late to the LLM party, but I rarely come very early in the hype cycle. For example, I never bought into blockchain, the solution still searching for problems to solve, nor in microservices, the latest in the cargo cult IT trends. Despite my late arrival at the LLM party, I have been a regular user of LLMs. I use OpenAI for non-controversial questions outside my cone of knowledge, e.g., linguistics or legal; I use GitHub Copilot in my IDE to improve my code. Th

DuckDB databases

DuckDB in Action

The book was sent to me by Michael Simons. He asked for my feedback: I changed my reading schedule, took a few months, and here it is. Facts 10 chapters288 pages$33.59 (eBook) Note that MotherDuck, a company providing an online service that builds upon DuckDB, offers a free PDF copy. Chapters An introduction to DuckDBGetting started with DuckDBExecuting SQL queriesAdvanced aggregation and analysis of dataExploring data without persistenceIntegrating with the Python ecosystemDuckDB in the

Digital Twins: A digital counterpart for a new concept of Product

Digital Twins, are digital replicas of physical assets, processes, or systems used to simulate, monitor, and optimize their real-world counterparts. Through real-time data exchange and advanced analytics, digital twins provide a virtual environment for testing scenarios, predicting outcomes, and enhancing decision-making. This concept, first introduced by Michael Grieves in 2002, has rapidly evolved and now plays a crucial role in various sectors, including manufacturing, healthcare, smart cities

AJAX SSR

Summary of the AJAX frameworks comparison

In previous weeks, I’ve analyzed several libraries and frameworks that augment the client with AJAX capabilities. Vue.jsAlpine.jsHTMXVaadin In this post, I’ll compare them across several axes. Analysis Frontend skills Remember that I started this series from the point of view of a backend developer. In this section, I grade how much you need to know about client technologies to complete the job. Team organization In the introduction, I hinted that the decoupling of frontend

SSR Vaadin

Vaadin, the battery-included server-side AJAX framework

I’ve written a lot about Vaadin. I was so enthusiastic that I wrote the first book about it (besides the Book of Vaadin), its updated edition for Vaadin 7, and a companion website. Still, I’m amazed that so many people in the JVM world never heard of it. In this post, I’d like to introduce Vaadin in the context of AJAX and SSR. Short introduction to Vaadin The beauty of Vaadin lies in its simplicity - you only write backend code. You read that well. A Vaadin developer only

SSR HTMX

Augmenting the client with HTMX

This post is part of a series comparing different ways to implement asynchronous requests on the client to augment the latter. So far, I described the process with Vue.js and Alpine.js. Both are similar from the developers' point of view: they involve JavaScript. In this post, I’ll focus on HTMX, whose approach is quite different. Laying out the work I’ll follow the same structure as in the previous posts of the series. Here’s the setup, server- and client-side. Server-s

SSR Alpine

Augmenting the client with Alpine.js

This post is part of a series comparing different ways to implement asynchronous requests on the client, which is colloquially known as AJAX. I dedicated the previous post to Vue.js; I’ll dedicate this one to Alpine.js - not to be confused with Alpine Linux. I’ll follow the same structure as previously. Laying out the work Here’s the setup, server- and client-side. Server-side Here is how I integrate Thymeleaf and Alpine.js in the POM: pom.xml <dependencies>

SSR Vue

Augmenting the client with Vue.js

In my previous post, I laid the ground to build upon; now is the time to start 'for real'. I heard a lot of Vue.js. Additionally, a friend who transitioned from developer to manager told me good things about Vue, which further piqued my interest. I decided to have a look at it: it will be the first 'lightweight' JavaScript framework I’ll study - from the point of view of a newbie, which I am. Laying out the work I explained WebJars and Thymeleaf in the last post. Here’s the setu

SSR Thymeleaf Webjars

Server-Side Rendering with Spring Boot

Understanding the shared steps in the project setup is crucial before delving into the specifics of each client-augmenting technology. My requirements from the last post where quite straightforward: I’ll assume the viewpoint of a backend developerNo front-end build step: no TypeScript, no minification, etc.All dependencies are managed from the backend app, i.e., Maven It’s important to note that the technology I’ll be detailing, except Vaadin, follows a similar approach. V