Backups mit Tarsnap

Vor einiger Zeit kam es bei meinem (inzwischen ehemaligen) Hoster zu einem Problem mit dem RAID des Storage, auf dem die virtuelle Festplatte meines vServers lag. Das Resultat war ein korruptes Dateisystem in meiner VM; ich konnte es zwar teilweise wieder reparieren, allerdings blieben einige Schäden, einige Dateien blieben verschollen oder wurden beim Reparaturvorgang falschen Dateinamen zugeordnet. Kurzum, ein Großteil des Dateisystems war zwar noch da, es reichte aber nicht aus, um mein Ubuntu-Server-System zu booten – und mein Vertrauen in die auf den ersten Blick intakten Überreste hielt sich ebenfalls in Grenzen.

Also war es an der Zeit, das Backup aus der Schublade zu holen. Ich hatte erst zwei Wochen zuvor mein altes Konzept, gpg-verschlüsselte Files per rsync auf einen externen Speicher zu schieben, durch den Service Tarsnap ersetzt. Tarsnap verschlüsselt die Daten lokal auf dem Server und schiebt sie dann in den gleichnamigen Onlinespeicher, der auf Amazon S3 basiert. Dabei kommt eine Deduplikation zum Einsatz, was es recht günstig macht, viele Versionen des Datenbestands aufzubewahren. Das dazugehörige Kommandozeilentool tarsnap ist – dank der guten Dokumentation auf der Website und der Manpage – recht einfach zu bedienen. Per Cronjob mache ich jeden Morgen ein neues, automatisches Backup meines vServers, und von Zeit zu Zeit lösche ich manuell mal die alten Snapshots weg.

Die letzte Version meines Tarsnap-Backups enthielt daher den Stand ein paar Stunden vor dem Crash. Also habe ich mir einen neuen vServer geklickt, die Basiseinrichtung durchgeführt, Tarsnap installiert, meinen Tarsnap-Key auf den neuen Server übertragen und die Wiederherstellung angestoßen.

Ich hatte nicht das gesamte Filesystem des alten Servers gesichert, sondern nur die Dateien der Webapplikationen und jeweils zum Backupzeitpunkt generierte Dumps der zugehörigen Datenbanken. Das Zurückspielen hat hervorragend funktioniert.

Insofern ist mein Backupkonzept jetzt unfreiwilligerweise praxiserprobt, sodass ich sagen kann: Tarsnap hat mir mal den Kopf gerettet – kann ich empfehlen!

Seitenverhältnisse

Aus aktuellem Anlass hier mal einige Gedanken zum Seitenverhältnis von Präsentationen bzw. Vortragsfolien.

Es gibt ja im Wesentlichen 2½ gängige Seitenverhältnisse, die von Projektoren verwendet werden, nämlich 4:3, 16:9 und vielleicht noch 16:10. Die Differenz zwischen 16:9 und 16:10 ist so gering, dass ich letzteres in diesem Artikel vernachlässigen werde.

Vortragende sollten ihre Foliensätze im passenden Format anlegen. Jede gängige Software ermöglicht das. Nur so kann man die zur Verfügung stehende Projektionsfläche optimal ausnutzen – und ein großes Bild ist immer besser als ein kleineres Bild.

Zeigt man 16:9-Folien auf einer 4:3-Projektion oder 4:3-Folien auf einer 16:9-Projektion, führt das dagegen zu ungenutzten Flächen an den Rändern der Projektionsfläche, weil der Projektor das empfangene Signal herunterskalieren muss (die einzige Alternative wäre, an den Rändern Inhalte abzuschneiden, aber das führt zu Anrufen bei der Support-Hotline; Ränder fallen dem durchschnittlichen Vortragenden dagegen gar nicht auf und werden stillschweigend akzeptiert).

So weit, so gut: als Vortragender kann man nun mal nicht immer wissen, welches Seitenverhältnis die Technik am Vortragsort verwendet, insofern sind die oben genannten Szenarien manchmal einfach nicht zu vermeiden – zumindest nicht ohne den Mehraufwand zu treiben, zwei Foliensätze vorzubereiten.

