[ENC]BladeXP's Blog

Was die Welt nicht alles braucht!

Einträge in der Kategorie „Software”

Aus .cue und .bin ein .iso machen…

geschrieben von encbladexp am 29.01.2012 18:12:00.

Da ich aktuell einige alte Spiele für ScummVM aufbereite, bin ich natürlich über diverse Spiele gestolpert die nicht als normales ISO9660 vorliegen, sondern in einem Format das aus 2 Dateien besteht:

  • .cue, eine Textdatei welche wohl die Tracks einer CD beschreibt.
  • .bin, einer Binärdatei welche nichts enthält was nach ISO9660 aussieht.

Der große Bruder Google hat mich dann darauf gebracht das dies wohl ein Format ist welches das ein oder andere Brennprogramm als Image hinterlässt, ich selbst musste mich damit bisher noch nie beschäftigen.

Natürlich hat Google auch verraten wie man aus diesen beiden Dateien ein ISO Image erstellen kann:

bchunk -v dateiname.bin dateiname.cue dateiname.iso
Das Programm bchunk ist übrigens in wohl jeder Linux Distribution enthalten, in meinem Fall (Arch Linux) war es aber nicht installiert.

Das fertige ISO kann man genauso verwenden wie alle anderen ISO Images die man auf dem Rechner hat, aber im Jahr 2012 dürften die wenigsten Anwender noch eine CD verschwenden ;-)

KNX Plugins

geschrieben von encbladexp am 13.01.2012 22:00:00.

Heute wird ja auch im privaten Wohnungsbau zunehmend mit der sog. Gebäudeautomatisierung gearbeitet, man baut also keine dummen Geräte mehr ein, sondern Geräte die eine gewisse Intelligenz haben, also Geräte welche neue Funktionen nur durch eine Änderung der jeweiligen Software ermöglichen.

Das ganze hat im Zweckbau den Sinn das man mit möglichst wenig Aufwand etwas verändern kann, früher hat man für eine Treppenhausschaltung in der Elektroverteilung etwas ändern müssen, heute stellt man in einem sog. Aktor (vereinfacht gesagt ein programmierbares Relais) einfach den entsprechenden Parameter um.

Im privaten Wohnungsbau werden mit dieser Technik bevorzugt Komfortlösungen realisiert, z.B. ein Zentral-Aus Schalter neben der Ausgangstür, oder die Wetter- und Jahreszeitabhängige künstliche Beschattung von Gebäuden um Energie zu sparen.

Nehmen wir einfach mal an ein Bauherr entscheidet sich 2010 sein Gebäude mit derartiger Technik auszurüsten, er bekommt viele tolle Geräte rein und alles wird miteinander verknüpft:

  • Die Waschmaschine erkennt ob sie beladen wurden, und startet Nachts automatisch den Waschgang.
  • Im Sommer werden Tagsüber die Rolladen automatisch gesenkt um eine unnötige Aufheizung des Gebäudes zu vermeiden, im Winter wird automatisch die Rollade aufgefahren um die Wärme der Sonne zur Unterstützung der Heizung zu nutzen.
  • Jeder Raum hat einen Raumtemperaturregler welcher verschiedene Temperaturen in Abhängigkeit von Benutzerspezifischen Parametern ansteuert, auch dies dient dem Komfort vor allem aber dem Sparen von (teurer) Energie.
Das ganze funktioniert auch, der Bauherr ist zufrieden, er spart Energie und die Frau hat Funktionen die in der alten Mietwohnung nicht vorhanden waren.

2020 hat die Familie Nachwuchs bekommen, die Tochter hat durch eine Verkettung mehr oder weniger gewollter Umstände ein Kind bekommen, der Freund der Tochter möchte auch mit ins Haus... Es verändert sich alles, die Räume werden anders genutzt, das ganze Haus muss jetzt auch Kleinkindertauglich gemacht werden usw...

