roka Kirby Sun, 03 Jan 2021 00:00:00 +0100 Randomly ordered chaos. Personal website of Robert Katzki. White Christmas photos/2020/white-christmas Sun, 03 Jan 2021 00:00:00 +0100

Spent the christmas days at my parents house — did we have luck to get some snow! Hamburg doesn’t get so white that often.

Karuna Wallet projects/karuna-wallet Fri, 18 Dec 2020 00:00:00 +0100

Cashless shopping for people in need. Through the Karuna Wallet it is possible to distribute donations without cash to people in need. The goal was to distribute donations without putting streetworker or recipients in danger of being harassed. It also ensures that donations can only be distributed to verified locations. A new virtual currency was invented for this project: Karuni.

My Role

I worked on the API and the admin area. Both run in Google Cloud Functions to keep the costs down. A PostgreSQL handles the transactions. Everything is written in TypeScript.


The admin area allows to manage users.
The wallet a user can access in their browser.
Besenhorst photos/2020/besenhorst Fri, 27 Nov 2020 00:00:00 +0100

When leaving Hamburg to the east there is Besenhorst — a dune, forest and some ruins. During the wars there was an explosives factory and 8000 people had to work there. Today you can discover the remaining traces and enjoy the nice nature.

A Like Can’t Go Anywhere, But a Compliment Can Go a Long Way posts/a-like-can-t-go-anywhere-but-a-compliment-can-go-a-long-way Sun, 15 Nov 2020 00:00:00 +0100 ➭ Visit link

Suppose a person comes across something quite nice on Instagram or Twitter. They could write a pleasant comment, but they are probably going to Like the post instead. […] There is no feature for displeasure on social media, so if a person wants to express that, they must write. Complaints get wrapped in language, and language is always specific.

Very interesting post by Frank Chimero on how just one negative comment on social media gets way more room in terms of pixels than a million likes. The one negative is what sticks. Grasping a million likes in form of a heart or similar is very hard and abstract.

The features of software with massive reach always have unintended consequences. For instance, social media, by making positivity easy and quantifiable, has ensured that negativity looms large. It’s become a place where we count the good things and experience the bad things.

To counter this: write compliments. Write something positive to fill the room with something good.

Hello Sublime Text, my old friend posts/hello-sublime-text-my-old-friend Mon, 14 Sep 2020 00:00:00 +0200

It’s been a long time since I used Sublime Text. I’ve quit on version 2 and used Atom at first. Visual Studio Code followed soon after and I used it for some years. It was nice for some time, but those Electron Apps annoy me ever more. They are very memory hungry and my old Mac doesn’t provide endless amounts of it. Time to revisit Sublime!

What’s the current state of Sublime?

The current version of Sublime Text is 3 and there is an even faster version 4 in development right now. Great to see this project still making progress! So I purchased a license and started to try out version 4. That dev version is pretty stable already — just as I remember it! You can get version 4 from their Discord.

Code Intelligence

Coming from Visual Studio Code, I got used to the code intelligence a lot. I was very happy to find out that this is due to the Language Server Protocol (LSP) which is now also available for Sublime Text! Nice! Code completion, references and — most importantly — refactorings are possible, just like in VS Code.

LSP giving suggestions to autocomplete.
LSP providing information on the signature of a function.

Extensions I use

Sadly it’s not as pretty and usable right after installing it — you have to get some extensions (called packages here) to add the functionality.

I do mostly web development in JavaScript / TypeScript, so these are the extensions I use:

  • A File Icon: file icons for the sidebar
  • ayu: my theme choice
  • Color Highlighter: underlay hex colors with their real color
  • DocBlockr: Simplify DocBlock writing
  • EditorConfig: respect .editorconfig files for a consistent coding style
  • FileManager: improved file handling
  • HTML-CSS-JS Prettify: prettify a lot of files
  • JavaScript Console: console snippets
  • JsPrettier: prettier formatting support
  • LSP: the Language Server Protocol that gives us code intelligence
  • LSP-typescript: extra TypeScript support for the LSP
  • MarkdownEditing: improved editing view for Markdown
  • Nodejs: Node.js snippets and bindings
  • Stylus: support for the stylus CSS preprocessor
  • SublimeLinter: adds linting to Sublime Text — linters need to be installed separately. I installed SublimeLinter-annotations, SublimeLinter-contrib-dockerfilelint, SublimeLinter-contrib-rustc, SublimeLinter-contrib-yaml-lint, SublimeLinter-csslint, SublimeLinter-eslint, SublimeLinter-json
  • SVG Preview: preview SVG files
  • SyncedSideBar: sync project sidebar with currently active file

