Ich habe eine längere Liste an Newsfeeds, die ich von Zeit zu Zeit konsumiere. Allerdings fehlt mir schon länger die „Applikation“, die Plattform-übergreifend funktioniert (Linux, Android, Windows aktuell). Nach ein wenig Recherche habe ich mich für eine Web-basierte Lösung entschieden: FreshRSS bzw. https://github.com/FreshRSS/FreshRSS
PHP, MySQL, … als Anforderungen lassen es auch auf den meisten Webspaces laufen.
Was kann es?
Verschiedene RSS-Formate
Verwalten von Kategorien, Labels, Favoriten, …
Multi-User-Management
…
Die Installation ging schnell von der Hand, entweder per Docker oder gleich am Webspace, die Konfiguration ebenso. I like. 🙂
Eine meiner eher partiell schlauen Entscheidungen war annodazumal ein Netgear Readynas Ultra 2, aka RDNU2120, zu beschaffen. Gedacht war es als NAS mit zusätzlicher Backup- und Media-Streaming-Aufgabe, also genau, was es (damals) konnte. Die Nutzungsrealität sah anders aus:
In der damaligen Wohnung gab es keinen Platz, wo das kleine Kastl nicht irgendwie störte (optisch, akustisch).
Der familiäre Media-Streaming-Konsum damals wie heute überschaubar geblieben ist.
24/7 laufen lassen nur Strom verbraucht hätte, da außer Leerlauf kaum Betrieb zu erwarten war.
Außer den gelegentlichen Systemupdates wurden in unregelmäßigen Abständen Backups von unseren Endgeräten gezogen.
Bis es immer öfter im Schrank blieb.
Dabei ist es ein für damalige Verhältnisse potentes Gerät für viele Aufgaben, die im Heimbereich anfallen:
Intel Atom Single Core Prozessor mit 1,8 GHz Taktfrequenz
1 GB DDR3-RAM
2x 1 Gb Ethernet
3x USB
2x 3,5″ HDD-Schnellwechselschächte
Und mit dem vorinstallierten Readynas-OS ein Debian-Abwandlung als Betriebsystem
Vor kurzem habe ich es wieder aus dem Schrank geholt, wegen Backups ziehen warat’s und außerdem suche ich ein Poster aus einer Posterpräsentation aus dem Jahr 2009, das ich nirgends mehr finden kann.
Long story short: Das Poster konnte ich (noch) nicht finden und beim Einbinden des Readynas wurde es holprig.
Nach dem erfolgreichen Boot-Prozess und Abholens einer TCP/IP-Adresse beim DHCP-Servers zeigte sich mangels Unterstützung einer aktuellen TLS-Version ein Drama in mehreren Akten. Der in Nautilus/Files integrierte Samba/CIFS-Client war not amused die Shares einzubinden, mein Webbrowser wollte nicht mit dem Admin-Panel kommunizieren. Bei letzterem verständlich, TLS 1.0 ist seit einiger Zeit abgekündigt und das aus gutem Grund.
Workaround Admin-Panel
In Firefox kann unter
about:config
in die Innereien des Browsers eingegriffen werden. Unter anderem kann hier1 auch die minimale TLS-Version vorgegeben werden. Dafür gibt man in der Suchmaske folgendes ein:
security.tls.version.min
Per Default ist hier 3 als Wert eingetragen, was TLS-Version 1.2 oder höher entspricht. Im Fall von diesem Readynas musste ich TLS-Version 1.0 freischalten:
Wert in about:config
TLS-Version
3
TLS-Version 1.2 oder höher
2
TLS-Version 1.1 oder höher
1
TLS-Version 1.0 oder höher
Zulässige Werte und deren Bedeutung für security.tls.version.min
Es ist keine gute Idee, dauerhaft auf eine nicht mehr unterstützte und vor allem unsichere TLS-Implementierung zurückzugreifen.
Mit dieser Anpassung gelang der Zugriff auf das Admin-Panel wieder.
Workaround Nautilus/Files
Ursache war hier, dass sich das Readynas nur auf SMB-Version 1.0 versteht, aber die Welt von Version 2 oder höher mittlerweile ausgeht.
[Quick Fix #1] WebDAV aktivieren
Im Admin-Panel aktivierte ich zusätzlich den Zugriff auf die Shares via WebDAV, womit der Zugriff in Nautilus/Files wieder funktionierte. Damit konnte ich wieder durch die Verzeichnisse navigieren.
[Quick Fix #2] Mount via Terminal
Mit den cifs-utils kann ein Share direkt im Terminal eingebunden werden:
~$ sudo mount -t cifs -o user=username,vers=1.0 //192.168.x.y/xyz /mnt/rn
Wie geht es weiter?
Die beiden Workarounds sind natürlich keine Dauerlösung. TLS wurde aus gutem Grund verbessert und WebDAV ist als Protokoll sicher ok um die wichtigsten Daten vom Readynas zu sichern, aber aus meiner Sicht ist es nicht das Protokoll für das dauerhafte Bewegen großer Datenmengen. Die Limitierung auf SMB-Version 1.0 kann mit entsprechendem Scripting bzw. Automount umgangen werden, somit ist dieser Punkt entschärft.
Readynas-OS ist EOL und für mein deutlich älteres Readynas gibt es seit vielen Monden keine Updates mehr, d.h., die Hoffnung auf eine offiziell aktualisierte TLS-Version ist nicht gegeben. Beim Blick in das Gerät zeigte sich aber ein sehr guter Zustand, zum Wegwerfen zu schade. Folgende Ansätze stehen zur Diskussion:
Die Anforderungen ans hauseigene WLAN steigen, also war es wieder an der Zeit nachzuschauen, was mit der bestehenden Infrastruktur (noch) möglich ist. Folgende Ansatzpunkte hatte ich vorab identifiziert:
Festhalten des Status Quo
Optimieren des WiFi-Channels
Festlegen der relevanten IEEE 802.11-Standards
Hinzufügen des 5 GHz-Frequenzbandes
Kontrollieren der Sicherheitsmechanismen
Da ich gerne mit dem arbeite, was schon da ist, bevor etwas Neues bei der Tür hereinkommt und motiviert durch einen Bekannten, der ein ähnliches Problem hat, findet sich hier eine kurze Mitschrift zum Vorgehen und der Erkenntnisse unterwegs.
Festhalten des Status Quo
Der WLAN-Router kommt von meinem ISP und gestattet erstaunlich viele Einstellmöglichkeiten im Admin-Panel. In den letzten Monaten hatte ich das „Gefühl“, dass der Datendurchsatz durch den WLAN-Router begrenzt ist. Mehr Endgeräte tummeln sich im Netz und einige datenintensiven Dienste werden konsumiert, sodass sich parallel stattfindende, beruflich bedingte Video-/Online-Konferenzen des Öfteren gestört fühlten. Hier ein paar Eckpunkte:
OEM-WLAN-Router vom ISP
IEEE 802.11b/g/n auf 2,4 GHz inkl. Channel-Optimierung konfiguriert
Keine Repeater installiert
Alle Endgeräte sind zumindest IEEE 802.11n-fähig.
Mehrparteiengebäude in der Stadt
Optimieren des WiFi-Channels
In den letzten Jahren gingen mehr und mehr WLAN im Umfeld online. Der erste Verdacht lag auf der Überbelegung des WiFi-Channels. Der vorliegende Router gibt vor eine Kanaloptimierung zu beherrschen , welche auch aktiviert war.
Sichtlich machte die Kanaloptimierung nicht all zu viel, weil der vor Jahren ermittelte Kanal 11 war noch immer ausgewählt, aber heillos überfrachtet. Da mein ISP mehrere Parteien in unserem Haus ausstattet, ist der Kanal 11 wohl der Default und somit in meinem Fall ein faulty default.
Um zu ermitteln, welche WLAN in der Nähe sind und auf welchen Kanälen sie funken, habe ich auf nmcli, das Command-Line-Interface von NetworkManager, zurückgegriffen. Der folgende Aufruf (in Anlehnung an user278801) hat mir die Grunddaten für die WLAN-Analyse geliefert:
~$ watch "nmcli -f "CHAN,BARS,SIGNAL,SSID,MODE,RATE,SECURITY,IN-USE" d wifi list | sort -n"
Das Ergebnis im Terminal:
Um ein möglichst gutes Gesamtbild zu bekommen, habe ich diese Analyse in allen Zimmern durchgeführt. Bei der Auswahl des neuen Kanals wählte ich unter Berücksichtigung dieser Quelle den Kanal 9 für das 2,4 GHz-WLAN.
Festlegen der relevanten IEEE 802.11-Standards
Der WLAN-Router wurde im Jahr 2018 eingerichtet. Damals gab es noch Überlegungen, Geräte mit dem schon damals veralteten Standard IEEE 802.11g einzubinden. Dementsprechend wurde die Kompatibilitätseinstellung für den Mischbetrieb nach IEEE 802.11b/g/n gewählt. Mittlerweile unterstützt jedes Endgerät in unserem Haushalt zumindest IEEE 802.11n, was somit auch die neue Festlegung geworden ist.
Hinzufügen des 5 GHz-Frequenzbandes
Ähnlich war es damals mit des 5 GHz-Frequenzbandes. 2018 konnten nicht alle Endgeräte davon profitieren, die Performance im 2,4 GHz-Frequenzband ausreichend. Auch dieses wurde aktiviert, womit nun die meisten Endgeräte selbst entscheiden, in welchem Frequenzband sie bessere Bedingungen vorfinden.
Kontrollieren der Sicherheitsmechanismen
Auch hier gab es eine Veränderung: Alle unsere Endgeräte unterstützen zumindest WPA2, das unsichere WPA ist nicht mehr notwendig und WPA3 wird vom WLAN-Router nicht unterstützt. Somit wurde WPA2-only als Verschlüsselungsmechanismus gesetzt.
Erkenntnisse aus der Aktivität
Linux-Distros bringen immer alles mit, was man so braucht. 😉
nmcli tut das Notwendige, wenn man tiefer in die WLAN-Analyse einsteigen möchte, gibt es spezielle Tools wie sparrow-wifi, kismet, …
Die Performance und Stabilität des eigenen WLAN ist deutlich besser geworden und das ohne neue oder zusätzliche Hardware angeschafft haben zu müssen.
Update, 2024-07-16: BSSID
Eines der Geräte hat Probleme sich mit dem 5 GHz-WLAN zu verbinden und bringt wiederholt die Aufforderung zur Passworteingabe ohne einen Anmeldeerfolg zu verbuchen. Ich vermute einen Hardware- oder Firmware-Defekt rund um das WiFi-Modul. Um dem Gerät den Versuch des ständigen Wechselns zum stärkeren Netzes auszutreiben habe ich in den WLAN-Einstellungen die BSSID fix vorgegeben.
Ermitteln kann man die BSSID z.B. mit nmcli durch Hinzufügen des gleichnamigen Parameters:
Ein älterer PC steht seit ein paar Wochen herum und dient als kurzweilige Spielwiese für verschiedene Linux-Distributionen, u.a. Debian Buster, AV Linux (aka MX Linux Respin) oder jetzt gerade eben Fedora SOAS (Sugar on a Stick).
Praktischerweise reicht ein USB-Stick als Träger für die jeweilige Live-Session und als Installationsmedium. Und damit ich es nicht vergesse: dd unterstützt eine Fortschrittsanzeige, wenn ich eine Live-ISO wieder auf den USB-Stick spielen möchte…
Wieder einmal etwas aus der Kategorie „brauch ich ganz selten“: Log Files werden, seit systemd bei vielen Linux-Distributionen Einzug gehalten hat, durch das Service systemd-journald zentral verwaltet. Mit der Zeit werden gewinnen die Log Files an Größe, das lässt sich aber ganz einfach managen.
Die Log Files werden je nach Konfiguration persistent unter /var/log/journal/MACHINE-ID/ oder in-memory unter /run/log/journal/MACHINE-ID/ abgelegt. Im zweiten Fall löst der Reboot die Speicherfrage, im ersten darf/muss man selbst Hand anlegen.
--disk-usage gibt Auskunft über den verbrauchten Speicherplatz der aktiven und archivierten Log Files.
--rotate wandelt aktive Log Files in archivierte um.
--vacuum-time=4months entfernt alle Log-Einträge, die älter als vier Monate sind. Das geht auch Wochen (4weeks), Stunden (4h), Minuten (4m) und Sekunden (4s)…
--vacuum-size=256M entfernt alle älteren Log-Einträge, bis die Log Files 256Mb haben (K, M, G, T sind die möglichen Größeneinheiten).
--vacuum-time und --vacuum-size können auch gemeinsam in einem Aufruf verwendet werden, auch in Kombination mit --rotate (seit systemd 240): journalctl --rotate --vacuum-time=4months --vacuum-size=256M
Ich programmiere zur Zeit eher selten und VCS nutze ich noch seltener. Lange Zeit war SVN meine erste Wahl, heute ist es git. Aber seltene Nutzung bedeutet auch rasches Vergessen, deshalb hier mein persönliches Cheatsheet für git:
Befehl
Erklärung
git init
Ein leeres Git-Repository erstellen oder ein bestehendes neuinitialisieren
git clone „https://server.com/sourcerepository“
Ein Repository in einem neuen Verzeichnis klonen
git config –global user.email „useremail“
Festlegung der E-Mail-Adresse (ohne „–global“ erfolgt das nur für dieses Repository)
git config –global user.name „username“
Festlegung des Usernamens (ohne „–global“ erfolgt das nur für dieses Repository)
git add „filename“
Dateiinhalte zum Commit vormerken
git commit
Änderungen in das Repository eintragen
git push
Remote-Referenzen mitsamt den verbundenen Objekten aktualisieren
git pull
Objekte von einem externen Repository anfordern und sie mit einem anderen Repository oder einem lokalen Branch zusammenführen
Ich bekam heute ein kurzes Video geschickt, wo ein lädierter Baum Stück für Stück gekürzt wurde. An sich nichts Ungewöhnliches, aber in mir reifte nach kurzer Zeit der Wunsch den Baum zumindest digital wieder zusammenzusetzen und somit das Video umzukehren.
Der einfachste Weg war ffmpeg auf meinem Rechner zu installieren, ein sudo apt install ffmpeg im Terminal und keine 60 Sekunden später konnte ich die folgende Zeile eingeben:
Da das tonlose Original lediglich um die 10 Sekunden lang ist und das Ausgangsmaterial keine besondere Qualität besitzt, lässt der Aufruf jegliche Optimierungen vermissen, denn da kann ffmpeg in Punkto Video- und Audiostreams so einiges.
Der Baum steht wieder. 😉
Anmerkung: ffmpeg gibt es für viele Plattformen, also auch für Windows und MacOS als Download erhältlich.
Ich habe immer wieder die Aufgabe Tätigkeiten in Excel zu automatisieren, aber eben nur alle ewigen Zeiten. Manche Makros benötige ich öfters, wobei zwischen zwei Malen auch wieder einige Zeit vergeht.
Generell ist jeder Code-Schnipsel vor seiner Nutzung auf den jeweiligen Anwendungsfall anzupassen, z.B. columns, range, etc.
Diesen Blog-Eintrag werde ich von Zeit zu Zeit mit weiteren Code-Schnipseln ergänzen.
Last update: 2019-12-22
Verbundene Zellen auflösen
Sub VerbundeneZellenAufloesen()
Dim c As Range
For Each c In Intersect(Columns("A:B"), ActiveSheet.UsedRange)
If c.MergeCells Then
With c.MergeArea
.UnMerge
.Value = c.Value
End With
End If
Next c
End Sub
Checkboxen in Zellen hinzufügen
Sub AddCheckbox()
Dim i
For i = 18 To 200 'cells from 18 to 200
ActiveSheet.CheckBoxes.Add(Cells(i, "I").Left, Cells(i, "I").Top, 72, 17.25).Select
With Selection
.Caption = ""
.Value = xlOff '
.LinkedCell = "J" & i
.Display3DShading = False
End With
Next
End Sub