RSSAmplifier

Blog

Ralph's Blog

Blog about this and that

blog.rasc.chRSS feed ↗180 posts

Latest posts

TabPFN: A Foundation Model for Tabular Data in Python

An introduction to Prior Labs' TabPFN, a foundation model for tabular data in Python.

Deep dive into Angular Signal Forms

This post explores the Signal Forms API, which became stable in Angular 22

Building Angular applications with spartan/ui

spartan/ui is an Angular UI library with a slightly different model than most component libraries. In this blog post, we will set up spartan/ui in an Angular application and build a small dashboard UI with cards, tables, dialogs, tabs, switches, toasts, icons, and a Tailwind v4 theme.

Time-series forecasting with Google TimesFM

This blog post explores time-series forecasting using Google TimesFM, a pretrained time-series foundation model. It demonstrates how to use TimesFM for zero-shot forecasting on various datasets.

Building Microservices with GoFr

GoFr is an opinionated Go framework for building microservices. With GoFr, you can build HTTP APIs, gRPC services, GraphQL APIs, pub-sub workers, and more. In this blog post we will build a small JSON HTTP API with GoFr and PostgreSQL.

Genetic Algorithms in Go

Genetic algorithms are a powerful heuristic search method inspired by natural selection. In this post, we explore how to implement a genetic algorithm in Go

Solving scheduling problems with Timefold Solver

Scheduling is a common and challenging problem in many industries. Timefold Solver is a powerful Java library that can help you find good solutions to complex scheduling problems by modeling your domain in plain Java and defining your constraints in a readable way. In this article, we will explore how to use Timefold Solver to solve a sample scheduling problem for a film festival, including how to…

Faster Spring Boot Startup with CRaC, Leyden, and Spring AOT

In this blog post, we take a look at how to improve the startup time of Spring Boot applications. We compare several strategies, including AOT cache (Leyden), Spring AOT, and CRaC checkpoint/restore, using the Spring Petclinic sample application as a benchmark.

GraphHopper, routing engine for OpenStreetMap data

GraphHopper is an open-source routing engine for OpenStreetMap data. This repo shows how to run it locally in Docker and how to call its API from any HTTP client.

OAuth 2.0 authorization code flow with PKCE in a Spring Security BFF

In this blog post, we are going to look at a complete BFF (Backend-for-Frontend) implementation with Spring Security that uses the OAuth 2.0 authorization code flow with PKCE to log users in, maintain a server-side session, and serve protected data.

OAuth 2.0 authorization code flow with PKCE and BFF

This post explains how to implement the OAuth 2.0 authorization code flow with PKCE in a browser-based app, and how to implement it in a BFF (Backend For Frontend) architecture for better security.

Eino: A Go Framework for Building LLM Applications

Eino is a Go-based framework for building LLM applications, from simple chat features to agent systems with tools, middleware, and orchestration. This post explores Eino's core abstractions and patterns through code examples.

Resilience Patterns in Go with failsafe-go

Resilience patterns like retries, circuit breakers, and fallbacks are essential for building robust applications that can handle failures gracefully. In this post, we will explore how to implement these patterns in Go using the failsafe-go library.

Code Mode for Tool Calling in Java

Code mode is a way to use tools that can save context tokens and reduce the number of request/response cycles by incorporating a tool search and letting the model write code that orchestrates tool calls. This blog post explores the code mode pattern and shows how to implement it in Java.

TimescaleDB: Time-series with PostgreSQL

TimescaleDB is a PostgreSQL extension for efficient time-series data management. In this post, we take a look at TimescaleDB's features and how to use them.

Deploying to Google Cloud Run with Pulumi

In this post, we deploy a small service to Google Cloud Run with Pulumi. We also set up an API Gateway in front of it for authenticated access and rate limiting. Finally, we discuss the Cloud Run pricing model and how to control costs.

Angular Service Worker Immediate Update Flow

In this post, we explore how to implement an immediate update flow for Angular's service worker, allowing users to get the latest version of your app without waiting for a page reload.

Realtime events with Supabase

Supabase Realtime consists of three different mechanisms for pushing updates from the server to connected clients: Broadcast, Presence, and Postgres Changes. In this blog post, we will look at each of these three mechanisms in detail and how to use them with the supabase-js client library.

Spring 7 resilience features

Spring Framework 7 adds two resilience features directly to the core framework: retry and concurrency throttling. In this blog post, we will explore both features.

ParadeDB: Full-Text Search Engine for PostgreSQL

ParadeDB is a PostgreSQL extension that adds full-text search capabilities directly to your database. Instead of running a separate search service, you run use PostgreSQL's query engine to execute BM25 search queries alongside normal SQL. In this post, we take a look at ParadeDB's search capabilities and how to use them.

ES2027: The Temporal API

An introduction to the Temporal API in ECMAScript 2027.

ES2026: What's new in JavaScript

A summary of the new features added to JavaScript in ECMAScript 2026, including upsert methods for Map and WeakMap, JSON.parse source text access, iterator sequencing, Uint8Array Base64 and hex conversion, Math.sumPrecise, Error.isError, and Array.fromAsync.

