Serendipity-Camp 2016 ...

So viele Dinge passieren gerade, dass ich kaum noch hinterher komme.

 

Am letzten Wochenende durften wir einmal mehr, vom Community-Angebot des Linuxhotels Gebrauch machen und es war - wie immer (!) - toll. In diesem Jahr waren wir - anders als im letzten Jahr - nur zu sechst, was aber der guten Stimmung und der produktiven Atmosphäre keinen Abbruch getan.

 

Das absolute Highlight war aber die selbst gemachte Zigeunersauce im Haus Grossjung, wo wir Samstag Mittag zum Essen waren. Ein Beweisfoto findet sich bei Matthias im Blog (Link unten). Die Lokalität ist eine echte Empfehlung, das Essen ist lecker (und reichlich) und die Bedienung sehr nett.

 

Inhaltlich finde ich besonders erwähnenswert, dass die neue Webseite so gut wie fertig ist - es fehlen nur noch Kleinigkeiten - und dass wir jetzt einen Code of Conduct haben.

 

Zusätzlich haben wir noch das folgende Release 2.1 und auch die Kompatibilität zu PHP 7 besprochen, Tickets bearbeitet und neue eröffnet, sowie einen MySQL-Bug geklärt (wir müssen die Codepage von UTF8 auf UTF8-MB4 umstellen).

 

Teilgenommen haben in diesem Jahr (Links gehen auf die Blogartikel zum diesjährigen Camp oder das Blog):

 

Parallel zu uns haben die Free Beers Dealer (Free BSD'ler) einen Hackathon veranstaltet. Toll ist, dass das Linuxhotel nicht nur auf Linux orientierte Open-Source-Projekte beherbergt und dass die FreeBSD-Entwickler ebenfalls keine Berührungsängste haben.

 

Sobald er fertig ist, kommt hier der Link zum offiziellen Artikel hinein.

Let's Encrypt ...

Wie versprochen, kommt jetzt auch mal ein Artikel, wie man Let's Encrypt für die eigenen Domains nutzen kann. Aus "in ein paar Tagen" wurden leider drei Monate.

Der Grund für die Verzögerung ist neben der fehlenden Zeit, einen vernünftigen Artikel zu verfassen, die schiere Menge an Implementationen des zugrundeliegenden ACME-Protokolls. Den Original-Client möchte ich nicht benutzen, da er mir zu viele Änderungen am System (als root) vornimmt. acme-tiny schien eine Zeit lang das Mittel der Wahl zu sein.

Das Tool, was ich jetzt aber benutze, ist AcmeFetch von Tobias Oetiker, weil es wirklich einfach und damit für jeden nutzbar ist und weil ich den Macher kenne ;-) Es muss nicht als root-User laufen, kann aber.

Die Vorarbeiten sind ein kleines wenig aufwändiger, das eigentliche Erstellen lassen der Zertifikate und auch der Refresh alle 90 Tage ist aber sehr, sehr einfach.

Vorarbeiten:

Einen Userkey erzeugen, mit dem die künftigen Zertifikate bestellt werden.


# Einen Usernamen festlegen, der wird später gebraucht
$ export USER="Euer Lieblingsusername"

# Key erzeugen
$ openssl genrsa 4096 > ${USER}.key
Generating RSA private key, 4096 bit long modulus
...................................................................................++
..................................++
e is 65537 (0x10001)
 

AcmeFetch basiert auf Perl, daher sollte Perl installiert sein.


# CentOS
$ yum install perl-core openssl-devel gcc unzip

# Debian/Ubuntu
$ apt-get install perl libssl-dev gcc unzip
 

AcmeFetch besorgen:

Danach das Repository klonen oder ein Release herunterladen, oops, das aktuelle Release heisst "Dirk".


$ git clone https://github.com/oetiker/AcmeFetch.git AcmeFetch.git
 

Jetzt geht es los:

Wenn AcmeFetch gebaut wird, werden alle benötigten Perl-Module im Zielverzeichnis/lib installiert. Das bestehende System wird nicht verändert. Tobi empfiehlt $HOME/opt/acmefetch, mir ist das "reale" /opt lieber.