Da man ja EIB / KNX im Haus hat ist dies alles kein Problem, ein Anruf bei der zuständiges Elektrofachkraft und schon kommt eine nette Person vorbei welche für Geld die gewünschten Änderungen an der Steuerung vornimmt. Doch damit fangen die Probleme der tollen Lösung an: Viele der modernen Geräte aus 2010 haben sog. Plugins benötigt, welche in die Programmiersoftware ETS eingebunden werden und auch sonst recht viel Sachen im Betriebssystem installieren. Die alte Steuerung wurde auch 2010 noch mit Windows XP programmiert, der Anbieter der Hardware hat ja versprochen das er auch für alte Produkte ein Update auf Windows 7 64-Bit und ETS4 (statt 3) anbieten wird.

Im Jahr 2020 hat aber (hoffentlich) niemand mehr Windows XP 32-Bit im Einsatz, noch dazu benötigen die alten Plugins zwingend das Microsoft .Net Framework 1.1 für welches es schon seit 2013 keinen Support mehr gibt, und welches sich auf dem neuen Notebook mit Windows 10 64-Bit nicht mehr installieren lässt.

Hat man nur 1-2 derartige Geräte die Plugins benötigen kann man die gegen einen gewissen Geldbetrag noch austauschen, hat man aber Geräte von z.b. Busch & Jäger gekauft welche sogar für viele Lichtschalter schon diese tollen Plugins benötigen kann man mal eben die komplette Installation austauschen, das gute: Die Kabel können so liegen bleiben und auch passive Komponenten wie Spannungsversorgung, Linienkoppler und Programmierschnittstelle können weiter genutzt werden.

Ich persönlich mache derartige Steuerungen / Lösungen nur für den Zweckbau, da ist es nicht so extrem Schlimm wenn ich nach 10 Jahren ~5 Touchpanels a 1500€ austauschen muss weil diese derartige Plugins benötigen. Im Zweckbau erschlage ich auch 90% meiner Anforderungen mit Hardware für die ich keine Plugins brauche, aber im privaten Wohnungsbau dürfte das Gespräch zwischen Bauherr und Elektrofachkraft ähnlich Emotional werden wie eine Diskussion über das Bedingungslose Grundeinkommen.

Daher folgender Richtwert: Vermeide Geräte in der Gebäudeautomatisierung mit EIB / KNX wenn diese Plugins brauchen, und es Alternativen gibt welche die gleichen Anforderungen erfüllen können, das sorgt zum einen für mehr Druck bei den Herstellern die derartigen Müll an Kunden verkaufen möchten, und spart einem im besten Fall in 10 Jahren viel Erklärungsarbeit bei einem Kunden der dafür einfach kein Verständnis hat ;-)

Zusätzlich Gerät, je mehr von einem bestimmten Gerät man verbaut, desto weniger Interesse hat man daran das man für dieses Gerät Plugins braucht!

Shared Pacman Cache aufräumen lassen

geschrieben von encbladexp am 23.12.2011 14:02:00.

Gerade wenn man etwas mehr Rechner in seinem kleinem (oder auch großem) Netz hat, ist ein Cache für Paketdaten sehr sinnvoll. Es ist nicht zielführend jedes Paket für jeden Rechner immer und immer wieder aus dem Netz zu laden. Denn zum einem wird dadurch natürlich die WAN Anbindung (DSL, ISDN, Modem, Brieftauben) belastet, und auf der anderen Seite spielt natürlich jeder Rechner im Netz Cache für die selben Daten, was Speicherplatz verschwendet (denkt doch auch mal an die Festplattenkrise).

Im sinne der Deduplizierung ist es also ganz sinnvoll diesen Cache in das eigene NAS zu verlegen, das spart Platz und Updates gehen ab dem 2. PC deutlich schneller!

Wie dies eingerichtet wird erklärt das tolle Wiki von Arch Linux in einem Wikiartikel, und wird hier in diesem Blog nicht behandelt.

Was man gerne übersieht, aber auch in diesem Artikel steht ist das man

CleanMethod = KeepCurrent
in seine /etc/pacman.conf zumindest auf dem Server packen sollte. Hat man dies getan kann man über pacman -Sc am Server den kompletten Cache säubern, was ein voll laufen des Dateisystems verhindert.

Ich selbst bin noch ein wenig fauler, und habe mir einen Cronjob erstellt der pacman -Sc --noconfirm einmal pro Monat auf dem Server startet, wozu soll ich mich selbst ums Putzen kümmern wenn es doch Computer gibt ;-)

