Image

planet.debianforum.de

der Planet der debianforum.de-Benutzer

Zum Inhalt


 
 
 

03.07.2026

(thoys)

/e/OS 4.0 Veröffentlichung

Mitte Juni wurde das neue Release 4.0 von Murenas /e/OS veröffentlicht.
Die offiziellen Releasenotes habe ich euch unter dem Artikel verlinkt.
Was habe ich als Anwender davon?

  • Ein Smartphone auf dem ein System läuft, das auf Android 15 basiert. Ich nutze ein 9 Jahre altes Sony Xperia XA2 und es läuft immer noch alles rund, inklusive meiner Banking-App.
  • Das Design hat sich in homöopathischen Dosen verändert. Der Bliss-Launcher (Grundsätzlicher Aufbau des Bildschirms, mit App-Symbolen, Suchleiste, Widgets uvm.) soll sich verändert haben, davon merke ich wenig. Ich will das aber nicht kleinreden, denn ich bin überzeugt davon, dass das notwendig ist. Wenn sich nicht in jedem größeren Release eine Kleinigkeit an der Optik dem Zeitgeist anpasst, sieht das System nach ein paar Jahren richtig alt aus.
    Was ich als Anwender merke, sind vor allem die neuen wirklich gelungenen Hintergrundbilder. „Small change, big expression“ nennen sie es im verlinkten Video.
  • U.a. der Browser und der Taschenrechner haben ein neues Symbol. Das sieht super aus, nur verwende ich Firefox anstelle des Standardbrowsers.
  • microG wurde aktualisiert. Das benötigt das Smartphone, um Apps laufen zu lassen, die Google-Dienste benötigen.
  • Es gibt nun einen Umzugsservice, weg von Google 😉 Da ich nicht bei Google bin, kann ich ihn nicht testen, ich finde es aber eine witzige Idee.
  • An der Infrastruktur hinter dem Smartphone wurde viel gearbeitet. Denn /e/OS bringt eine ganze Infrastruktur mit Mail, Cloud, Kalender, Kontakte, Backup uvm. mit. Ich persönlich nutze eine Nextcloud, die sich ohne Zusatzprogramme synchronisieren lässt, daher kann ich zur Infrastruktur wenig sagen. Diese Infrastruktur ermöglicht, dass ein Leben ohne Google nicht nur möglich, sondern auch mit möglichst wenig Umgewöhnung möglich ist.
  • Viele Fehlerbehebungen.
Homescreen
Widgets
Hauptbildschirm und Widgets

Nun gibt es auf der Homepage ein Video, und eine Beschreibung der neuen Funktionen. Darunter ein paar Kommentare, die Fragen stellen, Anregungen geben oder ein wenig kritisieren. Ich persönlich habe in den Kommentaren einfach nur Danke gesagt und stelle meine Fragen in Foren.

Fazit: /e/OS ist ein tolles System und die Änderungen bewirken gerade für Neulinge oder Menschen, die sich weniger mit eigenem Hosting beschäftigen, viel Sinn. Der große beeindruckende, alles verändernde Bäng, der mein Benutzerverhalten bereichert – schließlich geht es um ein Major Upgrade von 3.x auf 4 – bleibt aber aus. Es ist nach dieser Aktualisierung weiterhin ein sau cooles und modern aussehendes System, nicht mehr aber eben auch nicht weniger.

Veröffentlichungshinweise: https://murena.com/de/meet-e-os-4-0/?wcpbc-manual-country=DE
Video: https://peer.tube/w/aHQZsWtgnmN9UEi1XbGnBu
/e/OS Homepage (Download oder Gerätekauf): https://e.foundation/

von Timotheus am 03.07.2026 18:15


02.07.2026

Bernd Dau (whisper)

Image

MMO 20044: Season 4 startet

🚀 MMO 20044: Season 4 startet – Neue Features & Balance-Änderungen

Die vierte Runde unseres strategischen Browser-MMO geht an den Start! Season 4 bringt spannende Neuerungen, verbessertes Balancing und mehr Interaktion zwischen den Spielern.

---

📢 Was ist neu in Season 4?

⚔️ Genesis-Angriffe: Strategische Sabotage

Ab sofort können Spieler mit aktivem Genesis-Projekt direkt angegriffen werden! Ein erfolgreicher Genesis-Angriff:

  • Verzögert das Genesis-Projekt des Verteidigers um 18 Stunden
  • Kostet den Angreifer 300 Ticks
  • Setzt einen 24-Stunden-Cooldown für den Angreifer
  • Garantiert den Sieg für den Angreifer (kein Zufall)

⚠️ Wichtig: Die maximale Bauzeit ist auf 24 Stunden gedeckelt – kein Spieler kann durch multiple Angriffe dauerhaft blockiert werden!

🛒 Gadget-Händler: Spezialfähigkeiten kaufen

Besuche den Gadget-Händler (alle 8 Stunden verfügbar) und kaufe nützliche Einmal-Effekte:

  • Schnellsonde: 10 Rohstoffe + 1 Artefakt → Alle laufenden Erkundungen sofort abschließen
  • Notschild: 50 Kristalle → +50% Verteidigungsbonus für den nächsten Angriff
  • Boost-Triebwerk: 200 Rohstoffe → Nächste Reise kostet nur die Hälfte Ticks
  • Saboteur-Sonde: 5 Artefakte → Verzögert fremdes Genesis-Projekt um 3 Stunden

⚖️ Balancing-Anpassungen

  • Materieumwandler: Kostet jetzt 15 Ticks + 1 Stunde Cooldown pro Umwandlung (verhindert Missbrauch)
  • Genesis-Upkeep: Kosten halbiert (z. B. Level 3: 100 Rohstoffe + 10 Artefakte/Stunde statt 200+20)

---

🏆 Hall of Fame – Die Sieger der vorherigen Seasons

Die Trophäen der letzten drei Seasons gehen an:

  • Season 3: onli (Kael) – Erste(r) mit Genesis Level 5!
  • Season 2: femur (Cyborg)
  • Season 1: M0nly (Kael)

Möge die beste Strategie gewinnen! 🎯

---

🎯 Tipps für Season 4

  • Nicht zu früh mit Genesis starten! Erst Planeten besiedeln und Produktion aufbauen.
  • Ressourcen managen: Die neuen Upkeep-Kosten erfordern gute Planung.
  • Gadgets strategisch einsetzen: Saboteur-Sonden können den Unterschied machen!

Viel Erfolg in Season 4! ⚡


– Das MMO-20044 Team

von bed (nospam@example.com) am 02.07.2026 15:50


01.07.2026

Sabine Becker (AtariFrosch)

Spaß mit Vodafone

Bereits am letzten Sonntag meldete mir meine Fritz!Box per Mail, daß meine drei Rufnummern nicht mehr registriert seien. Ich hielt das für eine vorübergehende Störung und hab mich erstmal nicht weiter drum gekümmert. Heute fiel mir auf, daß die Fritz!Box mir nicht die Behebung des Problems gemeldet hatte. Also schaute ich mal nach. Und tatsächlich: Die Nummern waren immer noch nicht wieder da.

Also: Vodafone kontaktieren. Zunächst über die Website. Dort gibt es ja den „ToBi“, diesen „KI“-Chatbot. Der kann mit unregistrierten Rufnummern aber wohl nix anfangen und schickte mich ziemlich schnell zu einer Seite mit einer 0800-Nummer, damit ich einen Menschen kontaktieren kann. Das wollte ich dann mit meinem Festnetz-Telefon tun, aber bekam nur ein Besetzt-Zeichen. Also mußte eins der Smartphones ran.

Ich erklärte also erst dem Telefonbot, dann einer Person das Problem. Jaaa, hieß es, die alte Fritz!Box 6490 werde nicht mehr unterstützt und habe beim letzten Update einen Fehler eingespielt bekommen. Bestimmt reiner Zufall, daß das letzte Update einen Fehler hat, wegen dem man nicht mehr telefonieren kann, so daß man auf jeden Fall eine neue braucht, nicht wahr? Das soll übrigens noch zwei weitere ältere Modelle betreffen.

Die Person meinte dann, das sei kein Problem, sie schicke mir eine neue Fritz!Box zu, und ich solle das noch per Mail bestätigen.

In der Mail stand allerdings noch viel mehr: Sie hatte mir einen komplett neuen Vertrag untergejubelt. Die Daten klingen erstmal nicht schlecht: 600 mBit/s Download, 75 mBit/s Upload, die neue Fritz!Box – aber der monatliche Preis sollte um 5 € höher sein als bisher. Das hatte sie mir im Telefonat nicht gesagt. Ich war natürlich nicht bereit, diesen neuen Vertrag zu bestätigen.

