Berlin building a Berg

Über die Jahre, die ich Berlin meine Heimatstadt nennen konnte, entdeckte ich ein Motiv, dass in der Geschichte der Stadt immer wieder aufkam. Eine stille Sehnsucht, die sich in einem regelmäßig wiederkehrenden Wunsch äußert. Dem Wunsch nach einem richtigen Berg.

2007 lernte ich im Dokumentarfilm “Die Pyramiden vom Treptower Park” erstmals von der einstigen Idee in der Stadt einen künstlichen Berg zu errichten. 1896 fand auf dem Gelände des Treptower Parks die Berliner Gewerbeausstellung statt, die ein deutscher Gegenentwurf zur Weltausstellung in Paris sein sollte, aber ziemlich verregnete. Die Gehwege des Treptower Parks lassen sich bis heute auf die einstiegen Ausstellungen der Gewerbeaustellung zurückführen. Ein Berg entstand nicht, dafür Pyramiden umgeben von viel kolonialem Rassismus.

Ein Jahr später wurde 2008 in Berlin der Flughafen Tempelhof geschlossen und das Tempelhofer Feld als neue Park eröffnet. In den Jahren um die Eröffnung gab es mehrere Ideen-Wettbewerbe über die Gestaltung des Feldes. Neben konventionellen Entwürfen, waren darunter auch eine Segel-Marina und … The Berg.

The Berg war der Vorschlag eines 1200m hohen Berges, aufgeschüttet auf der Fläche des 5km umfassenden Feldes. Eine Seilbahn mit Gondeln in Form von Rosinenbombern würde Skifahrer auf Skipisten bringen. Bergziegen säumen seine Hänge. Am Tempelhofer Bergstübl kann man für Almdudler, Spritzer und Aprés Ski einkehren. Die Illustrationen stehen bis heute online. Der Vorschlag geht mit einer Selbstironie heran un dem Wissen, dass Vorschlag wohl nicht realisiert werden wird, aber in unserem Herzen würde The Berg immer dort sein.

Kaum 10 Jahre später erwachte die Idee eines künstlichen Berges 2019 für zum 40. Geburtstag des Bezirk Marzahn-Hellersdorf zu neuem Leben. Das Künstlerkollektiv Plastique Fantastique errichtete am 7. September 2019 einen kunstvollen und künstlich Vulkan auf den Ahrensfelder Bergen, der für diesen Tag die höchste Erhebung Marzahn wurde.

Doch auch woanders kommt die Idee einen Berg zu errichten immer wieder auf. So auch in den Niederlanden von Thijs Zonneveld, mit dem Vorschlag einen 2km hohen Berg im sonst flachen Land zu errichten.
Italien hat indes die Idee bereits vor 1800 Jahren in die Tat umgesetzt.
Monte Testaccio ist ein 50m hoher Berg in Rom – aufgehäuft über Jahrhunderte aus antiken Tonscherben. Einst die größte Müllhalde des Antiken Roms beherbergt er heute unterirdische Restaurants.

Doch zurück nach Berlin. Was beim Enthusiasmus über das Errichten neuer Berge oft vergessen wird, ist dass Berlin dies bereits längst gemacht hat.

22 Jahre lang brachten täglich 800 Lastzüge bis zu 7000 m³ Schutt in den Grunewald. Bis 1972 entstand aus 26 Millionen Kubikmeter Schutt der Teufelsberg. Dies benötigte zuvor den gewaltvollen Abriss von 15.000 Gebäuden, einen Regierungsumsturz und eine wohlgesetzte Kugel am 30. April 1945. Ein Drittel des Bauschutt aus der Folge des 2. Weltkrieg endete im Teufelsberg. Weiterer Schutt schufen den Insulaner, den Mont Klamott und weitere Monte Scherbelinos in ganz Deutschland.
Der Teufelsberg 120m ist heute mit die zweithöchste Erhöhung des Gebiets von Berlin. Höher als die natürlichen Müggelberge im Südosten, etwas niedriger als die Arkenberge in Pankow im Norden. In 1972 eingeweiht machte er Westberlin ein neues Ski-Gebiet mit Sprungschanze und Schlepplift zugänglich. Der Lift wurde ein Jahr später wieder abgebaut.

Und so schließt sich der Kreis.
In Berlin sieht sich in seiner Sehnsucht nach einem Berg, dem Vergessen konfrontiert, was der Stadt bereits Berge gebracht hat.
Ich wünsch mir keine neuen Berge.
Wer Nazis wählt, ist ein Nazis. Wählt keine Nazis.

Selbst-Organisation meiner Masterarbeit

Ich habe kürzlich meine Masterarbeit beendet. …

