German Unefficiency and Living Without Internet

Posted on 6th of July 2024 | 1238 words

As some of you might know, I’ve been living in Berlin, Germany for a few years now. Wonderful city! Just what I was looking for couple years back when I moved here. City definitely has its flaws (like does every city in the world) but I still enjoy being here. City is definitely massive. Each district having their own life, own people and own quirks. Spectrum is wide from somewhat poshy areas of Mitte and Prenzlauer Berg to more hip and trendy areas like Neukolln and Kreuzberg to more suburban areas around the Ringbahn. Of course, since I’m mainly into various hip and trendy activities most of my time has been spent lingering around and roaming the streets of eastern Berlin, mainly Neukolln and Kreuzberg since those were the districts I used to reside. Due to its sheer size, there’s no way, I’ve been able to experience all the city has to offer. Despite this, I feel that the city has offered me tremendously.

While I’ve really enjoyed living in Berlin, one thing I can’t praise at all is how things work in this country. So this is not necessarily Berlin’s fault, although, I feel its also partly due to that. But more or less everything seems to be difficult here. At least in a bureaucratic sense. Difficult in a sense that nothing really works efficiently or effortlessly, or that’s how I at least feel coming from Finland to this country. I’m not saying Finland is perfect in how country should operate, far from it. I’m just saying that if you want to move from place to place, making this sort of address change to your government shouldn’t be too difficult. In Finland for example, if you want to move, there’s one URL that you go to, fill in your new details, and send the information. Pretty easy. In Germany, if you want to Anmeldung, you need to print your papers necessary, fill the forms, book time in your nearest Burgeramt, go there physically, just so someone can put some stamp in your papers. Sounds pretty unefficient, right? That’s because it is.

I also just recently read from the news how Germany was excited to have digitalised their medical patient information so that more stuff would happen digitally instead of manually. Making it easier to share medical history from doctor to doctor. Sounds amazing! Of course, something like this has been implemented in many different countries for 20 or so years, but hey, Germany is in no rush!

This sort of a ranty-detour gets us to the whole topic of today’s post about living without internet. So I just wanted to write some words down on how I feel after some undisclosed amount of weeks that I have been without internet at home.

This all started mainly due to the fact that I just happened to move into a new place and naturally I wanted to move my internet contract into the new address. Of course, naive and blue-eyed me thought that it would be pretty straight-forward. I just change the address, configure the router possibly in the address in case something needs to be done and that’s about it, right? Well of course not. Turns out, for some reason, there needs to be a internet technician come to your place and turn on the connection for you. Okay, sure. Interesting that it couldn’t be done remotely, but hey let’s go with it. But of course to make it not so easy, the technician isn’t able to find my home, which is interesting again since they know the address. Also, of course they could’ve just called me but that’s too much to ask I guess. So there’s an another try, but with the same result. Oh, and did I mention that there was two weeks between these attempts so it not like that they tried it again in a short period of time.

Okay, I start ranting again. Back to the topic. I wanted to jot down some thoughts that I’ve encountered while living without an internet. Turns out, I have really enjoyed my time! I’ve written in my blog about my “struggles” with for example social media and how it used to grab my attention almost wholly. But generally speaking, it feels that everything I tend to online, tends to be more on the excessive end of the spectrum. Call it excessive use of YouTube or other various places filled with endless amounts of content. I just feel that I tend to sink vast amount of hours in these sort of places, without getting much in return. While I’m not saying they are all bad, they certainly have good bits and pieces here and there, but the vast majority just feels brain-rot.

With these undisclosed amount of weeks that I’ve now been without internet, naturally, I’ve been away from all them. Even the cellural signal is quite weak in my new apartment so I haven’t been able to use them via it even that much. Fortunately, I’ve been able to keep in touch with family and friends with the little signal I’ve had at home and in case I’ve really had to use internet for something, I’ve had just to leave my home to find Wi-Fi, which also has been quite good for me, since I’ve a habit of going “monk- or hermit-mode” quite often.