$ ./configure --prefix=/opt/acmefetch

$ make

# sudo nur nötig, wenn das Ziel-Verzeichnis als User nicht schreibbar ist
$ sudo make install
 

Zertifikat konfigurieren:

Im Verzeichnis /opt/acmefetch/etc liegt eine Musterkonfigurationsdatei acmefetch.cfg.dist, die als Muster benutzt werden kann. Ich habe die etwas abgewandelt, so dass es für mich passt.

Für meine Version muss das Verzeichnis /etc/letsencrypt schreibbar sein (da liegen alle "Let's Encrypt"-Zertifikate auf meinem Server). ddeimeke.key müsst Ihr mit Eurem Schlüssel ersetzen.


{

    "GENERAL": {

        "ACMEstaging": "acme-staging.api.letsencrypt.org",

        "ACMEservice": "acme-v01.api.letsencrypt.org",

        "accountKeyPath": "/etc/letsencrypt/ddeimeke.key"

    },

    "CERTS": [

        {

            "certOutput": "/etc/letsencrypt/deimeke.net.crt",

            "certFormat": "PEM",

            "keyOutput": "/etc/letsencrypt/deimeke.net.key",

            "keyFormat": "PEM",

            "chainOutput": "/etc/letsencrypt/chain.crt",

            "chainFormat": "PEM",

            "commonName": "deimeke.net",

            "SITES": {

                "deimeke.net": {

                    "challengeHandler": "LocalFile",

                    "challengeConfig": {

                        "www_root": "/srv/www/deimeke.net/",

                    }

                },

                "www.deimeke.net": {

                    "challengeHandler": "LocalFile",

                    "challengeConfig": {

                        "www_root": "/srv/www/deimeke.net/",

                    }

                }

            }

        }

    ]

}

 

Der Betriebssystem-User, der das Zertifikat erstellen lassen möchte, benötigt Schreibrechte im DocumentRoot-Verzeichnis der Domain (genauer im Unterverzeichnis .well-known/acme-challenge)

Achtung: Es ist sinnvoll, vor dem eigentlichen Erstellen der Zertifikate eventuell vorhandene .htaccess-Dateien umzubennen (beispielsweise die von ownCloud).

Zertifikat erstellen:


$ /opt/acmefetch/bin/acmefetch --cfg=/opt/acmefetch/etc/deimeke.net.cfg --verbose
* ## deimeke.net ##
* Cert /etc/letsencrypt/deimeke.net.crt is missing. Generating.

* talk to acme-v01.api.letsencrypt.org
* authorize deimeke.net via /srv/www/deimeke.net/
* authorize www.deimeke.net via /srv/www/deimeke.net/
/tmp/9QmdSJnbNt.cfgGenerating a 2048 bit RSA private key
.....................................+++
.....................................................................................................+++
writing new private key to '/etc/letsencrypt/deimeke.net.key.13854'
 

Wenn Ihr es direkt noch einmal ausführt, wird kein neues Zertifikat erstellt, nur, wenn --force gesetzt ist oder 30 Tage vor Ablauf des vorhandenen Zertifkats oder, wenn Ihr in der Konfiguration etwas verändert habt.

Webserver konfigurieren: (bei mir Apache)

Dafür habe ich mir dieses kleine Shellskript gebastelt.


#!/bin/bash
set -o errexit

if [[ -z "$2" ]]; then
    echo
    echo "ERROR: usage $0 domain ipaddress"
    echo
    exit 1
fi

DOMAIN=$1
IPADDRESS=$2

echo "<VirtualHost ${IPADDRESS}:443>
    ServerName ${DOMAIN}
    DocumentRoot /srv/www/${DOMAIN}

    ErrorLog /var/log/httpd/${DOMAIN}/error.log
    CustomLog /var/log/httpd/${DOMAIN}/access.log combined

    Header always set Strict-Transport-Security "
