My Free Software Activities in June 2016

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian Android

Debian Games

  • I packaged CaveExpress and CavePacker for Debian. CaveExpress is a remake of the old Amiga classic Ugh! In this game you control a pedal-powered flying machine and pick up packages from your clients. An interesting aspect of CaveExpress is its physics-based gameplay. The packages must be delivered to a collection point and their movement is quite realistic thanks to the excellent Box2d physics engine. The other game, CavePacker, based on the same engine as CaveExpress is a Sokoban-like game. Both games feature dozens of levels and if you have nothing better to do, you should definitely check them out.
  • This month I also packaged a new upstream release of Netpanzer. Apparently there is new upstream activity.
  • Blockattack 2.0 was released and is now available in Debian.
  • I also updated the following packages: kball, pathogen, ceferino, slimevolley, pangzero and airstrike.
  • I adopted abe, berusky and berusky-data, updated the packages to use modern debian helpers and also packaged version 1.7 of berusky, a great Sokoban-like game by the way.
  • June also saw a new release of debian-games, several metapackages that make it much easier to install a subset of games or even the finest.
  • I sponsored RC-bug fixes for parsec47, tumiki-fighters, mu-cade and tatan all prepared by Peter De Wachter who keeps our D (yes, that’s a language) games alive. But we will face more issues in the post Stretch future. Apparently the D language people intend to remove parts of their API and of course all our D-based games are affected. Peter has announced more information about that. I think all these games are pretty unique and real gems. If you know a little D and want to help out, please get involved.

Debian Java

Debian LTS

This was my fifth month as a paid contributor and I have been paid to work 19,75 hours on Debian LTS. In that time I did the following:

  • DLA-501-1. Salvatore Bonaccorso from Debian’s Security Team discovered that the original fix for CVE-2015-7552 (DLA-450-1) was incomplete. I prepared and uploaded a new revision of gdk-pixbuf and issued the DLA.
  • DLA-502-1. Issued a security update for graphicsmagick fixing 1 CVE.
  • DLA-504-1. Issued a security update for libxstream-java fixing 1 CVE which was prepared by Emmanuel Bourg.
  • DLA-505-1. Issued a security update for libpdfbox-java fixing 1 CVE.
  • DLA-508-1. Issued a security update for expat fixing 2 CVE.
  • DLA-511-1. Issued a security update for libtorrent-rasterbar fixing 1 CVE.
  • DLA-526-1. Issued a security update for mysql-connector-java fixing 1 CVE. I also prepared the update for Jessie which is still pending to be reviewed by the Security Team.
  • DLA-528-1. Issued a security update for libcommons-fileupload-java fixing 1 CVE.
  • DLA-529-1. Issued a security update for tomcat7 fixing 1 CVE.
  • DLA-530-1. As previously announced I switched the default Java implementation from OpenJDK 6 to OpenJDK 7.
  • DLA-537-1. Issued a security update for roundcube fixing 1 CVE. I triaged CVE-2016-5103, CVE-2015-2180 and CVE-2015-2181 and marked them as “not-vulnerable”.
  • I triaged 22 CVEs for libarchive and marked two of them as “not-vulnerable”. You can find my preliminary work for libarchive on the wheezy branch in Debian’s git repository. I expect a security update very soon.
  • From 13 June to 19. June I was responsible for Wheezy’s LTS frontdesk. It was a rather calm week on the debian-lts mailing list and in our IRC channel. I triaged CVE-2016-4970 (netty), CVE-2016-3189 (bzip2), CVE-2016-1621 (libvpx) and CVE-2016-4493, CVE-2016-4492, CVE-2016-4491, CVE-2016-4490, CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226 which were all minor issues in developer tools or in the gcc toolchain.
  • I commented on Ola’s question about open security issues in phpmyadmin.

QA uploads

  • I fixed pygccxml that threatened to remove spring.
  • I completely overhauled gl-117, fixed four bugs and closed two obsolete ones. gl-117 always reminds me a little of the Falcon series from the early 90ies.

My Free Software Activities in May 2016

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian LTS