Cluster SSH

geschrieben von encbladexp am 28.11.2011 18:08:00.

Ein sehr gutes Tool, für die Verwaltung mehrerer Server gleichzeitig ist übrigens Cluster SSH. Ich verwende dieses Tool schon seit ca. 2-3 Jahren zur Verwaltung einiger Server.

Heute ist mir erst aufgefallen wie oft ich dieses Tool eigentlich verwende, zwar nur ca. 1-2 mal pro Woche, dennoch spart es mir massig Zeit wenn mal wieder 15-20 Server mit Updates versorgt werden wollen!

Die Konfiguration ist kein großes Hexenwerk, man legt einfach eine Datei ~/.csshrc an und packt folgendes hinein:

clusters = clustername1 clustername2
clustername1 = rz1srv1 rz1srv2 rz1srv3
clustername2 = rz2srv1 rz2srv2 rz2srv3
ssh_args =
Das war es auch schon, mittels cssh clustername1 kann man sich nun zu allen Servern in diesem Cluster verbinden, man sieht dann pro Server ein eigenes Fenster, und eine Eingabezeile in der man Befehle / Tasten eingeben kann welche an alle Server gleichzeitig gesendet werden sollen.

Da ich meine Benutzernamen und viele weitere SSH Optionen über ~/.ssh/config vorgebe habe ich die Variable ssh_args bewusst auf nichts gesetzt.

Mehr Infos gibt es dazu natürlich in der Manpage!

Bandbreite im Netzwerk bestimmen

geschrieben von encbladexp am 04.11.2011 22:05:00.

Neulich habe ich ja einen Artikel über meine Einführung des WLAN Standards 802.11n verfasst. Kurz danach gab es Fragen mit welchem Tool ich den meine Bandbreiten eigentlich ermittelt habe, den Namen des Tools - iperf - habe ich zwar kurz erwähnt, wie es funktioniert habe ich aber nicht erklärt.

Das möchte ich natürlich mit diesem Artikel nachholen, zuvor muss iperf natürlich installiert werden, was über die Paketverwaltung der Distribution erfolgen sollte. Anschließend muss man sich entscheiden welcher der Rechner im Netzwerk den der Server sein sollte, ich nehme hierbei immer den Router, den die meisten IP Pakete müssen irgendwann an den Router ;-)

Gestartet wird der Server in einem Terminal mit folgendem Befehl:

iperf -s
Mehr ist auf dem Server auch nicht zu machen, jetzt geht es an den Client, was jeder PC im Netz sein kann, in der Regel wird man aber die Bandbreite von einem bestimmten PC messen wollen. Auf dem Client wird iperf wie folgt aufgerufen:
iperf -c server
Der Parameter server muss hierbei natürlich durch den Server ersetzt werden, entweder die IP Adresse oder aber der (auflösbare!!!) Hostname des Servers.

Ein normaler Test, also mit den Standard Parametern dauert pro Aufruf ca. 10 Sekunden und wird sowohl am Client als auch am Server geloggt. Das kann z.B. so aussehen:

------------------------------------------------------------
Client connecting to server, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.8 port 59185 connected with 192.168.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   810 MBytes   680 Mbits/sec
Hier sieht man das mein installiertes Gigabit LAN ~680 MBit/s bei diesem Test überträgt. Die volle Bruttobandbreite wird man nur selten erreichen, zumindest SOHO-Komponenten wurden nur selten so gebaut das man auch alles bekommt was die Spezifikation verspricht ;-)

Mehr über iperf kann man in der entsprechenden Manpage nachlesen.

Symbolische Verknüpfungen unter Windows

geschrieben von encbladexp am 02.11.2011 16:30:00.

Bei uns im Unternehmen wir von der Firma Hager die Software Tebis Visualisierung verwendet. Mal abgesehen davon das die Usability grausam ist gibt es mir dieser Software auch noch 2-3 lustige Bugs bei denen man sich eigentlich an den Kopf fassen muss.

Heute durfte ich z.B. feststellen das Hager bzw. der Entwickler dieser "tollen" Software, wann immer es möglich ist absolute Pfadangaben verwendet. D.h. man verlinkt in einem Projekt eine Grafik, und diese wird mit dem Absoluten Pfad in einem proprietärem Format verlinkt.

