This page contains random thoughts and impressions by me.

  1. 2019-05-17

  2. 2019-04-27

    • Christian Kruse

      It’s fascinating to see how Rammstein still manages to create controversy and attention, even though they are in the business that long. First there „Deutschland“ video, where a lot of mainstream media weren’t able to see the criticism on German history and called fascism. And now „Radio,“ a homage to the German band „Kraftwerk,“ a nostalgic view back on DDR history and, again, criticism on German history. And again all media is reporting.

      Well done, Rammstein! 👍

  3. 2018-09-19

  4. 2018-09-12

    • Christian Kruse

      Public service announcement: Math.max(...[]) returns -Infinity - took me about an hour of debugging to locate this problem.

  5. 2018-09-11

    • Christian Kruse

      Currently I am working on a TypeScript project. During this project I wanted to give the TypeScript compiler the hint that I expect a class object as a parameter. I couldn’t find something in the documentation. But since you can use expressions as type declaration I tried to use typeof:

      class Bar {}
      function foo(val: typeof Bar) {}
      foo(Bar)

      Surprisingly this works. Now after I knew what I had to look for I could find a hint in the documentation as well:

      Next, we then use the class directly. Here we create a new variable called greeterMaker. This variable will hold the class itself, or said another way its constructor function. Here we use typeof Greeter, that is “give me the type of the Greeter class itself” rather than the instance type.

      Maybe this saves you a few headaches.

  6. 2018-09-10

    • Christian Kruse

      Over the weekend my good friend Jeena was visiting me. We had a lot of fun and tons of interesting talks. It was a pleasure, Jeena!

  7. 2018-08-23

  8. 2018-08-15

  9. 2018-08-12

    • Christian Kruse

      EmacsCast: A journey into Emacs is a podcast of a programmer diving into Emacs. While I didn’t listen to it, yet, I thought I should share it because there is not very much Emacs content out there. In the first episode he introduces hilself and explains why he, as a SublimeText user, dives into Emacs.

      Enjoy!

    • Christian Kruse

      After a pause of 14 days it is surprisingly easy to get back into running. 17,8km in 01:21:33, 04:35 per km 🏃

  10. 2018-08-11

  11. 2018-08-10

  12. 2018-05-14

    • Christian Kruse

      It’s one of those days where I want to throw away ten years old code and just rewrite it…

  13. 2018-05-02

  14. 2018-04-15

    • Christian Kruse

      Quick tip: use gsettings set org.gnome.desktop.interface show-battery-percentage true to show the battery percentage.

  15. 2018-04-14

  16. 2018-04-12

  17. 2018-03-18

  18. 2018-02-24

    • Christian Kruse

      I hate running in the winter. The first 15 minutes it‘s fucking cold. Then up until about 10km its warm enough. Then for the rest of the run it is cold again. ❄️

  19. 2018-02-15

    • Christian Kruse

      I have started to work with React during the last few months. I have to say, I am really impressed how well everything works and how easy it is to create good, working UIs with it.

  20. 2018-02-10

    • Christian Kruse

      I understand now why so many users hate Windows 10… doing some support for relatives, fuck, this is unbearable. Windows seems to get worse every release.

  21. 2018-02-09

    • Christian Kruse

      Current status: BEAMing due to working with Erlang and Elixir (get it? Get it? BEAMing!)

  22. 2018-02-03

  23. 2018-01-29

  24. 2018-01-07

  25. 2017-12-31

    • Christian Kruse

      Resume for 2017: I ran about 1000km, lost 38kg, gained some muscles and had a lot of fun while trying to achieve this. A good year. 👍

  26. 2017-12-06

    • Christian Kruse

      A project I was working on the last couple of months finally hit production 😍

  27. 2017-12-02

  28. 2017-11-30

    • Christian Kruse

      Wow. According to this about 50% of the top 500 websites take up to 14 seconds to „get interactive” with 4s alone spend for parsing and compiling JS. That’s insane.

  29. 2017-11-24

    • Christian Kruse

      How to pattern match on regular expressions in Elixir: %Regex{} = ~r/pattern/

  30. 2017-11-23

    • Christian Kruse

      Achievement unlocked: body weight (80kg) deep squat 🏋️✌️

  31. 2017-10-25

  32. 2017-10-17

    • Christian Kruse

      It’s ridiculous that we are not able to make a disruption free phone call on a train in 2017. Call gets cancelled every few km…

  33. 2017-10-03

    • Christian Kruse

      With 3500kcal a day I finally make some progress in weight lifting 😍 increased squats to 120kg at 3x12 this week

  34. 2017-10-02

  35. 2017-09-26

  36. 2017-09-19

  37. 2017-09-18

    • Christian Kruse

      I hit a new running PR: a pace of 04:20 per km on a distance of 7.5km ✌️🎉

    • Christian Kruse

      I noticed a new behavior. I lost 37kg in 6 months, and now, as I have finished losing weight, every time I eat above my calories I feel guilty. Yesterday I ate about 50 kcal over my need for that day, and I thought about an hour if I should go for another walk just to get rid of that surplus.

      Although my goal is to gain some muscle weight (which means I have to have a caloric surplus) I am still in that „eat less!“ mindset. That’s an interesting new behavior for me.

  38. 2017-09-16

    • Christian Kruse

      I ordered the Apple Watch Series 3. While it is a lot of money for a silly watch (the most I spent on watches before the Apple Watch was about 80€ for a G-Shock) I noticed that my Series 0 watch is my most used Apple device over the last three years. I use it every day, mainly for activity tracking during sports and for calorie counting. The fitness marketing totally worked on me. I’m even excited for the new device 😝

  39. 2017-09-15

  40. 2017-09-14

    • Christian Kruse

      In reply to http://nullprogram.com/blog/2017/09/07/

      Chris Wellons writes in this article about gap buffers and their performance indications when using multiple-cursors.el. He states that because of the technical implementation of changes in Emacs as gap buffers things like multiple-cursors.el are a performance hit and thus should not be used. Instead one should use search & replace as well as macros.

      I totally disagree. Performance is nothing I should be molested with as a user. When I choose to use a tool I look at the mental overhead it adds. Will it disturb my workflow? How much thought do I have to invest to use it properly? How much thought is necessary to solve my editing problems?

      Macros, for example, add a lot of mental overhead. I have to be aware of many things: I have to ensure that the cursor is at a defined position before executing it (often done with a movement to the beginning of the line), I have to ensure that cursor movements are reproducible in the different contexts, etc, pp. It totally disturbs me in what I am doing right now.

      Search & replace on the other hand add a bit of complexity, but much less than macros. The biggest difference is that I can’t see my changes before executing the replace.

      This is fixed when using multiple cursors: I instantly see my changes and can adopt them, e.g. in case of typos. Also more complex edits are possible since all cursor movements are done on all cursors.

      I just don’t care about the performance. Make it fast enough that I don’t get annoyed by lag, that’s good enough for me.