Sony WM-20 - Mit eingelegter Kassette und Kopfhörern

Die Wiedergeburt meines alten Walkman WM-20: Eine Reise durch die Zeit

Heute möchte ich euch von einem kleinen Abenteuer erzählen, das ich mit einem meiner Lieblingsstücke aus meiner Walkman-Sammlung erlebt habe: dem guten alten WM-20. Dieser kleine Kerl ist mittlerweile stolze 40 Jahre alt und hat schon so einiges erlebt. Er war einer von vielen in meiner Sammlung, aber irgendwie hat er immer einen besonderen Platz in meinem Herzen eingenommen.

Dieser spezielle WM-20 hatte eine lange Zeit in einer Kiste verbracht, bevor ich mich dazu entschieden habe, ihn wieder ans Tageslicht zu bringen. Als ich ihn herausnahm, war er leider nicht mehr in seinem besten Zustand. Irgendwo auf seinem Weg durch die Jahre hatte sich der Riemen komplett zu Teer verwandelt, und er weigerte sich beharrlich, zu funktionieren.

Nun, für jemanden wie mich, der ab und zu gerne mal einen alten Walkman repariert, war das natürlich keine allzu große Herausforderung. Also habe ich mich ans Werk gemacht, den kleinen Kerl auseinandergebaut und eine gründliche Reinigung vorgenommen. Dann kam der schwierige Teil: einen neuen Riemen einzusetzen. Das war gar nicht so einfach, wie es klingt! Aber mit etwas Geduld und einer ordentlichen Portion Fingerspitzengefühl habe ich es letztendlich geschafft.

Und wisst ihr was? Es hat sich gelohnt! Nachdem ich ihn wieder zusammengesetzt hatte, funktionierte der WM-20 wieder wie am ersten Tag. Es war ein unbeschreibliches Gefühl, ihn wieder in Aktion zu sehen und die alten Kassetten zum Leben zu erwecken.

Ich habe ein paar Bilder gemacht, um diesen besonderen Moment festzuhalten. Auf einigen könnt ihr den Zustand sehen, in dem ich ihn vorgefunden habe – mit seinem alten, zerstörten Riemen und dem Staub der Jahre. Auf den anderen könnt ihr ihn bewundern, wie er nun strahlt und wieder voll funktionsfähig ist.

Für mich war diese kleine Reise durch die Zeit nicht nur eine Reparaturarbeit, sondern auch eine Erinnerung daran, wie großartig es ist, solche Schätze zu besitzen und sie wieder zum Leben zu erwecken. Also, wenn ihr auch mal einen alten Walkman oder ein anderes technisches Gerät in eurer Sammlung habt, das ein wenig Liebe und Zuwendung benötigt, dann nur zu! Es lohnt sich allemal.

Integration eines externen Git Repos in ein Unterverzeichnis mit Erhalt der vollständigen Historie

Hallo liebe Entwickler-Community!

Heute möchte ich euch eine spannende Sache vorstellen: Wie man ein externes Git Repository in ein Unterverzeichnis eines anderen Repositories merged und dabei die komplette Historie behält. Klingt kompliziert? Keine Sorge, ich zeige euch Schritt für Schritt, wie das geht.

Schritt 1: Vorbereitung des Ziel-Repositories

Zuerst müsst ihr euch in den master Branch des Ziel-Repositories begeben:

git checkout master

Dann erstellt ihr einen neuen, leeren Branch. Wir nennen ihn gem-merge:

git checkout --orphan gem-merge

Weiterlesen →

DragonRuby Sokoban – Mein erstes Game auf itch.io

Wenn man etwas Neues lernen möchte, ist es häufig am einfachsten, mit einem richtigen Projekt zu starten und dann bei dessen Umsetzung zu lernen. So habe ich es schon immer gemacht. Als ich Ruby lernen wollte, habe ich mir als Idee eine Event Veranstaltungsseite genommen und angefangen diese mit Ruby on Rails umzusetzen. Entstanden ist Eventicus (leider offline) aber noch zu finden auf github.com.