Manchmal – und jetzt kommen wir zum Anlass zu diesem Blogpost – wird das Skalierungsspiel aber noch eine Stufe weiter getrieben, sodass ein Rand rundherum um die Projektionsfläche entsteht. Das geht zum Beispiel so: Man steuert einen 4:3-Projektor mit einem 16:9-Signal an, sodass oben und unten Ränder entstehen. Auf diesem ohnehin schon beschnittenen Bild zeigt man nun 4:3-Folien, die wiederum von der Präsentationssoftware ins 16:9-Format skaliert und somit links und rechts mit Rändern aufgefüllt werden. So verliert man ca. 25% der Höhe, über 40% der Projektsfläche und einige Sympathien in den hinteren Reihen. Die Lösung ist einfach, da noch nicht einmal die Folien angepasst werden müssen: der Projektor muss lediglich mit dem korrekten Seitenverhältnis angesprochen werden.

Zusammenfassend also die Tipps bezüglich des Seitenverhältnisses:

  • Bringe möglichst vorab in Erfahrung, welches Seitenverhältnis der Projektor am Vortragsort verwendet und lege deine Folien darauf aus.
  • Liefere dem Projektor möglichst ein Signal in seiner nativen Auflösung, mindestens aber ein Signal in demselben Seitenverhältnis.

Entwürfe

Hin und wieder – meistens recht spät abends – packt mich der Gedanke, dass ich ja mal wieder einen Blogpost schreiben müsste. Meistens habe ich dann auch schon eine konkrete Idee im Kopf. Ich logge mich ins Backend ein und beginne mit dem Schreiben. Es wird später und später und irgendwann ist der „Ach, kannste eigentlich auch morgen weitermachen“-Punkt erreicht – was dann gelegentlich nicht passiert.

So geschah es auch heute wieder. Eigentlich wollte ich einen neuen Blogpost erstellen. Auf dem Weg in den WordPress-Editor habe ich im Backend aber noch ein wenig unveröffentlichtes, exklusives Material entdeckt. Deshalb kommen jetzt erst mal die ollen Kamellen, der „neue“ Artikel folgt dann die Tage – den hätte ich ohnehin noch nicht veröffentlichen, sondern nur vorbereiten können.

Außerdem habe ich endlich den schon lange existierenden Twitter-Account @returnfalsede mithilfe von IFTTT mit dem Blog verknüpft, sodass neue Posts ab sofort auch dort erscheinen sollten. Dafür ist dieser Beitrag ein Testballon. Ich bin gespannt.

Mail-Backups mit Getmail

Meine E-Mail-Konten rufe ich für gewöhnlich per IMAP ab. Das ist zwar einerseits komfortabel, weil auf all meinen Geräten derselbe Stand vorhanden ist, andererseits bin ich natürlich von der Verfügbarkeit des Mailservers und dem Ausbleiben technischer Pannen beim jeweiligen Provider abhängig. Hinzu kommt das Risiko versehentlich gelöschter E-Mails.

Aus diesem Grund habe ich mir mithilfe von Getmail 5.4 eine eine Archivierung auf meinem Homeserver gebastelt. Diese läuft alle paar Stunden, holt neue Mails aus den Postfächern ab und speichert sie in einem lokalen Maildir. Dabei werden ungelesene Mails nicht als gelesen markiert und es werden auch keine Mails auf dem Server gelöscht. Das einzige Problem, das ich noch nicht lösen konnte: Wenn ich eine Mail in einen anderen IMAP-Ordner verschiebe, lädt Getmail sie erneut herunter. Aber damit kann ich leben.

Ich habe dazu folgende Ordnerstruktur und einige Dateien angelegt:

/data/mail
├── getall.sh
├── getall.log
├── example@gmail.com
│   ├── conf
│   │   └── getmailrc
│   ├── log
│   │   └── getmail.log
│   └── maildir
│       ├── cur
│       ├── new
│       └── tmp
├── me@example.com
│   ├── conf
│   │   └── getmailrc
│   ├── log
│   │   └── getmail.log
│   └── maildir
│       ├── cur
│       ├── new
│       └── tmp
└── <weitere E-Mail-Adressen>
    └── …

getall.sh ruft Getmail mit den entsprechenden Konfigurationsdateien pro Unterverzeichnis auf:

#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "Script run $(date)"
for i in ${DIR}/*/conf
do
    echo $i
    cd $i
    getmail -g./
done
echo "-------------------"

Ich rufe getall.sh einmal am Tag via cron auf.

0 3 * * * /bin/bash /data/mail/getall.sh >> /data/mail/getall.log 2>&1

Für die Gmail-Adresse sieht meine Getmail-Konfiguration getmailrc wie folgt aus:

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username = example@gmail.com
password = PASSWORD1234
mailboxes = ALL
use_peek = true

[destination]
type = Maildir
path = /data/mail/example@gmail.com/maildir/

[options]
verbose = 1
message_log = /data/mail/example@gmail.com/log/getmail.log
read_all = false

Die heruntergeladenen Mails landen als einzelne Dateien in maildir/new. Die IMAP-Ordnerstruktur geht dabei zunächst verloren, ist in den Mail-Dateien aber in einem zusätzlichen Header-Feld X-getmail-retrieved-from-mailbox noch vermerkt, sodass man sie bei Bedarf schon rekonstruieren könnte.

CA-Map: Die PKI unter der Lupe

Vor gut einem Jahr hatte ich mir mal den Spaß gemacht, inspiriert vom „SSL Observatory“ der EFF, eine „Landkarte“ der Public-Key-Infrastruktur zu erstellen, die ein Browser verwendet, um TLS-Zertifikate zu validieren. Die Grafik hatte ich dann für eine Seminararbeit zu illustrativen Zwecken verwendet. Weil sie eigentlich ganz interessant ist, habe ich sie jetzt noch einmal neu aufgelegt.

„Landkarte“ der öffentlichen PKI

„Landkarte“ der öffentlichen PKI

Als Datenbasis diente mir censys.io, die ihre Informationen im Wesentlichen aus zwei Quellen beziehen: scannen sie den gesamten IPv4-Adressraum und zeichnen auf, welche Zertifikate ihnen dabei begegnen, und zweitens stützen sie sich auf die Informationen aus den öffentlichen Certificate-Transparency-Protokollen.

Aus dem Datenbestand von Censys habe ich mir also alle Root- und Intermediate-CAs geben lassen, denen ein Browser auf Basis des Mozilla NSS Certificate Store vertrauen würde. Der Suchbegriff lautet:

validation.nss.valid: true and (validation.nss.type: intermediate or validation.nss.type: root)

Das sind überraschend viele und es ist durchaus interessant mal ein wenig darin herumzustöbern. Damit ihr das auch machen könnt, habe ich hier eine interaktive Kartenansicht hochgeladen und auch ein GraphML-File, das man sich mit yEd anschauen kann. Darin kann man einzelne Verbindungen etwas besser nachverfolgen und sich den Graphen auch nach Belieben rearrangieren (für die hochgeladene Variante habe ich die Option Layout → Baumartig → Ballon verwendet).

Also klickt euch mal rein und seid überrascht, wer wem sein Vertrauen vererbt und wem euer Browser alles vertraut. Ich will mal nicht die 100%ige Korrektheit versprechen, denn wie man sieht, liegen unten rechts im Bild ein paar einzelne Intermediates, die keiner Root zugeordnet sind – es geht also nicht so richtig auf. Aber für eine grobe Übersicht taugt die Grafik denke ich schon.

Windows 7: Datenträgerüberprüfung beim Start bricht automatisch ab

Neulich habe ich auf einem Notebook neben einem Windows 7-System ein Linux installiert. Dazu musste die Windows-Partiton verkleinert werden, was das Windows üblicherweise dazu veranlasst, beim nächsten Start eine Datenträgerüberprüfung durchzuführen.

Diese Datenträgerüberprüfung lässt sich in den ersten 10 Sekunden durch einen Tastendruck abbrechen und auf den nächsten Start verschieben. Nun ergab sich aber das Problem, dass aus ungeklärten Gründen die Überprüfung abgebrochen wurde, ohne dass eine Taste gedrückt wurde. Man sah also noch ganz kurz den Abbruch-Countdown bei 10 Sekunden beginnen und kurz darauf erschien die Meldung „Die Datenträgerüberprüfung wurde abgebrochen“ und der Startvorgang wurde normal fortgesetzt. Dieses Spiel wiederholte sich bei jedem Start des Windows-Systems.

Die Lösung: Ich konnte den Abbruch-Timeout über die Registry auf 0 Sekunden herabsetzen, dann lief die Überprüfung problemlos durch. Die Anpassung ist über den DWORD-Wert AutoChkTimeout im Schlüssel

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

möglich, der, wenn er nicht schon existiert, manuell angelegt und dann auf den Wert 0 gesetzt werden muss.

(via Lenovo-Forum und Winaero.com)

Spaß mit dem theme-color-Tag

Seit einiger Zeit unterstützt der Chrome-Browser auf Android-Systemen eine Funktion, die die UI-Elemente des Browsers in einem zur angezeigten Website passenden Farbton einfärbt. Dieses Feature nutzen zum Beispiel der Guardian, die FAZ oder eine Standard-Owncloud-Installation. Mich hat natürlich interessiert, wie das umgesetzt wurde.

Im Sourcecode konnte ich dann schnell das <meta>-Tag namens theme-color als Verantwortlichen ausmachen:

<meta name="theme-color" content="#005689">

Ich habe dann noch etwas damit herumgespielt und mich gefragt, ob die Farbe nach dem Laden der Seite, also zur Website-Laufzeit, von dieser noch verändert werden kann. Ergebnis: Ja, geht (hier eine kleine Demo) – zumindest im Chrome unter Android.

Einige konstruierte Anwendungsfälle:

  • Man könnte einem Fortschrittsbalken mehr Aufmerksamkeit zukommen lassen, indem man den Fortschritt auch im Browser-User Interface darstellt (etwa als Farbwechsel von schwarz über grau nach weiß)
  • Die Werbeindustrie kann jetzt endlich auch den Rahmen um die Website herum passend zur animierten Werbung mitblinken lassen

Und etwas genereller, auch ohne die Farbe ändern zu müssen:

  • Die Phisher können ihre Phishing-Site seriöser erscheinen lassen, indem sie ihr eine grüne Adressleiste verpassen, ein DV-Zertifikat installieren um ein Schloss zu bekommen und auf ihre Site schreiben: „Achten Sie beim Online-Banking stets auf die grüne Adressleiste in Ihrem Browser – nur dann nutzen Sie eine sichere Verbindung!“ – und schon sieht die falsche Site sicherer aus als die echte.

Ich glaube, diese Neuerung hat noch Potential. Ich bin jedenfalls gespannt, was die Guten und die Bösen des Internets daraus machen.

Festplatte im Laufwerksschacht

Ich habe mein ThinkPad T440p um eine (herkömmliche) Festplatte erweitert, weil mir auf der eingebauten SSD der Platz ausging. Dafür musste das DVD-Laufwerk weichen, in dessen Schacht nun die zweite Festplatte steckt. Der Festplattenadapter stammt von FirstCom und kostete via Amazon 10€. Ich habe eine Western Digital WD3200LPVX in den Adapter eingesetzt. Um das DVD-Laufwerk durch den Festplattenadapter zu ersetzen, muss die große Wartungsklappe auf der Unterseite entfernt werden (2 Schrauben) und anschließend im Inneren eine weitere Schraube, die das DVD-Laufwerk am Platz hält, gelöst werden. Diese ist mit einem CD-Symbol gekennzeichnet und liegt „ganz am Ende“ des Laufwerks. Die Schraube ist eine „captured screw“, man muss sie also nur lösen und nicht aus dem Loch entnehmen! Eine nähere Beschreibung mit Abbildungen ist ab Seite 62 (nach PDF-Zählung Seite 68) im Hardware Maintenance Manual zu finden.

Daraus ergibt sich auch, dass ein schneller Wechsel zwischen Platte und DVD-Laufwerk nicht ohne Weiteres möglich ist.

Der gelieferte Adapter sah bei mir etwas anders aus als auf dem Artikelbild. Rechts von der Vertiefung für die Festplatte war ein Aufkleber mit einer Einbauanleitung für die Festplatte angebracht, und der Plastikplatzhalter vorne in der Vertiefung war in meinem Fall gleichzeitig ein Schraubendreher, mit dem man zwei kleine Dorne, die in die vorderen Schraubenvertiefungen der Festplatte greifen, lösen und festziehen konnte.

Es folgen einige Fotos des eingebauten Adapters, da ich solche vor dem Kauf gesucht und nicht gefunden hatte:

Vorher

Vorher: Original-DVD-Laufwerk (älteres Bild)

Rechte Seite

Nachher: Jetzt mit Festplattenadapter

c

Vorne schließt der Adapter nahezu bündig mit dem Schacht ab

b

Hinten entsteht eine minimale Kante

Wie man sieht, schließt der Adapter an der Vorderkante bündig mit dem Laufwerksschacht ab, hinten entsteht eine kleine Kante – und insgesamt sieht die Front in der Tat etwas „schief“ aus. Ich finde das allerdings verschmerzbar.

Die Aktivitäts-LED leuchtet übrigens permanent grün, solange das ThinkPad eingeschaltet ist. Bei Zugriffen auf die Platte wird sie dann heller. Die von mir verbaute Platte ist für mein Empfinden sehr leise und stört mich nicht beim Arbeiten.

Screenshots, ganz einfach.

Ihr sitzt mal wieder an einem fremden Linux-Rechner, wollt eine Reihe von Screenshots aufnehmen, habt keinen Root-Zugriff und das einzige installierte Screenshot-Tool fragt jedes Mal aufs Neue, wo das Bildchen denn nun abgespeichert werden solle und hält euch einfach nur auf?

Hier ist die Lösung: Ich habe ein minimalistisches, portables Screenshot-Tool zusammengehackt. Primär hab ich es für Linux-Systeme gemacht, da es aber keinen großen Aufwand bereitete, hab ich es auch für Windows kompiliert.

Einfach herunterladen, ausführbar machen (chmod +x screenshottool oder mit dem Dateimanager der Wahl), starten und einen Ordner auswählen, in dem die Screenshots gespeichert werden sollen. Dann verzieht sich das Programm in den System-Tray und wartet darauf, von euch angeklickt zu werden. Ein Klick, ein Screenshot. Eine Bestätigung gibt es durch ein kleines Pop-up, das nach einer Sekunde automatisch wieder verschwindet. Die Screenshots werden im PNG-Format abgelegt, der Dateiname ergibt sich aus Datum und Uhrzeit (yyyy-mm-dd_hh-mm-ss.png).

Screenshottool im LXDE-Benachrichtigungsbereich

That’s it. Es wird immer der ganze Bildschirm aufgenommen. Keine bunten Pfeile, keine rosa Herzchen, kein Blingbling.

Das Programm stelle ich unter die WTFNMFPL, hier ist der Source Code (GitHub).

Continue reading ‘Screenshots, ganz einfach.’ »

Vorlesungsfolien und Präsentationen annotieren

Ein sehr unterschiedlich gehandhabtes Thema ist ja das der Vorlesungsmitschriften. Je nach Veranstaltung benutze ich derzeit entweder ein Notebook mit PDF Annotator (leider nur für Windows 🙁 ) und schreibe mir meine Anmerkungen direkt ins PDF, oder ich drucke die Folien aus und mache mir handschriftliche Notizen. Die handschriftliche Variante kommt vor allem bei den mathematischen Vorlesungen zum Einsatz, dank der vielen mathematischen Symbole und griechischen Buchstaben kommt man mit einem Notebook ohne Stifteingabe einfach nicht hinterher.

Also drucke ich die Folien in diesem Fall aus. 2 Folien pro Seite, doppelseitig, also 4 Folien pro Blatt. Die Blätter werden dann anschließend gelocht und zusammengetackert.

Ich habe mir mit LaTeX eine Vorlage gebastelt, die die Folien so auf einer A4-Seite ausrichtet, dass ich rechts daneben und darunter genug zusammenhängenden Platz für Notizen habe. Zusätzlich habe ich ein 5mm-Karomuster hinter die Seite gelegt.

Beispiel

Beispiel: So könnte ein Ausdruck aussehen

Die Vorlage möchte ich gerne hier veröffentlichen. Macht damit, was ihr wollt. Ihr müsst im Prinzip nur in der Datei karo.tex den Titel (Kopfzeile) anpassen, euer PDF in der vorletzten Zeile dort eintragen, wo beispiel.pdf steht, und dann (ggf. 2×) pdflatex drüberlaufen lassen und das Ergebnis ausdrucken. Wer mag, kann aber natürlich auch noch etwas Feintuning betreiben und z.B. die Intensität der Karolinien anpassen.


Update 19.10.2018:

Inzwischen verwende ich zum Mitschreiben meist Xournal unter Linux. Dabei lade ich nicht direkt die bereitgestellten Folien, sondern wende darauf zuvor eine modifizierte Variante des Skripts von oben an, sodass auf der rechten Seite Platz für Kommentare bleibt:

Xournal mit einem geladenen Foliensatz

Das dafür verwendete Skript findet ihr ebenfalls auf GitHub. Der Aufruf ist einfach:

karo.sh beispiel.pdf "Titeltext"

Das Skript generiert dann im Ursprungsverzeichnis die Datei beispiel_k.pdf, die dann in Xournal geladen werden kann. Voraussetzung ist natürlich, dass eine LaTeX-Umgebung mit den benötigten Paketen installiert ist.