Git integration

Since when I quit Sublime there is a new program called Sublime Merge. It’s a power Git client that can be opened out of Sublime Text. One click repo handling and it doesn’t even use resources when developing as it doesn’t need to hang around open all the time.

Sublime Merge showing a commit diff.


Create a SublimeText/User/Default (OSX).sublime-mousemap file and add this content:

        "button": "button1",
        "count": 1,
        "modifiers": ["ctrl"],
        "press_command": "drag_select",
        "command": "lsp_symbol_definition",
        "context": [{"key": "setting.lsp_active"}]

This allows ctrl-click a variable and go to it’s definition. Requires a working Language Server Protocol though. But that’s something you’ll want nonetheless.

Give it a try!

You can evaluate Sublime Text for an unlimited amount of time, so just download it and play around. It’s fast and has a minimalistic interface. I’m glad I came back.

Fischland photos/2020/fischland Sat, 12 Sep 2020 00:00:00 +0200

Spent the last weekend in Fischland-Darß-Zingst. What a beautiful place! Even though it was a bit stormy.

Bou(tique)* Pou(lailler) projects/bou-tique-pou-lailler Mon, 31 Aug 2020 00:00:00 +0200

My friend Marcel Große did an exhibition together with Tanja Hehmann in an old chicken barn in Volksdorf, Hamburg. They opened a popup store for a weekend with lots of curiosities to discover.

To showcase the opening and to discover what happend during that moment, I’ve build a site based on Kirby CMS to upload photos and texts directly after the event. You should definitely get something from the shop to support them. I can recommend the work Matches which decorates our flat now.

Make yourself an impression of this rare boutique on

Is this Summer in Denmark? photos/2020/is-this-summer-in-denmark Sun, 26 Jul 2020 00:00:00 +0200

We’ve spent our summer holidays in Denmark. Scandinavia for the first time! The weather was very… nordic. Didn’t feel like summer. The cities and the landscape were beautiful though. Enjoyed it!

Outdoor of Hamburg photos/2020/outdoor-of-hamburg Mon, 20 Jul 2020 00:00:00 +0200
Browser diversity matters posts/browser-diversity-matters Thu, 25 Jun 2020 00:00:00 +0200 I’m an avid Firefox user since years. There were no problems surfing the web for quite some time. In recent weeks though, I tripped on some problems. How come for some (large!) companies Firefox is something not worth to support anymore?

I’ve written about browsers before. But those incidents darken my mood a lot.

Trying to watch something on Sky

When the third season of Westworld came out I wanted to watch this. In Germany I can do so via Sky. Time to reactivate my account and book a ticket to watch some series!

After logging in I was greeted with this:

I tried various things but always ended up here. Time to contact support — maybe my account is somehow not able to do this? Tried it in the Google Play App after some time and could book a ticket there. Hurray, Westworld! 🍿

Support called me (plus points for that, I was surprised!). The only thing they could recommend me was to delete my browser history. Like … really? I just agreed to try this to end this call.

As it still tripped me that I couldn’t access the website with my account I stumbled upon this in the console:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf (Grund: CORS-Anschlag schlug fehl).

I thought it may have to do with blocked trackers or similar. Nope, same when disabling all the tracking prevention and ublock. Is it really that broken? Checking in Chrome: the site loads. No problems at all.

This makes me sad. And angry.

Trying to book an airbnb

Just a few days ago I tried to book something on airbnb. I found a nice location to spend my holidays at and went on to book. It required me to provide a phone number and wanted to check for a verification code. Okay so far.

Except the phone number input didn’t allow more than 7 digits. I tried around and couldn’t proceed without this confirmation. Stuck at a number input. 🤦 Another try in Chrome and it went without problems. Interestingly the whole process looked a bit different.

Why are you doing this?

Firefox isn’t an old browser nor has it a lack in supporting things like inputs or loading files. It sucks to be treated like this.

It really sucks.

I’m not going to switch my browser permanently for you. I’m reconsidering spending any more money on your site instead.

Of course, not only browser diversity matters. Diversity matters everywhere. It’s whats makes us better and stronger. ✊🏿✊🏽✊🏻