Image

planet.debianforum.de

der Planet der debianforum.de-Benutzer

Zum Inhalt


 
 
 

21.01.2026

Joerg Kastning (Tronde)

Warum und wie ich KeePass benutze

Ich könnte den Spiess ja umdrehen, wieso nutzt Du Keepass und nimmst die Unbequemlichkeit in Kauf?

Aus einem privaten Matrix-Chat mit einer Person im Internet.

Nun gut, ich möchte dieser Person den Artikel nicht schuldig bleiben. ;-)

Warum ich KeePass benutze

Dies hat wie so oft historische Gründe. Die erste Referenz zu KeePass in diesem Blog ist vom 8. Januar 2011. Etwas später, am 20.01.2011, hatte ich dem Thema einen eigenen Artikel gewidmet: Sichere Passwörter und wie man sie verwaltet. Der Artikel hat in meinen Augen nicht an Aktualität verloren, mit zwei kleinen Ausnahmen:

  • Ich benutze heute keine Windows mehr, sondern KeePassXC unter Linux.
  • Statt KeePassDroid verwende ich aktuell KeePassDX unter Android.

Bei der Wahl der KeePass-Projekte habe ich mich von diesem Artikel von Mike Kuketz beeinflussen lassen.

Ich bin privat dabei geblieben, weil ich die Nutzung gewohnt bin und bisher keinen Grund zu einem Wechsel sehe. Beruflich nutze ich inzwischen Bitwarden, da dies von meinem Arbeitgeber zur Verfügung gestellt wird und ich somit ein offiziell geprüftes und genehmigtes Werkzeug für dienstliche Zwecke verwende. Darüber hinaus finde ich Bitwarden genauso gut wie KeePassXC.

Wie ich KeePass benutze

KeePassXC ist auf allen meinen Geräten des Typs Laptop, Desktop-PC/Heimserver installiert. Auf meinem Tablet und Smartphone nutze ich KeePassDX, welcher auch im F-Droid-Store verfügbar ist.

Die KeePass-Datenbank halte ich mit einer selbstgehosteten Nextcloud auf allen Geräten synchron bzw. stelle sie dort zur Verfügung. Auf PC und Laptop ist dabei permanent eine lokale Kopie der Datenbank verfügbar. Auf dem Smartphone/Tablet steht diese nur zeitlich begrenzt zur Verfügung, nämlich bis der Android-Dateimanager der KeePassDX-App den Zugriff auf die gecachte KeePass-Datenbank-Datei entzieht bzw. diese aus dem Cache entfernt wird. Schaut für weitere Hinweise hierzu bitte in die englischsprachige FAQ des Projekts.

Der Ablauf auf dem Smartphone sieht bei mir so aus:

  1. Nextcloud-App öffnen.
  2. KeePass-Datenbank auswählen und mit KeePassDX öffnen.
  3. Datenbank-Passwort eingeben und mit der üblichen Nutzung fortfahren.

Sollte ich mein Telefon oder Tablet mal verlieren, widerrufe ich den Access-Token in meiner Nextcloud, womit das jeweilige Gerät den Zugriff auf die Nextcloud und damit auf die KeePass-Datenbank verliert. Wichtig: Dies minimiert das Risiko, dass mir eine Kopie der KeePass-Datenbank verloren geht, bietet aber keinen 100%-igen Schutz. Bei der Offline-Funktionalität von Bitwarden schätze ich das Risiko ähnlich ein.

Um die Sicherheit noch etwas zu steigern, kann ich eine Funktion zur Fernlöschung nutzen, mit der die Inhalte von meinem Gerät gelöscht werden. Achtung: Dies funktioniert nur, wenn das Gerät mit dem Internet verbunden ist.

Aktuell entsperre ich die KeePass-Datenbank nur mit einem Passwort. Ich habe mir angesehen, wie man einen YubiKey als zusätzlichen Faktor nutzen kann. Leider wurde mein YubiKey in der Kombination YubiKey 5 NFC, Fedora 43 und KeePassXC nicht erkannt. Ich habe das Troubleshooting nach kurzer Zeit abgebrochen und beschlossen, dass der YubiKey und die dazugehörige Software für Linux aus der Hölle kommen und das Thema in eine Schublade zur E-Mail-Verschlüsselung gesperrt. Falls euch diese Problem bekannt vorkommt und ihr eine einfache Lösung dafür habt, bitte lasst mich wissen, welchen Zauber ihr gewirkt habt.

Browsererweiterung vs. Zwischenablage

Ich nutze die KeePassXC-Browser-Erweiterung, um mir das Leben etwas zu erleichtern und Login-Formulare per Klick ausfüllen zu lassen. Natürlich besteht hierbei das Restrisiko, dass durch eine Schwachstelle im Browser oder der Erweiterung die Login-Informationen abgefangen werden können. Dessen bin ich mir bewusst.

100%-ige Sicherheit gibt es nicht. Wenn sich ein Keylogger auf meinem System befindet oder eine Schadsoftware, welche die Zwischenablage mitschneidet, verliere ich die Informationen ebenfalls.

Da ich dank Passwort-Manager für alle Dienste unterschiedliche Passwörter und wo möglich Mehrfaktor-Authentisierung verwende, hält sich der Schaden selbst dann in Grenzen, wenn einzelne Passwörter kompromittiert werden.

Da ich kein IT-Sicherheitsexperte bin, möchte ich es hiermit aber auch gut sein lassen.

Viele Grüße ins Internet und an die Personen an den heimischen Datensichtgeräten.

von Jörg Kastning am 21.01.2026 11:35


19.01.2026

Joerg Kastning (Tronde)

Briefe mit Typst statt LaTeX schreiben

In der Vergangenheit habe ich die LaTeX-Klasse scrlttr2 u.a. mit der latex-briefvorlage-din-5008 genutzt, um meine Briefe zu schreiben. Ich finde diese Vorlage auch heute noch sehr gut.

In der Vorbereitungsphase für einen Vortrag haben Dirk und ich beschlossen, Typst zu lernen. Auf der Suche nach einer Briefvorlage habe ich diese gefunden:

  • Typst Universe: https://typst.app/universe/package/briefs
  • GitHub Repository: https://github.com/tndrle/briefs

Mit dieser Vorlage kann ich sehr schnell, schlichte und in meinen Augen professionelle Briefe erstellen. Ich bin mit dem Ergebnis sehr zufrieden.

Versteht mich nicht falsch, ich finde an LaTeX nichts schlecht. Da ich jedoch keine längeren Texte mehr damit schreibe, erscheint es mir unnötig komplex, um Briefe und Präsentationen zu erstellen. Vergleicht man den Speicherbedarf, macht Typst auch hier einen schlanken Eindruck:

$ du -sh /usr/local/texlive
7,0G	/usr/local/texlive
$ du -sh ~/bin/typst 
41M	/home/tronde/bin/typst

Unter URL https://github.com/kaarmu/typst.vim habe ich ein Vim-Plugin gefunden, so dass ich meinen favorisierten Editor weiterverwenden kann.

Ich schreibe LaTeX noch nicht ab. Aktuell stehen die Zeichen jedoch auf Typst.

von Jörg Kastning am 19.01.2026 06:00


12.01.2026

Steffen Rumberger (inne)

Danke unbekannter Weise

Danke noch unbekannter Weise für den Wochen-Tischquerkalender 😊
Dieses Jahr werde ich mir wohl selbst einen kaufen … Der Wochenturnus hat sich als sehr gut erwiesen!
20260112_205109.jpg

12.01.2026 19:52


04.01.2026

Christian Imhorst (immi)

Waydroid mit Weston

Um den Android-Emulator Waydroid unter X11 zu starten, weil z.B. Linux Mint 22.2 noch Probleme mit Wayland hat, benötigt man Weston, eine Art Wayland-Container mit Terminal. Für ein Android-System inklusive Google-Apps (GAPPS) muss man sich zudem noch eine Google-Zertifizierung besorgen.

Für die Installation unter Debian/Ubuntu-Derivate wie Linux Mint werden folgende Befehle ausgeführt:

sudo apt update
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid weston -y

Dann folgt die Installation von Waydroid mit den GAPPS:

sudo waydroid init -s GAPPS

Wer kein Google möchte lässt alles nach init weg und man muss auch keine Google-Zertifizierung machen.

Starten Sie den Container:

sudo systemctl enable waydroid-container 
sudo systemctl start waydroid-container

Mit Weston starten

Waydroid wird dann in Westen gestartet, dazu weston ausführen, das Terminal in Weston öffnen und folgendes eingeben:

waydroid show-full-ui

Sollte Android, bzw LineageOS,kein Internet haben, liegt das vermutlich an Einstellungen in der Firewall. Zum Testen kann man sie einmal ausschalten, dann sollte das Android eine Internetverbindung haben.

F-Droid installieren

Um F-Droid zu installieren wird die APK unter Linux heruntergeladen, in Downloads gespeichert und anschließend mit waydroid installiert:

cd ~/Downloads
wget https://f-droid.org/F-Droid.apk
waydroid app install F-Droid.apk

Danach ist die App sofort im LineageOS unter Waydroid verfügbar.

Fenstergröße

Beim Ändern der Weston-Fenstergröße startet der Android-Container mit LineageOS neu. Waydroid passt die Display-Auflösung an die Weston-Größe an, was einen Neustart der SurfaceFlinger-Komponente auslöst, die den Container/Session resetet, weil dynamisches Resizing nicht voll unterstützt wird.

Für eine feste Fenstergröße kann man die Auflösung z.B. vorab in ein Start-Skript start-waydroid schreiben:

#!/bin/bash

waydroid prop set persist.waydroid.width 1280
waydroid prop set persist.waydroid.height 720

weston -- sh -c '
  weston-terminal &
  sleep 1
  waydroid show-full-ui
'
waydroid session stop

Das Skript setzt die Fenstergröße, startet Weston und dann Waydroid. Wird Lineage dann heruntergefahren, wird die Session gestoppt.

Android ID abrufen

Nach dem Start von Android mit GAPPs beschweren sich die Google-Apps darüber, dass die Plattform nicht sicher ist. Um sie „sicher“ zu machen benötigt man eine Google-Zertifizierung. Dafür wird sichergestellt, dass Waydroid läuft (Container & Session) und dann im Linux-Terminal (außerhalb Weston) folgender Befehl eingegeben:

sudo waydroid shell -- sh \
-c "ANDROID_RUNTIME_ROOT=/apex/com.android.runtime \
ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata \
ANDROID_I18N_ROOT=/apex/com.android.i18n \
sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \
'select * from main where name = "android_id";'"

Kopiere die Zahlen hinter android_id| (z. B. 1234567890123456789).

Gehe anschließend zu https://www.google.com/android/uncertified/ (mit deinem Google-Konto angemeldet), füge die Android ID ein und klicke „Register“. Die Registrierung dauert 5–30 Minuten (manchmal auch länger bis zu 1-2 Stunden).

Waydroid-Daten wieder entfernen

Falls man alte Daten von Waydroid wieder los werden will:

sudo waydroid session stop
sudo waydroid container stop
sudo rm -r /var/lib/waydroid ~/.local/share/waydroid

von Christian Imhorst am 04.01.2026 19:43


31.12.2025

Sabine Becker (AtariFrosch)

Jahresrückblick 2025

Das erste Jahr unter dieser menschenverachtenden Bumsregierung, und ich habe Angst vor'm nächsten.

Es gab natürlich ein paar Highlights, die meisten leider negativ, aber ich habe nicht das Gefühl, daß in diesem Jahr so wirklich was „passiert“ ist. Irgendwie war alles immer gleich – gleich hoffnungslos.

Politik

  • Gleich zu Amtsantritt meinte der neue Kanzler-Praktikant, erstmal Zwangsverarmte abwerten und beleidigen zu müssen. Im Laufe des Jahres wurde daraus die „Neue Grundsicherung“, ein Gesetzesbündel, das dafür sorgen wird, daß Zwangsverarmte noch viel öfter Repressionen und Depressionen bekommen und ihre Wohnung verlieren, dafür noch viel weniger Weiterbildungen und Unterstützung bekommen werden als bisher schon.
  • Die AfD befragte die Landesregierung von Nordrhein-Westfalen über diverse zivilgesellschaftliche Gruppen, unter anderem den Chaosdorf e. V.
  • Die neue Bumsregierung erwies sich schnell als total geil auf noch viel mehr Überwachung, De-Anonymisierung durch eine Hintertür namens „Altersverifikation im Netz“, und den Einsatz sogenannter „KI“. Oh, und neue Rosa Listen, also die Speicherung von Deadnames und vormals aufgedrücktem Geschlecht von trans Menschen, die das SBGG in Anspruch nehmen.
  • Dann war da noch das öffentliche Geschwafel darüber, daß sehr alte Menschen keine teuren Medikamente mehr bekommen sollten. Auch sollen behinderte Menschen keine Assistenzen mehr bekommen, sondern wieder in die Kümmerknäste einfahren. Da ist zwar eigentlich die UN-BRK vor, aber die hat sich ja schon in anderen Bereichen als zahnloser Tiger erwiesen. Mehr als ein „Du-Du-Du“ kommt da nicht rum.
  • Generell krasse weitere Verschiebung von Diskursen in Richtung Faschismus durch die Bumsregierung, weitere im Licht der Öffentlichkeit stehende (und stehen wollende) Personen und Medien.
  • Krieg, der von Rußland ausgeht … Krieg, der von den USA ausgeht … Hamas/Israel … und noch mehr Kriege. Ja, auch das reißt an meinem Nervenkostüm.

Gesundheit

  • Bereits im Januar wurde mir klar, daß der Lärm hier in der Wohnung und auch sonst für meinen hohen Blutdruck und vermutlich auch die gelegentlichen Herz-Stolperer ursächlich ist.
  • Im Februar war ein Mensch vom Medizinischen Dienst der Pflegekasse (Techniker) da und meinte, da ich ja meinen laufenden Haushalt noch irgendwie schaffe und das Chaos in meiner Wohnung Altlasten sind, bekäme ich 0 Punkte und damit keinen Pflegegrad. Daß ich mich draußen nur noch mit Rollator bewegen kann, Einkäufe immer schwieriger werden und ich auch „normale“ Entfernungen zeitweise nicht mehr schaffe: Egal. Daß mir diese Altlasten in meiner Wohnung den Alltag massiv erschweren: Egal. Mein Widerspruch wurde nach Aktenlage entschieden und genauso abgeschmettert. Ich hätte klagen müssen. Keine Löffel – und ja, mir ist klar, daß genau darauf spekuliert wird. Ändert ja nix, es ging nicht.
  • Über's Jahr verteilt stellte sich heraus, daß die Schmerzen und Probleme mit Unterbauch und Beinen höchstwahrscheinlich OP-Folgen sind. „Kann schonmal passieren“. Ob häufiger oder eher selten hängt davon ab, welche Weißkittel man fragt. Aber bei dieser doch recht großen Operation gibt der Darm wohl ein klebriges Fibro-Zeug ab, das ihn von außen her regelrecht zusammenklebt. Da das nicht über die üblichen bildgebenden Verfahren nachweisbar ist, sondern maximal durch Kernspin-MRT (oder sowas) und ansonsten nur durch Ausschlußdiagnose, hab ich bis heute keine klare Diagnose auf Papier. Was schon klar ist: Es bleibt dauerhaft bei der Mobilitätseinschränkung und damit bei dem Bedarf für den Rollator. Und: In der kalten Jahreszeit wird's immer schlimmer sein als in der warmen.
  • Und es ist wohl doch zumindest teilweise eine „Schonhaltung“ in diesem Zusammenhang, die dazu führt, daß mir gleichzeitig auch immer von den Füßen bis zu den Knien hoch die Beine so weh tun.
  • Obwohl meine Schilddrüsen-Unterfunktion mit L-Thyroxin behandelt wird, habe ich in den letzten zwei Jahren, also seit der OP, wieder fast 10 kg zugenommen. Meine Gewohnheit, nur zweimal am Tag zu essen, hatte ich beibehalten, aber die nützt wohl nichts mehr – und noch weniger essen geht nicht.