So lange man das Projekt an dem Ort lässt wo es ist gibt es kein Problem, allerdings ist das Projekt nur ein Ordner mit einem Haufen .mdb und anderen Dateien drin, u.a. auch meine schönen Grafiken.

Die Konsequenz ist das beim verschieben des Projektordner von der Visualisierung keine Grafiken mehr gefunden werden, den diese wurden ja unter Verwendung der absoluten Pfadangabe gespeichert. Dieser Pfad passt jetzt aber nicht mehr, und somit kann auch die verlinkte Datei nicht geöffnet werden.

Selbst wenn man das Projekt im Installationsverzeichnis belässt hat man ein Problem sobald man auf dem einen System 64-Bit und auf dem anderen 32-Bit Windows verwendet. Den 32-Bit Windows verwendet für 32-Bit Anwendungen c:\Programme\ während aber ein 64-Bit Windows hierfür C:\Programme (x86)\ verwendet. Den Installationspfad kann man aber nur als Administrator ändern, keine gute Voraussetzung in großen Firmen.

Ich habe mich daher entschieden das Problem mit, auch unter Windows vorhandenen, symbolischen Verknüpfungen (Softlinks) zu lösen.

Folgendes genügt hierzu, man benötigt aber auch hier eine Shell mit Administratorrechten (cmd.exe und dann Als Administrator ausführen):

mklink /d "C:\Program Files\Hager Tehalit\" "C:\Program Files (x86)\Hager Tehalit"
Und schon können auch derart kaputte Programme ihre Daten an dem verlinkten Ort im System finden.

Schöner wäre es wenn die Software entweder relativ auf das Projektverzeichnis verlinkt, oder aber die verlinkten Grafiken direkt importiert und somit der Dateiname keine Rolle mehr spielt.

TaskWarrior SSH Tuning

geschrieben von encbladexp am 17.10.2011 19:15:00.

Taskwarrior ist ja in der Lage über verschiedene Protokolle (SSH, rsync, ...) die Aufgaben abzugleichen. Ich verwende hierfür mein Lieblingsprotokoll, welches natürlich SSH ist.

Leider hat mich mein Internet Service Provider, die Bundesregierung und noch einige andere Organisationen nicht sonderlich lieb, und deshalb habe ich nur relativ wenig Bandbreite.

Dennoch möchte ich in der Firma, auf dem Server und auch am Desktop die gleichen Aufgaben haben. Ein reiner Online Zugang (einfach nur SSH zum Server) ist in der Firma ja nicht möglich, und auch sonst ist ein Offline Zugang sehr praktisch.

Aus diesem Grund darf Taskwarrior bei mir direkt mit dem Server abgleichen, von da aus hol ich das an alle möglichen (oder nötigen) Clients. Mit der Zeit wird aber die ~/.task/undo.data zunehmen größer, und genau diese ist ja für das Abgleichen mit task merge zwingend erforderlich.

Für diese Anwendung hilft daher die gute alte Kompression von SSH, welche in der Datei ~/.ssh/config wie folgt für den Zielrechner aktiviert werden kann:

Host yourhostname
 Compression yes
 ...

Optimal wäre natürlich eine Lösung bei der nur Taskwarrior die Kompression verwendet, aber mit dieser Überganglösung bis taskd kommt kann ich auch Leben. Die Nachteile der SSH Kompression stehen übrigens in der Manpage von SSH, ich werde also nicht darauf eingehen ;-)

Wenn die undo.data etwas länger wird sollte man diese aber ab und an kürzen, ein zuvor angelegtes Backup schützt nicht nur in diesem Fall vor Problemen.

GDM das Powermanagement abgewöhnen

geschrieben von encbladexp am 07.10.2011 14:08:00.

Seit ein paar Tagen gibt es ja GNOME 3.2, mir ist dabei aufgefallen das der Rechner wenn er im GDM läuft einfach nach 30 Minuten in den Standby geht. Das ist eigentlich eine gute Idee, aber recht doof wenn man den Rechner z.B. für Updates nur via SSH verwendet.