This was my  fourth month as a paid contributor and I have been paid to work 30 hours on Debian LTS. During this month I worked on the following things:

  • DLA-460-1. Issued a security update for file fixing 1 CVE.
  • DLA-461-1. Issued a security update for nagios3 fixing 1 CVE.
  • From 2 May until 8 May I managed the LTS frontdesk and triaged CVEs in ikiwiki, jansson, libuser, librsvg, roundcube, ocaml, wpa and sogo. I reviewed a security update of icu for Roberto C. Sánchez. I also reviewed the security update of ikiwiki prepared by Simon McVittie and took care of the announcement which resulted in DLA-463-1.
  • DLA-468-1. I fixed two serious issues in the libuser library that allowed a normal user to gain root privileges and to corrupt /etc/passwd.
  • DLA-449-2. I issued a regression update for botan1.10’s reverse dependencies, monotone and softhsm. Both packages had to be rebuilt in Wheezy. I also prepared the no-change rebuilds for all reverse-dependencies in Jessie. (DSA-3565-2)
  • DLA-471-1. Issued a security update for jansson fixing 1 CVE.
  • DLA-473-1. Issued a security update for wpa fixing 2 CVE.
  • DLA-475-1. Issued a security update for python-tornado fixing 1 CVE.
  • DLA-483-1. Issued a security update for expat fixing 1 CVE.
  • DLA-484-1. Issued a security update for graphicsmagick fixing 8 CVE. Graphicsmagick is a fork of Imagemagick and also affected by vulnerabilities commonly known as ImageTragick. It is likely that we will see more CVEs in the near future.
  • DLA-488-1. Issued a security update for xymon fixing 4 CVE. I marked CVE-2016-2057 as not-affected in Wheezy.
  • DLA-490-1. Issued a security update for bozohttpd fixing 2 CVE.
  • Misc: I sent a short news update to bits.debian.org and debian-lts-announce which was released on 2 June and announced the now official support of armel and armhf for Wheezy LTS.
  • I sent a DLA announcement for Icedove. The security update was prepared by Christoph Goehre. (DLA-472-1)

Debian Android

  • I packaged a new version of apktool. This tool has several issues at the moment. The most important one is the missing basic framework resource files which are needed for decoding apk files. They are not part of the source tarball release so we need to find other ways to make them available in Debian. Chirayu Desai, one of the GSoC students 2016, already came up with a good proposal.
  • We had our first GSoC meetings.

Debian Java

  • I fixed an RC bug in gradle-jflex-plugin due to an incompatibility with Gradle >= 2.12.
  • I clarified licenses and updated debian/copyright for Netbeans. I also removed some files from the original tarball with possibly controversial licenses.
  • I packaged new upstream releases of hsqldb and objenesis and updated fontchooser.
  • I sponsored libmnemonicsetter-java for Felix Natter.
  • I prepared a security update for Tomcat 8 which still awaits  approval by the Security Team.
  • I spent too much time with trying to upgrade libnetlib-java. In the end I came to the conclusion that it is not worth the effort.

Debian Games

  • I fixed a long standing RC bug in warzone2100 and another bug in fretsonfire.
  • I packaged new upstream releases of springlobby, freeorion and freeciv. This fixed the lags in FreeOrion which were seemingly introduced by an X server update. I also uploaded the latest versions of FreeCiv and Minetest to jessie-backports.