max-age=15768000"
    SSLEngine On
    SSLCipherSuite 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:CAMELLIA:!kRSA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK'
    SSLProtocol All -SSLv2 -SSLv3
    SSLHonorCipherOrder On
    SSLCompression off
    SSLCertificateFile /etc/letsencrypt/${DOMAIN}.crt
    SSLCertificateKeyFile /etc/letsencrypt/${DOMAIN}.key
    SSLCertificateChainFile /etc/letsencrypt/intermediate.crt

    <Directory \"/srv/www/${DOMAIN}\">
        allow from all
        Order allow,deny
        AllowOverride All
        Options -Indexes
        Require all granted
    </Directory>
</VirtualHost>"

 

Weitere Domains:

Weitere Konfigurationen lassen sich mit einem einfachen sed-Kommando erstellen.


$ sed 's/deimeke.net/yawnrz.com/g' /opt/acmefetch/etc/deimeke.net.cfg > /opt/acmefetch/etc/yawnrz.com.cfg

$ /opt/acmefetch/bin/acmefetch --cfg=/opt/acmefetch/etc/yawnrz.com.cfg --verbose
 

Windows mit Linux-Kernel?

Mit der letzten Ankündigung bin ich tatsächlich der Meinung, dass wir den Beginn der Umstellung von Windows auf einen Linuxkernel sehen. Es mehren sich die Zeichen, dass die Integration von Windows und Linux - durch Microsoft getrieben - immer stärker wird.

Dem vorangegangen sind eine Reihe von anderen Meldungen.

Windows Containers mit Docker.

Der Datenbankserver MS SQL wird auf Linux portiert.

OpenSSH wird in Windows Server 2016 enthalten sein.

Nebenbei: Wer es schafft das Takswarrior-Kommando "task color" im Linux-Subsystem von Windows 10 zu zeigen, bekommt ein Taskwarrior-T-Shirt und einen Sticker (Twitter) ;-)

Die wilde dreizehn ...

Huch, das kam überraschend, gestern wurde die Blogsoftware meines Vertrauens 13 Jahre alt, so etwas ist selten in der heutigen Zeit.

Danke an alle Mitwirkenden!

Nachtrag: Ich muss natürlich erwähnen, dass es die Software schon seit 2002 gibt und gestern "nur" der Namenstag war.

Taskwarrior Workflow ...

Spannend und eine Quelle für Inspirationen könnte die Workflow-Seite werden, die mit diesem Newsitem angekündigt wurde.

Wir sind interessiert daran, Euren Workflow zu erfahren, schickt ihn in Englisch an support@tasktools.org oder in Deutsch an mich, ich übernehme dann die Übersetzung.

Taskwarrior 2.5.1 ...

Taskwarrior 2.5.1 wurde gestern veröffentlicht. Wie die Versionsnummer vermuten lässt, gibt es keine neuen Features.

(Hat eigentlich irgendwer einen Link, der erklärt, was "Semantic Versioning" ist? Dann könnte ich den als Erklärung dazu kopieren.)

Semantic Versioning, danke Steffen.

Was neu ist, steht im ChangeLog, zusammengefasst:

  • Bug Fixes
  • Performance-Verbesserungen
  • Neue Bugs, die alten sind ja gefixt

Recommended for all users, because it just works better.

Die Geschichte wiederholt sich ...

Ich habe es versucht, wirklich. Ich habe ein halbes Jahr durchgehalten, aber es geht nicht. Thunderbird ist nicht mein Mailclient. Je länger ich suche, desto mehr merke ich, dass für mich nichts an Claws-Mail heran kommt, obwohl ich mit einigen Punkten unzufrieden bin.

Die Gründe sind die gleichen, wie sie es schon einmal waren, Thunderbird ist für die Menge an Mails und das, was ich mit Mails mache viel zu schwerfällig. Ich habe gemerkt, dass ich den Kalender in Thunderbird nie genutzt habe, damit entfällt der einzige Zusatznutzen, den Thunderbird gegen Claws-Mail hat.

Und, egal wie ich es drehe, Geschwindigkeit spielt gerade bei Mails eine grosse Rolle.

