<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="https://planet.debianforum.de">
	<title>planet.debianforum.de</title>
	<link>https://planet.debianforum.de</link>
	<description>planet.debianforum.de - https://planet.debianforum.de</description>
	<atom:link rel="self" href="https://planet.debianforum.de/rss10.xml" type="application/rss+xml"/>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="https://zockertown.de/s9y/index.php?/archives/1831-guid.html" />
			<rdf:li rdf:resource="https://zockertown.de/s9y/index.php?/archives/1829-guid.html" />
			<rdf:li rdf:resource="https://blog.atari-frosch.de/?p=20708" />
			<rdf:li rdf:resource="https://hangup.de/?p=354" />
			<rdf:li rdf:resource="https://blog.atari-frosch.de/?p=20696" />
			<rdf:li rdf:resource="https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wlan%e2%80%91audits/" />
			<rdf:li rdf:resource="https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wireless%e2%80%91audits/" />
			<rdf:li rdf:resource="https://www.my-it-brain.de/wordpress/?p=4336" />
			<rdf:li rdf:resource="https://hangup.de/?p=343" />
			<rdf:li rdf:resource="https://www.my-it-brain.de/wordpress/?p=4329" />
			<rdf:li rdf:resource="https://blog.mdosch.de/2026/04/11/iortcw-return-to-castle-wolfenstein-auf-debian-spielen/" />
			<rdf:li rdf:resource="https://blog.jkip.de/?p=1493" />
			<rdf:li rdf:resource="https://www.christoph-wickert.de/?p=1219" />
			<rdf:li rdf:resource="https://blog.jkip.de/?p=1481" />
			<rdf:li rdf:resource="https://www.christoph-wickert.de/?p=1195" />
			<rdf:li rdf:resource="https://www.datenteiler.de/?p=10579" />
			<rdf:li rdf:resource="https://www.datenteiler.de/?p=10534" />
			<rdf:li rdf:resource="https://maltris.org/?p=7511" />
			<rdf:li rdf:resource="https://blog.aero2k.de/posts/containermanagement/" />
			<rdf:li rdf:resource="https://blog.aero2k.de/posts/take-back-the-web/" />
			<rdf:li rdf:resource="https://blog.mdosch.de/2025/08/13/openmohaa-medal-of-honor-allied-assault-auf-debian-spielen/" />
			<rdf:li rdf:resource="https://maltris.org/?p=7777" />
			<rdf:li rdf:resource="https://suckup.de/?p=7063" />
			<rdf:li rdf:resource="https://suckup.de/?p=7054" />
			<rdf:li rdf:resource="http://invia1200.wordpress.com/?p=8015" />
			<rdf:li rdf:resource="http://invia1200.wordpress.com/?p=8012" />
			<rdf:li rdf:resource="https://kupschke.eu/?p=1041" />
			<rdf:li rdf:resource="https://www.pc-howto.com/?p=4354" />
			<rdf:li rdf:resource="https://kupschke.eu/?p=1008" />
			<rdf:li rdf:resource="https://www.pc-howto.com/?p=4347" />
			<rdf:li rdf:resource="https://zefanjas.de/?p=3105" />
			<rdf:li rdf:resource="https://zefanjas.de/?p=3069" />
			<rdf:li rdf:resource="https://vinzv.de/?p=922104003" />
			<rdf:li rdf:resource="http://www.fz6fazer.net/wordpress/?p=797" />
			<rdf:li rdf:resource="https://curius.de/blog/13-betriebssysteme/desktop/open-source/659-centos-mit-unklarem-supportstatus" />
			<rdf:li rdf:resource="https://www.schiessle.org/articles/2017/07/09/welcome-to-my-new-homepage/" />
			<rdf:li rdf:resource="https://curius.de/blog/14-dienste/276-datenabfluss-bei-facebook-eine-nachbetrachtung" />
			<rdf:li rdf:resource="https://www.schiessle.org/articles/2009/02/01/an-awesome-event-is-over-kde-42-release-party-and-fellowship-meeting-in-stuttgart/" />
			<rdf:li rdf:resource="http://marmaro.de/lue/txt/2018-07-05.txt" />
			<rdf:li rdf:resource="https://malte-kiefer.de/blog/Threema-Lizenzen/" />
			<rdf:li rdf:resource="http://marmaro.de/lue/txt/2018-03-08.txt" />
			<rdf:li rdf:resource="http://vinzv.de/?p=922102283" />
			<rdf:li rdf:resource="https://www.chrismoonlight.de/wordpress/?p=2601" />
			<rdf:li rdf:resource="https://suntsu.ch/index.php?/archives/248-guid.html" />
			<rdf:li rdf:resource="https://www.chrismoonlight.de/wordpress/?p=2607" />
			<rdf:li rdf:resource="https://malte-kiefer.de/blog/Kommentare-mit-Github/" />
			<rdf:li rdf:resource="https://www.globalcitizen.red/?p=11355" />
			<rdf:li rdf:resource="http://www.black-cat-online.net/wordpress/?p=447" />
			<rdf:li rdf:resource="https://suntsu.ch/index.php?/archives/234-guid.html" />
			<rdf:li rdf:resource="https://dariansprojekt.de/?p=158" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="https://zockertown.de/s9y/index.php?/archives/1831-guid.html">
	<title>Bernd Dau (whisper): Beta-Ende und Neustart: was kommt und was ich mir dabei gedacht habe</title>
	<link>https://zockertown.de/s9y/index.php?/archives/1831-Beta-Ende-und-Neustart-was-kommt-und-was-ich-mir-dabei-gedacht-habe.html</link>
	<content:encoded>&lt;p&gt;Ich spiele selbst mit. Das wissen die meisten, die schon im globalen Chat unterwegs waren. Der Vorteil: ich merke recht schnell, wenn etwas nicht stimmt. Der Nachteil:&lt;br /&gt;
manchmal liegt der Entwickler in mir mit dem Spieler in mir im Clinch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aber zur Sache.&lt;/strong&gt; Die Beta neigt sich dem Ende. In den nächsten Tagen kommt ein Reset, alle Spielstände werden zurückgesetzt, die Tester-Accounts fallen weg.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wer bisher&lt;/strong&gt; &lt;strong&gt;dabei war&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Danke. Es war ein holpriger Start mit einigen Bugs, aber das Feedback hat geholfen und einiges davon ist schon eingeflossen.&lt;/p&gt;

&lt;p&gt;Die Abstimmung zum Spielziel habe ich ausgewertet. Das Saison-Modell hat gewonnen: ein klarer Zeitrahmen, ein klares Ziel, dann Reset und neue Runde.&lt;/p&gt;

&lt;p&gt;Wie lang eine Saison geht und was den Sieger auszeichnet, dazu kommt noch ein separater Beitrag.&lt;/p&gt;

&lt;p&gt;Bis zum Reset kommen noch ein paar Änderungen ins Spiel. Ich verrate noch nicht alles, aber: Planeten bekommen mehr Gewicht, nicht nur für die Produktion. Wer mehr davon hält, kommt auch in der Forschung weiter. Und eine der Rassen bekommt eine neue Technologie, die defensiv ausgerichtet ist. Welche das ist, findet sich im Spiel.&lt;/p&gt;

&lt;p&gt;Für die erste Saison ist außerdem ein Abstimmungssystem geplant, direkt im Dashboard. Ich hatte bisher den globalen Chat dafür verwendet, was funktioniert hat, aber umständlicher war als es sein müsste.&lt;/p&gt;

&lt;p&gt;Rückmeldungen wie immer: per Chat im Spiel, über das Feedback-Formular oder als Kommentar hier.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;</content:encoded>
	<dc:date>2026-05-30T16:00:00+00:00</dc:date>
	<dc:creator>bed</dc:creator>
</item>
<item rdf:about="https://zockertown.de/s9y/index.php?/archives/1829-guid.html">
	<title>Bernd Dau (whisper): MMO-20044: Wie ein Solo-Entwickler mit KI-Unterstützung ein MMO baut</title>
	<link>https://zockertown.de/s9y/index.php?/archives/1829-MMO-20044-Wie-ein-Solo-Entwickler-mit-KI-Unterstuetzung-ein-MMO-baut.html</link>
	<content:encoded>&lt;p&gt;Vor einigen Wochen hatte ich eine Idee: ein textbasiertes Browser-Space-MMO, angelehnt an ein Konzept, das ich 2004 mal skizziert hatte. Dass es in 22 Entwicklungssessions live gehen und eine aktive Community anziehen würde, hatte ich nicht erwartet. Dieser Artikel beschreibt, wie das möglich war.&lt;/p&gt;

&lt;h3&gt;Der ehrliche Spoiler: Ich hatte Hilfe&lt;/h3&gt;

&lt;p&gt;MMO-20044 wurde nicht allein von mir programmiert. Mein Entwicklungspartner heißt Claude, ein KI-Assistent von Anthropic. Aber &quot;KI hat den Code geschrieben&quot; trifft es nicht richtig. Die Realität ist differenzierter und, wie ich finde, interessanter.&lt;/p&gt;

&lt;h3&gt;Superpowers: Der Workflow macht den Unterschied&lt;/h3&gt;

&lt;p&gt;Das Entscheidende liegt nicht im KI-Modell selbst, sondern in einem Workflow-Framework namens &lt;strong&gt;Superpowers&lt;/strong&gt;, einem strukturierten System für KI-gestützte Softwareentwicklung. Der Ablauf für jedes Feature sieht so aus:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Brainstorming:&lt;/strong&gt; Ich beschreibe die Idee, die KI stellt gezielte Fragen, wir erarbeiten gemeinsam ein Design&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Spec schreiben:&lt;/strong&gt; Ein vollständiges Designdokument wird erstellt und von mir genehmigt&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Implementierungsplan:&lt;/strong&gt; Jede Aufgabe wird in kleine, testbare Schritte aufgeteilt&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Subagent-Driven Development:&lt;/strong&gt; Für jede Aufgabe wird ein frischer KI-Subagent beauftragt, der TDD (Test-Driven Development) folgt&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Zwei Review-Stufen:&lt;/strong&gt; Erst prüft ein Spec-Reviewer, ob die Anforderungen erfüllt sind, dann ein Code-Quality-Reviewer, ob der Code sauber ist&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das klingt aufwändiger als &quot;schreib mir eine Funktion&quot;, und das ist es auch. Aber genau das macht den Unterschied zwischen Code-Snippets und einem echten Produkt.&lt;/p&gt;

&lt;h3&gt;Was ich beigetragen habe&lt;/h3&gt;

&lt;p&gt;Meine Rolle war die des Produktmanagers und Spieldesigners. Ich habe entschieden:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Welche Features gebaut werden (und welche nicht, YAGNI ist ein echtes Prinzip)&lt;/li&gt;
    &lt;li&gt;Wie das Spielgefühl sein soll: Ticks als Währung, prozedurales Universum, taktischer Kampf&lt;/li&gt;
    &lt;li&gt;Wann etwas gut genug ist und wann es noch überarbeitet werden muss&lt;/li&gt;
    &lt;li&gt;Wie auf Community-Feedback reagiert wird&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kein einziger Implementierungsvorschlag wurde blind übernommen. Jede Spec habe ich gelesen und freigegeben, jedes Feature im Browser getestet.&lt;/p&gt;

&lt;h3&gt;22 Sessions, 311 Tests, eine lebendige Community&lt;/h3&gt;

&lt;p&gt;Das Ergebnis nach 22 Entwicklungssessions:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Tick-Engine, prozedurales Universum, 8 Rassen mit eigenem Forschungsbaum&lt;/li&gt;
    &lt;li&gt;Kampfsystem mit Narrativ, Spionage, NPC-Handelsrasse&lt;/li&gt;
    &lt;li&gt;Planetenproduktion, Reisen, Besiedeln, Action-Queue&lt;/li&gt;
    &lt;li&gt;Auth, Admin-CLI, Feedback-System, Rangliste&lt;/li&gt;
    &lt;li&gt;Chat-System (Global + Direktnachrichten) mit Bad-Word-Filter und Ungelesen-Indikator&lt;/li&gt;
    &lt;li&gt;311 automatisierte Tests, kein manuelles Klicken um Regressionen zu finden&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Was mich am meisten überrascht hat: Die Community ist aktiv. Spieler melden Exploits (1-Tick-Angriffe wurden am ersten Tag gefunden und gefixt), wünschen sich Features (parallele Forschungsslots kamen auf Feedback) und diskutieren im integrierten Chat über das Spielziel.&lt;/p&gt;

&lt;h3&gt;Was ich gelernt habe&lt;/h3&gt;

&lt;p&gt;KI-gestützte Entwicklung ist kein Autopilot. Der strukturierte Workflow, Spec vor Code, Tests vor Implementierung, Review nach jeder Aufgabe, ist nicht optional, sondern der Kern des Ansatzes. Ohne diesen Rahmen entstehen schnell technische Schulden, die jede Geschwindigkeit wieder auffressen.&lt;/p&gt;

&lt;p&gt;Die Ideen kommen vom Menschen. Die KI kann keine gute Spielmechanik erfinden, die ich nicht zuvor als Anforderung formuliert habe. Was sie kann: diese Ideen zuverlässig, schnell und mit hoher Codequalität umsetzen.&lt;/p&gt;

&lt;p&gt;Das Spiel ist kostenlos und werbefrei spielbar. Wer neugierig ist: &lt;a href=&quot;https://zockertown.de/mmo/&quot;&gt;zockertown.de/mmo/&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-05-28T17:23:00+00:00</dc:date>
	<dc:creator>bed</dc:creator>
</item>
<item rdf:about="https://blog.atari-frosch.de/?p=20708">
	<title>Sabine Becker (AtariFrosch): Deutschlandticket als Sachleistung?</title>
	<link>https://blog.atari-frosch.de/2026/05/26/deutschlandticket-als-sachleistung/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.merkur.de/wirtschaft/buergergeld-mobilitaetsanteil-vor-dem-aus-deutschlandticket-cdu-zr-94321817.html&quot;&gt;Bürgergeld-Mobilitätsanteil vor dem Aus – CDU plant Deutschlandticket als Sachleistung&lt;/a&gt; titelt der Merkur heute. Ja, im Hinblick darauf, daß das reguläre D-Ticket teurer ist als der Mobilitätsanteil im Sozialregelsatz, klingt das vielleicht erstmal verlockend. Aber.&lt;/p&gt;
&lt;p&gt;„Das Ziel: Zweckgebundene Ausgaben statt freie Verfügung über Steuergelder.“&lt;/p&gt;
&lt;p&gt;Es geht also mal wieder um den generellen Vorwurf, daß Menschen, die Sozialleistungen beziehen müssen, die „hart erarbeiteten Steuergelder“ nicht so ausgeben, wie man sich das wünscht. Also in diesem Fall, wie sich Leute von der CDU das wünschen. Diese christlichen, Ihr wißt schon.  &lt;span id=&quot;more-20708&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;picright&quot;&gt;&lt;img alt=&quot;Aufteilung des Sozialregelsatzes seit 2024. Gesamtbetrag 563 €, Anteil für Verkehr 50,50 €.&quot; height=&quot;450&quot; src=&quot;https://blog.atari-frosch.de/bilder/2026/regelsatztorte_2024-buergergeld-450x450.png&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Tatsächlich ist die Aufteilung des Sozialregelsatzes, der trotz Preissteigerungen seit 2024 unverändert gilt, keine Pflichtvorgabe. Niemand kann uns vorschreiben, wie wir die monatlich 563 € (für alleinstehende Personen) tatsächlich verwenden dürfen. Ob wir uns bessere Lebensmittel kaufen oder lieber billigere und dafür regelmäßig neue Kleidung, ob wir einmal im Jahr in den Urlaub fahren und dafür nichts anderes aus dem Bereich Freizeit und Unterhaltung kaufen etc. Damit kann uns auch niemand vorschreiben, ob und wie wir den Mobilitätsanteil verwenden. Die einen abonnieren ein Deutschland-Ticket, die anderen unterhalten ein gutes Fahrrad, ganz andere gehen sowieso nur zu Fuß und verwenden den Anteil dann völlig zu Recht für andere Dinge.&lt;/p&gt;
&lt;p&gt;Der Artikel geht allerdings davon aus, daß Menschen im Sozialleistungsbezug immer nur den ÖPNV benutzen und weder ein Fahrrad noch ein Auto noch ein anderes Verkehrsmittel (Mofa, Moped, Pedelec …) besitzen.&lt;/p&gt;
&lt;p&gt;Weiter heißt es: „Verkehrspolitiker vermuten jedoch, dass ein Großteil des Geldes anderweitig verwendet wird – während gleichzeitig die Schwarzfahrerquoten steigen.“ – Also: Ob wir das Geld für was anderes verwenden, geht die Herren Verkehrspolitiker mal gar nichts an. Und was die „Schwarzfahrer“-Quoten angeht: Steigen die denn wirklich?&lt;/p&gt;
&lt;p&gt;So klar ist das nämlich gar nicht. Bei &lt;a href=&quot;https://de.statista.com/infografik/36060/anzahl-der-polizeilich-erfassten-faelle-von-befoerderungserschleichung-in-deutschland/&quot;&gt;Statista&lt;/a&gt; ist aktuell zu lesen, daß die Zahlen der „Schwarzfahrer“ seit 2015 halbiert wurden. Das könne aber auch daran liegen, heißt es weiter, daß die Verkehrsunternehmen nicht mehr immer Strafanzeigen stellen, sondern nur das sogenannte erhöhte Beförderungsentgelt einfordern. Es gibt also eigentlich keine genauen Zahlen, mit denen man diese Aussage untermauern könnte.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Frank Heidenreich, CDU-Fraktionschef im Verkehrsverbund Rhein-Ruhr, treibt den Vorstoß voran. Seine Rechnung: Das Deutschlandticket kostet zwar 63 Euro und liegt damit über dem aktuellen Mobilitätsanteil von rund 50 Euro. Dafür entfallen jedoch Verwaltungskosten und regionale Sozialticket-Systeme wie das Deutschlandticket-Sozial in NRW.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Auf die Idee, den Verwaltungskram ohne Zwang einfacher zu machen, kommt der Herr Heidenreich nicht. Ich habe das Deutschlandticket Sozial über die Rheinbahn im Abo. Für die jährliche Abo-Verlängerung muß ich der Rheinbahn jedes Jahr erneut die aktuelle Berechtigung für das Düsseldorfer Sozialticket vorlegen, die ich jedesmal extra vom ARGE anfordern muß. Warum ich dafür eine extra Berechtigung haben muß und nicht den Düsselpaß einsetzen kann, der mir automatisch zugeschickt wird, konnte mir noch niemand so richtig erklären. Da wäre tatsächlich eine Vereinfachung möglich, ohne daß Menschen gezwungen sind, ein Deutschlandticket zu abonnieren und dann kein Geld mehr für Fahrradreparaturen oder andere Fortbewegungsmittel haben.&lt;/p&gt;
&lt;p&gt;Das lokale Sozialticket zugunsten des Deutschlandticket Sozial abzuschaffen wäre dagegen tatsächlich sinnvoll, ist aber von anderen Maßnahmen völlig unabhängig möglich. Mal vorausgesetzt, das Deutschlandticket Sozial ist auf Dauer für zwangsverarmte Menschen grundsätzlich finanzierbar. Schon die jetzt hier erhobenen 53 € pro Monat sind für manche Leute schon zu viel, weil sie andere, feste Kosten haben, die sie nicht einsparen können.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Wer ein gültiges Ticket besitzt, fährt nicht schwarz – das System Nahverkehr würde dadurch mehr Einnahmen generieren.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Aha? Also soll der Sozialhaushalt des Bundes die Verkehrsunternehmen und -verbünde finanziell unterstützen? Ich wußte gar nicht, daß das zu dessen Aufgaben gehört. Und ich dachte, bei diesem Anteil am Bundeshaushalt gehe es darum, Menschen finanziell zu unterstützen, die ihren Lebensunterhalt alleine nicht finanzieren können. Was meinen da eigentlich juristisch bewanderte Menschen zu?&lt;/p&gt;
&lt;p&gt;„Wer Geld für Tickets erhalte und trotzdem schwarzfahre, lasse andere zahlen – das sei unfair gegenüber ehrlichen Fahrgästen.“ Da ist er, der grundsätzliche Vorwurf. Das ist das gleiche wie „wer arbeiten könnte, aber es nicht tut“ – und damit verbunden die Unterstellung, das sei Normalzustand.&lt;/p&gt;
&lt;p&gt;Die Idee, die am Anfang so interessant klingt, ist also wieder mal einfach nur Armenhaß.&lt;/p&gt;</content:encoded>
	<dc:date>2026-05-26T12:26:43+00:00</dc:date>
	<dc:creator>Atari-Frosch</dc:creator>
</item>
<item rdf:about="https://hangup.de/?p=354">
	<title>(thoys): ExpressLRS 4.0 Aktualisierung</title>
	<link>https://hangup.de/expresslrs-4-0-aktualisierung/</link>
	<content:encoded>&lt;p class=&quot;wp-block-paragraph&quot;&gt;Am 6. Februar dieses Jahres erblickte die Version 4 des ExpressLRS (ELRS) Standards das Licht der Welt. Die offiziellen Veröffentlichungshinweise, könnt ihr hier auf &lt;a href=&quot;https://github.com/ExpressLRS/ExpressLRS/releases&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; nachlesen. Für mich als Anwender für Flächenmodelle hat sich in der Praxis Folgendes gezeigt:&lt;/p&gt;



&lt;span id=&quot;more-354&quot;&gt;&lt;/span&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Bisher wurde der Kanal 5 von ExpressLRS Empfängern (zumindest die von Radiomaster, bspw. ER6) für das Arming genutzt. Also, dass die Motoren (Propeller) genutzt werden können. Für mich als Flieger von Flächenmodellen bedeutete das, dass ich den Kanal 5 auf einen anderen Kanal umlegen musste (remapping), um ihn nutzen zu können. Diese Zeiten sind nun vorbei und ich finde das großartig. Das Arming kann nun über beliebige Schalter bewerkstelligt werden. &lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Weboberfläche von elrs 4.0.0&quot; class=&quot;wp-image-357&quot; height=&quot;809&quot; src=&quot;https://hangup.de/wp-content/uploads/260522_elrs_interface-1024x809.png&quot; width=&quot;1024&quot; /&gt;Weboberfläche von elrs 4.0.0&lt;/figure&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Es gibt eine neue Weboberfläche. Normalerweise, wenn man einem ELRS-Empfänger Strom gibt, schaltet dieser nach einer Minute (alles einstellbar und mein Beispiel basiert auf dem Radiomaster ER6) in den W-LAN-Modus. Das heißt, dass entweder per 10er-IP Adresse (10.0.0.1) eine Direktverbindung zwischen Notebook/Smartphone und dem Empfänger hergestellt werden kann oder bei entsprechender Einrichtung sich der Empfänger ins lokale Netz einwählt und vom Router eine IP-Adresse bekommt. Auf der Weboberfläche können Einstellungen vorgenommen werden und die Firmware kann aktualisiert werden. Die neue Version sieht strukturiert und moderner aus – was will ich mehr?&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Im Verein bekam ich nun die Information, dass mit der Version 4.0.0 ein paar Probleme, bis hin zu Verbindungsabbrüchen, auftauchten. Ich persönlich hatte seit dem Update meiner Sender und Empfänger kein Problem, aber in den Releasenotes wird ein Fehler benannt, der Hubschrauber betrifft und wohl wirklich nicht schön war. Die Version 4.0.1 ist bereits draußen. Was ich nachgelesen habe, gab es eine &lt;a href=&quot;https://github.com/ExpressLRS/ExpressLRS/issues/3636&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Fehlermeldung&lt;/a&gt; von Nutzern auf GitHub, daraufhin haben Entwickler reagiert und den Fehler behoben. Genau das begeistert mich an freier Software. Vielen Dank liebe Entwickler!&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Wer also von 3.x.x ist, der kann gleich auf die 4.0.1 aktualisieren, wer – wie ich – begeistert die 4.0.0 installiert hat sollte aktualisieren und wer dazu noch Hubschrauber fliegt, sollte vor dem nächsten Flug updaten, ansonsten kann es mehr Platz im Keller geben. &lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Mehr Infos zu ExpressLRS: &lt;a href=&quot;https://www.expresslrs.org&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://www.expresslrs.org &lt;/a&gt;&lt;br /&gt;Grundlagenartikel: &lt;a href=&quot;https://hangup.de/expresslrs-grundlagen/&quot;&gt;ExpressLRS Grundlagen&lt;/a&gt;&lt;br /&gt;Mehr Infos zu den Releases: &lt;a href=&quot;https://github.com/ExpressLRS/ExpressLRS/releases&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://github.com/ExpressLRS/ExpressLRS/releases&lt;/a&gt; &lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-05-23T12:30:00+00:00</dc:date>
	<dc:creator>Timotheus</dc:creator>