Man kann das Verhalten aber ganz leicht ändern:

  1. xhost +
  2. sudo -u gdm gnome-control-center, und dann dort einfach wie gewohnt unter Leistung Einstellen
  3. xhost -

Natürlich benötigt man hierfür xhost (unter Arch nicht Standardmäßig installiert, unter Ubuntu schon) und einen Benutzer der auch via sudo die Rechte hat den aktiven User zu wechseln um Programme unter einem anderen Benutzer zu starten. Auf den gleichen Weg kann man übrigens auch viele andere Einstellungen des GDM Users ändern ;-)

Icon einer Webapplikation in GNOME 3.2 ändern

geschrieben von encbladexp am 02.10.2011 23:52:00.

Ich selbst habe seit heute GNOME 3.2 (Arch machts möglich) auf meinem Desktop. Aktuell spiele ich etwas mit der neu eingeführten Integration von Webapplikationen.

Was mir allerdings dabei nicht gefällt ist der kleine Ausschnitt welcher als Icon für den Starter verwendet wird. Genau gesagt finde ich den richtig hässlich, den oft ist in der oberen linken Ecke nur selten etwas aussagekräftiges versteckt. Auf der anderen Seite habe ich für Starter generell lieber Tango Icons, es soll ja alles schön einheitlich sein.

Über das Menü kann man das Icon dieser Starter aber nicht verändern, daher folgender weg:

  1. Mit cd ~/.gnome2/epiphany/ in das Konfigurationsverzeichnis von Epiphany wechseln.
  2. Dann mal (z.B. mit ls) schauen welchen Ordner Epiphany für eine bestimmte Webapplikation verwendet hat, in der Regel ist es der Name des Starters klein geschrieben und dann noch eine Art Hash am Ende des Dateinamens.
  3. cd ordnername wechselt nun in den Ordner dieses starters.
  4. Und zum Schluss kann mit ln -f -s /pfad/zum/icon.png app-icon.png das Icon gegen das gewünschte ausgetauscht werden.
Ich verwende bewusst nur einen Link für das Icon, wer möchte kann natürlich auch einfach eine Kopie vom Icon erzeugen.

Das Icon muss im PNG Format vorliegen, und sollte eine Größe von 128x128 Pixeln haben. Wenn man das Icon getauscht hat muss man noch die GNOME Shell neu starten, das geht ganz einfach mit ALT-F2 und dem Befehl restart.

Nachtrag: Man kann das Icon auch in der .desktop Datei im jeweiligen Ordner ändern, das erzielt den gleichen Effekt.

Datensicherung / Backups

geschrieben von encbladexp am 22.08.2011 18:46:00.

Ein wichtiges Thema in der IT, wenn nicht sogar das Kernthema überhaupt, sind ja Datensicherungen oder im neudeutsch Backups.

Das Problem mit der Datensicherung fängt schon bei der Wahl des Speichermediums an:

Disketten / ZIP
Eine endlich ausgestorbene Technik, heute sind die Probleme die Unzuverlässigkeit, Kapazität und vor allem die mangelnde Verfügbarkeit solcher Laufwerke. Eine Datensicherung auf diesen Medien ist also nichts was man in Betracht ziehen sollte.
CD / DVD / BluRay
Auch wenn man auf den ersten Blick denkt ein optisches Medium ist eine gute Idee, sollte man sich das nochmal durch den Kopf gehen lassen. Hauptproblem ist das immer wieder mal Rohlinge verbrannt werden oder eine Lesbarkeit selbst nach 1-2 Wochen nicht gewährleistet ist. Die Qualität der Medien schwankt gewaltig und die Datenmenge welche man Gesichert bekommt ist, mit Ausnahme der BluRay, für heutige Verhältnisse viel zu klein.
USB Laufwerke
USB Laufwerke gibt es angefangen vom USB Stick bis hin zu mehreren Terabyte großen Festplatten in jeder Preisklasse. Nachteil ist hierbei das die Medien empfindlich auf Überspannung reagieren und ein Anschluss am PC auf Dauer nicht sinnvoll ist, da sonst gerne mal ein Blitz Daten und Datensicherung gleichzeitig hinrichtet. Nachteil dieser Technik ist das der USB Anschluss (von Version 3.0 mal abgesehen) viel zu langsam ist um große Datenmengen zügig zu kopieren. Auch belastet eine über USB angeschlossene Platte das System deutlich mehr als eine über SATA oder IDE angeschlossene Platte.
Festplatten im Wechselrahmen
Das oben genannte Problem mit der Geschwindigkeit kann man einfach mit Festplatten in einem Wechselrahmen umgehen, diese sind an die SATA Schnittstelle angeschlossen und können daher auch große Datenmengen schnell übertragen. Auch die eSATA Schnittstelle eignet sich hier prima, ist aber nicht immer verfügbar. Da es sich beim Datenträger um normale SATA Platte handelt ist, zumindest für die nächsten 4-5 Jahre eine Anschlussmöglichkeit in jedem Standard-PC vorhanden, über entsprechende Adapter auch an USB, FireWire oder eSATA.