FLOSS-Perlen ...

Ich bin immer auf der Suche nach FLOSS-Perlen.

Wenn Ihr also FLOSS-Perlen findet, wäre ich sehr froh, wenn Ihr Eure Fundstücke in den Kommentaren oder besser noch in eigenen Blog-Artikeln beschreibt und hier verlinkt.

Wichtig! Ich suche nicht nach dem x-ten Artikel, der eine Software beschreibt, die eh schon jeder kennt, es sei denn sie bietet etwas so besonderes, dass sich die Erwähnung lohnt.

Dabei schreibe ich ganz bewusst FLOSS, weil ich die Streitigkeiten zwischen der Free-Software-Definition und der Open-Source-Definition nicht mitmachen möchte.

Grundlegend wollen beide Gruppierungen das gleiche und ich fühle mich eher zur "Open Source" als zur dogmatischeren "Free Software" hingezogen. Ich bin der Meinung, dass der Streit "unserer Bewegung" eher schadet als nützt.

Definition von "Freie Software" nach Wikipedia:

  • Die Freiheit, das Programm auszuführen, wie man möchte, für jeden Zweck.
  • Die Freiheit, die Funktionsweise des Programms zu untersuchen und eigenen Bedürfnissen der Datenverarbeitung anzupassen.
  • Die Freiheit, das Programm weiterzuverbreiten und damit seinen Mitmenschen zu helfen.
  • Die Freiheit, das Programm zu verbessern und diese Verbesserungen der Öffentlichkeit freizugeben, damit die gesamte Gemeinschaft davon profitiert.

Definition von "Open Source" nach Wikipedia:

  • Die Software (das heisst der Quelltext) liegt in einer für den Menschen lesbaren und verständlichen Form vor.
  • Die Software darf beliebig kopiert, verbreitet und genutzt werden.
  • Die Software darf verändert und in der veränderten Form weitergegeben werden.

testssl.sh ...

In den kommenden Tagen werde ich ein paar kleinere Skripte und Tipps rund um Let's encrypt veröffentlichen. Let's encrypt bietet freie Zertifikate, die 90 Tage gültig sind und jetzt in der offenen beta-Phase noch einigen Restriktionen unterworfen sind. So lassen sich maximal zehn Registrierungen in drei Stunden durchführen und maximal fünf Zertifikate pro Domain. Diese Limits sollen nach Ende der beta-Phase angepasst werden.

Hier möchte ich Euch jetzt das Skript testssl.sh (GitHub) von meinem Namensvetter Dirk Wetter ans Herz legen.

Das Skript überprüft eine SSL- oder TLS-Verbindung auf richtige Konfiguration und auf Sicherheitslücken. Aufruf geht ganz leicht mit (beispielsweise):

./testssl.sh https://d5e.org/

Das deutsche Git-Buch ...

Nachdem der Verlag Open Source Press leider zum 31. Dezember 2015 die Pforten geschlossen hat, haben alle Autoren die Rechte an Ihren Büchern komplett übertragen bekommen.

Valentin Haenel und Julius Plenz, die beiden Autoren von "Git - Verteilte Versionsverwaltung für Code und Dokumente" haben sich entschieden Ihr Buch unter einer Creative Commons Lizenz frei zu geben.

Webseite, das Buch, das Repository und Foliensätze für eine Schulung.

Ich zitiere einmal aus der README.md-Datei:

Falls Du ein DocBook-Experte und/oder Webprogrammierer bist, und denkst: Das Design könnte man ja wohl mal professionalisieren – dann gerne! Ich habe aus den Quelldateien nur schnell eine halbwegs ansehnliche Webseite zusammengestoppelt. Auch sind gegebenenfalls eine PDF- oder EPUB-Version interessant; falls Du dies übernehmen willst, gerne!

Serendipity 2.0.3 ...

Das Jahr fängt ja gut an. :-)

Gerade eben sehe ich dass Serendipity 2.0.3 freigegeben wurde. Da es um eine Sicherheitslücke geht, ist das Update strengstens empfohlen.