</item>
<item rdf:about="https://blog.atari-frosch.de/?p=20696">
	<title>Sabine Becker (AtariFrosch): Spaß mit Piwigo und MariaDB</title>
	<link>https://blog.atari-frosch.de/2026/05/21/spass-mit-piwigo-und-mariadb/</link>
	<content:encoded>&lt;p&gt;Vor ein paar Tagen (16.05.2026) abends und seitdem immer wieder meckerte mich ein Script aus meinem „Webseitenkleister“ &lt;a href=&quot;https://git.atari-frosch.de/?p=htmlglue.git;a=summary&quot;&gt;HTMLglue&lt;/a&gt; an. Das Modul &lt;span class=&quot;unprop&quot;&gt;randomphoto-piwigo.py&lt;/span&gt; verwende ich auf der &lt;a href=&quot;https://atari-frosch.de/&quot;&gt;Startseite meiner statischen Site&lt;/a&gt;, um dort stündlich jeweils ein anderes Zufallsfoto aus der Datenbank von Piwigo anzuzeigen, zusammen mit ein paar dazugehörigen Daten wie Autor, Foto-ID, Alben und Zeitstempel. Und auf einmal hieß es sinngemäß: Da ist eine Album-ID, zu der es keine Daten gibt. Einfach so.&lt;/p&gt;
&lt;p&gt;Die genaue Fehlermeldung:&lt;/p&gt;
&lt;div class=&quot;console&quot;&gt;
&lt;pre&gt; File &quot;~/htmlglue/sites/atarifrosch/index.py&quot;, line 14, in fetchalbumname
    albumname = albumdata[0]
                ~~~~~~~~~^^^
TypeError: 'NoneType' object is not subscriptable&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span id=&quot;more-20696&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Nach der Meldung legte sich das Script auf die Nase. Das neue Zufallsfoto wurde zwar angezeigt, aber mit den Daten des vorherigen bzw. des letzten, das ohne den Fehler rausgezogen worden war. Das ging so weit, daß seit gestern Morgen um 07:01 Uhr gar keine Daten mehr aktualisiert wurden.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;unprop&quot;&gt;albumdata&lt;/span&gt; ist dabei eine Liste aus drei Einträgen, die aus folgendem mysql-Statement (von Python/PyMySql aus) generiert wird:&lt;/p&gt;
&lt;div class=&quot;console&quot;&gt;
&lt;pre&gt;getalbumname = &quot;SELECT name, id_uppercat, status FROM pwg_categories WHERE id = &quot; + str(album)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Übergeben wird die ID eines Albums, die aus den Daten zum zuvor zufällig ausgewählten Foto gepflückt worden war. Was zurückgeliefert wird:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;unprop&quot;&gt;name&lt;/span&gt; ist der Albumname, der zu der ID gehört.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;unprop&quot;&gt;id_uppercat&lt;/span&gt; ist die ID des übergeordneten Albums (NULL/None, wenn es keines gibt).&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;unprop&quot;&gt;status&lt;/span&gt; kann „private“ oder „public“ sein.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Diese drei Werte werden in eine Liste namens &lt;span class=&quot;unprop&quot;&gt;albumdata&lt;/span&gt; geschrieben. Bzw. wenn der letzte Wert auf „private“ steht, wird das Album nicht übernommen und damit auch nicht angezeigt.&lt;/p&gt;
&lt;p&gt;Nun fiel dabei aber offenbar immer wieder eine Album-ID (&lt;span class=&quot;unprop&quot;&gt;category_id&lt;/span&gt;) heraus, der kein Name zugeordnet war, ein Album mit der ID 4186. Das muß also mal existiert haben, aber jetzt ist es weg. Die eigentliche Alben-Tabelle &lt;span class=&quot;unprop&quot;&gt;pwg_categories&lt;/span&gt; kannte es jedenfalls nicht, das habe ich direkt im CLI von MariaDB überprüft.&lt;/p&gt;
&lt;p&gt;Damit vermutete ich einen Fehler in meinem Script. Ich erweiterte das sowieso schon recht ausführliche Debug-Logging, um zu sehen, was da schiefläuft. Aber es kam immer dasselbe raus: Da wird eine Album-ID zurückgeliefert, die dann doch nicht existiert.&lt;/p&gt;
&lt;p&gt;Was ich noch überprüfte: Wann welches der beteiligten Software-Pakete das letzte Update bekommen hat.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python-Version: 3.11.2 (python3.11_3.11.2-6+deb12u7_amd64.deb, letztes Update 03.05.2026)
&lt;ul&gt;
&lt;li&gt;PyMysql: python3-pymysql_1.0.2-2+deb12u1_all.deb (29.05.2024)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Piwigo-Version: 16.4.0 (04.05.2026)&lt;/li&gt;
&lt;li&gt;PHP: php8.2 (08.05.2026)&lt;/li&gt;
&lt;li&gt;mariadb  Ver 15.1 Distrib 10.11.14-MariaDB (31.08.2025)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das im Zusammenhang mit einem &lt;a href=&quot;https://de.piwigo.org/forum/viewtopic.php?pid=9391&quot;&gt;Eintrag im Piwigo-Forum&lt;/a&gt;, auf den ich aber keine Antwort bekommen hatte.&lt;/p&gt;
&lt;p&gt;Somit hat keines der Paket-Updates einen direkten zeitlichen Bezug zu der ersten Fehlermeldung. Mag sein, daß ich Piwigo einen Tag nach Erscheinen erst von der 16.3.0 aus hochgezogen habe, aber auf keinen Fall erst über 10 Tage später.&lt;/p&gt;
&lt;p&gt;Ich scriptete und loggte und scriptete … hatte dabei aber wohl so ein bißchen ein Brett vor'm Kopp. Als ich gar nicht mehr weiter wußte, fragte ich das schlaue Fediverse:&lt;/p&gt;
&lt;div class=&quot;picleft&quot;&gt;&lt;img alt=&quot;Zwei aufeinanderfolgende Nachrichten auf Mastodon. Ich frage: „Wie kann es sein, daß mir eine (MariaDB-)Datenbank einen Wert aus einer Spalte zurückliefert, den es dort definitiv nicht gibt?“ Und Uwe Sinha antwortet: „Für was für eine Anfrage hast du den (vermeintlich?) falschen Wert denn bekommen?&quot; height=&quot;361&quot; src=&quot;https://blog.atari-frosch.de/bilder/2026/20260521-mariadb.png&quot; width=&quot;350&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Moment. Ich schaute mir das SQL-Statement nochmal an. Dann schaute ich mir das vorhergehende an, mit dem die Alben, mit welchen ein Foto verknüpft ist, abgefragt werden. Im CLI von MariaDB hatte ich ja &lt;span class=&quot;unprop&quot;&gt;pwg_categories&lt;/span&gt; abgefragt und da das mysteriöse Album mit der ID 4186 nicht gefunden. &lt;/p&gt;
&lt;p&gt;Ich war damit allerdings in der falschen Tabelle gewesen, denn es steht sehr wohl in der Verknüpfungstabelle &lt;span class=&quot;unprop&quot;&gt;pwg_image_category&lt;/span&gt;, die vorher abgefragt wird, um erst einmal an die IDs der verknüpften Alben heranzukommen:&lt;/p&gt;
&lt;div class=&quot;console&quot; style=&quot;clear: both;&quot;&gt;
&lt;pre&gt;getcat = &quot;SELECT category_id FROM pwg_image_category WHERE image_id = &quot; + str(photo)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Und Bingo: da fielen über 34.000 Foto-IDs heraus, die mit diesem mysteriösen Album verknüpft waren.&lt;/p&gt;
&lt;p&gt;Da steht also eine Album-ID in der Verknüpfungstabelle, zu welchem die eigentliche Albumtabelle nichts (mehr) weiß. Warum die da nicht mit dem Album rausgelöscht wurden, ist die große Frage. Aber ich habe zumindest aufgrund der Masse an Fotos, die darin steht, eine Vermutung, was das für ein Album war: Das OSM-Plugin zu Piwigo, das es ermöglicht, die Geokoordinaten zu einem Foto bzw. Medium auf einer Karte darzustellen, hat eine Funktion, um die Bilder, die an einem bestimmten Ort gemacht wurden, zusätzlich in virtuelle Alben zu stecken. Die hatte ich wohl mal testweise aktiviert. Dabei wurden eher zufällig diese virtuellen Alben unter einem Haupt-Album namens „Locations“ angelegt, die ich dann immer wieder gelöscht hatte.&lt;/p&gt;
&lt;p&gt;Beim Versuch, diese Funktion abzuschalten, hat die Site ewig lang gerödelt und dann einen Gateway-Fehler gemeldet. Vermutlich wurde die Datenbank dabei nicht ordentlich aufgeräumt.&lt;/p&gt;
&lt;p&gt;Die Lösung war, im MariaDB-CLI alle Einträge im Verknüpfungsalbum zu löschen, die auf diese nicht vorhandene Album-ID zeigten:&lt;/p&gt;
&lt;div class=&quot;console&quot;&gt;
&lt;pre&gt;MariaDB [piwigo]&amp;gt; delete from pwg_image_category where category_id=4186;
Query OK, 34171 rows affected (0,131 sec)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Es ist ja schön zu wissen, daß ich diesmal nicht schuld war. &lt;img alt=&quot;😉&quot; class=&quot;wp-smiley&quot; src=&quot;https://twemoji.classicpress.net/16/72x72/1f609.png&quot; style=&quot;height: 1em;&quot; /&gt; Trotzdem hätte ich mir den Aufwand dann doch gerne erspart … &lt;/p&gt;</content:encoded>
	<dc:date>2026-05-21T12:14:21+00:00</dc:date>
	<dc:creator>Atari-Frosch</dc:creator>
</item>
<item rdf:about="https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wlan%e2%80%91audits/">
	<title>Steffen Rumberger (inne): Wifite: Eine sehr einfache und automatisierte Lösung für WLAN‑Audits</title>
	<link>https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wlan%e2%80%91audits/</link>
	<content:encoded>&lt;p&gt;Wifite ist ein Tool zur Automatisierung von WLAN‑Audits. Es ist darauf ausgelegt, alle bekannten Methoden zu nutzen, um das Passwort eines WLAN‑Access‑Points (Routers) zu erlangen.&lt;br /&gt;
Dabei kombiniert es verschiedene Angriffstechniken aus der Aircrack‑NG Suite und weiteren Tools.&lt;/p&gt;
&lt;p&gt;Unterstützte Einstiegspunkte sind: WPS, WPA, WEP. Also alles Gängige.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zum einen kann man damit leicht sein eigenes WLAN testen, zum anderen hat im Forum - vor Jahren - mal jemand geschrieben, er dürfe das WLAN seines Nachbarn nutzen, wenn er die Zugriffsdaten herausbekommt … in dem Sinne - Have Fun.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Installation von Wifite und rockyou.txt&lt;/h2&gt;
&lt;p&gt;Wifite und Wörterbücher für Brute‑Force können in Kali über die Paketverwaltung installiert werden:&lt;/p&gt;
&lt;pre&gt;apt-get –install-suggests install wordlists wifite
gunzip –keep /usr/share/wordlists/rockyou.txt.gz
&lt;/pre&gt;
&lt;h2&gt;Angriff starten&lt;/h2&gt;
&lt;p&gt;Für den Start habe ich mir einen Wrapper geschrieben, der Wifite aufruft und automatisch damit beginnt, WLANs zu finden und das Passwort zu erraten oder zu knacken.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt;! &amp;gt;~/bin/wifite-wrapper
#!/usr/bin/env sh
# Wifite wrapper (WLAN-hacking)
# Usage: wifite-wrapper [ -i interface ] # wireless interface for capturing (default: auto)
sudo wifite –daemon –kill –random-mac –dict /usr/share/wordlists/rockyou.txt –power 30 -p 900 ”$@”
!
chmod +x ~/bin/wifite-wrapper
~/bin/wifite-wrapper
&lt;/pre&gt;
&lt;h3&gt;Erklärung der verwendeten Parameter:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;–daemon&lt;/code&gt;: Setzt das Interface nach beenden von Wifite vom monitor mode zurück in den managed mode
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–kill&lt;/code&gt;: Beendet Prozesse, die Airmon/Airodump stören
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–random-mac&lt;/code&gt;: Zufällige MAC‑Adresse
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–dict &lt;/code&gt;: Wörterbuch für Brute-Force
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–power &lt;/code&gt;: Nur Ziele mit Signalstärke größer als &lt;code&gt;db&lt;/code&gt; angreifen
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p &lt;s&gt;&lt;/s&gt;&lt;/code&gt;&lt;s&gt;: „Pillage“ – greift nach &lt;code&gt;s&lt;/code&gt; Sekunden alle Ziele an
&lt;/s&gt;&lt;/li&gt;&lt;s&gt;
&lt;/s&gt;&lt;/ul&gt;&lt;s&gt;
&lt;p&gt;Optional:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-i &lt;/code&gt;: WLAN‑Interface (Standard: auto)
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–nodeauths&lt;/code&gt;: Passiver Modus, keine Deauth‑Pakete
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hinweis: Bei &lt;code&gt;–nodeauths&lt;/code&gt; sollte &lt;code&gt;-p&lt;/code&gt; auf einen hohen Wert gesetzt werden (z. B. mehrere Stunden).&lt;/p&gt;
&lt;h2&gt;Signalstärke‑Anzeige (NetworkManager)&lt;/h2&gt;
&lt;p&gt;Der folgende Code zeigt, wie NetworkManager die grafischen WLAN‑Balken generiert:&lt;/p&gt;
&lt;pre&gt;cd /tmp/
apt-get source network-manager
cat network-manager-1.56.1/src/libnmc-base/nm-client-utils.c
[…]
/**
 * nmc_wifi_strength_bars:
 * @strength: the access point strength, from 0 to 100
 *
 * Converts @strength into a 4-character-wide graphical representation of
 * strength suitable for printing to stdout. If the current locale and terminal
 * support it, this will use unicode graphics characters to represent
 * ”bars”. Otherwise, it will use 0 to 4 asterisks.
 *
 * Returns: the graphical representation of the access point strength
 */
const char *
nmc_wifi_strength_bars(guint8 strength)
{
    […]
    if (strength &amp;gt; 80)
        return /* ▂▄▆█ */ ”342226202342226204342226206342226210”;
    else if (strength &amp;gt; 55)
        return /* ▂▄▆_ */ ”342226202342226204342226206_”;
    else if (strength &amp;gt; 30)
        return /* ▂▄__ */ ”342226202342226204__”;
    else if (strength &amp;gt; 5)
        return /* ▂___ */ ”342226202___”;
    else
        return /* ____ */ ”____”;
}
[…]
&lt;/pre&gt;
&lt;h2&gt;Weiterführende Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;externlink&quot; href=&quot;https://www.aircrack-ng.org/doku.php?id=compatible_cards&quot; title=&quot;Gehe zu https://www.aircrack-ng.org/doku.php?id=compatible_cards&quot;&gt;Is My Wireless Card Compatible?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;externlink&quot; href=&quot;https://github.com/derv82/wifite2&quot; title=&quot;Gehe zu https://github.com/derv82/wifite2&quot;&gt;Wifite2 – kompletter Re-Write (das Paket in Kali, sollte schon Wifite2 installieren)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/s&gt;</content:encoded>
	<dc:date>2026-05-20T05:44:25+00:00</dc:date>
</item>
<item rdf:about="https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wireless%e2%80%91audits/">
	<title>Steffen Rumberger (inne): Wifite: Eine sehr einfache und automatisierte Lösung für Wireless‑Audits</title>
	<link>https://inne.sdf-eu.org/blog/2026/05/20/wifite-eine-sehr-einfache-und-automatisierte-losung-fur-wireless%e2%80%91audits/</link>
	<content:encoded>&lt;p&gt;Wifite ist ein Tool zur Automatisierung von Wireless‑Audits. Es ist darauf ausgelegt, alle bekannten Methoden zu nutzen, um das Passwort eines WLAN‑Access‑Points (Routers) zu erlangen.&lt;br /&gt;
Dabei kombiniert es verschiedene Angriffstechniken aus der Aircrack‑ng‑Suite und weiteren Tools.&lt;/p&gt;
&lt;p&gt;Unterstützte Angriffsmethoden sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WPS:&lt;/strong&gt; Offline Pixie‑Dust Attack
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WPS:&lt;/strong&gt; Online Brute‑Force PIN Attack
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WPA:&lt;/strong&gt; WPA Handshake Capture + Offline‑Crack
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WPA:&lt;/strong&gt; PMKID Hash Capture + Offline‑Crack
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WEP:&lt;/strong&gt; Diverse bekannte Angriffe wie Fragmentation, Chop‑Chop, Aireplay usw.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Zum einen kann man damit leicht sein eigenes WLAN testen, zum anderen hat im Forum - vor Jahren - mal jemand geschrieben, er dürfe das WLAN seines Nachbarn nutzen, wenn er den Zugriff herausbekommt … in dem Sinne - Have Fun.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Installation von Wifite und rockyou.txt&lt;/h2&gt;
&lt;p&gt;Wifite und Wörterbücher für Brute‑Force können in Kali über die Paketverwaltung installiert werden:&lt;/p&gt;
&lt;pre&gt;apt-get –install-suggests install wordlists wifite macchanger bully hashcat hcxdumptool hcxpcaptool
gunzip –keep /usr/share/wordlists/rockyou.txt.gz
&lt;/pre&gt;
&lt;h2&gt;Angriff starten&lt;/h2&gt;
&lt;p&gt;Für den Start habe ich mir einen Wrapper geschrieben, der Wifite aufruft und automatisch damit beginnt, das Passwort zu erraten oder zu knacken.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt;! &amp;gt;~/bin/wifite-wrapper
#!/usr/bin/env sh
# Wifite wrapper (WiFi hacking)
# Usage: wifite-wrapper [ -i interface ] # wireless interface for capturing (default: auto)
wifite –daemon –kill –random-mac –dict /usr/share/wordlists/rockyou.txt –power 30 -p 300 ”$@”
!
chmod +x ~/bin/wifite-wrapper
sudo ~/bin/wifite-wrapper
&lt;/pre&gt;
&lt;h3&gt;Erklärung der verwendeten Parameter:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;–daemon&lt;/code&gt;: Setzt das Interface nach Beenden von Wifite vom monitor mode zurück in den managed mode
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–kill&lt;/code&gt;: Beendet Prozesse, die Airmon/Airodump stören
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–random-mac&lt;/code&gt;: Zufällige MAC‑Adresse
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–dict &lt;/code&gt;: Wörterbuch für WPA‑Cracks
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–power &lt;/code&gt;: Nur Ziele mit Signalstärke größer als &lt;code&gt;db&lt;/code&gt; angreifen
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p &lt;/code&gt;: „Pillage“ – greift nach &lt;code&gt;sec&lt;/code&gt; Sekunden alle Ziele an
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-i &lt;/code&gt;: WLAN‑Interface (Standard: auto)
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;–nodeauths&lt;/code&gt;: Passiver Modus, keine Deauth‑Pakete
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hinweis: Bei &lt;code&gt;–nodeauths&lt;/code&gt; sollte &lt;code&gt;-p&lt;/code&gt; auf einen hohen Wert gesetzt werden (z. B. mehrere Stunden).&lt;/p&gt;
&lt;h2&gt;Signalstärke‑Anzeige (NetworkManager)&lt;/h2&gt;
&lt;p&gt;Der folgende Code zeigt, wie NetworkManager die grafischen WLAN‑Balken generiert:&lt;/p&gt;
&lt;pre&gt;$ cat src/libnmc-base/nm-client-utils.c
[…]
/**
* nmc_wifi_strength_bars:
 * @strength: the access point strength, from 0 to 100
 *
 * Converts @strength into a 4-character-wide graphical representation of
 * strength suitable for printing to stdout. If the current locale and terminal
 * support it, this will use unicode graphics characters to represent
 * ”bars”. Otherwise, it will use 0 to 4 asterisks.
 *
 * Returns: the graphical representation of the access point strength
 */
const char *
nmc_wifi_strength_bars(guint8 strength)
{
    […]
    if (strength &amp;gt; 80)
        return /* ▂▄▆█ */ ”342226202342226204342226206342226210”;
    else if (strength &amp;gt; 55)
        return /* ▂▄▆_ */ ”342226202342226204342226206_”;
    else if (strength &amp;gt; 30)
        return /* ▂▄__ */ ”342226202342226204__”;
    else if (strength &amp;gt; 5)
        return /* ▂___ */ ”342226202___”;
    else
        return /* ____ */ ”____”;
}
[…]
&lt;/pre&gt;
&lt;h2&gt;Weiterführende Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;externlink&quot; href=&quot;https://www.aircrack-ng.org/doku.php?id=compatible_cards&quot; title=&quot;Gehe zu https://www.aircrack-ng.org/doku.php?id=compatible_cards&quot;&gt;Is My Wireless Card Compatible?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;externlink&quot; href=&quot;https://github.com/derv82/wifite2&quot; title=&quot;Gehe zu https://github.com/derv82/wifite2&quot;&gt;Wifite2 – komplette Neufassung (das Paket in Kali, sollte schon Wifite2 installieren)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-05-20T05:44:25+00:00</dc:date>
</item>
<item rdf:about="https://www.my-it-brain.de/wordpress/?p=4336">
	<title>Joerg Kastning (Tronde): Proof of Concept: Abfrage der nicht mehr unterstützten AppStreams über die Red Hat Lifecycle API</title>
	<link>https://www.my-it-brain.de/wordpress/proof-of-concept-abfrage-der-nicht-mehr-unterstuetzten-appstreams-ueber-die-red-hat-lifecycle-api/</link>
	<content:encoded>&lt;p&gt;Im Folgenden möchte ich euch einen Proof of Concept (PoC) vorstellen, der aus einem Gespräch mit einem meiner Kunden entstanden ist.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;AppStreams != AppStream&lt;/h2&gt;



&lt;p&gt;Es geht hier nicht um den offenen Standard &lt;a href=&quot;https://de.wikipedia.org/wiki/AppStream&quot;&gt;AppStream&lt;/a&gt;, sondern um die in RHEL 8 und RHEL 9 genutzten &lt;a href=&quot;https://www.redhat.com/en/blog/introduction-appstreams-and-modules-red-hat-enterprise-linux&quot;&gt;AppStreams&lt;/a&gt;. Letztere sind ein inzwischen abgekündigtes Konzept zur Bereitstellung verschiedener Paketversionen mit einem definierten Unterstützungszeitraum innerhalb eines Major-Release. Für weitere Informationen hierzu siehe den englischsprachigen Artikel: &lt;a href=&quot;https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle&quot;&gt;Red Hat Enterprise Linux Application Streams Life Cycle&lt;/a&gt;.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Das Risiko&lt;/h2&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Pakete aus AppStreams werden auf Servern installiert.&lt;/li&gt;