I also recently changed jobs so fortunately I haven’t been in on any on-call rotation so I haven’t really had the need to work from home. Also, the new apartment has been quite close to the new office, so it hasn’t been too big of a hassle to go there daily. Even that hasn’t been too bad. Why it’s to my surprise is the fact that before this I really never went to the office. This employer or the previous ones. I wouldn’t say the office that we have currently is something extra-ordinary that I would really want to spent time in there, it’s still nice, don’t get me wrong. I’ve never really just seen myself as this social butterfly who can effortlessly manage themselves mingling around in an office environment. So, I’ve always just enjoyed working from home more.

The lack of internet at home has really shown itself in my life in the form of vastly increased productivity on the stuff that I value. I’m not saying that some sort of ultimate productivity is something that everyone should strive towards, which seems to often be the case in various toxic “hustling culture” ideas, but I’m more so approaching the topic from the point of view of how much time you really can use in the stuff that brings something positive and beneficial to your life. In my case, it has shown itself in the form of increased productivity for example in exercise, making music, writing, reading and also programming passion projects. I.e. more or less most of the stuff outside personal relationships and health that I find to be important in my life.

So now I’m just spitballing with the idea of really not just getting any internet to my home. Of course, if the current job situation would allow something like that. Considering all the good effects I’ve seen in my life AND considering the fact that it would be just one less thing to worry my head in German bureaucracy, I don’t really see negative side in this.


Dump Your Currently Set Faces in Emacs

Posted on 26th of May 2024 | 634 words

Every once in a while I like to play around with Emacs themes. Of course, mainly due to yak-shaving and procrastination reasons and nothing actually valid. But it’s fun nonetheless, although occasionally very tedious. Tedious in a sense that Emacs tend to come with a lot of different faces, especially if you happen to use more than a few third-party packages.

Defining a custom theme in Emacs

Emacs comes with couple relatively straight forward way to set custom themes in the function custom-theme-set where you define the name of the theme and then the faces you want to modify:

(deftheme fancy-theme)

(custom-set-faces
 'fancy-theme
 '(default ((t (:foreground "black" :background "white"))))

 ;; [... and so on]
 )

You’re also able to control on what sort of displays your custom theme should support. For example, if you want to use theme in only terminals that support minimum number of 16 different colors, you’re able to define that like:

'(default ((((class color) (min-colors 16)) (:foreground "black" :background "white"))))

Of course that can be slightly verbose, so often you might see custom themes to be set like:

(deftheme fancy-theme)

