Cewe Fotobuch unter Linux installieren

Problemstellung

Will man weg von Windows, bleibt einem besonders bei bestimmter Hardware oder sehr speziellen Funktionen nur noch : Geht nicht, oder vielleicht nur generisches. Bei der Software für den Cewe Fotoservice kann man es einfach online machen, oder eben auch direkt installieren.

Problemlösung

Cewe bietet hier ein Perl Installationsscript für Linux, es muss hier also nicht komplex adaptiert werden. Installiert wird es einfach im Terminal. Die ersten Schritte können auch manuell im Dateibrowser gemacht werden, aber dazu später. Hier erstmal die Lösung komplett im Terminal:

Weiterlesen

TipToy und Linux

Problemstellung

Will man weg von Windows, bleibt einem besonders bei bestimmter Hardware oder sehr speziellen Funktionen nur noch : Geht nicht, oder vielleicht nur generisches. Heute lösen wir mal das Problem mit dem TipToy Stift und dem entsprechenden TipToy Manager.

Problemlösung(en)

Bekanntlich führen mehrere Wege zum Ziel, mal mehr mal weniger komfortabel.

Parallelinstallation oder VM

Wie immer die einfachste Lösung: Entweder Windows parallel zum Linux installiert (Nachteil: Neustarten für die Nutzung) oder die Virtuelle Maschine, kurz VM. In beiden Fällen muss immer auch das Windows dahinter gepflegt werden. Macht mans nicht, baut man sich schnell ein Einfallstor für Viren und Co, da zB Sicherheitsupdates fehlen. Allerdings für selten genutzte Tools, wo die Systeme wirklich nur kurz laufen (hochfahren, abgleichen, runter fahren), vielleicht ein recht geringes Risiko.

Manuelles Downloaden unter Linux

Die einfachste Lösung direkt unter Linux: Den Stift als USB-Stick betrachten und die Dateien, die man direkt von Ravensburger herunterladen kann, einfach ins passende Unterverzeichnis schieben. Das funktioniert allerdings nur mit solchen Büchern und Co, die noch im laufenden Programm sind.

Etwas Automatisierung bitte!

Weiterlesen

Logitech MX Master und Linux

Problemstellung

Will man weg von Windows, bleibt einem besonders bei bestimmter Hardware oder sehr speziellen Funktionen nur noch : Geht nicht, oder vielleicht nur generisches. Logitech macht da von Haus aus keine Ausnahme (zumindest aktuell).

Problemlösung

Doch es gibt für Ubuntu ab 24.04 eine Lösung dafür, wenn auch ohne grafische Oberfläche: Logiops. Die Projektseite ist über https://github.com/PixlOne/logiops?tab=readme-ov-file erreichbar und bietet unter anderem ein Wiki zur Hilfe bei der Einstellung. Zugegeben nicht so komfortabel wie die Windows-App, aber später mehr.

Wie wirds nun installiert? Einfach im Terminal:

Weiterlesen

Was hast du eigentlich gegen Windows?

Diese Frage wird gerade zugegeben immer leiser, besonders in den letzten Monaten, aber gehen wir das dennoch noch einmal an. Dazu möchte ich das ganze in verschiedene Bereiche teilen:

Ideologisch

Für ein Betriebssystem bezahlen, mitunter über 100€ und dann ist das mittlerweile immer weniger einstellbar? Und dann kennt auch nur das Unternehmen den Code, kein unabhängiges Review des Codes, ständig neue Sicherheitslücken die erst spät geschlossen werden… Warum will ich mich davon abhängig machen? Zudem macht die Abschaltung/das Phase out von Windows 10 (je nach Quelle) wohl um 250 Millionen Geräte zu IT-Schrott (Canalys warnt..). Geräte, die eigentlich noch gut laufen und für die eigentliche Nutzung (meist nur surfen, mailen, Office) vollkommen ausreichend wäre.

Für viele gilt der Datenschutz auch als Ideologisch. Daher lass ich es hier mal einfließen. Denn unter Windows kann ich die Einstellungen von Haus aus nie soweit runter drehen, dass keine Berichte über User Experience an den Mutterkonzern geschickt werden. Ja, ich hinterlasse auch im Netz meine Spuren und ja, es sind angeblich anonymisierte Daten. Dennoch ist es zum einen eine Frage, wie gut anonymisiert wird (das weiß nur Microsoft) und wie man aus Daten auch Informationen zieht, zeigt David Kriesel sehr eindrucksvoll auf der 33C3.

Politisch