Hier im Blog läuft aus Testzwecken die Alpha-Version.

openSUSE Leap 42.1 ...

Da kann man mal sehen, wie viel Zeit es braucht bis ein Artikel fertig wird ...

Wer einen Distributionstest sucht, sollte meiner Ansicht nach lieber bei Pro-Linux oder Michael Kofler nachlesen.

Meine Anmerkung ist eher "philosophischer Natur" ;-)

Zum Einen finde ich es klasse, dass sich bei OpenSUSE endlich wieder etwas getan hat. Tot gesagte leben bekanntlicherweise länger. SUSE war "meine Einstiegsdroge" in die Linuxwelt und ich hätte es sehr schade gefunden, wenn diese Distribution einfach sang- und klanglos verschwunden wäre.

Zum Anderen gefällt mir das Konzept sehr (keine Angst, ich denke derzeit nicht darüber nach, zu wechseln). Es bietet eine sehr gute Alternative zu bestehenden Distributionen, die sich (bis jetzt) bezogen auf Softwareversionen ganz grob in drei Lager einteilen liessen:

  1. Abgehangen (ich möchte nicht veraltet sagen, weil es nicht passt), stabile Software, die lange unterstützt wird. Vertreter dieser Gattung finden sich besonders bei den Server-Systemen, seltener auf dem Desktop.
    • CentOS
    • Debian
    • Ubuntu LTS

  2. Schnell drehend, relativ viele Updates, aktuelle Software, kurze Support-Zeiträume. Typische Verwendung als Desktopsystem für (ambitionierte) Endbenutzer.
    • Fedora
    • Ubuntu (ohne LTS)

  3. Ständig aktualisierend ("rolling release"), meist topaktuelle Software häufig zu Lasten der Stabilität. Wer nicht regelmässig mitspielt ("aktualisiert") manövriert sich in Schwierigkeiten.
    • ArchLinux
    • Sabayon
    • Gentoo
    • OpenSUSE Tumbleweed

Klar, dass noch wesentlich mehr Distributionen gibt, die obigen seien nur als Beispiele genannt.

Es gibt natürlich Zwitter, so lassen sich die abgehangenen Systeme durch zusätzliche (nicht vom Hauptrojekt unterstützte) Paketquellen mit aktuellerer Software bestücken.

Und diesen "Zwitter-Weg" geht jetzt auch OpenSUSE Leap. Sie bauen auf der stabilen Basis von SUSE Enterprise Linux auf und portieren aktuelle Applikationen aus Tumbleweed zurück in die Distribution und unterstützen sie auch offiziell.

In der Summe ist das eine Mischung aus der ersten und der dritten gerade genannten Kategorie. Für mich ist dieser Weg das Beste aus allen Welten für Endanwender und ich hoffe, dass einige weitere Distributionen dem Beispiel folgen werden. Allerdings, das darf man nicht vergessen, kann der hohe Takt auch zu Problemen führen.

Termux ...

Termux ist eine Linux-Umgebung (und Terminal-Emulator) für Android, damit wäre schon fast alles gesagt, wenn es nicht so toll und zu dem noch Open-Source-Software wäre :-)

In der App lassen sich nämlich Pakete via apt nachinstallieren und das ohne, dass man für das Gerät root-Rechte benötigt. Neben den üblichen Verdächtigen, wie beispielweise openssh oder vim gibt es auch ein Paket für Taskwarrior, das direkt funktioniert. Zusammen mit dem Taskserver lässt sich so auch bequem synchronisieren.

Der Entwickler ist sehr aktiv und steht Paketwünschen sehr wohlwollend gegenüber. Am einfachsten kann man vermutlich einfach einen Request im entsprechenden GitHub-Projekt einstellen.

Den Tipp zu Termux hat mir Wim (hast Du eigentlich eine Webseite?) auf der OpenRheinRuhr gegeben.

Wallabag ...

Nachdem ich die beteiligten Komponenten zur Entstehung des Linkdumps einmal aufgeschrieben hatte, kam mir das alles mehr als merkwürdig und viel zu kompliziert vor.

