This page contains random thoughts and impressions by me.

  1. 2020-07-19

    • Christian Kruse

      The last few days I‘ve been working on creating an iOS app for my website so I can publish easier when on mobile. While SwiftUI and it‘s tooling is still bugged it also made development much, much easier and less complex. I indeed enjoy the experience.

  2. 2020-07-15

    • Christian Kruse

      SwiftUI is not quite ready for prime time… everything is still rough, a lot of pieces are missing, things are bugged, documentation is… suboptimal.

    • Christian Kruse

      Creating a SwiftUI application to publish to my website is more work than expected. But I am still pretty motivated! 😜

  3. 2020-07-14

    • Christian Kruse

      Ok, seriously: why is it always old, white men being the biggest assholes on earth? When I was shopping this morning there was an old, white man standing directly in the entrance. When I politely asked him to step back so I could leave the building without getting to near to him he barely stepped back and laughed at me. Oh, and of course he wasn’t wearing a mask. I called him an asshole and he screamed after me, telling me how this is all a hoax and I’m an idiot for believing it.

      We do this social distancing and mask wearing shit mostly for people like him: old, overweight, male, probably high blood pressure - that’s a whole lot of risk factors for dying because of COVID-19. I am still angry about this.

    • Christian Kruse

      In reply to

      How is that simple? We failed for years implementing something like this. The closest we got to this is with GNOME keychain, but it still doesn‘t get it completely right…

    • Christian Kruse

      I found a new rabbit hole to fall into 😂 Just started a new iOS project using SwiftUI

  4. 2020-07-10

    • Christian Kruse

      This messenger thing gets out of hands. On my phone I have installed:

      • an email client
      • iMessage
      • WhatsApp (oh the peer pressure)
      • Signal
      • Threema
      • Slack
      • Riot

      On my desktop computer I also have installed an IRC client. And I refuse to use Facebook messenger, Snapchat and probably some additional messenger I never heard of. This is ridiculous.

  5. 2020-07-09

  6. 2020-07-02

    • Christian Kruse

      Software I miss for the Linux desktop:

      • a power user mail client like MailMate
      • a good graphical Git client like Tower
      • a software like Soulver or Numi (yes, I know about NaSC, but the project is Elementary-only project and seems dead)
      • a todo management software working and syncing between the desktop and my iPhone
  7. 2020-06-25

    • Christian Kruse

      TIL: there is an aggregate function mode() WITHIN GROUP (ORDER BY sort_expression) in PostgreSQL. It returns the most frequent value of a group. So, for example when you have this table:

      CREATE TABLE foo (id serial, user_id integer, task_id integer);

      You can get the most frequent task ID for each user ID by using this aggregate function:

      SELECT user_id, mode() WITHIN GROUP (ORDER BY task_id)
      FROM foo
      GROUP BY user_id;
  8. 2020-06-16

  9. 2020-06-11

    • Christian Kruse

      While I don’t need it (and thus don’t buy it): the PineTab is a pretty interesting device.

  10. 2020-06-10

    • Christian Kruse

      I’m hurt again. A torn muscle fiber. At least 4 weeks no running 😭💩

  11. 2020-06-09

    • Christian Kruse

      In reply to

      I’m seriously considering to switch again to a different distribution. Maybe back to Arch or something like that.

    • Christian Kruse

      I get why Canonical hypes Snaps that much. But seriously, why do they have to be so fucking slow to start? A simple application I already use for ages, Hexchat, now takes more than 20 seconds to start. It feels like being back on spinning disks again, and worse, even slower.

  12. 2020-06-03

  13. 2020-06-01

  14. 2020-05-31

    • Christian Kruse

      „Die Zerstörung der Presse“ – Ich finde den Stil zwar anstrengend (bin vermutlich einfach zu alt), aber er hat Recht. Viele Kritik-Punkte gehen mir auch schon seit Jahren gegen den Strich. Danke, Rezo.

  15. 2020-05-29

  16. 2020-05-27

    • Christian Kruse

      Meh. Had to skip training today because of a pulled right adductor

  17. 2020-05-26

    • Christian Kruse

      Today’s training: 2km warm-up, six 1500m intervals at 03:45 min/km and 400m rest at 04:30-05:00 min/km, 4km cool down. Purpose of this training: practise to metabolize lactate.

      I love these long intervals 😍

    • Christian Kruse

      Call me immature, but I actually enjoy Shera. I just started watching season 5.

    • Christian Kruse

      Oh, the Microformats2 parsing specification has been updated. Guess I have something to do for the next few evenings.

  18. 2020-05-24

  19. 2020-04-26

    • Christian Kruse

      I’ve been running 78km this week. After my injury last year I never thought I would get this far again. I’m more than satisfied with this progress 😁 while I can’t run the competitions I was planning to run I aim for a 3 hours marathon next year (I just assume that running competitions are possible next year again).

      I just love running. 💖

  20. 2020-04-23

    • Christian Kruse

      Seems like the bathing season has begun… I walked along a local bathing lake on during the dog walk. There were at least 20 cars parking. That‘s ridiculous… global pandemic my ass.

  21. 2020-03-26

    • Christian Kruse

      I have to admit: I’m bored. Due to the „stay at home“ policy and most of the things being closed I need a new side project. Something which gives me the opportunity to learn Rust would be nice. Has anybody a good idea?

  22. 2020-01-28

    • Christian Kruse

      You know this day will be great if it begins with a compiler bug 🎉

  23. 2020-01-24

    • Christian Kruse

      It’s fascinating to see how Intel has one PR desaster after the other and still manages to earn record high revenues

    • Christian Kruse

      Note to myself: UPDATE tbl SET foo = fun(id) in a trigger is a bad idea 😜

  24. 2020-01-14

    • Christian Kruse

      TIL: in Emacs you can persist the helm-rg result list with M-b. This opens a persistent buffer with the list of search results.

  25. 2019-11-15

    • Christian Kruse

      A repost of

      Too many people have joined the chorus of cacophonous conversations online about booting Richard Stallman from the free software movement. They claim that his social behavior has prevented more people from joining. There are conspiracy theories claiming a hit job by an evil corp. The point that everybody misses is that Stallman’s views on software don’t matter anymore.

      A very interesting article about how the views of the FSF and Stallman completely ignore the essential problems in IT and society in current day and age.

  26. 2019-11-10

  27. 2019-11-05

    • Christian Kruse

      Whoever thought it would be a good idea to use email as a second factor should be punished. And whoever thought it would be a good idea to use email as a second factor and let the code be only valid for five minutes should be punished even more.

  28. 2019-11-02

    • Christian Kruse

      Halfway to the second exercise for the chest and I am already feeling sore 😂

  29. 2019-10-30

  30. 2019-10-06

    • Christian Kruse

      A repost of

      Whether you’re coming to Haskell from another language, or if you’re interested in writing programs that, y’know, actually do things, participating in the Haskell community can feel like you’re a second class citizen. […] If you’ve already learned another language, you can learn Haskell. And even if you haven’t, learning Haskell is no harder than learning any other programming language.

      My experience when learning Haskell was that it is a really hard language to learn. A lot of very foreign concepts with a lot of foreign words.

      But in hindsight it wasn’t that hard; the documentation I tried to learn with was just not very good.

  31. 2019-09-19

  32. 2019-08-26

  33. 2019-07-02

  34. 2019-06-24

  35. 2019-06-14

  36. 2019-05-27

  37. 2019-05-24

    • Christian Kruse

      Today I learned: you can specify a binding position in an Ecto query via parameter:

      def apply_some_filter(query, binding_position, field_name) do
        from([{rel, binding_position}] in query, where: field(rel, ^field_name) == "foo")

      This works thanks to pattern matching 😍

  38. 2019-05-19

    • Christian Kruse

      I’m glad I used Ansible for deploying my servers a few years ago. This allowed me to move my current setup to a new Digital Ocean droplet with minimal effort. Just a few changes due to new system versions. 🎉