(let ((class '((class color) (min-colors 16))))
  (custom-set-faces
   'fancy-theme
   `(default ((,class (:foreground "black" :background "white"))))

   ;; [... and so on]
   ))

But it still tedious since there is a lot of faces and there can be lot of variance between the faces so often if you want to write your own full fledged theme, it’s better to explicitly set all the faces that you plan to use. Mainly since, if the face is not set in the theme it’ll use that lastly set face for that face in question, so if you session has used multiple different faces, it can lead into some funky color combinations.

Currently in my Emacs session, which is relatively light package-wise, amount of currently set faces equals to 869.

Simple tool written for aspiring theme developers

This is why, I decided to write a simple Emacs Lisp helper function to dump all the currently set faces to a buffer where you can copy them to your own theme at will. I also made it so you can simply just dump the faces from a give package if you only care, e.g. about Magit’s faces.

(require 'cl-lib)

(defconst theme-dump--buffer-name "*theme-dump*")
(defconst theme-dump--default-format-string "%s %s ")
(defconst theme-dump--string-format-string "%s \"%s\" ")

(defun theme-dump-current-faces (pkg)
  (interactive (list (read-string "Dump faces from package (leave empty for all packages): ")))
  (let ((faces '()))
    (dolist (f (theme-dump--filter-faces-by-package pkg))
      (let ((attr-str (mapconcat (lambda (a) (theme-dump--format-attr-str f a))
                                 (face-all-attributes f)
                                 "")))
        (push (if (not (string-equal attr-str ""))
                  (format "`(%s ((,class (%s))))\n" f (string-trim-right attr-str))
                (format "`(%s (( )))\n" f))
              faces)))
    (let ((buf (get-buffer-create theme-dump--buffer-name)))
      (with-current-buffer buf
        (erase-buffer)
        (insert (mapconcat 'identity faces))
        (local-set-key (kbd "q") 'kill-buffer-and-window))
      (split-window-right)
      (other-window 1)
      (switch-to-buffer buf))))

(defun theme-dump--filter-faces-by-package (pkg)
  (cl-flet ((pkg-face-p (face)
              (cl-search pkg (symbol-name face))))
    (if (not (string-equal pkg ""))
        (cl-remove-if-not #'pkg-face-p (face-list))
      (face-list))))

(defun theme-dump--format-attr-str (face attr)
  (unless (equal (face-attribute face (car attr))
                 'unspecified)
    (cl-typecase (face-attribute face (car attr))
      (string (format theme-dump--string-format-string
                      (symbol-name (car attr))
                      (face-attribute face (car attr))))
      (t (format theme-dump--default-format-string
                 (symbol-name (car attr))
                 (face-attribute face (car attr)))))))

Essentially, this just gets all the faces with face-list and either returns all of the or filters them by package name if you want. Function prints the faces into a new buffer in a format that is already suitable for new custom themes:

`(magit-section-highlight ((,class (:extend t :background "grey95"))))
`(magit-section-heading ((,class (:weight bold :extend t))))
`(magit-section-secondary-heading ((,class (:weight bold :extend t))))
`(magit-section-heading-selection ((,class (:extend t :foreground "salmon4"))))
`(magit-section-child-count (( )))

;; and so on...

The printed faces can then easily be copied to custom-set-faces for your possible new theme. Faces are also backticked by default, in case you want to change faces to use variables instead of hardcoded names.

Code is in public domain and also available in sourcehut.


Dereferencing Null Pointer

Posted on 24th of May 2024 | 8 words

Bret Hart saving the day in code review.


RIP Steve Albini

Posted on 7th of May 2024 | 15 words

This one hurts. Steve Albini has his hands in so many of my favourite albums.

Youtube video

Sunsetting Mastodon

Posted on 4th of May 2024 | 386 words

Some months ago I decided to join back to social media in the form of registering to Mastodon. I thought that maybe this could be the platform to fill the void (which I’ve later realised to be non-existent) of social medias in my life. But now I’ve decided to leave it as well. Not necessarily due to same reasons why I left social medias like Facebook, Instagram or Twitter. But still, partly due to same reasons.

One of the main reasons why I left mainstream social media platforms was their draconian behaviour behind the scenes. Addictive design principles behind their applications, algorithms promoting content that you didn’t ask for, data mining and profiling, and so on. Fortunately, in Mastodon, these sort of issues weren’t present, which was one of the reasons why it felt so welcoming. It had this weird old internet type of aura in it. Like being part of this weird digital clique.

Also, just from the pure technological point of view, the federated elements of Mastodon (or ActivityPub in general) seemed quite interesting. Finally, a platform competing with the centralized behemoths where users were able to retain control over the data and interaction without being riddled with profit-driven algorithms. If I would want to be part of some social media, it still would be Mastodon, which might sound slightly odd considering the title of this post.

So why did I then decide to leave it? One of the main reasons why I didn’t enjoy using e.g. other mainstream social medias, was the fact how they started affect my own behaviour. The constant urge to check what’s going on. Picking up your phone, opening the app, or just going to the site itself out of habit without necessarily even having a reason for it. It is addicting. It is meant to be addicting. Although, in Mastodon’s case, probably not maliciously.

So while I thought investing time and energy into building connections and contributing to various discussions in Mastodon would be beneficial, and no doubt, they can be. For me, it just started feel like sacrificing my mental well-being for digital engagement, again.

Mastodon is by no means a bad platform. It just isn’t suitable for me who wants to navigate digital landscape mindfully and intentionally without being ensnared into various addictive grasps once more.