RSSAmplifier

Blog

Jens Krämer

Jens Krämer is a freelance software developer with more than 20 years of experience in web development and Linux systems administration. He is author of several Ruby libraries, contributor to the Redmine project and creator of several Redmine plugins.

jkraemer.netRSS feed ↗10 posts

Latest posts

Building Persistent Memory for AI Coding Assistants

AI coding assistants have a frustrating limitation: they forget everything when a conversation ends. Every session starts from zero. You re-explain the same architectural decisions, re-debug the same issues, and re-teach the same patterns. I initially tried using custom prompts to maintain plain text session logs in project folders. While this helped resume work, it didn’t solve the core problem…

Digital Media Housekeeping with Claude Code

I’ve had several hundred gigabytes of digital media files - music and video - sitting on my laptop for quite some time now. Some from an extensive ripping session when I rediscovered a few boxes of old CDs and DVDs at my parents’ house, most exported from iTunes before I cancelled my iTunes Match subscription. After I recently set up Jellyfin as my home media server I figured it would be useful to…

Debian Buster on a Thinkpad X270

TL;DR It just works, except for the Intel WiFi which requires proprietary firmware. Use an ‘unofficial’ image that includes the non-free firmware stuff and you’re all set. The what and why I have this fine Notebook for nearly two years now, but so far somehow got along with the pre-installed Windows 10 pro. First, I tried out this WSL thing , and it just worked. It basically gave me a Debian shell…

Faster Redmine Search With PostgreSQL Trigram Indexes

Here’s an easy way to speed up Redmine’s search if you’re using PostgreSQL. How Redmine Search Works If you know Redmine, you know there’s a slew of different kinds of objects, from projects and issues over commit messages and news to forum messages and wiki pages. Each of these data types is stored in their own table. When you run a search, Redmine builds SQL queries that look like this: SELECT…

The Proper Way to Add a Project Settings Tab for Your Redmine Plugin

Redmine’s project settings consist of a series of tabs for things like general project information, project members, issue categories and so on. If your plugin has any project specific configuration of any kind, it might be a good thing to add an entry there for it, as well. But how? Let’s see how the row of tabs is rendered: def project_settings_tabs tabs = [{ :name => 'info' , :action =>…

Bye, Flickr!

I’ve been using Flickr for 11 years. In the beginning I really liked it, but unfortunately things went downhill from there. I stayed with them through the acquisition by Yahoo (which definitely didn’t do Flickr any good), through user interface changes that can be called debatable at best (endless scrolling, anyone?). I even coped with having to log in through Yahoo, forever having to input my…

Fully Encrypted Headless Debian Stretch Setup

Here’s my field notes from the server I recently set up. It’s a rental server at Hetzner , which comes with a very basic rescue system pre-installed. Starting from there, I followed the steps outlined here . The differences between the Ubuntu version used there and Debian Stretch kept me busy quite a bit so I’m writing my adopted command chain down here to save you some time. Partition and Encrypt…

Hong Kong Cuts Corporate Tax Rate in Half

… the profits tax rate for the first $2 million of profits of enterprises will be lowered to 8.25%, or half of the standard profits tax rate, instead of 10% as proposed in my Election Manifesto. 1 Now this is how you encourage small to medium size companies to do business in your country. Also interesting that, contrary to what is usually happening in some other countries, this government does not…

Redmine 3.4 Is Out!

The new Redmine version is packed with 200 improvements and bug fixes . In this post, I’ll give you an overview of what has changed. User Interface Improvements A lot of work went into improving Redmine’s user interface, with quite a few patches coming from the Planio team. My personal favorites are better support for High Resolution (a.k.a. Retina) displays with user avatars and embedded images (…

Let’s Encrypt SSL Certificates With HAProxy and Stable Keys

I’ve been a (more or less) happy StartSSL customer for years, but since they are going to lose their status as a trusted CA these days for various reasons , I finally got around to switching to Let’s Encrypt . Here’s what I did. The Situation I have HAProxy running in front of several nginx instances on different (virtual) machines. HAProxy handles all the TLS stuff. This is Debian Jessie, so…