Das ist gelogen, das ist 11 Jahre her, aber damals begann ich diesen Text. Nach Abschluss meiner Arbeit wollte ich meine Prozesse dokumentieren, die mir während der Zeit Struktur und Hilfe gegeben haben. Dann kam Leben dazwischen und ich schrieb es nicht zu Ende. Bis heute.
Manches mag inzwischen aus der Zeit gefallen sein, aber so kommt das nunmal. Ich habe kürzlich meine ADHS-Diagnose erhalten und seitdem wird mir noch bewusster, wieviel ich in meinem Leben ADHS mit Struktur kompensiert habe. Die Masterarbeit ist hier ein Paradebeispiel. Also, wir spulen zurück.

Continue reading “Selbst-Organisation meiner Masterarbeit”

Solving Tailscale DNS issues

As I mentioned the other day, I fell in love using Tailscale for making my local private network accessible remotely. I’m also using this in my company, but with one colleague, had an issue, I didn’t find any documented solution online. So here is mine.

I have a Tailscale network with multiple self-hosted services running in Docker and made available with Tailscale. If you have an account and your account is invited to the network, you can access them. This worked for 2 of 3 colleagues. The third had the Tailscale client running on their Windows, it showed up as active in the Tailscale admin console and the list of machines. It looks like it runs perfectly, but when you try access the the service within the network, it fails in Firefox with the error PR_END_OF_FILE_ERROR or SSL_ERROR_INTERNAL_ERROR_ALERT. In other browsers the error would just show as a connection error.

If you put the service in a public Tailscale tunnel, access is possible.
if you go on their machine, open Powershell and call tailscale status it would show all status just fine. Calling tailscale ping <service-name> shows success ping to the service.

I tested Windows defender and firewall settings, but could not find anything that could explain the issues.

Calling tailscale dns status provides on the machine provides an overview of the dns options Tailscale is using. Here it showed this:

=== 'Use Tailscale DNS' status ===

Tailscale DNS: disabled.

Tailscale is configured to handle DNS queries on this device.
Run 'tailscale set --accept-dns=false' to revert to your system default DNS resolver.

So I switched this on:

tailscale set --accept-dns=true

Et voila, calling the service work again!

So now I’m in this half-satisfactory space of having a solution, but not knowing the root cause. My guess is that this colleague hasn’t updated Tailscale since them installed it initially in October and when they installed the latest version, it did not install the latest default configurations properly.

My expectation would be that turn Tailscale DNS off again, would lead to the same issue, but it didn’t.

tailscale set --accept-dns=false

So something is weird, is resetted when activated DNS and stays good when deactivating it again.
Well it works, for now and I hope it’s a permanent solution.

Disney gib mir Geld für mein “Inside Out 3”

Es gibt Filme, die holen einen im richtigen Moment ab. Inside Out 1 und 2 waren so Filme für mich.

Inside Out kam während eines “messy breakups”, einer Zeit, die von vielen mentalen Tiefs geprägt war und in der ich mich erstmals mit dem Thema Depression beschäftigte.

In Inside Out 2 erreicht Riley die Pubertät und mit Anxiety übernimmt ein energetisches Chaos das Steuer. Meine Anxieties waren mir lange nicht bewusst. Erst in den letzten Jahren lernte ich diese zu erkennen und einzuhegen.

Nachdem ich aus Inside Out 2 kam, ging ich durch das nächtliche Wien und machte mir Gedanken über die Filme.
In Beiden besteht ein eine gewisse Dissonanz wie “groß” das Ereignis in der realen Welt und wie heftig und episch die Reaktionen in Rileys Kopf sind. Wenn ein Umzug, zur gezeigten Verstimmung führt und ein schlechtes Wochenende zur Kapitulation vor Anxiety, ist die Wahrscheinlichkeit hoch, dass diese Episoden keine Einzelfälle sind und Riley öfter mit Mental-Health-Themen zu tun haben wird.
Mangelnde Regulation von Emotionen ist ein Symptom von ADHS. Wie cool wäre es, wenn Riley im nächsten Film ihre Diagnose als neurodivers erhält!? Oder im nächsten Film eine neurodiverse Person neben Riley gestellt wird!?

So gingen mir einige Varianten durch den Kopf, wie ich mir von Inside Out 3 vorstellen könnte.

Eine Frau geht durch einen langen Flur. Man sieht ihr Gesicht nicht, aber der blonde Pony lässt keinen Zweifel, dass es sich um Riley handelt. Sie trägt eine Brille – Nahaufnahme ihrer Augen – sie zeigen leichte Krähenfüße und deuten auf ein Alter Anfang 30. Sie stoppt vor einer Tür. Sie fasst den Türgriff, aber hält inne. Sie atmet ein. Das Türschild zeigt “Psychotherapie Dr Erica”. Sie atmet aus und betritt das Zimmer. Ihre erste Therapie-Stunde. Ein Neustart: 20 Jahre depressive Episoden, Selbstzweifel, Rejection-Sensitivity – verkrustete Glaubenssätze warten auf Aufarbeitung und Lockerung.