Small changes in Java 26

A summary of interesting small changes in Java 26.

PostGIS: Spatial Data for PostgreSQL

A first look at PostGIS, the spatial extension for PostgreSQL, and how it helps you manage and query geographic data with spatial types, indexes, and functions.

Code Mode for Tool Calling in Go

Tool calling is a workflow for giving an LLM access to external information and capabilities. However, it can be inefficient when you have a large number of tools or complex workflows that require multiple dependent tool calls. This blog post explores code mode, a way to use tools that can save context tokens and reduce the number of request/response cycles by incorporating a tool search and…

Getting started with the Java Class-File API (JEP 484)

Introduction to the Java Class-File API, an API introduced in JDK 24 that provides a standard way to parse, generate, and transform Java class files.

Embedding maps into web applications with MapLibre GL JS

Learn how to use MapLibre GL JS to embed interactive maps into web applications, including examples with markers, popups, GeoJSON data, WMS overlays, and Angular integration.

Integrate gRPC with Spring Boot

Learn how to integrate gRPC into a Spring Boot application using the Spring gRPC project.

A look at Spring Expression Language (SpEL)

Spring Expression Language (SpEL) is an expression language from the Spring ecosystem that can be used in any Java application. In this article, we will explore the features of SpEL and how to use it as a base for a simple rule engine.

Stream Gatherers in the Java Stream API

An introduction to Stream Gatherers introduced in Java 24, which allow you to write custom intermediate operations in the Stream API with state and complex logic.

Self-Host Bitwarden Lite on Debian 13

In this blog post, I share a production-ready approach to self-hosting Bitwarden Lite on Debian 13 using Docker.

Set Up frp Server on Hetzner Cloud with Pulumi

Learn how to set up frp (Fast Reverse Proxy) server on Hetzner Cloud using Pulumi. This post covers provisioning the server, configuring frp with mutual TLS authentication, and exposing local services securely to the internet.

Getting started with Supabase

This blog post shows you how to build a simple Todo app with Supabase as the backend. It covers local setup with Supabase CLI, database schema and security with migrations, using @supabase/supabase-js in a JavaScript/TypeScript app, auth flows (sign-up, sign-in, sign-out), and CRUD operations for todos.

Generating PDFs with Playwright and Go

In this blog post, I want to show you how to use Playwright, Go, and Docker to build a simple PDF generation service for creating PDFs from scratch with HTML and CSS.

Using the Z3 SMT Solver with Go

Learn how to use the Z3 SMT solver with Go to solve complex problems declaratively. This post covers setting up Z3 with Go, core concepts, and real-world examples like package dependency resolution, RBAC policy verification, scheduling, and the knapsack problem.

Waiting for Goroutines with sync.WaitGroup and errgroup.Group

Go makes it easy to run code in parallel with goroutines. To wait for them to finish, you can use sync.WaitGroup or errgroup.Group. This post explains how to use both and when to choose one over the other.

Model Context Protocol (MCP) with Go

Learn how to write MCP servers and clients in Go to build interoperable LLM tools using the Model Context Protocol (MCP).

Small changes in Java 22 to 25

A summary of interesting small changes in the Java standard library and the language in Java 22 to 25.

Using Jackson @JsonView for Multiple JSON Representations

Implementing different JSON views with Jackson's @JsonView annotation in Java.

JSON-B (JSR 367) - Java API for JSON Binding

A look at JSON-B (JSR 367), the Java API for JSON Binding, which provides a standard way to convert Java objects to and from JSON.

mTLS with Go

Implementing Mutual TLS (mTLS) with Go's built-in HTTP server and client for secure client-server communication.

Containers in the Go Standard Library

An overview of the container/collection types available in the Go standard library.

Building a JavaScript Application with Appwrite Backend

This blog post demonstrates how to develop a simple Ionic/Angular application with Appwrite as the backend.

mTLS with Spring Boot and Spring Security

Implementing Mutual TLS (mTLS) with Spring Boot and Spring Security for secure client-server communication.

Angular i18n with Transloco

In this blog post, we explore how to implement i18n in Angular applications using the Transloco library.

Angular i18n built-in support

In this blog post we explore Angular's built-in i18n support.

Getting Started with MQTT Using Go and Java

This article provides an overview of the MQTT protocol, its basic features, and how to use it in Go and Java applications. It covers topics such as publish/subscribe model, message payloads, topics, quality of service (QoS), retained messages, persistent sessions, and more.

Methanol - A convenient extension of the Java HTTP client

In this blog post, I will introduce you to Methanol, a library that extends the standard Java HTTP client to make it more convenient to use. Methanol also introduces new features like caching and interceptors.

Exploring the Go slices and maps packages

In this blog post we are going to explore the slices and maps packages from the Go standard library. The two packages provide useful and convenient methods to work with slices and maps.

MongoDB Schema Validation with Java

How to use MongoDB schema validation in Java applications to ensure data integrity and consistency.