Skip to content

Blogparade Webspace-Inventar ...

An Blogparaden habe ich ja schon hundert Jahre nicht mehr teilgenommen. Ein Grund mehr, es mal wieder zu tun.

Christoph fragte: Was ist auf deinem Webspace installiert?

Zuerst einmal die sichtbaren Dienste:

Schon sehr lange kommt Serendipity als Blogsoftware zum Einsatz. Über die Vorzüge habe ich schon viel geschrieben. Das möchte ich hier nicht ausrollen.

Piwik sorgt für die Nutzerstatistik.

Wenn einmal ein Wiki gebraucht wird, hilft DokuWiki.

Yourls ist ein URL-Verkürzungsdienst, mit dem ich beispielsweise d5e.org/technik auf eine statische Seite hier im Blog umleite.

Intern oder auf Einladung:

Tiny Tiny RSS ist mein Feedreader, auch darüber habe ich hier schon einiges geschrieben.

Mit Kanboard plane ich private Projekte. Das Tool ist gut und die Aussage des Programmierers "No fancy technologies, we don't care about the last hipster framework" finde ich auch klasse. Minimalistisch, schnell und gut (steht nicht im Weg).

Den "Datenspeicherdienst" ownCloud muss ich auch nicht weiter erklären, oder.

Roundcube ist mein Webmailer.

Auf dem Serendipity-Treffen habe ich mich von Adminer überzeugen lassen. Das Ding ist rasend schnell und nicht nur für MySQL / MariaDB geeignet.

Für Show your Places hätte ich gerne eine aktuellere Alternative. Hiermit kann man Karten auf OpenStreetMap-Basis erstellen.

Ausgemustert, nicht aufgrund mangelnder Qualität, sondern, weil ich sie nicht mehr benötige:

Trac, Projekttool mit Wiki, Quellcode-Browser und Ticket-System.

Etherpad Lite, kollaborativer Editor.

Sticky Notes als Pastebin.

Firtz, Podcast-Publishing.

phpMyAdmin, Datenbankverwaltungstool.

Horde Groupware Webmail Edition, Mail, Kalender und mehr.

Tiny Tiny RSS update daemon und systemd ...

Um den update daemon von Tiny Tiny RSS unter systemd (CentOS 7) auch bei einem Serverneustart direkt verfügbar zu haben, habe ich das unten stehende Unitfile geschrieben, vielleicht hilft es auch Euch.

Man kann von systemd halten, was man möchte, ich finde es aber deutlich eleganter als System V Initskripte.

[Unit]
Description=Tiny Tiny RSS update daemon
After=network.target mariadb.service
Requires=mariadb.service

[Service]
User=apache
Group=apache
WorkingDirectory=/⁠var/⁠www/⁠html/⁠ttr
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/⁠usr/⁠bin/⁠php ./⁠update_daemon2.php
PrivateTmp=true
InaccessibleDirectories=/⁠home /⁠root /⁠boot /⁠opt /⁠mnt /⁠media
ReadOnlyDirectories=/⁠etc /⁠usr

[Install]
WantedBy=multi-⁠user.target


Einfach nach /lib/systemd/system/ttrss-update.service kopieren und mittels systemctl daemon-reload einlesen (den Befehl muss man auch ausführen, wenn man das Skript manuell ändert).

Testen mit
systemctl start ttrss-update
systemctl status ttrss-update


und, wenn alles erfolgreich war mit dem folgenden Befehl aktivieren:
systemctl enable ttrss-update

Git swapped beim Packen ...

Von Zeit zu Zeit lohnt es sich Git-Repositories neu zu packen oder den Müll weg zu bringen (mittels "garbage collection, der Befehl ist git gc).

Auch beim Auschecken oder Klonen von grossen Repositories packt Git neu.

Da ich mit den Standard-Einstellungen regelmässig ware Swap-Orgien erlebt habe, lohnt es sich, die Ressourcen für Git zu begrenzen.

In der Standard-Einstellung benutzt Git pro Core und Hyper-Threading je einen Thread. Da Hyperthreading keinen "echten Prozessor" zur Basis hat, steht aufgrund vieler Kontextwechsel das System nahezu still. Ein System mit zwei Kernen und Hyperthreading wird von Git mit vier Threads konfiguriert und jedem Thread steht im Standard der komplette Arbeitsspeicher zur Verfügung.

Das ist ein bisschen viel. Und die folgenden Konfigurationsoptionen begrenzen das ein wenig.

git config --global pack.threads 2
git config --global pack.windowMemory 1073741824

git config --global pack.depth 250
git config --global pack.window 250


Die genaue Beschreibung der einzelnen Optionen lassen sich auf der git-config-Manpage nachlesen.

Das Repack-Skript auf der oben verlinkten Webseite hat sich damit natürlich auch verändert.

#!/bin/bash

case $(uname) in
    "Linux")
        renice -n 19 -p $$
        ionice -c 2 -n 7 -p $$
        ;;
    "SunOS")
        renice -n 19 -p $$
        ;;
