belief driven design
On the Other Side of the Glass
The Leasehold: Shell Shocked
Ghosts On The Wire
The Terraformer's Garden
How Fast Are Streams Really?
Shell Navigation 101
Taking Out the Trash in Java
Why Everyone Talks About Zig
What Happens After We Hit Compile in Java?
Templating with Thymeleaf: Custom Dialects and More (Part 3)
Templating with Thymeleaf: Fragments and Reusability (Part 2)
Templating with Thymeleaf: The Basics (Part 1)
Vom Bytecode-Henne-Ei-Problem zur neuen Java Class-File API
The Bytecode Chicken-Egg Problem
Vom Bytecode-Henne-Ei-Problem zur neuen Java Class-File API
Using Indexed and Associative Arrays in Bash
Understanding Java Generics: Key Features and Common Pitfalls
Reclaim Your Gmail Inbox with Google Scripts
Exploring Java's Units of Measurement API (JSR 385)
Looking at Java 22: Multi-File Source-Code Programs
Shell Traps and Posix Signals
Looking at Java 22: Stream Gatherers
Looking at Java 22: Foreign Function & Memory API
Looking at Java 22: Class-File API
Working with Numbers in Java
Looking at Java 22: Unnamed Variables & Patterns
Grabbing Screen Text with a Shell Script
Looking at Java 22: Statements before super
Looking at Java 22: Intro
Better Code Snippets in JavaDoc
Java Enums 101
Test Swift Packages with a Test Host
Looking at Java 21: Structured Concurrency
Looking at Java 21: The Little Things
Looking at Java 21: Virtual Threads
Shell Redirection 101
Revisiting Java for Shell Scripting
Xcode String Catalogs 101
Looking at Java 21: Generational ZGC
Looking at Java 21: Record Patterns
Looking at Java 21: Feature Deprecations
Xcode Breakpoints 101
Looking at Java 21: Switch Pattern Matching
Looking at Java 21: Scoped Values
Looking at Java 21: Sequenced Collections
Looking at Java 21: Simpler Main Methods and Unnamed Classes
Looking at Java 21: String Templates
Looking at Java 21: Intro
"A Functional Approach to Java" is finally here!
Traveling with (only) an iPad
Deploying Hugo with GitHub Actions
Functional Programming With Java: Method References
BASHŌ (芭蕉) - An Exporter for Calibre
Custom Operators in Swift
Build-Time Variables in Go
Java Interfaces vs. Abstract Classes
Java Spliterator Explained
How to Iterate with Java
Essentials of Java’s Time API (JSR-310)
Functional Programming With Java: map, filter, reduce
Local Variable Type Inference in Java 10
Localization Changes in Java 9
Why We Should Build Our Own Tools: The Story of Tortuga
9 Tips For Writing Safer Shell Scripts
Nested Classes in Java
Functional Programming With Java: Exception Handling
Java Benchmarks with JMH
Choosing the Right Data Types
All You Ever Wanted to Know About Java Exceptions
How Fluent Interfaces Can Lead to More Meaningful Code
Formatting Strings With Java
Utility Classes of the JDK: Dealing With I/O
The JDK Ecosystem
Utility Classes of the JDK: Collections and Arrays
Decouple Your Code With Dependency Injection
JShell, the Java REPL
10 Git Tips To Save Time And Improve Your Workflow
Functional Programming With Java: Immutability
Habit-Driven Development and Finding Your Own Style
Functional Programming With Java: Streams
Java Annotations Explained
Functional Programming With Java: What’s in the Box
Equality and Comparison in Java: Pitfalls and Best Practices
Functional Programming With Java: An Introduction
Java Stream Collectors Explained
I (don’t) want to be a Digital Nomad
Introduction to CSS Custom Properties
Bikes, Yaks, Airplanes, and Arguing About Unimportant Things in Engineering
Better Null-Handling With Java Optionals
Know Your Dependencies
DIY Swift Package Manager Dependencies
Signal-to-Noise Ratio
Best of: Java 8
Surface Pro 7 as portable Linux Dev Machine
Column 80
Best of: Java 7
Moving from GitHub pages to self-hosted
Running a JavaFX app with Java 11
Naming Stuff is Hard: Why Proper Names Matter
(Not) Everything needs JavaScript
Your Comments Are Bad
How to Hotfix Carthage Dependencies
Java for Shell Scripting
Java 8 Interfaces: default Methods for Backward Compatibility
Java Streams: Order Matters
about me
Imprint / Impressum
Privacy / Datenschutz
search
Shell Shocked