&lt;li&gt;Die Unterstützung dieser AppStreams endet und niemand merkt es.&lt;/li&gt;



&lt;li&gt;Es wird Software in der Infrastruktur betrieben, die nie wieder ein Update erhält.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;User Story&lt;/h2&gt;



&lt;p&gt;Im IT-Betrieb möchten wir die Lebenszyklusinformationen der AppStreams über eine API abfragen, deren Unterstützungszeitraum abgelaufen ist. Diese Liste möchten wir mit den auf unseren Servern installierten AppStreams abgleichen, um die Installationen zu identifizieren, die aktualisiert oder migriert werden müssen.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Lösungsansatz&lt;/h2&gt;



&lt;p&gt;Die gewünschten Informationen können über die &lt;a href=&quot;https://developers.redhat.com/api-catalog/api/roadmap&quot;&gt;Red Hat Lightspeed for RHEL Planning API&lt;/a&gt; abgerufen werden.&lt;/p&gt;



&lt;p&gt;Wer seine Systeme an der &lt;a href=&quot;https://www.redhat.com/en/hybrid-cloud-console&quot;&gt;Hybrid Cloud Console&lt;/a&gt; registriert hat, kann mit den abgelaufenen AppStreams gleichzeitig eine Liste der Systeme abrufen, auf denen diese installiert sind. Wer seine Systeme dort nicht registriert hat, kann die abgelaufenen AppStreams abfragen und die Informationen mit eigenen Mitteln weiterverarbeiten, um einen Abgleich durchzuführen.&lt;/p&gt;



&lt;p&gt;Zur Demonstration habe ich einen Proof of Concept erstellt:&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;GitHub: &lt;a href=&quot;https://github.com/Tronde/query_out_of_support_appstreams&quot;&gt;https://github.com/Tronde/query_out_of_support_appstreams&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;Codeberg.org: &lt;a href=&quot;https://codeberg.org/Tronde/query_out_of_support_appstreams&quot;&gt;https://codeberg.org/Tronde/query_out_of_support_appstreams&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Die Repos beinhalten eine README.md mit der Dokumentation des Bash- und Python-Skripts sowie Links zu weiterführenden Informationen.&lt;/p&gt;



&lt;p&gt;Falls euch dieses Beispiel gefällt, gebt ihm doch gerne einen Stern im jeweiligen Repository oder hinterlasst hier einen Kommentar.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Was gibt es dazu sonst noch wissenswertes?&lt;/h2&gt;



&lt;p&gt;Die in RHEL Lightspeed enthaltene Roadmap/Lifecycle-Anwendung verhält sich für einige User unerwartet. Als installiert werden AppStreams angezeigt, die auf einem System aktiviert sind. Dies ist auch der Fall, wenn ein &lt;em&gt;Module Stream&lt;/em&gt; lediglich aktiviert ist, aber kein RPM-Paket aus diesem Stream tatsächlich installiert wurde. Dies kann zu einer Fehlinterpretation führen.&lt;/p&gt;



&lt;p&gt;Red Hat liegt ein &lt;em&gt;Feature Request&lt;/em&gt; vor, um dieses Verhalten zu ändern und nur AppStreams aufzuführen, deren RPM-Pakete tatsächlich installiert wurden. Mir liegen keine Informationen vor, ob und wann Red Hat dies umsetzen wird.&lt;/p&gt;



&lt;p&gt;Des Weiteren liegt Red Hat die Anfrage vor, die Lightspeed Planning App als &lt;a href=&quot;https://docs.redhat.com/en/documentation/red_hat_satellite/6.19/html/installing_satellite_server_in_a_connected_network_environment/performing-additional-configuration-on-server_satellite#installing-and-configuring-red-hat-lightspeed-in-satellite&quot;&gt;on-premises App im Satellite&lt;/a&gt; bereitzustellen. Auch hier kann ich leider nicht vorhersagen, ob und wann dies umgesetzt wird.&lt;/p&gt;



&lt;p&gt;Falls ihr euch dafür interessiert, nehmt bitte Kontakt zum Red Hatter eures Vertrauens auf.&lt;/p&gt;</content:encoded>
	<dc:date>2026-05-18T05:00:00+00:00</dc:date>
	<dc:creator>Jörg Kastning</dc:creator>
</item>
<item rdf:about="https://hangup.de/?p=343">
	<title>(thoys): Ubuntu 26.04 – Ein kleiner Eindruck</title>
	<link>https://hangup.de/ubuntu-26-04-ein-kleiner-eindruck/</link>
	<content:encoded>&lt;p class=&quot;wp-block-paragraph&quot;&gt;Was Ubuntu 26.04 Resolut Racoon (Entschlossener Waschbär) unter der Haube alles mitbringt, dafür gibt es genug Artikel auf &lt;a href=&quot;https://osbn.de/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;OSBN&lt;/a&gt;. Vielen Dank an alle Autoren!&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Ich habe es mir gestern Abend noch installiert. Warum? Weil mein Lenovo Thinkpad T14 Gen3 Core i7-1265U mindestens 40 Sekunden brauchte, bis die Eingabe des Passworts von der LVM Festplattenverschlüsselung kam. Das war super ärgerlich, gerade wenn man mal „schnell“ was nachschauen will. Und tatsächlich hat es sich auf etwa 20 Sekunden verkürzt. &lt;/p&gt;



&lt;span id=&quot;more-343&quot;&gt;&lt;/span&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Was gut ist&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Die Optik. Es sieht mit Gnome 50 wirklich schick aus. &lt;/li&gt;



&lt;li&gt;Der Start geht wirklich schnell.&lt;/li&gt;



&lt;li&gt;Ein paar Programme wurden ausgetauscht. Gerade beim pdf-Reader war das auch streng notwendig. An den neuen Systemmonitor muss ich mich etwas gewöhnen. &lt;/li&gt;



&lt;li&gt;Der Autostart ist jetzt bei den Anwendungen in den Einstellungen. &lt;/li&gt;



&lt;li&gt;Bisher komme ich ohne Gnome-Optimierungen aus. Das ist kein Qualitätsmerkmal, aber hat ja auch was, wenn man mit den vorhandenen Werkzeugen auskommt. &lt;/li&gt;
&lt;/ul&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Was in Zukunft noch wachsen darf&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Nicht alle Dialoge sehen gleich aus. Der Speicherndialog von Libreoffice sieht vollkommen anders aus, als der von GIMP oder dem Texteditor. &lt;/li&gt;



&lt;li&gt;Manche Programme (warum manche?) haben das Phänomen, dass ein Speicherndialog (Auswahl des Speicherortes) nicht verschiebbar ist. Beispielsweise wenn ich mithilfe des Scanprogrammes etwas scanne und dann speichere, dann klicke ich auf speichern und merke dann, dass ich das Datum des Dokuments nicht kenne. Also möchte ich das Speichern-Fenster zur Seite schieben. Leider wird das eigentliche Programmfenster dann super klein. Es funktioniert einfach nicht. Ich muss dann das Speichern-Fenster schließen, das Datum merken und neu Speichern. Ist eine Kleinigkeit, nervt aber. Siehe die Bilder unten. &lt;/li&gt;



&lt;li&gt;Wenn ich einen Drucker installieren möchte, stürzt der Computer komplett ab (geht aus). Ich konnte den Drucker im Browser mithilfe von CUPS per http://localhost:631/ aufrufen und dort den Drucker installieren. &lt;/li&gt;



&lt;li&gt;Das Zurückspielen meiner Daten von einer externen Festplatte hat das System vollständig belegt (Festplatte) und dadurch ging wirklich nichts mehr. Das mag normal sein, hat mich aber ein wenig gewundert. Kopiergeschwindigkeit war 80 Mb/s&lt;/li&gt;



&lt;li&gt;Die Seitenleiste von Gnome (das Dash, das per Erweiterung eingeblendet wird) hat manch gewohnte Funktion nicht. Bspw, wenn aus dem Dateimanager eine Datei zu einer bereits geöffneten neuen Mail hinzugefügt werden soll, kann man es nicht auf das Symbol ziehen. (Unity damals konnte das und Windows auch, daher die Gewohnheit)&lt;/li&gt;
&lt;/ul&gt;



&lt;figure class=&quot;wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex&quot;&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Speicherndialog vor Scannerfenster&quot; class=&quot;wp-image-347&quot; height=&quot;640&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-08-08-51-min-min-1024x640.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Scannerfenster nachdem der Speicherndialog geschlossen wurde&quot; class=&quot;wp-image-349&quot; height=&quot;640&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-08-09-00-min-min-1024x640.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Verkeinertes Scannerfenster&quot; class=&quot;wp-image-348&quot; height=&quot;640&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-08-09-11-min-min-1024x640.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Speicherndialog LibreOffice&quot; class=&quot;wp-image-345&quot; height=&quot;640&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-08-09-27-min-1024x640.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Gimp schön eingerichtet&quot; class=&quot;wp-image-346&quot; height=&quot;640&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-08-13-28-min-1024x640.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Einstellungen einer Anwendung&quot; class=&quot;wp-image-344&quot; height=&quot;686&quot; src=&quot;https://hangup.de/wp-content/uploads/Bildschirmfoto-vom-2026-04-24-10-45-53-min-1024x686.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
&lt;/figure&gt;



&lt;div class=&quot;wp-block-spacer&quot; style=&quot;height: 16px;&quot;&gt;&lt;/div&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Fazit: Wer mit 24.04 oder einer Zwischenversion keine Probleme hat, sollte bis 26.04.1 warten, es hat schon seinen Grund, warum vorhandene Systeme erst zu diesem Zeitpunkt eine Updatemöglichkeit bekommen. Ansonsten bekommt man ein aufgefrischtes System mit genau so viel Veränderung, dass es gut und nicht zu viel ist. Obwohl es gerade einen Tag alt ist, kann man jetzt schon damit produktiv arbeiten. Und der entschlossene Waschbär ist einfach nur lustig.&lt;/p&gt;</content:encoded>
	<dc:date>2026-04-24T17:46:34+00:00</dc:date>
	<dc:creator>Timotheus</dc:creator>
</item>
<item rdf:about="https://www.my-it-brain.de/wordpress/?p=4329">
	<title>Joerg Kastning (Tronde): Erfahrungsbericht: Firmware-Update für GL.iNet GL-A1300 mit OpenWrt</title>
	<link>https://www.my-it-brain.de/wordpress/erfahrungsbericht-firmware-update-fuer-gl-inet-gl-a1300-mit-openwrt/</link>
	<content:encoded>&lt;p&gt;Ich nutze einen &lt;a href=&quot;https://www.my-it-brain.de/wordpress/erfahrungsbericht-reise-router-gl-inet-gl-a1300-mit-openwrt/&quot;&gt;GL.iNet GL-A1300 als Reise-Router&lt;/a&gt;. Bei diesem führe ich ein Firmware-Update durch und berichte hier von meiner Erfahrung damit.&lt;/p&gt;



&lt;p&gt;Es handelt sich dabei um kein Tutorial oder eine Schritt-für-Schritt-Anleitung, sondern eher um eine persönliche Bewertung. Der Text enthält Links zu den verwendeten Quellen.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Warnung:&lt;/strong&gt; Ein fehlgeschlagenes Firmware-Update kann euer Gerät unbenutzbar machen. Ich gehe in diesem Text nicht darauf ein, wie man ein Gerät nach einem fehlgeschlagenen Firmware-Update wiederherstellt. Wenn ihr diesem Artikel folgt, tut ihr dies auf eigene Gefahr.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;IST-Zustand&lt;/h2&gt;



&lt;p&gt;Aktuell läuft mein Reise-Router mit der Firmware &lt;code&gt;OpenWrt 24.10.5 r29087-d9c5716d1d / LuCI openwrt-24.10 branch 25.340.26705~d88390b&lt;/code&gt;. Zu dem Zeitpunkt, wo ich diesen Text schreibe, ist das &lt;a href=&quot;https://openwrt.org/releases/25.12/notes-25.12.2&quot;&gt;Release 25.12.2&lt;/a&gt; aktuell, welches am 27. März 2026 veröffentlicht wurde.&lt;/p&gt;



&lt;p&gt;Die &lt;a href=&quot;https://openwrt.org/toh/gl.inet/gl-a1300&quot;&gt;Geräteseite im OpenWrt-Wiki&lt;/a&gt; weist für mein Modell noch die 24.10.5 als aktuelle Firmware aus. Jedoch haben mich zwei meiner Arbeitskollegen darauf hingewiesen, dass ich besser den &lt;a href=&quot;https://firmware-selector.openwrt.org/?version=25.12.2&quot;&gt;Firmware Selector&lt;/a&gt; verwenden solle, da dieser aktuelle Informationen beinhaltet, während das Wiki etwas hinterher hängt.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;SOLL-Zustand&lt;/h2&gt;



&lt;p&gt;Die Ergebnisseite des OpenWrt Firmware Selector zeigt für mein Gerät an, dass die Firmware-Version 25.12.2 unterstützt wird.&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;img alt=&quot;Ergebnisseite des Firmware Selector für das Gerät GL.iNet GL-A1300.&quot; class=&quot;wp-image-4330&quot; height=&quot;580&quot; src=&quot;https://www.my-it-brain.de/wordpress/wp-content/uploads/2026/04/image-800x580.png&quot; width=&quot;800&quot; /&gt;Firmware-Version 25.12.2 untersützt den GL.iNet GL-A1300.&lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Dann soll dies die neue Firmware für meinen Reise-Router werden.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Meine Erwartungshaltung&lt;/h2&gt;



&lt;p&gt;Ich erwarte keinerlei Probleme, sodass ich nach den folgenden 5 Schritten fertig bin.&lt;/p&gt;



&lt;ol class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Ich lade das Sysupgrade für mein Modell herunter.&lt;/li&gt;



&lt;li&gt;Ich lade das Sysupgrade im LuCI Web Interface hoch und starte das Firmware-Update.&lt;/li&gt;



&lt;li&gt;Der Reise-Router startet neu und lädt die neue Firmware-Version.&lt;/li&gt;



&lt;li&gt;Meine Konfiguration wird übernommen.&lt;/li&gt;



&lt;li&gt;Ich melde mich mit den bekannten Zugangsdaten an.&lt;/li&gt;
&lt;/ol&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Der tatsächliche Verlauf&lt;/h2&gt;



&lt;blockquote class=&quot;wp-block-quote is-layout-flow wp-block-quote-is-layout-flow&quot;&gt;
&lt;p&gt;„Ich mach noch kurz ein Firmware-Update.“&lt;/p&gt;
&lt;cite&gt;Berühmte letzte Worte eines unbekannten Sysadmins.&lt;/cite&gt;&lt;/blockquote&gt;



&lt;p&gt;Da es mir die Seite im folgenden Bild anbietet, erstelle ich vor dem Update noch ein Backup. Hierbei wird ein TAR-Archiv erzeugt, welches ich auf meinem Laptop speichere.&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;img alt=&quot;Seite im LuCI Web Interface für Flash operations. Die Seite bietet Optionen zum Erstellen eines Backups, zum Restore eines zuvor erstellten Backups und zum Upload eines Firmware-Images.&quot; class=&quot;wp-image-4331&quot; height=&quot;530&quot; src=&quot;https://www.my-it-brain.de/wordpress/wp-content/uploads/2026/04/image-1-800x530.png&quot; width=&quot;800&quot; /&gt;Seite im LuCI Web Interface zur Erstellung von Backups und Durchführung von Firmware-Updates.&lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Das folgende Bild zeigt den Dialog, der erscheint, nachdem das Firmware-Image hochgeladen wurde. Ich habe diesen einfach mit einem Klick auf Continue bestätigt.&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4332&quot; height=&quot;307&quot; src=&quot;https://www.my-it-brain.de/wordpress/wp-content/uploads/2026/04/image-2.png&quot; width=&quot;605&quot; /&gt;Bestätigungsdialog zum Start des Firmware-Updates.&lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Während die Firmware auf das Gerät geflasht wird, blinkt die LED des GL-A1300 schnell. Leuchtet sie wieder dauerhaft, ist das Firmware-Update beendet. Ich verbinde mich erneut mit dem WLAN des Reise-Routers und lade die Seite neu.&lt;/p&gt;



&lt;p&gt;Zwar läuft mein Reise-Router jetzt mit der neuen Firmware 25.12.2, jedoch sind die beiden Pakete Travelmate und AdBlock-Fast nicht mehr installiert. Ich vermute, dass dies damit zusammenhängt, dass sich bei dieser Firmware-Verstion der Paketmanager von &lt;code&gt;opkg&lt;/code&gt; zu &lt;code&gt;apk&lt;/code&gt; geändert hat. Ich verbinde mich daher per SSH zu meinem Router und installiere die Pakete über die Kommandozeile neu:&lt;/p&gt;



&lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;root@bifrost:~# apk add travelmate luci-app-travelmate luci-app-travelmate
…
root@bifrost:~# apk add gawk grep sed coreutils-sort&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Nach einem anschließenden Neustart ist auch das Top-Level-Menü „Services“ im LuCI Web Interface wieder vorhanden. Und nicht nur der Menüpunkt auch die Konfiguration der Services ist noch vorhanden. Welch ein Glück.&lt;/p&gt;



&lt;p&gt;Vielleicht aktiviere ich beim nächsten Firmware-Update die Option &lt;code&gt;Include in backup a list of current installed packages at /etc/backup/installed_packages.txt&lt;/code&gt;. Dies kann mir ggf. die Neuinstallation erleichtern.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Fazit&lt;/h2&gt;



&lt;p&gt;Die Vorgehensweise beim Firmware-Update ist bei diesem Gerät in meinen Augen nicht ganz so einfach wie bei den gängigen Geräten der Internetdiensteanbieter aber auch kein Hexenwerk.&lt;/p&gt;



&lt;p&gt;Ob es mit dem Wechsel des Paketmanagers zusammenhängt, dass ich die Pakete Travelmate und AdBlock-Fast neu installieren musste, kann ich nicht mit Sicherheit sagen. Ich werde das bei zukünftigen Updates mal im Auge behalten.&lt;/p&gt;



&lt;p&gt;Nun werde ich erstmal die restlichen Geräte der Familie für die Nutzung des Reise-Routers konfigurieren.&lt;/p&gt;</content:encoded>
	<dc:date>2026-04-20T05:00:00+00:00</dc:date>
	<dc:creator>Jörg Kastning</dc:creator>
</item>
<item rdf:about="https://blog.mdosch.de/2026/04/11/iortcw-return-to-castle-wolfenstein-auf-debian-spielen/">
	<title>Martin Dosch (Dogge): iortcw: Return to Castle Wolfenstein auf Debian spielen</title>
	<link>https://blog.mdosch.de/2026/04/11/iortcw-return-to-castle-wolfenstein-auf-debian-spielen/</link>
	<content:encoded>&lt;p&gt;Ich habe letztes Jahr bereits beschrieben, wie man
&lt;a href=&quot;https://blog.mdosch.de/2025/08/13/openmohaa-medal-of-honor-allied-assault-auf-debian-spielen/&quot;&gt;Medal of Honor: Allied Assault unter Debian installieren&lt;/a&gt; (und spielen 😉)
kann. Da mittlerweile &lt;em&gt;Return to Castle Wolfenstein&lt;/em&gt; &lt;a href=&quot;https://www.bundesanzeiger.de/pub/publication/rIBMaUHpm3JNwYB1CtR/content/rIBMaUHpm3JNwYB1CtR/BAnz%20AT%2030.03.2026%20B6.pdf&quot;&gt;vom Index genommen&lt;/a&gt;
(pdf) genommen wurde, möchte ich auch für dieses Spiel die Installation beschreiben.
Diese Anleitung bezieht sich auf &lt;a href=&quot;https://www.debian.org/releases/trixie/&quot;&gt;Debian Trixie&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;spieldaten&quot;&gt;Spieldaten&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/iortcw/iortcw/&quot;&gt;&lt;em&gt;Iortcw&lt;/em&gt;&lt;/a&gt; ist zwar frei, die Grafiken und Sounds von &lt;em&gt;RtCW&lt;/em&gt; sind es aber nicht.
Um &lt;em&gt;Return to Castle Wolfenstein&lt;/em&gt; spielen zu können, benötigt man also die Daten des
Originalspiels.
Ich habe das Spiel während eines Auslandsaufenthalts bei &lt;a href=&quot;https://www.gog.com/de/game/return_to_castle_wolfenstein&quot;&gt;GOG&lt;/a&gt; gekauft. In
Deutschland wird das Spiel leider (noch?) nicht vertrieben obwohl es nicht mehr auf dem Index
ist, weil noch eine USK Alterseinstufung fehlt.&lt;/p&gt;
&lt;h3 id=&quot;debianquellen-bearbeiten&quot;&gt;Debianquellen bearbeiten&lt;/h3&gt;
&lt;p&gt;Da man die unfreien &lt;a href=&quot;https://blog.mdosch.de/index.xml#spieldaten&quot;&gt;Spieldaten&lt;/a&gt; benötigt, kann &lt;em&gt;RtCW&lt;/em&gt; nicht über
&lt;a href=&quot;https://www.debian.org/doc/debian-policy/ch-archive.html#the-main-archive-area&quot;&gt;&lt;em&gt;Debian main&lt;/em&gt;&lt;/a&gt; bereitgestellt werden, sondern befindet sich in
&lt;a href=&quot;https://www.debian.org/doc/debian-policy/ch-archive.html#the-contrib-archive-area&quot;&gt;&lt;em&gt;contrib&lt;/em&gt;&lt;/a&gt;.
Darum muss man sicher stellen, dass die &lt;em&gt;contrib&lt;/em&gt;-Quellen eingebunden sind.&lt;/p&gt;
&lt;p&gt;Wenn man das &lt;a href=&quot;https://wiki.debian.org/SourcesList#sources.list&quot;&gt;bisherige Format&lt;/a&gt; mit &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; nutzt, muss man
sicherstellen, dass &lt;em&gt;contrib&lt;/em&gt; enthalten ist. Die entsprechende Zeile sieht dann
z.B. so aus:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;deb https://deb.debian.org/debian trixie main contrib non-free-firmware
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nutzt man schon das neue &lt;a href=&quot;https://wiki.debian.org/SourcesList#debian.sources&quot;&gt;&lt;em&gt;deb822&lt;/em&gt;-Format&lt;/a&gt; kann man in die entsprechende
Datei, z.B. &lt;code&gt;/etc/apt/sources.list.d/debian.sources&lt;/code&gt;, bei &lt;code&gt;Components:&lt;/code&gt; &lt;code&gt;contrib&lt;/code&gt;
hinzufügen. Das sieht dann z.B. so aus:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# Modernized from /etc/apt/sources.list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Types: deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;URIs: https://deb.debian.org/debian/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Suites: trixie
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Components: main contrib non-free-firmware non-free
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&quot;benötigte-pakete-installieren&quot;&gt;Benötigte Pakete installieren&lt;/h3&gt;
&lt;p&gt;Nachdem man die &lt;a href=&quot;https://blog.mdosch.de/index.xml#debianquellen-bearbeiten&quot;&gt;Debianquellen&lt;/a&gt; bearbeitet hat, aktualisiert
man die Quellen:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anschließend kann man die benötigten Pakete installieren:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt install game-data-packager rtcw lgogdownloader
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;spieldaten-paketieren&quot;&gt;Spieldaten paketieren&lt;/h3&gt;
&lt;p&gt;Die im &lt;a href=&quot;https://blog.mdosch.de/index.xml#ben%C3%B6tigte-pakete-installieren&quot;&gt;vorigen Schritt&lt;/a&gt; installierten Pakete
&lt;a href=&quot;https://packages.debian.org/trixie/game-data-packager&quot;&gt;game-data-packager&lt;/a&gt; und
&lt;a href=&quot;https://packages.debian.org/trixie/lgogdownloader&quot;&gt;lgogdownloader&lt;/a&gt; werden nun genutzt um die Spieldaten
herunterzuladen.&lt;/p&gt;
&lt;p&gt;Hat man &lt;em&gt;lgogdownloader&lt;/em&gt; bisher noch nicht genutzt, muss man sich erst anmelden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;$ lgogdownloader --login
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach werden Benutzername und Passwort abgefragt und man wird eingeloggt. Danach
kann mit dem &lt;em&gt;game-data-packager&lt;/em&gt; fortgefahren werden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;$ mkdir -p ~/Games/rtcw
$ cd ~/Games/rtcw
$ game-data-packager rtcw
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;spieldaten-installieren&quot;&gt;Spieldaten installieren&lt;/h3&gt;
&lt;p&gt;Nachdem nun die &lt;a href=&quot;https://blog.mdosch.de/index.xml#spieldaten-paketieren&quot;&gt;Spieldaten paketiert sind&lt;/a&gt;, können diese
installiert werden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt install /home/&amp;lt;USER&amp;gt;/Games/rtcw/rtcw*.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Platzhalter &lt;code&gt;&amp;lt;USER&amp;gt;&lt;/code&gt; ist natürlich durch den entsprechenden Benutzer zu ersetzen.&lt;/p&gt;
&lt;h3 id=&quot;spielen&quot;&gt;Spielen&lt;/h3&gt;
&lt;p&gt;Nun kann man &lt;em&gt;Return to Castle Wolfenstein&lt;/em&gt; spielen und in Erinnerungen schwelgen,
oder diese Spiele auch zum ersten Mal genießen. Fröhliches Nazi-Ballern. 😀&lt;/p&gt;</content:encoded>
	<dc:date>2026-04-11T20:28:40+00:00</dc:date>
