Ralph's Blog about this and that (RSS | Atom)

Writing a Reply Bot for Bluesky in Go

Published: 17. July 2025  •  go, bluesky

Learn how to create a Reply Bot for Bluesky using Go that replies to mentions with AI-generated responses.

Provision Resources on Hetzner Cloud with Pulumi

Published: 16. July 2025  •  iac

This blog post shows you how to use Pulumi to provision resources on Hetzner Cloud. The example provisions a VPS and installs Wireguard on it with the help of cloud-init.

ShedLock - Prevent Concurrent Execution of Scheduled Methods in Spring Boot

Published: 16. July 2025  •  java, spring

How to use ShedLock to prevent concurrent execution of scheduled methods in a Spring Boot application.

Writing a Go program that posts to Bluesky

Published: 23. February 2025  •  go, bluesky

In this blog post, I will show you how to write programs in Go that post to Bluesky.

Tool/Function Calling with Spring AI

Published: 29. January 2025  •  java, spring, llm

A look at Spring AI's support for Tool/Function calling. How to write your own tools and integrate them into your Spring Boot application.

Speech Recognition in the Browser with Transformers.js

Published: 19. January 2025  •  ionic, angular, llm

Running the Moonshine model, a speech recognition model, in the browser with Transformers.js. The demo application is a snake game controlled by voice commands.

Implementing WebAuthn Authentication with Bitwarden Passwordless.dev

Published: 17. January 2025  •  go, angular

In this blog post, I will show you how to implement WebAuthn authentication with Bitwarden Passwordless.dev, a SaaS solution that provides WebAuthn authentication as a service.

Running LLM-Generated Go Code in a Docker Container

Published: 17. January 2025  •  go, llm

In this article, I will show you how to write a Go program that generates Go code with the help of a large language model (LLM) and run this generated code in a Docker container.