Es ist ein Produkt eines amerikanischen Unternehmens. Eines, dessen Gründer sich einem Präsidenten mit zweifelhaftem Ruf und sehr zwielichtigen Kontakten (Thema Epstein) regelrecht anbiedert. Ohne nun irgendeine Verschwörungsgeschichte erzählen zu wollen, aber wer weiß, was Microsoft in Windows alles eingebaut hat, Thema Killswitch oder Betriebsspionage. Zumindest nach EU-Recht dürfen so Funktionen hier nicht etabliert werden, aber wer ist nicht schon mal zu schnell gefahren? Bisher haben einige US-Konzerne nach dem „I am very sorry!“ dann doch eben so oder über ein anderes Schlupfloch weiter gemacht. Weg von Microsoft (zumindest privat, beruflich habe ich da leider wenig Mitspracherecht) heißt politisch eben auch: Mindestens ein Nutzer weniger, in Masse macht sich das irgendwann dann im Aktienwert bemerkbar.

Technisch

Wie oben schon ideologisch gesehen, aber eben auch technisch: Da wird IT-Hardware obsolete, nur weil es ein Tech-Gigant so will. Zudem braucht Linux, besonders bei den leichtgewichtigen Distributionen, deutlich weniger Ressourcen als Windows 10 und auch weniger als manch frühere Versionen. Das meiste, was der normale Nutzer braucht, gibt’s zudem auch als OpenSource, nicht selten sehr ähnlich oder gleich in der User Experience, wie Tools, die unter Windows laufen.

Seit dem Microsoft zudem angekündigt hatte, das Käufe in Spielen nicht zulassen zu wollen, wird Wine als Emulator für Windows-Programme auch immer besser (Valve:Proton 10.0.4 erschienen). Wenn man einigen Videos auf Youtube glauben darf, sind Spiele unter Linux je nach Config sogar schon flüssiger als unter Windows auf der selben Maschine.

Zudem spricht technisch einfach für den Umstieg: Je nach Distribution und Kenntnisse kann ich schnell und einfach ein Backup meiner Einstellungen und des Setups erstellen. Einige Distributionen bringen hier sogar schon so etwas wie die Timecapsule-Funktion unter Mac mit. Hab ich dann mein System zerschossen, stelle ich einfach den alten Zustand wieder her und mach’s nochmal.

Gegenfrage: Warum den auch nicht?

Linux allgemein ist schon längst nicht mehr das Betriebssystem, was umständlich installiert werden muss, nur wenige Treiber verfügbar hat, Software immer selbst kompiliert werden muss, also eher für erfahrene Nutzer war. Die Installation sollten die meisten mit den Basic Skills meistern können (Yumi starten, ISO herunterladen, vom Stick booten und Install klicken). Vieles im Netzwerk, wie der Netzwerkdrucker, wird direkt erkannt und installiert, das Look’n’Feel ist nahezu vollkommen anpassbar. Zudem kann ich Nutzer deutlich einfacher verwalten und ggf. einschränken. Bei der Installation von neuer Software muss man aktiv zustimmen, was einige *.jpg.exe Fallen unbrauchbar machen.

Ja, es gibt auch für Linux ein paar wenige Viren, allerdings sind viele Mechanismen, die in Windows zu einem so hohen Befall führen, unter Linux oder besser bei Unix-Systemen allgemein (damit auch MacOS) nicht existent oder nicht einfach ausnutzbar.

Einwahldaten Telekom sniffen

Problemstellung

Es sollte ein Router getauscht werden, allerdings lagen die Daten nicht mehr vor. Die beim Provider angefragten Daten waren nicht rechtzeitig per Post gekommen, also musste eine Lösung her. Im Grunde gab es zwei Ansätze:

  • Nochmal bei der Hotline anrufen, AnschlussinhaberIn dabei zur Identifizierung und das fehlende Puzzlestück erfragen. Je nach Provider immer etwas sehr lästig (teilweise mit Wartezeiten, weil das nur neu zugeschickt wird, keine Auskunft am Telefon etc.)
  • Im Netz kursierte zu den älteren Speedports eine Anleitung, wie sich die Daten auch im Paketmitschnitt auslesen ließen

Problemlösung

Ich drücke mich persönlich gerne um jeden Anruf (besonders bei Hotlines), den ich anders lösen könnte -> Option 2 probieren. Auf Chip.de steht beschrieben, wie dies geht. Hier meine etwas abgewandelte Variante:

  • Einloggen via http://<routerIP>
  • Internetverbindung trennen
  • auf http://<routerIP>/html/capture.html den Mitschnitt auf dem WAN-Port oder Internet-Anschluss starten
  • Internetverbindung wieder aufbauen und den Mitschnitt kurz drauf wieder stoppen
  • Die Datei in Wireshark öffnen (portable Version reicht)
  • Nach „Authenticate-Request“ oder „Authenticate Request“ suchen