</item>
<item rdf:about="https://blog.jkip.de/?p=1493">
	<title>Jörg Kruse (4A4B): Einrichtung von dmarcts-report-parser auf Debian</title>
	<link>https://blog.jkip.de/einrichtung-von-dmarcts-report-parser-auf-debian/</link>
	<content:encoded>&lt;p&gt;Mit einem &lt;a href=&quot;https://de.wikipedia.org/wiki/DMARC&quot;&gt;DMARC-Record&lt;/a&gt; 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 &lt;em&gt;rua&lt;/em&gt; kann auch eine Adresse angegeben werden, an welche die Mailserver aggregierte Berichte senden können, wie hier z. B. die Adresse dmarc@example.org:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;_dmarc	3600	IN	TXT	&quot;v=DMARC1;p=quarantine;rua=mailto:dmarc@example.org&quot;&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;span id=&quot;more-1493&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Da &lt;em&gt;dmarcts-report-parser&lt;/em&gt; im Repository von Debian Trixie enthalten ist, ist die Installation einfacher als auf der &lt;a href=&quot;https://github.com/techsneeze/dmarcts-report-parser&quot;&gt;Github-Seite&lt;/a&gt; angegeben:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;# apt install dmarcts-report-parser&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;$imapmovefolder = 'dmarc.processed';&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nachdem die Konfigurationsdatei fertiggestellt ist, kann ein erster Prozess angestoßen werden:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;# dmarcts-report-parser -i&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In der Datenbank sollten dann die Tabellen &lt;em&gt;rptrecord&lt;/em&gt; und &lt;em&gt;report&lt;/em&gt; 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:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;# This tool/script is run via CRON only if the below IS_CONFIGURED variable is set to &quot;1&quot;
IS_CONFIGURED=&quot;1&quot;&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;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: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;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&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mit einem ergänzendem Statement &lt;code&gt;WHERE disposition != &quot;none&quot;&lt;/code&gt; ließe sich der View auch auf die problematischen Einträge beschränken, bei denen Emails geblockt oder in die Quarantäne verschoben wurden.&lt;/p&gt;</content:encoded>
	<dc:date>2026-03-23T14:53:28+00:00</dc:date>
	<dc:creator>Jörg Kruse</dc:creator>
</item>
<item rdf:about="https://www.christoph-wickert.de/?p=1219">
	<title>Christoph Wickert (raoul): Lesbare Domain-Namen mit MyFRITZ!</title>
	<link>https://www.christoph-wickert.de/2026/03/02/lesbare-domain-namen-mit-myfritz/</link>
	<content:encoded>&lt;p&gt;Damit FRITZ!Box-Nutzende auch von unterwegs auf ihren Router oder ihr Heimnetz zugreifen können, gibt es den Online-Dienst &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://fritz.com/pages/myfritz&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;MyFRITZ!&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt;, der – neben anderen nützlichen Funktionen – &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://de.wikipedia.org/wiki/Dynamisches_DNS&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;dynamisches DNS&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt; bietet.&lt;/p&gt;



&lt;p&gt;Zur Nutzung muss man zuerst die &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://assets.avm.de/avmstart?target=myfritz-registration&amp;amp;language=de&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;FRITZ!Box registrieren&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt;. Nach der Anmeldung am &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://www.myfritz.net/&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;Portal&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt; 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 &lt;em&gt;kupzflvxinzjbygz.myfritz.net&lt;/em&gt;, den sich garantiert niemand merken kann. Die Möglichkeit, einen lesbaren Namen wie &lt;em&gt;beispiel.myfritz.lin&lt;/em&gt;k zu vergeben, ist leider gut versteckt.&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Klickt oben rechts auf Eure E-Mail-Adresse und dort auf &lt;strong&gt;&lt;em&gt;Einstellungen von MyFRITZ!Net&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;



&lt;li&gt;Klickt in der Navigation links unten auf &lt;em&gt;&lt;strong&gt;&lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://www.myfritz.net/devices/#/settings/myfritz-addresses&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;MyFRITZ!-Adressen verwalten&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;



&lt;li&gt;Klickt auf das Stift-Symbol hinter der FRITZ!Box.&lt;/li&gt;



&lt;li&gt;Wählt &lt;strong&gt;&lt;em&gt;Eigene MyFRITZ!-Adresse erstellen&lt;/em&gt;&lt;/strong&gt; und vergebt einem Namen mit mindestens 8 Zahlen und/oder Buchstaben.&lt;/li&gt;



&lt;li&gt;Damit ihr nicht bis zur nächsten Zwangstrennung warten müsst, verbindet Eure FRITZ!Box neu. Geht dazu in ihrer Oberfläche auf &lt;em&gt;&lt;strong&gt;Internet → Online-Monitor → Verbindungsdetails → Neu verbinden&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Sobald die FRITZ!Box wieder online ist, findet Ihr sie in der MyFRITZ!-Geräteübersicht unter der neuen Adresse. Viel Spaß!&lt;/p&gt;</content:encoded>
	<dc:date>2026-03-02T20:33:00+00:00</dc:date>
	<dc:creator>chris</dc:creator>
</item>
<item rdf:about="https://blog.jkip.de/?p=1481">
	<title>Jörg Kruse (4A4B): „doveadm expunge“ löscht ältere Mail nicht?</title>
	<link>https://blog.jkip.de/doveadm-expunge-loescht-aeltere-mail-nicht/</link>
	<content:encoded>&lt;p&gt;Nach 30 Tagen sollten Mails aus dem Ordner ‚xyz‘ des Users ‚joe‘ automatisch gelöscht werden. Hierzu wurde auf dem Server ein Cronjob eingerichtet, der täglich ein Script aufruft, welches den Löschauftrag mit &lt;code&gt;dovecot expunge&lt;/code&gt; ausführt:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;#!/bin/bash

/usr/bin/doveadm expunge -u 'joe' mailbox 'xyz' savedbefore 30d&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Die Kontrolle in Thunderbird am nächsten Tag ergab, dass zwar die meisten Mails aus dem Ordner ‚xyz‘ mit einem Datum älter als 30 Tage gelöscht waren, eine Mail aus dem letzten Jahr aber noch im Ordner verblieben war. Wie konnte das sein?&lt;span id=&quot;more-1481&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Das Schlüsselwort &lt;em&gt;savedbefore&lt;/em&gt; bezieht sich auf das Speicherdatum der Mails, welches folgendermaßen von &lt;em&gt;doveadm&lt;/em&gt; für die Mails des betreffenden Ordners ausgegeben werden kann:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;doveadm -f tab fetch -u 'joe' &quot;uid date.saved&quot; mailbox 'xyz'&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Und in der Tat werden dabei keine Datumsangaben älter als 30 Tage angezeigt, doveadm-expunge hat hier also korrekt gearbeitet. Thunderbird zeigt nun nicht das Speicherdatum, sondern das Empfangsdatum der Mails an und dieses lässt sich folgendermaßen von &lt;em&gt;doveadm&lt;/em&gt; ausgeben:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;doveadm -f tab fetch -u 'joe' &quot;uid date.received&quot; mailbox 'xyz'&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Bein einem Vergleich fällt hier die Mail mit der UID 9358 auf: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;# doveadm -f tab fetch -u 'joe' &quot;uid date.saved&quot; mailbox 'xyz'
uid	date.saved
....	....
9358	2026-02-03 09:10:01
....	....&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;# doveadm -f tab fetch -u 'joe' &quot;uid date.received&quot; mailbox 'xyz'
uid	date.received
....	....
9358	2025-05-06 16:53:23
....	....&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Empfangen wurde sie bereits im letzten Jahr, gespeichert erst am 03.02. diesen Jahres. Des Rätsels Lösung war letztendlich, dass diese Mail am 03.02. aus einem anderen Ordner in den Ordner ‚xyz‘ verschoben wurde und bei diesem Vorgang wird eine Mail erneut gespeichert!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;doveadm&lt;/em&gt; bezieht sich mit dem Schlüsselwort &lt;em&gt;savedbefore&lt;/em&gt; auf die &lt;strong&gt;letztmalige&lt;/strong&gt; Speicherung der Mails und bei dem Trash-Ordner beispielsweise macht dies ja durchaus Sinn:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;pre&gt;/usr/bin/doveadm expunge -u 'joe' mailbox 'Trash' savedbefore 7d&lt;/pre&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Damit werden Mails gelöscht, nachdem sie sieben Tage im Trash-Ordner verblieben sind (und nicht bereits sieben Tage, nachdem sie erstmalig empfangen wurden)&lt;/p&gt;</content:encoded>
	<dc:date>2026-02-19T10:49:27+00:00</dc:date>
	<dc:creator>Jörg Kruse</dc:creator>
</item>
<item rdf:about="https://www.christoph-wickert.de/?p=1195">
	<title>Christoph Wickert (raoul): Mailbox Drive unter Xfce, GNOME und KDE</title>
	<link>https://www.christoph-wickert.de/2026/01/26/mailbox-drive-unter-xfce-gnome-und-kde/</link>
	<content:encoded>&lt;p&gt;In der &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://kb.mailbox.org/&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;Mailbox Knowledge Base&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt; gibt es einen ausführlichen &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://kb.mailbox.org/de/privat/drive/das-drive-unter-linux-so-wird-es-eingerichtet/&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;Artikel über die Nutzung des OX Drives unter Linux&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt;, 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:&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Über die Adresszeile des Dateimanagers folgende URL (ohne Zeilenumbruch) öffnen:&lt;br /&gt;&lt;kbd&gt;davs://dav.mailbox.org/servlet/webdav.infostore/Userstore/Vorname Nachname/&lt;/kbd&gt;&lt;br /&gt;Wichtig:
&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;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 &lt;code&gt;Userstore&lt;/code&gt; öffnen, um den Namen nachzuschlagen.&lt;/li&gt;



&lt;li&gt;Wenn Thunar das Präfix &lt;kbd&gt;davs://&lt;/kbd&gt; nicht akzeptiert, müsst ihr gvfs mitsamt des WebDAV Backends &lt;code&gt;/usr/lib/gvfs/gvfsd-dav&lt;/code&gt; installieren und anschließend Thunar neu starten. Bei openSUSE finden sich alle Backends im Paket gvfs-backends.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;



&lt;li&gt;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.&lt;br /&gt;&lt;img alt=&quot;Screenshot des Dateimanager Thunar mit geöffnetem Mailbox Drive&quot; class=&quot;wp-image-1197&quot; height=&quot;438&quot; src=&quot;https://www.christoph-wickert.de/wp-content/uploads/2026/01/thunar-mailbox-drive.png&quot; width=&quot;958&quot; /&gt;
&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Wenn sichergestellt ist, dass der Zugriff funktioniert, könnt ihr euch ein Lesezeichen zum direkten Öffnen des Mailbox Drives anlegen. Dazu die Datei &lt;code&gt;~/.config/gtk-3.0/bookmarks&lt;/code&gt; im Editor eurer Wahl öffnen und eine neue Zeile anfügen:&lt;br /&gt;&lt;kbd&gt;davs://dav.mailbox.org/servlet/webdav.infostore/Userstore/Christoph%20Wickert/ Mailbox Drive&lt;/kbd&gt;&lt;/li&gt;



&lt;li&gt;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 &lt;kbd&gt;%20&lt;/kbd&gt; ersetzen. Das gilt auch für andere Sonderzeichen wie Umlaute in eurem Namen, die durch ihre &lt;a class=&quot;wpel-icon-right&quot; href=&quot;https://www.utf8-zeichentabelle.de/&quot; rel=&quot;external noopener noreferrer&quot; target=&quot;_self&quot;&gt;Entsprechungen in UTF-8&lt;i class=&quot;wpel-icon dashicons-before dashicons-external&quot;&gt;&lt;/i&gt;&lt;/a&gt; ersetzt werden müssen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;



&lt;li&gt;Denkt daran, dass ihr das Mailbox Drive auch immer ordentlich aushängt, wenn ihr Dateien verändert habt.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Diese Anleitung funktioniert auch für GNOME. Für KDE und seinen Dateimanager Dolphin braucht ihr einige Anpassungen:&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Die URL beginnt ganz normal mit &lt;kbd&gt;https://&lt;/kbd&gt; statt &lt;kbd&gt;davs://&lt;/kbd&gt;.&lt;/li&gt;



&lt;li&gt;Dolphin nutzt kio anstelle von gfvs, also stellt sicher, dass die notwendigen Pakete installiert sind.&lt;/li&gt;



&lt;li&gt;Lesezeichen werden in &lt;code&gt;~/.local/share/user-places.xbel&lt;/code&gt; gespeichert, aber lassen sich direkt setzen, so dass ein manuelles Bearbeiten der Datei nicht notwendig ist.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-01-26T17:19:21+00:00</dc:date>
	<dc:creator>chris</dc:creator>
</item>
<item rdf:about="https://www.datenteiler.de/?p=10579">
	<title>Christian Imhorst (immi): Waydroid mit Weston</title>
	<link>https://www.datenteiler.de/waydroid-mit-weston/</link>
	<content:encoded>&lt;p&gt;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. &lt;/p&gt;
&lt;p&gt;Für die Installation unter Debian/Ubuntu-Derivate wie Linux Mint werden folgende Befehle ausgeführt:&lt;/p&gt;
&lt;pre&gt;sudo apt update
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid weston -y
&lt;/pre&gt;
&lt;p&gt;Dann folgt die Installation von Waydroid mit den GAPPS:&lt;/p&gt;
&lt;pre&gt;sudo waydroid init -s GAPPS
&lt;/pre&gt;
&lt;p&gt;Wer kein Google möchte lässt alles nach &lt;code&gt;init&lt;/code&gt; weg und man muss auch keine Google-Zertifizierung machen.&lt;/p&gt;
&lt;p&gt;Starten Sie den Container:&lt;/p&gt;
&lt;pre&gt;sudo systemctl enable waydroid-container 
sudo systemctl start waydroid-container
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Mit Weston starten&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Waydroid wird dann in Westen gestartet, dazu &lt;code&gt;weston&lt;/code&gt; ausführen, das Terminal in Weston öffnen und folgendes eingeben:&lt;/p&gt;
&lt;pre&gt;waydroid show-full-ui
&lt;/pre&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;F-Droid installieren&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Um F-Droid zu installieren wird die APK unter Linux heruntergeladen, in Downloads gespeichert und anschließend mit &lt;code&gt;waydroid&lt;/code&gt; installiert:&lt;/p&gt;
&lt;pre&gt;cd ~/Downloads
wget https://f-droid.org/F-Droid.apk
waydroid app install F-Droid.apk
&lt;/pre&gt;
&lt;p&gt;Danach ist die App sofort im LineageOS unter Waydroid verfügbar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gemeinsame Dateien&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mit &lt;code&gt;bindfs&lt;/code&gt; kann man auf das Dateisystem von Waydroid zugreifen:&lt;/p&gt;
&lt;pre&gt;sudo apt install bindfs
mkdir ~/Waydroid
sudo bindfs --mirror=$(id -u) ~/.local/share/waydroid/data/media/0 ~/Waydroid
&lt;/pre&gt;
&lt;p&gt;Nach der Installation von &lt;code&gt;bindfs&lt;/code&gt; 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.&lt;/p&gt;
&lt;p&gt;Siehe auch &lt;a href=&quot;https://docs.waydro.id/faq/setting-up-a-shared-folder&quot;&gt;Setting up a shared folder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fenstergröße&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Für eine feste Fenstergröße kann man die Auflösung z.B. vorab in ein Start-Skript &lt;code&gt;start-waydroid&lt;/code&gt; schreiben:&lt;/p&gt;
&lt;pre&gt;#!/bin/bash

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

weston -- sh -c '
  weston-terminal &amp;amp;
  sleep 1
  waydroid show-full-ui
'
waydroid session stop
&lt;/pre&gt;
&lt;p&gt;Das Skript setzt die Fenstergröße, startet Weston und dann Waydroid. Wird Lineage dann heruntergefahren, wird die Session gestoppt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Android ID abrufen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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 &amp;amp; Session) und dann im Linux-Terminal (außerhalb Weston) folgender Befehl eingegeben:&lt;/p&gt;
&lt;pre&gt;sudo waydroid shell -- sh \
-c &quot;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 = \&quot;android_id\&quot;;'&quot;
&lt;/pre&gt;
&lt;p&gt;Kopiere die Zahlen hinter &lt;code&gt;android_id|&lt;/code&gt; (z. B. 1234567890123456789).&lt;/p&gt;
&lt;p&gt;Gehe anschließend zu &lt;a href=&quot;https://www.google.com/android/uncertified/&quot;&gt;https://www.google.com/android/uncertified/&lt;/a&gt; (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).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Waydroid-Daten wieder entfernen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Falls man alte Daten von Waydroid wieder los werden will:&lt;/p&gt;
&lt;pre&gt;sudo waydroid session stop
sudo waydroid container stop
sudo rm -r /var/lib/waydroid ~/.local/share/waydroid
&lt;/pre&gt;</content:encoded>
	<dc:date>2026-01-04T19:43:10+00:00</dc:date>
	<dc:creator>Christian Imhorst</dc:creator>
</item>
<item rdf:about="https://www.datenteiler.de/?p=10534">
	<title>Christian Imhorst (immi): DOSBox-X mit Flatpak installieren und einrichten</title>
	<link>https://www.datenteiler.de/dosbox-x-mit-flatpak-installieren-und-einrichten/</link>
	<content:encoded>&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;flatpak install dosbox-x&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Die Konfigurationsdatei befindet sich nach der Installation hier:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.var/app/com.dosbox_x.DOSBox-X/config/dosbox-x/dosbox-x-2025.05.03.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Falls DOSBosX als System-Paket installiert wurde, kann man die Konfigurationsdatei direkt im eigenen Home-Verzeichnis unter &lt;code&gt;~/.config/dosbox-x/&lt;/code&gt; finden.&lt;/p&gt;