esac

start_directory=$PWD
for i in $(find ${start_directory} -name '.git' -type d); do
    du -hs ${i}/..
    cd ${i}/..

    git gc
    git repack -a -d

    du -hs ${i}/..
    echo
done


Dieses Skript ist Teil meines littlehelpers-Repositories auf GitHub.

News+ und Tiny Tiny RSS ...

android News+ ist ein kostenpflichtiger, aber dafür vielleicht auch der beste, Feedreader für Android. Nicht zuletzt, weil es auch eine freie Tiny Tiny RSS Extension gibt, mit der das Lesen von Tiny Tiny RSS Inhalten lokal auch Spass macht.

Apropos Spass, damit die gelesen/ungelesen Status mit Tiny Tiny RSS synchronisiert wird, muss das entsprechende Plugin auf der Serverseite installiert und aktiviert werden.

Einrückungen in vim ...

Wenn man viel mit vi(m) arbeitet, lohnt es sich auch über eine eigene ~/.vimrc nachzudenken. Wenn man auf sehr vielen Systemen arbeitet, hilft es, die eigenen Ergänzungen "klein" zu halten.

Ich mache es mir da leicht und kopiere die Muster-vimrc.
cp $(find /usr/share/vim -name vimrc_example.vi) ~/.vimrc

und ergänze die folgenden Zeilen.

" Dirk
set mouse=
syntax enable
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
"


Für die Bedeutung der einzelnen Punkte verweise ich einmal auf die sehr ausführliche Hilfe in vi(m) (Beispielsweise :help tabstop). Wichtig ist nur, dass durch den letzten Punkt aus Tabs Leerzeichen gemacht werden.

:retab! sorgt dafür, dass alle Tabs und Leerzeichen der kompletten geöffneten Datei entsprechend den Regeln umformatiert werden.

Die folgenden Kommandos arbeiten auf Textblöcken, also mal mit 1G in die erste Zeile springen und dann mit VG den kompletten Dateiinhalt markieren.

> rückt alles um eine Ebene ein.

< rückt alles um eine Ebene aus.

= formatiert den kompletten markierten Text nach Regeln des Dateityps um (einfach mal ausprobeieren).

Feedly Theme für Tiny Tiny RSS ...

Einer der grössten Kritikpunkte an Tiny Tiny RSS - neben der Tatsache, dass der Hauptentwickler ein Arctrl-wctrl-ww sozial schwierig ist - ist das Aussehen.

Christian Grube hat mich bei Google+ schon vor Monaten auf dieses wirklich hervorragende Theme für Tiny Tiny RSS hingewiesen, ich kann es nur empfehlen:

Das Feedly-Theme für Tiny Tiny RSS.



Der Screenshot ist aus diesem Forenthread.

nice und ionice ...

linux Ein kleiner Shorty für alle, die Last intensive Dinge mit ihren Linux-Maschinen anstellen müssen und den eigentlichen Betrieb so wenig wie möglich einschränken wollen.

Mit nice bzw. renice kann man die Priorität eines Prozesses bezogen auf die CPU beeinflussen und mit ionice kann man das gleiche auch in Bezug auf I/O tun.

Wenn man die folgenden Befehle in ein Skript schreibt, werden alle Kommandos und Kindprozesse des Skriptes mit niedrigst möglicher Priorität ausgeführt.
renice -n 19 -p $$
ionice -c 2 -n 7 -p $$


(ionice -c 3 -p $$ gibt dem Prozess nur dann I/O, wenn kein anderer Prozess I/O anfordert).

Die beiden obigen Befehle kann man natürlich auch in der aktuellen Shell (interaktiv) ausführen.

Serendipity und Wordpress ...

serendipity Es ist schon interessant, was man mit Open-Source-Software anstellen kann.

Wie an anderer Stelle festgestellt, kann Serendipity Wordpress nicht das Wasser reichen, was die Verbreitung angeht. Allerdings kann sich Serendipity einen Teil des Ökosystems von Wordpress zu nutze machen.

Die Wordpress-Schnittstellen sind sehr gut dokumentiert und um von Apps zu profitieren, die für Wordpress geschrieben wurden, müsste "man" eigentlich nur die Schnittstelle nachbauen. Tja, und genau das leistet das von Grischa geschriebene XML-RPC-Plugin für Serendipity (serendipity_event_xmlrpc).

Das Plugin gibt es schon drei Jahre, aber es scheint noch weitest gehend unbekannt zu sein.

Mittlerweile lässt sich die Wordpress-App für Android auch als Ziel für das Teilen von Informationen (insbesondere Bildern) auf dem Smartphone nutzen. Das zeigte auch mein Test in der letzten Woche.