In einem der Protokolle findet man dann unter den Daten:

  • Peer-ID-Length : 40
  • Peer-ID : <Verbindungs ID><AnschlussNr><Teilnehmer>@t-online.de
  • Password-Length: 8
  • Password: <persönliches Passwort>

Schaut man sich die weiteren Pakete dann auch noch an, so bekommt man auch noch die Telefonnummern etc., alles in Klartext mit. Der Rest ist dann recht einfach: Für den Speedport kam nun eine Fritzbox -> Daten dort rein, Telefonnummern angeben, Anschlüsse den Nummern zuordnen, fertig.

Es ist erschreckend, dass so manch ein Router noch Klartext Einwahldaten verschickt und man sich anscheinend nicht die Mühe gemacht hat, irgendetwas zu verschlüsseln.

Kick not used RAW-Files

Problemstellung

Ich Photographiere nebenbei mit einer Spiegelreflex und lasse mir dabei immer JPG’s in einer überschaubaren Qualli, aber auch die RAW’s auf die Karte schreiben. Das hat den Vorteil, dass ich schon mal schnell die ersten Bilder rausgeben kann, aber für hochauflösende, nachbearbeitete Bilder noch das RAW habe. Allerdings kommt nun auch der große Nachteil: Bei mal schnell einigen hundert Bildern muss ich diese auch aussortieren. Dabei lösche ich die JPG’s raus, die ich nicht brauche (meist zwei bis drei loops, bis ich dann nur noch die wenigen schönen Bilder habe) und gehe dann nochmal durch und lösche die entsprechenden RAW’s. Der zweite Schritt kostet Zeit und ist manuell auch fehleranfällig.

Problemlösung

Das das nicht sein muss, zeige ich nun hier: Es soll ein einfaches Script werden, welchem man n Ordner übergeben kann, in denen dann:

  • Wechsel in den Unterordner
  • Ein „alt“-Ordner angelegt wird, wenn nicht schon vorhanden
  • Für jeden RAW-File ein JPG gesucht wird
  • Jedes RAW, was kein gleichnamiges JPG wird in den „alt“-Ordner verschoben
  • Das ganze auch nochmal Rückwärts: Alle JPG’s ohne RAW (wurde vlt. aus versehen gelöscht) sollen aufgelistet werden

Also Step by Step: Zuerstmal die Übergabe von Parametern innerhalb des Aufrufes mit einem Loop über alle übergebenen Ordner. Beim Aufruf wird dabei mit bash Scriptname Ordner1/ Ordner2/ … Ordnern/ alle zu bereinigenden Ordner übergeben. Wichtig! Bei dieser Lösung MUSS das „/“ den Pfad/Ordner abschließen!

Weiterlesen

Schemata (erzwungen) laden

Problemstellung

Regelmäßig wird nach der Projektbearbeitung vergessen auch noch die Fertigungsdaten oder Stücklisten neu auszuschreiben, oder es wird als „nerviges Übel“ empfunden und nur ungern gemacht. Manchmal gibt es auch Updates des Exportschemata und das Add-On zur Verteilung von Einstellungen etc. ist noch nicht bekannt oder wird schlicht nicht genutzt.

Problemlösung

Der Import des Schemata wurde schon behandelt, nun geht es an den Export. Über Label lassen sich alle Art von Fertigungsunterlagen und Listen ausschreiben, sofern diese nur vorher mal als Schemata angelegt wurden:

Weiterlesen

Script dynamisch nachladen

Problemstellung

Vielleicht schon bekanntes Problem: Es lassen Klassen bei EPlan nicht auf verschiedene C#-Dateien aufteilen und EPlan lädt dann einfach munter beim ersten Benutzen der Klasse die passende Datei nach. So bin ich es zumindest schon früher in ANSI C, C#, Java und anderen Sprachen gewohnt. Meist muss man eine gewisse Konvention beim Dateinamen berücksichtigen, aber dann kann man sich munter austoben.

Problemlösung

Dafür kann man das hinten herum mit etwas Selbstmanagement auch hin bekommen, mit RegisterScript und Rückwärts auch mit UnregisterScript. Ich habe mir da noch eine Extramethode gegönnt um nur mit der Angabe des Scripts einfach dieses Still zu laden. Dann wird der Nutzer nicht mit der Meldung behelligt, die beim Laden eines Scriptes kommt. Kann es nicht geladen werden, passiert halt nichts, oder schon aufgebaute Menüs bleiben eben ausgegraut.