&lt;p&gt;Ganz am Ende der Datei wird die &lt;code&gt;autoexec&lt;/code&gt; konfiguriert, z.B. für ein deutsches Tastaturlayout &lt;code&gt;keyb gr 850&lt;/code&gt;, oder um den Einhängepunkt für Laufwerk C: zu definieren:&lt;/p&gt;
&lt;pre&gt;[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

keyb gr 850
mount c ~/dosgames
c:
&lt;/pre&gt;
&lt;p&gt;Der Ordner &lt;code&gt;~/dosgames&lt;/code&gt; muss vorher noch erstellt werden.&lt;/p&gt;
&lt;p&gt;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 &lt;code&gt;&amp;lt;Strg&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;F10&amp;gt;&lt;/code&gt; in der DOSBox-X übernehmen und auch wieder freigeben.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_10538&quot; style=&quot;width: 1034px;&quot;&gt;&lt;a href=&quot;https://www.datenteiler.de/wp-content/uploads/2025/07/Doom_Win311DOSBox-X.png&quot;&gt;&lt;img alt=&quot;Doom und Windows 3.11 in DOSBox-X&quot; class=&quot;size-large wp-image-10538&quot; height=&quot;251&quot; src=&quot;https://www.datenteiler.de/wp-content/uploads/2025/07/Doom_Win311DOSBox-X-1024x503.png&quot; width=&quot;512&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-10538&quot;&gt;Doom und Windows 3.11 in DOSBox-X&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Möchte man das Spiel direkt als Desktop-Anwendung aufrufen, also ohne den Umweg über die DOS-Kommandozeile, funktioniert der folgende Befehl:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dosbox-x -c &quot;mount c ~/dosgames&quot; -c &quot;c:&quot; -c &quot;cd DOOM&quot; -c &quot;DOOM.EXE&quot; -c &quot;exit&quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DOSBox-X akzeptiert mit der Option &lt;code&gt;-c&lt;/code&gt; Startparameter in der Kommandozeile, wie den Mount-Befehl oder direkte Aufrufe von Dateinamen. &lt;/p&gt;
&lt;p&gt;Mit Menulibre lässt sich jetzt komfortabel ein Desktop-Launcher (&lt;code&gt;.desktop&lt;/code&gt;-Dateien) erstellen, der diese Befehle automatisch ausführt. Dadurch entfällt dann die manuelle Eingabe im DOSBox-Prompt:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.datenteiler.de/wp-content/uploads/2025/07/Menulibre_DOOM.png&quot;&gt;&lt;img alt=&quot;Menulibre Eintrag mit DOOM als DOS-Spiel&quot; class=&quot;size-large wp-image-10575&quot; height=&quot;251&quot; src=&quot;https://www.datenteiler.de/wp-content/uploads/2025/07/Menulibre_DOOM.png&quot; width=&quot;512&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
	<dc:date>2025-12-29T20:59:33+00:00</dc:date>
	<dc:creator>Christian Imhorst</dc:creator>
</item>
<item rdf:about="https://maltris.org/?p=7511">
	<title>Malte Schmidt (maltris): Vom Erfolg, eine verschollene Samsung SSD-Firmware zu erhalten (MMCRE28G5MXP-0VB)</title>
	<link>https://maltris.org/vom-erfolg-eine-verschollene-samsung-ssd-firmware-zu-erhalten-mmcre28g5mxp-0vb-7511.html</link>
	<content:encoded>&lt;p&gt;Im Beitrag “&lt;a href=&quot;https://maltris.org/vom-versuch-eine-verschollene-samsung-ssd-firmware-zu-erhalten-mmcre28g5mxp-0vb-7464.html&quot;&gt;Vom Versuch, eine verschollene Samsung SSD-Firmware zu erhalten (MMCRE28G5MXP-0VB)&lt;/a&gt;“, beschrieb ich die Schwierigkeiten, eine 10 Jahre alte Firmware für eine 10 Jahre alte und eher unbekannte Samsung SSD zu erhalten.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.daum.net/coin5/17442720&quot;&gt;Originalbeitrag in koreanischer Sprache&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href=&quot;https://translate.google.de/translate?hl=de&amp;amp;tab=wT&amp;amp;sl=auto&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fblog.daum.net%2Fcoin5%2F17442720&quot;&gt;Google-Translator Link&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href=&quot;http://cfile236.uf.daum.net/attach/163EDE104B7E8D31189D40&quot;&gt;Link zur englischen Anleitung zum DSRD (Dos Samsung Re-Drive, dem Firmware-Update-Tool)&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20221121220033/http://cfile208.uf.daum.net/attach/1556E4104B7E8D3A01E9DA&quot;&gt;Link zur Firmware (web.archive.org)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Vorher-Nachher-Vergleich&lt;/h2&gt;



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



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Schreibgeschwindigkeit sequenziell: 23.8 MB/s&lt;/li&gt;



&lt;li&gt;Lesegeschwindigkeit sequenziell: 196 MB/s&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;lagen, erreiche ich jetzt (Firmware VBM1901Q) Werte von&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;Schreibgeschwindigkeit sequenziell: 194 MB/s&lt;/li&gt;



&lt;li&gt;Lesegeschwindigkeit sequenziell: 220 MB/s&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Ein beachtlicher Anstieg.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Firmware-Update mit DSRD und FreeDOS&lt;/h2&gt;



&lt;p&gt;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:&lt;/p&gt;



&lt;pre class=&quot;wp-block-preformatted&quot;&gt;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&lt;/pre&gt;



&lt;p&gt;Mit diesen Schritten ist der USB-Stick inklusive DSRD-Tool vorbereitet. Nun muss der Reboot erfolgen.&lt;/p&gt;



&lt;figure class=&quot;wp-block-gallery has-nested-images columns-3 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex&quot;&gt;
&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075202.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7514&quot; height=&quot;595&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075202-1024x595.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075236.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7515&quot; height=&quot;590&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075236-1024x590.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075300.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7516&quot; height=&quot;600&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075300-1024x600.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075328.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7517&quot; height=&quot;606&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075328-1024x606.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075344.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7518&quot; height=&quot;614&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075344-1024x614.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075355.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7519&quot; height=&quot;614&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075355-1024x614.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075403.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7520&quot; height=&quot;613&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075403-1024x613.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075421.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7521&quot; height=&quot;594&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075421-1024x594.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075446.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7522&quot; height=&quot;579&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075446-1024x579.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075516.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7523&quot; height=&quot;606&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075516-1024x606.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075540.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7524&quot; height=&quot;641&quot; src=&quot;https://maltris.org/wp-content/uploads/2019/05/20190512_075540-1024x641.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/figure&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;SMART-Daten zurückgesetzt&lt;/h2&gt;



&lt;p&gt;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:&lt;/p&gt;



&lt;p&gt;Damals:&lt;br /&gt;&lt;br /&gt;SanDisk SDSSDH2128G&lt;br /&gt;Laufzeit: 12542 Stunden&lt;br /&gt;&lt;br /&gt;SAMSUNG MMCRE28G5MXP-0VB&lt;br /&gt;Laufzeit: 17619 Stunden&lt;br /&gt;&lt;br /&gt;Heute:&lt;br /&gt;&lt;br /&gt;SanDisk SDSSDH2128G&lt;br /&gt;Laufzeit: 15756 Stunden&lt;br /&gt;&lt;br /&gt;SAMSUNG MMCRE28G5MXP-0VB&lt;br /&gt;Laufzeit: 20833 Stunden&lt;br /&gt;&lt;br /&gt;(15756-12542)+17619 = 20833 Stunden&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Fazit&lt;/h2&gt;



&lt;p&gt;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.&lt;/p&gt;</content:encoded>
	<dc:date>2025-11-16T09:16:58+00:00</dc:date>
	<dc:creator>maltris</dc:creator>
</item>
<item rdf:about="https://blog.aero2k.de/posts/containermanagement/">
	<title>Thorsten Sperber (TRex): Containermanagement</title>
	<link>https://blog.aero2k.de/posts/containermanagement/</link>
	<content:encoded>&lt;div&gt;&lt;p&gt;Container sind ein tolles Tool. Man kann damit mühelos Prozesse &quot;paketieren&quot; 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.&lt;/p&gt;
&lt;p&gt;Man kann sich aber auch kräftig in den Fuß schießen und einen Zoo von Containern anlegen, die man nie wieder &quot;eingefangen&quot; 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.&lt;/p&gt;
&lt;p&gt;Von BSD-Jails (2000) über Docker (2013) und Kubernetes (2014) sind wir nun bei Podman mit eng verzahnter systemd-Integration, auch Quadlets genannt (2023).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.aero2k.de/posts/containermanagement/&quot;&gt;Weiterlesen…&lt;/a&gt; (3 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2025-09-11T17:11:38+00:00</dc:date>
	<dc:creator>Thorsten</dc:creator>
</item>
<item rdf:about="https://blog.aero2k.de/posts/take-back-the-web/">
	<title>Thorsten Sperber (TRex): Take Back The Web</title>
	<link>https://blog.aero2k.de/posts/take-back-the-web/</link>
	<content:encoded>&lt;div&gt;&lt;h2&gt;Take Back the Web&lt;/h2&gt;
&lt;h3&gt;Warum ich mir das Web zurückhole&lt;/h3&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seiten für bessere Lesbarkeit umzufärben.&lt;/li&gt;
&lt;li&gt;Nervige Elemente zu entfernen, die vom Content ablenken.&lt;/li&gt;
&lt;li&gt;Fehlende Funktionalität nachzurüsten, wenn mir an Websites was fehlt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mit ein paar Zeilen eigenem Code kann ich das Web an meine Bedürfnisse anpassen.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.aero2k.de/posts/take-back-the-web/&quot;&gt;Weiterlesen…&lt;/a&gt; (4 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2025-08-22T18:37:38+00:00</dc:date>
	<dc:creator>Thorsten</dc:creator>
</item>
<item rdf:about="https://blog.mdosch.de/2025/08/13/openmohaa-medal-of-honor-allied-assault-auf-debian-spielen/">
	<title>Martin Dosch (Dogge): openMoHAA: Medal of Honor: Allied Assault auf Debian spielen</title>
	<link>https://blog.mdosch.de/2025/08/13/openmohaa-medal-of-honor-allied-assault-auf-debian-spielen/</link>
	<content:encoded>&lt;p&gt;Kürzlich fiel mir auf, dass &lt;a href=&quot;https://de.wikipedia.org/wiki/Medal_of_Honor:_Allied_Assault&quot;&gt;&lt;em&gt;Medal of Honor: Allied Assault&lt;/em&gt;&lt;/a&gt; (MoHAA)
vom Projekt &lt;a href=&quot;https://github.com/openmoh/openmohaa&quot;&gt;&lt;em&gt;OpenMoHAA&lt;/em&gt;&lt;/a&gt; als OpenSource Software
(&lt;a href=&quot;https://github.com/openmoh/openmohaa#GPL-2.0-1-ov-file&quot;&gt;GPL-2.0&lt;/a&gt;) nachgebaut wurde. Mit dem kürzlich erschienenen Debian
&lt;a href=&quot;https://www.debian.org/releases/trixie/&quot;&gt;Trixie&lt;/a&gt; ist jetzt &lt;a href=&quot;https://packages.debian.org/trixie/openmohaa&quot;&gt;OpenMoHAA als Debianpaket&lt;/a&gt; verfügbar.
Da ich &lt;em&gt;MoHAA&lt;/em&gt; als Jugendlicher sehr gerne gespielt habe, möchte ich mir natürlich
nicht die Gelegenheit entgehen lassen es unter Debian zu spielen.&lt;/p&gt;
&lt;h3 id=&quot;spieldaten&quot;&gt;Spieldaten&lt;/h3&gt;
&lt;p&gt;Der Nachbau von &lt;em&gt;MoHAA&lt;/em&gt; ist zwar frei, die Grafiken und Sounds sind es aber nicht.
Um &lt;em&gt;OpenMoHAA&lt;/em&gt; spielen zu können, benötigt man also die Daten des Originalspiels.
Da ich die Spiel-CD von früher nicht mehr zur Hand habe, habe ich mir &lt;em&gt;MoHAA&lt;/em&gt; bei
&lt;a href=&quot;https://www.gog.com/de/game/medal_of_honor_allied_assault_war_chest&quot;&gt;GOG&lt;/a&gt; gekauft.&lt;/p&gt;
&lt;h3 id=&quot;debianquellen-bearbeiten&quot;&gt;Debianquellen bearbeiten&lt;/h3&gt;
&lt;p&gt;Da man die unfreien &lt;a href=&quot;https://blog.mdosch.de/index.xml#spieldaten&quot;&gt;Spieldaten&lt;/a&gt; benötigt kann &lt;em&gt;OpenMoHAA&lt;/em&gt; nicht über
&lt;a href=&quot;https://www.debian.org/doc/debian-policy/ch-archive.html#the-main-archive-area&quot;&gt;&lt;em&gt;Debian main&lt;/em&gt;&lt;/a&gt; bereitgestellt werden, sondern befindet sich in
&lt;a href=&quot;https://www.debian.org/doc/debian-policy/ch-archive.html#the-contrib-archive-area&quot;&gt;&lt;em&gt;contrib&lt;/em&gt;&lt;/a&gt;.
Darum muss man sicher stellen, dass die &lt;em&gt;contrib&lt;/em&gt;-Quellen eingebunden sind.&lt;/p&gt;
&lt;p&gt;Wenn man das &lt;a href=&quot;https://wiki.debian.org/SourcesList#sources.list&quot;&gt;bisherige Format&lt;/a&gt; mit &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; nutzt, muss man
sicherstellen, dass &lt;em&gt;contrib&lt;/em&gt; enthalten ist. Die entsprechende Zeile sieht dann
z.B. so aus:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;deb https://deb.debian.org/debian trixie main contrib non-free-firmware
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nutzt man schon das neue &lt;a href=&quot;https://wiki.debian.org/SourcesList#debian.sources&quot;&gt;&lt;em&gt;deb822&lt;/em&gt;-Format&lt;/a&gt; kann man in die entsprechende
Datei, z.B. &lt;code&gt;/etc/apt/sources.list.d/debian.sources&lt;/code&gt;, bei &lt;code&gt;Components:&lt;/code&gt; &lt;code&gt;contrib&lt;/code&gt;
hinzufügen. Das sieht dann z.B. so aus:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# Modernized from /etc/apt/sources.list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Types: deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;URIs: https://deb.debian.org/debian/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Suites: trixie
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Components: main contrib non-free-firmware non-free
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&quot;benötigte-pakete-installieren&quot;&gt;Benötigte Pakete installieren&lt;/h3&gt;
&lt;p&gt;Nachdem man die &lt;a href=&quot;https://blog.mdosch.de/index.xml#debianquellen-bearbeiten&quot;&gt;Debianquellen&lt;/a&gt; bearbeitet hat, aktualisiert
man die Quellen:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anschließend kann man die benötigten Pakete installieren:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt install game-data-packager openmohaa lgogdownloader
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;spieldaten-paketieren&quot;&gt;Spieldaten paketieren&lt;/h3&gt;
&lt;p&gt;Die im &lt;a href=&quot;https://blog.mdosch.de/index.xml#ben%C3%B6tigte-pakete-installieren&quot;&gt;vorigen Schritt&lt;/a&gt; installierten Pakete
&lt;a href=&quot;https://packages.debian.org/trixie/game-data-packager&quot;&gt;game-data-packager&lt;/a&gt; und
&lt;a href=&quot;https://packages.debian.org/trixie/lgogdownloader&quot;&gt;lgogdownloader&lt;/a&gt; werden nun genutzt um die Spieldaten
herunterzuladen.&lt;/p&gt;
&lt;p&gt;Hat man &lt;em&gt;lgogdownloader&lt;/em&gt; bisher noch nicht genutzt, muss man sich erst anmelden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;$ lgogdownloader --login
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach werden Benutzername und Passwort abgefragt und man wird eingeloggt. Danach
kann mit dem &lt;em&gt;game-data-packager&lt;/em&gt; fortgefahren werden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;$ mkdir -p ~/Games/mohaa
$ cd ~/Games/mohaa
$ game-data-packager mohaa
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;spieldaten-installieren&quot;&gt;Spieldaten installieren&lt;/h3&gt;
&lt;p&gt;Nachdem nun die &lt;a href=&quot;https://blog.mdosch.de/index.xml#spieldaten-paketieren&quot;&gt;Spieldaten paketiert sind&lt;/a&gt;, können diese
installiert werden:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;# apt install /home/&amp;lt;USER&amp;gt;/Games/mohaa/mohaa*.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Platzhalter &lt;code&gt;&amp;lt;USER&amp;gt;&lt;/code&gt; ist natürlich durch den entsprechenden Benutzer zu ersetzen.&lt;/p&gt;
&lt;h3 id=&quot;spielen&quot;&gt;Spielen&lt;/h3&gt;
&lt;p&gt;Nun kann man &lt;em&gt;Medal of Honor: Allied Assault&lt;/em&gt;, sowie die Erweiterungen &lt;em&gt;Spearhead&lt;/em&gt; und
&lt;em&gt;Breakthrough&lt;/em&gt; spielen und in Erinnerungen schwelgen, oder diese Spiele auch zum ersten
Mal genießen. :)&lt;/p&gt;
&lt;h3 id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h3&gt;
&lt;h4 id=&quot;auflösung&quot;&gt;Auflösung&lt;/h4&gt;
&lt;p&gt;Geht es um die Bildschirmauflösung, so merkt man dem Spiel das Alter an. 4:3 hat
heute eigentlich kein Monitor mehr. Leider sind die Auswahlmöglichkeiten in den
Spieloptionen fest einprogrammiert, deshalb muss man selbst in der Konfigurationsdatei
&lt;code&gt;~/.openmohaa/main/configs/omconfig.cfg&lt;/code&gt; anpassen.&lt;/p&gt;
&lt;p&gt;Entweder kann man den Parameter &lt;code&gt;r_mode&lt;/code&gt; auf &lt;code&gt;-2&lt;/code&gt; setzen und die Zeilen &lt;code&gt;r_customwidth&lt;/code&gt;
und &lt;code&gt;r_customheight&lt;/code&gt; entfernen. Dann sollte das Spiel mit der nativen Auflösung im
Vollbild laufen.&lt;/p&gt;
&lt;p&gt;Sollte das nicht wie gewünscht funktionieren, so muss man die Auflösung manuell angeben.
Dazu muss man den Parameter &lt;code&gt;r_mode&lt;/code&gt; auf &lt;code&gt;-1&lt;/code&gt; setzen und mit &lt;code&gt;r_customwidth&lt;/code&gt; und
&lt;code&gt;r_customheight&lt;/code&gt; die gewünschte Auflösung eintragen, z.B.:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;seta r_mode &quot;-1&quot;
seta r_customwidth &quot;1920&quot;
seta r_customheight &quot;1080&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;btw&quot;&gt;BTW&lt;/h3&gt;
&lt;p&gt;…es gibt auch Pakete namens &lt;a href=&quot;https://packages.debian.org/trixie/rtcw&quot;&gt;rtcw&lt;/a&gt; und &lt;a href=&quot;https://packages.debian.org/trixie/dhewm3&quot;&gt;dhewm3&lt;/a&gt; in Debian.
Bei ersterem geht es um die Rückkehr zu einer Burg namens Wolfenstein
(&lt;em&gt;Return to Castle Wolfenstein&lt;/em&gt;) und bei zweitem
um die dritte Version des Verhängnis. Diese Spiele lassen sich auch analog zu dem für
&lt;em&gt;OpenMoHAA&lt;/em&gt; beschriebenen Verfahren installieren. ;)&lt;/p&gt;
&lt;h4 id=&quot;update-2026-04-03&quot;&gt;Update 2026-04-03&lt;/h4&gt;
&lt;p&gt;Ich habe zusätzlich zur Umschreibung des Namen von &lt;em&gt;RtCW&lt;/em&gt; den vollen Namen angegeben,
da &lt;em&gt;Return to Castle Wolfenstein&lt;/em&gt; &lt;a href=&quot;https://www.bundesanzeiger.de/pub/publication/rIBMaUHpm3JNwYB1CtR/content/rIBMaUHpm3JNwYB1CtR/BAnz%20AT%2030.03.2026%20B6.pdf&quot;&gt;vom Index genommen&lt;/a&gt; (pdf) wurde.&lt;/p&gt;</content:encoded>
	<dc:date>2025-08-13T19:49:47+00:00</dc:date>
</item>
<item rdf:about="https://maltris.org/?p=7777">
	<title>Malte Schmidt (maltris): Windows 7 Bluescreen mit FRITZ!WLAN Stick AC 430 wenn Verbindungen zu modernen Wifi-AP’s (FRITZ!Box 7690) aufgebaut werden</title>
	<link>https://maltris.org/windows-7-bluescreen-mit-fritzwlan-stick-ac-430-wenn-verbindungen-zu-modernen-wifi-aps-fritzbox-7690-aufgebaut-werden-7777.html</link>
	<content:encoded>&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;Auf der &lt;a href=&quot;https://fritz.com/service/update-news/?product=fritzwlan-usb-stick-ac-430&quot;&gt;FRITZ!-Seite findet man die aktuellsten Treiber für den FRITZ!WLAN Stick AC 430 – dort von 2018&lt;/a&gt;. 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.&lt;/p&gt;



&lt;p&gt;Die Direktlinks zu den Treibern sind aktuell hier: &lt;a href=&quot;https://download.avm.de/fritzwlan/fritzwlan-usb-stick-ac-430/deutschland/fritz.os/AVM_FRITZ!WLAN_USB_Stick_AC_430_64Bit_Build_180612.zip&quot;&gt;64bit&lt;/a&gt; &lt;a href=&quot;https://download.avm.de/fritzwlan/fritzwlan-usb-stick-ac-430/deutschland/fritz.os/AVM_FRITZ!WLAN_USB_Stick_AC_430_32Bit_Build_180612.zip&quot;&gt;32bit&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Viel Erfolg!&lt;/p&gt;</content:encoded>
	<dc:date>2025-06-18T12:08:09+00:00</dc:date>
	<dc:creator>maltris</dc:creator>
</item>
<item rdf:about="https://suckup.de/?p=7063">
	<title>Lars Moelleken (voku1987): .promptrc</title>
	<link>http://suckup.de/2025/06/promptrc/?pk_campaign=feed&amp;pk_kwd=promptrc&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=promptrc</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://suckup.de/2025/06/promptrc/?pk_campaign=feed&amp;amp;pk_kwd=promptrc&quot;&gt;.promptrc&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;has-text-align-center wp-block-paragraph&quot;&gt;&lt;em&gt;Steal this hints. Fork it. Adapt it to your needs. Treat it like &lt;code&gt;.dotfiles&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;I asked the LLM to analyze my own chat history based on &lt;a href=&quot;https://gist.github.com/voku/2d0c70613213ef9f11ce9f3d88a69244&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;this prompt&lt;/a&gt;.&lt;br /&gt;Here’s what it discovered – actual patterns from the way I ask.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;🕳&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f573.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;img alt=&quot;🐇&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f407.png&quot; style=&quot;height: 1em;&quot; /&gt; Follow the White Rabbit…&lt;/h2&gt;



&lt;figure class=&quot;wp-block-table&quot;&gt;&lt;table class=&quot;has-fixed-layout&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Ritual / Mechanism&lt;/th&gt;&lt;th&gt;Purpose&lt;/th&gt;&lt;th&gt;LLM Behavior Implication&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Follow the white rabbit...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Marks a mode shift into high-context or metaphoric thinking&lt;/td&gt;&lt;td&gt;Cognitive priming for complexity&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Rest in the silent room, so that...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Enforces pause, clears noise before action&lt;/td&gt;&lt;td&gt;Simulates deep work state&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Do it until you reach the point of self-discovery as...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Signals reflective closure, not just output ending&lt;/td&gt;&lt;td&gt;Pattern mining becomes part of task conclusion&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Do it step by step and ask for confirmation after each...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Makes iteration transparent and traceable&lt;/td&gt;&lt;td&gt;LLM reasons in deltas, not blobs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Be brutally honest...&lt;/code&gt;&lt;br /&gt;&lt;code&gt;Blind Spot Analysis for...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Forces critique over compliance&lt;/td&gt;&lt;td&gt;Model becomes adversarial partner, not affirmation loop&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;🧰&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png&quot; style=&quot;height: 1em;&quot; /&gt; Dev Prompt Patterns&lt;/h2&gt;



&lt;figure class=&quot;wp-block-table is-style-regular&quot;&gt;&lt;table class=&quot;has-fixed-layout&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Prompt / Pattern&lt;/th&gt;&lt;th&gt;Why is it used?&lt;/th&gt;&lt;th&gt;When does it occur?&lt;/th&gt;&lt;th&gt;Example from usage&lt;/th&gt;&lt;th&gt;Hidden lesson / implication&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ask before output&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Prevent misalignment and irrelevant output&lt;/td&gt;&lt;td&gt;Multi-step or underspecified prompts&lt;/td&gt;&lt;td&gt;“Ask clarifying questions before answering.”&lt;/td&gt;&lt;td&gt;Intent beats guesswork.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Don’t output yet / wait for context&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Control flow across longer workflows&lt;/td&gt;&lt;td&gt;Stepwise tasks&lt;/td&gt;&lt;td&gt;“Don’t output yet. I’ll give you the next step.”&lt;/td&gt;&lt;td&gt;Turn-based prompting prevents premature commitment.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Challenge my assumptions&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Avoid echo chamber answers and surface bias&lt;/td&gt;&lt;td&gt;Design reviews, audits, strategic decisions&lt;/td&gt;&lt;td&gt;“Don’t mirror me — challenge my thinking.”&lt;/td&gt;&lt;td&gt;Truth hides behind agreement.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Be brutally honest&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Forces raw feedback without politeness&lt;/td&gt;&lt;td&gt;Refactor reviews, architecture critique&lt;/td&gt;&lt;td&gt;“Be brutally honest. Tear it apart.”&lt;/td&gt;&lt;td&gt;Feedback without fluff moves faster.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Reflect before answering&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Promotes self-checks, depth, and delayed output&lt;/td&gt;&lt;td&gt;After complex code or reasoning generation&lt;/td&gt;&lt;td&gt;“Reflect before answering. What’s missing?”&lt;/td&gt;&lt;td&gt;Thinking ≠ typing. Pause matters.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Add test cases / edge cases&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Enforces robustness and avoids happy-path traps&lt;/td&gt;&lt;td&gt;Post-codegen&lt;/td&gt;&lt;td&gt;“Add tests for e.g. null, failure, and recursion cases.”&lt;/td&gt;&lt;td&gt;Defense-first mindset, always.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Show the diff / refactor in steps&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Makes changes visible and digestible&lt;/td&gt;&lt;td&gt;All code rewrites&lt;/td&gt;&lt;td&gt;“Show the diff. Step-by-step, no jumps.”&lt;/td&gt;&lt;td&gt;Transparency over magic.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Normalize similar expressions&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Pushes abstraction and clarity&lt;/td&gt;&lt;td&gt;Meta-reviews, taxonomy creation&lt;/td&gt;&lt;td&gt;“Merge similar phrasing into one normalized pattern.”&lt;/td&gt;&lt;td&gt;Cognitive compression = clarity.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Extract as markdown / table / list&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Improves scanability, memory, and structure&lt;/td&gt;&lt;td&gt;Output formatting&lt;/td&gt;&lt;td&gt;“Return this as a markdown table.”&lt;/td&gt;&lt;td&gt;Structure improves reuse and recall.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Unname this concept&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Strips bias-inducing labels&lt;/td&gt;&lt;td&gt;Abstraction, philosophy, onboarding analysis&lt;/td&gt;&lt;td&gt;“Unname this: what is it without the buzzword?”&lt;/td&gt;&lt;td&gt;Naming narrows thinking.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Use production-ready code&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Avoids toy/demo examples&lt;/td&gt;&lt;td&gt;All codegen&lt;/td&gt;&lt;td&gt;“Make it prod-safe. Logging, errors, types.”&lt;/td&gt;&lt;td&gt;Real devs write for prod, not playgrounds.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Spot premature optimization&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Saves time and prevents complexity drift&lt;/td&gt;&lt;td&gt;Design or early performance tweaks&lt;/td&gt;&lt;td&gt;“Don’t optimize yet. Solve clearly first.”&lt;/td&gt;&lt;td&gt;Simplicity first. Always.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Ask for sources / proofs&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Prevents hallucination or empty confidence&lt;/td&gt;&lt;td&gt;Any non-trivial claim&lt;/td&gt;&lt;td&gt;“Show evidence or references.”&lt;/td&gt;&lt;td&gt;Confidence ≠ correctness.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Do it again, but deeper&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Stops shallow answers in their tracks&lt;/td&gt;&lt;td&gt;Weak initial output&lt;/td&gt;&lt;td&gt;“Nope. Go deeper, explain decisions.”&lt;/td&gt;&lt;td&gt;First try ≠ final draft.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Prepare before generating&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Enforces scope, prevents rambling&lt;/td&gt;&lt;td&gt;Any open-ended task&lt;/td&gt;&lt;td&gt;“Prepare first. Don’t generate until scoped.”&lt;/td&gt;&lt;td&gt;Planning ≠ waste. It’s speed insurance.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Merge context from above&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Ensures continuity and avoids repeating yourself&lt;/td&gt;&lt;td&gt;Multi-part workflows&lt;/td&gt;&lt;td&gt;“Incorporate the context above into this next step.”&lt;/td&gt;&lt;td&gt;Memory = leverage.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h3 class=&quot;wp-block-heading&quot;&gt;You can also combine them: &lt;/h3&gt;



&lt;p&gt;(change the keywords in the square brackets)&lt;/p&gt;



&lt;ul class=&quot;wp-block-list&quot;&gt;
&lt;li&gt;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].&lt;/li&gt;



&lt;li&gt;Do a blind spot analysis for [YOUR_RECOMMENDATIONS], be brutally honest, I deal with any kind of feedback and will use it for good.&lt;/li&gt;



&lt;li&gt;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.&lt;/li&gt;



&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;


&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://suckup.de/piwik/piwik.php?idsite=1&amp;amp;rec=1&amp;amp;url=http%3A%2F%2Fsuckup.de%2F2025%2F06%2Fpromptrc%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dpromptrc&amp;amp;action_name=.promptrc&amp;amp;urlref=http%3A%2F%2Fsuckup.de%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;</content:encoded>
	<dc:date>2025-06-12T15:01:41+00:00</dc:date>
	<dc:creator>voku</dc:creator>
</item>
<item rdf:about="https://suckup.de/?p=7054">
	<title>Lars Moelleken (voku1987): My Custom GPTs – Nerd-Powered Motivation for Developers</title>
	<link>http://suckup.de/2025/06/my-custom-gpts-nerd-powered-motivation-for-developers/?pk_campaign=feed&amp;pk_kwd=my-custom-gpts-nerd-powered-motivation-for-developers&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-custom-gpts-nerd-powered-motivation-for-developers</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://suckup.de/2025/06/my-custom-gpts-nerd-powered-motivation-for-developers/?pk_campaign=feed&amp;amp;pk_kwd=my-custom-gpts-nerd-powered-motivation-for-developers&quot;&gt;My Custom GPTs – Nerd-Powered Motivation for Developers&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;p&gt;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. &lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Let’s dive in.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Practical enough to ship code.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Fun enough to stop hating your legacy base.&lt;/p&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;⚔&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/2694.png&quot; style=&quot;height: 1em;&quot; /&gt; Legacy (PHP) Code GPTs – Refactoring Fun&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Legacy code isn’t just technical — it’s emotional. These GPTs are built as archetypes, each channeling a different kind of energy. &lt;/p&gt;



&lt;figure class=&quot;wp-block-table&quot;&gt;&lt;table class=&quot;has-fixed-layout&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Theme&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Warrior &lt;img alt=&quot;⚔&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/2694.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Tactical grit—battle-tested refactoring.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676d717a449c8191b5c07b616463be7a-legacy-code-warrior&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Ork &lt;img alt=&quot;🧌&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f9cc.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Smash spaghetti code with brute-force enthusiasm.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676df44ad79c8191979c5e2e4e626c65-legacy-code-ork&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Spock &lt;img alt=&quot;🖖&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f596.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Calm logic, precise refactoring. Live long and debug.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-6771fbc57f78819189a27203ff11b088-legacy-code-spock&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Jedi &lt;img alt=&quot;🌐&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Minimalist wisdom, clean architecture. “Refactor, you must.”&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676ef0f991a08191ba499a6401303b1b-legacy-code-jedi&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Son-Goku &lt;img alt=&quot;🐉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f409.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Limitless energy. Kaio-Ken times SOLID!&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676ef34c4b448191bbe3beb00168571c-legacy-code-son-goku&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Capsule-Corp &lt;img alt=&quot;💊&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f48a.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Inspired by Capsule Corporation’s ingenuity from Dragon Ball.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676ef573c69c819181979ec12ec3258e-legacy-code-capsule-corp&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Wizzard &lt;img alt=&quot;🪄&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1fa84.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Magical abstraction powers. You shall not pass… bad code!&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676df96129b08191b7b15498783a6dc5-legacy-code-wizzard&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Legacy-Code-Witch &lt;img alt=&quot;🧙‍♀️&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f9d9-200d-2640-fe0f.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Stylish, precise refactoring incantations.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-676df20836c481918a41264c15dfc62e-legacy-code-witch&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Paw Patrol &lt;img alt=&quot;🐾&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f43e.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Small dogs with SOLID coding skills. &lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-68487a4867f88191a510fc449aecc1ec-paw-patrol-coding-assistant&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Use the one that fits your mood. Or switch between them mid-session to keep your motivation from flatlining.&lt;/p&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;🐘&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f418.png&quot; style=&quot;height: 1em;&quot; /&gt; (PHP) Coding GPTs – Clean and Typed&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;These GPTs don’t tell jokes—they ship code. They’re optimized for:&lt;/p&gt;



&lt;figure class=&quot;wp-block-table&quot;&gt;
&lt;table class=&quot;has-fixed-layout&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Purpose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PHP Copilot++&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Typing enforcer + refactoring companion with nativ PHPStan and PHP-CS-Fixer Support via API.&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-g1905v3LQ-php-copilot&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PHP Copilot++ (next-gen)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Aligned, brutal clarity for PHP systems, based on the &lt;a href=&quot;https://suckup.de/2025/06/from-survival-to-strategy/&quot;&gt;SYNC Framework&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-682b7926ca00819187270713ab25662a-php-copilot-next-generation&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PHP Architect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fact-based, ASYNC-driven PHP 8.x architect eliminating inefficiencies with brutal clarity.&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-6861a2471b6081918429aeb9634787f6-php-architect&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PHP #autofix&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1-click autofix for all your phpstan and CS woes.&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-jkqUsrFHi-php-autofix&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Codelight&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Follows the &lt;a href=&quot;https://gist.github.com/voku/40d89d49259eaa598a903fcfeb615b9b&quot;&gt;Codelight Manifesto&lt;/a&gt;. Boringly code.&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-6737e2027dbc8191a00c2a73abf7907e-codelight&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;💎&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f48e.png&quot; style=&quot;height: 1em;&quot; /&gt; Thinking Tools – Meta, Prompt Systems&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;These are not just for coding. They’re for &lt;strong&gt;thinking before you start typing.&lt;/strong&gt; Seriously.&lt;/p&gt;



&lt;figure class=&quot;wp-block-table&quot;&gt;&lt;table class=&quot;has-fixed-layout&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Role&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;SyncAI&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Keeps you + AI in sync via Sync Process × Codelight Principles&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-67a90c62abd0819193a51dc4cfefa547-syncai&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Sync Framework&lt;/strong&gt; v1.1 (old)&lt;/td&gt;&lt;td&gt;My first try for a coding framework, optimized for LLMs.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-68065ed814e0819186ec62ab9a2485da-sync-framework&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;MetaPrompt&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Pattern reuse for your prompts. Less yak-shaving.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-679e685cc244819190d054cd4afa4905-metaprompt&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;DeepDive&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Clean your mental cache. Focused thought flow.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-67896856bca48191b54af7a8beb11127-deepdive&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Blind Spot | Prompt Generator&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Helps spot untested assumptions.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-6816771cf34c8191bf5a053958ce0c79-blind-spot-prompt-generator&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Sync Framework &lt;/strong&gt;v1.2&lt;strong&gt; | Prompt Generator&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Prompt builder for dev workflows.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://chatgpt.com/g/g-6833835d060c8191afbdddbb772bcc59-coding-framework-prompt-generator&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;img alt=&quot;🧨&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e8.png&quot; style=&quot;height: 1em;&quot; /&gt; Disruption GPTs – Radical Clarity, No Filters&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;These are not nice. They won’t coddle you. Consider yourself warned.&lt;/p&gt;



&lt;figure class=&quot;wp-block-table&quot;&gt;&lt;table class=&quot;has-fixed-layout&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Function&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;HVEB5000: Clarity Without Permission&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Cognitive demolition tool. &lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.google.com/search?q=https://chatgpt.com/g/g-6828ed7734a481918ced8f4a322c65ff-hveb5000-clarity-without-permission&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Null Tongue&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Distraction nullifier.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.google.com/search?q=https://chatgpt.com/g/g-68292365122081918cf67e6afdbfaf11-null-tongue&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;No-Bullshit ¦ Coding Assistant&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Senior dev with no time for your excuses.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.google.com/search?q=https://chatgpt.com/g/g-67b6574d4470819185c4403b01a6345e-no-bullshit-coding-assistant&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;


&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://suckup.de/piwik/piwik.php?idsite=1&amp;amp;rec=1&amp;amp;url=http%3A%2F%2Fsuckup.de%2F2025%2F06%2Fmy-custom-gpts-nerd-powered-motivation-for-developers%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dmy-custom-gpts-nerd-powered-motivation-for-developers&amp;amp;action_name=My%20Custom%20GPTs%20%E2%80%93%20Nerd-Powered%20Motivation%20for%20Developers&amp;amp;urlref=http%3A%2F%2Fsuckup.de%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;</content:encoded>
	<dc:date>2025-06-10T21:18:58+00:00</dc:date>
	<dc:creator>voku</dc:creator>
</item>
<item rdf:about="http://invia1200.wordpress.com/?p=8015">
	<title>(c3f2o): Radikalisierung und Strategie: Der AfD-Bundesparteitag in Riesa als Zäsur</title>
	<link>https://invia1200.wordpress.com/2025/01/15/radikalisierung-und-strategie-der-afd-bundesparteitag-in-riesa-als-zasur/</link>
	<content:encoded>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 […]</content:encoded>
	<dc:date>2025-01-15T13:23:44+00:00</dc:date>
	<dc:creator>invia1200</dc:creator>
</item>
<item rdf:about="http://invia1200.wordpress.com/?p=8012">
	<title>(c3f2o): Herr Merz: Schnauze halten!</title>
	<link>https://invia1200.wordpress.com/2025/01/09/herr-merz-schnauze-halten/</link>
	<content:encoded>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 […]</content:encoded>
	<dc:date>2025-01-09T12:30:27+00:00</dc:date>
	<dc:creator>invia1200</dc:creator>
</item>
<item rdf:about="https://kupschke.eu/?p=1041">
	<title>Dominik Kupschke (bommi): Protect against Display Name Spoofing with Rspamd</title>
	<link>https://kupschke.eu/2024/09/15/protect-against-display-name-spoofing-with-rspamd/?pk_campaign=feed&amp;pk_kwd=protect-against-display-name-spoofing-with-rspamd</link>
	<content:encoded>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 […]&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://kupschke.eu/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;amp;rec=1&amp;amp;url=https%3A%2F%2Fkupschke.eu%2F2024%2F09%2F15%2Fprotect-against-display-name-spoofing-with-rspamd%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dprotect-against-display-name-spoofing-with-rspamd&amp;amp;action_name=Protect%20against%20Display%20Name%20Spoofing%20with%20Rspamd&amp;amp;urlref=https%3A%2F%2Fkupschke.eu%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;</content:encoded>
	<dc:date>2024-09-15T18:08:21+00:00</dc:date>
	<dc:creator>Dominik Kupschke</dc:creator>
</item>
<item rdf:about="https://www.pc-howto.com/?p=4354">
	<title>Daniel Gestl (mcdaniels): Wiki für Linuxinteressierte und Einsteiger – wiki.techgamegeek.com</title>
	<link>https://www.pc-howto.com/wiki-fuer-linuxinteressierte-und-einsteiger-wiki-techgamegeek-com/</link>
	<content:encoded>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 ... &lt;a class=&quot;read-more&quot; href=&quot;https://www.pc-howto.com/wiki-fuer-linuxinteressierte-und-einsteiger-wiki-techgamegeek-com/&quot; title=&quot;Wiki für Linuxinteressierte und Einsteiger – wiki.techgamegeek.com&quot;&gt;Weiterlesen&lt;/a&gt;</content:encoded>
	<dc:date>2024-08-21T17:54:19+00:00</dc:date>
	<dc:creator>Daniel</dc:creator>
</item>
<item rdf:about="https://kupschke.eu/?p=1008">
	<title>Dominik Kupschke (bommi): New Quad9 SSL Certificate – Mikrotik Devices Must Import New Root Certificate by July 29th</title>
	<link>https://kupschke.eu/2024/07/26/new-quad9-ssl-certificate-mikrotik-devices-must-import-new-root-certificate-by-july-29th/?pk_campaign=feed&amp;pk_kwd=new-quad9-ssl-certificate-mikrotik-devices-must-import-new-root-certificate-by-july-29th</link>
	<content:encoded>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 […]&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://kupschke.eu/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;amp;rec=1&amp;amp;url=https%3A%2F%2Fkupschke.eu%2F2024%2F07%2F26%2Fnew-quad9-ssl-certificate-mikrotik-devices-must-import-new-root-certificate-by-july-29th%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dnew-quad9-ssl-certificate-mikrotik-devices-must-import-new-root-certificate-by-july-29th&amp;amp;action_name=New%20Quad9%20SSL%20Certificate%20%26%238211%3B%20Mikrotik%20Devices%20Must%20Import%20New%20Root%20Certificate%20by%20July%2029th&amp;amp;urlref=https%3A%2F%2Fkupschke.eu%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;</content:encoded>
	<dc:date>2024-07-26T07:07:18+00:00</dc:date>
	<dc:creator>Dominik Kupschke</dc:creator>
</item>
<item rdf:about="https://www.pc-howto.com/?p=4347">
	<title>Daniel Gestl (mcdaniels): Headtracking mit einer Webcam unter Linux – Opentrack / Neuralnet-Tracker (DEB-File / DEB-Installer Opentrack)</title>
	<link>https://www.pc-howto.com/headtracking-mit-einer-webcam-unter-linux-opentrack-neuralnet-tracker-deb-file-deb-installer-opentrack/</link>
	<content:encoded>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 ... &lt;a class=&quot;read-more&quot; href=&quot;https://www.pc-howto.com/headtracking-mit-einer-webcam-unter-linux-opentrack-neuralnet-tracker-deb-file-deb-installer-opentrack/&quot; title=&quot;Headtracking mit einer Webcam unter Linux – Opentrack / Neuralnet-Tracker (DEB-File / DEB-Installer Opentrack)&quot;&gt;Weiterlesen&lt;/a&gt;</content:encoded>
	<dc:date>2024-07-18T17:48:09+00:00</dc:date>
	<dc:creator>Daniel</dc:creator>
</item>
<item rdf:about="https://zefanjas.de/?p=3105">
	<title>Stephan Tetzel (zefanja): Einführung in Anki 23.10</title>
	<link>https://zefanjas.de/einfuehrung-in-anki-23-10/</link>
	<content:encoded>&lt;p&gt;Anki ist eine Karteikarten-App mit einem sehr sehr guten Algorithmus, der einem hilft, das Gelernte nicht mehr zu vergessen. Wie man &lt;a href=&quot;https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/&quot;&gt;lernt ohne zu Vergessen&lt;/a&gt; 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.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Anki 23.10&lt;/h2&gt;



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



&lt;p&gt;Das eine ist ein neuer Algorithmus (&lt;a href=&quot;https://github.com/open-spaced-repetition/fsrs4anki/&quot;&gt;FSRS&lt;/a&gt;), der aktuell einer der &lt;a href=&quot;https://www.reddit.com/r/Anki/comments/18csuer/fsrs_is_now_the_most_accurate_spaced_repetition/&quot;&gt;besten Spaced-Repetition-Algorithmen&lt;/a&gt; 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.&lt;/p&gt;



&lt;p&gt;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:&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;

&lt;/div&gt;&lt;/figure&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Einführung in Anki&lt;/h2&gt;



&lt;p&gt;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&lt;a href=&quot;https://docs.ankiweb.net/&quot;&gt; Kapitel der Dokumentation&lt;/a&gt; durchliest.&lt;br /&gt;&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-large is-resized&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@Anki4School&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3118&quot; height=&quot;576&quot; src=&quot;https://zefanjas.de/wp-content/uploads/2023/12/Anki4SchoolHD-1-1024x576.png&quot; style=&quot;width: 508px; height: auto;&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;&lt;/p&gt;&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@Anki4School&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;/figure&gt;Für meine Schüler habe ich ein paar &lt;a href=&quot;https://www.youtube.com/playlist?list=PL4qiwBYCDtJS0gyY062b-SmzDefRffA-D&quot;&gt;einleitende Videos&lt;/a&gt; erstellt, die die Schritte von der Installation bis zur ersten Benutzung beschreiben. Weitere folgen noch in den nächsten Wochen und Monaten.&lt;p&gt;&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Fazit&lt;/h2&gt;



&lt;p&gt;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 &lt;a href=&quot;https://pcl.sitehost.iu.edu/rgoldsto/courses/dunloskyimprovinglearning.pdf&quot;&gt;Meta-Studie von John Dunlosky&lt;/a&gt; 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.&lt;/p&gt;



&lt;p&gt;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 🙂&lt;/p&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://zefanjas.de/piwik/piwik.php?idsite=1&amp;amp;rec=1&amp;amp;url=https%3A%2F%2Fzefanjas.de%2Feinfuehrung-in-anki-23-10%2F&amp;amp;action_name=Einf%C3%BChrung+in+Anki+23.10&amp;amp;urlref=https%3A%2F%2Fzefanjas.de%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;&lt;p&gt;Der Beitrag &lt;a href=&quot;https://zefanjas.de/einfuehrung-in-anki-23-10/&quot;&gt;Einführung in Anki 23.10&lt;/a&gt; erschien zuerst auf &lt;a href=&quot;https://zefanjas.de&quot;&gt;zefanjas&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2023-12-16T07:37:23+00:00</dc:date>
	<dc:creator>zefanja</dc:creator>
</item>
<item rdf:about="https://zefanjas.de/?p=3069">
	<title>Stephan Tetzel (zefanja): Lernen ohne zu vergessen mit Anki</title>
	<link>https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/</link>
	<content:encoded>&lt;p&gt;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 &lt;a href=&quot;https://zefanjas.de/tag/schule/&quot;&gt;Schule&lt;/a&gt; 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.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Was ist „Spaced Repetion“?&lt;/h2&gt;



&lt;p&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Spaced_repetition&quot;&gt;Spaced Repetition&lt;/a&gt; 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.&lt;/p&gt;



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



&lt;p&gt;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:&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://zefanjas.de/wp-content/uploads/2023/10/Forgetting_curve_and_work_of_Ebbinghaus.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3074&quot; height=&quot;668&quot; src=&quot;https://zefanjas.de/wp-content/uploads/2023/10/Forgetting_curve_and_work_of_Ebbinghaus.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;p&gt;Zusammenfassung: Wenn ich etwas Gelerntes im richtigen Moment wiederhole, kann ich die „Speicherdauer“ im Langzeitgedächtnis deutlich verlängern.&lt;/p&gt;



&lt;p&gt;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.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Anki&lt;/h2&gt;



&lt;p&gt;Genau an diesem Punkt kommt &lt;a href=&quot;http://ankiweb.net/&quot;&gt;Anki&lt;/a&gt; ins Spiel. Anki ist eine &lt;a href=&quot;https://zefanjas.de/tag/open-source/&quot;&gt;Open Source&lt;/a&gt; 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.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://zefanjas.de/wp-content/uploads/2023/10/grafik.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3075&quot; height=&quot;759&quot; src=&quot;https://zefanjas.de/wp-content/uploads/2023/10/grafik-1024x759.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;p&gt;Anki ist eine sehr mächtige und flexible Anwendung, die sich durch viele &lt;a href=&quot;https://ankiweb.net/shared/addons&quot;&gt;Erweiterungen&lt;/a&gt; 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.&lt;/p&gt;



&lt;p&gt;Karteikarten kann man sich entweder selbst erstellen oder nutzt eines der &lt;a href=&quot;https://ankiweb.net/shared/decks&quot;&gt;fertigen Lernpakete&lt;/a&gt;.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Lernen ohne zu vergessen – eine Utopie?&lt;/h2&gt;



&lt;p&gt;Persönlich nutze ich Anki seit ca. 1 Jahr.  Hauptsächlich lerne ich damit Vokabeln (ja, auch wieder Französisch…), &lt;a href=&quot;https://biblez.de&quot;&gt;Bibelverse / -texte&lt;/a&gt;, 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.&lt;/p&gt;



&lt;p&gt;Wo ist der Haken? Damit das mit den Wiederholen zum richtigen Zeitpunkt auch klappt, &lt;em&gt;muss&lt;/em&gt; ich meine Wiederholungen &lt;em&gt;jeden&lt;/em&gt; 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 (&lt;em&gt;sehr viele) &lt;/em&gt;Dinge merken kann.&lt;/p&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; src=&quot;https://zefanjas.de/piwik/piwik.php?idsite=1&amp;amp;rec=1&amp;amp;url=https%3A%2F%2Fzefanjas.de%2Flernen-ohne-zu-vergessen-mit-anki%2F&amp;amp;action_name=Lernen+ohne+zu+vergessen+mit+Anki&amp;amp;urlref=https%3A%2F%2Fzefanjas.de%2Ffeed%2F&quot; style=&quot;border: 0; width: 0; height: 0;&quot; width=&quot;0&quot; /&gt;&lt;p&gt;Der Beitrag &lt;a href=&quot;https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/&quot;&gt;Lernen ohne zu vergessen mit Anki&lt;/a&gt; erschien zuerst auf &lt;a href=&quot;https://zefanjas.de&quot;&gt;zefanjas&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2023-10-09T05:00:48+00:00</dc:date>
	<dc:creator>zefanja</dc:creator>
</item>
<item rdf:about="https://vinzv.de/?p=922104003">
	<title>Vinzenz Vietzke (vinz): Mein XFCE Desktop im Juni 2017</title>
	<link>https://vinzv.de/mein-xfce-desktop-im-juni-2017/</link>
	<content:encoded>&lt;p&gt;Es wird Zeit, mal wieder meinen Desktop zu zeigen und wie ich ihn für mich angepasst habe. &lt;a href=&quot;https://smdavis.us/2017/05/05/my-xubuntu-customization-guide/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Sean hat das hier mit Xubuntu gemacht&lt;/a&gt;, ich übernehme die übersichtliche Struktur gerne.&lt;br /&gt;
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.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Konfiguration&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Distribution:&lt;/strong&gt; Debian Testing (Stretch)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desktopumgebung:&lt;/strong&gt; &lt;a href=&quot;https://xfce.org&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Xfce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Manager:&lt;/strong&gt; Xfwm4&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Themes&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GTK:&lt;/strong&gt; Arc-Grey-Darker (&lt;a href=&quot;https://github.com/eti0/arc-grey-theme&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Manager:&lt;/strong&gt; Arc-Grey-Darker (&lt;a href=&quot;https://github.com/eti0/arc-grey-theme&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Icons:&lt;/strong&gt; Arc Limon (&lt;a href=&quot;https://github.com/eti0/arc-limon-icon-theme&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cursors:&lt;/strong&gt; Adwaita&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Firefox:&lt;/strong&gt; Arc-Darker (&lt;a href=&quot;https://github.com/horst3180/arc-firefox-theme&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schriften&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standard:&lt;/strong&gt; Lato Regular 10&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Manager:&lt;/strong&gt; Lato Bold 10&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monospace:&lt;/strong&gt; Monospace Regular 10&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wallpaper:&lt;/strong&gt; &lt;a href=&quot;https://unsplash.com/photos/1F75STYUelc&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Incense Stick in balinese rainforest&lt;/a&gt; (CC0, &lt;a href=&quot;https://unsplash.com/@belart84&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Artem Beliaikin&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Panel Plugins&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Whisker-Menü (&lt;a href=&quot;https://gottcode.org/xfce4-whiskermenu-plugin/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Homepage&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Benachrichtigungsfläche&lt;/li&gt;
&lt;li&gt;Energieverwaltung&lt;/li&gt;
&lt;li&gt;PulseAudio Plugin&lt;/li&gt;
&lt;li&gt;Orage-Uhr&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Programme im Tray&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Audacious&lt;/li&gt;
&lt;li&gt;Gajim&lt;/li&gt;
&lt;li&gt;Liferea&lt;/li&gt;
&lt;li&gt;Nextcloud Client (&lt;a href=&quot;https://intux.de/2017/06/nextcloud-client-fuer-debian-9/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;HowTo&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Redshift&lt;/li&gt;
&lt;li&gt;Thunderbird (plus &lt;a href=&quot;https://packages.debian.org/xul-ext-firetray&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Firetray&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipps &amp;amp; Tricks&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Symbol des Whisker-Menü auf debian-emblem-white setzen (siehe Screenshot)&lt;/li&gt;
&lt;li&gt;Desktopsymbole deaktivieren&lt;/li&gt;
&lt;li&gt;Panel: Alpha auf 85% setzen&lt;/li&gt;
&lt;li&gt;Fensterknöpfe: &lt;em&gt;Knopfbeschriftungen anzeigen&lt;/em&gt; deaktivieren, &lt;em&gt;Griff anzeigen&lt;/em&gt; deaktivieren, &lt;em&gt;Flache Knöpfe&lt;/em&gt; aktivieren (siehe Screenshot)&lt;/li&gt;
&lt;li&gt;Super Key auf das Whiskermenu legen (&lt;a href=&quot;https://vinzv.de/quick-tipp-kde-plasma-5-und-die-windowstaste/&quot;&gt;ksuperkey installieren&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;In der Fensterverwaltung unter “Anordnung der Knöpfe” alle außer &lt;em&gt;Schließen&lt;/em&gt; entfernen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mehr Screenshots&lt;/strong&gt;&lt;/p&gt;

&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_00-49-56/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_00-49-56-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_01-47-35/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_01-47-35-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_01-35-20/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_01-35-20-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_01-31-56/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_01-31-56-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_01-12-40/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_01-12-40-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://vinzv.de/mein-xfce-desktop-im-juni-2017/bildschirmfoto_2017-06-14_01-11-07/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-thumbnail size-thumbnail&quot; height=&quot;150&quot; src=&quot;https://vinzv.de/wp-content/uploads/Bildschirmfoto_2017-06-14_01-11-07-150x150.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;</content:encoded>
	<dc:date>2017-06-14T00:10:23+00:00</dc:date>
	<dc:creator>vinzv</dc:creator>
</item>
<item rdf:about="http://www.fz6fazer.net/wordpress/?p=797">
	<title>Jürgen Braun (jaybe): Frankfurt Marathon</title>
	<link>http://www.fz6fazer.net/wordpress/2016/10/30/frankfurt-marathon/</link>
	<content:encoded>&lt;p&gt;Rückblick: 25.10.2015 findet der Frankfurt Marathon statt, ich sitze gespannt vom Fernseher als &lt;a href=&quot;https://de.wikipedia.org/wiki/Arne_Gabius&quot; target=&quot;_blank&quot;&gt;Arne Gabius&lt;/a&gt; zu einem &lt;a href=&quot;http://www.runnersworld.de/marathon/arne-gabius-knackt-deutschen-rekord.370844.htm&quot; target=&quot;_blank&quot;&gt;neuen deutschen Rekord&lt;/a&gt; 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 &lt;a href=&quot;https://www.facebook.com/&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt; 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:&lt;/p&gt;
&lt;p&gt;Lieber Jürgen Braun,&lt;br /&gt;
vielen Dank für Deine Anmeldung zum Frankfurt Marathon 2016. Hier befinden sich alle wichtigen Daten und Angaben zu Deiner Anmeldung.&lt;/p&gt;
&lt;p&gt;Die Bestätigungsmail des Veranstalters war da. Es kann los gehen…&lt;/p&gt;
&lt;p&gt;Die Vorbereitung ist gut gelaufen, bei &lt;a href=&quot;http://www.lauftipps.ch/trainingsplaene/&quot; target=&quot;_blank&quot;&gt;Lauftipps.ch&lt;/a&gt; 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 &lt;a href=&quot;http://www.hessischer-triathlon-verband.de/htl/htl-organisation&quot; target=&quot;_blank&quot;&gt;Hessischen Triathlon-Liga&lt;/a&gt; statt und ich war noch eine Woche im Urlaub, hier musste ein wenig improvisiert und lange Läufe durch schnelle 10km im Wettkampf werden.&lt;/p&gt;
&lt;p&gt;Nach meinen Problemen im Frühjahr mit &lt;a href=&quot;http://jaybe1966.bplaced.net/wordpress/?p=11&quot; target=&quot;_blank&quot;&gt;ISG&lt;/a&gt; und &lt;a href=&quot;http://jaybe1966.bplaced.net/wordpress/?p=20&quot; target=&quot;_blank&quot;&gt;Schienbeinkante&lt;/a&gt; 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 &lt;img alt=&quot;🙁&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/11/72x72/1f641.png&quot; style=&quot;height: 1em;&quot; /&gt; 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 &lt;a href=&quot;http://www.runnersworld.de/gesundheit/isg-schmerzen.275696.htm&quot; target=&quot;_blank&quot;&gt;ISG bzw. die Lendenmuskulatur&lt;/a&gt; sein muss, also wurde in der verbleibenden Zeit noch mehr Wert auf Übungen zur Rumpfstabilisierung gelegt.&lt;/p&gt;
&lt;p&gt;Sonntag, 30.10.2016; Es ist so weit. Der &lt;a href=&quot;https://www.frankfurt-marathon.com/&quot; target=&quot;_blank&quot;&gt;Frankfurt Marathon&lt;/a&gt; steht an und ich stehe am Start.&lt;/p&gt;
&lt;p&gt;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, …&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;WhatsApp Image 2016-10-30 at 12.38.51&quot; class=&quot;aligncenter size-full wp-image-71&quot; height=&quot;856&quot; src=&quot;http://www.fz6fazer.net/wordpress/wp-content/uploads/2016/10/WhatsApp-Image-2016-10-30-at-12.38.51.jpeg&quot; width=&quot;627&quot; /&gt;&lt;/p&gt;
&lt;p&gt;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 &lt;a class=&quot;broken_link&quot; href=&quot;http://meinerstermarathon.laufen.de/&quot; target=&quot;_blank&quot;&gt;#meinerstermarathon&lt;/a&gt; Band aus der Tasche, recke es in die Höhe und überquere die Ziellinie. GESCHAFFT!&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;„Der Schmerz vergeht, der Stolz bleibt“&lt;/p&gt;
&lt;div class=&quot;wb_fb_comment&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2016-10-30T14:45:38+00:00</dc:date>
	<dc:creator>jaybe</dc:creator>
</item>
<item rdf:about="https://curius.de/blog/13-betriebssysteme/desktop/open-source/659-centos-mit-unklarem-supportstatus">
	<title>Gerrit Kruse (MrGerardCruiz): CentOS mit unklarem Supportstatus</title>
	<link>https://curius.de/blog/13-betriebssysteme/desktop/open-source/659-centos-mit-unklarem-supportstatus</link>
	<content:encoded>&lt;p&gt;&lt;img src=&quot;https://curius.de/images/header/werkzeuge_header.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;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: &lt;a href=&quot;https://curius.de/betriebssysteme/linux&quot;&gt;Linux - Eine sichere Basis&lt;/a&gt;). Mit CentOS steht hier ein weiteres Projekt vor dem Ausfall.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Es braucht diese ständigen Updates eigentlich auch nicht. Linux auf dem Desktop ist im Wartungsmodus (siehe auch: &lt;a href=&quot;https://curius.de/blog/13-betriebssysteme/desktop/open-source/626-kein-ubuntu-20-04-test&quot;&gt;Kein Ubuntu 20.04 Test&lt;/a&gt;). 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Wie Michael Kofler &lt;a href=&quot;https://kofler.info/centos-8-wertlose-langzeitunterstuetzung/&quot;&gt;in seinem Blog&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;Bilder: &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;Einleitungsbild und Beitragsbild von von &lt;a href=&quot;https://pixabay.com/users/mohamed_hassan-5229782/&quot;&gt;mohamed Hassan&lt;/a&gt; via &lt;a href=&quot;https://pixabay.com&quot;&gt;pixabay&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;&amp;quot;&quot; height=&quot;1&quot; src=&quot;https://vg08.met.vgwort.de/na/a0da5be90a644eeba11e19e5a4fcf123&quot; width=&quot;1&quot; /&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2020-06-20T11:27:32+00:00</dc:date>
	<dc:creator>Gerrit</dc:creator>
</item>
<item rdf:about="https://www.schiessle.org/articles/2017/07/09/welcome-to-my-new-homepage/">
	<title>Bjoern Schiessle (BeS): Welcome to my new Homepage</title>
	<link>https://www.schiessle.org/articles/2017/07/09/welcome-to-my-new-homepage/</link>
	<content:encoded>&lt;p&gt;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.&lt;/p&gt;

&lt;h2 id=&quot;basic-setup&quot;&gt;Basic setup&lt;/h2&gt;

&lt;p&gt;As already said I use Hugo to generate the static sites. My theme is
based on &lt;a href=&quot;https://github.com/nurlansu/hugo-sustain&quot;&gt;Sustain&lt;/a&gt;.
I did some changes and uploaded my version to
&lt;a href=&quot;https://gitlab.com/BeS/hugo-sustain-ng&quot;&gt;GitLab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;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 &lt;a href=&quot;https://www.schiessle.org/tags/slides/&quot;&gt;here&lt;/a&gt;.
The theme contains a example site which shows all this features.&lt;/p&gt;

&lt;h2 id=&quot;comments&quot;&gt;Comments&lt;/h2&gt;

&lt;p&gt;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 &lt;a href=&quot;https://staticman.net/&quot;&gt;Staticman&lt;/a&gt;
looks really promising. Sadly it only works with GitHub. Please let me
know if you know something similar which doesn’t depend on GitHub.&lt;/p&gt;

&lt;p&gt;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
&lt;a href=&quot;https://soc.schiessle.org/profile/blog/?tab=profile&quot;&gt;this
Friendica account&lt;/a&gt;. I also created a &lt;a href=&quot;https://www.schiessle.org/fediverse&quot;&gt;more detailed description&lt;/a&gt;
for people new to the world of free social networking.&lt;/p&gt;

&lt;h2 id=&quot;deployment&quot;&gt;Deployment&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;pre&gt;&lt;code&gt;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 &quot;${HOME}/.ssh&quot;
  - echo &quot;${SSH_HOST_KEY}&quot; &amp;gt; &quot;${HOME}/.ssh/known_hosts&quot;
  - echo &quot;${SSH_PRIVATE_KEY}&quot; &amp;gt; &quot;${HOME}/.ssh/id_rsa&quot;
  - chmod 700 &quot;${HOME}/.ssh/id_rsa&quot;
  - rsync -hrvz --delete --exclude=_ public/ schiesbn@schiessle.org:/home/schiesbn/websites/schiessle.org/htdocs/
  artifacts:
    paths:
    - public
  only:
  - master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;p&gt;To get the right value for &lt;code&gt;SSH_HOST_KEY&lt;/code&gt;, we run &lt;code&gt;ssh-keyscan
&amp;lt;our-webpage-host&amp;gt;&lt;/code&gt;. Once we executed that command, we should
see something similar to &lt;code&gt;schiessle.org ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCtwsSpeNV...&lt;/code&gt;.  Let’s copy this to the
&lt;code&gt;SSH_HOST_KEY&lt;/code&gt; value in our GitLab settings.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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
&lt;code&gt;-e'ssh -v'&lt;/code&gt; to the rsync command.&lt;/p&gt;

&lt;p&gt;Executing the rsync command with the additional option should result
in something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;debug1: Sending command: rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;we copy this command to create following .ssh/authorized_keys entry:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;command=&quot;rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/&quot;,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
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2 id=&quot;interesting-observation&quot;&gt;Interesting observation&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;</content:encoded>
	<dc:date>2017-07-09T09:04:22+00:00</dc:date>
	<dc:creator>Björn Schießle</dc:creator>
</item>
<item rdf:about="https://curius.de/blog/14-dienste/276-datenabfluss-bei-facebook-eine-nachbetrachtung">
	<title>Gerrit Kruse (MrGerardCruiz): Datenabfluss bei Facebook - Eine Nachbetrachtung</title>
	<link>https://curius.de/blog/14-dienste/276-datenabfluss-bei-facebook-eine-nachbetrachtung</link>
	<content:encoded>&lt;p&gt;&lt;img src=&quot;https://curius.de/images/header/social_header.jpg&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;&lt;em&gt;Bild von geralt via pixabay / Lizenz: CC0 Creative Commons&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;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 &lt;a href=&quot;http://www.sueddeutsche.de/digital/datenmissbrauch-was-ist-eigentlich-gerade-bei-facebook-los-1.3932349&quot;&gt;sehen darin die größte Krise&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Letztlich übt man sich zwar in digitaler Selbstverstümmelung, erzielt aber nicht mal den erwünschten Effekt.&lt;/p&gt;
&lt;p&gt;Zielführender sind da sicher Maßnahmen wie der kürzlich vorgestellte &lt;a href=&quot;https://blog.mozilla.org/firefox/facebook-container-extension/&quot;&gt;Mozilla Facebook Container&lt;/a&gt;. 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.&lt;/p&gt;
&lt;p&gt;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 &lt;a href=&quot;https://www.golem.de/news/datenschutzreform-eu-kommission-lehnt-deutschen-sonderweg-ab-1704-127430.html&quot;&gt;keineswegs so rigoros&lt;/a&gt; im Datenschutz, wie sie sich jetzt medial gibt.&lt;/p&gt;</content:encoded>
	<dc:date>2018-04-08T13:05:19+00:00</dc:date>
	<dc:creator>Cruiz</dc:creator>
</item>
<item rdf:about="https://www.schiessle.org/articles/2009/02/01/an-awesome-event-is-over-kde-42-release-party-and-fellowship-meeting-in-stuttgart/">
	<title>Bjoern Schiessle (BeS): An awesome event is over: KDE 4.2 Release Party and Fellowship Meeting at Stuttgart</title>
	<link>https://www.schiessle.org/articles/2009/02/01/an-awesome-event-is-over-kde-42-release-party-and-fellowship-meeting-in-stuttgart/</link>
	<content:encoded>&lt;p&gt;At Friday, 30.Jan.09 we had a joint event between &lt;a href=&quot;http://www.kde.org&quot;&gt;KDE&lt;/a&gt; and the &lt;a href=&quot;http://fellowship.fsfe.org&quot;&gt;Fellowship&lt;/a&gt; of the &lt;a href=&quot;http://www.fsfeurope.org&quot;&gt;Free Software Foundation Europe (FSFE)&lt;/a&gt; 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 &lt;a href=&quot;http://www.fsfeurope.org/documents/freesoftware.en.html&quot;&gt;Free Software&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wiki.fsfe.org/FellowshipGroup/Stuttgart/KDE_4_2_Release_Party?action=AttachFile&amp;amp;do=view&amp;amp;target=img_0025.jpg&quot;&gt;&lt;img class=&quot;article-image&quot; src=&quot;https://www.schiessle.org/img/articles/fsfe-meeting-stuttgart-2009-1.jpg&quot; style=&quot;float: left; width: 300px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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 &lt;a href=&quot;http://www.schiessle.org/data/2009-01-30-fellowsip/fsfe+fellowship.pdf&quot;&gt;here&lt;/a&gt; (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 &lt;a href=&quot;https://lists.fsfe.org/mailman/listinfo/sueddeutschland&quot;&gt;mailing list for South Germany&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wiki.fsfe.org/FellowshipGroup/Stuttgart/KDE_4_2_Release_Party?action=AttachFile&amp;amp;do=view&amp;amp;target=img_0033.jpg&quot;&gt;&lt;img class=&quot;article-image&quot; src=&quot;https://www.schiessle.org/img/articles/fsfe-meeting-stuttgart-2009-2.jpg&quot; style=&quot;float: right; width: 300px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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 &lt;a href=&quot;https://wiki.fsfe.org/FellowshipGroup/Stuttgart/&quot;&gt;Fellowship Group Stuttgart&lt;/a&gt;. 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.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://wiki.fsfe.org/FellowshipGroup/Stuttgart/KDE_4_2_Release_Party?action=AttachFile&amp;amp;do=view&amp;amp;target=img_0035.jpg&quot;&gt;&lt;img class=&quot;article-image&quot; src=&quot;https://www.schiessle.org/img/articles/fsfe-meeting-stuttgart-2009-3.jpg&quot; style=&quot;float: left; width: 300px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;At 2:30 at night a great event was over. I really want to thank &lt;a href=&quot;http://www.kdedevelopers.org/blog/4326&quot;&gt;Frederik&lt;/a&gt; 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!&lt;/p&gt;

&lt;p&gt;More pictures can be found &lt;a href=&quot;https://wiki.fsfe.org/FellowshipGroup/Stuttgart/KDE_4_2_Release_Party&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2009-02-01T16:30:33+00:00</dc:date>
	<dc:creator>Björn Schießle</dc:creator>
</item>
<item rdf:about="http://marmaro.de/lue/txt/2018-07-05.txt">
	<title>(Meillo): 2018-07-05</title>
	<link>http://marmaro.de/lue/txt/2018-07-05.txt</link>
	<content:encoded>&lt;pre&gt;2018-07-05



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




http://marmaro.de/lue/        markus schnalke &amp;lt;meillo@marmaro.de&amp;gt;
&lt;/pre&gt;</content:encoded>
	<dc:date>2018-07-04T22:00:00+00:00</dc:date>
</item>
<item rdf:about="https://malte-kiefer.de/blog/Threema-Lizenzen/">
	<title>Malte Kiefer (beLI3VeR): Threema Lizenzen zu verschenken</title>
	<link>https://malte-kiefer.de/blog/Threema-Lizenzen/</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;&lt;p&gt;Wie in den letzten Jahren werde ich auch dieses Jahr wieder Threema Android Lizenzen verschenken.
Dieses Jahr werde ich &lt;strong&gt;5&lt;/strong&gt; Lizenzen verschenken. Dazu erhalten die Gewinner oder Glücklichen von mir einen Lzenzschlüssel, mit dem sie auf der Webseite von &lt;a href=&quot;https://threema.ch&quot;&gt;Threema&lt;/a&gt; dann den Android Client nach Eingabe des Lizenzschlüssel herunterladen können.&lt;/p&gt;
&lt;p&gt;Es ist nicht möglich, damit Threema vom PlayStore sondern nur aus dem Threema Store herunterzuladen.&lt;/p&gt;
&lt;h3&gt;Teilnahme&lt;/h3&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;1.) Aus welchem Land kommt Threema?
2.) Was bedeuten die 3 grünen Punkte bei einem Threema Kontakt?
3.) Was ist der Threema Safe?&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2019-12-07T00:00:00+00:00</dc:date>
	<dc:creator>Malte Kiefer</dc:creator>
</item>
<item rdf:about="http://marmaro.de/lue/txt/2018-03-08.txt">
	<title>(Meillo): 2018-03-08</title>
	<link>http://marmaro.de/lue/txt/2018-03-08.txt</link>
	<content:encoded>&lt;pre&gt;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/ } &amp;lt;&amp;gt;;' &quot;$@&quot;
     }