Also rief ich die 0800er-Nummer wieder an und landete diesmal bei einer Person, die zwar Verständnis dafür zeigte, daß ich keinen neuen Vertrag wollte, aber trotzdem meinte, daß ich in Zukunft für die neue Fritz!Box 2 € im Monat mehr bezahlen sollte. Ja Leute, kann ich was dafür, daß Eure älteren Fritz!Boxen keine Updates mehr bekommen sollen und man jetzt eine neue braucht? Ich war an diesem Punkt doch ziemlich angefressen.

Der Mensch war damit wohl überfordert und verband mich zu einer weiteren Person. Der habe ich direkt klargemacht: Ich will keinen teureren Vertrag; ich will einfach nur eine neue Fritz!Box, damit ich wieder über's Festnetz telefonieren kann, und daß ich gerade ziemlich angefressen bin.

Die Person hatte dafür vollstes Verständnis und rechnete dann ein wenig herum. Und noch hier ein bißchen und noch da ein bißchen. Dann bekam ich ein komplett neues Angebot: Den 600/75er-Vertrag, eine neue Fritz!Box, auf den Hauptvertrag einen Rabatt und schließlich die Fritz!Box die nächsten zwei Jahre kostenlos. Und selbst danach bin ich insgesamt um 2 € günstiger als jetzt.

Es gab dann noch ein bißchen Hin und Her, weil die Mails von dort nicht immer bei mir ankamen, warum auch immer, und sie dann auch noch versehentlich die alte Fritz!Box eingetragen hatte, und dann noch, weil die vorherige Person, die mich zu der letzten weiterverbunden hatte, wohl irgendwie dazwischengepfuscht und mir eine manuelle Vertragsablehnung untergeschoben hatte (angeblich nur ein Fehler, aber warum geht der Mensch überhaupt an einen Vertrag, den gerade eine andere Person mit einem Kundy vereinbart hat?). Schließlich waren wir so weit, daß ich diesen günstigeren und schnelleren Vertrag bestätigen konnte. Die Fritz!Box soll als erstes kommen, die alte soll ich zurückschicken, und die Umstellung auf die neue Geschwindigkeit soll dann zeitnah geschehen. Beide Netze, IPv4 und IPv6, sowie die Rufnummern bleiben mir erhalten. Hat sie jedenfalls gesagt.

Gesamtdauer des letzten Gesprächs: Rund 30 Minuten. Insgesamt war ich 45 Minuten lang beschäftigt.

Also aufpassen, falls Euch auch sowas passiert. Und wenn, dann direkt kontaktieren und klarmachen, daß sowas einfach gar nicht geht. Wenn sich genug Leute beschweren und dann ggf. günstigere Verträge bekommen, werden sie sich vielleicht überlegen, ob es so eine gute Idee ist, Leuten wegen einer veralteten Fritz!Box gleich einen neuen, teureren Vertrag unterzuschieben.

von Atari-Frosch am 01.07.2026 14:42


30.06.2026

Jörg Kruse (4A4B)

Konfiguration mit vimrc und / oder .editorconfig

In dem Beitrag Projektspezifische Konfiguration von vim hatte ich vor sechseinhalb Jahren beschrieben, wie mit dem vim Plugin localvimrc Konfigurationsdateien geladen werden können, die in einzelnen Projektordnern wirksam sind. Inzwischen verwende ich dieses Plugins und die lokalen .lvimrc Dateien seit längerem nicht mehr, stattdessen kommen in Projekten zur Definition von Coding-Styles .editorconfig Dateien zum Einsatz.

Von Vorteil sind diese vor allem, da der EditorConfig-Standard zwischenzeitlich von vielen Editoren unmittelbar oder mittels eines Plugins unterstützt wird und so in einem Projekt-Team mit unterschiedlichen Editoren für einheitliche Coding-Styles sorgen kann. In vim 9.1, welches im Repository von Debian Trixie enthalten ist, muss nicht einmal mehr ein Plugin installiert werden, .editorconfig Dateien werden direkt unterstützt. Für ältere vim Versionen existiert das Plugin vim-editorconfig.

Allgemein gehe ich so vor, dass ich globale Coding-Styles, die vor allem für die Bearbeitung von Shellscript- und Konfigurations-Dateien (v.a. durch root) relevant sind, weiterhin in der systemweiten Konfigurationsdatei /etc/vim/vimrc.local definiere:

set autoindent
set expandtab
set tabstop=2
set shiftwidth=2

Ich habe hier eine automatische Einrückung von zwei Leerzeichen gewählt, da dies auch bei vielen Dateien unterhalb von /etc der Fall ist.

In den jeweiligen Projektordnern liegen dann .editorconfig Dateien, deren Anweisungen von vim als vorrangig gegenüber denen der /etc/vim/vimrc oder ~/.vimrc behandelt werden. Beispiel einer .editorconfig Datei für ein Python-Projekt, mit einer automatischen Einrückung von vier Leerzeichen:

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

In der .editorconfig Datei für ein WordPress-Plugin kommt dagegen der für WordPress übliche Standard von Einrückung mittels Tabs zum Zuge:

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab

von Jörg Kruse am 30.06.2026 13:15


29.06.2026

Joerg Kastning (Tronde)

Kernel Live Patching für Red Hat Enterprise Linux (RHEL)

Dieser Artikel richtet sich an jene, die sich für das Thema Kernel Live Patching (KLP) interessieren.

Im ersten Teil des Artikels stelle ich dar, wann KLP in meinen Augen keine gute Lösung darstellt und man auf den Einsatz nach Möglichkeit verzichten sollte. Wissend, dass es manchmal nicht anders geht, beschreibe ich im zweiten Teil am Beispiel von RHEL 9, wie KLP eingerichtet und genutzt werden kann.

Transparenzhinweis: Ich arbeite als Technical Account Manager (TAM) für die Firma Red Hat, welche die Distribution Red Hat Enterprise Linux (RHEL) herausgibt. Dieser Artikel spiegelt meine persönliche Meinung wider, welche mit der meines Arbeitgebers übereinstimmen kann, dies jedoch nicht in jedem Fall muss.

Der Userspace wird in diesem Artikel ausgeklammert, um den Umfang nicht zu sprengen. Ich werde diesen in einem folgenden Artikel aufgreifen.

Warum bzw. wann man Kernel Live Patching nicht nutzen sollte

Folgende Gründe sollten nicht zur Nutzung von KLP führen, sondern auf andere Weise adressiert werden:

  • Angst vor dem Serverneustart
  • Eine Softwarearchitektur, die Serverneustarts nicht vorsieht/zulässt
  • Ungeklärte Abhängigkeiten in vernetzten Systemen
  • Der Glaube, mit KLP nie wieder neustarten zu müssen

Angst ist in der IT ein ganz schlechter Ratgeber. Hier sollte unbedingt die Ursache und nicht das Symptom behandelt werden. Denn Serverneustarts können auch noch aus folgenden Gründen passieren bzw. notwendig werden:

  • Der Server verliert vorübergehend die Stromversorgung
  • Eine Kernel Panic bringt das System zum Absturz
  • Ein nicht mehr reagierendes System muss durch einen Reset neugestartet werden
  • Umzug der Hardware an einen neuen Standort

Dies sind nur vier Gründe, die mir sofort in den Sinn kommen. Wenn wir länger darüber nachdenken, fallen uns bestimmt noch viele weitere ein (ergänzt diese gern in den Kommentaren). Wichtig ist zu verstehen, dass Serverneustarts aus verschiedenen Gründen passieren und per se nicht schlimm sind.

Wenn die Softwarearchitektur keine Neustarts einzelner Komponenten zulässt, hat man ein ganz anderes Problem, welches dringend adressiert werden sollte. Soetwas wie 100%-tige Verfügbarkeit gibt es nicht. Hier ist in meinen Augen zu klären, ob es wirklich an der Anwendung oder eher an nicht verhandelten Wartungsfenstern liegt. KLP ist hier keine Lösung, da die Häufigkeit von Neustarts nur reduziert bzw. das Problem in die Zukunft verschoben wird.