Zoom in ihren Kopf – an der Konsole streiten sich Ennui, Embarrassment und Fear.
Sadness, knackt ihrer Finger: “Lasst uns beginnen!”

Everchords is sunsetted

Back in 2018 I had a problem. I was writing song lyrics in Evernote, but displaying them for playing was annoying. I started work on Everchords a tiny platform allowing you to connect your Evernote account and display SongPro lyrics beautifully. Over time I added more convenience features for songwriting that helped me a lot to streamline my song writing process. This was a big help when producing Bettlektüre.

All this ended a year ago, when I stopped using Evernote. So it wasn’t part of my workflow anymore. I kept doing security updates, but these took more effort lately. I thought for a long time how to continue it, but ultimately, I don’t know. I’m using Obsidian.md now, which does not have similar APIs. While all data is fully accessible being “just markdown files”, there is no default pipeline to process and there are so many ways to build this pipeline, that it makes little sense to build and maintain a full platform around this. So I decided to take offline.

The itch it scratched is still there, as I write my notes in , I may want to have a better songwriting experience again. We will see in time how I will change my process, adopt a different tool set or build something again to cover this.

Next steps in Self-Hosting (pt 2)

In part one I spoke about the start of my journey, which was driven by playing with my smart home playground on topics of energy saving. My home servers have been in place since 2018 – yet, one thing I could never fully solve was how to make it available outside of my home network. For people into DevOps there will be little new here, but I’m no DevOps guy, so I had new things to discover I’d like to share.

So my challenge was to make my home server available via the internet, without making it public.

I was toying with a DynDNS setup at one point, but I never felt comfortable with exposing the full device to the internet. I know my way around Linux, but server security can become a bigger beast. I also didn’t want to invest in a virtual private server setup for this.

This is where Tailscale was a small revelation to me.
Tailscale is a service provider for virtual private networks. Basically, you install client apps on your devices building a virtual network and making machines available even when they are physically apart.
For example, I’m traveling and by flipping a switch on my phone, I see my PCs, my home server, my second phone, and I can access them as if they were in the same room with me. Each device gets a fixed IP and URL in the network and becomes way easier to access than remembering IPs and ports. I could add the Tailscale client to my Home Assistant OS running Raspberry and can access it from everywhere, as long as the Tailscale client is running on my device.
This was straight forward.

Schema of a Tailscale network. You have your home network at … home. This runs different services and has different devices. The home network is made available in your tailscale network either by having clients on your devices, or by inviting other people and their tailscale clients.
Anyone who is not explicitely invited has no access.

What took me some time to learn was integrating not only physical devices, but also virtual containers. What is a virtual container? Basically, systems like Docker or Podman simulate a very slim computer environment specifically set-up and optimized to run one particular software stack. For example I can set up a web blog with the client frontend, backend server and database – each running isolated in their own Docker containers – easy to scale. Here you can find more about the basics of Docker and how to get into it step by step.
I had my first contact with Docker in 2018, but never got around to fully embrace it until now, but grew to love docker-compose quickly. This allows you to create and find recipes to quickly set up full tool stacks easily and self-host your own software infrastructure.

So I was playing and eventually fell into the sweet hole of self-hostable apps, extending my personal toolchain – especially for services for which I never found a good replacement. Now I run my Commafeed RSS reader, a gitea for my most private git projects, Jellyfin as a small media server and netflix alternative, Invidous giving an alternative frontend to Youtube and finally Immich.

What is Immich? I wanted to get rid of Google Fotos. I used the service for a long time with much appreciation, but eventually wanted to have more control over my data on the eve of Google using its foto database for AI training, I wanted to withdraw my pictures and also have better organized backups.
The easiest alternative I can recommend is ente.io which also comes with more tools around data security and multifactor-authentication (MFA). This option is simple to switch to, but still your data is not in your own infrastructure.

Immich has very similar functionality to Google Fotos and quick to set-up with Docker.
You can import your existing fotos either as an external library (very straight forward and simple, but at the cost of small limitations around cleanup options) or by importing all pictures via the API by uploading through the the web interface, the Mobile API, command-line scripts or additional tools like Immich-Go. My photo library has been growing in my filesystem since 2002 and while it is generally well maintained, it slowly became messy, incomplete, metadata was lacking and suffered from duplications. These were all topics Immich and its extended toolchain helped to address.
That is, if the photographs are imported in the “right way”. For me it involved three attempts on my side as image duplications on upload, mistaken metadata and lack of testing my own cleanup scripts (xD) caused several broken attempts with Immich. The software is stable and good, but my ambition in cleaning my library was just too big. May the backups be thanked – these setbacks did not cause any data loss – just wasted time. On the third attempt it worked well.up. I picked Immich as one example, but there are plenty more tools available to self-host and especially play nice with Tailscale.