Computerdinge

  • Ich habe ein paar eher einfache Bugfixes und Optimierungen in HTMLglue eingebaut. Wirklich weitergemacht, also neue Module geschrieben, hab ich nicht. Keine Löffel.
  • Auch keine Löffel hatte ich für eine Software, die mir schon länger am Herzen liegt: Eine Verwaltungs- und Präsentations-Software für Tauschringe als Webanwendung in Python Django. Ich komme einfach nicht weiter.
  • Es war ein wenig aufwendiger, aber letztendlich wurde mein Problem mit der Website der Düsseldorfer Stadtwerke gelöst.
  • Eine ganze Reihe DVDs, die ich mir – größtenteils gebraucht – über eBay geschossen hatte, habe ich immerhin gerippt.
  • Meine Jitsi-Meet-Installation auf dem Server habe ich aufgegeben. Ich konnte das Teil nicht mehr dazu überreden, wieder zu funktionieren. Stattdessen hab ich mir einen kostenlosen Account bei Senfcall geklickt und mach die wenigen Konferenzen, die ich pro Jahr habe, darüber. Auch die Videokonferenzen des Düsseldorfer Spoonie-Stammtischs läuft mittlerweile darüber (zweimal pro Monat).
  • Der neu gekaufte USB3-Hub, den ich verwendet hatte, um mit mehreren externen DVD-Laufwerken reihenweise über Nacht vor allem Serien-DVDs rippen zu können, erkannte mit der Zeit immer weniger der (ansonsten intakten) angehängten Laufwerke. Am Ende blieb nur das jeweils erste Laufwerk ansprechbar, und dann kann ich es auch ohne Hub direkt an den PC hängen. Meinen alten USB-Hub, der mit Glück USB2 kann, habe ich in meinem Chaos bisher nicht wiedergefunden; mit dem würde ich es gerne auch mal noch probieren.
  • Im Sommer ging nach gut 10 Jahren (!) eine der beiden Platten im Server in Rente. Das RAID1 hat den Weiterbetrieb mit der anderen Platte sichergestellt, Hetzner hat sehr schnell getauscht und dann hab ich auch mal einen Plattentausch mit RAID1 mitgemacht. Die neue zweite Platte hat ein Terabyte mehr als die andere, diesen zusätzlich freien Plattenplatz konnte ich bisher aber nicht nutzen.
  • Ich habe angefangen, Videos von Demo-Reden mit Hilfe von Whisper mit Untertiteln zu versehen. Ja, das ist GenAI. Ja, mir ist die Herkunft der Trainingsdaten klar. Mindestens gleich taugliche Alternativen nehme ich gerne. Aber die Untertitel finde ich wichtig, hab aber andererseits nicht die Löffel dafür, sie selbst mitsamt der Zeitstempel zu erstellen.
  • Der Lexmark-Drucker, der hier schon eine Weile gewerkelt hatte, brachte irgendwann auf einer Hälfte der Seite deutlich weniger Toner aus als auf der anderen. Also „mal eben“ Toner-Cassette rausgezogen und ein bißchen geschüttelt. Danach ließ sie sich nicht mehr vollständig ins Gehäuse hineinschieben. Die Cassette wird bei diesem Gerät quasi auf die Belichtungseinheit draufgeschoben, und da scheint auf einmal was im Weg zu sein. Eine neue Belichtungseinheit für diesen Drucker kostet fast 50 €. Dafür bekomme ich vermutlich bereits einen „neuen“ gebrauchten Laserdrucker mitsamt intakter Belichtungseinheit und Toner. Beschafft habe ich mir bisher allerdings noch keinen. Notwendige Ausdrucke macht mir derzeit meist jemand aus dem Chaosdorf, der in meiner direkten Nachbarschaft arbeitet.
  • Mein Haupt-PC machte über Monate hinweg immer mal wieder seltsame Dinge: Immer mal wieder abstürzende Browser-Tabs, abschmierende Programme wie LibreOffice, Thunderbird oder auch mal VLC. Als ich ausschließen konnte, daß es ein Software-Problem ist, hab ich dann im Spätherbst doch mal einen Speichertest laufen gelassen. Das Ergebnis war eindeutig: In beiden 8-GB-Riegeln an insgesamt drei Stellen sind Speicherzellen kaputt. Ein alter Bekannter schickte mir zwei passende, schnellere Riegel, und somit bekam der PC zum Jahresende ein Upgrade von 2 x 8 GB Non-ECC-DDR3 auf 2 x 8 GB ECC-DDR4 (mehr kann das derzeitige Mainboard leider nicht verwalten).

Fotografie

  • Natürlich hab ich weiterhin Fotos nachbearbeitet. Gescannt hab ich allerdings keine neuen mehr, dabei stehen immer noch ein paar Jahrgänge an.
  • Fotografiert:
    • 20250118 #IchBinArmutsbetroffen
    • 20250203 Rheinbahn-Gerumpel Helmholtzstraße
    • 20250307 Spaziergang am Rhein
    • 20250308 Demo zum Frauenkampftag in Düsseldorf
    • 20250320 Spaziergang „In den Gärten“, Düsseldorf
    • 20250326 StreetArt bei Kaufland Bilk
    • 20250403 Rheinspaziergang
    • 20250411 Demo Fridays for Future, Düsseldorf
    • 20250421 Spaziergang von Königswinter bis Rhöndorf
    • 20250430 Von Osterspai nach Kamp-Bornhofen
    • 20250501 1. Mai, Johannes-Rau-Platz
    • 20250507 #IchBinArmutsbetroffen in Köln
    • 20250521 Von Kamp-Bornhofen nach Kestert
    • 20250525 Düsseldorf Hauptbahnhof und Helmholtzstraße
    • 20250531 Gewitter Frame by Frame
    • 20250603 Von Kamp-Bornhofen nach St. Goar per Schiff
    • 20250708 Bei den Krähen im Volksgarten
    • 20250807 Von Rhens nach Spay
    • 20250815-18 Bonn und St. Augustin
    • 20250822-27 Reifende Tomate
    • 20250906 Von Kamp-Bornhofen nach Kestert mit 4 Kameras
    • 20251009 Demonstration #Pflegegrad1Bleibt in Bonn (Fotos und Videos größtenteils nicht von mir)
    • 20251018 #IchBinArmutsbetroffen in Köln
    • 20251025 Defekter Wasserkocher
    • 20251106-08 Berlin
  • Dann hatte ich noch die Camp Snap 103B von Holger D. ausgeliehen, die dieser quasi auf Tour geschickt hatte, und damit eine Woche lang fotografiert, auch auf einem der längeren Spaziergänge am Mittelrhein. Hier ist mein Blogartikel dazu, und hier sind alle offiziellen Fotos von der Camp-Snap-Tour 2025 von allen Menschen, die sich die Kamera geliehen hatten.

Alltag

  • Mittlerweile stammen etwa 3/4 meiner Lebensmittel-Einkäufe von Retterfirmen. Allerdings wird es immer schwieriger, da vernünftiges Zeug zusammenzukaufen, weil weiterhin und immer mehr das meiste dort angebotene Zeug Süß- und Knabberkram ist. Aber nur so ist es für mich möglich, mit den Ausgaben für Lebensmittel einigermaßen im Regelsatz und hinter der Inflation zu bleiben.
  • Trotzdem habe ich in diesem Jahr aus meinen Reserven im Jahresschnitt 40 € pro Monat auf den Regelsatz draufgelegt.
  • Mit Hilfe eines Menschen aus dem Tauschring wurde Mitte Juli endlich mein Abwasserproblem der letzten zwei Jahre behoben: Der Siphon unter der Spüle war einfach nur zugesetzt gewesen.
  • An einigen Stellen waren noch Vornamens-Änderungen nötig gewesen.
  • Bei einem Teil der #IchBinArmutsbetroffen-Demos in Köln habe ich vorbereitete Reden gehalten und die meisten davon auch verbloggt.
  • Außerdem habe ich mich im Blog mehrfach über die unerträgliche, ja sogar wachsende Behindertenfeindlichkeit und die quasi nicht vorhandene Barrierefreiheit in Düsseldorf ausgekotzt:
    • Barrierefreiheit in Düsseldorf
    • Rheinbahn und Barrierefreiheit
    • Spaß als Behindi in Düsseldorf
    • Ich geh dann schon weg
  • Im September habe ich mir einen Einkoch-Automaten gekauft, Fassungsvermögen 28 l. Seitdem experimentiere ich gelegentlich mit dem Einkochen von Fertiggerichten und Gemüse. Ein paar Konfitüren gab's auch wieder, aber für die brauche ich den Automaten ja nicht.
  • Im Dezember gab's dann noch Spaß mit einer Kaffeemaschine, die ich eigentlich zusammen mit noch vorhandenem Kaffee ins Chaosdorf spenden wollte.

Zum ersten Mal gemacht

  • Ein stark partitioniertes RAID1 nach dem Tausch einer der beiden Platten neu aufgebaut.
  • Eine Demo angemeldet (Keine Abschaffung von Pflegegrad 1 in Bonn). Und kürzlich gleich nochmal: Die Kundgebung #IchBinArmutsbetroffen für das ganze Jahr 2026 in Köln am Breslauer Platz (jeden 3. Samstag im Monat, 14:00 bis 16:00 Uhr), weil der bisherige Anmelder das zeitlich nicht mehr schafft.
  • Ein Repair-Café besucht, für den (letztlich vergeblichen) Versuch der Reparatur meines Wasserkochers.

Da war sicher noch mehr, aber das soll's erstmal gewesen sein.

Vorhaben für 2026? Überleben, in dem letzten bißchen Hoffnung auf noch ein wenig „richtiges“ Leben. Und monatlich zu #IchBinArmutsbetroffen nach Köln fahren. Und mehr Gemüse und Fertiggerichte einkochen. Und wieder mehr neue Fotos machen und alte scannen/bearbeiten.

Nein, das ist nicht viel.

Es ist das, was bleibt.

von Atari-Frosch am 31.12.2025 13:31


29.12.2025

Christian Imhorst (immi)

DOSBox-X mit Flatpak installieren und einrichten

Für die paar alten DOS-Games, die ich noch habe, bin ich auf DOSBox-X umgestiegen, weil ich ein paar Probleme z.B. mit der Tastatur unter DOSBox mit Debian hatte. DOSBox-X habe ich als Flatpak installiert:

flatpak install dosbox-x

Die Konfigurationsdatei befindet sich nach der Installation hier:

~/.var/app/com.dosbox_x.DOSBox-X/config/dosbox-x/dosbox-x-2025.05.03.conf

Falls DOSBosX als System-Paket installiert wurde, kann man die Konfigurationsdatei direkt im eigenen Home-Verzeichnis unter ~/.config/dosbox-x/ finden.

Ganz am Ende der Datei wird die autoexec konfiguriert, z.B. für ein deutsches Tastaturlayout keyb gr 850, oder um den Einhängepunkt für Laufwerk C: zu definieren:

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

keyb gr 850
mount c ~/dosgames
c:

Der Ordner ~/dosgames muss vorher noch erstellt werden.

Dabei kann man nicht nur Spiele installieren, in DOSBox-X funktioniert z.B. auch Windows 3.11 prima. Um die Maus in Windows zu steuern, kann man sie mit der Tastenkombination <Strg>+<Shift>+<F10> in der DOSBox-X übernehmen und auch wieder freigeben.

Doom und Windows 3.11 in DOSBox-X

Doom und Windows 3.11 in DOSBox-X

Möchte man das Spiel direkt als Desktop-Anwendung aufrufen, also ohne den Umweg über die DOS-Kommandozeile, funktioniert der folgende Befehl:

dosbox-x -c "mount c ~/dosgames" -c "c:" -c "cd DOOM" -c "DOOM.EXE" -c "exit"

DOSBox-X akzeptiert mit der Option -c Startparameter in der Kommandozeile, wie den Mount-Befehl oder direkte Aufrufe von Dateinamen.

Mit Menulibre lässt sich jetzt komfortabel ein Desktop-Launcher (.desktop-Dateien) erstellen, der diese Befehle automatisch ausführt. Dadurch entfällt dann die manuelle Eingabe im DOSBox-Prompt:

Menulibre Eintrag mit DOOM als DOS-Spiel

Mit dem Plus-Zeichen oben Links wird ein neuer Starter erstellt. Nachdem alles fertig eingetragen ist, inklusive passendem Bild, das selbst erstellt oder heruntergeladen wurde, wird der Starter gespeichert (das Icon rechts daneben mit dem Pfeil nach unten). Das funktioniert unter fast allen Desktop-Umgebungen wie GNOME, KDE, XFCE etc. Jetzt kann DOOM mit einem Doppelklick direkt aus DOSBox-X gestartet werden.

von Christian Imhorst am 29.12.2025 20:59


17.12.2025

Sabine Becker (AtariFrosch)

Spaß mit einer Kaffeemaschine

Seit vermutlich etwa 20 Jahren steht eine alte, einfache Filterkaffeemaschine auf meinem Küchenschrank. Woher ich sie habe, weiß ich schon gar nicht mehr. Zusammen mit einer zweiten hatte ich sie aber wohl zu dem Zweck bekommen, sie auf eBay zu verkaufen. Die zweite ist nicht mehr hier, die muß ich dann wohl irgendwann losbekommen haben. 2005 hatte ich nun diese übriggebliebene Maschine zum letzten Mal genutzt, weil meine Mutter zu Besuch gewesen war, und die brauchte morgens ihren Kaffee. Danach habe ich sie irgendwann auf den Schrank hoch gestellt. Also die Kaffeemaschine, nicht meine Mutter. 😉

Ja, und nun stellte sich ja vor einiger Zeit heraus, daß ich erstmal keine koffeinhaltigen Getränke mehr zu mir nehmen sollte, weil mir sonst der Blutdruck nach oben explodiert. Weil aber noch so viel davon da war, hab ich das alles mal aussortiert: Zwei Pfund Kaffee, ein Glas löslicher Kaffee, diverse mit Koffein versetzte Früchte- und Kräutertees (die bei den Retterfirmen über Monate wie sauer Bier angeboten wurden – war wohl doch keine so gute Marketing-Idee gewesen?) und alles an Schwarztee. Das wollte ich ins Chaosdorf bringen, und die alte Kaffeemaschine gleich mit dazu, weil ich da von einem gewissen Mangel gelesen hatte.

Weil die Maschine aber so lange ungenutzt war, habe ich sie gestern erstmal komplett gereinigt und dann ausprobiert. Beim ersten Durchlauf hatte ich auch gleich Zitronensäure mit ins Wasser gegeben, falls irgendwo innen noch Kalkreste kleben sollten. Nach dem Einschalten wurde es unerwartet bunt.

Orangefarbene Kaffeemaschine im laufenden Betrieb, in der Kanne ist blaßgrünes Wasser

Zuerst hatte ich nicht drauf geachtet, in welcher Stellung der Einschalter ist – er war an gewesen. Sobald ich den Stecker in die Steckdose steckte, stieg eine kleine Dampfwolke auf. Ich schaltete erst nochmal aus, wartete kurz und schaltete sie dann wieder ein. Am Schalter gab es dabei einen kleinen Funken. Dann passierte erstmal – nichts.

Ich mußte noch zwei- oder dreimal aus- und wieder einschalten, bis sich die Dame bequemte, loszublubbern. Und dann kam da grünliches Wasser raus! Zitronensäure pflegt Wasser im allgemeinen nicht grün zu färben. Aus dem Fediverse kam mehrfach der Hinweis, daß es sich um Grünspan handeln könnte, der von der Zitronensäure gelöst wurde. Das sei aber eigentlich nur dann möglich, wenn die Wasserleitungen in der Maschine aus Kupfer seien.

Aber es gab noch ein zweites Problem: Die Maschine blubberte jeweils ungefähr eine Tasse (gemäß der Markierungen auf der Kanne) durch und machte dann nicht mehr weiter. Ich mußte jeweils etwas warten, sie dann ausschalten, wieder einschalten, dann kam die nächste Tasse. Und das, bis alles an Wasser durchgelaufen war.

Als dann endlich alles durch war, kippte ich das grüne Wasser weg und spülte mit frischem Leitungswasser nach. Da kam die nächste Farbe zum Vorschein: Dieses Wasser verfärbte sich in der Kanne nach zartrosa!

Die Glaskanne ist zu etwa einem Viertel mit rosa Wasser gefüllt.

Wobei man das tatsächlich auch als kupferfarben sehen könnte.

Ich startete einen zweiten Durchlauf, zunächst mit Leitungswasser ohne Zusatz. Da aber wieder grünliches Wasser in die Kanne lief, gab ich doch nochmal Zitronensäure dazu. Danach allerdings wollte die Maschine gar nichts mehr durchlaufen lassen, auch nach mehrfachem Aus- und wieder Einschalten. Ich schaltete sie aus und gab erstmal auf.

Heute nun habe ich sie nochmal eingeschaltet, um zu prüfen, ob sie jetzt wieder mag. Nope, es passierte nichts mehr.

Also nahm ich sie vom Strom und schüttete das Wasser aus dem Wasserbehälter in die Spüle. Dieses Wasser war türkisblau. Also deutlich stärker in Richtung blau als das, was in die Glaskanne gelaufen war. Ich konnte leider kein Foto davon machen, weil's ja direkt in den Abfluß gelaufen war, aber das war dann schon die dritte Farbe.

Die Maschine ist also anscheinend ziemlich queer, aber leider nicht so wirklich funktionsfähig.

Was das Stocken nach jeweils einer Tasse angeht, vermute ich einen Wackelkontakt in der Elektronik. Das kann sich also gern mal ein Mensch mit Hacking-Ambitionen anschauen. Ansonsten würde ich die Kanne, deren Deckel und den Filteraufsatz behalten und den Rest entsorgen. Mit Kanne und Filteraufsatz allein kann man ja immer noch Kaffee kochen – das heiße Wasser muß dann halt woanders herkommen.

von Atari-Frosch am 17.12.2025 12:32


28.11.2025

Christoph Langner (Chrissss)

Spotify unter GNOME: Blauen Fensterrahmen reparieren

Wenn ihr Spotify unter Linux mit GNOME nutzt, habt ihr vielleicht in den letzten Tagen einen unschönen blauen Rahmen um das Anwendungsfenster bemerkt. Ich sehe das Problem hier bei mir unter Arch Linux, es dürfte aber alle Distributionen betreffen.

Schuld daran ist ein Update des offiziellen Linux-Clients auf Electron-Basis, das die GTK-Style-Window-Decoration durcheinandergebracht hat. Die Funktionalität von Spotify bleibt zwar unverändert, optisch sieht es aber alles andere als schick aus.

Spotify mit blauem Rahmen. Ein Update des Linux-Clients hat die GTK-Style-Window-Decoration beschädigt, sodass das Fenster unschön blau gerahmt wird und nicht korrekt angezeigt wird.Spotify mit blauem Rahmen. Ein Update des Linux-Clients hat die GTK-Style-Window-Decoration beschädigt, sodass das Fenster unschön blau gerahmt wird und nicht korrekt angezeigt wird.

Lösungsmöglichkeiten für Spotify

Es gibt zwei einfache Wege, um das Problem zu beheben. Die bequemste Variante ist, Spotify als Flatpak zu installieren. Die Flatpak-Version zeigt den blauen Rahmen nicht und ihr müsst euch um nichts kümmern. Änderungen an der Konfiguration sind nicht nötig.

Die Flatpak-Version von Spotify zeigt den blauen Rahmen nicht, die GTK-Style-Window-Decoration wird korrekt dargestellt und das Fenster sieht nach der Installation normal und fehlerfrei aus.Die Flatpak-Version von Spotify zeigt den blauen Rahmen nicht, die GTK-Style-Window-Decoration wird korrekt dargestellt und das Fenster sieht nach der Installation normal und fehlerfrei aus.

Falls ihr Spotify hingegen über den Spotify Launcher (Paket spotify-launcher aus den Extra-Quellen von Arch) oder direkt aus dem AUR (Eintrag spotify) installiert habt, müsst ihr das Start-Flag --ozone-platform=x11 setzen. Damit wird die GTK-Dekoration korrekt angezeigt. Je nach Installationsart fügt ihr das Flag wie folgt ein:

Für AUR-Spotify in der Datei ~/.config/spotify-flags.conf:

--ozone-platform=x11

Für Spotify Launcher in ~/.config/spotify-launcher.conf:

[spotify]
extra_arguments = ["--ozone-platform=x11"] 

Eventuell müsst ihr diese Dateien erst anlegen. Nach einem Neustart von Spotify sollte der blaue Rahmen verschwunden sein und alles wieder normal aussehen.

Die Konfigurationen unter ~/.config. Die Dateien müssen eventuell erst erstellt werden, ihr braucht nur die passende Datei je nach Installationsart, nicht beide gleichzeitig.Die Konfigurationen unter ~/.config. Die Dateien müssen eventuell erst erstellt werden, ihr braucht nur die passende Datei je nach Installationsart, nicht beide gleichzeitig.
Alternativ könnt ihr das Flag --ozone-platform=x11 setzen, wenn ihr Spotify aus dem AUR installiert habt. Dann wird der Fensterrahmen wieder korrekt angezeigt und normal dargestellt.Alternativ könnt ihr das Flag –ozone-platform=x11 setzen, wenn ihr Spotify aus dem AUR installiert habt. Dann wird der Fensterrahmen wieder korrekt angezeigt und normal dargestellt.

Korrektur von Fabian auf Mastodon: Das stimmt so nicht. Das ist ganz alleine dem geschulded das Spotify Wayland-nativ läuft und dort, unter GNOME, eine clientseitige Dekoration (CSD) braucht, die es über diese blaue bereit stellt. Das ganze wieder zu X11 zwingen schafft eventuell echte Probleme, wie verschwommene Schriften, schlechtes (kein) scaling und so weiter. Spotify ist auch nicht Elektron, sondern Chromium Embedded Framework (CEF).

Klar, es ist eine Krücke, aber eine die derzeit hilft. Die Änderung lässt sich ja auch schnell wieder rückgängig machen. Die anderen Optionen wären, Gnome unter X11 zu betreiben oder sich mit den blauen Rahmen anzufreunden. Beides in meinen Augen auch nicht gerade optimal. So ist es erstmal ein Workaround, den man natürlich nicht vergessen sollte, falls sich Spotify irgendwann einmal wieder komisch verhält.

von Christoph Langner am 28.11.2025 14:01


22.11.2025

Christoph Langner (Chrissss)

Plattenalbum und Euphonica: MPD-Clients unter GNOME für Linux

Es gibt zahlreiche Software-Tools und Programme, die mich schon seit Jahrzehnten begleiten. Unter Windows wären das zum Beispiel der Total Commander, Notepad++ oder 7-Zip. Unter Linux gehört für mich der GNOME-Desktop mit seinem Ökuystem aus Evolution, Gedit und Nautilus dazu, auch wenn er vom Look und Feel der alten GNOME-2-Zeiten inzwischen weit entfernt ist und trotz der oft berechtigten Kritik an der „Wir-streichen-wichtige-Funktionen“-Politik der Entwickler.

Neben diesen grafischen Werkzeugen begleitet mich auch der Music Player Daemon, kurz MPD. Der Name klingt zunächst kryptisch, dahinter steckt aber ein einfaches Konzept. MPD ist ein Musikplayer, der im Hintergrund läuft und sich über zahlreiche Clients fernsteuern lässt. Man kann also einen Rechner oder Raspberry Pi an die Stereoanlage hängen, die eigene Musiksammlung einbinden und die Wiedergabe von überall im Haus steuern.

Music Player Daemon aka MPD

MPD unterscheidet sich deutlich von Streaming-Servern wie Jellyfin oder Navidrome, die auf dem Subsonic-Protokoll basieren. Dort streamt der Server die Musik an die Clients, während bei MPD der Client nur die Wiedergabe steuert und der Dienst selbst direkt auf dem Server spielt. Bemerkenswert ist, dass die Entwicklung an MPD auch nach über zwanzig Jahren nicht eingeschlafen ist. Die aktuelle stabile Version MPD 0.24.6 ist gerade erst veröffentlicht worden.

Auch bei den Clients merkt man, dass MPD weiterhin lebendig ist. Während moderne Subsonic-Clients für Linux (speziell für den GNOME-Desktop) inzwischen leider wirklich rar geworden sind (Sublime Music oder Sonixd wurden eingestellt, mit Feishin oder Supersonic werde ich nicht warm), entstehen rund um MPD immer wieder neue Projekte. In letzter Zeit erscheinen vermehrt Anwendungen auf Basis von GTK4 und Libadwaita, die sich optimal in das aktuelle GNOME-Design einfügen und die Funktionen des Desktops optimal nutzen.

MPD für GNOME: Plattenalbum

Plattenalbum (Flathub) hat gerade erst ein Update auf Version 2.4.0 erhalten und nutzt GTK4, ohne sich in ein übertrieben verspieltes Design zu verlieren. Die Albencover stehen klar im Mittelpunkt der Oberfläche. Das Layout bleibt klassisch, links die Künstler, in der Mitte die Alben und rechts der Player mit den Kontrollelementen zur Steuerung der Wiedergabe.

Wer während der Wiedergabe auch die Songtexte lesen möchte, wechselt über den Button oberhalb des Players in die Lyrics-Ansicht. Die Texte müssen dafür nicht im ID3-Tag stehen. Plattenalbum lädt sie automatisch vom brasilianischen Dienst Letras, was besonders praktisch ist, wenn man die eigenen Dateien nicht vollständig gepflegt hat. Weitere Einstellungsmöglichkeiten gibt es nicht viele, und braucht es eigentlich auch nicht.

Übersicht über alle Alben auf dem Server, klar angeordnet mit Fokus auf den Covern und einer direkt nutzbaren Steuerung des MPD.Übersicht über alle Alben auf dem Server, klar angeordnet mit Fokus auf den Covern und einer direkt nutzbaren Steuerung des MPD.
Einblick in die aktuelle Playlist, die während der Wiedergabe frei durchstöbert werden kann, ohne den laufenden Titel zu unterbrechen.Einblick in die aktuelle Playlist, die während der Wiedergabe frei durchstöbert werden kann, ohne den laufenden Titel zu unterbrechen.
Die automatisch geladenen Songtexte erscheinen übersichtlich im Fenster, ergänzt durch Informationen des externen Dienstes Letras.Die automatisch geladenen Songtexte erscheinen übersichtlich im Fenster, ergänzt durch Informationen des externen Dienstes Letras.

MPD für GNOME: Euphonica

Euphonica (Flathub) setzt im Gegensatz zu Plattenalbum deutlich stärker auf visuelle Effekte. Der Hintergrund des Fensters passt sich an die Farben des aktuellen Albums an und am unteren Rand bewegt sich ein animiertes Spektrum. Beim Wechsel zwischen Künstler- und Albenansicht oder beim Öffnen eines Albums gleiten die einzelnen Elemente weich ins Bild und erzeugen einen modernen Eindruck.

Auch funktional überzeugt Euphonica. Man kann durch Künstler und Alben navigieren und künftig soll auch das Filtern nach Genres möglich sein. Alben lassen sich mit MPD 0.24 oder neuer bewerten. Über MPRIS integriert sich Euphonica nahtlos in den Desktop, zeigt Benachrichtigungen beim Titelwechsel an und erlaubt die Steuerung der Wiedergabe auch über die Desktop-Funktionen.

Die Albenansicht zeigt die gesamte Sammlung in MPD mit dynamischem Hintergrund, der sich sichtbar an das aktuell geöffnete Album anpasst.Die Albenansicht zeigt die gesamte Sammlung in MPD mit dynamischem Hintergrund, der sich sichtbar an das aktuell geöffnete Album anpasst.
Die Playlist passt sich farblich an das Cover des aktuellen Songs an und schafft eine stimmige Atmosphäre während der Wiedergabe.Die Playlist passt sich farblich an das Cover des aktuellen Songs an und schafft eine stimmige Atmosphäre während der Wiedergabe.
Das Einstellungsfenster bietet zahlreiche Optionen, die eine individuelle Anpassung des Clients an die eigene MPD-Umgebung ermöglichen.Das Einstellungsfenster bietet zahlreiche Optionen, die eine individuelle Anpassung des Clients an die eigene MPD-Umgebung ermöglichen.

Generell wäre es wünschenswert, wenn wieder ein neuer GTK4/LibAdwaita-Client für Subsonic erscheinen würde. Auf meinem kleinen Selfhosting-Server läuft Navidrome sehr zuverlässig. Für Android gibt es Symfonium (proprietär, aber jeden Cent wert) sowie Tempus, eine aktiv weiterentwickelte Version des FOSS-Clients Tempo. Auch das Webfrontend von Navidrome funktioniert ausgezeichnet. Auf dem Desktop fehlt jedoch eine native Anwendung, hier klafft aktuell eine große Lücke.

von Christoph Langner am 22.11.2025 13:26


16.11.2025

Malte Schmidt (maltris)

Vom Erfolg, eine verschollene Samsung SSD-Firmware zu erhalten (MMCRE28G5MXP-0VB)

Im Beitrag “Vom Versuch, eine verschollene Samsung SSD-Firmware zu erhalten (MMCRE28G5MXP-0VB)“, beschrieb ich die Schwierigkeiten, eine 10 Jahre alte Firmware für eine 10 Jahre alte und eher unbekannte Samsung SSD zu erhalten.

Während meine Versuche ausschließlich in Sackgassen endeten, meldeten sich in den Kommentaren einige freundliche Leser, darunter einer mit unbekanntem Namen, der eine koreanische Seite verlinkte, auf der sowohl die passende Anleitung zum Firmware-Update, als auch die passenden Firmware-Daten in der aktuellst verfügbaren Version auffindbar waren.

  • Originalbeitrag in koreanischer Sprache
  • Google-Translator Link
  • Link zur englischen Anleitung zum DSRD (Dos Samsung Re-Drive, dem Firmware-Update-Tool)
  • Link zur Firmware (web.archive.org)

Vorher-Nachher-Vergleich

Erste Performancetests nach dem Firmware-Update zeigen relativ gute Werte. In Anbetracht dessen, dass Schreib- und Leseperformance zuvor (Firmware VBM1801Q) bei

  • Schreibgeschwindigkeit sequenziell: 23.8 MB/s
  • Lesegeschwindigkeit sequenziell: 196 MB/s

lagen, erreiche ich jetzt (Firmware VBM1901Q) Werte von

  • Schreibgeschwindigkeit sequenziell: 194 MB/s
  • Lesegeschwindigkeit sequenziell: 220 MB/s

Ein beachtlicher Anstieg.

Firmware-Update mit DSRD und FreeDOS

Die Anleitung Samsungs ist an einigen Stellen unverständlich und sogar fehlerhaft, da zusätzlich zum genannten Paket noch FreeDOS oder ein vergleichbares Betriebssystem benötigt wird. Daher fasse ich hier nochmal alle Schritte zum Firmware-Update bequem und korrigiert zusammen:

wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/FD12FULL.zip
wget -O DSRD_2_1_0.zip http://cfile208.uf.daum.net/attach/1556E4104B7E8D3A01E9DA
unzip FD12FULL.zip
sudo dd if=FD12FULL.img of=/dev/sdX status=progress
mount /dev/sdX /mnt
mkdir /tmp/DSRD
unzip DSRD_2_1_0.zip -d /tmp/DSRD/
cp -R /tmp/DSRD/ /mnt/
umount /dev/sdX

Mit diesen Schritten ist der USB-Stick inklusive DSRD-Tool vorbereitet. Nun muss der Reboot erfolgen.

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

Das im Update-Prozess gewünschte “Power cycle” (Neustarten) der SSD habe ich hierbei nicht durchgeführt, da die SSD in meinem Notebook fest eingebaut war. Nach dem Firmware-Update und ohne die gewünschten “Power cycle” konnte ich jedoch keine Funktionsfehler feststellen.

SMART-Daten zurückgesetzt

Beim Firmware-Upgrade wurden jegliche SMART-Daten zurückgesetzt. Glücklicherweise konnte ich jedoch anhand der Laufzeit der zweiten SSD, ziemlich genau die Laufzeit bis zum Firmware-Update errechnen:

Damals:

SanDisk SDSSDH2128G
Laufzeit: 12542 Stunden

SAMSUNG MMCRE28G5MXP-0VB
Laufzeit: 17619 Stunden

Heute:

SanDisk SDSSDH2128G
Laufzeit: 15756 Stunden

SAMSUNG MMCRE28G5MXP-0VB
Laufzeit: 20833 Stunden

(15756-12542)+17619 = 20833 Stunden

Fazit

Nach fast einem 3/4 Jahr habe ich die passende Firmware erhalten, konnte diese auf die alte SSD flashen und erreichte damit, von mir unerwartete, verbesserte Schreibgeschwindigkeiten.

von maltris am 16.11.2025 09:16


22.10.2025

Christoph Wickert (raoul)

Image

Boot-Probleme mittels efibootmgr lösen

Vor vier Monaten habe ich mir einen Intel N100-Rechner als neuen Homeserver gegönnt. Das vorinstallierte Windows 11 musste natürlich einem SUSE Linux Enterprise 15 weichen. Die Installation vom USB-Stick verlief problemlos, ich habe einfach alle Partitionen mit Ausnahme des EFI gelöscht. Secure Boot wurde automatisch eingerichtet, doch nach dem ersten Kernel-Update war der Server plötzlich nicht mehr übers Netzwerk erreichbar. Mein eilig angeschlossener Monitor zeigte mir das Problem: Statt Linux wurde Windows gebootet, was aber mangels Partitionen nicht funktionieren konnte. Immerhin konnte ich vom Bluescreen in das UEFI gehen und dort die Bootreihenfolge ändern, damit wieder SLES gebootet wurde.

Damit sich das Problem wiederholt, bedurfte es noch eines manuellen Eingriffs: Zwar wird bei der SLES-Installation die Boot-Reihenfolge auf grub geändert, allerdings ist das – genau wie meine Änderung im EFI-BIOS nicht wirklich dauerhaft. Was wirklich konfiguriert ist, sieht man mit efibootmgr:

# efibootmgr
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000,0001,0002
Boot0000* Windows Boot Manager
Boot0001* sles-secureboot
Boot0002* UEFI OS

Windows ist also Standard. Um das zu ändern, muss man die Boot-Reihenfolge ändern:

# efibootmgr --bootorder 0001,0002

Da ich kein Windows mehr habe, lösche ich stattdessen einfach den Eintrag Boot0000:

# efibootmgr -b 0000 --delete-bootnum

Kontrollieren, ob alles geklappt hat:

# efibootmgr
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002
Boot0001* sles-secureboot
Boot0002* UEFI OS

Sieht gut aus. sles-secureboot ist automatisch an die erste Stelle gerückt, das Problem sollte also nicht mehr auftauchen. Jetzt kann man auch den Windows Bootloader von der EFI-Partition löschen:

# rm -rf /boot/efi/EFI/Microsoft/

Wieder was gelernt.

von chris am 22.10.2025 18:03


14.09.2025

Steffen Rumberger (inne)

#lesenswert: Menschlichkeit

Die Frage nach der richtigen Seite, ist eine Frage der Menschlichkeit, nicht der Logik…

🤖

14.09.2025 05:30


11.09.2025

Thorsten Sperber (TRex)

Containermanagement

Container sind ein tolles Tool. Man kann damit mühelos Prozesse "paketieren" und damit auch ein Stück weit vom Host isolieren, ohne sich über die zusätzlichen Attribute wie Sizing und Basissystem (wie bei LXC oder VMs) Gedanken machen zu müssen.

Man kann sich aber auch kräftig in den Fuß schießen und einen Zoo von Containern anlegen, die man nie wieder "eingefangen" bekommt. Die größte mir bekannte Kritik am Konzept liegt darin, dass das Paketmanagement vom Host-System umgangen wird und so beispielsweise Sicherheitslücken im Container rumschimmeln können. Ergo wäre ein guter Management-Layer schon sehr vom Vorteil, und das ist auch meine Motivation zum Thema gewesen.

Von BSD-Jails (2000) über Docker (2013) und Kubernetes (2014) sind wir nun bei Podman mit eng verzahnter systemd-Integration, auch Quadlets genannt (2023).

Weiterlesen… (3 min verbleiben zum Lesen)

von Thorsten am 11.09.2025 17:11


05.09.2025

Jörg Kruse (4A4B)

Root-Login in MariaDB nach Debian-Upgrade nicht mehr möglich

Nach einem Upgrade eines älteren Entwicklungssystems von Debian Bookworm auf Debian Trixie funktionierte der Login des Users root in MariaDB nicht mehr. Ein systemctl status mariadb gab folgende Fehler aus:

Reading datadir from the MariaDB server failed. Got the following error when executing the 'mysql' command line client
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
FATAL ERROR: Upgrade failed

Schon seit einigen Debian-Versionen erfolgt die Authentifizierung des MariaDB-Users root nicht mehr über eine Passwortabfrage, sondern über einen Unix-Socket. Der Socket war auch aktiv:

Version: '11.8.2-MariaDB-1 from Debian' socket: '/run/mysqld/mysqld.sock' port: 3306 --

Der Linux-Root sollte sich demnach ohne Passwort als MariaDB-User root einloggen können. Genau das funktionierte hier nicht mehr:


$ su -
Password:
# mysql
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Andere User dagegen können sich problemlos per Passwort einloggen.

Vor dem Debian-Upgrade hatte ich, wie in den Release-Notes empfohlen, den MariaDB-Server gestoppt. Trotzdem schien hier irgendwas schief gelaufen zu sein. Um die Situation als root zu begutachten und ggf. zu bereinigen, startete ich MariaDB über mariadbd-safe mit der Option –skip-grant-tables. Danach war ein passwortloser Login mit dem mysql Client möglich:


# systemctl stop mariadb.service
# mariadbd-safe --skip-grant-tables &
[1] 171235
250902 15:22:55 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 11.8.2-MariaDB-1 from Debian -- Please help get to 10k stars at https://github.com/MariaDB/Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Eine Abfrage nach dem Authentifizierungs-Plugin von root@localhost ergab, dass wie bisher das Plugin unix_socket genutzt wird:


MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> SELECT Host, User, plugin FROM user WHERE User = 'root';
+-----------+------+-------------+
| Host      | User | plugin      |
+-----------+------+-------------+
| localhost | root | unix_socket |
+-----------+------+-------------+
1 row in set (0.003 sec)

Das FLUSH PRIVILEGES am Anfang ist notwendig, um folgende Änderungen vornehmen zu können. Eine Änderung auf das Plugin mysql_native_password wäre möglich (wobei dann unbedingt auch ein Passwort für root gesetzt werden muss!). Aber ich wollte die Authentifizierungsmethode unix_socket beibehalten. Mein Reparaturversuch sah dann so aus, dass ich die Authentifizierungsmethode zweimal änderte:


MariaDB [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password;
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED WITH unix_socket;
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> quit

Nachdem die Instanz von mariadbd-safe beendet und der MariaDB-Server neu gestartet wurde, konnte root sich wieder in MariaDB einloggen – der Reparaturversuch war anscheinend geglückt:


# pkill mariadb
# systemctl start mariadb
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 11.8.2-MariaDB-1 from Debian -- Please help get to 10k stars at https://github.com/MariaDB/Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Und auch systemctl status mariadb vermeldete statt der vorherigen Fehler den bedarfsweisen Upgrade der Tabellen:

Upgrading MariaDB tables if necessary.

von Jörg Kruse am 05.09.2025 13:31


02.09.2025

Bernd Dau (whisper)

Image

Vom 486-Tower zum ESP32-C3 Super Mini

Beim Stöbern bin ich über eine alte VOBIS-Anzeige von Anfang der 90er gestolpert.

ImageDamals waren Highscreen-Tower mit 486er CPU, 25 MHz, 4 MB RAM und 80 MB Festplatte der letzte Schrei – und das Ganze für schlappe 9.831 DM.

Heute halte ich dagegen:

ein ESP32-C3 Super Mini, kaum größer als eine Briefmarke, mit integriertem WLAN/Bluetooth, RISC-V-CPU bei 160 MHz, ein paar hundert KB RAM und Flash-Speicher. Kostenpunkt: 3,99 €.

Ich konnte nicht widerstehen und habe das Ganze im Stil der alten „VOBIS Denkzettel“ nachgebaut.

Herausgekommen ist ein Fake-Werbeblatt, das so herrlich an die Zeit erinnert.

– Tippfehler inklusive. 🤓 Besonders köstlich: Statt „SRAM“ steht da groß und breit „SPAM“.

PS: Mein persönliches Highlight:
Im Fake-Denkzettel „passt der ESP32-C3 Super Mini“ nicht etwa in die Hosentasche,
sondern in die Hasenlasche. 🐇
Retro-Charme pur – so war Werbung in den 90ern!

Fast zu schade, das zu korrigieren.

Fazit: Ein ESP32 steckt heute in der Hosentasche mehr Rechenpower als ein 486-Tower von damals – und kostet weniger als ein belegtes Brötchen am Bahnhofskiosk.

Wer hätte 1990 gedacht, dass „der nächste Computer“ nicht mehr den halben Schreibtisch füllt, sondern im LARP-Armband oder der Kaffeemaschine verschwindet?

Nachtrag:

Wer den Fake-Denkzettel genau anschaut, entdeckt auch die typischen Inhalts-Teaser – ganz wie im Original:

  • Seite 1: „Warum Ihr nächster PC in die Kaffeetasse passt“
  • Seite 2: „So steuern Sie mit 5 Euro Ihr ganzes Haus“
  • Seite 3: „Netzwerkkarte? Heute heißt das WLAN-Onboard!“
  • Seite 4: „Vergleich: 486 Tower vs. ESP32“

Fast zu schade, um sie zu überlesen – aber genau so war das damals ja gedacht.

von bed (nospam@example.com) am 02.09.2025 10:51


22.08.2025

Thorsten Sperber (TRex)

Take Back The Web

Take Back the Web

Warum ich mir das Web zurückhole

Das Web ist nicht für mich gemacht — es ist für Advertiser, Plattformen und manchmal für Developer gedacht, die nie über Usability nachgedacht haben. Ich nutze Userscripts (via Tampermonkey) und UserCSS (via Stylus), um:

  • Seiten für bessere Lesbarkeit umzufärben.
  • Nervige Elemente zu entfernen, die vom Content ablenken.
  • Fehlende Funktionalität nachzurüsten, wenn mir an Websites was fehlt.

Mit ein paar Zeilen eigenem Code kann ich das Web an meine Bedürfnisse anpassen.

Weiterlesen… (4 min verbleiben zum Lesen)

von Thorsten am 22.08.2025 18:37


18.08.2025

Bernd Dau (whisper)

Image

Ritter TD

CHATGPT-5 was kann das?

nun das hier z.B. mit ein paar Versuchen...

Ritter‑TD – Anleitung

Casual Tower‑Defense im Mittelalter‑Look. Single‑File, offline spielbar.

Ziel: Halte die Goblins vom rechten Kartenrand fern. Jeder, der durchkommt, kostet ein Herz. Für Abschüsse gibt’s Gold → Türme bauen & upgraden.

Start

Öffne die Spiel‑Datei  ritter-td8.html im Browser (Firefox/Chromium). Es werden keine Assets geladen; Audio startet erst nach der ersten Interaktion.

Steuerung

Taste Funktion
Leertaste Welle starten
1/2/3/4 Turm wählen (Bogen/Armbrust/Kanone/Magier)
Linksklick Turm platzieren (nicht auf dem Weg)
Rechtsklick / Esc Platzierung/ Auswahl abbrechen (im Editor: letzte Ecke löschen)
U / V Upgrade / Verkaufen (auch per Button)
E Map‑Editor an/aus
P / R Pause / Neustart

Türme

Bogenturm (50)
Guter Allrounder. 120 % Schaden gegen Schützen (einziger voller Konter).
Armbrust (70)
Hoher Einzelschaden, große Reichweite; gut gegen dicke Ziele.
Kanone (90)
Flächenschaden (Splash); stark gegen Gruppen, schwächer vs. Einzelfeinde.
Magier (100)
Verlangsamt Gegner (Slow) und gibt so mehr DPS‑Zeit.

Upgrades erhöhen Schaden, Feuerrate und etwas Reichweite (max. Stufe 3).
Verkaufen bringt je nach Stufe 70 % / 85 % / 95 % des Grundpreises zurück (V).

Gegner

  • Goblin – Standardziel.
  • Schütze – feuert rote Bolzen auf Türme (−40 % Feuerrate ~3.5 s), erleidet nur 50 % Schaden von allen Türmen, außer vom Bogenturm (120 %). Bei Treffer erhält er +25 % Speed für 2.5 s (sichtbar als orangefarbener Ring). Ab Welle 3 aktiv; ab Welle 10 können mehrere pro Welle erscheinen (Quota mit kurzem Abstand).
  • Brute – sehr viele HP, langsam; kleine Chance pro Welle, gibt extra Gold.

Wellen, Skalierung & Pfad

  • HP steigen deutlich mit der Welle: ca. 28 + 6·Welle + 0.8·Welle².
  • Ab Welle 6 wird der Pfad einmal komplexer. Türme, die direkt auf dem neuen Weg stehen, werden entfernt (50 % Gold zurück); alle anderen bleiben stehen.
  • Schützen‑Wahrscheinlichkeit skaliert ab Welle 3 (max. 85 %).

Map‑Editor (einfach)

  1. E drücken → Editor an.
  2. Mit Linksklick Ecken setzen (orthogonal). Rechtsklick/Backspace löscht die letzte Ecke.
  3. „Pfad übernehmen“: Neuer Weg wird aktiv. Gegner/Projektile werden zurückgesetzt; der Run pausiert.

Tipps

  • Früh 1–2 Magier an Engstellen setzen (Zeit kaufen).
  • Mindestens ein Bogenturm gegen Schützen in Reichweite behalten.
  • Kanonen hintereinander staffeln → Splash‑Zonen überlappen gut.
  • Teure Upgrades früh nur, wenn sie die nächste Welle tatsächlich drehen; sonst lieber einen zusätzlichen günstigen Turm setzen.

Technik

  • Kein Server, keine Assets – reine HTML/JS.
  • Audio via WebAudio (aktiviert sich beim ersten Klick/Tastendruck).
  • Getestet mit Firefox & Chromium unter Linux.

von bed (nospam@example.com) am 18.08.2025 14:46


13.08.2025

Martin Dosch (Dogge)

openMoHAA: Medal of Honor: Allied Assault auf Debian spielen

Kürzlich fiel mir auf, dass Medal of Honor: Allied Assault (MoHAA) vom Projekt OpenMoHAA als OpenSource Software (GPL-2.0) nachgebaut wurde. Mit dem kürzlich erschienenen Debian Trixie ist jetzt OpenMoHAA als Debianpaket verfügbar. Da ich MoHAA als Jugendlicher sehr gerne gespielt habe, möchte ich mir natürlich nicht die Gelegenheit entgehen lassen es unter Debian zu spielen.

Spieldaten

Der Nachbau von MoHAA ist zwar frei, die Grafiken und Sounds sind es aber nicht. Um OpenMoHAA spielen zu können, benötigt man also die Daten des Originalspiels. Da ich die Spiel-CD von früher nicht mehr zur Hand habe, habe ich mir MoHAA bei GOG gekauft.

Debianquellen bearbeiten

Da man die unfreien Spieldaten benötigt kann OpenMoHAA nicht über Debian main bereitgestellt werden, sondern befindet sich in contrib. Darum muss man sicher stellen, dass die contrib-Quellen eingebunden sind.

Wenn man das bisherige Format mit /etc/apt/sources.list nutzt, muss man sicherstellen, dass contrib enthalten ist. Die entsprechende Zeile sieht dann z.B. so aus:

deb https://deb.debian.org/debian trixie main contrib non-free-firmware

Nutzt man schon das neue deb822-Format kann man in die entsprechende Datei, z.B. /etc/apt/sources.list.d/debian.sources, bei Components: contrib hinzufügen. Das sieht dann z.B. so aus:

# Modernized from /etc/apt/sources.list
Types: deb
URIs: https://deb.debian.org/debian/
Suites: trixie
Components: main contrib non-free-firmware non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Benötigte Pakete installieren

Nachdem man die Debianquellen bearbeitet hat, aktualisiert man die Quellen:

# apt update

Anschließend kann man die benötigten Pakete installieren:

# apt install game-data-packager openmohaa lgogdownloader

Spieldaten paketieren

Die im vorigen Schritt installierten Pakete game-data-packager und lgogdownloader werden nun genutzt um die Spieldaten herunterzuladen.

Hat man lgogdownloader bisher noch nicht genutzt, muss man sich erst anmelden:

$ lgogdownloader --login

Danach werden Benutzername und Passwort abgefragt und man wird eingeloggt. Danach kann mit dem game-data-packager fortgefahren werden:

$ mkdir -p ~/Games/mohaa
$ cd ~/Games/mohaa
$ game-data-packager mohaa

Spieldaten installieren

Nachdem nun die Spieldaten paketiert sind, können diese installiert werden:

# apt install /home/$USER/Games/mohaa/mohaa*.deb

Der Platzhalter $USER ist natürlich durch den entsprechenden Benutzer zu ersetzen.

Spielen

Nun kann man Medal of Honor: Allied Assault, sowie die Erweiterungen Spearhead und Breakthrough spielen und in Erinnerungen schwelgen, oder diese Spiele auch zum ersten Mal genießen. :)

Troubleshooting

Auflösung

Geht es um die Bildschirmauflösung, so merkt man dem Spiel das Alter an. 4:3 hat heute eigentlich kein Monitor mehr. Leider sind die Auswahlmöglichkeiten in den Spieloptionen fest einprogrammiert, deshalb muss man selbst in der Konfigurationsdatei ~/.openmohaa/main/configs/omconfig.cfg anpassen.

Entweder kann man den Parameter r_mode auf -2 setzen und die Zeilen r_customwidth und r_customheight entfernen. Dann sollte das Spiel mit der nativen Auflösung im Vollbild laufen.

Sollte das nicht wie gewünscht funktionieren, so muss man die Auflösung manuell angeben. Dazu muss man den Parameter r_mode auf -1 setzen und mit r_customwidth und r_customheight die gewünschte Auflösung eintragen, z.B.:

seta r_mode "-1"
seta r_customwidth "1920"
seta r_customheight "1080"

BTW

…es gibt auch Pakete namens rtcw und dhewm3 in Debian. Bei ersterem geht es um die Rückkehr zu einer Burg namens Wolfenstein und bei zweitem um die dritte Version des Verhängnis. Diese Spiele lassen sich auch analog zu dem für OpenMoHAA beschriebenen Verfahren installieren. ;)

13.08.2025 19:49


29.07.2025

Jörg Kruse (4A4B)

MariaDB: Autoincrement bei zusammengesetzten Primärschlüsseln

Letztens musste ich eine MariaDB-Tabelle vom älteren MyIsam– in das heute geläufige InnoDB-Engine-Format übertragen. Allerdings wurde die Umsetzung mit einer Fehlermeldung quittiert:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

Vereinfacht war der Aufbau der MyIsam-Tabelle wie folgt:

CREATE TABLE foo_table (
  foo_group tinyint(3) unsigned NOT NULL,
  foo_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  foo_description varchar(255) NOT NULL,
  PRIMARY KEY(foo_group, foo_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

Der Primary Key der Tabelle foo_table umfasste als Composite Key zwei Spalten: foo_group und foo_id, wobei für foo_id ein auto_increment definiert war.

Eine Abfrage verdeutlicht dies:

MariaDB [foo_db]> select foo_group, foo_id from foo_table;
+-----------+--------+
| foo_group | foo_id |
+-----------+--------+
|         1 |      1 |
|         1 |      2 |
|         1 |      3 |
|         2 |      1 |
|         2 |      2 |
|         3 |      1 |
|         3 |      2 |
|         3 |      3 |
+-----------+--------+
MariaDB [foo_db]>

Der Auto-Increment für foo_id erfolgt demnach nicht global, sondern nur für die jeweilige Gruppe, die durch foo_group definiert ist. Diese Funktionalität ist in InnoDb nicht direkt vorhanden, lässt sich aber mit einem Trigger nachbilden.

Bei einer Konvertierung nach InnoDB muss auch der Auto-Increment entfernt werden, indem foo_id ohne auto_increment neu definiert wird:

ALTER TABLE foo_table
CHANGE foo_id foo_id int(10) unsigned NOT NULL AFTER foo_group,
ENGINE='InnoDB';

Danach kann ein Trigger eingerichtet werden, der bei einem Insert für pro_id den bislang höchsten Wert der entsprechenden Gruppe um 1 erhöht, oder falls noch kein Wert für die Gruppe vorhanden eine 1 zuweist:

DELIMITER $$

CREATE TRIGGER foo_bi BEFORE INSERT ON foo_table
FOR EACH ROW BEGIN
  SET NEW.foo_id = (
    SELECT IFNULL(MAX(foo_id), 0) + 1
    FROM foo_table
    WHERE foo_group = NEW.foo_group
  );
END $$

DELIMITER ;

Beim Einfügen eines Datensatzes über das Datenbank-Tool Adminer gab es allerdings noch ein kleines Problem. Wenn ich das Eingabefeld foo_id überspringe, sendet Adminer einen leeren String, was zu einer Fehlermeldung führt:

Incorrect integer value: '' for column `test1`.`foo_table`.`foo_id` at row 1

Hier hilft ein Default-Wert 0 für foo_id:

ALTER TABLE foo_table
CHANGE foo_id foo_id int(10) unsigned NOT NULL DEFAULT 0 AFTER foo_group;

Der Trigger überschreibt die 0 dann mit dem korrekten Auto-Increment-Wert.

Update:

Jens T. hat mich in den Kommentaren darauf aufmerksam gemacht, dass ein nachträglicher Wechsel von foo_group so nicht möglich ist. Hierzu muss zusätzlich ein entsprechender Trigger für die Updates erstellt werden:

DELIMITER $$

CREATE TRIGGER foo_bu BEFORE UPDATE ON foo_table
FOR EACH ROW BEGIN
  SET NEW.foo_id = (
    SELECT IFNULL(MAX(foo_id), 0) + 1
    FROM foo_table
    WHERE foo_group = NEW.foo_group
  );
END $$

DELIMITER ;

von Jörg Kruse am 29.07.2025 14:05


25.06.2025

Christoph Wickert (raoul)

Image

Neuer Homeserver

Zehn Jahre lang hat mir ein Banana Pi treue Dienste als Homeserver geleistet. Mit seinem 1 GHz Dual-Core Arm-Prozessor, 1 GB RAM und einer 2 TB SATA-SSD war er für NFS und DLNA zwar völlig ausreichend, aber für Anwendungen wie Nextcloud nicht wirklich zu gebrauchen. Vor allem die Performance beim Kopieren von Dateien auf dem Server war unterirdisch. Was nützt einem Gigabit-Ethernet, wenn der Rechner die Daten nicht schnell genug wegschreiben kann? 2014 war der Banana Pi eine gute Wahl und hat den Ende 2012 erschienenen Raspberry Pi deklassiert, aber jetzt war es Zeit für etwas Neues.

Da ich keine Lust auf Hard- und Software-Frickelei habe und einen möglichst sparsamen Rechner suche, fiel meine Wahl auf einen Intel N100. Bei Heise habe ich einen Test des Ninkear N100 gefunden. Ein China-Rechner wie viele andere und sicher nicht der beste Mini-PC, aber mit Rabattcode für 148 € zu haben. Es gibt – auch in dieser Größe – potentere Rechner, aber ich brauche nicht mehr und will einen leisen und vor allem sparsamen Server.

Die Lieferung aus Europa hat nur drei Tage gedauert und der Rechner ist genauso, wie im Test beschrieben. Einziges Manko ist der Formfaktor der SSD: Es lassen sich nur „halbe“ M.2-SSDs einbauen (2242 und nicht 2282). Ein Austausch der verbauten 512 GB No-Name-SSD ist damit von Tisch. Mehr als 1 TB sind als 2242 nicht erhältlich und selbst die sind schon unbezahlbar. Wer mehr Kapazität braucht, muss sie extern über USB anschließen. Ich wollte zwar ohnehin meine 2 TB SATA-SSD vom Banana PI weiterverwenden, aber langfristig wäre eine Aufrüstoption nett gewesen.

Das vorinstallierte Windows 11 habe ich durch SLES 15 ersetzt. Die Installation vom USB-Stick verlief problemlos, auch Secure Boot wurde automatisch eingerichtet. Welche Dienste ich auf dem Server laufen lassen werde, überlege ich noch und werde es hier in den konnenden Wochen dokumentieren.

von chris am 25.06.2025 18:42


18.06.2025

Malte Schmidt (maltris)

Windows 7 Bluescreen mit FRITZ!WLAN Stick AC 430 wenn Verbindungen zu modernen Wifi-AP’s (FRITZ!Box 7690) aufgebaut werden

Kürzlich stolperte ich beim Austausch einer alten FRITZ!Box 7490 mit einer neuesten FRITZ!Box 7690 auf ein merkwürdiges Phänomen. Um den Umstieg zu erleichtern übernahm ich SSID und Passwort des alten Gerätes und konfigurierte diese im neuen Gerät.

Als alle Client-Geräte anfingen sich neu zu verbinden stürzten plötzlich zwei Windows 7-PC’s, die zwar lange aus dem Support gelaufen sind, aber zwingend in dieser Konstellation notwendig sind, einfach mit einem Bluescreen mit Hinweis auf den Treiber “fwlanusb6.sys” ab.

In einer solchen Situation ist gleich klar, dass es sich nicht um einen Zufall handeln kann. Besonders nicht bei zwei Systemen. Schnell war klar: Beide Systeme nutzen den gleichen älteren FRITZ!WLAN Stick AC 430.

Da eine kurze Recherche keine konklusiven Ergebnisse lieferte, probierte ich spontan ein paar neuere Wifi-Einstellungen der FRITZ!Box zu deaktivieren, darunter WPA3, bzw. den Wifi-Standard zu senken. Nichts half hier, sodass ich zunächst in Erwägung zog die AC 430 abzuschaffen und auf alternative Verbindungsmöglichkeiten (neuere Wifi-Sticks oder Ethernet) zu setzen.

Letztlich wollte ich jedoch alle einfachen Möglichkeiten nicht unausgeschöpft lassen und begab mich auf die Suche nach einem aktuelleren Windows 7-Treiber. Diesen erhält man in der Tat auch. Die FRITZ!WLAN Stick AC 430 haben einen kleinen Flash-Speicher, welcher die Treiber bereithält. In meiner Ausführung waren das jedoch Treiber aus dem Jahr 2014. Lange vor MU-MIMO, Wifi 7 und 6 GHz.

Auf der FRITZ!-Seite findet man die aktuellsten Treiber für den FRITZ!WLAN Stick AC 430 – dort von 2018. Hat man diese einmal installiert, nach der manuellen Deinstallation der alten Treiber versteht sich, funktioneren die alten FRITZ!WLAN Stick AC 430 auch mit der neuesten FRITZ!Box 7690. Anwenderfreundlich ist es nicht und die Personen, welche mich hier um Hilfe baten, hätten das alleine nicht lösen können. Unklar ist auch weiterhin, was genau den Fehler auslöst. Klar ist jedoch, dass man für den FRITZ!WLAN Stick AC 430 besser auf die original mitgelieferten Treiber verzichten und stattdessen die neuesten nutzen sollte.

Die Direktlinks zu den Treibern sind aktuell hier: 64bit 32bit

Viel Erfolg!

von maltris am 18.06.2025 12:08


12.06.2025

Lars Moelleken (voku1987)

Image

.promptrc

.promptrc

Steal this hints. Fork it. Adapt it to your needs. Treat it like .dotfiles.


I asked the LLM to analyze my own chat history based on this prompt.
Here’s what it discovered – actual patterns from the way I ask.

🕳🐇 Follow the White Rabbit…

Ritual / MechanismPurposeLLM Behavior Implication
Follow the white rabbit...Marks a mode shift into high-context or metaphoric thinkingCognitive priming for complexity
Rest in the silent room, so that...Enforces pause, clears noise before actionSimulates deep work state
Do it until you reach the point of self-discovery as...Signals reflective closure, not just output endingPattern mining becomes part of task conclusion
Do it step by step and ask for confirmation after each...Makes iteration transparent and traceableLLM reasons in deltas, not blobs
Be brutally honest...
Blind Spot Analysis for...
Forces critique over complianceModel becomes adversarial partner, not affirmation loop

🧰 Dev Prompt Patterns

Prompt / PatternWhy is it used?When does it occur?Example from usageHidden lesson / implication
Ask before outputPrevent misalignment and irrelevant outputMulti-step or underspecified prompts“Ask clarifying questions before answering.”Intent beats guesswork.
Don’t output yet / wait for contextControl flow across longer workflowsStepwise tasks“Don’t output yet. I’ll give you the next step.”Turn-based prompting prevents premature commitment.
Challenge my assumptionsAvoid echo chamber answers and surface biasDesign reviews, audits, strategic decisions“Don’t mirror me — challenge my thinking.”Truth hides behind agreement.
Be brutally honestForces raw feedback without politenessRefactor reviews, architecture critique“Be brutally honest. Tear it apart.”Feedback without fluff moves faster.
Reflect before answeringPromotes self-checks, depth, and delayed outputAfter complex code or reasoning generation“Reflect before answering. What’s missing?”Thinking ≠ typing. Pause matters.
Add test cases / edge casesEnforces robustness and avoids happy-path trapsPost-codegen“Add tests for e.g. null, failure, and recursion cases.”Defense-first mindset, always.
Show the diff / refactor in stepsMakes changes visible and digestibleAll code rewrites“Show the diff. Step-by-step, no jumps.”Transparency over magic.
Normalize similar expressionsPushes abstraction and clarityMeta-reviews, taxonomy creation“Merge similar phrasing into one normalized pattern.”Cognitive compression = clarity.
Extract as markdown / table / listImproves scanability, memory, and structureOutput formatting“Return this as a markdown table.”Structure improves reuse and recall.
Unname this conceptStrips bias-inducing labelsAbstraction, philosophy, onboarding analysis“Unname this: what is it without the buzzword?”Naming narrows thinking.
Use production-ready codeAvoids toy/demo examplesAll codegen“Make it prod-safe. Logging, errors, types.”Real devs write for prod, not playgrounds.
Spot premature optimizationSaves time and prevents complexity driftDesign or early performance tweaks“Don’t optimize yet. Solve clearly first.”Simplicity first. Always.
Ask for sources / proofsPrevents hallucination or empty confidenceAny non-trivial claim“Show evidence or references.”Confidence ≠ correctness.
Do it again, but deeperStops shallow answers in their tracksWeak initial output“Nope. Go deeper, explain decisions.”First try ≠ final draft.
Prepare before generatingEnforces scope, prevents ramblingAny open-ended task“Prepare first. Don’t generate until scoped.”Planning ≠ waste. It’s speed insurance.
Merge context from aboveEnsures continuity and avoids repeating yourselfMulti-part workflows“Incorporate the context above into this next step.”Memory = leverage.

You can also combine them:

(change the keywords in the square brackets)

  • Deep dive into this research, this is our base for the full solution, so follow the white rabbit until you reached the point of self-discovery as [YOUR_PROJECT_HERE].
  • Do a blind spot analysis for [YOUR_RECOMMENDATIONS], be brutally honest, I deal with any kind of feedback and will use it for good.
  • Fix it as requested before and show the final files here in the chat, do it step by step and ask for confirmation after each file.
  • Do it, but rest in the silent room before you start so you can focus on the frontend style-guide I provided and work with a fresh mind.
Image

von voku am 12.06.2025 15:01


10.06.2025

Lars Moelleken (voku1987)

Image

My Custom GPTs – Nerd-Powered Motivation for Developers

My Custom GPTs – Nerd-Powered Motivation for Developers


Over the last few months, I’ve created a collection of custom GPTs: some dealing with programming challenges with personality and humor, … some others are more useful but less funny. 

Let’s dive in.

Practical enough to ship code.

Fun enough to stop hating your legacy base.


⚔ Legacy (PHP) Code GPTs – Refactoring Fun

Legacy code isn’t just technical — it’s emotional. These GPTs are built as archetypes, each channeling a different kind of energy.

NameThemeLink
Legacy-Code-Warrior ⚔Tactical grit—battle-tested refactoring.Link
Legacy-Code-Ork 🧌Smash spaghetti code with brute-force enthusiasm.Link
Legacy-Code-Spock 🖖Calm logic, precise refactoring. Live long and debug.Link
Legacy-Code-Jedi 🌐Minimalist wisdom, clean architecture. “Refactor, you must.”Link
Legacy-Code-Son-Goku 🐉Limitless energy. Kaio-Ken times SOLID!Link
Legacy-Code-Capsule-Corp 💊Inspired by Capsule Corporation’s ingenuity from Dragon Ball.Link
Legacy-Code-Wizzard 🪄Magical abstraction powers. You shall not pass… bad code!Link
Legacy-Code-Witch 🧙‍♀️Stylish, precise refactoring incantations.Link
Paw Patrol 🐾Small dogs with SOLID coding skills. Link

Use the one that fits your mood. Or switch between them mid-session to keep your motivation from flatlining.


🐘 (PHP) Coding GPTs – Clean and Typed

These GPTs don’t tell jokes—they ship code. They’re optimized for:

Name Purpose Link
PHP Copilot++ Typing enforcer + refactoring companion with nativ PHPStan and PHP-CS-Fixer Support via API. Link
PHP Copilot++ (next-gen) Aligned, brutal clarity for PHP systems, based on the SYNC Framework Link
PHP Architect Fact-based, ASYNC-driven PHP 8.x architect eliminating inefficiencies with brutal clarity. Link
PHP #autofix 1-click autofix for all your phpstan and CS woes. Link
Codelight Follows the Codelight Manifesto. Boringly code. Link

💎 Thinking Tools – Meta, Prompt Systems

These are not just for coding. They’re for thinking before you start typing. Seriously.

NameRoleLink
SyncAIKeeps you + AI in sync via Sync Process × Codelight PrinciplesLink
Sync Framework v1.1 (old)My first try for a coding framework, optimized for LLMs.Link
MetaPromptPattern reuse for your prompts. Less yak-shaving.Link
DeepDiveClean your mental cache. Focused thought flow.Link
Blind Spot | Prompt GeneratorHelps spot untested assumptions.Link
Sync Framework v1.2 | Prompt GeneratorPrompt builder for dev workflows.Link

🧨 Disruption GPTs – Radical Clarity, No Filters

These are not nice. They won’t coddle you. Consider yourself warned.

NameFunctionLink
HVEB5000: Clarity Without PermissionCognitive demolition tool. Link
Null TongueDistraction nullifier.Link
No-Bullshit ¦ Coding AssistantSenior dev with no time for your excuses.Link

Image

von voku am 10.06.2025 21:18


15.01.2025

(c3f2o)

Radikalisierung und Strategie: Der AfD-Bundesparteitag in Riesa als Zäsur

Am 11. und 12. Januar fand im sächsischen Riesa der Bundesparteitag der AfD statt, begleitet von massiven Protesten. Rund 600 Delegierte wählten unter anderem Partei- und Fraktionschefin Alice Weidel zur Kanzlerkandidatin und beschlossen die Aufnahme des Begriffs „Remigration“ ins Wahlprogramm. Weidels Rede sowie zahlreiche Anträge enthielten radikale Positionen, die öffentlich als Zeichen der weiteren Radikalisierung […]

von invia1200 am 15.01.2025 13:23


09.01.2025

(c3f2o)

Herr Merz: Schnauze halten!

Friedrich Merz will härter gegen straffallige Migrantenvorgehen. Warum? Weil ihm nichts Besseres einfällt, um in Schlagzeilen zu kommen. Der Mann, der einst „mehr Porsche wagen“ wollte, entdeckt plötzlich seine Liebe zum Polizeistaat – zumindest, wenn es um die anderen geht. Deutsche Täter? Steuerhinterzieher?Wirtschaftskriminelle? Keine Erwähnung. Aber der „kriminelle Ausländer“ – das zieht immer. Merz, der […]

von invia1200 am 09.01.2025 12:30


15.09.2024

Dominik Kupschke (bommi)

Protect against Display Name Spoofing with Rspamd

Email security is an ever-evolving field, and one of the persistent threats is display name spoofing. This attack involves forging the display name in an email to trick recipients into thinking the message is from a trusted source. While Rspamd is a powerful tool for combating spam and improving email security, it can be fine-tuned […]Image

von Dominik Kupschke am 15.09.2024 18:08


21.08.2024

Daniel Gestl (mcdaniels)

Wiki für Linuxinteressierte und Einsteiger – wiki.techgamegeek.com

In den letzten Wochen habe ich mich dazu entschieden, ein WIKI für Linuxinteressierte und Linuxanfänger zu bauen. Mittlerweile denke ich, dass ich die bisher eingepflegten Inhalte online stellen kann. Ich hoffe, dass ich damit dem einen oder anderen Umstiegswilligen etwas Starthilfe geben kann. Ihr könnt mir gerne hier oder auch auf Youtube eure Meinung, aber ... Weiterlesen

von Daniel am 21.08.2024 17:54


26.07.2024

Dominik Kupschke (bommi)

New Quad9 SSL Certificate – Mikrotik Devices Must Import New Root Certificate by July 29th

The DNS Provider Quad9 will change the certificates used by its „DNS over HTTPS“ service, those new certificates are signed from a different DigiCert Root CA as the one used before. For most systems and devices it will not be a problem, except for systems using Mikrotiks RouterOS. As Mikrotik RouterOS doesn’t ship a root […]Image

von Dominik Kupschke am 26.07.2024 07:07


18.07.2024

Daniel Gestl (mcdaniels)

Headtracking mit einer Webcam unter Linux – Opentrack / Neuralnet-Tracker (DEB-File / DEB-Installer Opentrack)

Ich habe mich in letzter Zeit, nicht zuletzt wegen Xplane 12, recht intensiv mit dem Thema Headtracking unter Linux beschäftigt. Leider ist es ja noch immer so, dass Naturalpoint (Thema TrackIR) Linux nicht berücksichtigt und somit Track IR meines Wissen nicht ohne Weiteres unter Linux in Betrieb zu nehmen ist und der „Linuxer“ deshalb eine ... Weiterlesen

von Daniel am 18.07.2024 17:48


16.12.2023

Stephan Tetzel (zefanja)

Einführung in Anki 23.10

Anki ist eine Karteikarten-App mit einem sehr sehr guten Algorithmus, der einem hilft, das Gelernte nicht mehr zu vergessen. Wie man lernt ohne zu Vergessen habe ich bereits in meinem letzten Artikel kurz beschrieben. Vor kurzem habe ich den Schülern meiner Schule eine Einführung in Anki gegeben. Dazu habe ich auch einige Videos und Tutorials aufgenommen.

Anki 23.10

Vor kurzem wurde eine neue Version von Anki veröffentlicht, die mindestens zwei tolle Features enthält.

Das eine ist ein neuer Algorithmus (FSRS), der aktuell einer der besten Spaced-Repetition-Algorithmen ist. Im Prinzip ist dieser Algorithmus das Herzstück von Anki, da er dafür verantwortlich ist, mir genau die Karten zu zeigen, die ich am vergessen bin. Je genauer eine App diesen Zeitpunkt berechnen kann, umso länger kann ich Dinge in meinem Gedächtnis behalten, ohne das ich sie vergesse.

Ein weiteres tolles Feature ist der neue Notiztyp „Bildverdeckung“, der jetzt nativ integriert wurde. Damit kann ich Teile von von Zeichnungen, Tabellen, Vorlesungsfolien etc. einfach abdecken und damit lernen. Auf die 3 wichtigsten Typen gehe ich in folgenden Video ein:

Einführung in Anki

Anki hat eine etwas steile Lernkurve, d.h. es dauert ein bisschen, bis man die App verstanden und durchdrungen hat. Auf der einen Seite ist sie sehr simpel aufgebaut, auf der anderen gleichzeitig sehr flexibel und erweiterbar. Daher ist es hilfreich, wenn man sich zu Beginn die ersten 5 Kapitel der Dokumentation durchliest.

Image

Für meine Schüler habe ich ein paar einleitende Videos erstellt, die die Schritte von der Installation bis zur ersten Benutzung beschreiben. Weitere folgen noch in den nächsten Wochen und Monaten.

Fazit

Anki ist eine tolle App, die das Lernen sehr effektiv und effizient macht. Es liegt nicht so sehr an der App an sich, sondern eher daran, dass sie auf einer wissenschaftlich sehr gut untersuchte Lerntechnik basiert. Die Meta-Studie von John Dunlosky vergleicht verschiedene beliebte Lerntechniken und kommt ganz klar zu dem Ergebnis, dass verteiltes Wiederholen und Selbsttests die Lerntechniken sind, die den größten Effekt habe.

Ich möchte jeden ermutigen, egal welchen Alters, sich einmal mit dieser App auseinanderzusetzen und den sogenannten „spacing effect“ an sich selbst zu erfahren. Lernen (fast) ohne zu vergessen ist möglich 🙂

Image

Der Beitrag Einführung in Anki 23.10 erschien zuerst auf zefanjas.

von zefanja am 16.12.2023 07:37


09.10.2023

Stephan Tetzel (zefanja)

Lernen ohne zu vergessen mit Anki

In den letzten Jahren habe ich mich immer wieder mit Erkenntnissen aus der Lernforschung auseinandergesetzt, um mein persönliches Lernen aber auch das Lernen an unserer Schule stetig zu verbessern. Ein Begriff, der mir dabei immer wieder begegnete, ist „Spaced Repetition“. Was das mit „Lernen ohne zu vergessen“ und mit Anki zu tun, möchte ich in diesem Artikel kurz beschreiben.

Was ist „Spaced Repetion“?

Spaced Repetition kann man am besten mit „zeitlich verteilte Wiederholung“ oder „verteilte Wiederholung“ übersetzen. Im Grunde geht es darum, dass ich Lerninhalte idealerweise dann wiederhole, kurz bevor ich sie vergessen habe. Wenn man Lernen als einen Kampf gegen das Vergessen bezeichnet, ist genau das wichtig: Wiederholen bevor mein Gedächtnis das Gelernte vergessen hat.

Immer dann, wenn ich Gelerntes wiederhole und mich daran erinnern kann, verlängert sich die „Speicherdauer“ in meinem Gedächtnis.

Wir alle kennen diesen Effekt. Wenn ich in meiner Schulzeit für einen Vokabeltest gelernt habe (meist am Tag davor 🙂 ), habe ich die meisten Vokabeln nach 3 Tagen wieder vergessen. Dass ist auch der Grund, warum ich mich nur noch an ganz wenige Französischvokabeln erinnern kann, obwohl ich 5 Jahre Sprachunterricht hatte. Hätte ich jedoch jeden Tag eine kleine Menge an Vokabeln gelernt und wiederholt, hätte ich mich wesentlich länger an sie erinnern können. Hier mal eine Grafik, die das Prinzip veranschaulicht:

Image

Zusammenfassung: Wenn ich etwas Gelerntes im richtigen Moment wiederhole, kann ich die „Speicherdauer“ im Langzeitgedächtnis deutlich verlängern.

Doch woher weiß ich, wann der richtige Zeitpunkt ist, um etwas zu wiederholen? Ich möchte ja nur die Dinge wiederholen, die ich gerade am Vergessen bin und nicht die, die ich noch weiß. Das ist eine sehr wichtige Frage. Wenn ich zu viele Dinge wiederhole (v.a. Lerninhalte, die ich noch weiß), steigt mein zeitlicher Aufwand für die Wiederholungen. Wenn ich zu wenige Lerninhalte wiederhole, steigt die Chance, dass ich Dinge vergesse und ich sie letztendlich neu lernen muss.

Anki

Genau an diesem Punkt kommt Anki ins Spiel. Anki ist eine Open Source Karteikartensoftware, die mir die Arbeit der Berechnung der richtigen Intervalle abnimmt, sodass ich nur noch das wiederhole, was ich kurz vor dem Vergessen bin. Das genau ist es, was diese Lernmethode so effizient macht, denn nun kann ich Dinge in weniger Zeit lernen bzw. mehr in der gleichen Zeit, die ich bisher zum Lernen aufgewendet habe.

Image

Anki ist eine sehr mächtige und flexible Anwendung, die sich durch viele Erweiterungen anpassen lässt. Das sorgt auch dafür, dass die Lernkurve für diese App etwas steiler ist. Deshalb empfehle ich, dass man sich am besten ein paar einführende Videos anschaut.

Karteikarten kann man sich entweder selbst erstellen oder nutzt eines der fertigen Lernpakete.

Lernen ohne zu vergessen – eine Utopie?

Persönlich nutze ich Anki seit ca. 1 Jahr. Hauptsächlich lerne ich damit Vokabeln (ja, auch wieder Französisch…), Bibelverse / -texte, Markierungen / Zitate aus Büchern, die ich gelesen habe und alles, was mich sonst noch so interessiert. Ich bin total begeistert von den Ergebnissen. Ich hätte nicht gedacht, dass es so leicht ist, sich Dinge langfristig im Gedächtnis zu behalten.

Wo ist der Haken? Damit das mit den Wiederholen zum richtigen Zeitpunkt auch klappt, muss ich meine Wiederholungen jeden Tag machen. Je nachdem wie viele Karten man lernt, können das 5 Minuten am Tag sein oder auch 2 Stunden. Der Schlüssel zum Erfolg ist die tägliche Wiederholung. Es dauert vielleicht ein paar Wochen bis man diese neue Gewohnheit in seinen Alltag integriert hat, aber man wird belohnt mit der Erfahrung, dass dieses Prinzip der verteilten Wiederholung wirklich funktioniert und unser Gedächtnis sich viele (sehr viele) Dinge merken kann.

Image

Der Beitrag Lernen ohne zu vergessen mit Anki erschien zuerst auf zefanjas.

von zefanja am 09.10.2023 05:00


06.05.2023

Martin Dosch (Dogge)

System-Mails von Linux über XMPP empfangen (v2)

2017 beschrieb ich wie man System-Mails von Linux über XMPP empfangen kann. Da ich mittlerweile sendxmpp nicht mehr nutze, weil ich damit viele Probleme hatte und mir selbst die Alternative go-sendxmpp geschrieben habe möchte ich mein neues Setup vorstellen.

⚠️ Warnung ⚠️
Auch 2023 gilt: Es könnte sein, dass wichtige oder sensible Informationen in den Systemmails enthalten sind. Deshalb würde ich davon abraten diese über fremde Server zu senden.
Außerdem speichere ich das Passwort des XMPP-Kontos im Script, weshalb ich dazu rate einen dezidierten XMPP account dafür zu nutzen und nicht etwa den eigenen privaten account.

Diese Anleitung geht von einem Debiansystem aus, kann aber sicherlich auch für andere Distributionen adaptiert werden. Ich selbst habe dieses Setup mit Debian bookworm eingerichtet.

Go-sendxmpp kann man entweder selbst bauen, als binary herunterladen oder aus den repos einiger distros installieren. Ich habe es aus den Debian repos installiert, da go-sendxmpp ab bookworm in den Debian repos vorhanden ist.

Nun wird das script /usr/local/bin/mail2xmpp mit folgendem Inhalt angelegt:

#!/bin/bash                   
go-sendxmpp -u $user -p $password recipient@example.org

Dabei sind $user und $password durch Benutzer und Passwort des Kontos, das zum Versand verwendet wird, zu ersetzen und recipient@example.org durch die eigene Adresse, auf der man die Nachrichten erhalten will. Es ist natürlich auch möglich mehrere Zieladressen anzugeben.

Danach wird exim zum Eigentümer der Datei gemacht:

# chown Debian-exim:Debian-exim /usr/local/bin/mail2xmpp

Ebenso werden die Berechtigungen angepasst:

# chmod 700 /usr/local/bin/mail2xmpp

Um zu definieren wie die Mails zugestellt werden muss die Datei /etc/aliases bearbeitet werden, wobei $user natürlich anzupassen ist (ich nutze dafür meinen Hauptbenutzer, man kann aber natürlich auch extra einen Benutzer für diesen Zweck anlegen):

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: $user
$user:,|/usr/local/bin/mail2xmpp

Damit die Systemmails per pipe weitergereicht werden können muss die Datei /etc/exim4/exim4.conf.localmacros ngelegt und diese Zeile eingetragen werden:

SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe

Anschließend werden die neuen Aliase eingelesen und exim4 neu gestartet:

# newaliases
# systemctl restart exim4.service

Abschließend wird noch getestet ob der Mailtransport über XMPP funktioniert:

$ echo "Das ist ein Test" | mail -s testmail root

Update 2023-05-06

Ein anonymer Kommentator (der Kommentar ist mittlerweile verschwunden. Wo ist er hin? Ich habe ihn wissentlich nicht gelöscht…) hat mich darauf hingewiesen, dass der Teil vor der pipe im script unnötig war und ich habe es dementsprechend angepasst.

06.05.2023 08:33


14.06.2017

Vinzenz Vietzke (vinz)

Mein XFCE Desktop im Juni 2017

Es wird Zeit, mal wieder meinen Desktop zu zeigen und wie ich ihn für mich angepasst habe. Sean hat das hier mit Xubuntu gemacht, ich übernehme die übersichtliche Struktur gerne.
Das Gerät ist ein ThinkPad x220 mit i5-2520M und 16GB RAM, einer 120GB Samsung 840 SSD, “gemoddetem” BIOS und 9-Zellen/73,3Wh Nachbauakku.

Konfiguration

  • Desktop
    • Distribution: Debian Testing (Stretch)
    • Desktopumgebung: Xfce
    • Window Manager: Xfwm4
  • Themes
    • GTK: Arc-Grey-Darker (GitHub)
    • Window Manager: Arc-Grey-Darker (GitHub)
    • Icons: Arc Limon (GitHub)
    • Cursors: Adwaita
    • Firefox: Arc-Darker (GitHub)
  • Schriften
    • Standard: Lato Regular 10
    • Window Manager: Lato Bold 10
    • Monospace: Monospace Regular 10
  • Wallpaper: Incense Stick in balinese rainforest (CC0, Artem Beliaikin)
  • Panel Plugins
    • Whisker-Menü (Homepage)
    • Benachrichtigungsfläche
    • Energieverwaltung
    • PulseAudio Plugin
    • Orage-Uhr
  • Programme im Tray
    • Audacious
    • Gajim
    • Liferea
    • Nextcloud Client (HowTo)
    • Redshift
    • Thunderbird (plus Firetray)

 

Tipps & Tricks

  • Symbol des Whisker-Menü auf debian-emblem-white setzen (siehe Screenshot)
  • Desktopsymbole deaktivieren
  • Panel: Alpha auf 85% setzen
  • Fensterknöpfe: Knopfbeschriftungen anzeigen deaktivieren, Griff anzeigen deaktivieren, Flache Knöpfe aktivieren (siehe Screenshot)
  • Super Key auf das Whiskermenu legen (ksuperkey installieren)
  • In der Fensterverwaltung unter “Anordnung der Knöpfe” alle außer Schließen entfernen.

 

Mehr Screenshots

Image Image Image Image Image Image

von vinzv am 14.06.2017 00:10


30.10.2016

Jürgen Braun (jaybe)

Image

Frankfurt Marathon

Rückblick: 25.10.2015 findet der Frankfurt Marathon statt, ich sitze gespannt vom Fernseher als Arne Gabius zu einem neuen deutschen Rekord läuft und finde es sehr interessant und spannend, zugleich aber auch verrückt und unmöglich, dies selbst einmal zu absolvieren. Einige Tage später wird der Termin für 2016 auf Facebook veröffentlicht und ich klicke auf „interessiert mich“, einfach um den Termin nicht zu verpassen, absolut ohne den Hauch eines Gedankens daran, dort vielleicht selbst zu starten. Entsprechend verblüfft reagiere ich auf beim nächsten Lauftraining auch auf die Frage eines Trainingspartners „Und, schon angemeldet“? Ich? Nein, das traue ich mir nicht zu. Andere schon: „Komm, bei Deinem Training, ein paar lange Läufe noch zur Vorbereitung, ist das kein Problem“. Soll ich wirklich? Könnte das klappen? Warum eigentlich nicht. Am 06.12.2015 war ich dann so weit:

Lieber Jürgen Braun,
vielen Dank für Deine Anmeldung zum Frankfurt Marathon 2016. Hier befinden sich alle wichtigen Daten und Angaben zu Deiner Anmeldung.

Die Bestätigungsmail des Veranstalters war da. Es kann los gehen…

Die Vorbereitung ist gut gelaufen, bei Lauftipps.ch habe ich mir einen Trainingsplan erstellen lassen, an den ich mich zumindest in den letzten 7 Wochen vor dem Wettkampf zu 100% gehalten habe. Die Wochen davor fanden noch Wettkämpfe in der Hessischen Triathlon-Liga statt und ich war noch eine Woche im Urlaub, hier musste ein wenig improvisiert und lange Läufe durch schnelle 10km im Wettkampf werden.

Nach meinen Problemen im Frühjahr mit ISG und Schienbeinkante achtete ich sehr auf irgendwelche Zeichen meines Körper und tatsächlich, drei Wochen vorm Wettkampf, am Ende des längsten Laufes über 33km waren sie da, Rückenschmerzen 🙁 Wie würden wohl im Wettkampf die noch ausstehenden 9km zu bewältigen sein, lies sich der Wettkampf überhaupt erfolgreich beenden? Durch die Erfahrung aus dem Frühjahr, war eigentlich klar, dass es vermutlich das ISG bzw. die Lendenmuskulatur sein muss, also wurde in der verbleibenden Zeit noch mehr Wert auf Übungen zur Rumpfstabilisierung gelegt.

Sonntag, 30.10.2016; Es ist so weit. Der Frankfurt Marathon steht an und ich stehe am Start.

Es ist frisch, vielleicht 7 oder 8°, jedoch bei strahlend blauem Himmel. Ich fühle mich gut vorbereitet, habe vier Gels für die Verpflegung dabei, plane mit einer Zielzeit von 3:45:00 h, also einem Schnitt von 5:20 min/km. Dann geht es los, ich starte mit einem Laufpartner aus dem Verein, doch er hat sich wohl umentschieden und will doch schneller als die 3:45:00 ins Ziel, nach ca. 2,5 km verabschiede ich mich und lasse ihn laufen, suche mir selbst mein Wohlfühltempo, das sich bei ca. 5:10 min/km einpendelt. Ich genieße die Atmosphäre an der Strecke, die Zuschauer – einige erkenne ich, als sie meinen Namen rufen – Marina und André, Cornell, Wolfgang, Thomas, …

WhatsApp Image 2016-10-30 at 12.38.51

Bis km 30 fühlt es sich gut an, sehr gut sogar, ich muss mich bremsen um nicht schneller zu werden, ich brauche die Kraft noch am Ende. Dann fängt es an, etwas zäher zu werden, bei km 35 stehen meine Frau und meine beiden Töchter, Ihre Rufe spornen mich an, noch 7km, ich versuche schneller zu werden, muss den Versuch aber aufgeben, noch 6km, noch 5km, ich hangle mich von km-Schild zu km-Schild, ab wann soll ich alles geben, sind 3:40:00 noch möglich? Plötzlich kommt Frank auf die Strecke gelaufen „Jürgen, Du hast es gleich geschafft. Du siehst etwas angestrengt aus, bist Du etwa gelaufen?“ :-D, spornt mich nochmals an und wünscht mir viel Erfolg. Ich beschleunige nochmals etwas und gebe alles was geht. Dann der Einlauf in die Festhalle, die Musik, die vielen Menschen, die Lichter, ich krame das #meinerstermarathon Band aus der Tasche, recke es in die Höhe und überquere die Ziellinie. GESCHAFFT!

Ich bin völlig außer Atem, langsam bewege ich mich in den Verpflegungsbereich, dehne Oberschenkel und Waden. Dann die Finisher-Medallie, 42,195 km in einer Zeit von 3:41:10. Ich bin sehr zufrieden, die Zielzeit unterboten, komplett durchgelaufen ohne Gehpausen (außer beim Trinken) und keine Schmerzen in den Gelenken oder der Muskulatur, auch der Rücken hat problemlos mitgemacht.

Im Verpflegungsbereich dann ein paar Becher Iso-Getränke, ein paar Apfelstückchen gegessen, etwas Mohnkuchen, alkoholfreies Weizenbier, mit den Vereinskollegen getroffen und abgeklatscht, dann zur Familie die mich schon freudig und stolz erwarten. Auf dem Weg zur S-Bahn merke ich schon, dass das Gehen etwas schwer fällt, Treppen steigen unangenehm ist und das Aufstehen nach dem Sitzen etwas länger dauert als sonst. Aber wie lautet der Spruch:

„Der Schmerz vergeht, der Stolz bleibt“


von jaybe am 30.10.2016 14:45


20.06.2020

Gerrit Kruse (MrGerardCruiz)

CentOS mit unklarem Supportstatus

Image

LTS Distributionen sind für mich das Maß der Dinge. Lange Produktlaufzeiten, wenig Wartungsaufwand und hohe Funktions- und Laufzeitstabilität sind nicht nur im Servereinsatz wichtig. Trotz hunderter Distributionen gibt es nur wenige LTS-Varianten (siehe: Linux - Eine sichere Basis). Mit CentOS steht hier ein weiteres Projekt vor dem Ausfall.

Natürlich sind Arch, Manjaro, Tumbleweed und wie sie alle heißen tolle Projekte und für den individuellen Desktopeinsatz gut geeignet. Ich glaube auch gerne, dass viele nie oder nur extrem selten Probleme bei Updates haben. Sie taugen aber kaum für den wartungsarmen Masseneinsatz, wo der Anwender nicht selbst die Administration übernehmen kann oder will.

Es braucht diese ständigen Updates eigentlich auch nicht. Linux auf dem Desktop ist im Wartungsmodus (siehe auch: Kein Ubuntu 20.04 Test). Ob ich nun GNOME Shell 3.32 oder 3.28 verwende macht weder funktional, noch von der Stabilität einen Unterschied. Das gleiche gilt für Plasma, LibreOffice und viele weitere Projekte. Relevant sind über eine lange Laufzeit lediglich neue Treiber für neue Hardware (entweder über massive Kernel-Modifikation durch den Distributor oder neue Kernel-Versionen) und neue Browser-Versionen.

Ich habe deshalb - sofern der Anwender mit GNOME klar kam - CentOS auch für den Desktop immer gemocht. 10 Jahre Ruhe am System sind einfach eine Hausnummer. Im Serverbereich dürfte CentOS neben Ubuntu LTS und Debian ebenfalls für viele eine maßgebliche Rolle spielen.

Wie Michael Kofler in seinem Blog aber zu recht thematisiert fällt CentOS 8 inzwischen für den Produktiveinsatz eigentlich aus. 71 und 48 Tage ohne Updates sind indiskutabel. Das Projekt scheint hier leider auch nicht willens oder fähig etwas zu ändern.

Im LTS Bereich wird es jetzt eng. Die sehr lange Supportdauern von 10 Jahren bietet nun nur noch SLED gegen eine - preislich allerdings vollkommen akzeptable - Subscription. Wer mit circa 3-5 Jahren leben kann hat noch Debian, openSUSE Leap und Ubuntu LTS zur Auswahl. Viel ist das nicht mehr. Gegebenenfalls muss man sich wirklich mit Oracle Linux beschäftigen, auch wenn sich dabei alle Nackenhaare aufstellen.


Bilder:
Einleitungsbild und Beitragsbild von von mohamed Hassan via pixabay

"

von Gerrit (postfach@curius.de) am 20.06.2020 11:27


09.07.2017

Bjoern Schiessle (BeS)

Image

Welcome to my new Homepage

Finally I moved my homepage a a complete static page powered by Hugo. Here I want to document some challenges I faced during the transition and how I solved them.

Basic setup

As already said I use Hugo to generate the static sites. My theme is based on Sustain. I did some changes and uploaded my version to GitLab.

I want to have all dependencies like fonts and JavaScript libraries locally, so this was one of the largest changes to the original theme. Further I added a easy way to add some share buttons to a blog post, like you can see at the end of this article. The theme also contains a nice and easy way to add presentations or general slide shows to the webpage, some examples can be seen here. The theme contains a example site which shows all this features.

Comments

This was one of the biggest challenges. I had some quite good discussion on my old blog powered by Wordpress so I don’t want to lose this feature completely. There are some solutions for static pages but non of these are satisfying. For example Staticman looks really promising. Sadly it only works with GitHub. Please let me know if you know something similar which doesn’t depend on GitHub.

For now I decided to do two things. By default I add a short text at the end of each article to tell people to send me a e-mail if they want to share or discuss their view on the topic. Additionally I can add to the meta data of each posts a link to a Friendica post. In this case the link will be added at the end of the article, inviting people to discuss the topic on this free, decentralised and federated network. I have chosen Friendica because it allows users to interact with my blog posts not only with a Friendica account but also with a Diaspora, GNU Social, Mastodon or Hubzilla account. If you have a account on one of these networks and want to get updates about new blog posts in order to participate in conversations around it, follow this Friendica account. I also created a more detailed description for people new to the world of free social networking.

Deployment

After all the questions above where answered and a first version of the new webpage was in place, I had to find a easy way to deploy it. I host the source code of my homepage on GitLab which has a nicely integrated CI service which can be used to deploy the webpage on any server.

Therefore we need to add a CI script called .gitlab-ci.yml to the root of the repository. This script needs to contain following (please adjust the paths):

image: publysher/hugo

before_script:
  - apt-get update
  - apt-get --yes --force-yes install git ssh rsync
  - git submodule update --init --recursive

pages:
  script:
  - hugo
  - mkdir "${HOME}/.ssh"
  - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts"
  - echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa"
  - chmod 700 "${HOME}/.ssh/id_rsa"
  - rsync -hrvz --delete --exclude=_ public/ schiesbn@schiessle.org:/home/schiesbn/websites/schiessle.org/htdocs/
  artifacts:
    paths:
    - public
  only:
  - master

We need to create a ssh key-pair to deploy the webpage. For security reasons it is highly recommend to create a ssh key used only for the deployment.

The variables SSH_HOST_KEY and SSH_PRIVATE_KEY need to be set at GitLab in the CI settings. SSH_PRIVATE_KEY contains the private ssh key which is located in the ~/.ssh directory.

To get the right value for SSH_HOST_KEY, we run ssh-keyscan <our-webpage-host>. Once we executed that command, we should see something similar to schiessle.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtwsSpeNV.... Let’s copy this to the SSH_HOST_KEY value in our GitLab settings.

Finally we need to copy the public ssh key to the .ssh/authorized_keys file on the web-server to allow GitLab to access it.

Now we are already done. The next time we push some changes to the Github repository GitLab will build the page and sync it to the web-server.

Using the private key stored in the GitLab settings allows everyone with access to the key to login to our web-server. Something we don’t want. Therefore I recommend to limit the ssh key to only this one rsync command from the .gitlab-ci.yml file. In order to do this, we need to find the exact command send to the web-server by adding -e'ssh -v' to the rsync command.

Executing the rsync command with the additional option should result in something like:

debug1: Sending command: rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/

we copy this command to create following .ssh/authorized_keys entry:

command="rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Sf/PDty0d0SQPg9b+Duc18RxPGaBKMzlKR0t1Jz+0eMhTkXRDlBMrrkMIdXJFfJTcofh2nyklp9akUnKA4mRBVH6yWHI+j0aDIf5sSC5/iHutXyGZrLih/oMJdkPbzN2+6fs2iTQfI/Y6fYjbMZ+drmTVnQFxWN8D+9qTl49BmfZk6yA1Q2ECIljpcPTld7206+uaLyLDjtYgm90cSivrBTsC4jlkkwwYnCZo+mYK4mwI3On1thV96AYDgnOqCn3Ay9xiemp7jYmMT99JhKISSS2WNQt2p4fVxwJIa6gWuZsgvquP10688aN3a222EfMe25RN+x0+RoRpSW3zdBd

Now it is no longer possible to use the private key, stored at GitLab to login to the web-server or to perform any other command than this specific rsync command.

Interesting observation

I run this static webpage now for a few weeks. During this weeks I got quite some email from people interested in some topic I write about in my blog. This are not new blog articles, but posts which where already online for quite some time. Somehow it looks like more people find this articles after the transition to a static site. Maybe search engines rate the static site higher than the old Wordpress page? I don’t know, maybe it is just a coincidence… but interesting.

von Björn Schießle (bjoern@schiessle.org) am 09.07.2017 09:04


08.04.2018

Gerrit Kruse (MrGerardCruiz)

Datenabfluss bei Facebook - Eine Nachbetrachtung

Image

Bild von geralt via pixabay / Lizenz: CC0 Creative Commons

Facebook hatte jüngst mit schlechter Presse zu kämpfen. Länder- und medienübergreifend artikulierte sich massive Kritik an der Praxis wie dort mit Daten umgegangen wird. Manche Journalisten sehen darin die größte Krise in der nicht mehr ganz so jungen Geschichte des sozialen Netzwerks. Die Aktienmärkte sahen das vergangene Woche nicht unähnlich wenn man sich die Entwicklung des Kurses von Facebook anschaut.

Viele Datenschützer konnten sich eine gewisse Häme nicht verkneifen. Gehört umfassende Kritik an Facebook doch zum Standard-Repertoire von datenschutzbewussten Menschen (und solchen, die sich dafür halten). Die empfohlene Lösung war dann natürlich wie erwartet radikal. Verlasst endlich Facebook schallte es aus allen Kommentarspalten und Blogs.

In der Printausgabe der Süddeutschen Zeitung konnte man dazu vergangene Woche einen schönen Vergleich lesen. Sinngemäß ging es darum, dass die Aufforderung Facebook zu verlassen, weil man mit der Datenhandhabung moderner IT-Unternehmen unzufrieden ist, genau so erfolgversprechend ist wie das Essen einzustellen, weil man mit der Lebensmittelindustrie unzufrieden ist. Konsequent aber letztlich aussichtslos weil es an der Lebenswirklichkeit vorbei geht.

Genau dies beschreibt den Einfluss der Datenschützer auf das Verhalten der Masse. Radikal, konsequent und weitestgehend ignoriert, da wirklichkeitsfern. Bei diesem Thema und bei vielen anderen auch.

Es ist keineswegs so, dass Facebook das Verlangen für sein Produkt erst bei den Menschen wecken musste. Etwas was man den Silicon Valley Firmen gerne nachsagt. In einer hochgradig mobilen Gesellschaft bedient Facebook einfach ein Bedürfnis. Es vereinfacht soziale Vernetzung über große Zeiträume und Distanzen einfach enorm, viele Menschen leben halt nicht mehr in einer Welt, in der man alle Freunde im Vereinslokal trifft. Ein Verlassen des sozialen Netzwerks ist daher für viele Anwender mit einem nicht unerheblichen sozialen Einschnitt verbunden. Das betrifft nicht nur die Selbstdarsteller auf der Timeline, sondern eben auch die Gruppen und den Messenger.

Außerdem ist ein großer Trugschluss, dass man Facebook einfach den Rücken kehren kann. Man muss auch alle zugehörigen Dienste, am bekanntesten darunter sind sicher WhatsApp und Instagram, verlassen und trotzdem kann Facebook über die Vernetzung mit unzähligen Internetseiten - der Like-Button macht es möglich - noch ein Profil erstellen.

Letztlich übt man sich zwar in digitaler Selbstverstümmelung, erzielt aber nicht mal den erwünschten Effekt.

Zielführender sind da sicher Maßnahmen wie der kürzlich vorgestellte Mozilla Facebook Container. Er ermöglicht Teilhabe aber kontrolliert ein bisschen besser, was Facebook außerhalb des Netzwerks noch über einen sammeln kann. Viele weitere Maßnahmen wie ein Mehr-Browser-Konzept, sinnvoll ausgewählte Addons und reflektierte Handhabung des Netzwerks können es Facebook erschweren unerwünscht Daten zu sammeln.

Keine dieser Maßnahmen hätte den Datenabfluss von Facebook an Dritte verhindern können. Es ist auch nicht die Aufgabe des Bürgers paranoid seine Aktivitäten gegenüber den IT-Giganten zu verschleiern, sondern die Politik muss die Daten der Bürger entschieden gegen Missbrauch schützen und Verstöße hart bestrafen. Dafür kann der Bürger an der Wahlurne stimmen. Einfach mal bei der Wahl den Digitalthemen mehr Priorität einräumen, anstatt in den Kommentarspalten gegen Facebook zu wettern. Die deutsche Regierung ist nämlich keineswegs so rigoros im Datenschutz, wie sie sich jetzt medial gibt.

von Cruiz (mailer@curius.de) am 08.04.2018 13:05


01.02.2009

Bjoern Schiessle (BeS)

Image

An awesome event is over: KDE 4.2 Release Party and Fellowship Meeting at Stuttgart

At Friday, 30.Jan.09 we had a joint event between KDE and the Fellowship of the Free Software Foundation Europe (FSFE) and it was simply awesome! Beside a lot of KDE and FSFE people we had a lot of visitors and at the end we were about 40 people! All interested in KDE 4.2 and Free Software.

Image

At the beginning Frederik started with an introduction and showed all the new and cool things in KDE 4.2. After that i gave a talk about the work of FSFE, especially in 2008, explained the role of the Fellowship for FSFE and highlighted some cool activities from our Fellows. My slides can be found here (German). I think i could attract some people and would be really happy to see some new faces at our next Fellowship meeting (probably somewhen in March). If you don’t want to miss it, subscribe to our mailing list for South Germany.

Image

After my talk we made a small break and than Frank continued with a very interesting talk about the KDE community and how to get involved as a developer, writer, artist or user. Last but not least Sven talked about the new version of Amarok and what we can expect from the new release.

This was the official part. Now the party started and we had a lot of fun and many interesting discussions between KDE developers and users, FSFE Fellows and all the other people who joined us at this evening. We also discussed some possible activities for the Fellowship Group Stuttgart. Some Fellows seems to be quite interested in the topic “Free Software in school and education”. I also think that this is a really important topic. Remember, the pupils from today are the decision makers from tomorrow.

Image

As it becomes later a small group of people survived. One of them was Martin Konold, a KDE Developer from the very first days of KDE. He told us a lot of interesting and funny stories about the beginning of KDE and the development of the Free Software desktop.

At 2:30 at night a great event was over. I really want to thank Frederik for his great help in organising this event and all the other KDE people who helped to make this event that awesome! It was a lot of fun and a great cooperation between KDE and FSFE people! Looking forward for the next opportunity to organise such a great event!

More pictures can be found here.

von Björn Schießle (bjoern@schiessle.org) am 01.02.2009 16:30


04.07.2018

(Meillo)

2018-07-05

2018-07-05



A new ssh login attack wave after the previous one had ended ...




http://marmaro.de/lue/        markus schnalke <meillo@marmaro.de>

04.07.2018 22:00


07.12.2019

Malte Kiefer (beLI3VeR)

Threema Lizenzen zu verschenken

Wie in den letzten Jahren werde ich auch dieses Jahr wieder Threema Android Lizenzen verschenken. Dieses Jahr werde ich 5 Lizenzen verschenken. Dazu erhalten die Gewinner oder Glücklichen von mir einen Lzenzschlüssel, mit dem sie auf der Webseite von Threema dann den Android Client nach Eingabe des Lizenzschlüssel herunterladen können.

Es ist nicht möglich, damit Threema vom PlayStore sondern nur aus dem Threema Store herunterzuladen.

Teilnahme

Die Teilnahme ist ganz einfach. Die ersten 5 Nutzer die mich via XMPP / Jabber anschreiben wird (pr3ach3r@trashserver.net) und die folgenden Fragen richtig beantworten kann:

1.) Aus welchem Land kommt Threema? 2.) Was bedeuten die 3 grünen Punkte bei einem Threema Kontakt? 3.) Was ist der Threema Safe?