Viele Sysadmins sind faul und das ist gut so. Motiviert es diese Personengruppe doch, manuelle Tätigkeiten zu automatisieren und sich die Arbeit zu erleichtern. Diese Faulheit darf allerdings nicht dazu führen, dass man sich vor der Analyse komplexer und vernetzter Systeme drückt. Abhängigkeiten können analysiert und in den meisten Fällen aufgelöst werden. Sind sie bekannt, kann man sie im Patchprozess berücksichtigen und den Vorgang inkl. Neustarts automatisieren. Auch in diesem Fall verzögert KLP das Unvermeidliche nur.

Kernel Live Patching kümmert sich, wie der Name schon sagt, nur um den Kernel. Was ist mit dem Userspace? Auch hier gibt es sicherheitskritische Bibliotheken und Anwendungen, wie z.B. openssl, gnutls oder die glibc, welche bei erkannten Schwachstellen zeitnah abgesichert werden müssen, um die Sicherheit des Systems nicht zu gefährden.

Neustarts sind per se nicht schlecht. Wer seine Server regelmäßig neustartet, gewinnt Vertrauen, dass diese auch wieder hochfahren und ihre Dienste korrekt erbringen. Schlummernde Probleme werden schneller erkannt und türmen sich nicht zu einem Störfall auf, der nur darauf wartet, im ungünstigsten Moment zu passieren. Und im Optimalfall sind die Dienste so entworfen worden, dass der Ausfall/Neustart eines einzelnen Servers nicht automatisch zu einer Nichtverfügbarkeit des Dienstes führt.

Ich möchte mein Plädoyer für Serverneustarts an dieser Stelle beenden und mich zwei Szenarios zuwenden, in denen KLP die Schmerzen des IT-Betriebs lindern kann.

Wann Kernel Live Patching Sinn macht

Für besonders geschäftskritische IT-Dienste existieren häufig Service-Level-Agreements (SLA), die eine sehr hohe Verfügbarkeit garantieren. Verstöße gegen diese SLA werden von den Stakeholdern meist nicht toleriert und sind in manchen Fällen mit Vertragsstrafen belegt. Zwar gilt auch hier, dass das Problem eher in der Softwarearchitektur liegt, doch hilft dies den Sysadmins nicht, die mit dem Betrieb beauftragt sind. Sie müssen irgendwie damit umgehen, bis eine bessere Lösung gefunden wird. Hier kann KLP eine Notlösung sein, um Sicherheitsrisiken im Betrieb zu reduzieren und SLA-Verstöße zu vermeiden.

Angelehnt an die SLA spielt die Zeit, die ein Server für einen Neustart benötigt, eine Rolle. Während die meisten VMs in Sekunden oder 1-2 Minuten neustarten, dauert dieser Vorgang bei Hardwareservern manchmal deutlich länger. Im Feld werden hier vereinzelt Zeiten zwischen 10-20 Minuten beobachtet (pro Server). Müssen mehrere Server für einen IT-Dienst sequentiell neugestartet werden, summieren sich die Zeiten schnell auf und machen größere Wartungsfenster erforderlich. KLP kann helfen, die Anzahl der langen Wartungsfenster zu reduzieren.

Es gibt Systeme, für deren Start ein manueller Eingriff durch Sysadmins notwendig ist. Dies kann z.B. die Eingabe eines BIOS-, Grub-, LUKS- oder UEFI-Passworts sein. Dies ist aufwändig und lästig, lässt sich aber leider nicht in allen Fällen wegautomatisieren. Auch hier erscheint es legitim, die Anzahl der manuellen Eingriffe durch den Einsatz von KLP zu minimieren.

Kernel Live Patching für RHEL 9 konfigurieren

Um mich für die Konfiguration vorzubereiten, habe ich folgende drei Quellen studiert:

  • Chapter 9. Applying patches with kernel live patching
  • Kernel Live Patch Support Cadence Update (Login erforderlich)
  • Kernel Live Patch life cycles (Login erforderlich)

Die wichtigsten Erkenntnisse daraus sind für mich:

  • Nicht jeder RHEL-Kernel erhält Live-Patches
  • An jedem 1. März, Juni, September und Dezember (jedes Quartal) wird für jedes unterstützte RHEL-Release ein Kernel festgelegt, welcher Live-Patches erhält
  • Für jeden dieser Kernel verspricht Red Hat bis zu einem Jahr lang Updates für CVEs, die nach Red Hats Ermessen als critical oder important kategorisiert wurden (siehe Severity Ratings)

Dass Red Hat für ausgewählte Kernel-Releases ein Jahr lang Live-Patches bereitstellt, lässt nicht den Schluss zu, nur noch einmal pro Jahr neustarten zu müssen. Denn:

  • CVEs der Kategorien moderate und low werden gar nicht adressiert
  • Man erhält keinerlei Bugfixes und keinerlei Produktverbesserungen (Red Hat Enhancement Advisories (RHEA))

Die Planung eines Neustarts wird jedoch ggf. vereinfacht.

Konfiguration von Kernel Live Patching für ein Labor-System

Ich habe ein Labor-System mit RHEL 9 auserkoren, welches als Hypervisor für einige Libvirt/KVM-VMs genutzt wird.

Dieses läuft aktuell mit dem Kernel 5.14.0-687.15.1.el9_8.x86_64, welcher laut Kernel Live Patch life cycles kein Kernel ist, für den KLP angeboten wird. Es ist also zuerst der kernel-5.14.0-687.10.1 zu installieren. Anschließend folge ich der Dokumentation, um den Live-Patch-Stream für diesen Kernel zu aktivieren (siehe folgender Codeblock).

~]$ sudo dnf search kernel-5.14.0-687.10.1.el9_8
Updating Subscription Management repositories.
Last metadata expiration check: 0:04:34 ago on Tue 23 Jun 2026 11:31:09 AM CEST.
================ Summary Matched: kernel-5.14.0-687.10.1.el9_8 ================
kpatch-patch-5_14_0-687_10_1.x86_64 : Initial empty kpatch-patch for
                                    : kernel-5.14.0-687.10.1.el9_8.x86_64
~]$ sudo dnf install kpatch-patch-5_14_0-687_10_1.x86_64

Wie im obigen Codeblock zu sehen, handelt es sich dabei um den initialen und leeren kpatch-patch. Das System hat also noch keinen Fix erhalten, sondern ist lediglich darauf vorbereitet.

Im jetzigen Zustand würde DNF das System bei einem Update jedoch auf die letzte verfügbare Kernelversion aktualisieren, welche keine Live-Patches erhält. Da dies von mir nicht gewünscht ist, aktiviere ich einen Filter, der zukünftig nur noch KLP-fähige Kernel anzeigt. Der folgende Codeblock zeigt den Zustand vor der Aktivierung des Filters, die Aktivierung selbst und den Zustand danach.

~]$ sudo dnf kpatch status
Updating Subscription Management repositories.
Last metadata expiration check: 0:04:36 ago on Tue 23 Jun 2026 11:43:44 AM CEST.
Kpatch update setting: auto-update
Kpatch filter setting: no-filter
Dependencies resolved.
Nothing to do.
Complete!

~]$ sudo dnf kpatch auto-filter
Updating Subscription Management repositories.
Kpatch filter setting: auto-filter

~]$ sudo dnf kpatch status
Please note, kpatch filter is enabled, only kpatch supported kernels are shown.
Kpatch update setting: auto-update
Kpatch filter setting: auto-filter
Dependencies resolved.
Nothing to do.
Complete!

Zum Abschluss ein Neustart und mein System läuft mit dem richtigen Kernel 5.14.0-687.10.1.el9_8.x86_64.

Aufräumarbeiten

Aktuell sind auf meinem System noch Kernel-Pakete installiert, die für KLP nicht vorgesehen sind, aber bei einem dnf update aktualisiert werden würden:

~]# dnf list --installed kernel*
Updating Subscription Management repositories.
Please note, kpatch filter is enabled, only kpatch supported kernels are shown.
Installed Packages
kernel.x86_64              5.14.0-611.55.1.el9_7 @rhel-9-for-x86_64-baseos-rpms
kernel.x86_64              5.14.0-687.10.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel.x86_64              5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-core.x86_64         5.14.0-611.55.1.el9_7 @rhel-9-for-x86_64-baseos-rpms
kernel-core.x86_64         5.14.0-687.10.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-core.x86_64         5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-devel.x86_64        5.14.0-611.38.1.el9_7 @rhel-9-for-x86_64-appstream-rpms
kernel-devel.x86_64        5.14.0-611.55.1.el9_7 @rhel-9-for-x86_64-appstream-rpms
kernel-devel.x86_64        5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-appstream-rpms
kernel-headers.x86_64      5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-appstream-rpms
kernel-modules.x86_64      5.14.0-611.55.1.el9_7 @rhel-9-for-x86_64-baseos-rpms
kernel-modules.x86_64      5.14.0-687.10.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-modules.x86_64      5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-modules-core.x86_64 5.14.0-611.55.1.el9_7 @rhel-9-for-x86_64-baseos-rpms
kernel-modules-core.x86_64 5.14.0-687.10.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-modules-core.x86_64 5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-tools.x86_64        5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms
kernel-tools-libs.x86_64   5.14.0-687.15.1.el9_8 @rhel-9-for-x86_64-baseos-rpms