Immich runs on my NUC 11 in a Docker-Compose setup and thus was now available in my home network, but again I wanted it accessible when I’m away from home. This is where we come back to Tailscale.
Above we only added physical machines to Tailscale, but it is also possible to add virtual containers to the private network. Each container becomes available as its own machine which now becomes available to everyone in your network to access.

Everyone? Oh, yes, I forgot. You can share your private applications in two ways.
You can invite up to 3 people (in the personal free account) to your network and they can have access to all machines if you allow it. Alternative you can share access to single machines to people who already run their own Tailscale network. This way you and your peers are building their own private little part of the internet hosted on your own infrastructure. You can also define machines as exit nodes and thus create your own little distributed VPN. Invite trusted friends over the world and you can run traffic through each other’s exit nodes and now I can watch German Netflix and my friends in Germany can watch Austrian ORF.

Tailscale is providing a good bundle to start your DevOps networking journey. All it offers can be done in other ways with less reliance on a central service orchestrating this network as Tailscale does. However doing this this manually is difficult, complex with a high risk of mistakes that compromises data security – these are factors I’d like to entrust to experts. Tailscale also has a learning curve, but one that is much faster to handle to get into the basics.

Through Tailscale and Docker I have a new toolchain that runs at home, that I have a lot of control over including full ability and responsibility to backup. I picked Immich as one example, but there are plenty more tools available to self-host and especially play nice with Tailscale.

In my next article, I will look into another example, that grew out of Docker and Tailscale at work and that describes a self-hosted alternative approach to a Data Intelligence pipeline in the context of a non-technical company.

My first steps in home automation (Pt1)

I have not been writing code for a year, but my current job is still about providing and choosing technical solutions based on requirements and context. While the company I work for has a strong direction towards GenAI and Microsoft solutions (who doesn’t…), in my private projects I look into the other direction of Small Web, Decentralisation, Self-Hosting and the Rot economy of Tech these days. This also proofed a good opportunity to dive deeper into Home Automation and Docker. It’s an ongoing process, but here I’d like to talk about a few pet projects I did in the last year.

It started back in early summer 2023, I got myself some Shelly smart plugs , installed [Home Assistant]() and began to measure my energy consumption. This ran on my mini-pc – a small Intel NUC 11 Performance – I had been using for a year for backups, but little else. The NUC was an upgrade from a RaspberryPi 3 running dietpi I used for the same purpose. For convenience sake I kept using dietpi also on the NUC 11.

By measuring energy consumption, replacing inefficient devices (ffs get rid of old light bulbs!) I was able to reduce my already low energy consumption by another 20%. Having this visually not only helped reducing total consumption, but also shifting consumption to times windows which are either cheaper by having a lower hourly price or by optimizing for lowest CO2 usage by consuming when most renewable energy is in the grid. Often this coincides with low prices, but not always.

Since working on energy projects professionally and switching to a dynamic energy tariff in February I have been looking more into energy topics. In between I tried to build a predictor that could guesstimate the energy prices for upcoming days based on weather and other factors, but eventually I realized, that this is fruitless as the prices is a negotiated market price based on consumption expectation across all of Europe. To say it simple: the price is not only caused by weather, it’s set to provoke and steer market reaction. I have not the data to predict that.

What is more helpful is experience. On average daily energy is cheapest during the week between 3-4am and 11-2pm. Avoid the 6-8pm evening peak. On the weekend, consume between 11-4pm – sometimes you are lucky and zero to negatives prices. By timing dishwasher and washing machine accordingly, 50% of my consumption falls into the cheapest times.
On a regular day, I have 2kWh consumption split with laundry, kettle and dishwasher each at about 1kWh per run being the most hungry devices. Another 1kWh falls to my Tech and I can see in my consumption, when I run the gaming PC with VR. Despite my below-average consumption, I have been dancing around getting a balcony solar-installation for almost a year. At 300€ these have become sooo cheap… story for another day.

I managed all smart home devices in Home Assistant. in the beginning, this ran on the NUC managed by dietpi. Eventually in Spring this year I reactivated the raspberry after all, to run Home Assistant OS on it instead. This offers some more customization and supervising options, necessary to install more custom plugins and integrations.
Add the Home Assistant App to this and you have a neat remote for your home.
I stopped tinkering here with Home Assistant at this point, although topics like MQTT data broadcasting are still on the list of things I’d like to checkout one day.

