Hello World šŸ‘‹

This is my (Stefan Siegl, aka ~stesie) personal collection of random musings, related to stuff I am interested in … that is web-related development and Software Craft. Consider it my personal digital garden, where I learn in public and share some of my (sometimes even unfinished) thoughts, which might just be the spark someone else needs. Recent posts also have a status indicator.
If you have questions or one of these notes helped you, please let me know :)

Building WueRide - Experimenting with LLM-Powered Coding and the Fediverse

A few weeks ago, I came across Harper Reedā€™s blog post, My LLM codegen workflow atm, which made the rounds in the developer community. While his approach to using a LLM to collect and refine requirements was interesting, ā€¦ what really caught my attention was him mentioning, that he uses Aider to let LLMs modify his code. So what is Aider? Simply put, Aider is a CLI tool that isnā€™t tied to a specific LLM....

Status: šŸŒæ Budding Ā· Planted: Mar 30, 2025 Ā· 5 min

Wayland Support in IntelliJ

Today I learned, that IntelliJ has support for Wayland Compositor since version 2024.2, so seems like im rather late to the game. Simply go to Help > Edit custom VM options and add -Dawt.toolkit.name=WLToolkit. For me it so far works nicely. And the issue of some overlay windows (like object inspector) not being resizable in Sway ā€¦ are just gone. Yay šŸ„³

Status: šŸŒ± Seedling Ā· Planted: Mar 18, 2025 Ā· 1 min

Scripting IntelliJ

Recently I learned, that itā€™s possible to script IntelliJ. I picked up on it while Writing an IntelliJ Plugin for my Coverage Tracker project, aka ā€œUndercoveredā€. So there is the IDE scripting console, which comes out-of-the-box. You just open the Action panel and search for IDE Scripting Console, next a tiny popup menu should show, asking for whether it should be Groovy or Kotlin (beta). Right away you can enter some code and evaluate it by pressing Control + Return....

Status: šŸŒæ Budding Ā· Planted: Mar 17, 2025 Ā· Last tended: Mar 18, 2025 Ā· 5 min

Writing an IntelliJ Plugin

In a way, this is the last part of my journey creating a Java (Line) Coverage Analyzer. This article concentrates on creating an IntelliJ plugin, that adapts it to show the results collected by the analyzer created in Letā€™s create a Coverage Analyzer, Part 4. To get started, check out JetBrainsā€™ Developing a Plugin article. With recent IntelliJ versions you need to install the Plugin DevKit first, then create a new Project and select the IDE Plugin Generator....

Status: šŸŒ± Seedling Ā· Planted: Mar 4, 2025 Ā· 4 min

Let's create a Coverage Analyzer, Part 4

This is part four of my journey creating a Java (Line) Coverage Analyzer. This time around weā€™ll test the implementation created in part three and look into details what still goes wrong. One (simplified) example that crashes the current analyzer implementation is this one: public class Demo3 { public static void main(final String[] argv) { final Stuff stuff = new Stuff( !getBoolean()); bla("value: " + stuff.boolValue()); } public static boolean getBoolean() { return true; } private static void bla(final String greeting) { System....

Status: šŸŒ³ Evergreen Ā· Planted: Mar 1, 2025 Ā· 8 min

Let's create a Coverage Analyzer, Part 3

This is part three of my journey creating a Java (Line) Coverage Analyzer. This time around weā€™ll look into improving the very naive implementation created in part two. That one ended in a VerifyError and the message Expecting a stackmap frame at branch target 41 So what is this branch target, and the stackmap frame that itā€™s suddenly missing? To have an easier time inspecting the Byte Code, letā€™s first create a little CLI version of our instrumentation code....

Status: šŸŒ³ Evergreen Ā· Planted: Mar 1, 2025 Ā· 9 min

Let's create a Coverage Analyzer, Part 2

This is part two of my journey creating a Java (Line) Coverage Analyzer. Here weā€™ll actually implement the Byte Code Instrumentation, as pointed out in the first part. Since processing the Byte Code itself, i.e. reading the classes, finding the methods, processing line number information, is in itself a huge task, letā€™s rely on the ASM library for that. After all JaCoCo and Cobertura also rely on that, so this seems to be a valid choice šŸ˜‚...

Status: šŸŒ³ Evergreen Ā· Planted: Feb 26, 2025 Ā· 8 min

Let's create a Coverage Analyzer, Part 1

Have you ever wondered what happens when you click on ā€œRun with Coverageā€ in IntelliJ? Obviously itā€™s running the tests, but how is it collecting the coverage information? Letā€™s create a simple Line Coverage Analyzer in and for Java šŸ„³ First of all, letā€™s write a simple example program (see GitHub) package de.brokenpipe.dojo.undercovered.demo; public class Demo { public static void main(final String[] argv) { final String greeting = "Hello World"; bla(greeting); bla("to the blarg"); } private static void bla(final String greeting) { System....

Status: šŸŒ³ Evergreen Ā· Planted: Feb 17, 2025 Ā· Last tended: Feb 26, 2025 Ā· 6 min

Chromium Site Search

Pretty likely this is a well-known thing to many šŸ„±, and to be honest, I also kindof knew that Chromium has some search shortcuts, but I never bothered to learn how to use them. To even add to that, Iā€™m even well aware that I quite regularly went to pages like dict.leo.org, and used the search feature there. Or I went to our Jira instance, and used the search feature there, regularly just typing a ticket number....

Status: šŸŒ± Seedling Ā· Planted: Feb 3, 2025 Ā· 3 min

Other LLMs writing a Telegram Bot

This is the fourth (and likely last) part in this mini series. ā„¹ļø This post belongs to a mini series (Iā€™m aiming for three posts in a row), where I try prompting Claude with different levels of verbosity and compare the results: In Claude writing a Telegram Bot, 1st try Iā€™m using an elaborate, step-by-step prompting strategy with Haiku model In Claude writing a Telegram Bot, 2nd try I aim for a detailed one-shot prompt In Claude writing a Telegram Bot, 3rd try I try a rather short one-shot prompt In Other LLMs writing a Telegram Bot I quickly try DeepSeek and some more LLMs Since DeepSeek currently is all the rage, obviously I had to prompt it as well....

Status: šŸŒæ Budding Ā· Planted: Feb 2, 2025 Ā· 8 min