Weiterlesen

Projektsprachen per Script manipulieren

Problemstellung

Der Export von PDFs wurde schon hier: pdfs-exportieren erklärt, nun soll aber nicht nur die deutschsprachige PDF erzeugt werden, sondern auch die englische oder sonst eine andere? Das Wörterbuch ist korrekt vervollständigt? Und das sollte auch nicht manuell umgestellt werden müssen..

Problemlösung

Man muss dazu zwischen Display-Sprache und Variable-Sprache unterscheiden. Beim ersten sind alle einsprachigen Texte gemeint, beim zweiten ließen sich auch mehrere Sprachen nacheinander definieren. Genutzt wird in jedem Fall die Funktion SetProjectLanguage, die die drei Parameter aufweist.

Weiterlesen

Mal eben nen Backup vom Projekt in zwei klicks

Problemstellung

Während der Projektbearbeitung möchte man grundlegende, strukturelle Änderungen machen, aber das Projekt nicht ggf. riskieren. Oder es geht auf die Baustelle und das komplette Projekt soll mit, damit Änderungen direkt umgesetzt werden können. Beides Beispiele für die Action backup. Das eine als einfache Sicherung, das andere als Backup zur externen Bearbeitung.

Problemlösung

Nehmen wir erst einmal nur den ersten Fall an: Das Projekt soll zur Sicherheit des Standes eben gesichert werden. Man könnte nun das komplette Projekt über den Kopierdialog als vollwertiges Projekt wegspeichern. Oder über fast den gleichen Weg das Projekt sichern. Beides über ein bisschen Navigation durch die Menüs möglich und bei beiden ist die Versuchung groß es einfach zu unterlassen. Deswegen meine Devise: Mach so etwas so schlicht und einfach, dass es entweder im Hintergrund geschieht oder es mit Minimalaufwand umsetzbar ist.

Weiterlesen

Mehr als nur eine DynDNS-Adresse?

Problemstellung

Das Netzwerk soll von außen erreichbar sein, aber aus Gründen, nicht nur über eine Subdomain. Das könnte zB. dann der Fall sein, wenn man privat einige Seiten hosten möchte. Oder wenn nach einer Umstellung nicht gleich alle alten Installationen abgehangen werden dürfen.

Das eigentliche Problem ist dabei meist die beschränkte Einstellmöglichkeit des Routers. Zwar ließe sich theoretisch auch bei der Fritzbox mit einer Manipulation des Configfiles noch etwas mehr raus holen, doch ist das auch Updatesicher? Nicht nur das es ein Update überlebt, sondern sich dann auch noch editieren lässt… Zu viel Unsicherheit für einen Service, der ggf. dann ausfällt, wenn man ihn gerade dringend braucht, oder am wenigstens dran kommt ums zu fixen (meist eher zum Urlaubsbeginn als wenn man eh gerade dran arbeitet).

Problemlösung

Das ganze habe ich bei mir über ein Docker mit dem Image qmcgaw/ddns-updater gelöst:

  • Image auf die SD-Karte (Raspberry Pi Imager, etwas ohne Desktop)
  • Raspberry Pi damit hochfahren (reicht schon ab 2B)
  • Folgendes Script ablegen und ausführen:
Weiterlesen

Surfen mit Spamblock und privater

Mit dem Thema werde ich keine überragende Neuigkeiten vermitteln. Es geht immerhin um das Projekt Pi-Hole, was bei den meisten bekannt sein dürfte. An dieser Stelle hilft eigentlich schon die Installationsanleitung auf der Projektseite weiter und alles ist gut. Ja und nein, denn hier soll es auch etwas um die Hardware gehen.

Ein DNwas?

Kurz zur Klärung: Was macht ein DNS? Ein DNS (Domain Name Server) wandelt eine Adresse im Netzwerk(die wir Menschen uns am besten merken können) in die (aktuell gültige) IP-Adresse (quasi die Telefonnummer des Zielrechners, mit dem ein PC besser arbeiten kann) um. Kleines Beispiel: Die Domain google.de wird im Hintergrund in die IP 142.250.181.195 aufgelöst.