Home Assistant at this point was in my local network and only accessible at home. How to make it available remotely and what other infrastructure I started hosting at home, I’ll cover in part two.

Henlo, I bims neurodivers

Ein Kessel, der ständig überhitzt, unter Druck steht und das erste Mal abkühlt.
Die Welt läuft 5% langsamer und erstmals in der selben Geschwindigkeit wie ich.
Eine neue Ruhe im Körper – die Anspannung ist weg.

Elvanse lag 8 Monate in meinem Schrank. Zwei Pillen sind einer lieben Freundin vom Laster gefallen für “wenn ich mal schauen will, was an ADHS dran ist”.
Seit dem schob ich es immer vor mir her, dieses Experiment zu beginnen.

Dann kam der März. Am Ende meines ersten Experiment-Tages, schilderte ich ihr meine Eindrücke und sie schrieb trocken “Willkommen bei den Neurodiversen”. Elvanse ist ein Amphetamin, eine Stimulanz – mit einem neurotypischen Gehirn, wäre ich an dem Tag aufgedreht durch die Gegend gesprungen. [1] Stattdessen war ich ruhig, entspannt und konnte das erste Mal seit langem drei Stunden konzentriert arbeiten. Alles war zugänglicher, eine komplett neue Körpererfahrung.
Damit war es klar. Ich habe ADHS.

Seitdem habe ich meine offizielle Diagnose und ich rede regelmäßig drüber. ADHS endlich bestätigt zu haben ist für mich auch ein Coming-Out. I come in pride.
Neu ist mir das Thema nicht, Freunde hatten schon lange die Vermutung und ich wusste ebenso lange, wie ich mich in dem Thema wiederfinde. Gleichzeitig fühlte ich mich wohl Schrödingers ADHSler zu sein und nicht klar als neurodivers oder neurotypisch eingeordnet zu sein. Nun ist diese Einordnung eindeutig.

Die Reaktionen in meinem Umfeld waren fast durchgehend in einem von zwei Lagern:
Das “No, shit sherlock”-Camp, dass als Erstes fragte, ob die Diagnose für mich überraschend sei.
Dem gegenüber steht das Lager “Rehblick” – Menschen, die mich mit großen Augen überrascht und verständnislos anschauen. Deren erste Frage einfach ist, wie es mir damit geht. Danke sehr gut.

Seit dem Sommer hab ich die offizielle Diagnose und bekomme meine eigenen Medis. Ich bin aufgewachsen als jemand, dem immer eingetrichtert wurde mit Medikamenten solange zu warten, wie es geht. Dies lege ich langsam ab. Für Menschen mit Sehschwäche ist eine Brille ein total normale Hilfe. Für Menschen mit einem anders verdrahtetem Gehirn, sind halt Medikamente die Sehhilfe. Ich hab lang genug gezeigt und bewiesen, wie weit ich ohne komme und zu welchem Preis.

Ein Thema, nach dem ich auch gefragt werde ist, ob ich mit Medikamenten nicht die “Fähigkeiten” verliere, die mich aus machen, bzw die ADHS mir gibt. Ich bin top organisiert, super Problemlöser und klasse in Analyse, Pattern-Matching und letztlich vielseitig und kreativ. Ja, den Gedanke, das zu verlieren hatte ich auch, jedoch hörte aber von allen Seiten, dass dies nicht passieren wird. War auch nicht so. All dies blieb Teil von mir, ich gewinne aber Fokus um es besser umsetzen und stärken zu können.

Trotzdem ist es natürlich nicht nur rosig. Ich freue mich über die Diagnose und die Möglichkeiten nun Erleichterung zu finden. Ich sehe auch, wo ADHS mir in den letzten 30 Jahren viele Steine in den gelegt hat. Manche konnte ich selbst von alleine navigieren – andere nicht. Ich bin stolz, was ich in der Zeit alles hinbekommen habe und es gibt trotzdem auch Momente der Trauer, was mir verwehrt blieb und, dass diese Diagnose Teil meines restlichen Lebens sein wird. Einige Dinge werden niemals leicht werden und ich weiß, wie ich manche Themen derzeit auch noch nach hinten schiebe, wo ich selbst eine neue Position entdecken muss, bzw meine Alte reflektieren werde.

Ich dachte vor 6 Monaten es würde jetzt ein ewig langer Side-Quest beginnen, bis ich Diagnose und die Verschreibung habe. Aber ich bin sehr glücklich, dass durch gute Vernetzung und die Hilfe toller Menschen, alles sehr schnell ging. (Therapeuth*Innen, hört auf die Selbstdiagnose eurer Neurodiversen.)
Darüber bin ich sehr dankbar und nun nach einem halben Jahr kann ich mir nicht mehr vorstellen, wieviel Lebensqualität ich ohne die Medikamente auf der Strecke ließ.