Als Jugentlicher wollte ich unbedingt Turbo Pascal lernen und habe mir als Projekt ein einfaches Sokoban Spiel genommen und es umgesetzt. Im Laufe der Umsetzung habe ich vieles über Turbo Pascal gelernt und auch dessen Grenzen entdeckt. So musste ich z.B. einige der Grafikroutinen dann doch mit Assembler umsetzen.

Da mich das Programmieren von grafischen Spielereien (Demos) oder eben auch gleich richtigen Spielen schon immer faziniert hat, habe ich mich auch gleich für das DragonRuby Game Toolkit interessiert. Dieses erlaubt es euch, mit Hilfe der Ruby Programmiersprache 2D oder auch 3D Spiele zu programmieren.

Und da ich wieder nach einer Idee für ein Spiel suchte, dachte ich mir: "Hey, warum versucht du nicht einfach das gleiche Spiel wie damals umzusetzen?".

Gesagt – getan.

Also habe ich angefangen und entstanden ist dabei DragonRuby Sokoban.


Weiterlesen →

Wie man schnell einen lokalen Kubernetes HA Cluster mit MicroK8s bauen kann

Hier erfahrt ihr, wie ihr schnell einen lokalen Kubernetes Cluster mit 3 Nodes aufsetzen könnt. Wir verwenden dabei das MicroK8s Tool von Canonical.

1. Drei Unbuntu VMs erstellen

Wir benötigen für einen hochverfügbaren MicroK8s Cluster mindestens 3 Nodes. Wir nutzen das Tool multipass um diese auf unserem Host-System (z.B. MacOS) anzulegen:

# Installieren können wir multipass unter MacOS über Homebrew
brew install --cask multipass

# zuerst erstellen wir nun unsere Master-Node
multipass launch -m 4Gb -n master

# und dann die beiden Slave-Nodes
multipass launch -m 4Gb -n slave1
multipass launch -m 4Gb -n slave2

Wir sollten den einzelnen Nodes mindestens 4GB Arbeitsspeicher zuweisen, damit unser Cluster richtig funktionieren kann.

Natürlich könnten wir hier auch einfach gleich unsere richtige Hardware nutzen und den Schritt mit den VMs überspringen, aber zum Testen empfehle ich auf jeden Fall erst einmal VMs zu nutzen!

2. MicroK8s auf allen Nodes installieren

Als nächstes müssen wir MicroK8s auf allen unseren soeben erstellten Nodes installieren. MicroK8s läßt sich ganz einfach als Snap Paket mit allen Abhängigkeiten installieren.

Am besten nutzen wir dazu 3 separate Terminal-Fenster, oder verwenden tmux, damit wir dies parallel durchführen können.

# wir verbinden uns mit der master Node und installieren dort microk8s
multipass shell master
sudo snap install microk8s --classic

# dann müssen wir noch ein paar Rechte setzen (auf allen Nodes wiederholen)
sudo usermod -a -G microk8s ubuntu
sudo chown -f -R ubuntu ~/.kube
# nun einmal aus der Shell ausloggen und wieder verbinden

# damit wir wissen, wann die Node bereit steht, können wir folgenden Befehl verwenden
microk8s status --wait-ready

# das selbe wiederholen wir auf den einzelnen slaves
multipass shell slave1
sudo snap install microk8s --classic
microk8s status --wait-ready

multipass shell slave2
sudo snap install microk8s --classic
microk8s status --wait-ready

3. Multi-Node Cluster erstellen

Nachdem alle unsere Nodes hochgefahren sind und sich initialisiert haben, können wir diese zu einem Cluster verbinden.

Dazu führen wir folgende Befehl für jede Node die wir hinzufügen wollen auf unserer master Node aus:

# auf unserer Master-Node ausführen
microk8s add-node

# wir bekommen dann folgende Ausgabe
Join node with:
microk8s join ip-172-31-20-243:25000/DDOkUupkmaBezNnMheTBqFYHLWINGDbf

If the node you are adding is not reachable through the default interface 
you can use one of the following:
microk8s join 10.1.84.0:25000/DDOkUupkmaBezNnMheTBqFYHLWINGDbf
microk8s join 10.22.254.77:25000/DDOkUupkmaBezNnMheTBqFYHLWINGDbf

