Ich weiß nicht, ob an dem dahinter liegenden Script Interesse besteht...
Einfach melden.
20 Jahre Zockertown – ein kleiner Rückblick
Wahnsinn, wie schnell die Zeit vergeht: Mein Blog Zockertown.de ist tatsächlich 20 Jahre alt geworden! Am Donnerstag, den 13. Januar 2005 um 21:01 Uhr ging der allererste Artikel online. Damals hätte ich nie gedacht, dass ich zwei Jahrzehnte später immer noch hier sitzen würde, um euch an meinen Gedanken, Spielen und Erlebnissen teilhaben zu lassen.
Inzwischen sind 1626 Artikel zusammengekommen – von spontanen Ideen bis zu aufwendigeren Beiträgen. Der letzte offizielle Eintrag stammt übrigens vom Samstag, 23. November 2024 um 11:11 Uhr. Nicht immer habe ich ganz pünktlich zum Geburtstag einen Artikel verfasst, aber alle paar Jahre packt mich dann doch die Nostalgie, und ich schreibe einen kleinen Rückblick.
Ein Beispiel für einen solchen “Geburtstagsartikel” findest du hier:
Geburtstag gehabt und keiner hat's gemerkt…
Was bleibt nach 20 Jahren?
Ich danke allen, die hier vorbeischauen, Kommentare dalassen oder einfach still mitlesen. Auf die nächsten Jahre voller neuer Games, Ideen und Texte – und vor allem auf viele weitere Momente, in denen wir zusammen zocken und darüber schreiben können!
Happy Blog-Geburtstag, Zockertown!
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 […]
Während ich den Jahresrückblick 2024 schrieb, wurde mir bewusst, dass ich das im April 2024 behandelte Thema Dokumentation für den Notfall bzw. das digitale Erbe immer noch nicht angegangen hatte. Dies ärgerte mich und so nutzte ich die Zeit zwischen den Jahren, um dies zu ändern.
Im ersten Schritt habe ich meine KeePassXC-Datenbank in eine CSV-Datei exportiert und die Zeilen gelöscht, die für meine Erben keine Bedeutung haben. Damit mir die CSV-Datei nicht abhanden kommt, habe ich diese bewusst nur in einem Verzeichnis auf meinem Laptop verarbeitet, das nicht synchronisiert wird und dessen Partition verschlüsselt ist.
Im Anschluss habe ich die CSV-Datei ausgedruckt und in einen Briefumschlag gesteckt. Der Umschlag wurde beschriftet, verklebt und an einem Ort deponiert, der nur meiner Frau und mir bekannt ist.
Kommen im Laufe der Zeit weitere wichtige Passwörter hinzu, wird dieser Prozess wiederholt und der vorhergehende Umschlag vernichtet.
Jeder Systemadministrator schätzt eine gute Dokumentation. Kein Systemadministrator schreibt gerne Dokumentation.
Meinung des Autors
Da die Dokumentation allerdings nicht von allein entsteht, nahm ich mir vor, jeden Tag wenigstens 10 Minuten daran zu arbeiten. Ich öffnete also TeXstudio und tippte auf die Tasten. Die Aussicht, ein feines LaTeX-Dokument zu produzieren, welches in ein gut lesbares PDF mündet, motivierte mich zusätzlich. Einmal angefangen, ging es dann deutlich schneller, als zuerst gedacht und am 27. Dezember war die erste Fassung fertig.
Die roten Rahmen in obigen Bild zeigen an, dass es sich um klickbare Links im PDF handelt. Im Ausdruck erscheinen diese nicht.
Das Dokument enthält Abbildungen der eingesetzten Hardware mit einer Standortbeschreibung, so dass man diese im Zweifel auch schnell findet. Informationen zu Vertrags-, Kundennummern, Online-Kundencentern und Einwahldaten gehören ebenfalls dazu. Ich habe mich bei der Frage, welche Informationen ich aufnehmen soll, daran orientiert, wonach ich gefragt habe, wenn ich bei Kunden vor Ort war und Probleme mit dem Internetzugang oder dem Netzwerk beheben sollte. Eine schematische Übersicht der Netzwerkinfrastruktur gehört natürlich auch dazu:
Das ausgedruckte Dokument habe ich meiner Frau in die Hand gedrückt mit der Bitte um Korrektur und Meinung. Es gefällt ihr und Sie findet es gut, dieses für den Notfall zu haben.
Eine zu Hilfe gerufene IT-Fachkraft kann sich damit schnell einen Überblick verschaffen, was die Zeit zur Lösung eines etwaigen Problems deutlich verkürzen sollte.
Einmal angefangen war die Dokumentation schnell erstellt. Ich habe nicht auf die Uhr geschaut. Doch habe ich, denke ich, nicht länger als drei Stunden daran gesessen. Mich zum Anfangen zu überwinden war schwer, danach lief es wie geschmiert.
Es kommen auch gar nicht viele Seiten zusammen, wenn man sich auf das Wesentliche beschränkt.
Mir ist bewusst, dass diese Dokumentation nicht vollständig ist. Je länger ich darüber nachdenke, desto mehr Dinge werden mir einfallen, die ich noch aufnehmen möchte. Und das ist vollkommen in Ordnung.
Es ist gut, richtig und wichtig mit den wichtigsten Punkten zu beginnen. Weitere Abschnitte können im Laufe der Zeit ergänzt werden. Wartet bitte nicht, bis ihr glaubt, eine vollständige Gliederung vorliegen zu haben, bevor ihr mit dem Schreiben beginnt. Ich kann mir z.B. vorstellen, noch einen Abschnitt zum Multifuntionsgerät in unserem Netzwerk und zum Troubleshooting häufig auftretender Probleme zu ergänzen.
Gibt es nur einen Internetanschluss, stellt man schnell fest, ob dieser funktioniert oder nicht. Hat man zwei Internetanschlüsse, die an einer Firewall in einer Failover-Gruppe zusammengeführt werden, wird es schwieriger, denn fällt ein Anschluss aus, merkt man es zuerst gar nicht, wenn der Failover funktioniert.
Kamen früher nur DNS, das WLAN und die ConnectBox in Verdacht, gesellt sich nun die OPNsense zum Kreis der Verdächtigen hinzu. Dies ist evtl. nicht für jeden Heimnetzwerkadministrator oder Laien sofort ersichtlich. Und auch nicht alle Kundendienst-Techniker von Internetdiensteanbietern sind mit der Konfiguration von professionellen Firewalls vertraut.
Mit der vorhandenen Notfalldokumentation und den darin enthaltenen Verweisen auf die OPNsense-Dokumentation kommt man im Notfall zurecht. Ich werde mir jedoch noch Gedanken machen, wie ich dies weiter verbessern kann.
Die nun existierende IT-Dokumentation ist definitiv besser, als gar keine zu haben. Es ist keine Schritt-für-Schritt-Anleitung zur Dienst-/Zugangs-Wiederherstellung, bietet aber die wichtigsten Informationen, um sich selbst helfen zu können.
Die Informationen sind ausgedruckt auch dann verfügbar, wenn die gesamte IT ausfällt und z.B. das WLAN oder der Zugriff auf das Dokumenten-Management-System nicht verfügbar sind.
Ich habe ein gutes Gefühl, diese Doku im Schrank liegen zu haben.
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 […]
„Das mit den Vorhaben für nächstes Jahr spare ich mir mal wieder. Erst muß ich mal wieder richtig gesund werden.“ schrieb ich letztes Jahr am Ende meines Jahresrückblicks. Meine Gesundheit wurde jedoch zu einer Berg- und Talfahrt. Also, von Tal am Jahresanfang über Berg im Sommer und dann wieder ab Spätsommer in Richtung Tal.
Der Reihe nach. Das Jahr begann kalt. Die neue Gastherme, die im Dezember des Vorjahres kaputtgegangen war, wurde erst am 11. Januar repariert. Davor lief sie eine gute Woche lang in einem Sonder-Modus, nämlich fix auf 50 °C Vorlauftemperatur. Die Verbindung zwischen Funkempfänger und Therme war defekt, das Ersatzteil mußte erst bestellt werden. Dann wurde es hier endlich wieder richtig warm.
Sozial kalt wurde es auch erstmal: Das ARGE meinte, meinen Weiterbewilligungsantrag (WBA) nicht rechtzeitig vor dem Jahreswechsel bearbeiten zu müssen, und ich mußte erst noch Zeug nachreichen. Außerdem wollten sie Papier haben, das sie nachgewiesenermaßen schon bekommen hatten, und Papier, das ich selbst noch gar nicht hatte. Aber ich habe nichts nochmal geliefert, sondern sie per E-Mail zusammengestaucht, daß sie gefälligst in der Akte suchen sollen. Den Arsch trage ich dem Laden nicht mehr nach. Das Schöne an jobcenter.digital: Ich kann für jeden Antrag und jeden Upload sofort eine Bestätigung runterladen. Das mache ich seitdem auch. Und dann schicke ich nur noch die Bestätigung zurück, wenn sie meinen, mal wieder was „verloren“ zu haben. Immerhin haben sie nach nochmal zweimal nachtreten endlich geschnallt, daß sie mich nicht gleichzeitig als arbeitsuchend (statt aufstockend) führen und trotzdem alle halbe Jahre einen WBA verlangen dürfen, sondern eben nur noch jährlich.
Von der Krankenkasse war mir eine Haushaltshilfe bezahlt worden, aber nur für drei Wochen. Ja, ich hätte verlängern können. Stattdessen habe ich den letzten Termin selbst gecancelt. Nicht weil ich unzufrieden war, sondern weil ich ihr nur noch Aufgaben hätte geben können, die mit meinen größeren Problemen hier in der Wohnung zusammenhingen und nicht mit meiner Mobilitätseinschränkung. Das Timing war für mich außerdem unpraktisch: Um bei den Zuzahlungen zu sparen, hatte ich sie auf zweimal pro Woche jeweils für drei Stunden bestellt. Dazwischen konnte ich nicht viel machen, und umgekehrt waren drei Stunden am Stück auch wieder zu viel.
Am 20. Januar machte ich mir Gedanken über blinde Menschen im Fediverse. Und am 27. Januar schaffte ich es erstaunlicherweise, bei der großen Demo gegen die AfD in Düsseldorf mitzulaufen. Die ganze Strecke von der Friedrich-Ebert-Straße bis zu den Rheinwiesen auf der anderen Rheinseite. Ich war ganz an den Anfang des Zuges am Graf-Adolf-Platz vor gelaufen, bevor es losging, und fiel unterwegs erwartungsgemäß, weil ich nicht so schnell laufen konnte, zurück auf etwa die halbe Länge des Demo-Zuges. Fotografiert hatte ich allerdings nur mit dem Smartphone.
Fotos im Januar:
Im Februar schaffte ich es zum ersten Mal, ohne Rollator einen Einkauf im Rewe in der Oberbilker Allee abzuholen. Allerdings blieb das eine seltene Ausnahme. Und ich machte mir Gedanken um meine Zukunft. Äh, was für 'ne Zukunft, bitte? Ja, eben, genau das: Zukunfts-Perspektive.
Zwischendurch versuchte ich, vom ARGE die Berechtigung für das Deutschlandticket Sozial zu bekommen. Auf mein erstes Schreiben deswegen, bereits vom November 2023, war einfach mal überhaupt nicht reagiert worden. Außerdem mußte ich feststellen, daß die Firma Obst-Verbindet in Bielefeld die Abholstelle bei Harms Markt aufgegeben hatte und jetzt nur noch in ländlichen oder sonst schlecht mit dem ÖPNV erreichbaren Ecken zu finden war. Damit fiel die Firma für mich als günstige Quelle für Obst, Gemüse und andere gerettete Lebensmittel erstmal weg. (Im Dezember mußte ich dann feststellen, daß sie gar nicht mehr existiert und ihre Domains von windigen „Online-Casino-Vergleichs-Portalen“ gekapert worden waren.
Und ich hab mir selbst in den Fuß geschossen, in der Wasser-Edition. Ende des Monats schließlich wurde meine Krebserkrankung ins Krebsregister eingespeichert. Wußte ich vorher auch nicht, daß es sowas gibt.
Anfang März hab ich nochmal wegen des Deutschlandticket Sozial nachgehakt. Bekommen hatte ich schließlich – die Berechtigungskarte für das Düsseldorfer Sozialticket. WTF? Schließlich stellte sich heraus, daß das schon so stimmte: Das Deutschlandticket Sozial bekommt man mit diesem Ausweis auch. Und es ist echt peinlich, daß man das beim ARGE nicht wußte (oder mir nicht sagen wollte). Und eigentlich wäre der ganze Aufwand auch gar nicht nötig, wenn die Rheinbahn einfach mal den Düsselpaß akzeptieren würde, das ist nämlich genau die Zielgruppe.
Mittlerweile hatte ich aber bereits das normale Deutschlandticket abonniert und mußte es dann bei der Rheinbahn in einem Kunden-Center umstellen lassen. Für April. Für März mußte ich trotzdem voll bezahlen.
Derweil kam eine Stellenanzeige vom ARGE. Die Firma sitzt zwar fast um die Ecke, verlangt aber zwingend Vollzeit und hat demgegenüber keine genaue Spezifizierung der Anforderungen. Ja, sie wissen, daß Vollzeit bei mir nicht mehr geht. Nein, es hat sie noch nie gejuckt.
Mein Nokia 2.2, noch nicht ganz vier Jahre alt, hatte zu dieser Zeit extremen Speichermangel. Die Apps werden ja immer größer, während Google gleichzeitig meint, bei Android-Smartphones einen Teil des vorhandenen Speichers für eigene Anwendungen belegen zu dürfen, auch wenn man diese gar nicht braucht oder sogar explizit nicht haben möchte. Daher habe ich mir mal ADB angesehen, eigentlich ein Entwicklungs-Tool, mit dem man aber auch unerwünschte Apps wegputzen kann. Damit war erstmal wieder ein bißchen mehr Platz vorhanden.
Auch etwa um diese Zeit herum wurde Piwigo mit einem größeren Update verändert: Nach dem Hochladen von Bildern kann man nicht mehr direkt ins Album wechseln, sondern die Bilder werden erstmal in eine „Lounge“ gespeichert, wo sie zehn Minuten lang festgehalten werden, bis sie im eigentlich vorgesehenen Album auftauchen. Davor gelten sie als verwaist, also mit keinem Album verbunden. Seitdem muß ich nach dem Hochladen von Bildern, wenn ich nicht jedesmal so lange warten will, in die neuesten Bilder wechseln, dort die Bilder markieren, nochmal explizit ins vorgesehene Album verschieben, dann in dieses Album wechseln, und dann erst kann ich weitermachen. Was immer man sich dabei gedacht hat: Scheiß-Idee.
Auf Empfehlung habe ich mir dann mal ANC-Kopfhörer gekauft, gebrauchte, weil die neu schon heftig was kosten. Billige neue Sandalen hab ich mir auch gekauft, weil die alten gebrochene Sohlen gehabt hatten. Beide. Schließlich mußte ich einsehen, daß ich mit dem Nokia 2.2 nicht mehr weit kommen würde, und bestellte mir ein neues Smartphone, ein Motorola Moto G53 5G, mit 128 GB Speicher. Das sollte dann erstmal reichen.
Fotos im März:
Anfang April fing ich an, meine DVDs mit Filmen und Serien – teils nochmals – zu rippen. Die vorherigen Rips waren größtenteils durch das Auseinanderbrechen des verschlüsselten RAID1 in meinem vorherigen Haupt-PC verloren gegangen (die Sache steht noch in einem Draft hier im Blog); das einzige Backup gab es auf der externen Backup-Platte, die von jetzt auf eben zeitgleich auch in Rente gegangen war. Das führte im Mai zu Spaß mit USB im Doppelpack, im Juli zu Spaß mit DVDs und im Oktober zu Spaß mit DVD-Laufwerken. Gelöst sind die Probleme bis heute nicht.
Außerdem hatte ich ein wenig Spaß mit dem Petitionsausschuß des Bundestags. Es scheint dort gar nicht so unüblich zu sein, Petitionen jahrelang einfach liegenzulassen. Als Antwort kam irgendwann ein Link auf die Petitionsseiten des Bundestags, auf der man nachsehen kann, wie lange Petitionen laufen. Offenbar war das zu viel Arbeit, mir ein paar Zahlen zu nennen.
Für ein paar Tage später war ich zur Mammographie-Untersuchung geladen, und ich finde es überhaupt nicht witzig, daß an der Haltestelle Kennedydamm die Einstiegsstufen zur Bahn so hoch sind, daß man da mit Rollator maximal kriechend in eine Stadtbahn rein- und nur mit Hilfe von Mitmenschen aus einer solchen Bahn rauskommt. Die Haltestelle ist für Straßenbahnen konzipiert, und die Stadtbahnen („U-Bahnen“) müssen dort ihre hohen Stufen ausfahren, weil man sonst gar nicht ein- oder aussteigen könnte.
Dann gab es Spaß mit eBay bzw. einem bestimmten Anbieter, der Artikel gleichzeitig auf eBay und Amazon anbietet. Diese Masche scheint gar nicht so unüblich zu sein. Problematisch wird es, wenn das Timing nicht funktioniert und der Anbieter verspätet feststellt, daß der gerade auf eBay vertickte Artikel kurz vorher auf Amazon weggegangen ist.
Am selben Tag habe ich meinen Haupt-PC von Devuan Chimaera auf Devuan Daedalus gehoben, weitestgehend problemlos. Daraufhin habe ich am selben Tag das Upgrade auch auf dem Server durchgezogen. Da war danach noch einiges nachzuarbeiten gewesen: Zweimal von Chimaera nach Daedalus.
Am Folgetag bekam ich eine Einladung von der IAB zu einer Umfrage, angeblich zum ARGE. Meine Daten kamen: Vom ARGE. Gefragt hatten sie mich nicht, ob sie sie weitergeben dürfen. Und gelogen war der Einladungs-Grund dann auch noch: Es kam keine einzige Frage zum ARGE. Ich hätte ihnen sonst gern meine Erfahrungen erzählt.
Ende April wollte ich dann mal endlich das mit der Zuzahlungsbefreiung bei der Krankenkasse regeln. Löffel haben aber nicht gereicht. Ich hab weiterhin keine.
Fotos im April:
Ende April bestellt und Anfang Mai gekommen waren zwei neue, externe Platten-Docks, die sich als Reinfall erwiesen, weil sie einen Wackelkontakt hatten, und ich war froh, daß die Daten auf meiner verschlüsselten Backup-Platte das überlebt haben.
Am 1. Mai bin ich bei der entsprechenden Demo mitgelaufen und habe fotografiert, und beim Familienfest war ich auch gewesen. Dabei lernte ich, daß das schon länger nicht mehr im Hofgarten, sondern am Johannes-Rau-Platz stattfindet. Dort traf ich dann eine alte Bekannte, die den Tauschring Düsseldorf auf einem Stand präsentierte. Ich entschloß mich, wieder einzutreten (mein Austritt war 2006 gewesen). Außerdem fand ich an einem anderen Stand einen Hinweis auf einen neu zu etablierenden Spoonie-Stammtisch, gleich mal angemeldet und ab Mitte Mai regelmäßig (monatlich) teilgenommen.
Mitte Mai mußte ich nach dem Akku-Tod des Doogee X5pro meine Smartphones neu mischen. Das Nokia 2.2 hat jetzt die Aufgaben des Doogee übernommen, also Telefon und Musik-Player, Internet nur noch über WLAN, und das Moto ist für Internet zuständig.
Außerdem gab's im Mai SATA-Festplatten zwischen 1 und 5 TB in 1,8" und 3,5" aus zwei verschiedenen Quellen, teils intern, teils extern. Die habe ich dann nach und nach genullt und damit auch getestet. Es sind immer noch welche übrig, die auf Nullen und Testen warten. Dabei so nebenbei festgestellt, daß eines meiner älteren externen Intenso-Plattengehäuse nur Platten bis 500 GB Kapazität bedienen kann.
Ab Ende Mai hatte ich dann Diskussionen im Tauschring über eine neue Website. Die derzeitige Webanwendung ist, ähm, nicht sonderlich beliebt und wird eher ungern genutzt. Ich hätte da so ein paar Ideen für was ganz neues in Python-Django. Dazu muß ich das aber erstmal lernen. Die Beschreibungen in der Doku sind für mich teilweise mal wieder zu abstrakt.
Weiterhin installierte ich auf Empfehlung das CAD-Programm Sweet Home 3D. Darin habe ich nach und nach meine Wohnung ausgemessen und dargestellt, um mit Planungen für Veränderungen zu beginnen.
Fotos im Mai:
Im Juni mußte ich erstmal herausfinden, wie ich den mc dazu überrede, statt imagemagick wieder feh zur Darstellung von Bildern zu verwenden. Wieso mir da plötzlich imagemagick untergeschoben wurde, muß ich generell nicht verstehen; vor dem Upgrade war das immer feh gewesen.
Ebenfalls im Juni bekam ich endlich Zugriff auf eine Domain, die sich Alex und ich quasi geteilt hatten: Er hatte die Domain gesponsort, ich hab die Website gemacht und auf meinem Server gehostet. Nach seinem Tod lief die Domain noch eine ganze Weile weiter, um dann auf einmal aus dem DNS zu verschwinden. Allerdings war sie noch nicht ganz gelöscht worden. Ich hatte erst vermutet, daß er die Domain, wie die meisten seiner anderen, bei INWX gebucht hatte, aber dann herausgefunden, daß sie bei Server4You lag. Bis alles geregelt war, Server4You mir das glaubte, daß ich die Domain haben darf und sie in den Transit schickte, so daß ich sie von INWX abgreifen lassen konnte, dauerte „nur“ so zwei Monate.
Als Geburtstagsgeschenk dachte sich Firefox aus, plötzlich zu crashen und sich nicht mehr starten zu lassen. Nach einigem Hin und Her deinstallierte ich die Version aus dem Devuan-Repo und nutze seitdem den Firefox aus dem Mozilla-eigenen Repo. Der crashte dann nicht mehr. Außerdem meinte der Rauchmelder in meinem Schlafzimmer an diesem Tag ein paarmal unmotiviert lospiepen zu müssen, bis ich ihn jeweils mit einem Besenstiel anstupste. Die Batterie war's offenbar nicht. Am nächsten Tag war wieder Ruhe. Muß ich auch nicht verstehen. Oh, und daß Bots von Facebook meinen Server so dermaßen fluteten, daß die Load hochging und der Webserver ausgebremst wurde, kam auch noch obendrauf. Zwei Leute auf Mastodon meldeten dasselbe Problem. Zum Glück sind diese Bots an ihren IPv6-Adressen gut erkennbar, die enden nämlich auf :face:b00c. Alles, was damit auftauchte, flog direkt in iptables.
Blogartikel gab's auch, nämlich einen Brief ans Europäische Parlament: Keine Chatkontrolle! und ein Lärmprotokoll, das ich schon seit einer Weile führe. Die Nachbarschaft war im Sommer unerträglich laut gewesen, das wird jedes Jahr schlimmer.
Fotos im Juni:
Der Juli begann damit, daß ich meinen Haupt-PC neu installieren mußte. Bei der Stadt Mannheim, wo meine Geburtsurkunde geführt wird, fragte ich nach, ob sie schon ein Formular für die Anmeldung der Änderung von Geschlechtseintrag und Vornamen nach dem SBGG haben. Antwort: Sie sind noch dabei, für das Ganze ein Konzept zu entwerfen. Ahja.
Meine Versuche, Vodafone darauf aufmerksam zu machen, daß mir die Fritz!Box meine eigenen Telefonnummern falsch anzeigt, wurden systematisch ignoriert. Seit meinem Tarifwechsel von Business auf Privat im letzten Jahr zeigt die Box die Nummern an, die mir damals temporär zugeteilt worden waren. Die richtigen Nummern sind erreichbar und bei Angerufenen auch auf dem Display zu sehen, aber ich selbst weiß jetzt nicht mehr, welche dieser Nummern welche ist und auch nicht, welche ich mal als Fax-Nummer eingerichtet hatte. Die Fritz!Box kann ja Faxe senden und empfangen.
Am 19. Juli hatte ich eine nette Foto-Session mit einer Fotografie-Studentin im Volksgarten. Und ich lernte: Es ist tatsächlich möglich, gute Fotos von mir zu machen.
Auch im Juli gelernt: Wenn man ein Formularfeld für ein Datum in einem auf Deutsch eingestellten LibreOffice Writer haben will, sollte man nicht „Datumsfeld“ wählen, da bekommt man nämlich nur Schreibweisen mit / oder -. Stattdessen „Formatiertes Feld“ wählen, dann das Format von Zahl auf Datum umstellen und das gewünschte Datumsformat auswählen. Logik?
Bei der VHS Düsseldorf suchte ich gelegentlich nach interessanten Kursen. Das Ergebnis in Kurz: Microsoft, Microsoft, Adobe, Microsoft, Microsoft. Das einzige sonst Interessante wäre ein Kurs in Deutscher Gebärdensprache gewesen, aber der war a) zu teuer und b) ausgebucht.
Fotos im Juli:
Ich hatte erst einen Vordruck für die Änderungen nach SBGG aus dem Netz ausgedruckt und ausgefüllt, hatte ihn sogar schon in einen Umschlag gesteckt, als ich auf die Idee kam, den Vordruck persönlich abzugeben. Also, in Mannheim. So fuhr ich ziemlich spontan am 1. August nach Mannheim, um dort beim Bürgeramt vorzusprechen. Zurück kam ich mit einer Zusage für einen Termin per E-Mail, den ich zu Hause auch prompt vorfand.
Ein paar Tage später hatte ich Spaß mit badblocks. Gelernt: Platten größer als 3 TB möchten etwas anders angesprochen werden. Na gut.
Das Thema SBGG blieb erstmal aktuell. Denn das Bundesinnenministerium (BMI) hatte lustige Ideen, was die Vornamens-Wahl anging, insbesondere die Anzahl der neuen Vornamen. Das sollten nämlich nicht mehr sein dürfen, als man an Deadname(s) hat. Ich hatte das schon beim Mannheimer Bürgeramt erfahren und gleich klargestellt, daß ich die Sache zur Not juristisch durchfechten würde, und war mir sehr sicher, daß ich damit durchkäme. Ich schrieb also ans BMI. Die Antwort kam nach einiger Zeit – die reinste Textbausteinigung, die mir vorkam wie ein kleines Kind, das „ich will aber!“ plärrt.
Um mit der Wohnung weiterzukommen, bestellte ich die erste Ladung Schwerlastregale, dreimal zwei Stück. Die sind deutlich günstiger als Bücherregale oder gar Schränke, bieten mehr Platz und halten deutlich mehr aus. Für die knapp 130 €, die ich dafür bezahlt habe, hätte ich vermutlich nicht mal ein einzelnes Bücherregal bekommen. Als die Regale ein paar Tage später ankamen, stellte sie mir der DPD-Bote unten in den Hausgang, kurz hinter die Haustür. Jedes Paket wog 26 kg. Ich schleppte sie mühsam die untere Treppe hoch, damit sie nicht mehr so im Weg stehen, aber ganz hochtragen war undenkbar. Ich hatte schon direkt nach der Bestellung nach Tragehilfen gefragt, aber erstmal keine Antwort bekommen (Mastodon, nebenan.de und Tauschring). Kurzfristig erklärte sich dann doch jemand von Mastodon her bereit, mir die Pakete hochzutragen.
Mal was Neues: Fotografieren, aber nicht alleine. Mit dem Chaosdorf gab es einen Photo-Walk in Düsseldorf zur Blauen Stunde. Leider der einzige in diesem Jahr.
Mit dem Projekt Tauschring-Website war ich im August nur minimal weitergekommen. Django ist wirklich sehr abstrakt. Aber ich hab immerhin ein grobes Pflichtenheft fertigbekommen.
Aus Kassel kamen auch noch Pakete: Jemand hatte dort den Haushalt seiner verstorbenen Mutter aufgelöst und ließ mir einige Dinge daraus zukommen: Pfannen, Handtücher, Kleidung, Lebensmittel, Kaffee und Gewürze. Der Transport erfolgte quasi per Mastodon-Taxi.
Derweil avancierte ich im Tauschring zum Spezialisten für Smartphone-Einrichtungen. Allein im August habe ich zwei unterschiedliche Android-Smartphones und ein iPhone eingerichtet.
Mitte bzw. Ende August ging es dann ans Aufbauen der neuen Schwerlastregale. Ein lieber Mensch „aus Mastodon“ kam an zwei Tagen und baute jeweils drei Regale auf. Danach ging's ans Einräumen, und den Plan in Sweet Home 3D habe ich dementsprechend aktualisiert – und eine Menge Kartonagen für's Altpapier zerkleinert.
Ende des Monats bekam ich dann überraschend FFP2-Masken geschenkt, die ich nur in Köln-Mülheim abholen mußte. Eine ganze Ikea-Tasche voll. Da meine schwarzen Masken bald zu Ende gehen würden, kam mir das gelegen; ich hatte schon online nach Angeboten gesucht, aber die waren mir alle zu teuer. Zwar sind diese Masken jetzt schon über's MHD, aber wie ich gelesen habe, macht das nix, weil es dabei nicht um die Filterfähigkeit der Masken geht, sondern um die Haltbarkeit der Gummis. Die werden nämlich marode, wenn sie zu lange liegen, und können dann reißen.
Fotos im August:
Im September entdeckte ich das Eis-Machen für mich: Fruchteis aus Saft und (leider sehr kalorienreiches) veganes Schokoladeneis auf der Basis von Kokosmilch. Letztere gab's gerade günstig von einer Essenretter-Firma, da hab ich mich direkt eingedeckt.
Dann gab's erstmal einen Schrecken: Oops, Bankkarte verloren! – zum Glück tauchte sie dann doch wieder auf.
Um Monatsmitte gab es mal wieder eine Online-Datenschutz-Schulung bei der Piratenpartei NRW. Die nehme ich immer gerne mit, man weiß ja nie, wofür man's mal brauchen kann.
Ein paar Tage später fuhr ich für eine Demo gegen die neuen Grenzkontrollen nach Bielefeld. Seit dem Aus von Obst-Verbindet war ich nicht mehr dort gewesen, aber meine Ortskenntnisse waren hilfreich. Als gegen Ende jedoch eine SDAJ-Tussie anfing, antisemitische Reden zu schwingen, hab ich den Schluß nicht mehr abgewartet, sondern bin wieder nach Hause gefahren. Ein paar Tage später gab's hier in Düsseldorf die nächste Demo: Solidarität statt Hetze. Und direkt am nächsten Tag noch eine: Alle für's Klima. (Da hatte ich zwar fotografiert und gefilmt, aber die Bilder und Videos fehlen noch auf der Media-Site. Editiert hatte ich sie. Muß ich wohl mal noch hochladen.)
Im September war da auch noch dieses IdeaPad von einer Frau im Tauschring. Das Display war zersplittert, Tastatureingaben wurden scheinbar nicht mehr angenommen. Ich sollte die Daten von der eingebauten SSD retten. Hab ich dann auch gemacht. Außerdem richtete ich der Tauscherin ein eigenes Notebook ein, das hier schon länger herumliegt, als vorübergehenden Ersatz. Das war dann nochmal ein Thema für sich. Als ich im Oktober endlich soweit war, erfuhr ich kurzfristig, daß sie sich jetzt doch wieder ein neues gekauft hat.
Aus entsprechenden unterschiedlichen Meldungen zum Thema Haftbefehle gegen Nazis wollte ich es dann mal genauer wissen: Wieviele Haftbefehle gegen Nazis sind es denn nun? Außerdem stellte ich fest: Das Deutschlandticket wird teurer. Zu dieser Zeit wußte ich noch nicht, was das für das Deutschlandticket Sozial bedeutet. Inzwischen ist auch das bekannt: Ich bezahle ab sofort 48,00 € im Monat, also einen Euro weniger als das reguläre Ticket letztes Jahr kostete. Es wird sich vermutlich immer noch rechnen, aber halt nur noch sehr knapp.
Die beiden Temperaturstürze Mitte und Ende September setzten meinem relativen Löffel-Reichtum der vorherigen Monate ein Ende. Meine Konzentration ließ stark nach. An das Django-Projekt war erstmal nicht mehr zu denken.
Fotos im September:
Anfang Oktober habe ich die BahnCard 25 aus der Aktion vom letzten Jahr gekündigt. Genutzt hatte ich sie nicht, es hatte sich einfach nichts passendes ergeben. Meistens war ich mit dem Deutschlandticket, also im Nah-/Regionalverkehr unterwegs, auch auf längeren Strecken. Dann bin ich mit einem USB-Kabel reingefallen, das USB-A zu Mini-USB sein und mit der Geschwindigkeit von USB3 übertragen können sollte. Gelernt: So ein Kabel kann es eigentlich gar nicht geben. Funktioniert hat es dann natürlich auch nicht.
Später im Monat machte ich mit dem Ausmessen meiner Wohnung weiter. In Sweet Home 3D fehlten noch zwei Räume. Bis auf das Bad, in dem ich sowieso nichts ändern kann, sind jetzt alle Maße erfaßt. Danach bestellte ich mir die zweite Ladung Schwerlastregale, wieder drei Pakete mit je zwei Stück, und suchte nach einem Menschen, der sie hochtragen würde. Die Pakete kamen dann allerdings deutlich schneller als angekündigt. Am Ende mußte ich die Pakete selbst hochbringen. Ich zog die Tasche von meinem Einkaufstrolly ab und nutzte ihn als Sackkarre. Und obwohl ich sehr langsam machte und zwischen den Paketen jeweils eine Stunde Pause einlegte, war ich hinterher fix und fertig. Und die Narbe fand die Aktion auch nicht gut. Aber unten stehen lassen ging auch nicht, denn die Pakete waren im Fluchtweg vor der Treppe zum zweiten Stockwerk deponiert worden, mußten also zeitnah weg. Nun stehen sie in meinem Flur neben der Tür und warten darauf, aufgebaut zu werden.
Rant: GnuPG und Thunderbird. Thunderbird weigert sich, meine Keys zu verlängern, angeblich, weil sie zu komplex seien. Wenn ich sie in GnuPG verlängere, nimmt Thunderbird das aber einfach nicht zur Kenntnis. Solange das von dem Plugin Enigmail abgedeckt wurde, war das nie ein Problem gewesen. Aber bei Mozilla mußte man es ja unbedingt selber machen.
Dann habe ich mir einen kleinen Luftreiniger für bis zu 35 m² zugelegt. Wenn helfende Menschen hier sind, kann dann hoffentlich gefahrlos ohne Masken gearbeitet werden. Außerdem holte ich mir die Impfungen gegen Covid19 und Influenza in einer Apotheke ab. Die Erstreaktion hielt sich diesmal in Grenzen, zumindest hatte ich nicht, wie letztes Jahr, so fürchterliche Kopfschmerzen bekommen.
Öfter mal was Neues: Vodafone hatte eine Störung über 2,5 Tage und gab sich keinerlei Mühe, Menschen zu ermöglichen, Kontakt zu ihnen aufzunehmen. Dafür machten sie den Scotty, kündigten also eine längere Reparaturzeit an, als sie tatsächlich brauchten. Hinterher war Schweigen im Walde, es war nicht herausfindbar, was nun eigentlich passiert war.
Weil's schon mehrfach passiert war, daß ein DHL-Bote eine Abholkarte auf meinen hinter der Haustür stehenden Rollator abgelegt hatte, hab ich dann doch mal bei DHL angerufen und mich beschwert. Das hieß nämlich jedesmal, ich mußte hin, die Karte einsammeln, die erste Aufgangstreppe wieder hoch, zu den Briefkästen und die Karte einwerfen. Das ist definitiv nicht mein Job, und ein Rollator ist keine bequeme Ablage, sondern ein medizinisches Hilfsmittel. Man sagte mir zu, daß man mit den Boten reden werde, es werde nicht mehr vorkommen. (Hint: Im November lag doch wieder eine drauf.)
Mitte Oktober suchte ich dann schonmal nach einer Übernachtungsmöglichkeit in Mannheim. Für den zweiten SBGG-Termin am 7. November wollte ich nicht am selben Tag hin und zurück fahren wie am 1. August. Das wäre ohne die Nutzung von Fernverkehrszügen mindestens schwierig geworden. Ich fand schließlich eine Person, die in der Schwetzingerstadt wohnt, ganz in der Nähe meiner letzten Mannheimer Wohnung, und die mir ihre Wohnung während einer Dienstreise überlassen wollte.
Dann war da noch der DPD-PickUp-Shop, in den ich mit meinem neuen „Fck AfD“-Hoodie reinkam und der Mensch hinterm Tresen meinte, ob er denn nun das Paket nicht annehmen soll, das ich einliefern wollte, denn er würde AfD wählen … (darf er nicht, dann bekommt er Ärger mit DPD). Naja. Jedenfalls weiß ich, welchen DPD-PickUp ich garantiert nicht mehr nutzen werde. Der Laden als solcher ist für mich eh nicht interessant.
Fotos im Oktober:
Der lange Spaziergang am 16. Oktober war einer der letzten gewesen, die mir physisch noch möglich waren. Bereits seit dem Vormonat ging es mit meiner körperlichen Gesundheit bergab. Die Narbe machte wieder deutlich mehr Probleme, ich bekam häufiger Verspannungen in den Beinen und schaffe mittlerweile, wenn's hoch kommt, nur noch einen Kilometer am Stück, und das zeitweise auch schon mit Schmerzen. Bei der Kontrolle beim Gynäkologen Anfang November konnte nichts gefunden werden, zumindest nicht in seinem Fachbereich.
Trotzdem fuhr ich kurz danach nach Mannheim, um den Termin für die Änderung von Geschlechtseintrag und Vornamen auf jeden Fall wahrnehmen zu können. Dort schien ich nochmal etwas fitter zu sein, aber nicht mehr so fit wie im Sommer. Da die Schmerzen immer häufiger kamen, machte ich denn doch mal einen Termin bei meiner Hausärztin.
Nach diversen Untersuchungen inclusive Checkup meinte sie, zum Thema Bauch könne sie nichts sagen. Dazu braucht sie ein MRT vom Abdomen. Meine Versuche, einen Termin dafür in einer Radiologie zu bekommen, waren mal wieder eine Bestätigung dafür, daß unser Gesundheitssystem, insbesondere für gesetzlich versicherte Menschen, einfach mal am Arsch ist. Bei der ersten hieß es: Yo, Oktober 2026. Ich fragte zurück, ob sie mich veräppeln wolle, aber nein, sie meinte das ernst. Die nächste bot mir Ende April 2025 an. Im Hinblick darauf, daß das was Ernstes sein könnte, war mir das immer noch zu spät. Schließlich bekam ich einen Termin für Ende Januar (immerhin 2025) in einer Praxis in Köln. Eine MFA der Hausärztin meinte noch, ich solle alles durchtelefonieren, um einen früheren zu bekommen. Ich hab es mir gespart, ihr zu erklären, daß und warum ich das nicht kann. Ein Eil-Rezept habe ich nicht bekommen.
Beim EKG hieß es, ich hätte einen unregelmäßigen Herzschlag und solle mich mal von einer Fachpraxis durchchecken lassen. Außerdem sei mein Blutdruck übermäßig hoch. Deshalb wolle man Mitte Januar eine 24-h-Messung machen.
Fotos im November:
Mitte Dezember hatte ich einen Termin in einer kardiologischen Fachpraxis wegen des vermuteten Herzproblems bekommen. Die Fachpraxis stellte beim Termin fest: Nö, da is' nix, Ihr Herz ist in bester Ordnung.
Bei der Blutuntersuchung war wiederum festgestellt worden, daß meine Schilddrüse eine Unterfunktion hat. Dafür schickte sie mich in eine Radiologie, um das genauer zu untersuchen. Den Termin bekam ich kurz vor Weihnachten. Dort wurde mit einem Szintigramm festgestellt, daß ich zwar einen Knoten in der Schilddrüse hätte, den man im Auge behalten (sprich: alle halbe Jahre nachsehen) müßte, aber der derzeit nicht gefährlich sei. Gegen die Unterfunktion solle mir die Hausärztin halt Tabletten verschreiben. Ich muß weder verstehen, warum sie das nicht gleich gemacht hat, noch warum mir die radiologische Praxis kein Rezept ausstellen kann. Hat bestimmt was mit unserem tollen Krankenkassensystem zu tun. Das Rezept muß ich mir also noch beschaffen.
Dazwischen erfuhr ich über einen Verteiler, daß es im Februar ein „Harry Potter Event“ im Düsseldorfer Salzmannbau geben sollte, und schrieb an die Veranstalter, daß ich dagegen protestiere und warum. Als Antwort kam ein paar Tage später eine kurze Mail mit der Ansage, man werde darüber intern kritisch diskutieren. Stand 2. Januar wird das Event immer noch angeboten.
An Heilig Abend hab ich mir ein „neues“ Brot ausgedacht: Früchtebrot. War lecker, gibt's hier jetzt öfter.
Kurz vor Jahresende versuchte ich, meinen Scanner zu reinigen, das war mal wieder so eine „Mal eben“-Aktion, die ein wenig aus dem Ruder lief. Am Ende bekam ich die Flecken auf der Scheibe weg, aber das Gerät trotzdem nicht auf, und es muß innen immer noch gereinigt werden.
Außerdem tauchte ein SharePic des DGB Bayern mehrfach in meiner Timeline auf, und darüber mußte ich mich ein wenig aufregen. Erst hinterher habe ich erfahren, daß dieses SharePic schon einige Jahre alt ist – was an meinen Aussagen im Artikel aber nichts ändert.
Silvester gab's für mich alkoholfreien Rosé-Sekt und stundenlange sinnlose Knallerei, schon ab 17:15 Uhr. Die letzten Böller hörte ich gegen halb vier früh. Menschen, ey …
Fotos im Dezember:
So, nun lassen wir uns mal überraschen, was dieses Jahr bringt …
Trotz neuer Probleme mit meiner OP-Narbe war ich zu dem Termin zur Änderung von Geschlechtseintrag und Vornamen im November nach Mannheim gefahren. Ich wollte diesen Termin auf gar keinen Fall verschieben müssen. Diesmal würde ich nicht am selben Tag hin- und zurückfahren: Ich hatte ein Angebot einer Person aus Mannheim bekommen, ein paar Tage lang in ihrer Wohnung übernachten zu können, während sie auf Dienstreise war.
Zur Selbstversorgung reservierte ich mir am Tag vor der Hinfahrt eine Tüte Backwaren beim Subway am Mannheimer Hauptbahnhof über TooGoodToGo. Für die Hinfahrt hatte ich ein Sonderangebot der Bahn genutzt, so daß ich mit einem ICE fahren konnte. Wenige Tage vor der Fahrt bekam ich dazu noch ein Upgrade-Angebot auf 1. Klasse. Das habe ich mir dann auch noch gegönnt, mußte aber zusätzlich eine Reservierung buchen und die Reservierung in der 2. Klasse, die beim ersten Angebot inclusive gewesen war, verfallen lassen.
Allerdings fuhr der Zug dann nur in halber Länge ein, und meinen reservierten Platz gab es damit nicht mehr. Ich fand einen freien Platz in einem zunächst fast leeren Abteil in der 1. Klasse und hatte Glück, von dort nicht verscheucht zu werden. Später wurde es voller, aber es war auszuhalten. Trotzdem war das erstmal stressig gewesen, nicht Bescheid zu wissen, und mein sowieso schon angeschlagener Löffelvorrat schrumpfte nochmal ein ganzes Stück weit. Immerhin klappte dann alles weitere, ich konnte meine Backwaren abholen, fand die Wohnung und konnte mich da einrichten.
Der Termin selbst war völlig unproblematisch, und von einer Beschränkung der Anzahl der Vornamen war keine Rede mehr gewesen. Seitdem ist es offiziell: Ich bin Aurin Azadî Invictus Becker.
Da ich schonmal vor Ort war, habe ich die Gelegenheit genutzt, am nächsten Tag nach Heidelberg zu fahren, und Alex' Grab zu besuchen. Das erwies sich als gar nicht so einfach, weil dem Heidelberger Bergfriedhof einiges an Beschriftung fehlt. Schon den richtigen Bereich des großen Friedhofs zu finden, war schwierig, weil der auf den wenigen Übersichtskarten nicht markiert ist. So fuhr ich unnötigerweise mit dem Bus zum Steigerweg hoch und mußte dann auf dem Friedhofsgelände den ganzen Weg wieder nach unten laufen, wo sich der „Erinnerungsgarten der Kulturen“ befindet. Als ich wieder in Mannheim ankam, war ich körperlich platt, und die Narbe meldete sich auch wieder.
Die Rückfahrt, nun wieder per Deutschlandticket, also im Nah- und Regionalverkehr, war dann nochmal ein Kapitel für sich. Die Verbindung war im Prinzip die gleiche wie am 1. August. Da sah diese so aus:
Diesmal war die RB 22 allerdings wohl in Koblenz geteilt worden: Züge fuhren von Mainz bis Koblenz und zurück und andere unter derselben Linienkennung von Koblenz nach Köln und zurück. Das jedoch war mal wieder nicht kommuniziert worden. Daß die RB 22 ab Mainz nur bis Koblenz fahren würde, war immerhin vorher bekannt. In Koblenz wurde es dann, sagen wir, aufregend.
transportr hatte mir gesagt, daß ich ab Koblenz einen SEV nehmen müßte, um überhaupt in Richtung Norden weiterzukommen. Dessen Haltestelle fand ich noch rechtzeitig, aber der Bus nahm mich nicht mit: Leute drängten sich eilig hinein, und bis ich mit dem Rollator hätte einsteigen können, war alles voll. Auch der Platz für Behinderte und Kinderwagen, da stand insbesondere ein großer Rollstuhl. Daß ein einziger Gelenkbus keinen kompletten Regionalzug ersetzen kann, hätte man sich aber eigentlich auch denken können …
Ich ging an den Schalter, um zu fragen, wie ich jetzt weiterkomme, und erfuhr dort von der zweiten RB 22 nach Köln. Also ging ich ans Gleis, wo der Zug schon bereit stand, setzte mich rein und wollte mich auf Mastodon melden. Was für ein Schreck, als ich feststelle, daß das Smartphone weg war! Und da dämmerte mir, daß ich was verpeilt hatte: Auf der Fahrt in der ersten RB 22 hatte ich das Smartphone auf den Rollator gelegt und dann vergessen, es wieder in meine Tasche zu stecken. Beim Aussteigen muß es dann runtergefallen sein. Ich ging zurück zum Schalter und sagte, daß ich nirgends mehr hinfahren kann, weil ich das Smartphone mit dem Deutschlandticket in der Hülle verloren hatte. Hätte ich in den Bus einsteigen können, dann wäre ich damit versehentlich schwarz gefahren.
Der Mensch am Schalter meinte, ja, es sei ein Smartphone gefunden worden, wie es denn aussehe? Ich nannte den genauen Typ, und daß es in einer schwarzen Hülle steckt. Daraufhin hielt er mir das Gerät vor die Nase. Ob es eine Bildschirmsperre hätte, fragte er. Ja, natürlich. Ich mußte es vor seinen Augen entsperren, um zu beweisen, daß es meins ist, dann durfte ich es mitnehmen.
Zurück am Bahnsteig war die RB 22 mittlerweile weg, dabei war ihre angegebene Abfahrtszeit, die immer noch angezeigt wurde, noch gar nicht erreicht gewesen. Als sie erreicht war, tat sich nichts, keine Bahn, keine Information. Erst ca. 40 Minuten später fuhr die nächste RB 22 in Richtung Köln. Der Zug war voll und die Menschen waren laut, zeitweise kreischte ein Kind. Meine ANC-Kopfhörer kamen dagegen nicht an.
Der Gleiswechsel in Köln war knapp, aber ich erreichte den RE 6 gerade noch. Ich kam zu Hause so dermaßen platt an, daß ich mir nur noch den Inhalt einer Dose in die Mikrowelle gestellt habe. Kochen war nicht drin gewesen.
Später abends suchte ich mir noch ein günstiges Fotostudio für neue Paßbilder. Ich hatte zwar noch ältere, aber nach der Gewichtsreduktion sehe ich halt schon ein bißchen anders aus. Den Besuch des Ladens setzte ich mir auf ToDo auf den folgenden Montag.
Außerdem klickte ich mir einen Termin beim Bürgeramt Willy-Becker-Allee für den darauffolgenden Dienstag, um einen neuen Personalausweis zu beantragen. Ich wäre lieber zu dem Amt in den Bilker Arcaden gegangen, aber die hatten keine Termine frei. Also nicht mal in Wochen oder Monaten, sondern gar keine.
Der Termin bei der netten, älteren Fotografin war problemlos. Sie meinte nur, ich solle mich besser ohne Brille fotografieren lassen, weil es sonst Spiegelungen auf dem Foto gäbe. Denn sie benutzt keine Studiobeleuchtung, sondern einen einfachen Blitz auf der Kamera. Nun denn, dann halt ohne Brille. Die Behörden würden das so akzeptieren. Und ich weiß mal wieder, warum ich Blitzgeräte nicht mag.
Beim Bürgeramt war ich dann etwas verpeilt: Ich hatte vergessen, die Bestätigungs-Mail auszudrucken, und hatte daher weder meine Aufruf-Nummer noch den passenden QR-Code parat. Da befürchtete ich schon, daß ich nochmal einen neuen Termin machen müßte, weil ich es zeitlich auf gar keinen Fall hätte schaffen können, nochmal nach Hause zu fahren, die Mail auszudrucken und wieder zurückzufahren. Aber an der Information bekam ich die richtige Nummer genannt und war dann auch sofort dran, ohne nochmal warten zu müssen. Drei Wochen etwa sollte es dauern, bis der neue Ausweis kommt. Und tatsächlich konnte ich ihn am 28. November bereits abholen. Diesmal hatte ich den QR-Code dabei und konnte selbst einchecken.
Damit begann die Odysee, meine Daten bei Firmen, Behörden und Organisationen ändern zu lassen. Aber das, liebe Leute, ist eine ganz eigene Geschichte.
Schnappszahl bei den veröffentlichten Kommentaren. Bei der Anzahl der blockierten Kommentare freue ich mich, dass die Antispam Bee so gut funktioniert.
Lobbyismus […] wenn Sie Benito Mussolini zuhören, der ein oder zwei Dinge über Faschismus wusste, dann wissen Sie, dass er folgendes sagte:
Der Faschismus ist die Verschmelzung von staatlicher und unternehmerischer Macht
Jetzt werden die Leute das bestreiten und sagen, dass es nicht genau das ist, was er gesagt hat. Aber wenn man sich wirklich damit beschäftigt, ist es das.
Was ist Lobbyismus? Nun ganz einfach gesagt: Lobbyismus ist die Beeinflussung von Entscheidungen, die von Gesetzgebern und Behörden getroffen werden, eben den Leuten, welche die Regeln machen. Und die Leute, die diesen Einfluss ausüben, nennt man Lobbyisten. Gut vernetzte Fachleute. Lobbyisten sind in der Regel Experten in ihren Bereichen. Sie beraten die Gesetzgeber, wie sie sicherstellen können, dass das Volk den größten möglichen Nutzen aus den Gesetzen zieht. Während sie gleichzeitig möglichen Schaden begrenzen. Das ist eine Gute Idee. Warum sollte man einen Expertenrat nicht wollen und genau hier wird es problematisch: Manchmal beschließen die Gesetzgeber, dass der Job auf der Seite der Unternehmen besser ist und werden selbst Lobbyisten, sie verlassen die Regierung und gehen zu einem privaten Unternehmen, wobei sie ihre Verbindungen und ihren Einfluss mitnehmen. Dieses Phänomen wird als Drehtür bezeichnet. Die Leute wechseln von der Regulierung einer Branche, zur Arbeit in derselben Branche und manchmal auch mehrmals hin und her. Unternehmen lieben es, mächtige Leute auf ihrer Gehaltsliste zu haben und tun alles, um sie anzulocken. Die Regulierungsbehörden helfen ihrer Seitz, in dem sie ein paar Gesetze erlassen, die ihren künftigen Arbeitgeber zugutekommen und mit dem Drehen der Tür, kommen eine Vielzahl neuer Gesetze. Die einigen Unternehmen zugutekommen und andere behindern. Aber das Geschäft läuft weiter …
Lobbyismus […] wenn Sie Benito Mussolini zuhören, der ein oder zwei Dinge über Faschismus wusste, dann wissen Sie, dass er folgendes sagte:
Der Faschismus ist die Verschmelzung von staatlicher und unternehmerischer Macht
Jetzt werden die Leute das bestreiten und sagen, dass es nicht genau das ist, was er gesagt hat. Aber wenn man sich wirklich damit beschäftigt, ist es das.
Was ist Lobbyismus? Nun ganz einfach gesagt: Lobbyismus ist die Beeinflussung von Entscheidungen, die von Gesetzgebern und Behörden getroffen werden, eben den Leuten, welche die Regeln machen. Und die Leute, die diesen Einfluss ausüben, nennt man Lobbyisten. Gut vernetzte Fachleute. Lobbyisten sind in der Regel Experten in ihren Bereichen. Sie beraten die Gesetzgeber, wie sie sicherstellen können, dass das Volk den größten möglichen Nutzen aus den Gesetzen zieht. Während sie gleichzeitig möglichen Schaden begrenzen. Das ist eine Gute Idee. Warum sollte man einen Expertenrat nicht wollen und genau hier wird es problematisch: Manchmal beschließen die Gesetzgeber, dass der Job auf der Seite der Unternehmen besser ist und werden selbst Lobbyisten, sie verlassen die Regierung und gehen zu einem privaten Unternehmen, wobei sie ihre Verbindungen und ihren Einfluss mitnehmen. Dieses Phänomen wird als Drehtür bezeichnet. Die Leute wechseln von der Regulierung einer Branche, zur Arbeit in derselben Branche und manchmal auch mehrmals hin und her. Unternehmen lieben es, mächtige Leute auf ihrer Gehaltsliste zu haben und tun alles, um sie anzulocken. Die Regulierungsbehörden helfen ihrer Seitz, in dem sie ein paar Gesetze erlassen, die ihren künftigen Arbeitgeber zugutekommen und mit dem Drehen der Tür, kommen eine Vielzahl neuer Gesetze. Die einigen Unternehmen zugutekommen und andere behindern. Aber das Geschäft läuft weiter …
Auf dem GNOME-Desktop hat es bisher an einer Wetter-App gefehlt, die sowohl optisch ansprechend ist als auch eine Vielzahl an Wetterinformationen bereitstellt. Mit Mousam ist diese Lücke nun geschlossen. Die GTK4-basierte Anwendung kombiniert modernes Design mit umfangreichen Echtzeitdaten, sodass ihr stets bestens über das aktuelle und kommende Wetter informiert seid.
Mousam bietet euch aktuelle Daten zu Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit, UV-Index und Luftdruck. Die App greift dabei auf die Open-Meteo API zurück, was für zuverlässige und präzise Informationen sorgt — Ohne dass ihr euch selbst einen API-Schlüssel besorgen müsst. Für Weltenbummler praktisch: Die Daten können in sowohl metrischen als auch imperialen Einheiten angezeigt werden, sodass ihr die App an eure persönlichen Präferenzen anpassen könnt.
Was Mousam von anderen Wetter-Apps abhebt, ist die ansprechende visuelle Darstellung der Wettervorhersagen. Mithilfe von Diagrammen und Balken erhaltet ihr nicht nur die aktuellen Wetterdaten, sondern auch eine stündliche Vorhersage für die nächsten 24 Stunden. Darüber hinaus bietet die App eine Prognose für den nächsten Tag sowie für die kommenden sieben Tage.
Windrichtung, Niederschlagswahrscheinlichkeit und Temperaturverläufe sind klar und übersichtlich aufbereitet, sodass ihr auf einen Blick alle wichtigen Informationen erfassen könnt. Im Gegensatz zur Gnome-Wetter-App zeigt Mousam auch die Luftfeuchtigkeit, den UV-Index, die Luftverschmutzung sowie Daten zum Sonnenauf- und Untergang an.
Arch-User finden Mousam aktuell im AUR. Für „simple“ Dinge wie eben solche kleinen Apps greife ich inzwischen allerdings lieber zu Flatpaks. Das spart einiges an Generve, denn früher oder später machen AUR-Pakete irgendwann doch mal Ärger. Schaut daher einfach auf Flathub vorbei. Wer mit Ubuntu und Snaps unterwegs ist, der findet Mousam auch bei Snapcraft. Ein bisschen Feinschliff braucht die Anwendung noch. So ist sie beispielsweise noch auf eine feste Bildschirmgröße festgelegt. Schaut also mal wieder vorbei, falls euch Mousam noch nicht gefällt.
Der Dateimanager der GNOME-Desktopumgebung, früher bekannt als Nautilus und heute „Files“ beziehungsweise „Dateien“ genannt, ist nicht gerade für seinen großen Funktionsumfang berühmt. Einige nützliche Features, wie das Öffnen eines Terminalfensters im aktuellen Ordner, lassen sich jedoch über Erweiterungen nachrüsten. Eine Alternative zur bekannten Erweiterung nautilus-open-terminal ist das neuere nautilus-open-any-terminal, mit dem sich nahezu jedes Linux-Terminal konfigurieren lässt.
Gerade ganz frisch veröffentlicht wurde die Erweiterung Copy File Contents. Sie ermöglicht es, den Inhalt einer Datei direkt aus dem Dateimanager in die Zwischenablage des Systems zu kopieren, ohne die Datei erst einmal umständlich in einem Editor oder im Vorschau-Modus (über die Leertaste) öffnen zu müssen. Besonders für Nutzer, die regelmäßig mit Textdateien arbeiten, ist diese Erweiterung daher eine echte Erleichterung.
Bevor ihr die Erweiterung installieren könnt, müsst ihr sicherstellen, dass das Paket nautilus-python auf eurem System vorhanden ist. Dieses Paket ist in den meisten Software-Repositories der gängigen Distributionen verfügbar. Die Installation erfolgt abhängig von der verwendeten Linux-Distribution folgendermaßen:
$ sudo apt install nautilus-python # Ubuntu, Debian und Co.
$ sudo dnf install nautilus-python # Fedora
$ sudo pacman -S python-nautilus # Arch Linux und Co.
Die Erweiterung selbst ist noch nicht in den Paketquellen verfügbar, kann aber bequem über ein Makefile oder auch manuell installiert werden. Zuerst klonst ihr das Repository und wechselt dann in das entsprechende Verzeichnis:
$ git clone https://github.com/EuCaue/nautilus-extension-copy-file-contents.git
$ cd nautilus-extension-copy-file-contents
Mit folgendem Befehl installiert ihr die Erweiterung:
$ make install
Dabei wird die Erweiterung nach ~/.local
in das Home-Verzeichnis installiert, ohne dass ihr administrative Rechte benötigt.
Alternativ könnt ihr die Erweiterung manuell installieren. Kopiert das dazu einfach das Python-Skript in den Nautilus-Erweiterungsordner:
$ mkdir -p ~/.local/share/nautilus-python/extensions/
$ cp ./src/nautilus_copy_file_contents.py ~/.local/share/nautilus-python/extensions/
Nach der Installation müsst ihr generell lNautilus neu starten. Dies kannst du über folgenden Befehl im Terminal erledigen. Einen „richtigen“ Eintrag in den Menüs des Dateimanagers gibt es nicht.
$ nautilus -q
Wenn ihr die Erweiterung deinstallieren möchtet, stehen euch ebenfalls zwei Möglichkeiten zur Verfügung:
$ make uninstall
Wechselt in das Verzeichnis der Nautilus-Erweiterungen und löscht die Datei:
$ cd ~/.local/share/nautilus-python/extensions/
$ rm nautilus_copy_file_contents.py
Falls ihr Änderungen an der Erweiterung vornehmen oder sie debuggen möchtet, könnt ihr den Debug-Modus aktivieren, indem ihr im Terminal eine Umgebungsvariable setzt. Zum Aktualisieren wiederholt ihr einfach die Installation:
$ export NAUTILUS_PYTHON_DEBUG=misc
$ make install && nautilus -q
$ nautilus
Nun ist die Erweiterung bereit und hilft dir, den Inhalt von Dateien schnell und unkompliziert zu kopieren.
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 […]
In den letzten Wochen habe ich mich dazu entschieden, ein WIKI für Linuxinteressierte und Linuxanfänger zu bauen. Mittlerweile denke ich, dass ich die bisher eingepflegten Inhalte online stellen kann. Ich hoffe, dass ich damit dem einen oder anderen Umstiegswilligen etwas Starthilfe geben kann. Ihr könnt mir gerne hier oder auch auf Youtube eure Meinung, aber ... Weiterlesen
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 […]
Ich habe mich in letzter Zeit, nicht zuletzt wegen Xplane 12, recht intensiv mit dem Thema Headtracking unter Linux beschäftigt. Leider ist es ja noch immer so, dass Naturalpoint (Thema TrackIR) Linux nicht berücksichtigt und somit Track IR meines Wissen nicht ohne Weiteres unter Linux in Betrieb zu nehmen ist und der „Linuxer“ deshalb eine ... Weiterlesen
Das Datumsformat ISO 8601 lässt sich unter Linux Debian global einrichten, indem zuerst mit dpkg-reconfigure locales
als zusätzliche Lokale en_DK.UTF-8 hinzugefügt wird, welche anschließend mit localectl als Zeitformat definiert wird:
localectl set-locale LC_TIME=en_DK.UTF-8
Bei en_DK handelt es sich mitnichten um dänisches Englisch. Vielmehr wurde diese Lokale erstellt, damit Datumsangaben in einer ansonsten englischen Lokale im ISO 8601 Form YYYY-MM-DD angezeigt werden können, anstelle des verquirlten US-amerikanischen MM/DD/YYYY.
Leider stellt sich das E-Mail-Programm Mozilla Thunderbird hier etwas quer: selbst wenn in den Einstellungen von Thunderbird die Option „Regional settings locale: English (Denmark)“ ausgewählt ist, wird eigentümlicherweise das Format DD/MM/YYYY angezeigt. Es gibt hierzu auch einen sieben Jahre alten Bug-Report mit dem Status „wontfix“ und verschiedenen Workarounds, die einige Zeit später aber auch schon nicht mehr funktionierten.
Das ISO-Format kann aber recht einfach im Config-Editor von Thunderbird eingestellt werden, wie auf support.mozilla.org im Artikel Customize Date and Time formats in Thunderbird beschrieben.
Ich füge solche Einstellungen gerne der Datei user.js hinzu, die im Thunderbird-Profil-Verzeichnis ~/.thunderbird/[…].default-default/ gespeichert wird. Diese lassen sich so dann leichter auf andere Profile und Rechner übertragen und aus dem Backup wiederherstellen:
// iso date and time formats
user_pref("intl.date_time.pattern_override.date_short", "yyyy-MM-dd");
user_pref("intl.date_time.pattern_override.time_short", "HH:mm");
Wie gestern das MDN Blog bekanntgegeben hat, wurde das Mozilla Observatory Tool, welches seit acht Jahren unter der alten Adresse auf observatory.mozilla.org erreichbar war, durch einen Nachfolger ersetzt. Das neue MDN HTTP Observatory auf developer.mozilla.org ermöglicht wie sein Vorgänger den Scan von Websites, bei welchen insbesondere die korrekte Verwendung von sicherheitsrelevanten HTTP-Headern überprüft wird.
Neben der Überarbeitung von Layout und User Experience wurden auch die Tests und die dazugehörige Dokumentation auf den neuesten Stand gebracht. Enfernt wurden die obsoleten X-XSS-Protection- sowie Flash- und Silverlight-Tests. Der Test der Referrer-Policy wurde aktualisiert und hinzugekommen ist ein Test bezüglich der Cross-Origin-Resource-Policy.
Ich habe natürlich auch bereits die Startseite meines Blogs scannen lassen, um zu sehen, inwieweit sich die Änderungen auf das Ergebnis auswirken. Das A+, welches ich letztes Jahr nach einigen Anpassungen erreicht hatte, ist auch auf dem neuen MDN HTTP Observatory erhalten geblieben.
Anki ist eine Karteikarten-App mit einem sehr sehr guten Algorithmus, der einem hilft, das Gelernte nicht mehr zu vergessen. Wie man lernt ohne zu Vergessen habe ich bereits in meinem letzten Artikel kurz beschrieben. Vor kurzem habe ich den Schülern meiner Schule eine Einführung in Anki gegeben. Dazu habe ich auch einige Videos und Tutorials aufgenommen.
Vor kurzem wurde eine neue Version von Anki veröffentlicht, die mindestens zwei tolle Features enthält.
Das eine ist ein neuer Algorithmus (FSRS), der aktuell einer der besten Spaced-Repetition-Algorithmen ist. Im Prinzip ist dieser Algorithmus das Herzstück von Anki, da er dafür verantwortlich ist, mir genau die Karten zu zeigen, die ich am vergessen bin. Je genauer eine App diesen Zeitpunkt berechnen kann, umso länger kann ich Dinge in meinem Gedächtnis behalten, ohne das ich sie vergesse.
Ein weiteres tolles Feature ist der neue Notiztyp „Bildverdeckung“, der jetzt nativ integriert wurde. Damit kann ich Teile von von Zeichnungen, Tabellen, Vorlesungsfolien etc. einfach abdecken und damit lernen. Auf die 3 wichtigsten Typen gehe ich in folgenden Video ein:
Anki hat eine etwas steile Lernkurve, d.h. es dauert ein bisschen, bis man die App verstanden und durchdrungen hat. Auf der einen Seite ist sie sehr simpel aufgebaut, auf der anderen gleichzeitig sehr flexibel und erweiterbar. Daher ist es hilfreich, wenn man sich zu Beginn die ersten 5 Kapitel der Dokumentation durchliest.
Anki ist eine tolle App, die das Lernen sehr effektiv und effizient macht. Es liegt nicht so sehr an der App an sich, sondern eher daran, dass sie auf einer wissenschaftlich sehr gut untersuchte Lerntechnik basiert. Die Meta-Studie von John Dunlosky vergleicht verschiedene beliebte Lerntechniken und kommt ganz klar zu dem Ergebnis, dass verteiltes Wiederholen und Selbsttests die Lerntechniken sind, die den größten Effekt habe.
Ich möchte jeden ermutigen, egal welchen Alters, sich einmal mit dieser App auseinanderzusetzen und den sogenannten „spacing effect“ an sich selbst zu erfahren. Lernen (fast) ohne zu vergessen ist möglich 🙂
Der Beitrag Einführung in Anki 23.10 erschien zuerst auf zefanjas.
In den letzten Jahren habe ich mich immer wieder mit Erkenntnissen aus der Lernforschung auseinandergesetzt, um mein persönliches Lernen aber auch das Lernen an unserer Schule stetig zu verbessern. Ein Begriff, der mir dabei immer wieder begegnete, ist „Spaced Repetition“. Was das mit „Lernen ohne zu vergessen“ und mit Anki zu tun, möchte ich in diesem Artikel kurz beschreiben.
Spaced Repetition kann man am besten mit „zeitlich verteilte Wiederholung“ oder „verteilte Wiederholung“ übersetzen. Im Grunde geht es darum, dass ich Lerninhalte idealerweise dann wiederhole, kurz bevor ich sie vergessen habe. Wenn man Lernen als einen Kampf gegen das Vergessen bezeichnet, ist genau das wichtig: Wiederholen bevor mein Gedächtnis das Gelernte vergessen hat.
Immer dann, wenn ich Gelerntes wiederhole und mich daran erinnern kann, verlängert sich die „Speicherdauer“ in meinem Gedächtnis.
Wir alle kennen diesen Effekt. Wenn ich in meiner Schulzeit für einen Vokabeltest gelernt habe (meist am Tag davor 🙂 ), habe ich die meisten Vokabeln nach 3 Tagen wieder vergessen. Dass ist auch der Grund, warum ich mich nur noch an ganz wenige Französischvokabeln erinnern kann, obwohl ich 5 Jahre Sprachunterricht hatte. Hätte ich jedoch jeden Tag eine kleine Menge an Vokabeln gelernt und wiederholt, hätte ich mich wesentlich länger an sie erinnern können. Hier mal eine Grafik, die das Prinzip veranschaulicht:
Zusammenfassung: Wenn ich etwas Gelerntes im richtigen Moment wiederhole, kann ich die „Speicherdauer“ im Langzeitgedächtnis deutlich verlängern.
Doch woher weiß ich, wann der richtige Zeitpunkt ist, um etwas zu wiederholen? Ich möchte ja nur die Dinge wiederholen, die ich gerade am Vergessen bin und nicht die, die ich noch weiß. Das ist eine sehr wichtige Frage. Wenn ich zu viele Dinge wiederhole (v.a. Lerninhalte, die ich noch weiß), steigt mein zeitlicher Aufwand für die Wiederholungen. Wenn ich zu wenige Lerninhalte wiederhole, steigt die Chance, dass ich Dinge vergesse und ich sie letztendlich neu lernen muss.
Genau an diesem Punkt kommt Anki ins Spiel. Anki ist eine Open Source Karteikartensoftware, die mir die Arbeit der Berechnung der richtigen Intervalle abnimmt, sodass ich nur noch das wiederhole, was ich kurz vor dem Vergessen bin. Das genau ist es, was diese Lernmethode so effizient macht, denn nun kann ich Dinge in weniger Zeit lernen bzw. mehr in der gleichen Zeit, die ich bisher zum Lernen aufgewendet habe.
Anki ist eine sehr mächtige und flexible Anwendung, die sich durch viele Erweiterungen anpassen lässt. Das sorgt auch dafür, dass die Lernkurve für diese App etwas steiler ist. Deshalb empfehle ich, dass man sich am besten ein paar einführende Videos anschaut.
Karteikarten kann man sich entweder selbst erstellen oder nutzt eines der fertigen Lernpakete.
Persönlich nutze ich Anki seit ca. 1 Jahr. Hauptsächlich lerne ich damit Vokabeln (ja, auch wieder Französisch…), Bibelverse / -texte, Markierungen / Zitate aus Büchern, die ich gelesen habe und alles, was mich sonst noch so interessiert. Ich bin total begeistert von den Ergebnissen. Ich hätte nicht gedacht, dass es so leicht ist, sich Dinge langfristig im Gedächtnis zu behalten.
Wo ist der Haken? Damit das mit den Wiederholen zum richtigen Zeitpunkt auch klappt, muss ich meine Wiederholungen jeden Tag machen. Je nachdem wie viele Karten man lernt, können das 5 Minuten am Tag sein oder auch 2 Stunden. Der Schlüssel zum Erfolg ist die tägliche Wiederholung. Es dauert vielleicht ein paar Wochen bis man diese neue Gewohnheit in seinen Alltag integriert hat, aber man wird belohnt mit der Erfahrung, dass dieses Prinzip der verteilten Wiederholung wirklich funktioniert und unser Gedächtnis sich viele (sehr viele) Dinge merken kann.
Der Beitrag Lernen ohne zu vergessen mit Anki erschien zuerst auf zefanjas.
2017 beschrieb ich wie man System-Mails von Linux über XMPP empfangen kann. Da ich mittlerweile sendxmpp nicht mehr nutze, weil ich damit viele Probleme hatte und mir selbst die Alternative go-sendxmpp geschrieben habe möchte ich mein neues Setup vorstellen.
⚠️ Warnung ⚠️
Auch 2023 gilt: Es könnte sein, dass wichtige oder sensible Informationen in den Systemmails enthalten sind. Deshalb würde ich davon abraten diese über fremde Server zu senden.
Außerdem speichere ich das Passwort des XMPP-Kontos im Script, weshalb ich dazu rate einen dezidierten XMPP account dafür zu nutzen und nicht etwa den eigenen privaten account.
Diese Anleitung geht von einem Debiansystem aus, kann aber sicherlich auch für andere Distributionen adaptiert werden. Ich selbst habe dieses Setup mit Debian bookworm eingerichtet.
Go-sendxmpp kann man entweder selbst bauen, als binary herunterladen oder aus den repos einiger distros installieren. Ich habe es aus den Debian repos installiert, da go-sendxmpp ab bookworm in den Debian repos vorhanden ist.
Nun wird das script /usr/local/bin/mail2xmpp
mit folgendem Inhalt angelegt:
#!/bin/bash
|go-sendxmpp -u $user -p $password recipient@example.org
Dabei sind $user
und $password
durch Benutzer und Passwort des Kontos, das zum Versand
verwendet wird, zu ersetzen und recipient@example.org
durch die eigene Adresse, auf der
man die Nachrichten erhalten will. Es ist natürlich auch möglich mehrere Zieladressen
anzugeben.
Danach wird exim zum Eigentümer der Datei gemacht:
# chown Debian-exim:Debian-exim /usr/local/bin/mail2xmpp
Ebenso werden die Berechtigungen angepasst:
# chmod 700 /usr/local/bin/mail2xmpp
Um zu definieren wie die Mails zugestellt werden muss die Datei /etc/aliases
bearbeitet werden,
wobei $user natürlich anzupassen ist (ich nutze dafür meinen Hauptbenutzer, man kann aber natürlich
auch extra einen Benutzer für diesen Zweck anlegen):
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: $user
$user:,|/usr/local/bin/mail2xmpp
Damit die Systemmails per pipe weitergereicht werden können muss die Datei /etc/exim4/exim4.conf.localmacros
ngelegt und diese Zeile eingetragen werden:
SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe
Anschließend werden die neuen Aliase eingelesen und exim4 neu gestartet:
# newaliases
# systemctl restart exim4.service
Abschließend wird noch getestet ob der Mailtransport über XMPP funktioniert:
$ echo "Das ist ein Test" | mail -s testmail root
Ein anonymer Kommentator (der Kommentar ist mittlerweile verschwunden. Wo ist er hin? Ich habe ihn wissentlich nicht gelöscht…) hat mich darauf hingewiesen, dass der Teil vor der pipe im script unnötig war und ich habe es dementsprechend angepasst.
2019 habe ich hier beschrieben, wie man Zugriff auf ein captive portal bekommt wenn man einen eigenen DNS server (z.B. per DoT) nutzt. Mittlerweile habe ich ein tool gefunden, dass das deutlich komfortabler macht: captive browser.
Da ich statt Chrome Chromium aus den Debian repositories
nutze, musste ich nach Ausführung der allgemeinen Installationshinweise in
der Datei $(go env GOPATH)/src/github.com/FiloSottile/captive-browser/captive-browser-ubuntu-chrome.toml
1
in dieser Zeile lediglich google-chrome
durch
chromium
ersetzen. Danach folgte ich den Anweisungen für Ubuntu.
Nun genügt es captive-browser
aufzurufen und es öffnet sich ein chromium Fenster
mit dem captive portal zur Anmeldung im WiFi und es ist nicht nötig die Datei
/etc/resolv.conf
zu editieren um kurzzeitig einen anderen DNS server zu nutzen.
Üblicherweise ~/go/src/github.com/FiloSottile/captive-browser/captive-browser-ubuntu-chrome.toml
↩︎
After some years, working with a > 10 years old legacy PHP codebase, I can truly say: you can escape the legacy codebase and introduce whatever is helpful, in a well-maintained system.
Here are 5 important steps that I have done:
Here are 5 additional steps that I already introduce:
First rule, first: think or / and ask someone in the team
Job: If you now would like to work with this codebase (PHP 8 | MySQL 8 | Ubuntu), please contact me and take a look at this job offer: https://meerx.de/karriere/softwareentwickler-softwareentwicklerin/
What have I learned so far in my job?
I will start a new job next month (02-2023), so time to recap, I’m going to describe what I’ve learned so far.
me: Lars Moelleken |
> Assistant for business IT
> IT specialist for system integration
> IT specialist for application development
In contrast to school / technical college, I could and had to teach and work on many things myself during the training. And you quickly realize that you only learn as much as you want. Once you’ve understood this, you’re happy to sit down and learn whatever you want. For example, local or online courses, go to meetups or conferences. Worry about your skill because if you do something, you should do it right.
“An investment in knowledge still pays the best interest.” – Benjamin Franklin
What you learn pretty quickly as a sysadmin is “keep calm” and think first – then act. Hasty actionism does not help and usually even damages. Before you act, you should first obtain some information yourself (information from log files, hardware status, system status, …) so that you really know how to fix the error.
If you haven’t worked with a Unix operating system before, you unfortunately don’t know what you’re missing out on. If you want or have to use Windows for whatever reason, you can nowadays still use some of the advantages of Linux via WSL (Windows Subsystem for Linux). Leave your own comfort zone and trying out new operating systems helps to understand your computer better overall. At this point, I would have recommended “Arch Linux” as sysadmin, but today I would choose something that needs less maintaining.
One should also become familiar with the command line if you want to increase your productivity rapidly. For example, you should take a closer look at the following commands: e.g. find / grep / lsof / strace
It is often better to read the official documentation of the thing (hardware || software) you are currently using. While you start programming or learn a new programming language / framework, we often use stackoverflow.com and quickly finds answers and code examples, but the “why” and “how” is usually neglected. If you look at the specification / documentation first, you not only solve this problem, you also understand the problem, and maybe you will learn how to solve similar problems.
Some things you have to learn the hard way, apparently installing “safe-rm” was part of it for me!
apt-get install safe-rm
“Man has three ways of acting wisely. First, on meditation; that is the noblest. Secondly, on imitation; that is the easiest. Thirdly, on experience; that is the bitterest.” – (Confucius)
Be honest with customers, especially when things go wrong. If the customer’s product (e.g. server) fails, then offer solutions and no excuses and solve the problem, not the question of blame. No one is helped by pointing the finger at colleagues or customers, not at the server, not at the customer and ultimately not at yourself.
Don’t talk to customers about something you don’t understand, not knowing something (especially in training) is fine, but then ask a colleague before you talk to a customer about it!
If you question things and think about your work and what you do, then you can develop personally. Question critical, for example, whether you should really order from Amazon, or should you rather order the book directly from the publisher? What is the advantage for the author and do I have any disadvantages? Should we use Nagios or rather Icinga directly? Question your work and critically evaluate whether this is really a good / safe / future-oriented solution.
If you are not sure yourself or your perspective is too limited (because you only know this one solution, for example), then you should acquire new knowledge, research other solutions or “best practices” and discuss the topic with others.
1. When searching an issue, look for the error message in quotes: “Lars Moelleken”
2. You can limit the result to special URLs: inurl:moelleken.org
3. Sometimes it’s helpful to find only specific files: filetype:txt inurl:suckup.de
> There are even more tricks that can help you in your daily work, just Google for it:
Full example: intitle:index.of mp3 “Männer Sind Schweine” -html -htm -php
When you start to deal with web programming (HTML, CSS, JS, PHP, …), you don’t even know where to start. There is so much to learn, and this feeling accompanies you for some time (years) until you recognize recurring concepts. However, the advantage in web programming is that many different things have common APIs or at least can be combined. I can write a class in PHP that creates data attributes for my HTML, which I can read out with JavaScript to design them accordingly using CSS classes. But it stays the same, you never stop learning, and that’s also what’s so exciting about this job.
Even if the boss isn’t in the office today, and you don’t have any more tasks, then write some code, if you’re sitting on the couch at home (and no new series is running on Netflix), then write or read some code and if you’re on vacation, you’re on vacation!
Here is an interesting link from “John Resig” (jQuery):
http://ejohn.org/blog/write-code-every-day/
If you write software every day, you don’t want to code the same functionality (e.g. database connection, send e-mail or error logging …) multiple times for different projects (and remember, mostly you don’t want to code standard functions yourself). Therefore, every programmer should think in modules and design an application in different, preferably interchangeable parts. Often, the system can then also be expanded better, since there is already an interface for modules that can be used. The independence and decoupling of program parts also has the advantage that side effects from different places in the source code are further avoided. In addition, one should minimize the coupling of the corresponding modules, otherwise one gains nothing from modules.
There are already package managers for almost everything in web development. e.g.:
– Frontend (css, js): npm
– Backend (php): composer
If you are already working with modules and packages, you can publish them as an OSS project + run tests via GitHub actions + code coverage + at least a small amount of documentation. For these reasons alone, publishing as open source is worthwhile. The code quality also increases (in my experience), since the source code is released to the public and therefore more or less conscious attention is paid to the code quality.
The moment when you get your first pull request for your software or code together with someone from Israel, Turkey and the USA is priceless.
At some point, you would like to have the same advantages of OSS in your daily work because often, there is no package (code is directly added into the existing code), no tests (even not for bugs) and no documentation. So, possibly, you have now collected enough arguments to convince your boss to publish some package from your code at work.
I don’t know how people can work with the PC without version control. I even use “git” for smaller private projects or for configuration files. The following are some advantages, but the list can certainly be extended with a few more points:
– changes can be traced (git log, git blame)
– changes can be undone (git revert, git reset)
– changes can be reviewed by other employees
– employees can work on a project at the same time (git commit, git pull, git push)
– development branches (forks) can be developed simultaneously (git checkout -b , git branches)
GitHub itself is not open-source, but there has been an unofficial agreement to use the platform for open-source projects. You can therefore find many good developers and projects there, and you can learn a lot just by reading the source code / changes. Especially because you can understand and follow the development of the projects: How do others structure your code? How do others write their “commit” messages? How much code should a method contain? How much code should a class contain? Which variable names are better to avoid? How to use specific libraries / tools? How do others test their code? …
Especially when you write tests for your own code, you catch yourself testing exactly the cases that you have already considered, so you should test the corresponding functionality with different (not yet considered) input. Here are some inputs for testing: https://github.com/minimaxir/big-list-of-naughty-strings
Hint: We should add another test whenever an error occurred, so that already fixed error does not come back to use.
Unit tests, integration tests and front-end tests only help if they are also executed, so you should deal with automated tests at an early stage and also run them automatically when the source code changes. Where and when these tests are run also determines how effective these tests ultimately are. As soon as you have written a few tests, you will understand why it is better not to use additional parameters for methods and functions, since the number of tests increases exponentially.
As soon as you work with more than one developer on a project, or the project will become more complex, you want to use some kind of deployment. As in application development, often the simplest solution is also here a good starting point: e.g. just pull the given changes into a directory and change the symlink from the existing source directory so that you can switch or rollback all files easily. PS: And you properly never need to write database-migration rollbacks, I never used them.
Understanding design patterns (programming concepts) not only helps in the current programming language, but can mostly be applied to other programming languages as well.
Basic concepts (classes, objects, OOP, functions, ORM, MVC, DDD, unit tests, data binding, router, hooks, template engine, …) can be found in many frameworks / programming languages and once you have understood the terms and concepts, it is no longer that difficult to use new / different frameworks. And you can see different strengths and weaknesses of these frameworks and tools: “If you only have a hammer as a tool, you see a nail in every problem.”
Design patterns are part of the basic equipment, but you should always ask yourself: Which problem is actually supposed to be solved with the given solution? If necessary, you can find an even more elegant / simpler solution. And sometimes the customer actually wants something thoroughly different, he just doesn’t know it yet or someone has misunderstood the customer.
But it is just as important to understand why a certain feature is implemented, and otherwise you are programming something that is either not needed or used at all. One should therefore understand the corresponding task before implementation and even before planning in the overall context.
Use one file for a class, use one file for CSS properties of a module or a specific page, use a new file for each new view. Dividing the source code into different files / directories offers many advantages, so the next developer knows where new source code should be stored and you can find your way around the source code faster. Many frameworks already provide a predefined directory structure.
The readability of source code should always come first, since you or your work colleagues will have to maintain or expand this code in the future.
YouTube’s videos about “Clean Code”: https://www.youtube.com/results?search_query=%22Clean+Code%22&search_sort=video_view_count
Best Practices: http://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code-net-8118
It starts with the domain name / project name, goes through file names, to directory names, class names, method names, variable names, CSS class names. Always realize that others will read this and need to understand it. Therefore, you should also avoid unnecessary abbreviations and write what you want to describe.
We want to describe what the function does and not how it is implemented.
⇾ Incorrect: sendMailViaSwiftmailer(), sendHttpcallViaCurl(), …
⇾ Correct: mail->send(), http->send(), …
Variables should describe what they contain and not how they are stored.
⇾ Incorrect: $array2use, $personsArray, …
⇾ Correct: $pages, $persons, …
Summary: Describe what the variable/method/function/class is, not how it is implemented: https://github.com/kettanaito/naming-cheatsheet
Good comments explain “why” and not “what” the code is doing, and should offer the reader added value that is not already described in the source code.
Sometimes it makes sense to add some “what” comments anyway, e.g. for complicated regex or some other not optimal code that needs some hints.
Examples of inline comments:
bad code:
// Check if the user is already logged in if ( isset ( $_SESSION['user_loggedin']) && $_SESSION['user_loggedin'] > 1 ) { ... }
slightly better code:
// check if the user is already logged-in if ( session ( 'user_loggedin' ) > 1 ) { ... }
better code:
if ( $user->isLoggedin === true ) { ... }
… and another example …
bad code:
// regex: email if (! preg_match ( '/^(.*<?)(.*)@(.*)(>?)$/' , $email ) { ... }
better code:
define ( 'EMAIL_REGEX_SIMPLE' , '/^(.*<?)(.*)@(.*)(>?)$/' ); if (! preg_match ( EMAIL_REGEX_SIMPLE , $email ) { ... }
Use the existing code and use given functions. If it brings benefits, then change / refactor the corresponding code, but then refactor all places in the project which are implemented in this way.
Example: If you have formerly worked without a template system and would like to use one for “reasons”, then use this for all templates in the project and not just for your current use case; otherwise, inconsistencies will arise in the project. For example, if you create a new “Email→isValid()” method, then you should also replace all previous RegEx attempts in the current project with the “Email” class; otherwise inconsistencies will arise again.
Read more about the topic:
– “Be consistent [and try to automate this process, please]!” http://suckup.de/2020/01/do-not-fear-the-white-space-in-your-code/
– “Why do we write unreadable code?”
http://suckup.de/2020/01/do-not-fear-the-white-space-in-your-code/
As in real life, if there is already rubbish somewhere, the inhibition threshold to dump rubbish there drops extremely. But if everything looks nice and tidy, then nobody just throws a “randumInt() { return 4; }” function on the floor.
It also helps to automate some refactoring because the code looks everywhere the same, you can also apply the same e.g. PHP-CS-Fixer and you do not need to think about every different coding style.
A pure function (“Pure Functions”) only depends on its parameters and with the same parameters it always returns the same result. These principles can also be considered in OOP and create so-called immutable classes (immutable class).
https://en.wikipedia.org/wiki/Pure_function
https://de.wikipedia.org/wiki/Object-oriented_programming
https://en.wikipedia.org/wiki/Immutable_object
Global variables make testing difficult because they can cause side effects. Also, it’s difficult to refactor code with global variables because you don’t know what effects these changes will have on other parts of the system.
In some programming languages (e.g. JavaScript, Shell) all variables are global and only become local with a certain keyword (e.g. in the scope of a function or a class).
For example, if you’re writing code with Notepad, you can dig a hole with a spoon, which is just as efficient. Learn keyboard shortcuts for your programs and operating system! Use an IDE, e.g. from JetBrains (https://www.jetbrains.com/products.html) and use additional plugins and settings.
Modern IDEs also give hints/suggestions on how to improve your code. For example, for PHP, you can use PhpStorm + PHPStan and share the global IDE Inspections settings in the team.
In nearly every situation you don’t have to worry too much about performance, as modern programming languages / frameworks support us and with common solutions; otherwise the motto is “profiling, profiling… profiling”!
You should not use exceptions to handle normal errors. Exceptions are exceptions, and regular code handles the regular cases! “Use exceptions only in exceptional circumstances” (Pragmatic Programmers). And nearly under no circumstances you should “choke off” exceptions, e.g. by trivially catching several exceptions.
You should finish what you started. For example, if you need to use “fopen()” you should also use “fclose()” in the same code block. So, nobody in the team needs to clean up your stuff after he / she uses your function.
The source code should be easy to search through, so you should avoid using string nesting + “&” with Sass, for example, and also avoid using PHP functions such as “extract()”. Whenever variables are not declared, but created as if by magic (e.g. using magic methods in PHP), it is no longer so easy to change the source text afterward.
Example in PHP: (bad)
extract ( array ( 'bar' => 'bar' , 'lall' => 1 )); var_dump ( $bar ); // string 'bar' (length=3)
Example in Sass: (bad)
. teaser { font - size : 12px ; & __link { color : rgb ( 210 , 210 , 22 ); } }
Sass Nesting (code style): https://github.com/grvcoelho/css#nesting
A big problem in programming is that you have to try to think and program in a generalized way so that you can (easily) expand the source code if new requirements are added or you can (easily) change it.
What does project sometimes look like? → A customer orders 10,000 green apples from a farm, changes his order to 10,000 red apples the morning before delivery and when these are delivered, the customer would prefer 10,000 pears and would like to pay for them in 6 months.
And precisely for this reason you should only write the source code that is really required for the current use case because you can’t map all eventualities anyway and the source code is unnecessarily complicated.
One should always keep in mind that the source code itself is not that valuable. The value only arises when other developers understand it and can adapt / configure / use it for the customer or themselves. This should be kept in mind during programming so that a solution can be implemented as comprehensibly and “simply” as possible. And if I don’t need to use a new class or nice design pattern for the current problem, I probably shouldn’t. However, this does not mean that you should throw all good intentions overboard and use global variables / singletons everywhere. However, if a simple solution already does the job, go for that one.
A good example of what not to do is the JavaScript DOM Selector API. Not exactly nice to read or write…
Bad: (DOM Selector via JS)
document.getElementsByTagName ( "div" ) document.getElementById ( "foo" ) document.getElementsByClassName ( "bar" ) document.querySelector ( ".foo" ) document.querySelectorAll ( "div.bar" )
Better: (DOM Selector via jQuery)
$( "div" ) $( "#foo" ) $( ".bar" ) $( ".foo" ) $( "div.bar" )
Repetitions / redundancies in the source text or in recurring work arise relatively quickly if people do not communicate with each other. But also unintentionally due to errors in the software design because you don’t have a better idea or don’t think you have time for it.
To avoid repetition, make your solution easy to find and easy to use. So that other devs will use it instead of re-creating a solution.
If you can already program ActionScript (Flash), for example, but are not willing to learn something new, then previous knowledge is of no use because “The only constant in the universe is change.” – Heraclitus of Ephesus (about 540 – 480 BC).
Books I have read: https://www.goodreads.com/user/show/3949219-lars-moelleken
Free Books: https://github.com/vhf/free-programming-books/blob/master/free- programming-books.md
books for programmers: http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
It sometimes helps to motivate yourself, to write e.g. a blog post or testing some new stuff, if you know some people how has the same interest, so just follow some of them online, there are many excellent developers out there, and they share their knowledge and tricks mostly for free. :)
To find out about new technologies, techniques, standards, patterns, etc., it is best to use different media, which can be consumed in different situations. An interesting podcast on “Frontend Architecture” before falling asleep or a video on “DevOps” while preparing lunch, reading a book on the tram in the morning entitled “Programming less badly” … to name just a few examples.
Podcasts: https://github.com/voku/awesome-web/blob/master/README.md#-audio-podcast
github is awesome: https://github.com/sindresorhus/awesome
and there is more: https://github.com/jnv/lists
Meetups are groups of people who meet regularly and talk about things like Python, Scala, PHP, etc. Usually, someone gives a lecture on a previously agreed topic.
⇉ http://www.meetup.com/de-DE/members/136733532/
Web conferencing is fun. Point. And every developer / admin should visit them because you get new impressions and meet wonderful people. Some conferences are expensive, but here you should contact your employer, if necessary, the company will take care of it. And there are also really cheap conferences.
To deal with a certain topic yourself and to really understand it, it is worth doing research and writing a text (possibly even a lecture) that others can read and criticize and thus improve.
With all the enthusiasm for the “job” (even if it’s fun), you shouldn’t lose sight of the essential things. Again, something I had to learn the hard way. :-/
Jupyter Notebook ist eine Open Source-Webanwendung, mit der man Dokumente erstellen und teilen kann, die Live-Code, mathematische Gleichungen, Visualisierungen von Daten und beschreibenden Text enthalten können. Ein Jupyter Notebook ist ein praktisches Werkzeug für die interaktive Erstellung von Präsentationen, um Code, dessen Ausführung und daraus resultierende Daten darzustellen. Die meisten Jupyter Notebooks laufen mit Python, man kann aber auch andere Sprachen benutzen, z.B. aus dem .NET-Umfeld wie C# oder auch PowerShell. Jupyter Notebooks laufen im Browser, es gibt mit Jupyter eine sehr schöne Erweiterung für VS Code. Und um die Notebooks noch um die .NET-Sprachen zu erweitern, kann man auch gleich noch die Erweiterung .NET Interactive Notebooks aus dem Marketplace von VS Code installieren.
Damit man überhaupt Jupyter Noteboos erstellen kann, wird das entsprechende Python-Modul benötigt:
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
Um ein Jupyter Notebook im Browser zu starten, gibt man dann einfach jupyter notebook
im Terminal ein. Im VS Code reicht es dagegen, eine neue Datei mit der Endung .ipynb
zu erstellen und man kann loslegen und den beschreibenden Text mit Markdown erstellen und den Code in Python. Um eine Sprache aus dem .NET-Framework zu verwenden, muss natürlich .NET unter Linux installiert sein und für PowerShell am besten die neuste Version.
Wenn das erledigt ist, und die Befehle dotnet
für .NET und pwsh
für die PowerShell über die Pfad-Variable erreichbar sind, wird noch das Microsoft.dotnet-interactive-Paket benötigt, ein Befehlszeilen-Tool für die interaktive Programmierung mit C# oder PowerShell, inklusive Unterstützung für Jupyter Notebooks:
dotnet tool install --global Microsoft.dotnet-interactive
Anschließend führt man den folgenden Befehl aus, um dotnet-interactive zum Jupyter Notebook hinzuzufügen:
dotnet interactive jupyter install
Jetzt kann man im VS Code Jupyter Notebooks erstellen und PowerShell Cmdlets ausführen. Allerdings muss man darauf achten, dass der Kernel des Notebooks unter .NET Interactive läuft (also nicht Python) und der Programm-Code als „PowerShell (.NET Interactive)“ ausgeführt wird, so wie in der Abbildung:
Das schöne an .NET-Interactive als Kernel für Jupyter Notebooks ist, dass noch weitere Sprachen unterstützt werden, so dass man neben PowerShell auch Code-Blöcke in C#, JacaScript oder auch SQL erstellen kann.
Damit dein Einstieg in VirtualBox reibungslos verläuft und openSUSE Leap sich nicht beschwert, dass noch etwas fehlt, kannst du diese paar einfachen Schritte befolgen. Dafür installiert man zunächst alle wichtigen Pakete, die VirtualBox benötigt. Das geht mit YaST oder in der Konsole mit diesem Einzeiler:
sudo zypper install virtualbox virtualbox-host-source kernel-devel kernel-default-devel |
Wenn die Installation abgeschlossen ist, werden die Kernelmodule kompiliert, die VirtualBox benötigt, um ein Gastsystem auf deiner openSUSE auszuführen:
sudo vboxconfig
|
Anschließend musst du noch deinen Benutzer zur Gruppe der VBOXUSERS
hinzufügen:
sudo usermod -a -G vboxusers $USER |
Damit die Änderung mit deinem Benutzer und der Gruppe wirksam werden, musst du dich einmal vom System ab- und wieder anmelden. Dann kannst du mit VirtualBox in openSUSE Leap starten.
Es wird Zeit, mal wieder meinen Desktop zu zeigen und wie ich ihn für mich angepasst habe. Sean hat das hier mit Xubuntu gemacht, ich übernehme die übersichtliche Struktur gerne.
Das Gerät ist ein ThinkPad x220 mit i5-2520M und 16GB RAM, einer 120GB Samsung 840 SSD, “gemoddetem” BIOS und 9-Zellen/73,3Wh Nachbauakku.
Konfiguration
Tipps & Tricks
Mehr Screenshots
Momentan kommen mir im debianforum [1] immer öfter Menschen unter die Nase, die fast, aber nicht ganz auf das Schema linux-ist-nicht-windows [2] passen. Sie wissen, dass Linux anders ist, sie wollen es nicht alle wie Windows bedienen, aber sie haben ihre schlechten Windowsgewohnheiten noch nicht vergessen/abgelegt. Eigentlich schade, denn sie verpassen die Hälfte. Als Hilfesuchende punkten sie auch nicht, denn sie gehen Probleme nach Windows-Art an: Beschreibe das Verhalten, hoffe, dass das jemand kennt und eine Lösung dafür hat. Unter Windows gehts halt nicht anders...hoffentlich ergiebige Fehlermeldung ("Vorgang fehlgeschlagen") mit Vorgeschichte ("Programm XY installiert", "Windows Updates durchgeführt", ..) in Google suchen oder Forum posten und auf Leidensgenossen hoffen, die das Problem gelöst haben.
In den meisten open source Programmen gibt es irgendeine Art von Logging oder (Debug-)Ausgaben. Dazu führt man das Programm auf einem Terminal aus, ruft es anders auf oder schaut in der Logging-Datei der X-Session (ausgehend davon, dass es sich um ein grafisches Programm handelt), in der Regel zu finden in ~/.xsession-errors oder für SLIM in /var/log/slim.log. Dort gibt es dann ganz viele Informationen, die zielführend für eine Lösung sind. Ich behaupte ja nicht, dass da steht "du musst noch libbanana-2.4 installieren", und wenn derjenige mit dem Problem mit den Informationen nichts anfangen kann (weil sie zu technisch sind), dann gibts andere, die es können.
Bis es sich rumgesprochen hat, werd ich wohl öfters darauf hinweisen.
Und die meisten Programme, grafisch als auch nicht grafisch (und letztere besonders) haben eine Ausgabe auf dem Terminal, auf dem sie ausgeführt werden. Es wäre doch durchaus hilfreich, sowohl verursachendes Kommando als auch die Ausgabe dazu (abzüglich empfindlicher Daten, die sind erkennbar als solche zu zensieren) unverfälscht zu sehen.
Und diese Dateien (die in /var/log/ sind übrigens nur als root lesbar, also entweder ein root-Terminal öffnen oder sudo vor den Befehl setzen) werden am besten mit Hilfe von tail -f Datei gelesen (was die Ausgabe weiterlaufen lässt), woraufhin die fehlerverursachende Aktion wiederholt wird oder mit less komplett geöffnet. tail ohne -f zeigt einfach bloß die letzten 10 Zeilen an.
Damit wäre das hoffentlich vom Tisch. Das soll übrigens kein rant sein, sondern ein fester Schubser in die richtige Richtung, in Zukunft selbst Lösungen zu finden. Bei Windows hat man doch auch viel Durchhaltevermögen ;) Und neu installieren muss man bei $linuxdistribution auch nicht sonderlich oft.
Und ein letzter Hinweis: solange man nichts gekauft oder bezahlt hat, gibt es auch keinen "Anspruch". Das schließt auch "schließlich ist das doch ein Hilfeforum, ihr müsst mir helfen" ein. Das ist Freizeit, die wir "opfern", meist, weil es uns Spaß macht zu helfen oder wir dabei selbst noch lernen (gemeinsames Problemlösen). Entsprechend schwach ist die Motivation, eine nur schwach oder garnicht recherchierte Frage zu beantworten oder "Hausaufgaben" zu erledigen, die man wahlweise schnell zusammengesucht oder nachgelesen hat. Da hagelts dann schnell ein genervtes RTFM.
Update: falsche Datei angegeben, danke an up ausm dfde
[1] | http://debianforum.de |
[2] | http://www.felix-schwarz.name/files/opensource/articles/Linux_ist_nicht_Windows/ |
Rückblick: 25.10.2015 findet der Frankfurt Marathon statt, ich sitze gespannt vom Fernseher als Arne Gabius zu einem neuen deutschen Rekord läuft und finde es sehr interessant und spannend, zugleich aber auch verrückt und unmöglich, dies selbst einmal zu absolvieren. Einige Tage später wird der Termin für 2016 auf Facebook veröffentlicht und ich klicke auf „interessiert mich“, einfach um den Termin nicht zu verpassen, absolut ohne den Hauch eines Gedankens daran, dort vielleicht selbst zu starten. Entsprechend verblüfft reagiere ich auf beim nächsten Lauftraining auch auf die Frage eines Trainingspartners „Und, schon angemeldet“? Ich? Nein, das traue ich mir nicht zu. Andere schon: „Komm, bei Deinem Training, ein paar lange Läufe noch zur Vorbereitung, ist das kein Problem“. Soll ich wirklich? Könnte das klappen? Warum eigentlich nicht. Am 06.12.2015 war ich dann so weit:
Lieber Jürgen Braun,
vielen Dank für Deine Anmeldung zum Frankfurt Marathon 2016. Hier befinden sich alle wichtigen Daten und Angaben zu Deiner Anmeldung.
Die Bestätigungsmail des Veranstalters war da. Es kann los gehen…
Die Vorbereitung ist gut gelaufen, bei Lauftipps.ch habe ich mir einen Trainingsplan erstellen lassen, an den ich mich zumindest in den letzten 7 Wochen vor dem Wettkampf zu 100% gehalten habe. Die Wochen davor fanden noch Wettkämpfe in der Hessischen Triathlon-Liga statt und ich war noch eine Woche im Urlaub, hier musste ein wenig improvisiert und lange Läufe durch schnelle 10km im Wettkampf werden.
Nach meinen Problemen im Frühjahr mit ISG und Schienbeinkante achtete ich sehr auf irgendwelche Zeichen meines Körper und tatsächlich, drei Wochen vorm Wettkampf, am Ende des längsten Laufes über 33km waren sie da, Rückenschmerzen Wie würden wohl im Wettkampf die noch ausstehenden 9km zu bewältigen sein, lies sich der Wettkampf überhaupt erfolgreich beenden? Durch die Erfahrung aus dem Frühjahr, war eigentlich klar, dass es vermutlich das ISG bzw. die Lendenmuskulatur sein muss, also wurde in der verbleibenden Zeit noch mehr Wert auf Übungen zur Rumpfstabilisierung gelegt.
Sonntag, 30.10.2016; Es ist so weit. Der Frankfurt Marathon steht an und ich stehe am Start.
Es ist frisch, vielleicht 7 oder 8°, jedoch bei strahlend blauem Himmel. Ich fühle mich gut vorbereitet, habe vier Gels für die Verpflegung dabei, plane mit einer Zielzeit von 3:45:00 h, also einem Schnitt von 5:20 min/km. Dann geht es los, ich starte mit einem Laufpartner aus dem Verein, doch er hat sich wohl umentschieden und will doch schneller als die 3:45:00 ins Ziel, nach ca. 2,5 km verabschiede ich mich und lasse ihn laufen, suche mir selbst mein Wohlfühltempo, das sich bei ca. 5:10 min/km einpendelt. Ich genieße die Atmosphäre an der Strecke, die Zuschauer – einige erkenne ich, als sie meinen Namen rufen – Marina und André, Cornell, Wolfgang, Thomas, …
Bis km 30 fühlt es sich gut an, sehr gut sogar, ich muss mich bremsen um nicht schneller zu werden, ich brauche die Kraft noch am Ende. Dann fängt es an, etwas zäher zu werden, bei km 35 stehen meine Frau und meine beiden Töchter, Ihre Rufe spornen mich an, noch 7km, ich versuche schneller zu werden, muss den Versuch aber aufgeben, noch 6km, noch 5km, ich hangle mich von km-Schild zu km-Schild, ab wann soll ich alles geben, sind 3:40:00 noch möglich? Plötzlich kommt Frank auf die Strecke gelaufen „Jürgen, Du hast es gleich geschafft. Du siehst etwas angestrengt aus, bist Du etwa gelaufen?“ :-D, spornt mich nochmals an und wünscht mir viel Erfolg. Ich beschleunige nochmals etwas und gebe alles was geht. Dann der Einlauf in die Festhalle, die Musik, die vielen Menschen, die Lichter, ich krame das #meinerstermarathon Band aus der Tasche, recke es in die Höhe und überquere die Ziellinie. GESCHAFFT!
Ich bin völlig außer Atem, langsam bewege ich mich in den Verpflegungsbereich, dehne Oberschenkel und Waden. Dann die Finisher-Medallie, 42,195 km in einer Zeit von 3:41:10. Ich bin sehr zufrieden, die Zielzeit unterboten, komplett durchgelaufen ohne Gehpausen (außer beim Trinken) und keine Schmerzen in den Gelenken oder der Muskulatur, auch der Rücken hat problemlos mitgemacht.
Im Verpflegungsbereich dann ein paar Becher Iso-Getränke, ein paar Apfelstückchen gegessen, etwas Mohnkuchen, alkoholfreies Weizenbier, mit den Vereinskollegen getroffen und abgeklatscht, dann zur Familie die mich schon freudig und stolz erwarten. Auf dem Weg zur S-Bahn merke ich schon, dass das Gehen etwas schwer fällt, Treppen steigen unangenehm ist und das Aufstehen nach dem Sitzen etwas länger dauert als sonst. Aber wie lautet der Spruch:
„Der Schmerz vergeht, der Stolz bleibt“
LTS Distributionen sind für mich das Maß der Dinge. Lange Produktlaufzeiten, wenig Wartungsaufwand und hohe Funktions- und Laufzeitstabilität sind nicht nur im Servereinsatz wichtig. Trotz hunderter Distributionen gibt es nur wenige LTS-Varianten (siehe: Linux - Eine sichere Basis). Mit CentOS steht hier ein weiteres Projekt vor dem Ausfall.
Natürlich sind Arch, Manjaro, Tumbleweed und wie sie alle heißen tolle Projekte und für den individuellen Desktopeinsatz gut geeignet. Ich glaube auch gerne, dass viele nie oder nur extrem selten Probleme bei Updates haben. Sie taugen aber kaum für den wartungsarmen Masseneinsatz, wo der Anwender nicht selbst die Administration übernehmen kann oder will.
Es braucht diese ständigen Updates eigentlich auch nicht. Linux auf dem Desktop ist im Wartungsmodus (siehe auch: Kein Ubuntu 20.04 Test). Ob ich nun GNOME Shell 3.32 oder 3.28 verwende macht weder funktional, noch von der Stabilität einen Unterschied. Das gleiche gilt für Plasma, LibreOffice und viele weitere Projekte. Relevant sind über eine lange Laufzeit lediglich neue Treiber für neue Hardware (entweder über massive Kernel-Modifikation durch den Distributor oder neue Kernel-Versionen) und neue Browser-Versionen.
Ich habe deshalb - sofern der Anwender mit GNOME klar kam - CentOS auch für den Desktop immer gemocht. 10 Jahre Ruhe am System sind einfach eine Hausnummer. Im Serverbereich dürfte CentOS neben Ubuntu LTS und Debian ebenfalls für viele eine maßgebliche Rolle spielen.
Wie Michael Kofler in seinem Blog aber zu recht thematisiert fällt CentOS 8 inzwischen für den Produktiveinsatz eigentlich aus. 71 und 48 Tage ohne Updates sind indiskutabel. Das Projekt scheint hier leider auch nicht willens oder fähig etwas zu ändern.
Im LTS Bereich wird es jetzt eng. Die sehr lange Supportdauern von 10 Jahren bietet nun nur noch SLED gegen eine - preislich allerdings vollkommen akzeptable - Subscription. Wer mit circa 3-5 Jahren leben kann hat noch Debian, openSUSE Leap und Ubuntu LTS zur Auswahl. Viel ist das nicht mehr. Gegebenenfalls muss man sich wirklich mit Oracle Linux beschäftigen, auch wenn sich dabei alle Nackenhaare aufstellen.
Bilder:
Einleitungsbild und Beitragsbild von von mohamed Hassan via pixabay
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.
As already said I use Hugo to generate the static sites. My theme is based on Sustain. I did some changes and uploaded my version to GitLab.
I want to have all dependencies like fonts and JavaScript libraries locally, so this was one of the largest changes to the original theme. Further I added a easy way to add some share buttons to a blog post, like you can see at the end of this article. The theme also contains a nice and easy way to add presentations or general slide shows to the webpage, some examples can be seen here. The theme contains a example site which shows all this features.
This was one of the biggest challenges. I had some quite good discussion on my old blog powered by Wordpress so I don’t want to lose this feature completely. There are some solutions for static pages but non of these are satisfying. For example Staticman looks really promising. Sadly it only works with GitHub. Please let me know if you know something similar which doesn’t depend on GitHub.
For now I decided to do two things. By default I add a short text at the end of each article to tell people to send me a e-mail if they want to share or discuss their view on the topic. Additionally I can add to the meta data of each posts a link to a Friendica post. In this case the link will be added at the end of the article, inviting people to discuss the topic on this free, decentralised and federated network. I have chosen Friendica because it allows users to interact with my blog posts not only with a Friendica account but also with a Diaspora, GNU Social, Mastodon or Hubzilla account. If you have a account on one of these networks and want to get updates about new blog posts in order to participate in conversations around it, follow this Friendica account. I also created a more detailed description for people new to the world of free social networking.
After all the questions above where answered and a first version of the new webpage was in place, I had to find a easy way to deploy it. I host the source code of my homepage on GitLab which has a nicely integrated CI service which can be used to deploy the webpage on any server.
Therefore we need to add a CI script called .gitlab-ci.yml
to the
root of the repository. This script needs to contain following (please
adjust the paths):
image: publysher/hugo
before_script:
- apt-get update
- apt-get --yes --force-yes install git ssh rsync
- git submodule update --init --recursive
pages:
script:
- hugo
- mkdir "${HOME}/.ssh"
- echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts"
- echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa"
- chmod 700 "${HOME}/.ssh/id_rsa"
- rsync -hrvz --delete --exclude=_ public/ schiesbn@schiessle.org:/home/schiesbn/websites/schiessle.org/htdocs/
artifacts:
paths:
- public
only:
- master
We need to create a ssh key-pair to deploy the webpage. For security reasons it is highly recommend to create a ssh key used only for the deployment.
The variables SSH_HOST_KEY
and SSH_PRIVATE_KEY
need to be set at
GitLab in the CI settings. SSH_PRIVATE_KEY
contains the private ssh
key which is located in the ~/.ssh directory.
To get the right value for SSH_HOST_KEY
, we run ssh-keyscan
<our-webpage-host>
. Once we executed that command, we should
see something similar to schiessle.org ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCtwsSpeNV...
. Let’s copy this to the
SSH_HOST_KEY
value in our GitLab settings.
Finally we need to copy the public ssh key to the .ssh/authorized_keys file on the web-server to allow GitLab to access it.
Now we are already done. The next time we push some changes to the Github repository GitLab will build the page and sync it to the web-server.
Using the private key stored in the GitLab settings allows everyone
with access to the key to login to our web-server. Something we don’t
want. Therefore I recommend to limit the ssh key to only this one
rsync command from the .gitlab-ci.yml file. In order to do this, we
need to find the exact command send to the web-server by adding
-e'ssh -v'
to the rsync command.
Executing the rsync command with the additional option should result in something like:
debug1: Sending command: rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/
we copy this command to create following .ssh/authorized_keys entry:
command="rsync --server -vrze.iLsfxC --delete . /home/schiesbn/websites/schiessle.org/htdocs/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Sf/PDty0d0SQPg9b+Duc18RxPGaBKMzlKR0t1Jz+0eMhTkXRDlBMrrkMIdXJFfJTcofh2nyklp9akUnKA4mRBVH6yWHI+j0aDIf5sSC5/iHutXyGZrLih/oMJdkPbzN2+6fs2iTQfI/Y6fYjbMZ+drmTVnQFxWN8D+9qTl49BmfZk6yA1Q2ECIljpcPTld7206+uaLyLDjtYgm90cSivrBTsC4jlkkwwYnCZo+mYK4mwI3On1thV96AYDgnOqCn3Ay9xiemp7jYmMT99JhKISSS2WNQt2p4fVxwJIa6gWuZsgvquP10688aN3a222EfMe25RN+x0+RoRpSW3zdBd
Now it is no longer possible to use the private key, stored at GitLab to login to the web-server or to perform any other command than this specific rsync command.
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.
Bild von geralt via pixabay / Lizenz: CC0 Creative Commons
Facebook hatte jüngst mit schlechter Presse zu kämpfen. Länder- und medienübergreifend artikulierte sich massive Kritik an der Praxis wie dort mit Daten umgegangen wird. Manche Journalisten sehen darin die größte Krise in der nicht mehr ganz so jungen Geschichte des sozialen Netzwerks. Die Aktienmärkte sahen das vergangene Woche nicht unähnlich wenn man sich die Entwicklung des Kurses von Facebook anschaut.
Viele Datenschützer konnten sich eine gewisse Häme nicht verkneifen. Gehört umfassende Kritik an Facebook doch zum Standard-Repertoire von datenschutzbewussten Menschen (und solchen, die sich dafür halten). Die empfohlene Lösung war dann natürlich wie erwartet radikal. Verlasst endlich Facebook schallte es aus allen Kommentarspalten und Blogs.
In der Printausgabe der Süddeutschen Zeitung konnte man dazu vergangene Woche einen schönen Vergleich lesen. Sinngemäß ging es darum, dass die Aufforderung Facebook zu verlassen, weil man mit der Datenhandhabung moderner IT-Unternehmen unzufrieden ist, genau so erfolgversprechend ist wie das Essen einzustellen, weil man mit der Lebensmittelindustrie unzufrieden ist. Konsequent aber letztlich aussichtslos weil es an der Lebenswirklichkeit vorbei geht.
Genau dies beschreibt den Einfluss der Datenschützer auf das Verhalten der Masse. Radikal, konsequent und weitestgehend ignoriert, da wirklichkeitsfern. Bei diesem Thema und bei vielen anderen auch.
Es ist keineswegs so, dass Facebook das Verlangen für sein Produkt erst bei den Menschen wecken musste. Etwas was man den Silicon Valley Firmen gerne nachsagt. In einer hochgradig mobilen Gesellschaft bedient Facebook einfach ein Bedürfnis. Es vereinfacht soziale Vernetzung über große Zeiträume und Distanzen einfach enorm, viele Menschen leben halt nicht mehr in einer Welt, in der man alle Freunde im Vereinslokal trifft. Ein Verlassen des sozialen Netzwerks ist daher für viele Anwender mit einem nicht unerheblichen sozialen Einschnitt verbunden. Das betrifft nicht nur die Selbstdarsteller auf der Timeline, sondern eben auch die Gruppen und den Messenger.
Außerdem ist ein großer Trugschluss, dass man Facebook einfach den Rücken kehren kann. Man muss auch alle zugehörigen Dienste, am bekanntesten darunter sind sicher WhatsApp und Instagram, verlassen und trotzdem kann Facebook über die Vernetzung mit unzähligen Internetseiten - der Like-Button macht es möglich - noch ein Profil erstellen.
Letztlich übt man sich zwar in digitaler Selbstverstümmelung, erzielt aber nicht mal den erwünschten Effekt.
Zielführender sind da sicher Maßnahmen wie der kürzlich vorgestellte Mozilla Facebook Container. Er ermöglicht Teilhabe aber kontrolliert ein bisschen besser, was Facebook außerhalb des Netzwerks noch über einen sammeln kann. Viele weitere Maßnahmen wie ein Mehr-Browser-Konzept, sinnvoll ausgewählte Addons und reflektierte Handhabung des Netzwerks können es Facebook erschweren unerwünscht Daten zu sammeln.
Keine dieser Maßnahmen hätte den Datenabfluss von Facebook an Dritte verhindern können. Es ist auch nicht die Aufgabe des Bürgers paranoid seine Aktivitäten gegenüber den IT-Giganten zu verschleiern, sondern die Politik muss die Daten der Bürger entschieden gegen Missbrauch schützen und Verstöße hart bestrafen. Dafür kann der Bürger an der Wahlurne stimmen. Einfach mal bei der Wahl den Digitalthemen mehr Priorität einräumen, anstatt in den Kommentarspalten gegen Facebook zu wettern. Die deutsche Regierung ist nämlich keineswegs so rigoros im Datenschutz, wie sie sich jetzt medial gibt.
At Friday, 30.Jan.09 we had a joint event between KDE and the Fellowship of the Free Software Foundation Europe (FSFE) and it was simply awesome! Beside a lot of KDE and FSFE people we had a lot of visitors and at the end we were about 40 people! All interested in KDE 4.2 and Free Software.
At the beginning Frederik started with an introduction and showed all the new and cool things in KDE 4.2. After that i gave a talk about the work of FSFE, especially in 2008, explained the role of the Fellowship for FSFE and highlighted some cool activities from our Fellows. My slides can be found here (German). I think i could attract some people and would be really happy to see some new faces at our next Fellowship meeting (probably somewhen in March). If you don’t want to miss it, subscribe to our mailing list for South Germany.
After my talk we made a small break and than Frank continued with a very interesting talk about the KDE community and how to get involved as a developer, writer, artist or user. Last but not least Sven talked about the new version of Amarok and what we can expect from the new release.
This was the official part. Now the party started and we had a lot of fun and many interesting discussions between KDE developers and users, FSFE Fellows and all the other people who joined us at this evening. We also discussed some possible activities for the Fellowship Group Stuttgart. Some Fellows seems to be quite interested in the topic “Free Software in school and education”. I also think that this is a really important topic. Remember, the pupils from today are the decision makers from tomorrow.
As it becomes later a small group of people survived. One of them was Martin Konold, a KDE Developer from the very first days of KDE. He told us a lot of interesting and funny stories about the beginning of KDE and the development of the Free Software desktop.
At 2:30 at night a great event was over. I really want to thank Frederik for his great help in organising this event and all the other KDE people who helped to make this event that awesome! It was a lot of fun and a great cooperation between KDE and FSFE people! Looking forward for the next opportunity to organise such a great event!
More pictures can be found here.
2018-07-05 A new ssh login attack wave after the previous one had ended ... http://marmaro.de/lue/ markus schnalke <meillo@marmaro.de>
Wie in den letzten Jahren werde ich auch dieses Jahr wieder Threema Android Lizenzen verschenken. Dieses Jahr werde ich 5 Lizenzen verschenken. Dazu erhalten die Gewinner oder Glücklichen von mir einen Lzenzschlüssel, mit dem sie auf der Webseite von Threema dann den Android Client nach Eingabe des Lizenzschlüssel herunterladen können.
Es ist nicht möglich, damit Threema vom PlayStore sondern nur aus dem Threema Store herunterzuladen.
Die Teilnahme ist ganz einfach. Die ersten 5 Nutzer die mich via XMPP / Jabber anschreiben wird (pr3ach3r@trashserver.net) und die folgenden Fragen richtig beantworten kann:
1.) Aus welchem Land kommt Threema? 2.) Was bedeuten die 3 grünen Punkte bei einem Threema Kontakt? 3.) Was ist der Threema Safe?
Ich freue mich auf eure Einsendungen. Ich möchte festhalten ich stehe in keine Zusammenhang mit Threema. Ich kaufe die Lizenzen zum vollen Preis und dieses soll auch keine Werbaktion für mich oder Threema sein. Ich will nur einen kleinen Teil zu mehr Datenschutz und Sicherheit beitragen.
Momentan werden sämtliche (fast) Spracheingaben an die Hersteller übermittelt und dort verarbeitet. Dieser Artikel zeigt, dass es auch anders gehen könnte.
2018-03-08 If you want PCRE on the command line but your grep(1) does not offer `-P' (*not* offering it is what it *should* do!), you can use this one: perlgrep() { perl -e 'my $re = shift; print grep { /$re/ } <>;' "$@" } [0] Discovered some interesting facts about the GIF format. [1] You *are* able to use more than 256 colors, just not within one block ... but you can use multiple blocks for building True Color GIF images! [0] https://debianforum.de/forum/viewtopic.php?f=34&t=168942#p1167421 [1] https://debianforum.de/forum/viewtopic.php?f=29&t=168943&p=1167436#p1167436 http://marmaro.de/lue/ markus schnalke <meillo@marmaro.de>
Jamie Nguyen hat Tor und Tor-Browser für Fedora paketiert. Um diese Pakete über sein Repository zu bekommen, installiert ihr euch entweder das Release-Package oder macht das von Hand:
wget https://jamielinux.com/pub/jamielinux-tor-release.noarch.rpm yum install ./jamielinux-tor-release.noarch.rpm
Danach installiert ihr alle nötigen Pakete, aktiviert und startet Tor. Alle Pakete sind GPG-signiert.
yum install tor tor-browser tor-browser-selinux systemctl enable tor.service systemctl start tor.service
Optional könnt ihr mit "tor-browser-selinux"
die Unterstützung für SELinux installieren.
16 Grad C im Juli!???!
Dann folge ich doch mal dem Aufruf von Jürgen von BITBlokes und haue in die Tasten.
Ich bin Medieninformatiklehrer an einer einzügigen Privatschule und meine Coronaferien (achtung Sarkasmus) begannen folgendermaßen:
Am Freitag, den 13. März wurde klar, dass Präsenzunterricht an unserer Schule die nächsten Wochen nicht mehr stattfinden wird.
Freitag 13. März, ab 19 Uhr
Die Lernplattform Moodle (Learning Management Plattform) wurde aus anderen Gründen bereits auf unserem neuen Server installiert, jedoch in keiner Weise konfiguriert. Diese Arbeit stand nun an und es zeigt sich, dass keine Benutzer/innen, außer dem Admin, in Moodle registriert sind.
Fachlich: Keine LDAP-Anbindung an unsere bestehende Benutzerdatenbank.
Samstag 14. März
Die Konfiguration von Moodle stand im Vordergrund. Es ist nachvollziehbar, dass sich das Gefühl von „wir haben nur eine Chance“ im Bauch breit machte. Denn eine nicht funktionierende Plattform wäre nach wenigen Tagen so leer, wie unsere Schulgebäude.
Es findet eine Gesamtkonferenz statt, die Beschließt, dass Moodle offiziell zur Lernplattform wird.
Sonntag 15. März
Von nun an sind Mitglieder der Schüleradmins tatkräftig mit an Bord. Die Daten der Schüler/innen der Oberstufe und die Zugangsdaten der Lehrer/innen werden aufbereitet und in Tabellen übertragen, damit sie in Moodle eingefügt werden können.
Fachlich: CSV Dateien mit der richtigen Syntax erstellen.
Ohne die LDAP Anbindung haben wir keinen Zugriff auf aktuelle Passwörter des Schüler-Lehrer-Netzwerks. Zudem werden nur bestimmte Arten von Nachrichten von Moodle per Mail versendet, andere stranden im Postausgang. Mit viel Hirnschmalz, viel Einsatz und wenig Mittagessen wurden jedoch alle Probleme soweit gelöst oder umgangen, dass am Montag die Schüler/innen und Kolleginnen kommen können.
Stand jetzt: Die Plattform und die App, sowie die Bedienung per Browser funktionieren für Schüler/innen und Lehrer/innen. Alle, in der Oberstufenkonferenz besprochenen Kurse, sind angelegt und mit den entsprechenden Trainern (Ausdruck für Lehrer/innen in Moodle) versehen.
Montag 16. März
8:30 Uhr
Die Schüler/innen kommen. Jeweils eine Halbe klasse zur Installation und Einrichtung der App und die andere Hälfte zur Einführung in die Bedienung von Moodle am Computer. Nach einer halben Stunde werden die Gruppen getauscht und nach wieder eine halben Stunde kommt die nächste Klasse.
Was ist das eigentlich: Pause?
13:30 Uhr
Bis auf wenige Ausnahmen installierten alle Schüler/innen der Oberstufe die App, änderten ihr Passwort und lernten den rudimentären Umgang mit Moodle.
14:15 Uhr
Erste Schulung der Kolleg/innen.
17:45 Uhr
Vorstandssitzung – hier wurden im Vorgespräch und auch während des Sitzung mögliche Datenschutzbedenken durch Moodle in den Blick genommen. Da die Plattform auf unserem eigenen Server läuft und auch das Nachrichtensystem das eigene Haus nicht verlässt, deckt unser – in dieser Konferenz verabschiedete – allgemeines Datenschutz-Konzept alle datenschutzrechtlichen Bedenken ab.
Dienstag 17. März
Die ersten Schüler/innen starten in die Kurse, schreiben Nachrichten mit Fragen und geben erste Ergebnisse ab. Es scheint vieles zu funktionieren – Puh!
Eine zweite, gut besuchte Einführung für Lehrer/innen findet statt.
Kurse werden mit viel Fleiß von Lehrer/innen mit Inhalten befüllt und Schüler/innen arbeiten sich in die Plattform und die Inhalte ein.
Mittwoch 18. März
Verschnaufen von Seiten der Moodle-Verantwortlichen. Die Plattform läuft nicht perfekt, aber sie läuft so gut, dass sie genutzt werden kann. Ausschlafen!
Die Todo-Liste beinhaltet nun die Hilfestellung für Lehrer/innen und Schüler/innen und die Beschäftigung mit der Technik hinter Moodle. Backup, PHP- und andere Server-Einstellungen und die Konfigurationen der Plattform werden nun in Ruhe angegangen.
Donnerstag 19. März
Es läuft einfach.
Freitag 20. März
07:20 Uhr
„The service is not available. Please try again later.“
Das bedeutet so viel, wie die Hölle friert ein. Moodle ist down. Aber die Supportfirma das erste Mal in der Woche erreichbar. Schön ist, dass sie vor 10 Minuten noch ging, die Ausfallzeit ist also gering, wenn es jetzt schnell repariert wird. Bis ca. 12:30 Uhr.
Mal sehen, wie es weiter geht….
Bildquelle von Wikipedia: Von Moodle.org – https://moodle.org/logo/ https://moodle.org/logo/moodle-logo.svg, GPL, Link
Given is a ThreadStatic field which is set to empty in the static constructor, and set by a public instance method:
public class TestClass { [ThreadStatic] private static string threadStaticValue; static TestClass() { threadStaticValue = ""; } public void SetThreadStaticValue(string value) { threadStaticValue = value; } public string GetThreadStaticValue() { return threadStaticValue; } }
Now two unit tests check whether the threadStaticValue is set correct.
[TestClass] public class ThreadStaticTest { [TestMethod] public void WithThreadStaticValueSetTest() { Debug.WriteLine("Thread id: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId); TestClass tc = new TestClass(); tc.SetThreadStaticValue("foo"); Assert.AreSame(tc.GetThreadStaticValue(), "foo"); } [TestMethod] public void WithThreadStaticValueNotSetTest() { Debug.WriteLine("Thread id: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId); TestClass tc = new TestClass(); Assert.AreSame(tc.GetThreadStaticValue(), ""); } }
Those tests will fail(good) or pass(bad) depending of whether the test engine will reuse the same thread.
Executed a second time, the result could be different.
Solution:
Hej zusammen…
Ich habe heute mit meiner frischen installation von Linux Mint gekämpft… Prime Vido wollte nicht so wie ich es wollte…
Erst mal das was nicht geklappt hat:
Die ganzen Tips mit installiere HAL Lib über verschiedene wege…
Silverlight mit Wine…
Diverse Einstellung (hatten auch alle mit hal-libery zu tun)
Geholfen hat zum Schluss Mint selber!
Über das Start-Menü habe ich den Menüpunkt Multimedia ausgewählt. Dort wurde angeboten das Mint alles was Multimedia zu tun hat von alleine installiert… Jetzt läuft das mit Amazone Prime Video. Leider weiß ich nicht was alles am System jetzt geändert wurde von alleine… Mehdienwiedergabe, Rythmbox und VLC Player sind als einziges über das Multimedia Menü zusätzlich sichtbar und vorerst die einzigen Änderung die durchgeführt wurden.
Wenn ich noch was finde, was geädert wurde, werde ich es hier aktualisieren…
Ich bin ein großer Freund vom Datenschutz, leider unterstützt Hugo nur disqus, was alles andere als freundlich zum Datenschutz ist. Also gab es die letzten Monate nie eine Kommentar Funktion, das hat sich jetzt geändert.
Ich bin durch Zufall auf den Artikel von Don Williamson gestoßen, der es mir erlaubt eine Kommentar Funktion für meine Artikel durch Github anzubieten.
Als erstes legen wir eine Datei comments.html im Ordner themes/THEME_NAME/layouts/partials/ mit folgenden Inhalt an:
<div id="gh-comments">
<h2>Kommentare</h2>
<div id="gh-comments-list"></div>
<a href="javascript:void(0)" id="gh-load-comments" class="btn" style="display:none">Load more comments</a>
</div>
<script type="text/javascript" data-ghid="{{ $.Params.ghcommentid }}" src="{{ .Site.BaseURL }}js/github-comments.js"></script>
Als nächstes brauchen wir jetzt noch die JS Datei, die für uns die ganze Arbeit macht themes/THEME_NAME/static/js/github-comments.js mit folgenden Inhalt:
// use of ajax vs getJSON for headers use to get markdown (body vs body_htmml)
// todo: pages, configure issue url, open in new window?
//
var this_js_script = $('script[src*=github-comments]');
var ghid = this_js_script.attr('data-ghid');
if (typeof ghid === "undefined" ) {
var ghid = '0';
}
DoGithubComments(ghid);
var CurrentPage = 0;
function ParseLinkHeader(link)
{
var entries = link.split(",");
var links = { };
for (var i in entries)
{
var entry = entries[i];
var link = { };
link.name = entry.match(/rel=\"([^\"]*)/)[1];
link.url = entry.match(/<([^>]*)/)[1];
link.page = entry.match(/page=(\d+).*$/)[1];
links[link.name] = link;
}
return links;
}
function DoGithubComments(comment_id, page_id)
{
var repo_name = "beli3ver/malte-kiefer.de";
if (page_id === undefined)
page_id = 1;
var api_url = "https://api.github.com/repos/" + repo_name;
var api_issue_url = api_url + "/issues/" + comment_id;
var api_comments_url = api_url + "/issues/" + comment_id + "/comments" + "?page=" + page_id;
var url = "https://github.com/beli3ver/malte-kiefer.de/issues/" + comment_id;
$(document).ready(function ()
{
$.getJSON(api_issue_url, function(data) {
NbComments = data.comments;
});
$.ajax(api_comments_url, {
headers: {Accept: "application/vnd.github.v3.html+json"},
dataType: "json",
success: function(comments, textStatus, jqXHR) {
// Add post button to first page
if (page_id == 1)
$("#gh-comments-list").append("<a href='" + url + "#new_comment_field' rel='nofollow' class='btn'>Füge eine Kommentar hinzu</a>");
// Individual comments
$.each(comments, function(i, comment) {
var date = new Date(comment.created_at);
var t = "<div id='gh-comment'>";
t += "<img src='" + comment.user.avatar_url + "' width='24px'>";
t += "<b><a href='" + comment.user.html_url + "'>" + comment.user.login + "</a></b>";
t += " posted at ";
t += "<em>" + date.toUTCString() + "</em>";
t += "<div id='gh-comment-hr'></div>";
t += comment.body_html;
t += "</div>";
$("#gh-comments-list").append(t);
});
// Setup comments button if there are more pages to display
var links = ParseLinkHeader(jqXHR.getResponseHeader("Link"));
if ("next" in links)
{
$("#gh-load-comments").attr("onclick", "DoGithubComments(" + comment_id + "," + (page_id + 1) + ");");
$("#gh-load-comments").show();
}
else
{
$("#gh-load-comments").hide();
}
},
error: function() {
$("#gh-comments-list").append("Kommentarfunktion für diesen Beitrag nicht aktiviert!");
}
});
});
}
Jetzt müssen die Links in der Datei angepasst werden. Ihr müsst eine eigne Repo anlegen bei Github und hier in der Datei anpassen.
Achtung: Wir brauchen auch jQuery!.
jQuery sollte umbedingt im <head></head>
geladen werden.
Zum Schluss noch das Template für die Beitragsdatei anpassen (themes/THEME_NAME/layouts/_default/single.html) und den folgenden Teil for dem Aufruf des <footer></footer>
Tags einfügen:
{{ partial "comments.html" . }}
Um jetzt die Kommentarfunktion zu nutzen, ein entsprechendes issue bei Github eröffnen, die ID merken. Wenn ihr dann einen neuen Beitrag erstellt, müsst ihr vor den "---" folgendes einfügen:
ghcommentid: ID
Und das wars, nun habt ihr und ich eine Kommentarfunktion.
Damit ihr diese Funktion mit CSP nutzen könnt, müssen folgende Einstellungen gesetzt sein:
img-src 'self' https://*.githubusercontent.com;
connect-src 'self' https://*.github.com
Auch wenn ich den Hype um das Apple iPad nicht nachvollziehen kann (es funktioniert gut und sieht schick aus, ist mir aber zu teuer und bevormundet einen bei der Nutzung), so finde ich das Konzept eines Tablets doch ganz reizvoll. Wichtig ist jedoch, dass man sich über den Einsatzzweck klar wird. Für mich soll es keinen Ersatz für PC/Notebook/Netbook darstellen, sondern ein Gerät sein, mit dem man gemütlich auf der Couch seine Mails checken, in Foren stöbern, Facebook Nachrichten lesen, … also hauptsächlich Daten im Internet konsumieren kann.
Für 179.-€ war nun ein Tablet mit Android 2.1 angekündigt. Die Beschaffung gestaltete sich ein wenig schwierig und dauerte etwas länger, da das Gerät nicht wie angekündigt bereits montags erhältlich war, sondern erst eine Woche später als verfügbar gelistet wurde und bestellt werden konnte. In der Zwischenzeit waren auch erste Erfahrungsberichte von Benutzern aufgetaucht. Die Bandbreite war gewohnt groß und begann bei „der letzte Schrott“. Das folgende Fazit eines Benutzers ermutigte mich jedoch dazu, mir solch ein Gerät zu bestellen:
..ich sags mal ganz unverblümt
Das Ding ist nichts für Leute die den Ipad Killer erwartet haben und davon ausgehen das alles „out of the box“ für €179.- funktioniert..Für alle anderen, die spaß an linux haben, lässt sich da sicher noch einiges machen bzw. fehlende funktionen nachrüsten.
Am Wochenende wurde das Gerät dann geliefert, die Inbetriebnahme musste jedoch bis Sonntag Abend warten.
Einloggen in das WLAN, Einrichten von Googlemail, Zugriff auf den eigenen Mailserver, Surfen im Web und die installierten Applikationen für Google Maps und YouTube funktionierten problemlos. Das Touch-Display lässt sich schwer bedienen, vor allem das Scrollen ist etwas umständlich, mit resistiver Technologie aber auch nur schwer umsetzbar, das funktioniert bei meinem Garmin-Navi aber auch nicht besonders.
Hardware
Billig wirkendes Plastik, vier Buttons auf der Gehäuserückseite für Zurück, Home, Suchen und Menü fühlen sich nicht besonders an und man muss sich die Position merken, da man sie nicht sieht.
Software
Bisheriges Fazit: Wenn man nicht tippen muss, sondern sich auf Lesen/Sehen/Hören beschränkt, funktioniert das Tablet. Für die eingeschränkte mitgelieferte Software hätte ich es wohl nicht gekauft, ABER es gibt eine Seite mit Howtos, da wird erklärt, wie man das Gerät patchen, den Market aktivieren, auf alternative Markets umsteigen oder direkt die APKs installieren kann. Und wenn das dann funktioniert, kann es ein ganz brauchbares Gerät werden.
Some weeks ago, i tried to create a windows phone 7 smugmug app(photo browser). I had some problems with oAuth at the beginning, First, I tried the google oAuth implementation in c# with the result that the first request(AcquireRequestToken) worked, but the second request(AcquireAccessToken) failed with an invalid signature. Then i tried to implement it myself with the same result.
Even with the smugmug oAuth documentation, i found it quite hard to get it done. Some parts like the authorize parameters(public/full/read/modify) i had to figure out myself.
After some time, i found an c# oAuth class written for twitter access for cropperplugins.codeplex. With this code, i was at least able to get a proper AccessToken for smugmug. I've written a little demo application if someone else has the same problems.
To get this sample working, you only have to set you apiKey and secret. This sample will do: 1. Get a request token and a request token secret 2. Authorize the request token 3. With the request token secret, acquire a access token 4. This access token and access token secret are used for all further authentication, and should not expire until the user revokes them.
private void AuthenticateSmugmug() { const string apiKey = "YOURAPIKEY";//apikey from your smugmug account const string secret = "YOUR_SECRET";//secret from your smugmug accountConsole.WriteLine("Create new instance of OAuth Manager"); Manager manager = new Manager(apiKey, secret); Console.WriteLine("Aquire a request token from smugmug"); OAuthResponse requestToken = manager.AcquireRequestToken("http://api.smugmug.com/services/oauth/getRequestToken.mg", "GET"); string oauthToken = requestToken["oauth_token"]; Console.WriteLine(string.Format("oauthToken: {0}", oauthToken)); string oauthTokenSecret = requestToken["oauth_token_secret"]; Console.WriteLine(string.Format("oauthTokenSecret: {0}", oauthTokenSecret)); //Opens your default browser and authorize your request token //Parameters: Access=[Public|Full], Permissions=[Read|Add|Modify] System.Diagnostics.Process.Start(string.Format("http://api.smugmug.com/services/oauth/authorize.mg?oauth_token={0}&Access=Full&Permissions=Modify", oauthToken)); Console.WriteLine("Please enter you credentials into the browser before continuing"); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); OAuthResponse accessToken = manager.AcquireAccessToken("http://api.smugmug.com/services/oauth/getAccessToken.mg", "GET", oauthTokenSecret); Console.WriteLine(string.Format("accessToken: {0}", accessToken["oauth_token"])); Console.WriteLine(string.Format("accessTokenSecret: {0}", accessToken["oauth_token_secret"])); Console.WriteLine("Press any key to quit the application"); Console.ReadLine(); }
This is the complete source code for the oAuth sample. It's c# written in Visual Studio 10: To get this sample working, just enter your Api Key and Secret. SmugmugOAuthSample.zip
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.
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.
An Funktechniken verwende ich:
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?
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.
Mein Plan ist, dass ich in zu allererst schaue, was ich durch Einstellungen von Geräten und durch kleine Verhaltsänderungen meinerseits machen kann.
Los gehts am 1. Juli.
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.
Wie sieht’s bei euch so aus? Schreibt’s mir in die Kommentare!
Wie ich durch eine Google-Suche erfahren musste, gibt es auf der rechtspopulistischen und in *GIDA-Kreisen beliebten Webseite pi-news.net * ein Fakeprofil mit meinem vollen Namen. Mit diesem Profil wurden und werden weiterhin zahlreiche Kommentare gepostet, von deren Inhalt, Zielrichtung und Tonalität ich mich in entschiedener Weise distanzieren möchte. Das Profil wurde selbstredend nicht durch mich […]
Mit dem heutigen Tage endet -vorerst- mein fast zweijähriges ehrenamtliches Engagement in der Leipziger Sachspendenzentrale. Es endet nicht, weil ich nicht mehr helfen möchte oder ich darin keinen Sinn mehr sehen würde, auch nicht weil es keine Hilfebedürftigen oder Sachspenden mehr gäbe. Nein, es endet, weil zum 31.07. die einzige Angestellte des Trägervereins, die sich […]
Vor nicht allzu langer Zeit habe ich die Staubsaugerroboter iRobot Roomba 780, Vorwerk Kobold VR100 und LG VR 6270 LVMB getestet. Damals konnte ich den Vorwerk VR100 bedenkenlos empfehlen, da er einfach der Beste war! Vor Kurzem hatte ich nun die Möglichkeit das neue Vorwerk Modell zu testen – den Vorwerk Kobold VR200. Der VR200 … Erfahrungsbericht – Vorwerk Kobold VR200 Saugroboter weiterlesen