Um aufzuräumen, habe ich alle überflüssigen Pakte entfernt, bis nur noch der KLP-fähige Kernel vorhanden ist:

~]# dnf list --installed kernel*
Updating Subscription Management repositories.
Please note, kpatch filter is enabled, only kpatch supported kernels are shown.
Installed Packages
kernel.x86_64                5.14.0-687.10.1.el9_8   @rhel-9-for-x86_64-baseos-rpms
kernel-core.x86_64           5.14.0-687.10.1.el9_8   @rhel-9-for-x86_64-baseos-rpms
kernel-modules.x86_64        5.14.0-687.10.1.el9_8   @rhel-9-for-x86_64-baseos-rpms
kernel-modules-core.x86_64   5.14.0-687.10.1.el9_8   @rhel-9-for-x86_64-baseos-rpms

Verhalten bei zukünftigen Updates

Durch den konfigurierten kpatch-Filter werden bei zukünftigen Updates nur Kernel aufgeführt, die KLP-fähig sind. Wird ein KLP veröffentlicht, erscheint dieser als kpatch-patch in der Ausgabe von dnf up`. Der folgende (gekürzte) Codeblock zeigt dies beispielhaft.

~]# dnf up
Updating Subscription Management repositories.
Please note, kpatch filter is enabled, only kpatch supported kernels are shown.
Dependencies resolved.
===================================================================================
 Package       Arch   Version               Repository                        Size
===================================================================================
Upgrading:
…
kpatch-patch-5_14_0-687_10_1 x86_64 1-1.el9_8 rhel-9-for-x86_64-baseos-rpms   22 k
…

Mit dem Befehl aus dem nächsten Codeblock kann kontrolliert werden, welche KLP aktuell installiert sind und welche CVEs sie adressieren.

~]# kpatch list
Loaded patch modules:
kpatch_5_14_0_687_10_1_1_1 [enabled]
	CVE-2026-43037

Installed patch modules:
kpatch_5_14_0_687_10_1_1_1 (5.14.0-687.10.1.el9_8.x86_64)

Obige Ausgabe bestätigt, dass ein KLP aktiv ist, der die kritische Schwachstelle CVE-2026-43037 schließt.

Fazit

KLP funktioniert und ist einfach einzurichten. Es ist nicht in jedem Fall die richtige Lösung und löst nicht alle Probleme, kann jedoch in manchen Fällen die Schmerzen im IT-Betrieb lindern.

Der Userspace wurde ausgeklammert, um den Umfang dieses Artikels nicht zu sprengen. Dies hebe ich mir für einen folgenden Artikel auf.

von Jörg Kastning am 29.06.2026 05:00


28.06.2026

Sabine Becker (AtariFrosch)

Hitzewelle

Um gleich mal eins klarzustellen: Nein, früher™ war es nicht „auch mal heiß“.

Wenn ich in den späten 1970er, frühen 1980er Jahren im Sommer ins Freibad ging, ins Herzogenriedbad in Mannheim, dann mußte ich erst über den ca. 600 Meter langen Neuen Meßplatz laufen und dann noch ein Stück um das Freibad herum, um zum Eingang zu kommen. Direkt hinter dem Kassenbereich hingen eine riesige Analog-Uhr und ein großes Thermometer. Auf letzteres schaute ich immer zuerst. Es stand in diesen Jahren im Sommer meist irgendwo zwischen 22 und 26 °C, auch abhängig davon, ob ich es schon vormittags oder erst nachmittags hin geschafft hatte. An manchen Tagen ging es auch bis 28 °C hoch, und ganz selten mal auf 30 oder 31 °C. In letzterem Fall war fast schon automatisch klar: Das gibt später am Tag ein Gewitter, und der Bademeister wird die Leute dann irgendwann aus dem Wasser scheuchen. Auf dem abendlichen Heimweg mußte ich wieder über den Neuen Meßplatz, dessen Asphalt die Sonnenwärme des Tages wieder abstrahlte. Wenn möglich, lief ich barfuß, aber manchmal ging das nicht, weil der Boden einfach zu heiß war. Dann lief ich neben dem Platz die Maybachstraße unter den Bäumen entlang und zog die Sandalen an.

Die jetzigen Sommer sind anders. Die Tagestemperaturen sind entweder um 20 °C oder direkt oberhalb von 30 °C; dazwischen gibt es kaum noch etwas bzw. es gibt nur wenige Tage, wenn überhaupt, an denen sich die Tagestemperatur zwischen 22 und 28 °C bewegt. Das ist eine der Auswirkungen des menschengemachten Klimawandels.

Nun hatten wir (und haben gerade noch) bereits die zweite Hitzewelle dieses Jahres, und die ist heftig.

Die erste war ja letzten Monat gewesen, als wir bereits Tagestemperaturen über 30 °C gehabt hatten. In der gerade verstrichenen Woche lagen die Tagestemperaturen nicht selten über 40 °C. Selbst der übermäßig heiße Sommer 2003 war nicht so heftig wie diese Woche.

  • Bereits morgens um 9:00 Uhr steht keines meiner Thermometer mehr unterhalb von 30 °C, selbst auf der Sonnenuntergangsseite des Hauses. In den letzten beiden Tagen hatte ich abends in meinem Arbeitszimmer stundenlang 36,5 °C. Das digitale Thermometer am Innenraum-Thermostat für die Gastherme steigt bei über 35,0 °C aus und zeigt statt der Temperatur nur noch Striche an.
  • Mein Trinkwasserbedarf ist doppelt bis dreimal so hoch wie üblich.
  • Zeitweise sind die Martinshörner hier quasi im Minutentakt zu hören, vor allem morgens und vormittags und am frühen Abend. Auch nachts werden ungewöhnlich viele Einsätze gefahren. Das sind sicher nicht immer nur Rettungswagen für Menschen, die aufgrund der Hitze Gesundheitsprobleme haben und nicht mehr selbst zu einer Arztpraxis oder in ein Krankenhaus gehen können, aber das dürfte wohl den größeren Teil ausmachen.
  • Mobile Klimaanlagen sind ausverkauft, trotz Kosten zwischen 800 und 1.200 €. Von Ventilatoren kenne ich das, daß sie im Sommer mal ausverkauft sind, aber bei teureren Klimageräten ist mir das bislang noch nicht zu Ohren gekommen. Ventilatoren gibt's wohl gerade noch, sie werden halt völlig überteuert angeboten.
  • In Leipzig (und sicher auch in anderen Städten) gehen die Straßen und Straßenbahnschienen kaputt: Leipzig - Straßenbahn Linienverkehr eingestellt.
  • Auf mehr als zehn deutschen Autobahnen sind Hitzeschäden entstanden, die Autobahnen mußten teilweise gesperrt werden.
  • Der WDR berichtete gestern, daß RRX (national express) zwischen 13:00 und 19:00 Uhr wichtige Regionalexpreß-Linien in Nordrhein-Westfalen nicht fahren ließ – wegen der Hitze.
  • Städte veröffentlichen Karten mit „kühlen Orten“: Kirchen, Bibliotheken etc., und, sofern vorhanden, mit öffentlichen Trinkbrunnen. Das ändert natürlich nichts daran, daß sie weitestgehend zuasphaltiert sind, autogeil und daß Straßenbäume und Grünflächen eher reduziert wurden. Und daß Mietwohnungen immer noch größerenteils nicht mit Wärmepumpen ausgestattet sind, die man auch zum Kühlen nutzen kann. – Übrigens nützen mir „kühle Orte“ gar nichts: Ich muß erst fünf Stockwerke die Treppen runter, raus in die Hitze, zum kühlen Ort hin laufen oder fahren. So weit, so gut. Aber zurück muß ich auch wieder laufen/fahren, dann die fünf Stockwerke wieder hochklettern. Letzteres ist auch ohne Hitze schon anstrengend genug, wenn eins mobilitätseingeschränkt ist.
  • Deutschlandfunk von gestern: Deutschland erlebt heißesten jemals gemessenen Tag – 41,3 Grad in Saarbrücken (und das sind die öffentlichen Meßstellen. Die stehen nicht selten außerhalb der dicht bebauten Innenstädte, in Düsseldorf zum Beispiel draußen am Flughafen).
  • Der Bevölkerungsschutztag (!) der Bundesregierung mußte verschoben werden – weil es zu heiß wurde.
  • In Supermärkten fielen die Kühlschränke aus, Waren mußten teils vernichtet werden.
  • Kölner Stadtanzeiger von gestern: „Einsatzkräfte geben gerade alles“: Kölner Rettungsdienst an Belastungsgrenze – Löschfahrzeuge müssen aushelfen – und ich bin sicher, daß das auch für andere Städte gilt.
  • WAZ von gestern: Hitze in Duisburg: Mehrere Stromausfälle im Stadtgebiet
  • Wie die Tagesschau berichtet, wurde in Niedersachsen in einigen Kommunen die Entnahme von Trinkwasser eingeschränkt, so dürfen zum Beispiel keine Rasen gesprengt werden. Umgekehrt hat man aber kein Problem damit, den Flughafen Hannover mit -zigtausend Litern Wasser zu gießen, damit es keine Schäden an den Start- und Landebahnen gibt.
  • [Update] Kölner Rundschau: Hitzewelle in Köln: Notlazarett in Deutz eingerichtet – auch KVB-Busse im Einsatz [/Update]

Das wird übrigens nicht unser neues „normal“. Das ist nämlich erst der Anfang.

Wie unsere menschenverachtende Bumsregierung reagiert, hat Paolo Calleri passend zu Papier gebracht:

Farbige Karikatur. Friedrich Merz, Katherina Reiche und Markus Söder stehen da wie die drei Affen: Der erste hält sich die Augen zu, die zweite die Ohren und der dritte den Mund. Alle drei schwitzen sichtlich. Merz' Haarbüschel steht in Flammen, und in einer Sprechblase fragt er: Und? Hattet Ihr ein schönes Wochenende?

Und jetzt hoffen wir mal, daß das für heute Abend angekündigte Gewitter wirklich kommt …

von Atari-Frosch am 28.06.2026 11:28


26.06.2026

Bernd Dau (whisper)

Image

MMO 20044: Season 3 endet – onli siegt! Was Season 4 bringt

Die dritte Runde unseres browserbasierten MMO-Strategiespiels geht zu Ende, und wir haben einen klaren Sieger: onli hat als Erster Level 5 der Genesis erreicht und damit Season 3 für sich entschieden! 🎉

Rückblick: Season 3

Image

Season 3 war geprägt von einer deutlich größeren Galaxie mit 100 Sternensystemen (doppelt so groß wie zuvor) und wichtigen Spielverbesserungen:

  • Aktions-Warteschlange: Endlich kein Warten mehr! Bis zu vier Reisen und vier Forschungsaufträge lassen sich vorausplanen. Flotte und Labor arbeiten unabhängig – simultaneously reisen und forschen war erstmals möglich.
  • Verbesserte Galaxiekarte: Laufende Reisen werden als Linien angezeigt, Piratenschätze sind markiert, und eine Legende erklärt alle Symbole.
  • Erweiterter Chat: Längere, mehrzeilige Nachrichten für bessere Koordination.
  • Kleine, aber feine Anpassungen: Konkrete Reisezeiten an Warptoren, höherer Ertrag beim Abbau der Heimatwelt, zuverlässige Produktionszyklen.

Trotz der größeren Galaxie hat onli als Kael-Spieler die Konkurrenz hinter sich gelassen und den Countdown ausgelöst. Herzlichen Glückwunsch! 🏆

Die Trophäe für Season 3 geht damit an onli! und ja, wir haben nicht vergessen, sie zu vergeben!

Vorschau: Was Season 4 bringt

Während Season 3 noch ohne direkte Interaktion zwischen den Genesis-Projekten auskam, wird Season 4 mit einem spannenden neuen Feature aufwarten: Genesis-Angriffe!

⚡ Genesis-Angriffe: Strategische Sabotage

Ab Season 4 können Spieler mit aktivem Genesis-Projekt direkt angegriffen werden! erfolgreicher Genesis-Angriff kostet den Angreifer 300 Ticks und:

  • Verzögert das Genesis-Projekt des Verteidigers um 18 Stunden
  • Setzt einen 24-Stunden-Cooldown für den Angreifer (pro Ziel)
  • Garantiert den Sieg für den Angreifer (kein Zufall – reine Tick-Kosten)
  • Erscheint in der Kampfhistorie mit eigenem Battle-Report

Wichtig: Um die Balance zu wahren und sicherzustellen, dass alle Spieler fair Ära-Galaxie 5 erreichen können, gibt es eine maximale Bauzeit von 24 Stunden. Das bedeutet:

  • Genesis-Angriffe setzen die Bauzeit auf mindestens 18 Stunden
  • Mehrere Angriffe hintereinander können die Bauzeit nicht ins Unendliche treiben
  • Sabotage-Sonden (neues Gadget, siehe unten) verlängern um 3 Stunden – aber nie über 24 Stunden hinaus
  • Jeder kann ÄG5 erreichen – strategische Angriffe verzögern den Fortschritt, blockieren ihn aber nicht dauerhaft

Diese Deckelung verhindert, dass die Bauzeit durch koordinierte Angriffe multiple Spieler „ausgesperrt“ werden können. Fairplay steht im Vordergrund!

🎁 Gadget-Händler: Spezialeffekte für Ressourcen

Season 4 führt ein neues Wirtschaftssystem ein: den Gadget-Händler. besuchen des Händlers (über das Dashboard) bietet spezielle Gadgets zum Kauf an – nützliche Einmal-Effekte, die Ressourcen verbrauchen:

  • Schnellsonde: 10 Rohstoffe + 1 Artefakt → Alle laufenden Erkundungen sofort abschließen
  • Notschild: 50 Kristalle → +50% Verteidigungsbonus für den nächsten eingehenden Angriff
  • Boost-Triebwerk: 200 Rohstoffe → Nächste Reise kostet nur die Hälfte an Ticks
  • Saboteur-Sonde: 5 Artefakte → Verzögert fremdes Genesis-Projekt um 3 Stunden

Jeder Gadget-Typ kann nur begrenzt gelagert werden (z. B. max. 2 Saboteur-Sonden), was den strategischen Einsatz fördert.

🌌 Weitere Verbesserungen

Nebst den großen Features gibt es weitere Optimierungen:

  • Rassen-Boni: Jede Rasse hat nun einzigartige Stärken – Ashar mit Angriffsbonus, Kael mit Produktionsvorteilen, Cyborg mit Ausdauer, Mensch als Allrounder
  • Genesis-Seite: Übersichtlicher Fortschritt, Upkeep-Kosten und Bauzeit-Informationen auf einen Blick
  • Kampfberichte: Genesis-Angriffe erhalten eigene Berichte mit klarer Kennzeichnung
  • Dashboard: Genesis-Angriffs-Checkbox direkt im Angriffsformular

Fazit & Ausblick

Season 3 war ein voller Erfolg mit onli als verdientem Sieger. Season 4 wird mit Genesis-Angriffen und dem Gadget-System noch mehr strategische Tiefe und Interaktion zwischen den Spielern bringen – ohne dabei den Fortschritt anderer dauerhaft zu blockieren.

Die wichtigste Botschaft: Ära-Galaxie 5 bleibt für alle erreichbar! Die 24-Stunden-Deckelung der Bauzeit stellt sicher, dass auch bei intensiver Sabotage niemand permanent aus dem Rennen geworfen wird.

Wir freuen uns auf eine spannende Season 4 – möge die beste Strategie gewinnen! 🚀


– Das MMO-20044 Team

von bed (nospam@example.com) am 26.06.2026 06:21


23.06.2026

Steffen Rumberger (inne)

Eilmeldung: Hollywood fight

Sie reden vom Hollywood fight, was das Ranking durch Likes, Follower usw. angeht, es wird also ein neues Ranking System geben.

23.06.2026 11:31


EIL: Hollywood fight

Sie reden vom Hollywood fight, was das Ranking durch Likes, Follower usw. angeht, es wird also ein Neues Ranking System geben.

23.06.2026 11:31


22.06.2026

Joerg Kastning (Tronde)

Oh Schreck – FrOSCon 2026

Den Lesenden dieses Blogs ist die FrOSCon sicherlich ein Begriff. Allen Neuzugängen sei kurz erklärt, das es sich dabei um die Free and Open Source Conference handelt, welche jedes Jahr im August an der Hochschule Bonn-Rhein-Sieg mit Hilfe des FrOSCon e.V. ausgerichtet wird.

Für viele meiner Bekannten und Freunde aus der FLOSS-Gemeinschaft ist es soetwas wie ein Familientreffen. Neben dem Wiedersehen vieler vertrauter Gesichter lockt auch ein Vortragsprogramm, welches stets mit interessanten Vorträgen zu unterschiedlichen Themen gefüllt ist. Dieses Jahr gab es 190 Einreichungen aus denen 77 Vorträge und 12 Workshops ausgewählt wurden. Ich freue mich schon darauf das Programm zu durchstöbern, welches voraussichtlich im Juli veröffentlicht wird.

Zumindest für mich war der Schreck groß, als die FrOSCon am 21. Mai ihre finanziellen Sorgen auf Mastodon teilte.

Screenshot des FrOSCon-Hilferufs mit dem Text: "Liebe FOSS-Community, die angespannte Lage in der IT-Wirtschaft führt dazu, dass viele unserer Partner dieses Jahr keinen Stand buchen. In Folge fehlt uns Budget für die Konferenz, u.a. für Veranstaltungstechnik, Messewände, Vortragsstreaming, Kinder- und Jugendprogramm, Helfer:innen-Verpflegung, Transportkosten, Versicherungen  Wir suchen insbesondere Konferenzpartner und auch noch einen Kaffeepartner"Bildschirmfoto des Hilferufs vom 12. Mai 2026 auf Mastodon

In der Folge haben viele FLOSS-Freunde bereits bei ihren Arbeitgeber:innen um Unterstützung gebeten und auch selbst gespendet. Meine Erleichterung war entsprechend groß, als bereits zwei Wochen später die gute Nachricht geteilt wurde: „Die Konferenz findet statt!“

dekorativBildschirmfoto der Meldung vom 27. Mai, dass die Konferenz stattfindet

Das Spendenziel ist allerding noch nicht erreicht. Daher bitte ich alle, die diese Veranstlatung kennen, schätzen, gerne besuchen oder ein bisschen Geld für gemeinnützige Projekte erübrigen können, über einen dieser Wege zu spenden.

Darüber hinaus könnt ihr die Konferenz auch unterstützen, indem ihr ein Businessticket kauft.

Ich möchte an dieser Stelle dem Veranstaltungsteam für dessen Ausdauer, Einsatz und Zeit danken, damit diese Konferenz jedes Jahr stattfinden kann. Ich danke auch den diesjährigen Partnern der FrOSCon, welche die Konferenz auch in einer wirtschaftlich angespannten Zeit unterstützen.

Ich freue mich schon heute auf das Wiedersehen im August.

von Jörg Kastning am 22.06.2026 05:00


20.06.2026

Stefan J. Betz (encbladexp)

Going Golang

Meine primäre Programmiersprache ist schon sehr lange Python. Ich bin kein Softwareentwickler; dennoch liefere ich damit gut funktionierenden Code und damit auch Lösungen — meist Plugins/Module für bestehende Komponenten, aber auch mal ein Backend für IoT-Devices. Das meiste davon entstand im Rahmen meiner Erwerbsarbeit und steht daher unter NDA.

hello_world.go

Schon länger besteht jedoch der Wunsch, eine weitere Programmiersprache zu können, weshalb ich mir Gedanken über meine Anforderungen an eine neue Programmiersprache gemacht habe:

  • Die Sprache sollte kompiliert werden müssen; es sollte also keine Skriptsprache mehr sein.
  • Die Sprache sollte statisch typisiert sein.
  • Die Sprache sollte plattformübergreifend, zumindest aber auf Linux und macOS gut lauffähig sein.
  • Die Sprache sollte architekturübergreifend, inkl. Cross-Compiling, verwendbar sein. Ich möchte also auch in der Lage sein, auf einer Intel- oder AMD-CPU Binaries für ARM zu bauen.

Evaluiert habe ich folgende Programmiersprachen, jeweils eine Woche. Meine Testaufgabe waren lediglich ein paar einfache REST-API-Aufrufe und das damit verbundene Parsen von JSON.

  • Rust: Alle reden davon, ich wollte es also auch mal wissen. Um ehrlich zu sein, war mir die Einstiegshürde (von Python kommend) zu hoch; gleichzeitig empfand ich das Tooling als wenig attraktiv, und mir fehlte das von Python gewohnte “Batteries included”. Rust ist sicher eine hervorragende Programmiersprache, aber eben doch nicht meine.
  • C: Im Hackerspace- und CCC-Umfeld wird häufig C verwendet, was naheliegend ist für die vielen ESP32, die überall herumliegen. Die Lernkurve war zumindest anfangs noch ganz OK; allerdings empfand ich das Tooling als eher altertümlich und auch das “Batteries included” fehlte mir wieder. Dazu kommen noch die diversen footguns, die die sichere Verwendung dieser alten Sprache nicht gerade einfacher machen.
  • Go: Bekannt vor allem durch das ganze Container- und DevOps-Tooling war natürlich auch Go eine Sprache, die in Betracht kam. Im Vergleich zu Rust oder C konnte ich mich recht schnell an das Tooling gewöhnen. Von Python kommend wirkt Go fast schon wie eine Low-Level-Programmiersprache. Gefallen hat mir auch, dass es wieder “Batteries included” gibt.

So war die Entscheidung schnell gefallen: Es sollte Go werden. Nicht evaluiert habe ich Zig, was sicher auch eine gute Programmiersprache ist; zum Zeitpunkt der Entdeckung hatte ich mich jedoch bereits entschieden.

“Learning by Doing”

Learning by Doing ist sehr effizient, vor allem, da man dabei auch viele Fehler macht und daraus lernt.

Zuerst habe ich die meisten privat laufenden Python-Tools durch neue Implementierungen in Go ersetzt. Dies umfasst diverse Prometheus-Exporter, aber auch das angepasste Lademanagement, welches mein EVCC “optimiert”.

Aufgefallen ist mir dabei unter anderem, wie viel kleiner meine Container wurden: in einem Fall ging es von ca. 300 MiB auf ca. 15 MiB herunter — das ist ordentlich.

Die (oft) deutlich bessere Performance von Go spielte hier nur selten eine Rolle; nichts, was ich privat betreibe, läuft im Maßstab von Google, Cloudflare oder Amazon.

Unerwartet schnell habe ich gelernt, dass Fehler auch Freunde sind (Go hat ein sehr explizites Error-Handling) und dass Exceptions weniger nett sind, als das Konzept zunächst klingt.

Dokumentation

Neben A Tour of Go empfand ich vor allem Go by Example als sehr hilfreich. Die offizielle Dokumentation der Sprache ist ebenfalls sehr gut und verständlich.

Bücher

Der nächste Schritt war dann ein Deep Dive in Form von Abendlektüre und beinhaltete zwei Bücher, die ich hier kurz vorstellen möchte.

Learning Go: An Idiomatic Approach to Real-World Go Programming (English Edition)

Vor allem, wenn man von einer anderen Sprache kommt, ist dieses Buch sehr hilfreich, da es zeigt, wie man idiomatischen Code erstellt, der auch zu den Patterns der Sprache passt.

Zu oft ist es mir passiert, dass ich versucht habe, “pythonic” Code zu schreiben, obwohl ich jetzt auf Go unterwegs bin, wo Dinge eben anders getan werden sollten oder sogar müssen.

Effektiv habe ich das Buch am Abend in einer Woche komplett verschlungen; es ist meiner Ansicht nach jeden Cent wert.

100 Go Mistakes and How to Avoid Them (English Edition)

Wie schon weiter oben erwähnt: Aus Fehlern lernt man. Und der Autor dieses Buches hat mindestens 100 Fehler sehr oft gemacht, sodass ich direkt vom Profi lernen kann.

Das Buch ist eine sehr gute Ergänzung, da man im einen Buch über idiomatischen Code lernt, wie Code aussehen sollte, und in diesem hier, wie genau er nicht aussehen sollte.

Zugegeben: ca. ein Drittel der genannten Fehler wären mir auch ohne Kenntnisse der Sprache aufgefallen; bei wiederum anderen wäre ich direkt in das offene Messer gelaufen.

AI / KI

Zum Lernen habe ich auch KI-generierte Inhalte verwendet. Anfangs hatte ich in meinem Editor (Visual Studio Code) noch Copilot aktiviert, aber zumindest auf dem privaten PC wurde diese Erweiterung nach einigen Tests deinstalliert.

Man lernt nicht oder nur sehr langsam, wenn einem die KI immer die “beste” Lösung vorschlägt, und manchmal läuft man auch einen komplett falschen Pfad entlang.

Mittlerweile verwende ich nur noch OpenCode und beziehe ein paar Tokens durch OpenRouter. Hin und wieder hilft mir auch Perplexity bei der Recherche.

KI darf privat meinen Code nur noch reviewen oder mir in bestimmten Fällen etwas Unterstützung geben. Meist reichen die Reviews aus, um meinen Code zu verbessern. Agenten sollen privat keinen Code für mich schreiben. Ich möchte den Lerneffekt mitnehmen, die Basics verstehen und in Fallen laufen. Scheitern ist Teil des Weges.

Fazit

Go macht mir sehr viel Spaß, und ich konnte das neue Wissen auch schon im beruflichen Kontext umsetzen. Der Blick über den Python-Tellerrand hat mir gut getan.

20.06.2026 08:00


03.06.2026

(thoys)

Ubuntu 26.04 Bluetooth beim Start aus

Bluetooth auf meinen Lenovo Thinkpad T14 Gen 2 verhält sich in Ubuntu 26.04 merkwürdig. Erstens ist es beim Start immer an und wenn ich es per Menü rechts oben abschalte, geht es ein paar Mal wieder an. Es braucht etwas Überzeugung, dass es wirklich irgendwann aus bleibt.

Dann habe ich auf ubuntuusers folgenden folgenden Wikieintrag gefunden: https://wiki.ubuntuusers.de/Bluetooth/Einrichtung/#Deaktivierung-beim-Start-mit-systemd

Ich habe eine recht frische Installation von 26.04 und keine zusätzlichen Pakete installiert.

sudo systemctl disable bluetooth.service 

Neustart und siehe da, Bluetooth bleibt ausgeschaltet. Es lässt sich aber auch nicht mehr einschalten, denn der gesamte Dienst ist deaktiviert.

Sollte man den Bluetooth Dienst doch wieder benutzen wollen, muss im Terminal folgender Befehl eingegeben werden

sudo systemctl start bluetooth.service 

Gibt es keine Möglichkeit, dass sich Gnome (oder das System) den letzten Zustand merkt oder Bluetooth beim Neustart aus ist, sich aber einschalten lässt?

von Timotheus am 03.06.2026 21:19


22.05.2026

Martin Dosch (Dogge)

MagentaTV funktioniert nicht mehr im Browser

Falls jemand vor hat sich wegen aktueller oder kommender Sportereignisse (z.B. die Weltmeisterschaften im Eishockey und Fußball) MagentaTV zu holen: Tut es nicht! Zumindest nicht, wenn ihr am Rechner oder Laptop im Browser schauen wollt. Derzeit funktioniert das nicht und die Telekom arbeitet offensichtlich nicht an Lösungen sondern schiebt die Schuld mit Aussagen in der Art von “Es liegt an dir, bzw. deiner HW, nicht an uns!” von sich obwohl das Problem von einem Tag auf den anderen ohne jeglichen HW-Tausch auftrat.

Das Telekom-Hilfeforum ist voll von Threads über dieses Problem, exemplarisch verlinke ich einen davon, den die Telekom sogar als gelöst markiert hat, obwohl das Problem weiter besteht.

22.05.2026 08:07


11.04.2026

Martin Dosch (Dogge)

iortcw: Return to Castle Wolfenstein auf Debian spielen

Ich habe letztes Jahr bereits beschrieben, wie man Medal of Honor: Allied Assault unter Debian installieren (und spielen 😉) kann. Da mittlerweile Return to Castle Wolfenstein vom Index genommen (pdf) genommen wurde, möchte ich auch für dieses Spiel die Installation beschreiben. Diese Anleitung bezieht sich auf Debian Trixie.

Spieldaten

Iortcw ist zwar frei, die Grafiken und Sounds von RtCW sind es aber nicht. Um Return to Castle Wolfenstein spielen zu können, benötigt man also die Daten des Originalspiels. Ich habe das Spiel während eines Auslandsaufenthalts bei GOG gekauft. In Deutschland wird das Spiel leider (noch?) nicht vertrieben obwohl es nicht mehr auf dem Index ist, weil noch eine USK Alterseinstufung fehlt.

Debianquellen bearbeiten

Da man die unfreien Spieldaten benötigt, kann RtCW 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 rtcw 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/rtcw
$ cd ~/Games/rtcw
$ game-data-packager rtcw

Spieldaten installieren

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

# apt install /home/<USER>/Games/rtcw/rtcw*.deb

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

Spielen

Nun kann man Return to Castle Wolfenstein spielen und in Erinnerungen schwelgen, oder diese Spiele auch zum ersten Mal genießen. Fröhliches Nazi-Ballern. 😀

11.04.2026 20:28


23.03.2026

Jörg Kruse (4A4B)

Einrichtung von dmarcts-report-parser auf Debian

Mit einem DMARC-Record im DNS kann nicht nur festgelegt werden, wie mit Emails zu verfahren ist, die mit den SPF- und DKIM-Einträgen nicht konform gehen. Im Parameter rua kann auch eine Adresse angegeben werden, an welche die Mailserver aggregierte Berichte senden können, wie hier z. B. die Adresse dmarc@example.org:

_dmarc	3600	IN	TXT	"v=DMARC1;p=quarantine;rua=mailto:dmarc@example.org"

Die Berichte werden als XML-Dateien im Anhang versandt. Der Paketmanager von Debian bietet gleich drei verschiedene Tools zur Installation an, welche die XML-Dateien parsen können: dmarc-cat, dmarc-srg und dmarcts-report-parser. Mit letzterem kann auch direkt auf das IMAP-Konto zugegriffen werden, in welchem die Berichte landen. Die extrahierten Daten werden dabei in einer Datenbank gespeichert.

Da dmarcts-report-parser im Repository von Debian Trixie enthalten ist, ist die Installation einfacher als auf der Github-Seite angegeben:

# apt install dmarcts-report-parser

Nach der Installation muss manuell eine MariaDB oder PostgreSQL Datenbank angelegt werden. In der Datei /etc/dmarcts-report-parser.conf werden dann die Zugangsdaten zu dieser Datenbank eingetragen, ebenso die Zugangsdaten zum IMAP-Konto sowie ggf. – entsprechend den erläuternden Kommentaren – weitere Einstellungen. Bei der Angabe von Unterordnern funktionierte in meinem Fall (Dovecot mit Maildir auf dem Server) die Trennung mit einem Slash nicht, stattdessen mit einem Punkt:

$imapmovefolder = 'dmarc.processed';

Nachdem die Konfigurationsdatei fertiggestellt ist, kann ein erster Prozess angestoßen werden:

# dmarcts-report-parser -i

In der Datenbank sollten dann die Tabellen rptrecord und report mit den geparsten Einträgen gespeichert sein. Wenn alles ordnungsgemäß verlaufen ist, kann in der Datei /etc/default/dmarcts-report-parser der täglich laufende Cronjob bzw. Timer, der bereits bei der Installation von dmarcts-report-parser eingerichet wurde, „scharf geschaltet“ werden:

# This tool/script is run via CRON only if the below IS_CONFIGURED variable is set to "1"
IS_CONFIGURED="1"

Um die Daten der Datenbanktabellen besser zu erfassen, können entsprechende Views eingerichtet werden. So z. B. die neuesten Einträge zuoberst, beschränkt auf die Auswertungsdaten der empfangenden Mailserver:

CREATE VIEW view_dmarc AS
SELECT DATE(rep.maxdate) AS rep_date, rep.domain,
    IF(rec.ip IS NULL, INET6_NTOA(rec.ip6), INET_NTOA(rec.ip)) AS ip, rep.org,
    rec.dkimresult AS dkim, rec.dkim_align, rec.spfresult AS spf, rec.spf_align,
    rec.disposition
FROM rptrecord AS rec
INNER JOIN report AS rep
ON rec.serial = rep.serial
ORDER BY rep_date DESC

Mit einem ergänzendem Statement WHERE disposition != "none" ließe sich der View auch auf die problematischen Einträge beschränken, bei denen Emails geblockt oder in die Quarantäne verschoben wurden.

von Jörg Kruse am 23.03.2026 14:53


02.03.2026

Christoph Wickert (raoul)

Image

Lesbare Domain-Namen mit MyFRITZ!

Damit FRITZ!Box-Nutzende auch von unterwegs auf ihren Router oder ihr Heimnetz zugreifen können, gibt es den Online-Dienst MyFRITZ!, der – neben anderen nützlichen Funktionen – dynamisches DNS bietet.

Zur Nutzung muss man zuerst die FRITZ!Box registrieren. Nach der Anmeldung am Portal sieht man die Geräteübersicht. Ein Klick auf eine FRITZ!Box leitet auf ihre Benutzeroberfläche weiter, allerdings unter einem automatisch genierten Domain-Namen im wie kupzflvxinzjbygz.myfritz.net, den sich garantiert niemand merken kann. Die Möglichkeit, einen lesbaren Namen wie beispiel.myfritz.link zu vergeben, ist leider gut versteckt.

  • Klickt oben rechts auf Eure E-Mail-Adresse und dort auf Einstellungen von MyFRITZ!Net.
  • Klickt in der Navigation links unten auf MyFRITZ!-Adressen verwalten.
  • Klickt auf das Stift-Symbol hinter der FRITZ!Box.
  • Wählt Eigene MyFRITZ!-Adresse erstellen und vergebt einem Namen mit mindestens 8 Zahlen und/oder Buchstaben.
  • Damit ihr nicht bis zur nächsten Zwangstrennung warten müsst, verbindet Eure FRITZ!Box neu. Geht dazu in ihrer Oberfläche auf Internet → Online-Monitor → Verbindungsdetails → Neu verbinden.

Sobald die FRITZ!Box wieder online ist, findet Ihr sie in der MyFRITZ!-Geräteübersicht unter der neuen Adresse. Viel Spaß!

von chris am 02.03.2026 20:33


26.01.2026

Christoph Wickert (raoul)

Image

Mailbox Drive unter Xfce, GNOME und KDE

In der Mailbox Knowledge Base gibt es einen ausführlichen Artikel über die Nutzung des OX Drives unter Linux, allerdings ist mir die dort vorgeschlagene Lösung mittels davfs2 und FreeFileSync zu kompliziert. Ich will nur schnell und unkompliziert im Dateimanager auf den Cloud-Speicher zugreifen können. Und das ist denkbar einfach:

  • Über die Adresszeile des Dateimanagers folgende URL (ohne Zeilenumbruch) öffnen:
    davs://dav.mailbox.org/servlet/webdav.infostore/Userstore/Vorname Nachname/
    Wichtig:
    • Vor- und Nachnamen müssen mit den Angaben aus dem Mailbox-Kontoeinstellungen übereinstimmen. Im Zweifelsfall kann man den Namen auch weglassen und den übergeordneten Ordner Userstore öffnen, um den Namen nachzuschlagen.
    • Wenn Thunar das Präfix davs:// nicht akzeptiert, müsst ihr gvfs mitsamt des WebDAV Backends /usr/lib/gvfs/gvfsd-dav installieren und anschließend Thunar neu starten. Bei openSUSE finden sich alle Backends im Paket gvfs-backends.
  • Zur Anmeldung den Benutzernamen und das Passwort für die Mailbox Suite bzw. IMAP eingeben. Ihr könnt wählen, ob es bis zum Ende der Sitzung, dauerhaft oder lieber nicht gespeichert werden soll. Nach der Anmeldung seht ihr eurer Mailbox Drive in Thunar.
    Screenshot des Dateimanager Thunar mit geöffnetem Mailbox Drive
    • Wenn sichergestellt ist, dass der Zugriff funktioniert, könnt ihr euch ein Lesezeichen zum direkten Öffnen des Mailbox Drives anlegen. Dazu die Datei ~/.config/gtk-3.0/bookmarks im Editor eurer Wahl öffnen und eine neue Zeile anfügen:
      davs://dav.mailbox.org/servlet/webdav.infostore/Userstore/Christoph%20Wickert/ Mailbox Drive
    • Das Dateiformat ist denkbar einfach: URL Titel. Während man den Titel frei wählen kann, darf die URL kein Leerzeichen enthalten. Deshalb muss man das Leerzeichen zwischen Vor- und Nachnamen durch %20 ersetzen. Das gilt auch für andere Sonderzeichen wie Umlaute in eurem Namen, die durch ihre Entsprechungen in UTF-8 ersetzt werden müssen.
  • Denkt daran, dass ihr das Mailbox Drive auch immer ordentlich aushängt, wenn ihr Dateien verändert habt.

Diese Anleitung funktioniert auch für GNOME. Für KDE und seinen Dateimanager Dolphin braucht ihr einige Anpassungen:

  • Die URL beginnt ganz normal mit https:// statt davs://.
  • Dolphin nutzt kio anstelle von gfvs, also stellt sicher, dass die notwendigen Pakete installiert sind.
  • Lesezeichen werden in ~/.local/share/user-places.xbel gespeichert, aber lassen sich direkt setzen, so dass ein manuelles Bearbeiten der Datei nicht notwendig ist.

von chris am 26.01.2026 17:19


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.

Gemeinsame Dateien

Mit bindfs kann man auf das Dateisystem von Waydroid zugreifen:

sudo apt install bindfs
mkdir ~/Waydroid
sudo bindfs --mirror=$(id -u) ~/.local/share/waydroid/data/media/0 ~/Waydroid

Nach der Installation von bindfs wird der Ordner „Waydroid“ im eigenen Verzeichnis angelegt und das Dateisystem des Androids in Waydroid dahin „verbunden“. Jetzt kann man einfach Dateien über das Verzeichnis „~/Waydroid“ austauschen.

Siehe auch Setting up a shared folder.

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


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


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


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


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.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


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


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


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


29.12.2011

Manuel Kaderli (suntsu)

Authenticate to smugmug with oAuth and c#

Some weeks ago, i tried to create a windows phone 7 smugmug app(photo browser). I had some problems with oAuth at the beginning, First, I tried the google oAuth implementation in c# with the result that the first request(AcquireRequestToken) worked, but the second request(AcquireAccessToken) failed with an invalid signature. Then i tried to implement it myself with the same result.

Even with the smugmug oAuth documentation, i found it quite hard to get it done. Some parts like the authorize parameters(public/full/read/modify) i had to figure out myself.

After some time, i found an c# oAuth class written for twitter access for cropperplugins.codeplex. With this code, i was at least able to get a proper AccessToken for smugmug. I've written a little demo application if someone else has the same problems.

To get this sample working, you only have to set you apiKey and secret. This sample will do: 1. Get a request token and a request token secret 2. Authorize the request token 3. With the request token secret, acquire a access token 4. This access token and access token secret are used for all further authentication, and should not expire until the user revokes them.

        private void AuthenticateSmugmug()
        {
            const string apiKey = "YOURAPIKEY";//apikey from your smugmug account
            const string secret = "YOUR_SECRET";//secret from your smugmug account

        Console.WriteLine("Create new instance of OAuth Manager");
        Manager manager = new Manager(apiKey, secret);

        Console.WriteLine("Aquire a request token from smugmug");
        OAuthResponse requestToken = manager.AcquireRequestToken("http://api.smugmug.com/services/oauth/getRequestToken.mg", "GET");

        string oauthToken = requestToken["oauth_token"];
        Console.WriteLine(string.Format("oauthToken: {0}", oauthToken));
        string oauthTokenSecret = requestToken["oauth_token_secret"];
        Console.WriteLine(string.Format("oauthTokenSecret: {0}", oauthTokenSecret));

        //Opens your default browser and authorize your request token
        //Parameters: Access=[Public|Full], Permissions=[Read|Add|Modify]
        System.Diagnostics.Process.Start(string.Format("http://api.smugmug.com/services/oauth/authorize.mg?oauth_token={0}&Access=Full&Permissions=Modify", oauthToken));

        Console.WriteLine("Please enter you credentials into the browser before continuing");
        Console.WriteLine("Press any key to continue...");
        Console.ReadLine();

        OAuthResponse accessToken = manager.AcquireAccessToken("http://api.smugmug.com/services/oauth/getAccessToken.mg", "GET", oauthTokenSecret);

        Console.WriteLine(string.Format("accessToken: {0}", accessToken["oauth_token"]));
        Console.WriteLine(string.Format("accessTokenSecret: {0}", accessToken["oauth_token_secret"]));
        Console.WriteLine("Press any key to quit the application");
        Console.ReadLine();
    }

This is the complete source code for the oAuth sample. It's c# written in Visual Studio 10: To get this sample working, just enter your Api Key and Secret. SmugmugOAuthSample.zip

von suntsu (nospam@example.com) am 29.12.2011 09:31


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 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
04.07.2026 09:01 (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.