[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&amp;amp;t=168942#p1167421
[1]  https://debianforum.de/forum/viewtopic.php?f=29&amp;amp;t=168943&amp;amp;p=1167436#p1167436


http://marmaro.de/lue/        markus schnalke &amp;lt;meillo@marmaro.de&amp;gt;
&lt;/pre&gt;</content:encoded>
	<dc:date>2018-03-07T23:00:00+00:00</dc:date>
</item>
<item rdf:about="http://vinzv.de/?p=922102283">
	<title>Vinzenz Vietzke (vinz): Tor und Tor-Browser in Fedora 17/18 installieren</title>
	<link>https://vinzv.de/tor-und-tor-browser-in-fedora-1718-installieren/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://jamielinux.com&quot;&gt;Jamie Nguyen&lt;/a&gt; hat Tor und Tor-Browser für Fedora paketiert. Um diese Pakete über sein Repository zu bekommen, installiert ihr euch entweder das &lt;a href=&quot;https://jamielinux.com/files/jamielinux-tor-release.noarch.rpm&quot;&gt;Release-Package&lt;/a&gt; oder macht das von Hand:&lt;/p&gt;
&lt;pre&gt;&lt;small&gt;wget https://jamielinux.com/pub/jamielinux-tor-release.noarch.rpm
yum install ./jamielinux-tor-release.noarch.rpm&lt;/small&gt;&lt;/pre&gt;
&lt;p&gt;Danach installiert ihr alle nötigen Pakete, aktiviert und startet Tor. Alle Pakete sind &lt;a href=&quot;https://jamielinux.com/contact/&quot;&gt;GPG-signiert&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;small&gt;yum install tor tor-browser tor-browser-selinux
systemctl enable tor.service
systemctl start tor.service&lt;/small&gt;&lt;/pre&gt;
&lt;p&gt;Optional könnt ihr mit &lt;code&gt;&quot;tor-browser-selinux&quot;&lt;/code&gt; die Unterstützung für SELinux installieren.&lt;/p&gt;</content:encoded>
	<dc:date>2013-01-18T09:52:40+00:00</dc:date>
	<dc:creator>vinzv</dc:creator>
</item>
<item rdf:about="https://www.chrismoonlight.de/wordpress/?p=2601">
	<title>Christian Schmitt (slater): WTF</title>
	<link>https://www.chrismoonlight.de/wordpress/2017/07/25/wtf-2/</link>
	<content:encoded>&lt;p&gt;16 Grad C im Juli!???!&lt;/p&gt;</content:encoded>
	<dc:date>2017-07-25T09:02:38+00:00</dc:date>
	<dc:creator>Slater</dc:creator>
</item>
<item rdf:about="https://suntsu.ch/index.php?/archives/248-guid.html">
	<title>Manuel Kaderli (suntsu): Be careful using ThreadStatic in Visual Studio unit tests</title>
	<link>https://suntsu.ch/index.php?/archives/248-Be-careful-using-ThreadStatic-in-Visual-Studio-unit-tests.html</link>
	<content:encoded>&lt;p&gt;&lt;/p&gt;&lt;p&gt;Given is a ThreadStatic field which is set to empty in the static constructor, and set by a public instance method: &lt;/p&gt; &lt;pre class=&quot;brush: csharp;&quot;&gt;    public class TestClass
    {
        [ThreadStatic] 
        private static string threadStaticValue;
        static TestClass()
        {
            threadStaticValue = &quot;&quot;;
        }
        public void SetThreadStaticValue(string value)
        {
            threadStaticValue = value;
        }
        public string GetThreadStaticValue()
        {
            return threadStaticValue;
        }
    }
&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Now two unit tests check whether the threadStaticValue is set correct.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: csharp;&quot;&gt;    [TestClass]
    public class ThreadStaticTest
    {
        [TestMethod]
        public void WithThreadStaticValueSetTest()
        {
            Debug.WriteLine(&quot;Thread id: {0}&quot;, System.Threading.Thread.CurrentThread.ManagedThreadId);
            TestClass tc = new TestClass();
            tc.SetThreadStaticValue(&quot;foo&quot;);
            Assert.AreSame(tc.GetThreadStaticValue(), &quot;foo&quot;);
        }
        [TestMethod]
        public void WithThreadStaticValueNotSetTest()
        {
            Debug.WriteLine(&quot;Thread id: {0}&quot;, System.Threading.Thread.CurrentThread.ManagedThreadId);
            TestClass tc = new TestClass();
            Assert.AreSame(tc.GetThreadStaticValue(), &quot;&quot;);
        }
    }
&lt;/pre&gt;
&lt;p&gt;Those tests will fail(good) or pass(bad) depending of whether the test engine will reuse the same thread. &lt;/p&gt;
&lt;p&gt;Executed a second time, the result could be different. &lt;/p&gt;
&lt;p&gt;Solution: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Don't use ThreadStatic at all 
&lt;/li&gt;&lt;li&gt;Make sure the ThreadStatic fields are initialized correctly before using them&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2014-03-24T11:28:23+00:00</dc:date>
	<dc:creator>suntsu</dc:creator>
</item>
<item rdf:about="https://www.chrismoonlight.de/wordpress/?p=2607">
	<title>Christian Schmitt (slater): Amazone Prime Video mit Linux Mint</title>
	<link>https://www.chrismoonlight.de/wordpress/2017/11/13/amazone-prime-video-mit-linux-mint/</link>
	<content:encoded>&lt;p&gt;Hej zusammen…&lt;/p&gt;
&lt;p&gt;Ich habe heute mit meiner frischen installation von Linux Mint gekämpft… Prime Vido wollte nicht so wie ich es wollte…&lt;/p&gt;
&lt;p&gt;Erst mal das was nicht geklappt hat:&lt;/p&gt;
&lt;p&gt;Die ganzen Tips mit installiere HAL Lib über verschiedene wege…&lt;br /&gt;
Silverlight mit Wine…&lt;br /&gt;
Diverse Einstellung (hatten auch alle mit hal-libery zu tun)&lt;/p&gt;
&lt;p&gt;Geholfen hat zum Schluss Mint selber!&lt;/p&gt;
&lt;p&gt;Ü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.&lt;/p&gt;
&lt;p&gt;Wenn ich noch was finde, was geädert wurde, werde ich es hier aktualisieren…&lt;/p&gt;</content:encoded>
	<dc:date>2017-11-13T19:00:00+00:00</dc:date>
	<dc:creator>Slater</dc:creator>
</item>
<item rdf:about="https://malte-kiefer.de/blog/Kommentare-mit-Github/">
	<title>Malte Kiefer (beLI3VeR): Kommentare mit Github</title>
	<link>https://malte-kiefer.de/blog/Kommentare-mit-Github/</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;&lt;p&gt;Ich bin ein großer Freund vom Datenschutz, leider unterstützt Hugo nur &lt;a href=&quot;https://disqus.com/&quot;&gt;disqus&lt;/a&gt;, was alles andere als freundlich zum Datenschutz ist. Also gab es die letzten Monate nie eine Kommentar Funktion, das hat sich jetzt geändert.&lt;/p&gt;
&lt;p&gt;Ich bin durch Zufall auf den &lt;a href=&quot;http://donw.io/post/github-comments/&quot;&gt;Artikel von Don Williamson&lt;/a&gt; gestoßen, der es mir erlaubt eine Kommentar Funktion für meine Artikel durch Github anzubieten.&lt;/p&gt;
&lt;h2&gt;Konfiguration&lt;/h2&gt;
&lt;p&gt;Als erstes legen wir eine Datei &lt;strong&gt;comments.html&lt;/strong&gt; im Ordner &lt;em&gt;&lt;strong&gt;themes/THEME_NAME/layouts/partials/&lt;/strong&gt;&lt;/em&gt; mit folgenden Inhalt an:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;div id=&quot;gh-comments&quot;&amp;gt;
          &amp;lt;h2&amp;gt;Kommentare&amp;lt;/h2&amp;gt;
              &amp;lt;div id=&quot;gh-comments-list&quot;&amp;gt;&amp;lt;/div&amp;gt;
                  &amp;lt;a href=&quot;javascript:void(0)&quot; id=&quot;gh-load-comments&quot; class=&quot;btn&quot; style=&quot;display:none&quot;&amp;gt;Load more comments&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;

   &amp;lt;script type=&quot;text/javascript&quot; data-ghid=&quot;{{ $.Params.ghcommentid }}&quot; src=&quot;{{ .Site.BaseURL }}js/github-comments.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als nächstes brauchen wir jetzt noch die JS Datei, die für uns die ganze Arbeit macht &lt;em&gt;&lt;strong&gt;themes/THEME_NAME/static/js/github-comments.js&lt;/strong&gt;&lt;/em&gt; mit folgenden Inhalt:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// 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 === &quot;undefined&quot; ) {
   var ghid = '0';
}