Was macht nun der PiHole so tolles? Zum einen geht nicht jede Anfrage an einen externen Server -> nur über den DNS-Server lässt sich dann schlechter tracken, was sich gerade wer ansieht. Zum anderen kann man PiHole mit sog. Blocklisten füttern, quasi schwarze Listen von Webadressen, die für Spam bekannt sind, mal korrumpiert wurden, oder anderweitig aufgefallen sind. Zudem kann man auch den Zugriff von (einzelnen) Geräten im Netzwerk nach draußen einschränken. Aus persönlicher Erfahrung: Kann hilfreich sein, zB. bei billigen Soundbars etc. die ständig nach China telefonieren wollen.

Weiterlesen

Dateien mit Messdaten zu groß

Problemstellung

Je größer die Datei mit den Daten, desto länger braucht sie auch zum laden. Zerlegt man diese in mehrere, kleinere Fragmente, wächst mitunter die Datenmenge (die referenzierende Größe, meistens ein Timestamp, muss ja in jeder Datei vorhanden sein). Unterm Strich sind die einzelnen Dateien schneller geladen, da nicht immer die kompletten Messdaten geladen werden, sondern nur die, die gerade verarbeitet werden sollen. Doch wie zerlegt man „mal eben“ so eine Tabelle?

Problemlösung

In Excel? Wäre möglich, doch birgt das immer die Gefahr, dass man in Excel beim bearbeiten mit etwas Pech auch die Daten manipuliert (Thema Formatierung). Besser wäre da die Trennung der Daten so RAW wie möglich: Also direkt in txt-Form. Gehen wir mal davon aus, dass diese Daten im CSV-Format wie:

Time;Value1;Value2;Value3;Value4;Value5;...;ValueN
xxxx.xx.xx xx:xx:xx.xxx;0.000;0.000;0.000;0.000;0.000;...;0.000

vorliegen. Am Ende sollen mehrere Dateien entstehen, in denen immer die logischen Gruppen von Messwerten zusammen gefasst werden (zB. alle Spannungen, alle Ströme, alle Temperaturen, oder jeweils die Prüflinge mit allen Kenndaten).

Weiterlesen

Farbnamen aus dem RAL-Code ermitteln

Problemstellung

Wie war denn noch der Name für RAL3000? Oh, auch noch den englischen? Kurz in der Tabelle gesucht, oder auf Seiten wie ral-farben.de geschaut: Feuerrot / Flame red. Ok, aber das für jedes Projekt? Die gebräuchlichsten sind schnell im Kopf oder auf dem Spicker und der englische Farbname lässt sich ja in der Übersetzungsdatenbank ablegen. Aber das muss doch einfacher gehen, oder?

Problemlösung

Ok, die Frage ist hier schon etwas plakativ. Daher einfach kurz zur möglichen Ausgangslage: Im Projekt sind zB. die benutzerdefinierten Felder 90/91 für den RAL-Code und den Farbnamen der Schaltschränke, die Felder 92/93 entsprechend für die Klemmkästen. Erstmal angenommen, alle Felder sind Multilang, es kommt also ein ??_??@.. beim auslesen zurück. Daher kommt einfach die Lösung aus Multilang-Strings einfach auslesen zum Einsatz. Das Auslesen an sich ist recht einfach (Ähnlich zu Erstelldatum in Seiten manipulieren, nur über XEsGetProjectPropertyAction), wie auch das neu einschreiben (XEsSetProjectPropertyAction). Fehlt nur noch eine Liste, gegen die geprüft und aus der dann die Daten gezogen werden. Da bieten sich zwei Typen gut an:

Weiterlesen

Erstelldatum in Seiten manipulieren

Problemstellung

Erstmal: Warum sollte man das machen wollen? Nunja: Im Basisprojekt sind gewisse Seiten schon vorab erstellt worden. Wird das Basisprojekt kopiert, wird auch das Erstellungsdatum der Seiten (egal ob nun vollkommen leer als Vorlage, oder gefüllt als Legende etc.) mit kopiert. Damit ergibt sich zwangsweise ein älteres Datum in den Seiten als im Projekt selbst. Das sieht etwas uncool aus, oder bringt nur sehr viele Fragen mit sich (besonders in gewissen Kundenkreisen). Und dann ist das nicht einfach nur eine Zeichenfolge, sondern ein Zahlenwert..

Problemlösung

Das Schreiben von Seiteneigenschaften mit XEsSetPagePropertyAction hatte ich ja schon beschrieben, nun muss nur noch geklärt werden, was geschrieben werden soll. Der Zahlenwert sind die Sekunden, die seit dem 1.1.1970 vergangen sind, in Unix die Sekunde 0. Es lässt sich auch einfach selbst heraus finden: Nach dem Anpassen eines Formulars einfach mal in das passende Feld für den Timestamp der letzten Änderung schauen!

Weiterlesen