Wir können nun die Join-Befehle kopieren und diese auf den einzelnen Slave-Nodes ausführen:

# ersten Join-Befehl auf slave1 ausführen
microk8s join ip-172-31-20-243:25000/DDOkUupkmaBezNnMheTBqFYHLWINGDbf

# nächsten Join-Befehl auf slave2 ausführen
microk8s join ip-172-31-20-243:25000/7972409d9f18aa049ec5db65571b0c4b

Auf unserer Master-Node können wir nun mit folgenden Befehl abfragen, ob sich die Slave-Nodes erfolgreich verbunden haben und der Cluster steht:

# auf dem master ausführen
watch microk8s kubectl get no

# wenn alles fertig ist, sollte es etwa so aussehen
Every 2.0s: microk8s kubectl get no                                                                                                                                                                                                             master: Fri Feb  5 18:44:10 2021

NAME     STATUS   ROLES    AGE     VERSION
slave1   Ready    <none>   7m10s   v1.20.1-34+e7db93d188d0d1
slave2   Ready    <none>   107s    v1.20.1-34+e7db93d188d0d1
master   Ready    <none>   12m     v1.20.1-34+e7db93d188d0d1

Wir nutzen hier den watch Befehl, damit wir nicht immerzu erneut unsere Abfrage eingeben müssen, bis sich alle Nodes verbunden haben.

Mit ctrl-c können wir den watch-Befehl abbrechen und starten unseren frischen MicroK8s Cluster zu nutzen.

4. Alles wieder löschen

Wenn wir genug haben von unserem Test-Cluster, können wir die ganzen Nodes wieder löschen.

# schauen, welche VMs laufen
multipass list

Name                    State             IPv4             Image
master                  Running           192.168.64.4     Ubuntu 20.04 LTS
slave1                  Running           192.168.64.5     Ubuntu 20.04 LTS
slave2                  Running           192.168.64.6     Ubuntu 20.04 LTS

# alles stoppen und löschen
multipass stop --all
multipass delete --all
multipass purge

Let’s Encrypt in Plesk nutzen

Wenn ihr wie ich eure Webseiten mit dem Plesk Tool auf einem eigenen dedizierten Server verwaltet, dann benötigt ihr auch unbedingt für jede der Webseiten ein eigenes SSL Zertifikat.

Let's Encrypt

Doch bevor ihr jetzt online bei irgend einem Anbieter für viel Geld ein SSL Zertifikat bestellt, möchte ich euch eine Möglichkeit vorstellen, wie man dies auch ohne irgendwelche Kosten erhalten kann.

Let’s Encrypt ist eine freie, automatisierte und offene Zertifizierungsstelle. Diese stellt einen Service bereit, um kostenlos SSL Zertifikate erstellen und nutzen zu können. Dabei macht es Let's Encrypt einem sehr einfach über verschiedenste Tools und Wege, diese Zertifikate generieren zu können. Es ist z.B. auch möglich, Zertifikate automatisch erneuern zu lassen.

Installieren der Let's Encrypt Erweiterung für Plesk

Plesk macht es einem relativ einfach, Erweiterungen zu installieren. Im Erweiterungs-Katalog finden sich eine Vielzahl an kostenlosen oder kaufbaren Erweiterungen. Dazu gehört auch eine Erweiterung für Let's Encrpyt.

Katalog der Plesk Erweiterungen

Diese kann durch einen einfachen Klick auf 'Installieren' installiert werden. Der Installations-Vorgang kann etwas Zeit beanspruchen.

Let's Encrypt für eine Webseite einrichten

Nach der Installation taucht unter den Tools für die Webseiten ein neuer Eintrag auf.

Let's Encrypt in den Website-Tools

Nach einem Klick auf "Let's Encrypt" gelangt man auf die Konfigurationsseite für das Zertifikat. Hier kann man eine E-Mail für Benachrichtigungen und Warnmeldungen angeben, auswählen, welche Subdomains man einschließen möchte, bzw. ob man ein Platzhalterzertifikat austellen lassen möchte.