Damit lässt sich auf Basis von Serendipity ein eigenes kleines Instagram zusammenstellen.

Bloonix Screencasts ...

bloonix Jonny hat die ersten Screencasts von Bloonix online gestellt.

Momentan gibt es erst zwei. Der eine zeigt die Installation der Serverkomponente von Bloonix auf CentOS 7, der andere die Installation auf Ubuntu 14.04 LTS.

Rückmeldungen jederzeit gerne hier in die Kommentare oder besser noch im Forum.

Taskwarrior 2.4.2 ...

taskwarrior Der Frühling kommt, die neuen Programmversionen auch ... am Sonntag erschien Taskwarrior 2.4.2.

Spannend ist das neue Feature context, damit kann man eine Sammlung von Schlagworten (Tags) verwenden, um einen Arbeitszusammenhang herzustellen. So kann beispielsweise der Kontext "Arbeit" alle Aufgaben enthalten, die entweder das Etikett (Tag) "Büro" oder "Freiberuflich" enthalten.

Das "info" Kommando zeigt jetzt auch "virtual tags" an.

Kein Jabber mehr ...

Es ist bereits aufgefallen, dass ich den Jabber-Server bei der Migration nicht mitmigriert habe.

Die Gründe dafür sind relativ leicht zu erraten. Ich habe Jabber nicht mehr benutzt. Tatsächlich habe ich den Jabber-Client letztes Jahr vielleicht zwei Mal gestartet. Das ist mir bei einer weiter zurückliegenden Migration bereits aufgefallen und jetzt ist halt Schluss.

Zu Instant Messaging gibt es mittlerweile auch gute Alternativen, man kann mich über die folgenden Kanäle erreichen, wenn es denn wirklich "instant" sein muss:


Und, wenn es wirklich mal sein muss, kann ich mir gerne auch einen Jabber-Account besorgen.

Nachtrag: WhatsApp bitte nur als allerletzten Notnagel verwenden, ich nutze das nur, um an Absprachen in unserem Reitstall teilnehmen zu können.

Not mainstream since 2002 ...

serendipity Mit der im Titel stehenden Zeile nehmen wir selbstironisch Stellung dazu, dass "das beste Blog" Wordpress in Bezug auf Nutzerzahlen nicht überholen wird.

Entstanden ist der Titel am letzten Wochenende in Linuxhotel in Essen, wo wir das ausgezeichnete Community-Angebot in Anspruch nehmen durften.

Es war toll die Gesichter hinter Serendipity einmal kennen zu lernen und Zeit miteinander zu verbringen. Fast ganz nebenbei haben wir auch eine Menge Themen diskutiert. Dabei sind die Stärken und Schwächen nicht zu kurz gekommen.

Garvin hat eine ausführliche Zusammenfassung im offiziellen Blog (mit Photo) zusammengeschrieben, aus der ich hier nur ein paar kleinere Punkte heraus greifen möchte.

Das Hauptziel von Serendipity ist es eine verlässliche, sichere, erweiterbare und einfach zu benutzende Bloggingsoftware zu sein. Das drückt sich unter anderem im neuen "Slogan" aus:
Serendipity - A reliable, secure and expandable PHP blog
Not mainstream since 2002


Es wird einen neuen Webauftritt geben. Das alte Design ist schon etwas in die Jahre gekommen und wird aufpoliert. In Zukunft wird es leichter sein, Informationen zu finden. Die Dokumentation wird überarbeitet und die Informationen, auf welchen Wegen man zum Projekt beitragen kann, wird man leichter finden können.

Natürlich wird es auch neue Features geben, unter anderem wird man per Cronjob automatisch verschiedene Wartungsaufgaben durchführen können, darauf freue ich mich ganz besonders.

Einen kleinen verschmerzbaren Wermutstropfen gibt es für die, die nicht auf Version 2.0 (oder später) aktualisieren wollen (warum eigentlich nicht?):
Ab dem 1. August 2015 wird es Plugin-Updates erlaubt sein, die Mindestversion auf 2.0 zu setzen. Das bedeutet zum Einen, dass sich die Plugins in Versionen vor 2.0 nicht mehr aktualisieren lassen und sich auch nicht neu installieren lassen. Versionen vor 2.0 werden keine neuen Features mehr bekommen, kritische Sicherheits- oder signifikante Stabiltätsprobleme werden aber weiterhin behoben.


Es war ein tolles Wochenende und wird hoffentlich im nächsten Jahr wiederholt.

Solltet Ihr Fragen haben, könnt Ihr die gerne hier im Blog stellen.

Weitere Artikel zum Camp:
Matthias aka Yellowled
Matthias aka Mattsches
Mario
Malte
Thomas