Ignorieren wir, aus technischen Gründen, einfach mal die optischen Laufwerke so haben wir noch Festplatten über USB oder intern zur Auswahl. USB Sticks dürften für die meisten Anwendungen zu Teuer pro Gigabyte sein.

Jetzt haben wir noch ein Problem, das leider immer wieder Leute vergessen: Alles was mit dem Stromnetz verbunden ist, sei es direkt oder indirekt wird unter Umständen durch einen Blitzeinschlag zerstört. Selbst externe Platten die neben einer Leitung liegen können durch Induktionsspannungen zerstört werden. Eine Datenrettung für kleine Firmen oder Privatpersonen ist unbezahlbar, daher ist es wichtig wie man mit den Sicherungsmedien umgeht. Nachfolgend hierzu ein paar Tipps:

  1. Ein Datenträger der mit dem Rechner Verbunden ist (USB, eSATA, SATA, Strom, Netzwerk, ...) ist kein Sicherungsmedium da dies bei vielen Problemen mit zerstört wird. Auch ist ein löschen der Daten aus versehen möglich.
  2. Man hat immer mindestens 2 Backups seiner Daten, auf unterschiedlichen Datenträgern, welche nicht am selben Ort gelagert sind.
  3. Daten die nicht gesichert sind, sind auch nicht wichtig.
  4. Datensicherungen macht man immer automatisch, der Mensch vergisst Datensicherungen zu machen, nicht gesicherte Daten sind auch nicht wichtig.
  5. Vor großen Änderungen (Betriebssystem Installation, neues Dateisystem, ...) macht man immer vorher ein Backup.
  6. Sicherungsmedien werden regelmäßig geprüft, dies gilt für das Medium (SMART, badblocks, ...), das Dateisystem (fsck) und auch für die Nutzdaten.
  7. Das Datensicherungsprogramm sollte Dateien immer einzeln Komprimieren und/oder Verschlüsseln, nie alle Dateien auf einmal wie es z.B. tar macht. Das Problem ist das bei einem einzigen kaputten Bit schon das komplette Backup unbrauchbar sein kann. Moderne Backup Tools wie dar (kein Schreibfehler!) erledigen diesen Job richtig.
  8. Nicht nur die Daten, sondern auch die Rechte an den Daten sind oft wichtig, daher sollte das Backuparchiv oder Dateisystem die gleichen Rechte unterstützen wie das Quelldateisystem.

Ich selbst habe hierzu 2 SATA Festplatten in einem Wechselrahmen, jede Kalenderwoche werden diese Platten getauscht. Einmal täglich machen die PCs automatisch ein Backup auf diese Platte, die jeweils nicht eingebaute Platte wird in einem anderem Raum gelagert um zu vermeiden das alles an einem Ort ist. Die Platten werden durch ein Script auch jede Woche geprüft!

Nachteil dieser Lösung ist der Kostenaufwand im Vergleich zu einer USB Festplatte, Vorteil ist das ich nie mehr als eine Woche an Daten verliere. Außer ein Einbrecher würde kommen und mein Haus nach allen Laufwerken absuchen und mir alle Medien auf einmal klauen. Anderes Worst-Case Szenario das ich so nicht abdecke wäre ein Hausbrand, was jedoch hoffentlich nicht vorkommen wird.