[1] Eine andere Freundin schrieb später, sie hätte ADHS herausgefunden als sie gerade feiern war, sich Amphetamine einwarf und wunderte, warum sie plötzlich so hochkonzentriert und fokussiert ist.

n8n – “Invalid DateTime” error on time processing

Over the past week I have been playing with a self-hosted instance of n8n – a Zapier-like automation platform. I quickly ran into an issue, that took a while to debug and I’d like to share my solution here.

I run a pretty standard docker-compose setup.

services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE="Europe/Berlin"
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=n8n-db
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=n8n
    volumes:
      - "./n8n-node/:/home/node/"
    depends_on:
      - n8n-db
      - warehouse-db
    restart: unless-stopped

[…]

I live in Timezone Europe/Berlin, so I added the timezone ENV-variable.
The container starts fine and I can create workflows.

Now the weird thing was that date/time processing was broken.

Whenever I would create date/time converting nodes or expressions like {{ $now }} or {{ new Datetime("2024-05-12") }} or {{ DateTime.fromISO("2022-12-24") }} it would always bring up an error message Result: [invalid DateTime]

N8n is using Luxon library for date/time processing and I didn’t get why all provided examples where failing. Several searches and debugging did not bring me closer to a solution. I made sure I was using the latest version of n8n.
When I came across this question, where somebody had a similar problem a year ago. This pointed towards the timezone.

I had my time zone configured as:

…
    - GENERIC_TIMEZONE="Europe/Berlin"
–

Which turns out is just wrong… writing it this way has the quotation marks as part of the string thus the timezone n8n was parsing wasn’t ‘Europe/Berlin’. but ‘”Europe/Berlin”‘.
Removing this faulty line, the date/time processing with Luxon worked like a charme!

…
    - GENERIC_TIMEZONE=Europe/Berlin
–

So getting Invalid DateTime means, luxon fails to parse the timezone and can’t return a valid result. You can try this also with unknown time zones like “Europe/Berlin123” – same error.
So fix your time zone config and the error will vanish!

Meine Podcast-Empfehlungen

Seit über 15 Jahren gehören Podcasts zu meinem täglichen Medienkonsum. Da mich auch immer mal wieder die Frage erreicht, welche ich empfehlen kann, gibt es hier meine Liste geordnet nach verschiedenen Themenbereichen. Dabei sind nicht nur aktuelle Podcasts, sondern auch einige Abgeschlossene. Ich finde nämlich Podcasts schließen viel zu selten ab und ihr Ende wird oft viel zu lang hinausgezögert.

Continue reading “Meine Podcast-Empfehlungen”

The Weekly Dependency Chart

In the last 5 years I as Product Manager, I often found myself disliking the common ways on how to express project status and deadlines. They’d either hide important complexity or are a mess to keep up to date. Over time have grown a visualizations technique and meeting format I call the Weekly Dependency Chart. This helped me get structure and overview in projects I inherited, that were complex, late or required reliable schedules. I applied this in several private and professional contexts successfully. It was originally inspired by the Puzzle Dependency Charts used by Ron Gilbert in his adventure games.

The idea is to have a quick high level overview of timelines, to-dos, blockers all lined up in a weekly calendar view. Each item connected to the items it’s dependent upon.
Over time this graph evolved into a meeting structure, you can use to keep the overview up to date while synchronizing the status with the people involved.

Continue reading “The Weekly Dependency Chart”

Holzschemel

Platt drückte sich ihr Hintern auf die Sitzfläche des weißen Holzschemel. Sie merkte die Unebenheiten seiner Oberfläche. Die platzende weiße Farbe täuschte nicht über den abgenutzten Zustand des Holzes hinweg. Der kleine Spalt würde nach dem Aufstehen eine kleine Markierung auf ihrer Wade hinterlassen. Kein Schmerz, aber sie spürte es. Wie das Jucken, dass ein jeder Mensch hat, wer bei geschlossenen Augen in sich reinhört. Sie lächelte.

Sie rutschte etwas, betastete seine Beine. Ihr Blick wanderte ihrer Hand hinterher, wie sie an einem entlang stricht. Dieser sollte es sein. Er war perfekt. Sie nahm die Säge und setzte an.

Drinnen war nichts zu hören. Niemand hegte verdacht.

Kebus – Bus Ticket Apps Near You

