Blog

Understanding LLM Tokens: A Visual Playground

October 5, 2025

When you send a message to an LLM like Claude or ChatGPT, the model does not see your text. It sees tokens. I wanted to see them too, so I built a small page for that.

Try it here: LLM Tokens Playground

More...

How to Install MCP Servers in Claude Code

July 13, 2025

The one command that installs an MCP server in Claude Code, and what its parts mean.
More...

A Guide to OpenAPI Code Generation for TypeScript

May 30, 2021

Generate REST client code in TypeScript from an OpenAPI specification.
More...

The Simple Way to Customize Ant Design in React-Scripts

May 9, 2021

How to customize an Ant Design Theme in react-scripts - easily and without ejecting.
More...

Guard Bundler Tutorial - Run "bundle install" Automatically

August 2, 2015

Here I explain how to setup Guard to run 'bundle install' automatically everytime you modify your Gemfile.
More...

Guard Tutorial - Run a Command on File Change

July 27, 2015

Guard watches the files in your project and runs a command or plugin when they change. A tutorial that gets you started faster than the Guard website does.
More...

Redis: Crystal vs Ruby vs Node vs ...

May 26, 2015

Recently, I have published a Redis client library for Crystal called Crystal-Redis.
More...

A Redis Client for Crystal

May 21, 2015

This week I published Crystal-Redis, a Redis client for the Crystal programming language. It is open source, full featured, well documented and very fast.
More...

Using SPDY with Nginx 1.4

April 26, 2013

Nginx 1.4 finally went stable. This new version comes with SPDY integrated. If both web browser and server support it, SPDY improves your site's performance.
More...

Sphinx search / thinking_sphinx with german umlauts

April 17, 2012

I figured out how to get Sphinx / thinking_sphinx to handle searches with german umlauts and treat the umlauts as case insensitive.
More...

bundle install: invalid byte sequence in US-ASCII

March 20, 2012

How to fix 'ArgumentError: invalid byte sequence in US-ASCII' during bundle install on Mac OS X by setting the LANG environment variable.
More...

Creating smaller images in Rmagick

November 15, 2011

Rmagick creates uncompressed images by default. How to set the compression level in Rmagick's write method to get smaller PNG and JPG files.
More...

Printing the page content in Capybara

December 2, 2010

How to print the current page's content in a Capybara integration test, for example to debug a failing test, and how to open it in a browser.
More...

Ruby on Rails: Fix for 'invalid multibyte char (US-ASCII)'

August 31, 2010

You probably got this error message in Ruby on Rails: 'invalid multibyte char (US-ASCII)'
More...

Rails Plugin for Single Sign On with Atlassian Crowd

July 27, 2010

The crowd_rails plugin brings single sign on with Atlassian Crowd 2.0 to Ruby on Rails, next to Jira, Confluence and Bamboo. Setup and usage tutorial.
More...

Version 0.5.10 of Crowd Gem Released

July 26, 2010

The new version 0.5.10 of the crowd-stefanwille fixes a bug in handling of validation factors.
More...

Ruby Gem for Crowd 2

July 19, 2010

I took the Ruby client gem for Atlassian Crowd 1.6 and updated it for Crowd 2.
More...

Why 'bundle install' is slow (and how to make it fast)

July 12, 2010

Why 'bundle install' used to be slow in Capistrano deployments, and how a Gemfile.lock checked into version control makes it fast.
More...

Why You Should Split Your Epics Into Smaller User Stories

April 6, 2010

Every agile book recommends splitting epics into smaller user stories. What we learned when we built one epic as a single story and split the next one.
More...

Let Business People Get Their Statistics Themselves

January 13, 2010

Business people keep asking developers for numbers and reports from the production database. Here is how I let them query a copy of the database themselves.
More...

Looking for Ruby on Rails Developer for Balao in Hamburg

October 28, 2009

I am searching for a new colleague: A sharp, experienced Ruby on Rails developer for our internet startup Balao in Hamburg.
More...

Spring & Hibernate on Google Books

September 10, 2009

Google Books has scanned my book Spring & Hibernate. Large parts of it can now be read online, for free.
More...

They Pirated my Book

September 9, 2009

I found an illegal copy of my book Spring & Hibernate on RapidShare. RapidShare removed the file after I complained by email.
More...

BizSphere Explained

May 7, 2009

SVA BizSphere GmbH has a great page up that describes its product BizSphere, the software that I worked on over the past 2.5 years.
More...

Content Landscape

April 5, 2009

Here is a description of Content Landscape, a project for which I did architecture and specification work during my BizSphere engagement.
More...

Spring & Hibernate, 2nd Edition

February 24, 2008

Our publisher will start selling the second edition of our book _Spring & Hibernate_ in April, 2008.
More...

Scrum Master Certification

December 14, 2006

On November 23, 2006 I became a Certified Scrum Master (CSM). Why I chose Scrum over other software development processes, and what a Scrum Master does.
More...

Talk about Hibernate at Lehmann's Book Shop

November 12, 2006

On October 26, I spoke about Hibernate at Lehmann's book shop in Hamburg.
More...

Book 'Go To Java Server Pages'

June 27, 2006

A few years ago, I wrote a book called 'Go To Java Server Pages'. It was published by Addison Wesley in 2001.
More...