"Drüben", bei Google+, wurde mir nochmals Wallabag als Lösung zum Selberhosten ans Herz gelegt. Als ich das zuletzt "vor 100 Jahren" getestet habe, hat es mir nicht gefallen.

Mittlerweile hat sich da aber eine Menge getan und ich bin schwer begeistert, wie toll Wallabag mittlerweile geworden ist. Very well done!.

Wallabag ist eine Webapplikation, mit der sich einfach Webseiten lesen lassen. Dabei sorgt sie dafür, dass das ganze Brimborium um den Haupttext abgeschnitten wird und so ein sehr gut lesbarer Text entsteht, der ablenkungsfrei gelesen werden kann. Die so entkernten Webseiten lassen sich auch als E-Book (epub in Version 3, Mobipocket oder PDF) herunterladen und mit einem entsprechenden Readern lesen.

Von dem Export mache ich aber keinen Gebrauch, weil es auch eine sehr gute Android-App gibt (an eine App für iOS und eine App für Windows Phone wurde ebenfalls gedacht).

Prima finde ich auch, dass sich Wallabag mir der Share-Funktion von Firefox nutzen lässt oder mit einem Bookmarklet oder mit dieser Extension.

Solltet Ihr die Dokumentation benötigen, rate ich stark, die englischsprachige zu nehmen, die Doku in deutscher Sprache ist veraltet und zum Teil falsch.

Der Workflow bei mir hat sich jetzt so verändert, dass ich gute Artikel in der Wallabag App favorisiere und auf gelesen setze. Das folgende kleine Skript erstellt mir dann das Gerüst für den Linkdump.

Ach ja, wer bei mir einen Account möchte, kann sich gerne melden.

#!/bin/bash

# wget_options="--no-check-certificate --quiet -O -"
wget_options="--quiet -O -"

wallabag_url="<DEINE URL>"
wallabag_token="<DEIN TOKEN>"
wallabag_userid="<DEINE USERID>"

echo
date +"Linkdump %V/%G ..."
echo

wget ${wget_options} "${wallabag_url}?feed&type=fav&user_id=${wallabag_userid}&token=${wallabag_token}" \
    | egrep "<title>|<link>" \
    | egrep -v "${wallabag_url}|wallabag — fav feed" \
    | while read line; do
    if [[ -z "${title}" ]]; then
        title=$(echo ${line} | sed 's/<.\{0,1\}title>//g')
    else
        link=$(echo ${line} | sed 's/<.\{0,1\}link>//g')
        echo "<a href=\"${link}\">${title}</a>"
        echo
        unset title
        unset link
    fi
done

Entstehung des Linkdumps ...

Mittlerweile bin ich wieder mehrfach darauf angesprochen worden, wie mein Linkdump entsteht, den ich jeden Freitag veröffentliche. Ihr habt es nicht anders gewollt ... ;-)

Die folgenden Softwarekomponenten und Dienste sind daran beteiligt:

Auf meinem Server läuft die RSS Bridge, die mir die öffentlichen Postings einiger ausgewählter Google+ und Twitter Accounts als Feed zur Verfügung stellt.

RSS-Feeds bilden die Hauptquelle meiner Informationen, alle Feeds laufen im selbst gehosteten Tiny Tiny RSS auf (wer einen Account möchte, kann sich gerne melden). Dort lese ich die Feeds meistens über das Web. Ich nutze das tt-rss-feedly-theme, weil mir das mitgelieferte nicht gefällt.

Auf dem Tablet nutze ich manchmal News+ Premium mit der Tiny Tiny RSS Extension. Damit die Synchronisation der gelesenen Nachrichten mit Tiny Tiny RSS funktioniert, muss dort noch das TT-RSS News+ plugin installiert werden.

In Tiny Tiny RSS kann man Artikel mittels "Shift-s" veröffentlichen, das mache ich für Artikel, die länger sind und, die ich später lesen möchte (Basis für den Linkdump). In der News+ App kann man Artikel nur markieren, das entspricht "s" in Tiny Tiny RSS, die so markierten Artikel bearbeite ich in der Webansicht mit "s" und dann "Shift-s" nach, damit sie veröffentlicht werden.