Im Dezember war ich eine Woche in der nähe von Neapel unterwegs. Mehrmals kam es, dass ich aus dem Zug ausstieg, direkt in den nächsten lokalen Bus wollte und nicht gefunden habe, wo ich Bustickets kaufe. Es ist aktuell ein ziemliches Elend. ÖPNV-Unternehmen sind entweder gar nicht digital oder jedes hat seine eigene Ticket-App. Ich habe selbst 2021-2022 an der ÖPNV-App in Wien mitgewirkt und kenne die politischen Spiele, die dahinter stehen. Die Unternehmen wollen keine offenen Schnittstellen, sondern selber die Hand über dem Ticketverkauf haben, bauen gleichzeitig aber nicht die nötige Infrastruktur und Know-How auf um dies bequem anzubieten. Das Ergebnis ist, dass jede Stadt, jeder Landkreis, jedes Bundesland unterschiedliche und nicht-miteinander kompatible Apps verwenden. Als Reisender in dieses Trara reingeworfen zu werden ist Scheiße.

Nun war ich in Italien dieser Reisende und die Idee für Kebus kam auf.

Kebus ist eine kleine Web-App, die für deine aktuelle Position die verfügbaren Apps für den öffentlichen Personennahverkehr ausgibt. Derzeit sind etwa 50 Apps für über 60 Regionen enthalten. Das reicht von einzelnen Städten bis ganze Länder – hauptsächlich Europa. Derzeit ist es noch sehr kompakt, es spuckt nur die Apps für die aktuelle Position aus. Es gibt noch keine Suche und Ticketverkauf wird nie enthalten sein. Für mich war es mal wieder ein Pet-Projekt um einige Technologien zu testen. Der Aufwand liegt aber in der Pflege und das ist ohne lokales Wissen durchaus kompliziert. Wie es weitergeht hängt jetzt etwas davon ab, ob ich etwas Traction sehe.

Wenn in deiner Gegend noch keine App eingetragen ist, dann gerne Mail an mich – am Besten welche App für welche Region hinzugefügt werden soll.

Everchords – The Story

Als ich 2014 mit Songwriting began hatte ich ein Problem. Ich lernte in dem ich Songs nachspielte und dafür die Texte und Akkorde nachspielte. An die zu kommen ist meistens nicht schwer, aber die sich auf eine kompakte und nicht-nervende Art anzeigen zu lassen war fast immer unmöglich. Seiten wie Ultimate Guitar, oder ähnliche haben zwar große Kataloge, aber die visuelle Aufarbeitung und UX ist oft mangelhaft. Liedtexte werden meist vertikal dargestellt, Akkorde als Zwischenzeilen – fast immer sprengen sie die Bildschirmhöhe, wodurch Scrollen nötig wird. Das versuchen manche durch Auto-Scroll zu kompensieren, aber geil ist es nicht. Will man die Texte mal ausdrucken ist das Resultat auch eher schwach.

In meinem Songwriting-Prozess, iteriere ich viel über meine Texte. Ich schreibe, ich spiele, ich ändere und das auch oft unterwegs. Tools wie Ukegeeks Song-O-Matic kann man auch selbst hosten und bieten gute Funktionen, aber leider fiel es mir schwer meine Songs zwischen der mobilen Notizen-App und dem Song Editor synchron zu halten. Es brauchte etwas, das beides verbindet.

2015 entstand die erste Version von Everchords, einem schlanken Frontend, dass Evernote als Song-Datenbank nutzt. Notizbücher in Evernotes, die meine Songs als Notizen enthalten werden in Everchords importiert und Everchords bietet dafür eine Oberfläche, diese Songs genau so zu formatieren wie ich es brauche. Über die Zeit wuchs dies ein bisschen, aber nicht massiv. Das Tool sollte immer kompakt und den Focus auf die Song-Inhalte haben. Grifftabellen und Akkord-Diagramme kamen dennoch mit der Zeit dazu.

Die Anbindung von Evernote ist gleichzeitig die größte Stärke und die größte Hürde. Evernote ist zufällig mein Notizentool und bietet im Gegensatz zu vielen anderen eine gute API zum Synchronisieren von Inhalten. Allerdings ist Everchords ohne Evernote nicht benutzbar wodurch eine Nischanwendung noch weiter in seiner potenziellen Zielgruppe eingeschränkt wird. Dies ist letztlich auch der Hauptgrund warum ich es nie größer gezogen oder ein vollständiges Produkt draus gemacht habe. Dies ist ein Tool, für mich, für mein Songwriting und ein Pet-Projekt um bei Programmieren nicht ganz einzurosten.

Warum nun schreib ich davon: Everchords ist nun auf www.everchords.app dennoch online gegangen und ich habe mich entschieden es schließlich doch voll öffentlich for anyone zu machen. Enjoy.

Spiele-Empfehlungen Pre-2020

