tech

  • Advent of Rust // Day 7

    I spent this morning trying to build a super generic directory tree structure using dynamic types and ended up being frustrated because I don’t get how ownership, lifetime, and all that jazz works in Rust. continue reading
  • Advent of Rust // Day 3

    I was surprised there’s no built-in way to find the intersection of multiple sets. I started to implement a function for this, but quickly discarded it in favor of a more specific one for the task at hand. After all, there’s exactly one character to find for each bunch of strings. continue reading
  • Advent of Rust // Day 2

    The second day was still easy on the puzzle side. I guess I went a little overboard with the implementation, but I wanted to play with the language. I had a lot of first ones today: First struct, first enum, first use of impl to add functionality, passing functions as arguments, and adding behavior with derivable traits. continue reading
  • Advent of Rust // Day 1

    Today is December 1st and thus the first day of Advent of Code. This year I decided to give Rust a try. As with my attempt with Haskell two years ago, I come unprepared with virtually zero knowledge about Rust. The only things I did beforehand were install the Rust compiler, the IntelliJ Rust plugin, and run the canonical “hello world” program. continue reading
  • Colocating Tests and Production Code in PHP(Unit)

    Colocating tests and production code is the default in some programming languages and has become the de facto standard in others. I have to admit that while I liked it in Go and TypeScript, I always felt a little queasy about doing it in PHP. I couldn’t really name it; it was more a sense of “it doesn’t feel right”. continue reading
  • Keyreative KAM Wraith

    Even though I hoped people would come for my manifold and perceptive writing, one of the most visited pages on my little website is this picture in the pipstagram section. Someone even emailed me a while back asking where I got these keycaps. So, for all y’all folks interested, those are the KAM Wraith keycaps. continue reading
  • I wouldn't write a test for that

    Last week, I was helping a colleague who was working on a small application. One component was responsible for sending data to a configured recipient. I suggested writing a test to verify that an email was actually sent containing the relevant data in the body. This led to the following discussion: continue reading
  • Advent of Haskell, Part 2

    It’s already been more than two weeks since I started my little Advent of Code + Haskell adventure. So it’s time for a little update. Here’s what I got done. Day 2 Puzzle description Regular expressions are often my first choice when I have to parse something. Like in this case, to get the values easily out of strings like 6-8 b: bbbnvbbb. continue reading
  • Approaching 100% code coverage in a healthy way

    One question the always comes to my mind in the discussion about code coverage is: What does the percentage refer to, anyway? This is probably a stupid question. It seems to be common sense that it is the whole codebase. But does it really have to be? What is the value of code coverage, again? continue reading
  • Advent of Haskell, Part 1

    This year is the first time that I participate in the Advent of Code. What I learned right on the first day was that some people would finish the whole puzzle while I was still sipping on my morning coffee reading the assignment. I like challenges but I don’t know whether I can compete with what’s going on in the leaderboard. continue reading
  • About confidence, code, and tests

    Whether you’re reading a classic like “Test-driven Development by Example” by Kent Beck or a yet another article on medium. When it’s about testing, there’s always some talk about confidence. That made me think. Can you be confident about your code when you don’t have tests? The question seems ridiculous. continue reading