Veröffentlichte Artikel landen in Tiny Tiny RSS in einem Feed, die URL findet man unter "Aktionen/ Einstellungen/ Feeds/ Veröffentlichte und geteilte Artikel / erzeugte Feeds", dann auf "Zeige URL an".

Diesen Feed stecke ich (noch) in If this then that und lasse die Einträge an Pinboard weiterleiten und mit dem Tag "2do" versehen. Das "noch" bezieht sich darauf, dass ich die Funktionalität gerne durch ein selbst geschriebenes Python-Skript ablösen möchte (ein externer Dienst weniger).

Favorisierte Tweets aus Twitter landen ebenfalls in Pinboard, allerdings ohne weiteres externes Tool.

Die Links in Pinboard schaue ich durch und bei dem, was auf die Leseliste soll, suche ich nach Druckversionen der Onlineartikel, nutze den entsprechenden Link zur Druckseite - der Orginallink wandert in das description-Feld - und gebe den Tag "crofflr". Für Pinboard gibt es neben vielen anderen auch Pindroid für Android und eine Erweiterung für Firefox.

Crofflr ist ein Dienst, der (konfigurierbar) einmal wöchentlich - bei mir Freitagmorgen um 5:00 Uhr - alle ungelesenen Pinboard-Links mit dem Tag "crofflr" liest und aus den beteiligten Seiten ein epub baut und in der Dropbox ablegt (ein guter Grund Dropbox für nicht sicherheitsrelevante Daten weiter zu nutzen). Crofflr kann übrigens auch andere Dienste, wie beispielsweise Pocket, Longform.org, Longreads oder The Feature anzapfen. Als ich noch den Kindle benutzt habe, habe ich mir statt der epubs die entsprechenden Mobipocket-Dateien für den Kindle erzeugen und per E-Mail zusenden lassen.

Crofflr sorgt auch dafür, dass die für das epub bzw. mobi benutzten Links auf gelesen gesetzt werden. Die Links, die nicht verabreitet werden konnten, bleiben auf ungelesen stehen. Nach dem Crofflr-Lauf vergebe ich für alle "crofflr" etikettierten Links das Tag "linkdump" und lösche den Tag "crofflr".

Auf dem Tablet benutze ich Moon+ Reader Pro als Anwendung zum Lesen.

Spätestens am Donnerstag oder nach Lektüre des epubs schaue ich mir alle "linkdump"-Links in Pinboard an und lösche die, die ich nicht veröffentlichen möchte, passe die Beschreibung und/oder die URL bei Links an, die veröffentlicht werden sollen. Artikel, die ich nicht geschafft habe, bekommen wieder den Link "crofflr" und werden auf ungelesen gesetzt, so dass sie am Freitag nochmals auf dem Tablet landen.

Ein kleines Bashskript liest alle mit "linkdump" bezeichneten Links und die Ausgabe dient als Basis für den Linkdump, der am Freitag erscheint.

#!/bin/bash

token="ddeimeke:MEINTOKEN"
wget_option="--no-check-certificate --quiet -O -"

echo
date +"Linkdump %V/%G ..."
echo

wget ${wget_option} "https://api.pinboard.in/v1/posts/all?auth_token=${token}&tag=linkdump" \
    | awk '/^<post href/ {print}' \
    | sed 's/.*href=\("[^"]*"\).*description="\([^"]*\)".*/<a href=\1>\2<\/a>\n/'

Die mit "linkdump" bezeichneten Artikel lösche ich, wenn der Artikel in Serendipity gespeichert wurde.

Das liest sich aufgrund der Länge vermutlich viel komplizierter als es ist.

Was mir nicht gefällt, ist, dass so viele verschiedene Dienste beteiligt sind, das nervt.

Zum Thema "Kostenloskultur bei Android Nutzern": News+ Premium und Moon+ Reader Pro kosten Geld, Pinboard und Crofflr ebenfalls.