Schon vor der Pest war ich ein Spiele-Fan und habe die Jahre mit diversen Indie- und Coop-Games verbracht. Da meine letzte Games-Liste gut angenommen wurde, ist hier Teil 2 mit älteren Spielen, die mich vor 2020 begeistert haben.

Wieder gilt, es ist ein kleiner Hang zu Indie- und Story-Games. Die absoluten Blockbuster wie Legend of Zelda – Breath Of The Wild, lass ich hier aus.

Continue reading “Spiele-Empfehlungen Pre-2020”

Spiele-Empfehlungen 2020/2021

Der Beginn der Pandemie platzte mein Plan 2020 einige Monate nach Japan zu gehen spektakulär. Stattdessen verbrachte ich die Pandemie einerseits zuhause, andererseits an vielen Orten, die ich danke der Spiele, die ich im Laufe des Jahres konsumiert habe, besuchen konnte. Ich hab schon vorher regelmäßig gespielt, aber über die letzten 18 Monate war es mehr als vorher. Neben einigen bekannte Blockbustern (Age of Empires, GTA, Tomb Raider), aber auch manche wenig bekannten Perlen, die ich hier gerne weiter empfehlen möchte. Dabei spielt es keine Rolle wann die Spiele erschienen sind. 2020 war nur zufällig das Jahr in dem ich sie in die Hand bekam.

Continue reading “Spiele-Empfehlungen 2020/2021”

Bettlektüre

2013 kaufte ich mir nach einem Konzert von Amanda Palmer eine Ukulele und spielte ab da täglich.
2019 kanalisierte ich ein überaus frustrierendes Jahr in ein kleines Musik-Album namens Bettlektüre.

Songs hatte ich genug. Über die vergangenen fünf Jahre schrieb ich regelmäßig Neue und auch auf der offenen Bühne Ukeboogie aufzutreten brachte den monatlichen Ansporn etwas Neues zu machen. Dabei entpuppte sich drei Uhr morgens als eine meiner kreativsten Zeiten, wenn ich wach im Bett lag und nicht schlafen konnte.

Den Song Mondtherapie hatte ich bereits 2 Jahre vorher geschrieben. Müde öffnete mir die Tür zu einem Klang, in dem ich mehrere Songs fand, die thematisch zusammen passten. Verloren sein, Suchen, Verlust, Heilen und Finden. Passing Places entstand auf einer Fahrt durch die schottischen Midlands, Schweigen am Mekong in Laos und Seher in folge einer Fahrt durch Irland.
Über neun Monate nahm ich die Songs auf, spielte fast alles selbst und lernte zu produzieren. Für manche Songs konnte ich befreundete Musiker dazu holen, für den Gesang buchte ich mich zwei Abende in ein Studio. Am Ende kamen 5 Songs und ein Interlude raus.

Die EP erschien und mit einmal war alles raus und meine Kreativität erschöpft.
Ich legte die Ukulele beiseite und jetzt erst ein Jahr später kann ich in die EP hören und genießen, was ich gemacht habe.

Vital Parameter Monitoring Alternatives during a Crisis — A Feasibility Analysis in the Context of COVID-19

Written by Daniel Senff, Dennis Schmidt, Juan Dominguez-Moran, Severin Haemmerl & Walter Laurito — March 22, 2020

TL;DR

Italy, Spain, and other countries are already experiencing shortage of ventilators.

In Germany the crisis is getting worse by the day. Our doctors are already expressing their concerns about the lack of necessary equipment, including vital parameter monitors

Availability of vital parameters such as (peripheral) oxygen saturation (SpO2), heart rate, blood pressure is key in order to judge health status of patients and to keep an overview of all patients in a given ward

Medical doctors who are currently treating hundreds of Covid-19 patients in Northern Italy and Spain (including measures such as a strict triage to provide treatment only to patients with highest changes of improved/positive outcome and converting ORs into ICUs) assess their situation as follows:

  • Non-ICU setting: measuring vital parameters 3–5 times per day is sufficient in order to determine worsening health situation of patients; currently enough equipment; skeptical to use non-approved technology (e.g. vital parameters via mobile phone), only for stable patients in worst case scenario
  • ICU setting: continuous monitoring of vital parameters necessary; currently enough monitoring equipment, but shortage of ventilators; skepticism to use non-approved technology (e.g. vital parameters via mobile phone), only for patients with non-invasive ventilation in worst case scenario
  • Improvised ICU setting: see ICU setting, but: lack of compatibility / connectivity of monitoring equipment with / to central screens, nurses need to keep overview of all patient monitors
  • Generally: if the situation worsens, the major bottlenecks will be: sufficient numbers of ventilators, of ICU beds, and of trained ICU nurses
Continue reading “Vital Parameter Monitoring Alternatives during a Crisis — A Feasibility Analysis in the Context of COVID-19”