Ich freue mich auf eure Einsendungen. Ich möchte festhalten ich stehe in keine Zusammenhang mit Threema. Ich kaufe die Lizenzen zum vollen Preis und dieses soll auch keine Werbaktion für mich oder Threema sein. Ich will nur einen kleinen Teil zu mehr Datenschutz und Sicherheit beitragen.

von Malte Kiefer (malte.kiefer@mailgermania.de) am 07.12.2019 00:00


18.01.2019

(thoys)

Sprachassistenten und Datenschutz

https://www.heise.de/newsticker/meldung/Datenkraken-im-Wohnzimmer-Ist-die-Privatsphaere-noch-zu-retten-4270545.html

Momentan werden sämtliche (fast) Spracheingaben an die Hersteller übermittelt und dort verarbeitet. Dieser Artikel zeigt, dass es auch anders gehen könnte.

von Timotheus am 18.01.2019 21:01


07.03.2018

(Meillo)

2018-03-08

2018-03-08



If you want PCRE on the command line but your  grep(1)  does  not
offer  `-P'  (*not* offering it is what it *should* do!), you can
use this one:

     perlgrep() {
             perl -e 'my $re = shift; print grep { /$re/ } <>;' "$@"
     }

[0]



Discovered  some interesting facts about the GIF format.  [1] You
*are* able to use more than 256 colors, just not within one block
...  but  you can use multiple blocks for building True Color GIF
images!


[0]  https://debianforum.de/forum/viewtopic.php?f=34&t=168942#p1167421
[1]  https://debianforum.de/forum/viewtopic.php?f=29&t=168943&p=1167436#p1167436


http://marmaro.de/lue/        markus schnalke <meillo@marmaro.de>

07.03.2018 23:00


18.01.2013

Vinzenz Vietzke (vinz)

Tor und Tor-Browser in Fedora 17/18 installieren

Jamie Nguyen hat Tor und Tor-Browser für Fedora paketiert. Um diese Pakete über sein Repository zu bekommen, installiert ihr euch entweder das Release-Package oder macht das von Hand:

wget https://jamielinux.com/pub/jamielinux-tor-release.noarch.rpm
yum install ./jamielinux-tor-release.noarch.rpm

Danach installiert ihr alle nötigen Pakete, aktiviert und startet Tor. Alle Pakete sind GPG-signiert.

yum install tor tor-browser tor-browser-selinux
systemctl enable tor.service
systemctl start tor.service

Optional könnt ihr mit "tor-browser-selinux" die Unterstützung für SELinux installieren.

von vinzv am 18.01.2013 09:52


25.07.2017

Christian Schmitt (slater)

WTF

16 Grad C im Juli!???!

von Slater am 25.07.2017 09:02


23.03.2020

(thoys)

Corona? Da gibts doch sicher was von Moodle

Dann folge ich doch mal dem Aufruf von Jürgen von BITBlokes und haue in die Tasten.
Ich bin Medieninformatiklehrer an einer einzügigen Privatschule und meine Coronaferien (achtung Sarkasmus) begannen folgendermaßen:

Am Freitag, den 13. März wurde klar, dass Präsenzunterricht an unserer Schule die nächsten Wochen nicht mehr stattfinden wird.

Freitag 13. März, ab 19 Uhr
Die Lernplattform Moodle (Learning Management Plattform) wurde aus anderen Gründen bereits auf unserem neuen Server installiert, jedoch in keiner Weise konfiguriert. Diese Arbeit stand nun an und es zeigt sich, dass keine Benutzer/innen, außer dem Admin, in Moodle registriert sind.
Fachlich: Keine LDAP-Anbindung an unsere bestehende Benutzerdatenbank.

Samstag 14. März
Die Konfiguration von Moodle stand im Vordergrund. Es ist nachvollziehbar, dass sich das Gefühl von „wir haben nur eine Chance“ im Bauch breit machte. Denn eine nicht funktionierende Plattform wäre nach wenigen Tagen so leer, wie unsere Schulgebäude.
Es findet eine Gesamtkonferenz statt, die Beschließt, dass Moodle offiziell zur Lernplattform wird.

Sonntag 15. März
Von nun an sind Mitglieder der Schüleradmins tatkräftig mit an Bord. Die Daten der Schüler/innen der Oberstufe und die Zugangsdaten der Lehrer/innen werden aufbereitet und in Tabellen übertragen, damit sie in Moodle eingefügt werden können.
Fachlich: CSV Dateien mit der richtigen Syntax erstellen.
Ohne die LDAP Anbindung haben wir keinen Zugriff auf aktuelle Passwörter des Schüler-Lehrer-Netzwerks. Zudem werden nur bestimmte Arten von Nachrichten von Moodle per Mail versendet, andere stranden im Postausgang. Mit viel Hirnschmalz, viel Einsatz und wenig Mittagessen wurden jedoch alle Probleme soweit gelöst oder umgangen, dass am Montag die Schüler/innen und Kolleginnen kommen können.
Stand jetzt: Die Plattform und die App, sowie die Bedienung per Browser funktionieren für Schüler/innen und Lehrer/innen. Alle, in der Oberstufenkonferenz besprochenen Kurse, sind angelegt und mit den entsprechenden Trainern (Ausdruck für Lehrer/innen in Moodle) versehen.

Montag 16. März
8:30 Uhr
Die Schüler/innen kommen. Jeweils eine Halbe klasse zur Installation und Einrichtung der App und die andere Hälfte zur Einführung in die Bedienung von Moodle am Computer. Nach einer halben Stunde werden die Gruppen getauscht und nach wieder eine halben Stunde kommt die nächste Klasse.
Was ist das eigentlich: Pause?

13:30 Uhr
Bis auf wenige Ausnahmen installierten alle Schüler/innen der Oberstufe die App, änderten ihr Passwort und lernten den rudimentären Umgang mit Moodle.

14:15 Uhr
Erste Schulung der Kolleg/innen.

17:45 Uhr
Vorstandssitzung – hier wurden im Vorgespräch und auch während des Sitzung mögliche Datenschutzbedenken durch Moodle in den Blick genommen. Da die Plattform auf unserem eigenen Server läuft und auch das Nachrichtensystem das eigene Haus nicht verlässt, deckt unser – in dieser Konferenz verabschiedete – allgemeines Datenschutz-Konzept alle datenschutzrechtlichen Bedenken ab.

Dienstag 17. März
Die ersten Schüler/innen starten in die Kurse, schreiben Nachrichten mit Fragen und geben erste Ergebnisse ab. Es scheint vieles zu funktionieren – Puh!
Eine zweite, gut besuchte Einführung für Lehrer/innen findet statt.
Kurse werden mit viel Fleiß von Lehrer/innen mit Inhalten befüllt und Schüler/innen arbeiten sich in die Plattform und die Inhalte ein.

Mittwoch 18. März
Verschnaufen von Seiten der Moodle-Verantwortlichen. Die Plattform läuft nicht perfekt, aber sie läuft so gut, dass sie genutzt werden kann. Ausschlafen!

Die Todo-Liste beinhaltet nun die Hilfestellung für Lehrer/innen und Schüler/innen und die Beschäftigung mit der Technik hinter Moodle. Backup, PHP- und andere Server-Einstellungen und die Konfigurationen der Plattform werden nun in Ruhe angegangen.

Donnerstag 19. März
Es läuft einfach.

Freitag 20. März
07:20 Uhr
„The service is not available. Please try again later.“
Das bedeutet so viel, wie die Hölle friert ein. Moodle ist down. Aber die Supportfirma das erste Mal in der Woche erreichbar. Schön ist, dass sie vor 10 Minuten noch ging, die Ausfallzeit ist also gering, wenn es jetzt schnell repariert wird. Bis ca. 12:30 Uhr.

Mal sehen, wie es weiter geht….

Bildquelle von Wikipedia: Von Moodle.org – https://moodle.org/logo/ https://moodle.org/logo/moodle-logo.svg, GPL, Link

von Timotheus am 23.03.2020 16:08


24.03.2014

Manuel Kaderli (suntsu)

Be careful using ThreadStatic in Visual Studio unit tests

Given is a ThreadStatic field which is set to empty in the static constructor, and set by a public instance method:

    public class TestClass
    {
        [ThreadStatic] 
        private static string threadStaticValue;
        static TestClass()
        {
            threadStaticValue = "";
        }
        public void SetThreadStaticValue(string value)
        {
            threadStaticValue = value;
        }
        public string GetThreadStaticValue()
        {
            return threadStaticValue;
        }
    }

Now two unit tests check whether the threadStaticValue is set correct.

    [TestClass]
    public class ThreadStaticTest
    {
        [TestMethod]
        public void WithThreadStaticValueSetTest()
        {
            Debug.WriteLine("Thread id: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId);
            TestClass tc = new TestClass();
            tc.SetThreadStaticValue("foo");
            Assert.AreSame(tc.GetThreadStaticValue(), "foo");
        }
        [TestMethod]
        public void WithThreadStaticValueNotSetTest()
        {
            Debug.WriteLine("Thread id: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId);
            TestClass tc = new TestClass();
            Assert.AreSame(tc.GetThreadStaticValue(), "");
        }
    }

Those tests will fail(good) or pass(bad) depending of whether the test engine will reuse the same thread.

Executed a second time, the result could be different.

Solution:

  1. Don't use ThreadStatic at all
  2. Make sure the ThreadStatic fields are initialized correctly before using them

von suntsu (nospam@example.com) am 24.03.2014 11:28


13.11.2017

Christian Schmitt (slater)

Amazone Prime Video mit Linux Mint

Hej zusammen…

Ich habe heute mit meiner frischen installation von Linux Mint gekämpft… Prime Vido wollte nicht so wie ich es wollte…

Erst mal das was nicht geklappt hat:

Die ganzen Tips mit installiere HAL Lib über verschiedene wege…
Silverlight mit Wine…
Diverse Einstellung (hatten auch alle mit hal-libery zu tun)

Geholfen hat zum Schluss Mint selber!

Über das Start-Menü habe ich den Menüpunkt Multimedia ausgewählt. Dort wurde angeboten das Mint alles was Multimedia zu tun hat von alleine installiert… Jetzt läuft das mit Amazone Prime Video. Leider weiß ich nicht was alles am System jetzt geändert wurde von alleine… Mehdienwiedergabe, Rythmbox und VLC Player sind als einziges über das Multimedia Menü zusätzlich sichtbar und vorerst die einzigen Änderung die durchgeführt wurden.

Wenn ich noch was finde, was geädert wurde, werde ich es hier aktualisieren…

von Slater am 13.11.2017 19:00


08.05.2018

Malte Kiefer (beLI3VeR)

Kommentare mit Github

Ich bin ein großer Freund vom Datenschutz, leider unterstützt Hugo nur disqus, was alles andere als freundlich zum Datenschutz ist. Also gab es die letzten Monate nie eine Kommentar Funktion, das hat sich jetzt geändert.

Ich bin durch Zufall auf den Artikel von Don Williamson gestoßen, der es mir erlaubt eine Kommentar Funktion für meine Artikel durch Github anzubieten.

Konfiguration

Als erstes legen wir eine Datei comments.html im Ordner themes/THEME_NAME/layouts/partials/ mit folgenden Inhalt an:

<div id="gh-comments">
          <h2>Kommentare</h2>
              <div id="gh-comments-list"></div>
                  <a href="javascript:void(0)" id="gh-load-comments" class="btn" style="display:none">Load more comments</a>
</div>

   <script type="text/javascript" data-ghid="{{ $.Params.ghcommentid }}" src="{{ .Site.BaseURL }}js/github-comments.js"></script>

Als nächstes brauchen wir jetzt noch die JS Datei, die für uns die ganze Arbeit macht themes/THEME_NAME/static/js/github-comments.js mit folgenden Inhalt:

// use of ajax vs getJSON for headers use to get markdown (body vs body_htmml)
// todo: pages, configure issue url, open in new window?
//

var this_js_script = $('script[src*=github-comments]');


var ghid = this_js_script.attr('data-ghid');   
if (typeof ghid === "undefined" ) {
   var ghid = '0';
}

DoGithubComments(ghid);

var CurrentPage = 0;

function ParseLinkHeader(link)
{
    var entries = link.split(",");
    var links = { };
    for (var i in entries)
    {
        var entry = entries[i];
        var link = { };
        link.name = entry.match(/rel=\"([^\"]*)/)[1];
        link.url = entry.match(/<([^>]*)/)[1];
        link.page = entry.match(/page=(\d+).*$/)[1];
        links[link.name] = link;
    }
    return links;
}

function DoGithubComments(comment_id, page_id)
{
    var repo_name = "beli3ver/malte-kiefer.de";

    if (page_id === undefined)
        page_id = 1;

    var api_url = "https://api.github.com/repos/" + repo_name;
    var api_issue_url = api_url + "/issues/" + comment_id;
    var api_comments_url = api_url + "/issues/" + comment_id + "/comments" + "?page=" + page_id;

    var url = "https://github.com/beli3ver/malte-kiefer.de/issues/" + comment_id;

    $(document).ready(function ()
    {
        $.getJSON(api_issue_url, function(data) {
            NbComments = data.comments;
        });

        $.ajax(api_comments_url, {
            headers: {Accept: "application/vnd.github.v3.html+json"},
            dataType: "json",
            success: function(comments, textStatus, jqXHR) {

                // Add post button to first page
                if (page_id == 1)
                    $("#gh-comments-list").append("<a href='" + url + "#new_comment_field' rel='nofollow' class='btn'>Füge eine Kommentar hinzu</a>");

                // Individual comments
                $.each(comments, function(i, comment) {

                    var date = new Date(comment.created_at);

                    var t = "<div id='gh-comment'>";
                    t += "<img src='" + comment.user.avatar_url + "' width='24px'>";
                    t += "<b><a href='" + comment.user.html_url + "'>" + comment.user.login + "</a></b>";
                    t += " posted at ";
                    t += "<em>" + date.toUTCString() + "</em>";
                    t += "<div id='gh-comment-hr'></div>";
                    t += comment.body_html;
                    t += "</div>";
                    $("#gh-comments-list").append(t);
                });

                // Setup comments button if there are more pages to display
                var links = ParseLinkHeader(jqXHR.getResponseHeader("Link"));
                if ("next" in links)
                {
                    $("#gh-load-comments").attr("onclick", "DoGithubComments(" + comment_id + "," + (page_id + 1) + ");");
                    $("#gh-load-comments").show();
                }
                else
                {
                    $("#gh-load-comments").hide();
                }
            },
            error: function() {
                $("#gh-comments-list").append("Kommentarfunktion für diesen Beitrag nicht aktiviert!");
            }
        });
    });
}

Jetzt müssen die Links in der Datei angepasst werden. Ihr müsst eine eigne Repo anlegen bei Github und hier in der Datei anpassen. Achtung: Wir brauchen auch jQuery!. jQuery sollte umbedingt im <head></head> geladen werden.

Zum Schluss noch das Template für die Beitragsdatei anpassen (themes/THEME_NAME/layouts/_default/single.html) und den folgenden Teil for dem Aufruf des <footer></footer> Tags einfügen:

{{ partial "comments.html" . }}

Um jetzt die Kommentarfunktion zu nutzen, ein entsprechendes issue bei Github eröffnen, die ID merken. Wenn ihr dann einen neuen Beitrag erstellt, müsst ihr vor den "---" folgendes einfügen:

ghcommentid: ID

Und das wars, nun habt ihr und ich eine Kommentarfunktion.

CSP

Damit ihr diese Funktion mit CSP nutzen könnt, müssen folgende Einstellungen gesetzt sein:

img-src 'self' https://*.githubusercontent.com;
connect-src 'self' https://*.github.com

von Malte Kiefer (malte.kiefer@mailgermania.de) am 08.05.2018 00:00


24.06.2016

Helmut Roewer (Dunkelangst)

Image

HKG✈KHH

Trip 35

Flight KA 450 from HKG to KHH

  • Flight 89: Hong Kong International Airport to Kaohsiung International Airport
  • Airbus A 330-300 – Dragonair
  • planed duration: 1h 25min
  • See also the itinerary to get an overview.
Image

von Helmut am 24.06.2016 19:46


18.08.2010

Jürgen Braun (jaybe)

Image

Android Tablet

Auch wenn ich den Hype um das Apple iPad nicht nachvollziehen kann (es funktioniert gut und sieht schick aus, ist mir aber zu teuer und bevormundet einen bei der Nutzung), so finde ich das Konzept eines Tablets doch ganz reizvoll. Wichtig ist jedoch, dass man sich über den Einsatzzweck klar wird. Für mich soll es keinen Ersatz für PC/Notebook/Netbook darstellen, sondern ein Gerät sein, mit dem man gemütlich auf der Couch seine Mails checken, in Foren stöbern, Facebook Nachrichten lesen, … also hauptsächlich Daten im Internet konsumieren kann.
Für 179.-€ war nun ein Tablet mit Android 2.1 angekündigt. Die Beschaffung gestaltete sich ein wenig schwierig und dauerte etwas länger, da das Gerät nicht wie angekündigt bereits montags erhältlich war, sondern erst eine Woche später als verfügbar gelistet wurde und bestellt werden konnte. In der Zwischenzeit waren auch erste Erfahrungsberichte von Benutzern aufgetaucht. Die Bandbreite war gewohnt groß und begann bei „der letzte Schrott“. Das folgende Fazit eines Benutzers ermutigte mich jedoch dazu, mir solch ein Gerät zu bestellen:

..ich sags mal ganz unverblümt
Das Ding ist nichts für Leute die den Ipad Killer erwartet haben und davon ausgehen das alles „out of the box“ für €179.- funktioniert..

Für alle anderen, die spaß an linux haben, lässt sich da sicher noch einiges machen bzw. fehlende funktionen nachrüsten.

Am Wochenende wurde das Gerät dann geliefert, die Inbetriebnahme musste jedoch bis Sonntag Abend warten.
Einloggen in das WLAN, Einrichten von Googlemail, Zugriff auf den eigenen Mailserver, Surfen im Web und die installierten Applikationen für Google Maps und YouTube funktionierten problemlos. Das Touch-Display lässt sich schwer bedienen, vor allem das Scrollen ist etwas umständlich, mit resistiver Technologie aber auch nur schwer umsetzbar, das funktioniert bei meinem Garmin-Navi aber auch nicht besonders.
Hardware

Billig wirkendes Plastik, vier Buttons auf der Gehäuserückseite für Zurück, Home, Suchen und Menü fühlen sich nicht besonders an und man muss sich die Position merken, da man sie nicht sieht.
Software

  • Browser: Eingabe über Touchscreen hakelig auch bei Verwendung des Eingabestiftes. Lädt und stellt die Webseiten recht flott dar.
  • Mail: Konfiguration von mehreren Mailservern möglich, Zugriff per POP3 oder IMAP
  • Google Maps: schnelle Darstellung der Karten, Layer für Satellitenbild und Wikipedia einblendbar. Bei Wikipedia werden „W“s eingeblendet, auf die man direkt klicken und Infos aus Wikipedia abrufen kann
  • Google Mail: direkte Verknüpfung mit meinem Google Mail Account, funktioniert einfach.
  • YouTube Player: direkte Verknüpfung mit meinem YouTube Account: Playlisten, Favoriten, … werden angezeigt. Suche ist möglich, Abspielen in voller Auflösung funktioniert sehr gut.
  • Android Market: Zuerst nicht gestartet, dann zwar gestartet, man konnte suchen und „installieren“, der Download kommt aber nicht zum Ende und es wird nichts installiert. Ein bekanntes Problem, es liegt wohl keine offizielle Google-ID vor.

Bisheriges Fazit: Wenn man nicht tippen muss, sondern sich auf Lesen/Sehen/Hören beschränkt, funktioniert das Tablet. Für die eingeschränkte mitgelieferte Software hätte ich es wohl nicht gekauft, ABER es gibt eine Seite mit Howtos, da wird erklärt, wie man das Gerät patchen, den Market aktivieren, auf alternative Markets umsteigen oder direkt die APKs installieren kann. Und wenn das dann funktioniert, kann es ein ganz brauchbares Gerät werden.


von jaybe am 18.08.2010 18:24


Willkommen!
Forum
Chat
Wiki/Tipps
Planet
Bildergalerie
Links
Twitter
dieses und jenes
Blogger
(BigOlly) (feed)
(Lord_Carlos und mweinelt) (feed)
(Meillo) (feed)
(Trurl) (feed)
(c3f2o) (feed)
(emge) (feed)
(thoys) (feed)
(trompetenkaefer) (feed)
Andre Nitschke (gnude) (feed)
Axel Hellinger (cryptolegal) (feed)
Beni Goll (Bennerl) (feed)
Bernd Dau (whisper) (feed)
Bert Radke (bert) (feed)
Bjoern Schiessle (BeS) (feed)
Christian Imhorst (immi) (feed)
Christian Schmitt (slater) (feed)
Christoph Langner (Chrissss) (feed)
Christoph Wickert (raoul) (feed)
Daniel Gestl (mcdaniels) (feed)
Darian (thoys) (feed)
Dominik George (Natureshadow) (feed)
Dominik Kupschke (bommi) (feed)
Dominik Pieper (nachtwandler) (feed)
Felix Schmeing (gimbar) (feed)
Gerrit Kruse (MrGerardCruiz) (feed)
Helmut Roewer (Dunkelangst) (feed)
Hendrik Richter (Hendi) (feed)
Holger Reinmann (codeaeffchen) (feed)
Jan Hauke Rahm (jhr-online) (feed)
Jochen Skulj (feed)
Jochen Welzel (jeff84) (feed)
Joerg Kastning (Tronde) (feed)
Jörg Kruse (4A4B) (feed)
Jürgen Braun (jaybe) (feed)
Lars Moelleken (voku1987) (feed)
Malte Kiefer (beLI3VeR) (feed)
Malte Schmidt (maltris) (feed)
Manuel Kaderli (suntsu) (feed)
Marc Nowak (TCA) (feed)
Marco Laspe (rockiger) (feed)
Marco Scholtyssek (marco_s) (feed)
Marco Scholtyssek (marco_s) (feed)
Marius M. M. (devilx) (feed)
Markus Matuszczak (konsumer) (feed)
Markus W. Kropp (Musix) (feed)
Martin Dosch (Dogge) (feed)
Mirko Weber (tylerD) (feed)
Nico Hartung (xyznico) (feed)
Oliver Groschopp (beetlefrosch) (feed)
Patrick Schmid (compr00t) (feed)
René Hering (ReneH) (feed)
Roman Hanhart (Thurgau) (feed)
Sabine Becker (AtariFrosch) (feed)
Sebastian Feltel (feltel) (feed)
Sebastian Moors (mauser) (feed)
Stefan J. Betz (encbladexp) (feed)
Steffen Moeller (smoe) (feed)
Steffen Rumberger (inne) (feed)
Stephan Tetzel (zefanja) (feed)
Sven S. (FearFactor) (feed)
Thorsten Sperber (TRex) (feed)
Tobias Dols (TobsenD) (feed)
Tom Karasek (Natas12) (feed)
Torsten Werner (bollin) (feed)
Viktor Bindewald (Vitei) (feed)
Vinzenz Vietzke (vinz) (feed)
posativ (feed)
Feeds
ATOM Feed
RSS 1.0 Feed
RSS 2.0 Feed
FOAF
OPML
Letztes Update
22.01.2026 19:16 (GMT+1)
Planetarium
Planet Debian
Planet Debian Administration
Planet Skolelinux
Planet Ubuntu
Planet RootForum
Planet symlink
Planet GNOME
Planet KDE
Planet Apache
Planet freedesktop.org
mehr ...
top
Zum Seitenanfang
Diese Webseite ist keine offizielle Webseite des Debian Projekts.
Haftungsausschluss und Impressum –Datenschutzrichtlinie – debianforum.de Verhaltensregeln

Powered by Planet Venus
Template entwickelt von Timo Salmen, basierend auf dem Debian Live Template, entwickelt von Christoph Haas.
Advertisement