Skip to content

Taskserver (big picture) ...

taskwarrior So, nach der zweiten Beta von Taskwarrior 2.3.0 und Taskserver 1.0.0 ist es einmal an der Zeit, die Ideen hinter der Software zu erklären. Ich werde eine kleine Artikelreihe starten, in der ich auch das Aufsetzen eines eigenen Servers näher beleuchten werde.

Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.

Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.

Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.

Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.

Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:
  • Username in einer für Menschen lesbaren Form, zum Beispiel "Dirk Deimeke".
  • Das Passswort ist eine UUID (Unique User ID), so dass auch mehrere User gleichen Namens angelegt werden können.
  • Datei: client.cert.pem zur Identifiation als valider Client.
  • Datei: client.key.pem für die Verschlüsselung des Datentransfers.
  • Um die Verbindung aufzubauen sind noch server:port nötig.


Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...

Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.

Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.

Um das mal in "Datenbank-Relationen" aufzulösen:

  • 1:n host:server (auf einem Host können mehrere Serverinstanzen laufen).
  • 1:n server:clients (gegen einen Server können sich viele Klienten verbinden).
  • 1:n server:organisations (ein Server kann mehrere Organisationen verwalten, hier wäre n:m aus Hochverfügbarkeitsgründen prima)
  • 1:n clients:users (das ist noch etwas schwierig, es gibt derzeit nur ein Client-Zertifikat, eventuell wird das mal 1:1 der n:1)
  • 1:n organisations:users (eine Organisation kann mehrere User beherbergen, später kann vielleicht ein User auch in mehreren Organisationen sein (n:m), das geht momentan nur mit verschiedenen Konfigurationsoptionen)
  • Später: 1:n users:groups (e
  • Später: 1:n orgs:groups


Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.

Weitere Style Guides ...

Via Twitter habe ich das Mutterprojekt der Google Styleguides ("Style guides for Google-originated open-source projects") gefunden.




Da gibt es also nicht nur den Shell Style Guide, den ich hier erwähnt habe. Es hätte mich auch überrascht, wenn es anders wäre.

sudo bei openSUSE ...

opensuse Standard-Einstellungen muss ich manchmal nicht verstehen.

Um openSUSE kompatibel zu anderen sudo-Installationen zu machen, so dass das User-Passwort für sudo verwendet wird, müssen folgende zwei Einstellungen getroffen werden.

Mit /usr/sbin/usermod -G wheel username oder vigr den User zur Gruppe wheel (den historischen Grund für den Namen wüsste ich gerne, drehen die Leute am Rad?) hinzufügen.

Anschliessend mittels visudo die folgenden beiden Zeilen auskommentieren.
# Defaults targetpw   # ask for the password of the target user i.e. root
# ALL   ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!

und die die Kommentarzeichen zu Beginn der Zeile
%wheel ALL=(ALL) ALL

löschen.

Nach einer erneuten Anmeldung des User fragt sudo nach dem Userpasswort und nicht mehr nach dem root-Passwort.

Shell Style Guide ...

Bei Google gibt es einen Shell Style Guide, den ich wirklich jedem nur ans Herz legen kann.

Die Regeln sind sinnvoll und helfen, dass Skripte auch eine Woche nachdem sie geschrieben wurden noch verstanden werden können. :-)

Einiges ist sicherlich diskussionswürdig und Geschmackssache, ich würde Perl statt Python für längere Skripte nehmen, aber in Summe ist das Dokument prima.

Solarized und Konsole ...

opensuse Solarized hatte ich hier schon einmal als Thema. Dass die Konsole das als Farbschema gleich mitbringt, finde ich prima. Aber leider scheinen einige Farben nicht so zu sein, wie bei anderen Solarized-Implementationen, die ich kenne (Taskwarrior sah einfach doof aus).

Daher bin ich ganz froh auf GitHub das Projekt konsole-colors-solarized gefunden zu haben. Das löst das "Problem".

GitMinutes und Vimcasts ...

podcast Git ist schon ein geniales Stück Software, vielleicht werde ich in meinem nächsten Leben Software und Configuration Manager, die Aufgabe ist hinreichend komplex, so dass sie lang anhalten Spass machen könnte. Zu Git habe ich den Podcast GitMinutes (Englisch, Episoden finden sich hier) entdeckt, den ich gerade mit sehr grossem Interesse höre. Man kann dort sehr viel über die "Git-Philosophie" und das Umfeld rund um Git erfahren.

Gerade bin ich bei Episode 8 angekommen, in der es um vim und den Workflow mit vim und Git geht. Und da findet sich mein zweites Fundstück, Vimcasts. Vimcasts ist eine Sammlung von - bis jetzt - 50 kurzen Screencasts rund um vim. Gerade in der ersten Folge geht es darum, die unsichtbaren Zeichen (wie Tab und Zeilenenden) anzuzeigen und sinnvoll darzustellen.

Task Server Beta ...

taskwarrior So, endlich ist es soweit, der neue Task Server hat den beta-Status erreicht.

Zusammen mit dem Task Server ist auch Taskwarrior in einer neuen Beta-Version erschienen, die als einziges neues Feature die Kommunikation mit dem Task Server implementiert hat.

Taskwarrior 2.3.0 Beta 1 (1.2 MB)
Task Server 1.0.0 Beta 1 (120 kB)

Wir würden uns freuen, wenn möglichst viele von Euch an dem Beta-Test teilnehmen. Bitte lest die Dokumentation sorgfältig.

ACHTUNG: Das ist Beta, bitte macht regelmässig Backups von Euren Daten!

Ich werde in den nächsten Tagen mehr dazu schreiben und einen Test-Taskserver anbieten, wer dort gerne einen Account möchte, melde sich bitte bei mir.