SSL/TLS-Zertifikat-Einstellungen für die Website

Nach der Bestätigung durch einen Klick auf "Installieren", wird das neue Zertifikat erzeugt und automatisch eingerichtet.

Nun kann man sofort die Webseite mit "https://" aufrufen und bekommt das neue Zertifikat im Browser angezeigt.

Zertifikat-Informationen im Firefox-Browser

Standardmäßig SSL verwenden

Als letzten Schritt sollte man die Webseite in Plesk nun so umstellen, dass diese automatisch die SSL Version aufruft.

Plesk Version 12.5 und niedriger

Dazu kann man die "Einstellungen für Apache & nginx" der entsprechenden Webseite in Plesk aufrufen und in das Feld für "Zusätzliche Anweisungen für HTTP" folgenden Code einfügen:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Nach einem Klick auf "Übernehmen" sollten man in Zukunft beim Aufrufen der Webseite über "http://" automatisch auf die "https://" Version umgeleitet werden.

Plesk Version 17

In höheren Versionen von Plesk läßt sich diese automatische Weiterleitung komfortabel in den "Hosting-Einstellungen" konfigurieren.

Dauerhafte, für SEO geeignete 301-Weiterleitung von HTTP zu HTTPS

Dazu einfach im Bereich Sicherheit bei "Dauerhafte, für SEO geeignete 301-Weiterleitung von HTTP zu HTTPS" das Häkchen setzen und speichern.

Neuausrichtung – Neuer Anfang?

Ich habe lange darüber nachgedacht, was ich mit meinem Blog in Zukunft anstellen möchte. In diesem Beitrag möchte ich ein wenig meine Beweggründe für die kommende Neuausrichtung  von webmatze.de erläutern.

Wie euch sicher aufgefallen ist, gab es in den letzten Jahren praktisch kaum noch neue Beiträge. Grund ist sicher die immer knapper werdende Zeit... Ich habe inzwischen zwei Kinder (1 und 4 Jahre alt) und natürlich auch arbeitstechnisch aufgrund meiner Selbständigkeit viel zu tun gehabt.

Da sich webmatze.de eigentlich schon immer auf technische Themen aus der Webentwicklung konzentriert hat und das Erstellen eines solchen Beitrags sich teilweise ziemlich umfangreich und langwierig gestaltet – ich muss recherchieren, Dinge ausprobieren und alles verständlich zusammenfassen – gab es immer weniger Beiträge.

Zudem hat sich mein Interesse vom Frontend auch immer mehr ins Backend bewegt. Statt mit HTML, CSS und JavaScript arbeite ich nun viel häufiger mit Ruby, Kotlin und allem was damit zusammenhängt.

Natürlich habe ich auch immer mein Interesse fürs Frontend behalten und z.B. mit React, Vue.js, AngularJS und anderen Frameworks gearbeitet.

Aber es wird natürlich immer schwieriger mit aktuellen Entwicklungen mitzuhalten, wenn man sich hauptsächlich im Backend bewegt.

Lange Rede, kurzer Sinn. Ich habe mir überlegt, dass ich diesen Blog in Zukunft wieder mit neuen und frischen Inhalten füllen möchte. Aber ich werde mich nicht mehr nur auf ein Thema beschränken, sondern ihn mit allem befüllen, was gerade mein Interesse geweckt hat, bzw. was ich für wert halte darüber zu schreiben.

Wunder euch also nicht, wenn ich hier an dieser Stelle in den kommenden Wochen z.B. über Musik, Kunst, aktuelle Ereignisse oder nerdiges Zeug schreiben werde. Sicherlich wird auch ab und zu ein technischer Beitrag dabei sein!

Wichtig für mich ist aktuell hauptsächlich, dass ich wieder schreiben kann, ohne mich thematisch eingeengt zu fühlen.

Um diesen 'Neuanfang' gebührend zu feiern, habe ich webmatze.de auch gleich ein frisches und neutrales Design verpasst. Ziel war, dass sich alles auf den Text konzentriert, ohne großes Drumherum. Ich hoffe es gefällt. :)