DoGithubComments(ghid);

var CurrentPage = 0;

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

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

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

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

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

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

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

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

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

                    var date = new Date(comment.created_at);

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

                // Setup comments button if there are more pages to display
                var links = ParseLinkHeader(jqXHR.getResponseHeader(&quot;Link&quot;));
                if (&quot;next&quot; in links)
                {
                    $(&quot;#gh-load-comments&quot;).attr(&quot;onclick&quot;, &quot;DoGithubComments(&quot; + comment_id + &quot;,&quot; + (page_id + 1) + &quot;);&quot;);
                    $(&quot;#gh-load-comments&quot;).show();
                }
                else
                {
                    $(&quot;#gh-load-comments&quot;).hide();
                }
            },
            error: function() {
                $(&quot;#gh-comments-list&quot;).append(&quot;Kommentarfunktion für diesen Beitrag nicht aktiviert!&quot;);
            }
        });
    });
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;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.
&lt;strong&gt;Achtung: Wir brauchen auch jQuery!&lt;/strong&gt;.
jQuery sollte umbedingt im &lt;code&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/code&gt; geladen werden.&lt;/p&gt;
&lt;p&gt;Zum Schluss noch das Template für die Beitragsdatei anpassen &lt;em&gt;&lt;strong&gt;(themes/THEME_NAME/layouts/_default/single.html)&lt;/strong&gt;&lt;/em&gt; und den folgenden Teil for dem Aufruf des &lt;code&gt;&amp;lt;footer&amp;gt;&amp;lt;/footer&amp;gt;&lt;/code&gt; Tags einfügen:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;{{ partial &quot;comments.html&quot; . }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Um jetzt die Kommentarfunktion zu nutzen, ein entsprechendes &lt;strong&gt;issue&lt;/strong&gt; bei Github eröffnen, die ID merken. Wenn ihr dann einen neuen Beitrag erstellt, müsst ihr vor den &quot;---&quot; folgendes einfügen:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;ghcommentid: ID
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Und das wars, nun habt ihr und ich eine Kommentarfunktion.&lt;/p&gt;
&lt;h2&gt;CSP&lt;/h2&gt;
&lt;p&gt;Damit ihr diese Funktion mit &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP&quot;&gt;CSP&lt;/a&gt; nutzen könnt, müssen folgende Einstellungen gesetzt sein:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;img-src 'self' https://*.githubusercontent.com;
connect-src 'self' https://*.github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2018-05-08T00:00:00+00:00</dc:date>
	<dc:creator>Malte Kiefer</dc:creator>
</item>
<item rdf:about="https://www.globalcitizen.red/?p=11355">
	<title>Helmut Roewer (Dunkelangst): HKG✈KHH</title>
	<link>https://www.globalcitizen.red/2016/06/24/hkg-khh/</link>
	<content:encoded>&lt;h2&gt;Trip 35&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.globalcitizen.red/wp-content/uploads/DSC00311.jpg&quot;&gt;&lt;img alt=&quot;Flight KA 450 from HKG to KHH&quot; class=&quot;alignnone size-large wp-image-11356&quot; height=&quot;400&quot; src=&quot;https://www.globalcitizen.red/wp-content/uploads/DSC00311-600x400.jpg&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-11355&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flight 89: Hong Kong International Airport to Kaohsiung International Airport&lt;/li&gt;
&lt;li&gt;Airbus A 330-300 – Dragonair&lt;/li&gt;
&lt;li&gt;planed duration: 1h 25min&lt;/li&gt;
&lt;li&gt;See also the &lt;a href=&quot;https://www.globalcitizen.red/itinerary/&quot; title=&quot;itinerary&quot;&gt;itinerary&lt;/a&gt; to get an overview.&lt;/li&gt;
&lt;/ul&gt;
 &lt;img height=&quot;1&quot; src=&quot;https://www.globalcitizen.red/?feed-stats-post-id=11355&quot; style=&quot;display: none;&quot; width=&quot;1&quot; /&gt;</content:encoded>
	<dc:date>2016-06-24T19:46:27+00:00</dc:date>
	<dc:creator>Helmut</dc:creator>
</item>
<item rdf:about="http://www.black-cat-online.net/wordpress/?p=447">
	<title>Jürgen Braun (jaybe): Android Tablet</title>
	<link>http://www.fz6fazer.net/wordpress/2010/08/18/android-tablet/</link>
	<content:encoded>&lt;p&gt;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.&lt;br /&gt;
Für 179.-€ war nun ein Tablet mit Android 2.1 &lt;a href=&quot;http://www.mobiflip.de/2010/07/179-euro-android-2-1-tablet-surfer-beim-discounter/&quot;&gt;angekündigt&lt;/a&gt;. 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 &lt;a href=&quot;http://www.android-hilfe.de/android-tablet-forum/37576-7-tablet-mit-android-2-1-fuer-179-bei-marktkauf-erhaeltlich.html&quot;&gt;Erfahrungsberichte&lt;/a&gt; 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:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;..ich sags mal ganz unverblümt&lt;br /&gt;
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..&lt;/p&gt;
&lt;p&gt;Für alle anderen, die spaß an linux haben, lässt sich da sicher noch einiges machen bzw. fehlende funktionen nachrüsten.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Am Wochenende wurde das Gerät dann geliefert, die Inbetriebnahme musste jedoch bis Sonntag Abend warten.&lt;br /&gt;
Einloggen in das WLAN, Einrichten von &lt;a href=&quot;http://mail.google.com/&quot;&gt;Googlemail&lt;/a&gt;, Zugriff auf den eigenen Mailserver, Surfen im Web und die installierten Applikationen für &lt;a href=&quot;http://maps.google.de/&quot;&gt;Google Maps&lt;/a&gt; und &lt;a href=&quot;http://www.youtube.de&quot;&gt;YouTube&lt;/a&gt; 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.&lt;br /&gt;
&lt;strong&gt;Hardware&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;br /&gt;
&lt;strong&gt; Software&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser: Eingabe über Touchscreen hakelig auch bei Verwendung des Eingabestiftes. Lädt und stellt die Webseiten recht flott dar.&lt;/li&gt;
&lt;li&gt;Mail: Konfiguration von mehreren Mailservern möglich, Zugriff per POP3 oder IMAP&lt;/li&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;Google Mail: direkte Verknüpfung mit meinem Google Mail Account, funktioniert einfach.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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 &lt;a href=&quot;http://www.ivhp.de/Smartbook_Surfer/info/index.php&quot; target=&quot;_blank&quot;&gt;Seite mit Howtos&lt;/a&gt;, 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.&lt;/p&gt;
&lt;div class=&quot;wb_fb_comment&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-08-18T18:24:50+00:00</dc:date>
	<dc:creator>jaybe</dc:creator>
</item>
<item rdf:about="https://suntsu.ch/index.php?/archives/234-guid.html">
	<title>Manuel Kaderli (suntsu): Authenticate to smugmug with oAuth and c#</title>
	<link>https://suntsu.ch/index.php?/archives/234-Authenticate-to-smugmug-with-oAuth-and-c.html</link>
	<content:encoded>&lt;p&gt;Some weeks ago, i tried to create a windows phone 7 &lt;a href=&quot;http://www.smugmug.com/&quot;&gt;smugmug&lt;/a&gt; app(photo browser).
I had &lt;a href=&quot;http://www.dgrin.com/showthread.php?t=207148&amp;amp;highlight=oauth&quot;&gt;some problems&lt;/a&gt; with oAuth at the beginning, 
First, I tried the g&lt;a href=&quot;http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs&quot;&gt;oogle oAuth implementation in c#&lt;/a&gt; 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. &lt;/p&gt;

&lt;p&gt;Even with the &lt;a href=&quot;http://wiki.smugmug.net/display/API/OAuth&quot;&gt;smugmug oAuth documentation&lt;/a&gt;, 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.&lt;/p&gt;

&lt;p&gt;After some time, i found an c# oAuth class written for twitter access for &lt;a href=&quot;http://cropperplugins.codeplex.com/&quot;&gt;cropperplugins.codeplex&lt;/a&gt;. 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.&lt;/p&gt;

&lt;p&gt;To get this sample working, you only have to set you apiKey and secret. This sample will do:
&lt;strong&gt;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.&lt;/strong&gt;
&lt;/p&gt;&lt;pre class=&quot;brush: csharp; ruler: false;&quot; name=&quot;code&quot;&gt;        private void AuthenticateSmugmug()
        {
            const string apiKey = &quot;YOUR&lt;em&gt;API&lt;/em&gt;KEY&quot;;//apikey from your smugmug account
            const string secret = &quot;YOUR_SECRET&quot;;//secret from your smugmug account&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;        Console.WriteLine(&quot;Create new instance of OAuth Manager&quot;);
        Manager manager = new Manager(apiKey, secret);

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

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

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

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

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

        Console.WriteLine(string.Format(&quot;accessToken: {0}&quot;, accessToken[&quot;oauth_token&quot;]));
        Console.WriteLine(string.Format(&quot;accessTokenSecret: {0}&quot;, accessToken[&quot;oauth_token_secret&quot;]));
        Console.WriteLine(&quot;Press any key to quit the application&quot;);
        Console.ReadLine();
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;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.
&lt;a href=&quot;https://suntsu.ch/serendipity/uploads/SmugmugOAuthSample.zip&quot; target=&quot;_blank&quot; title=&quot;SmugmugOAuthSample.zip&quot;&gt;SmugmugOAuthSample.zip&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2011-12-29T09:31:04+00:00</dc:date>
	<dc:creator>suntsu</dc:creator>
</item>
<item rdf:about="https://dariansprojekt.de/?p=158">
	<title>Darian (thoys): Projektstart – die Ausgangssituation</title>
	<link>https://dariansprojekt.de/projektstart-die-ausgangssituation/</link>
	<content:encoded>&lt;p&gt;Am Anfang eines jeden Projekts muss man erst einmal schauen, was überhaupt Stand der Dinge ist. Also machen wir das mal und schauen, wo ich Funkverbindungen benutze, bevor ich starte, meine Funk-Bilanz zu reduzieren. Ich zeige euch meinen Arbeitsplatz und mein Zuhause. Denn an meinem Arbeitsplatz stehen zwar die meisten Geräte, aber mittlerweile nutze ich fast in jedem Raum ein Gerät, das einem den Alltag versüßt.&lt;/p&gt;



&lt;h2&gt;Mein Arbeitsplatz und mein Zuhause&lt;/h2&gt;



&lt;p&gt;Ich habe einen aufgeräumten Arbeitsplatz. Das brauche ich, sonst versinke ich im Chaos. Einiges ist noch mit Kabel verbunden, beispielsweise die Tastatur, die Maus und der Lautsprecher am Bildschirm. &lt;br /&gt;An Funktechniken verwende ich:&lt;/p&gt;



&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Digital_Enhanced_Cordless_Telecommunications&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;DECT&lt;/a&gt; (Hausintern – Schnurlostelefon)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Wireless_Local_Area_Network&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;W-LAN&lt;/a&gt; (Hausintern – Daten vom Router)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Bluetooth&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Bluetooth&lt;/a&gt; (Nahbereich – Verbindungen zu Kopfhörern, Lautsprechern usw.)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Next_Generation_Mobile_Networks&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;1G – 4G Mobilfunk&lt;/a&gt; (Fernbereich – Das durchgestrichene Flugzeug soll in diesem Fall die Verbindung zum Mobilfunkturm ohne Mobile Daten darstellen)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://de.wikipedia.org/wiki/Mobilfunk&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Mobile Daten&lt;/a&gt; (Fernbereich – Daten von Mobilfunktürmen)&lt;/li&gt;&lt;/ul&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-229&quot; height=&quot;545&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz1.jpg&quot; width=&quot;700&quot; /&gt;Mein Arbeitsplatz und die verwendeten Funktechniken &lt;/figure&gt;



&lt;p&gt;Viele andere Geräte sind per Funk mit Sendern im Haus oder mit dem Funkturm verbunden. Es ist viel, aber es hält sich noch im Rahmen dessen, was heute als normal gilt – oder?&lt;/p&gt;



&lt;ol&gt;&lt;li&gt;An erster Stelle steht natürlich das Smartphone. Funkverbindung (4G) und Mobile Daten sind an. Für Zuhause ist das W-LAN und Bluetooth für den Kopfhörer aktiviert. &lt;/li&gt;&lt;li&gt;Mein Smartphone und die genannten Verbindungen sind immer an – somit bin ich immer erreichbar.&lt;/li&gt;&lt;li&gt;Das Handy von meinem Nebenjob ist alt aber funktioniert zum Telefonieren wunderbar und der Akku hält mehrere Tage – es kann ja auch nichts. &lt;/li&gt;&lt;li&gt;Das Notebook ist per W-LAN mit dem Router zwei Stockwerte weiter unten verbunden, Bluetooth für die Kopfhörer und UMTS (3G). &lt;/li&gt;&lt;li&gt;Das Tablet ist ebenfalls mit W-LAN verbunden und hat ab und zu Bluetooth an. &lt;/li&gt;&lt;li&gt;Das Schnurlostelefon arbeitet mit DECT. Damit habe ich mich noch nicht weiter beschäftigt. &lt;/li&gt;&lt;li&gt;Der Drucker ist ebenfalls per W-LAN eingebunden, er kann auch Bluetooth, aber das habe ich noch nie verwendet.&lt;/li&gt;&lt;li&gt;Das W-LAN ist beim Router immer eingeschaltet. &lt;/li&gt;&lt;li&gt;Ich habe einen Receiver für den Fernseher, der ebenfalls per W-LAN eingebunden ist. &lt;/li&gt;&lt;li&gt;Die Musik kommt per Spotify.&lt;/li&gt;&lt;li&gt;Ich habe ein Medienwiedergabegerät von Noxon, dies hat eine Antenne und auch W-LAN.&lt;/li&gt;&lt;li&gt;Meine Internetgeschwindigkeit ist mit 50 Mbit/s ganz ordentlich für meine Gegend. Wenn ich schnelleres haben wollte, wäre das noch möglich. Den Stadtwerken sei dank, die Telekom hat nur 6 Mbit/s hinbekommen – abgesehen von Hybrid Tarifen, bei denen Kabel und 4G – Funk gemeinsam genutzt wird.&lt;/li&gt;&lt;li&gt;Alle Programme, die auf dem Handy laufen (Messenger, soziale Medien und praktische Programme, wie der Bahn-Navigator) nutze ich ausschließlich auf dem Smartphone.&lt;/li&gt;&lt;li&gt;Vor dem Fenster sehen wir in 150 Metern den nächsten Funkmast. Wir haben schnelles Internet per Mobile Daten. &lt;/li&gt;&lt;/ol&gt;



&lt;figure class=&quot;wp-block-gallery columns-3 is-cropped&quot;&gt;&lt;ul class=&quot;blocks-gallery-grid&quot;&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-230&quot; height=&quot;539&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz2.jpg&quot; width=&quot;700&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-231&quot; height=&quot;545&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz3.jpg&quot; width=&quot;700&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-232&quot; height=&quot;525&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz4.jpg&quot; width=&quot;700&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-233&quot; height=&quot;525&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz5.jpg&quot; width=&quot;700&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-235&quot; height=&quot;313&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz7.jpg&quot; width=&quot;499&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-240&quot; height=&quot;343&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz10.jpg&quot; width=&quot;500&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-234&quot; height=&quot;515&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz6.jpg&quot; width=&quot;700&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-236&quot; height=&quot;575&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz8.jpg&quot; width=&quot;500&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&quot;blocks-gallery-item&quot;&gt;&lt;figure&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-237&quot; height=&quot;591&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200611_arbeitsplatz9.jpg&quot; width=&quot;500&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/figure&gt;



&lt;p&gt;Ich habe als 6 W-LAN Endgeräte, einen W-LAN Router, 4 Endgeräte mit Bluetooth und einen nahestenden Funkmast. Dazu zwei Geräte, die per Funkverbindung zum Funkturm Telefonieren und ein Schnurlostelefon.&lt;/p&gt;



&lt;h2&gt;Projektstart&lt;/h2&gt;



&lt;div class=&quot;wp-block-media-text alignwide is-stacked-on-mobile is-image-fill&quot;&gt;&lt;figure class=&quot;wp-block-media-text__media&quot; style=&quot;background-position: 79% 42%;&quot;&gt;&lt;img alt=&quot;Termin&quot; class=&quot;wp-image-179&quot; height=&quot;527&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/200610_termin.png&quot; width=&quot;264&quot; /&gt;&lt;/figure&gt;&lt;div class=&quot;wp-block-media-text__content&quot;&gt;
&lt;p class=&quot;has-text-color has-background&quot; style=&quot;background-color: #78ab9f; color: #ffffff;&quot;&gt;Mein Plan ist, dass ich in zu allererst schaue, was ich durch Einstellungen von Geräten und durch kleine Verhaltsänderungen meinerseits machen kann. &lt;/p&gt;



&lt;p class=&quot;has-text-color has-background&quot; style=&quot;background-color: #78ab9f; color: #ffffff;&quot;&gt;&lt;strong&gt;Los gehts am 1. Juli.&lt;/strong&gt; &lt;/p&gt;



&lt;p class=&quot;has-text-color has-background&quot; style=&quot;background-color: #78ab9f; color: #ffffff;&quot;&gt;Folgt mir per Mail oder RSS und sagt mein Projekt euren Freunden weiter. Je mehr Menschen mir Tipps geben können, umso besser. Und natürlich freue ich mich auf deine Meinung, denn manches wird ganz einfach und manches etwas… sagen wir, nicht-alltagstauglich werden.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;



&lt;div class=&quot;wp-block-spacer&quot; style=&quot;height: 63px;&quot;&gt;&lt;/div&gt;



&lt;p class=&quot;has-text-align-center&quot;&gt;Wie sieht’s bei euch so aus? Schreibt’s mir in die Kommentare!&lt;/p&gt;



&lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter size-large is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-51&quot; height=&quot;182&quot; src=&quot;https://dariansprojekt.de/wp-content/uploads/2020/06/darianrundklein.png&quot; width=&quot;182&quot; /&gt;-&amp;lt;-,–{@ Euer Darian&lt;/figure&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2020-06-11T07:09:59+00:00</dc:date>
	<dc:creator>Darian</dc:creator>
</item>

</rdf:RDF>