Misc

  • Xarchiver crashed when someone attempted to cancel the extraction procedure with the Thunar plugin. (#822115) I fixed the issue in Sid, Stretch and Jessie.

My Free Software Activities in April 2016

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian LTS

This was my third month as a paid contributor and I have been paid to work 16 hours on Debian LTS. During this month I worked on the following things:

  • DSA-3552-1: I finished my work on Tomcat 7 which I started back in March. Debian’s Security Team eventually reviewed the package and issued DSA-3552-1. This update fixed 9 CVEs in Wheezy and 7 CVEs in Jessie.
  • DSA-3541-1: My security update for roundcube (Wheezy) fixing 1 CVE was issued by the Security Team.
  • DLA-449-1. I worked on botan1.10, a C++ library which provides support for many common cryptographic operations and fixed 7 CVEs in Wheezy. I also sent an updated package for Jessie to the Security Team and they issued DSA-3565-1 for it. For Jessie 6 CVEs could be closed.  I am currently investigating a possible regression (#823297) that might require a rebuild of monotone.
  • DLA-450-1. I prepared an update for gdk-pixbuf fixing 1 CVE. While I was working on this issue I discovered that Debian’s fix for CVE-2015-7674 was incomplete and thus I added another patch to prevent possible heap-based overflows in pixops/pixops.c. Thanks to SUSE’s Security Team for their initial work on this issue.
  • DLA-451-1. I backported and tested a security update for OpenJDK-7 fixing 7 CVEs. Thanks to Matthias Klose and Tiago Stürmer Daitx for their initial work.
  • DLA-452-1. I fixed a bug in smarty3 (Wheezy), a template engine for PHP, that allowed remote attackers to bypass the secure mode restrictions and to execute arbitrary PHP code.
  • I triaged CVE-2015-7496 in GDM3 and marked this issue as <not affected> in Wheezy because the vulnerable code was neither present nor was the issue reproducible.
  • I triaged two more CVEs in Swift, CVE-2016-0738 and CVE-2016-0737 and marked both CVEs as fixed in Wheezy because the vulnerable code was not present. I also had a closer look at Xymon. This package appears to be partly affected by the open security issues and needs further investigation.
  • The security support for Wheezy was handed over to the LTS team on 26 April 2016. I drafted an official announcement which was published on debian.org and debian-lts-announce. Before I started a call for review on debian-lts. Thanks for all the feedback and especially for the reviews from the English language team.
  • Making OpenJDK 7 the default-java implementation in Wheezy-LTS. I uploaded a new revision of java-common with the sole intention to increase the user awareness for our intended switch to OpenJDK 7 as the default Java implementation. Moreover I updated 14 Java packages in Wheezy that strictly depended on openjdk-6-jre or openjdk-6-jdk. The requirements were relaxed so that users will be able to install OpenJDK 7 now without the need for installing the unsupported OpenJDK 6 too. Three Java packages are still pending due to a bug in Debian’s archive software that will hopefully be resolved soon. I think we could have uploaded those packages sooner but the Release Team did not deem these issues to be important enough. (#819247)

Debian Android

  • apktool and libsmali-java. I packaged the latest upstream release of Apktool, 2.1.0. Smali is now a dependency of Apktool and no longer included in the official tarballs. That’s the reason why I decided to package libsmali-java.
  • I will be a Mentor for Google Summer of Code again together with Hans-Christoph Steiner. I presume this year will be quite exciting and we will try to package more Android software for Debian.

Debian Java

Debian Games

Misc

  • gimp-dimage-color. I asked the ftp team to remove gimp-dimage-color because it has not been updated in the past seven years and it is also not part of Debian stable.
  • I reviewed and sponsored python-adventure for Ben Finney.
  • I also reviewed freecell-solver for Shlomi Fish on debian-mentors but the package was eventually uploaded by the actual package maintainer.

Syncany: Dropbox-Alternative für die Datensicherung in der Cloud

syncany-logoDa habe ich eben noch von der klassischen Sicherung auf externe Datenträger geschrieben und natürlich gibt es noch die Möglichkeit alles Wichtige wie Fotos, Urkunden, Krankenakten und Versicherungspolicen säuberlich eingescannt und für jeden einsehbar in der ominösen Cloud abzuspeichern. Warum nicht einfach beides nutzen? Doch macht das alles wirklich Sinn und welche Alternativen gibt es?

Anfang des Jahrzehnts nutzte ich für eine Weile Dropbox, weil es für mich ein einfacher Weg war, um Dateien an andere Leute freizugeben. Gleichzeitig hatte ich einen kostenlosen Datenspeicher und eine weitere Backupmöglichkeit gefunden. Irgendwann hatte ich dann meinen eigenen vServer, weswegen ich den Dienst nicht mehr brauchte. Vor einigen Tagen erhielt ich nun die Nachricht, dass mein Dropbox-Konto in 90 Tagen geschlossen werden sollte, weswegen ich das kurzerhand und als Motivation für diesen Artikel selbst erledigt habe.

Es gibt mittlerweile zahlreiche Freie-Software-Alternativen zu Dropbox, wobei OwnCloud,  Seafile und SparkleShare sicherlich drei der bekanntesten sind. Mit diesem Artikel möchte ich Syncany kurz vorstellen, dass ich letztes Jahr für Debian paketiert habe. Die Software ist in Java geschrieben und gegenüber Dropbox zeichnet sich dieses Programm vor allem durch zwei Merkmale aus:

  • Lokale Verschlüsselung der Daten vor dem Upload
  • Nahezu beliebige Wahl des externen Datenspeichers durch ein Pluginsystem

Der erste Punkt ist für mich persönlich der wichtigste, warum ich Anwendungen wie Syncany Dropbox vorziehe. Es ist Freie Software, transparent und man hat volle Kontrolle bevor man die Daten irgendwohin hochlädt. Zwar werden Dateien auch bei Dropbox verschlüsselt auf den Servern gespeichert, jedoch besitzt das Unternehmen auch den Schlüssel, um die Informationen wieder im Klartext anzuzeigen, sprich sensible Daten könnten ohne weiteres eingesehen werden. Syncany hingegen verschlüsselt die Dateien auf dem eigenen Rechner vor dem Upload.

Das Programm lässt sich sowohl mit einem GUI-Plugin als auch über die Kommandozeile bedienen und liefert dazu noch eine ausführliche Online-Dokumentation, mehrere Manpages und Beispiele. Bevor ich nun aber mein persönliches Setup vorstelle, hier eine ausdrückliche Warnung: Syncany ist noch Alpha-Software. Das bedeutet ihr solltet kritische Daten noch auf eine andere Weise gesichert haben, bevor ihr sie Syncany anvertraut.

Syncany und das SFTP-Plugin

Syncany lässt sich zur Zeit über Debian Experimental installieren, wo es vermutlich eine Weile bleiben wird, da die Entwicklung seit Ende letzten Jahres sich deutlich verlangsamt hat und der Hauptentwickler gebeten hat diese Version nicht für eine stabile Debian/Ubuntu-Distribution betreuen zu müssen. Installieren lässt sie sich dennoch ganz einfach mit

apt install syncany -t experimental

Mit sy plugin list erhaltet ihr eine Übersicht aller zur Verfügung stehenden Plugins. Sobald Syncany für stabil erklärt wurde, plane ich zumindest das GUI- und SFTP-Plugin für Debian zu paketieren. Zur weiteren Verfügung stehen momentan Plugins für: Azure, Dropbox, Flickr, FTP, Raid0, Amazon S3, Samba, Openstack Swift und Webdav.

Das SFTP-Plugin wird mit sy plugin install sftp installiert und findet sich danach in ~/.config/syncany/plugins/lib wieder.

Ladet zuerst euren öffentlichen SSH-Schlüssel zum SSH-Server hoch, z.b. mit ssh-copy-id. Wechselt danach in das Verzeichnis, dass in Zukunft mit dem SFTP-Server synchronisiert werden soll und gebt nacheinander das Folgende ein:

  • sy init
  • sftp
  • Name des Hosts oder die IP-Adresse
  • Name des Benutzers auf dem Server
  • Pfad zum privaten SSH-Schlüssel
  • Password des privaten Schlüssels
  • Pfad zum Verzeichnis auf dem Server
  • Port des SSH-Servers

Das wars. Ihr könnt neue Dateien danach mit sy up hochladen.

Was bietet Syncany noch? Wie bei Dropbox könnt ihr Links zu euren Dateien mit anderen Leuten teilen. Je nach Plugin ist dieses Merkmal anders ausgearbeitet. Automatische Synchronisation gibt es mit sy daemon.

Fazit und Ausblick

Trotz des Alpha-Status ist Syncany ein nützliches Werkzeug für mich mit großem Potenzial. Das Grundkonzept ist absolut stimmig, Daten werden lokal verschlüsselt, externer Speicher kann beliebig gewählt werden. Das ist äußerst flexibel und kann an die eigenen Bedürfnisse angepasst werden. Ein funktionierendes Webfrontend wie bei Owncloud wäre natürlich noch super. Mit den jetzigen Plugins bin ich jedoch schon zufrieden. Das Hauptproblem ist momentan die geringe Entwicklungstätigkeit, weswegen Syncany vorerst nicht in Ubuntu oder einer stabilen Debianversion erscheinen wird. Wer das ändern möchte, sollte Syncany weiter testen, mögliche Fehler melden oder gegebenenfalls sogar mitentwickeln.

luckyBackup: Die benutzerfreundliche Datensicherung mit rsync

Was Backup-Lösungen angeht halte ich es am liebsten einfachRsync ist immer noch mein bevorzugtes Werkzeug für die Datensicherung und in Kombination mit Dirvish setze ich es noch heute ein, um wichtige Informationen auf meinem Laptop und dem entfernten vServer zu sichern. Nun hat rsync auch so seine Tücken. Insbesondere kann ich mir die Dutzenden von Kommandozeilenoptionen nicht alle merken und die Handhabung lässt sich schwer mit dem Wort intuitiv umschreiben. Es stellt sich immer mal wieder die Frage, ob es nun das Ziel- oder Quellverzeichnis war, das zuerst angegeben werden muss.

Für die meisten populären Kommandowerkzeuge gibt es auch eine grafische Lösung, so auch in diesem Fall mit luckyBackup. Im Prinzip ist es ein Frontend für rsync mit weiteren Annehmlichkeiten wie Sicherungsprofile mit separat einstellbaren Aufgaben, einem Zeitplaner und einer übersichtlichen Menüstruktur. Alle wesentlichen Funktionen sind hinter leicht zu findenden Schaltern und Knöpfen versteckt.

LuckyBackup

Daten sichern

Eine simple Sicherung des Dokumentenordners funktioniert wie folgt. Nach dem Klicken auf “Hinzufügen” erscheint ein neuer Dialog. Hier sollte man sich zuerst einen aussagekräftigen Namen für die Aufgabe ausdenken, z.B. “Dokumente sichern” und als Typ “Sichere Quelle innerhalb des Ziels” wählen. Danach als Quellverzeichnis den zu sichernden Ordner auswählen und den Ort, vielleicht eine externe Festplatte, wo das Ganze abgelegt werden soll. Das wars im Prinzip auch schon. Interessant ist die Möglichkeit Schnappschüsse anzulegen, hierzu gleich mehr. LuckyBackup bietet noch eine Reihe zusätzlicher Funktionen wie das Sichern zu einem entfernten Server oder das Ausschließen bestimmter Dateien von der Sicherung an. Letztere Option ist gerade dann sinnvoll, wenn man z.B. den gesamten Home-Ordner sichern möchte, jedoch auf temporäre Dateien verzichten kann. Der zweite Sicherungstyp “Synchronisiere Quelle und Ziel” ist vor allem dann nützlich, wenn man Daten häufig mit sich herumträgt und diese permanent bei allen Geräten auf den neusten Stand gebracht werden sollen. Zur reinen Datensicherung empfiehlt sich aber die Option “Sichere Quelle innerhalb des Ziels”.

 

Aufgabendialog

Eine nützliche Option bei rsync und luckyBackup ist das Simulieren des eigentlichen Backupvorgangs. Ein gesetzter Haken bei “Simulation” reicht aus, um vorher nachzuvollziehen, ob das Programm auch das Richtige tun wird. Hat man sich Gewissheit verschafft, genügt ein Klick auf  “Ausführen”, um die Datensicherung zu starten.

 

Schnappschüsse

Schnappschüsse

Ein weiteres nützliches Merkmal von luckyBackup ist die Sicherungsverwaltung und das Wiedereinspielen von Schnappschüssen. Im Aufgabendialog kann man festlegen wie viele Schnappschüsse vorgehalten werden sollen. Unter Aufgabe -> Verwalte Sicherung besteht nun die Möglichkeit einen älteren Schnappschuss mit dem derzeitigen Systemzustand zu vergleichen und bei Bedarf z.B. eine irrtümlich gelöschte Datei wiederherzustellen.

Möchte man sich das manuelle Sichern langfristig sparen, bietet das Programm auch die Möglichkeit die Datensicherung mit Hilfe eines Cronjobs regelmäßig auszuführen. Die Funktion versteckt sich hinter “Zeitplaner”. Im Prinzip wird der tatsächlich benutzte rsync-Befehl in die crontab-Datei des Benutzers eingetragen und dann zum festgelegten Zeitpunkt ausgeführt. Im übrigen bietet luckyBackup auch immer die Möglichkeit eine solche Aufgabe vorher zu überprüfen und den rsync-Befehl direkt anzuzeigen, wodurch sich die Möglichkeit ergibt endlich die Syntax zu lernen. Die Anwendung hilft sozusagen dabei, sich selbst überflüssig zu machen.

Fazit

Ich mag luckyBackup, weil es einfach gestaltet ist und die komplizierten Details sinnvoll versteckt. Dabei greift es auf die Stärken von rsync zurück, überträgt nur tatsächlich geänderte Daten und lässt sich sowohl für die Sicherung mit wiederherstellbaren Schnappschüssen als auch zur Datensynchronisation einsetzen. Insgesamt eine benutzerfreundliche Alternative zu reinen rsync-Befehlen auf der Konsole.

My Free Software Activities in March 2016

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian LTS

This was my second month as a paid contributor and I have been paid to work 14,25 hours on Debian LTS. During this month I worked on the following things:

DSA-3530-1: . . . → Weiterlesen: My Free Software Activities in March 2016

Debian mit FreeBSD-Kernel: GNU/kFreeBSD

Im Jahr 2013 kam ich zum ersten Mal mit Debian GNU/kFreeBSD in Berührung als ich an einem Patch für libgphoto2 arbeitete. Galt GNU/kFreeBSD zu Zeiten von Debian 6 “Squeeze” noch als technische Vorschau, war es in Debian 7 “Wheezy” schon eine offiziell unterstützte Debian-Architektur. Als Teil von Debian Testing konnten demnach Kompilierungsfehler von GNU/kFreeBSD die Veröffentlichung eines Pakets verhindern. Dieser Status hat sich mit der aktuellen stabilen Debian-Veröffentlichung nun erneut geändert, leider aber zum Schlechteren. GNU/kFreeBSD ist keine offizielle unterstützte . . . → Weiterlesen: Debian mit FreeBSD-Kernel: GNU/kFreeBSD

KeePassX 2: Ein sicherer und übersichtlicher Passwortverwalter

Einst gehörte ich zu den Leuten, die sich ihre Passwörter anhand mehr oder weniger komplizierter Sätze gemerkt haben, wie z.B. Captain Jack Sparrow ist ein Pirat im Film Fluch der Karibik aus dem Jahr 2003 alias CJSiePiFFdKadJ2003. Das Ganze klappte eine Weile ganz gut, zumindest solange ich mir nur eine Handvoll Kennwörter für “wichtige” Seiten merken musste. Für den Rest genügte ja auch das Standardpasswort. Die Probleme hierbei sind offensichtlich: Erstens, warum selbst für weniger wichtige Seiten immer ein und . . . → Weiterlesen: KeePassX 2: Ein sicherer und übersichtlicher Passwortverwalter

My Free Software Activities in February 2016

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian LTS

This was my first month as a paid contributor and I have been paid to work 11,25 hours on Debian LTS. During this month I worked on the following things:

Released . . . → Weiterlesen: My Free Software Activities in February 2016

Drei Jahre in (fast) 1000 Worten

Debian-Logo

Es war einmal in einem anderen Universum, da war ein Schreiber dessen Feder in den letzten drei Jahren täglich neue und gefeierte Artikel entsprangen. Er lebte in Reichtum und Überfluss bis ihn sieben betrunkene Zwerge für seine Lügen vermöbelten. Das Ende.

Zurück in der Wirklichkeit, wer kann sich noch an diesen Artikel erinnern. Ich beinahe schon nicht mehr. Zwischen diesem 3. Oktober 2012 und dem heutigen Tag hat sich viel Neues in Sachen Debian zugetragen, Zeit das ganze Mal . . . → Weiterlesen: Drei Jahre in (fast) 1000 Worten