Vramsteg 1.0.1 ...

taskwarrior Paul hat gerade Version 1.0.1 von Vramsteg veröffentlicht.

Vramsteg ist ein "commandline progress bar", also ein Fortschrittsbalken für die Kommandozeile. Er ist natürlich hoch konfigurier- und an die eigenen Bedürfnisse anpassbar.



Vramsteg gehört zu den Tasktools, den Hilfsmitteln aus dem Taskwarrior-Universum. Der Tarball ist gerade einmal 12k gross.

Serendipity 1.7.3 ...

serendipity Am vergangenen Mittwoch erschien die Version 1.7.3 der besten Blogsoftware der Welt.

Das Update funktionierte auf allen Blogs, die ich betreue, schmerzfrei wie immer.

Auch wenn ich manchmal neidisch auf andere Blogsoftware schaue, so bin ich doch froh, dass wir von sehr vielen Problemen nicht betroffen sind und, dass die Software einfach läuft. Dass der Erfinder von PHP, Rasmus Lerdorf, Serendipity selber benutzt, hat auch etwas zu bedeuten (nur was?).

Die G4-Schreibmaschine ...

debian Meine bessere Hälfte hat sich entschieden, ihr altes und kleines iBook G4 zu reaktivieren und als "Schreibmaschine" zu nutzen. Die Hardware ist natürlich etwas in die Jahre gekommen und die 800 MHz des Prozessors und die 640 MB (nicht GB!) RAM waren damals viel, heute natürlich nicht mehr.

Das Betriebssystem des Herstellers wird schon sehr lange nicht mehr unterstützt und für die Power-PC-Prozessor-Architektur ist die Auswahl, nun ja, sehr beschränkt.

Genau da kommt eine der wirklich grossen Stärken von Debian zum Tragen. Debian ist eine der wenigen Distributionen, die für wirklich viele Architekturen vorhanden ist (amd64, armel, armhf, i386, ia64, mips, mipsel, powerpc, sparc, s390, s390x).

Die Installation lief nach Erstellung der CD (!), USB-Stick geht nicht, reibungslos. Als Desktopumgebung kommt LXDE zum Einsatz, was man bei der Netzwerk-CD mit dem Kernelparameter expert desktop=lxde vorauswählen kann.

Leider kann die WLAN-Karte kein WPA, das ist der einzige Wehrmutstropfen, alles andere funktioniert perfekt.

CLI ressources ...

Dem littlehelpers-Repository habe ich einmal ein paar Quellen für weitere Kommandozeilenwerkzeuge hinzugefügt, die ich im regelmässigen Einsatz habe oder die ich für interessant halte.



Die Tools habe ich alle schon einmal hier im Blog erwähnt, daher liste ich sie hier nur auf.

Tipps und Hinweise auf weiteres nehme ich gerne entgegen, wenn Ihr begründet, warum Ihr die Tools einsetzt.

dstat ...

linux Mein Kollege Roland hat mich auf das wirklich tolle Tool dstat aufmerksam gemacht. Dstat ist ein Tool mit dem man Ressourcenverbrauch beobachten kann und - noch wichtiger - es ist bunt. :-) Nein, das wirklich spannende ist, dass man seine Messungen mit Timestamps versehen kann, das ist das, was vielen anderen Tools leider fehlt.

Zusätzlich kann es die Ausgaben auch in eine CSV-Datei schreiben, was die spätere Analyse erleichtert.

dstat -v zeigt beispielsweise alles an, was auch vmstat anzeigt, dstat -tv hängt einen Zeitstempel vor die Ausgabe. Und, noch interessanter dstat -tv 5 schreibt - wie vmstat - alle fünf Sekunden einen Summenwert aktualisiert aber jede Sekunde, so dass man die Entwicklung beobachten kann (der grüne Wert im Screenshot).



dstat hat eine grosse Menge an Kommandozeilenoptionen, zum Beispiel dstat -tclmgry, ein Blick auf die Manpage lohnt sich!

Einführung in Git ...

Bei Google+ wurde ich danach gefragt, ob ich die Kurzeinführung in Git, die ich auf der Arbeit gehalten habe, veröffentlichen könnte. Hier ist sie.

Die Beispiele lohnen sich nur, wenn man sie versucht, nachzuvollziehen.



Viel Spass.

Das PDF (rund 100 kB) kann man hier herunterladen: einfuehrung-git.pdf

Lizenz ist CC-BY, das liefere ich auch noch im PDF nach.

CfP für ORR ...

Der Schrei nach Papier meiner Heimatkonferenz läuft noch bis zum 31. August 2013.

Die OpenRheinRuhr findet am 09. und 10. November 2013 im Rheinischen Industriemuseum in Oberhausen statt.

Leider kann ich in diesem Jahr nicht teilnehmen, möchte Euch, meinen Lesern, die Konferenz aber sehr ans Herz legen. Wer noch nie Kontakt zum Menschenschlag der Ruhries hatte und nebenbei sich in guten Vorträgen oder an den Ständen über Open-Source-Software informieren möchte, ist dort herzlich Willkommen. (Alle anderen natürlich auch).

Es lohnt sich!

Little helpers ...

linux Eigentlich ist es schön blöd, so viel mit Open-Source-Software zu machen und die eigenen "Kleiningkeiten", die das Leben erleichtern, nicht zu veröffentlichen.

Daher habe ich mich entschieden, meine Skripte mal in eine vorzeigbare Form zu bringen und in einem eigenen GitHub-Repository zu veröffentlichen.

ddeimeke/littlehelpers

Vielleicht kann das ja jemand von Euch auch gebrauchen.