Skip to content

Taskwarrior und Taskserver ...

taskwarrior Ich werde hier in zwei oder drei Teilen einmal zusammenfassen, wie man die aktuelle Taskwarrior-Version und die aktuelle Taskserver-Version zur Zusammenarbeit bewegen kann. Wie das Ganze gedacht ist, zeigt die Übersicht.

Am Anfang steht das selber Kompilieren der aktuellen Versionen.

Dazu werden neben einem C++ Compiler, cmake und make auch libuuid, gnutls, readline und die entsprechenden Development-Pakete. Die aktuellen Development-Releases von Taskwarrior und Taskserver können von der Homepage heruntergeladen oder via Git geklont werden.

$ git clone git://tasktools.org/task.git task.git
$ cd task.git
$ git checkout 2.3.0

$ cd ..

$ git clone git://tasktools.org/taskd.git taskd.git
$ cd taskd.git
$ git checkout 1.0.0

$ cd ..


Dann übersetzen wir zuerst Taskwarrior:

$ cd task.git
$ cmake .
$ make
$ sudo make install


Wenn alles gut gegangen ist, liefert task diagnostics sehr viel hilfeiches, für uns wichtig ist, dass TLS (Transport Layer Security) eingebaut ist.
$ task diagnostics | grep tls
       Caps: -pthreads +tls
  libgnutls: 3.0.28


Für den Taskserver gehen wir ähnlich vor, aber wir lassen erst Tests laufen, bevor wir installieren:

$ cd taskd.git
$ cmake .
$ make


Jetzt gibt es einen Unterschied, Tests übersetzen und ausführen:

$ cd test
$ make
$ ./run_all


Erst wenn die erfolgreich waren, ist es sinnvoll, den Taskerver zu installieren:
$ cd ..
$ sudo make install


Auch hier liefert taskd diagnostics viel hilfreiches.

Sollte etwas schief gegangen sein, werft einen Blick in die mitgelierferte INSTALL-Datei und im Fall von Taskserver zusätzlich noch in die Datei doc/operation.txt.

Ansonsten gilt wie immer: Fragen? Fragen!

Euer Glück?!

gedanken Die beste Ehefrau von allen hat mich am vergangenen Montag mit der Frage "Seid Ihr glücklich?" überrascht. Ich war gerade auf dem Rückweg vom Training. Die Frage stellte sie in den verschiedenen sozialen Medien. Grund für die Frage war wohl die sehr sehenswerte Reportage in der ARD (ich bin erst heute dazu gekommen, mir die anzuschauen). So etwas wie Tempelhof möchte ich auch :-)

Kommentiert gerne hier, wenn Ihr nicht in den sozialen Netzwerken kommentieren wollt.

Wenn ihr mal kurz überlegt, wie sieht es aus, seid ihr glücklich? (Google+)







Ich muss mal anders Fragen: Was ist denn für euch Glück? (Google+)







Mal ehrlich, seid ihr glücklich? (Twitter)




Ich muss mal anders Fragen: Was ist denn für euch Glück? (Twitter)




Das Facebook-Posting kann ich hier nicht teilen.

Barcamps ...

Aus reinem Interesse:
  • Wer von meinen Lesern weiss was ein Barcamp ist?
  • Wer von Euch war schon einmal auf einem Barcamp? Und wer geht immer noch auf Barcamps? (Welche?).
  • Wer würde gerne einmal auf ein Barcamp gehen?
  • Was interessiert Euch da am meisten?

Für die Akten, hier ist eine Barcamp-Liste Deutschland/Österreich/Schweiz.

Hintergrund der Frage ist, dass in meiner Aufmerksamkeitsblase das Interesse für Barcamps massiv abgenommen hat.

This is how I work ...

gedanken Via Matthias Matthias habe ich von Isabellas Aktion zu This is how I work erfahren (das Original ist vom Lifehacker), in der es darum geht, zu erfahren, wie andere Blogger ind Bloggerinnen arbeiten. Eine kurze Zusammenfassung findet sich auch bei ihr.

Also werde ich hier - wenn auch ziemlich spät - meinen Senf dazu geben:

Blogger-Typ: Gemischtwarenladen mit Fokus auf Open-Source-Software
Gerätschaften digital: Puh, da sind ein paar Dinge, aber in Bezug auf Bloggen kommen überwiegend mein root-Server, das Notebook, das Handy und der eBook-Reader zum Einsatz.
Gerätschaften analog: Zum Bloggen gar nichts ... (aber ich bin ein grosser Fan von meinem Taschenbegleiter) dazu kommt noch ein sehr guter Kugelschreiber.
Arbeitsweise: Fundstücke werden in der Regel sofort "verbloggt", alles andere schimmelt in der Aufgabenverwaltung bis es reif geworden ist :-)

Welche Tools nutzt du zum Bloggen, Recherchieren und Bookmark-Verwaltung?

Anmerkung: Alle Software, die ich einsetze, läuft sowohl unter Linux, wie auch unter Windows oder Mac OS X.

Braucht man ausser einem Browser etwas anderes zum recherchieren? Ich vermute ja nicht. Als Blogging-Plattform kommt bei mir Serendipity zum Einsatz und ich spiele derzeit ein bisschen mit Ghost. Gerne probiere ich auch andere Lösungen, nur um Wordpress mache ich aus verschiedenen Gründen einen grossen Bogen.

Manchmal schreibe ich Texte auch in einem Editor vor, da habe ich mich für Sublime Text entschieden, der ist kein Open-Source-Programm, aber trotzdem sehr gut. Wenn ich Bilder verändern muss, dann mit GIMP.

Recherchiert wird mit Firefox und der Suchmaschine DuckDuckGo, da mich Google zu sehr in einer Blase hält, was dazu führt, dass ich die Suchergebnisse präsentiert bekomme, die Google für meine Person für die besten hält und das schränkt doch sehr ein.

Zur Bookmarkverwaltung nutze ich Pinboard und manchmal - sehr selten - Keeeb.


Wo sammelst du deine Blogideen?

Blogideen werden sowohl im Blog selber als Entwürfe gespeichert, als auch in meiner Aufgabenverwaltung Taskwarrior, das ist enorm hilfreiche, dort setze ich zum Teil auch Links in die "Annotations", so bleiben sie bei der Aufgabe gespeichert.


Was ist dein bester Zeitspar-Trick/Shortcut fürs Bloggen/im Internet?

Mein generell bester Zeitspartrick ist die Drei-Minuten-Regel: Alles, was sich innerhalb von drei Minuten erledigen lässt, wird sofort getan und nicht erst als ToDo erfasst. Das gilt auch für Blogartikel, die nur ein Fundstück beinhalten.


Benutzt du eine To-Do List-App? Welche?

Ja, Taskwarrior. Funktioniert mit der Kommandozeile auf jedem unixoiden System oder unter Windows, wenn Cygwin installiert ist.


Gibt es neben Telefon und Computer ein Gerät ohne das du nicht leben kannst?

Ich kann sehr gut ohne Telefon leben, den mobilen Computer in meinem Smartphone möchte ich aber nicht missen. Schwerlich könnte ich ohne Kaffeemaschine leben ...


Gibt es etwas, das du besser kannst als andere?

Ja, Dumm schwätzen. Nein, ernsthaft, was soll man darauf antworten? Ich bin ganz gut darin, einen Überblick über Themengebiete zu bekommen, ohne mich zu sehr auf Details zu stürzen. Auf der anderen Seite "rieche" ich häufig, aus welcher Ecke ein technisches Problem kommt und bin gut darin, Lösungsansätze zu formulieren und durchzuführen.


Was begleitet dich musikalisch beim Bloggen?

Sounds of Silence - ich mag es lieber still, ohne Ablenkungen.


Wie ist dein Schlafrhythmus - Eule oder Nachtigall (Ironie funktioniert in Fragebögen echt nicht)?

Ich mag Tageslicht.


Eher introvertiert oder extrovertiert?

Eher extrovertiert. Aber ich kann mich auch vergraben und im Hintergrund arbeiten.


Wer sollte diese Fragen auch beantworten?

Niemand spezielles, jeder der mag.


Noch irgendwas wichtiges?

Ich will den Weltfrieden. :-)

Ich finde es prima, wenn sich jeder oder jede eine Stelle sucht, an der sie oder er gemeinnützig tätig wird. Damit meine ich, etwas ohne Bezahlung für andere tun. Wenn viele Leute an vielen Stellen viele kleine Dinge tun, können sie eine Menge bewegen.

Präsentationsformen ...

Von Zeit zu Zeit bekomme ich das Vergnügen, einen Vortrag zu halten und jedes Mal aufs Neue stellt sich die Frage nach der richtigen Präsentationsform.

Ich halte nichts von den Präsentationsprogrammen der Office-Programme, egal, ob es Powerpoint, Impress oder irgendetwas anderes "integriertes" ist. Ich mag nicht gebremst werden und ich mag es, ohne Mausbenutzung, nur mit der Tastatur zu schreiben.

Wenn das ganze dann noch Open Source ist und möglichst, in einer einzigen Datei daher kommt, bin ich froh. Zwischenzeitlich habe ich einfache Textdateien benutzt. Das Verfahren ist hier im Blog schon beschrieben worden (meine beiden Workshops zu praktischer Administration habe ich so gehalten: Teil 1 und Teil 2 inklusive Videos).

So konnte es nicht weitergehen, daher habe ich mir die folgenden Tools und Möglichkeiten angeschaut:


Alle Verfahren haben spezifische Vor- und Nachteile.

Derzeit arbeite ich PDF-Dateien, die LaTeX Beamer erzeugt, sie enthalten auch Links und sind in meinem Speakerdeck-Account zu finden.

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.

Questhub.io ...

Eine ganz andere Art mit ToDo-Listen umzugehen, bietet Questhub.io. Mit Elementen aus Gamification soll der ewigen "Verschieberitis" Einhalt geboten werden. Man stellt seine Aufgaben auf die Webseite und bekommt Punkte, wenn man sie auch erledigt ;-)

Auf der About-Seite wird genauer beschrieben, was dahinter steckt.

Die vielleicht grösste Stärke von Questhub sind die Quests, das sind Aufgaben, die man (auch) gemeinschaftlich lösen kann und soll. Questhub entstand ursprünglich in der Perl-Community als "Play Perl" (was im Perl-Bereich weiterlebt) und war dazu gedacht, Aufgaben rund um Perl spielerisch zu erledigen.

Ich finde die Idee dahinter klasse, vor allem, wenn man sich einmal überlegt, wie viele unangenehme Aufgaben in einem Projekt erledigt werden müssen. Das ist die Möglichkeit, auch dafür "Ruhm und Ehre" einzuheimsen.

Momentan gibt es auf Questhub die Bereiche ("realms") Perl, Chaos, Code, Read, Meta, Fitness, Haskell, Testing, Japanese, Big Data, Python (Ru) und Lisp. Der Autor richtet auf Nachfrage weitere Bereiche ein.

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.

Audioblogging ...

podcast Angeregt durch den Artikel von Christian spiele ich schon länger mit dem Gedanken, ein Audioblog zu starten. Das sollte einfach und schnörkellos sein, Firtz könnte ein Weg sein, es zu implementieren. Die Geschichte hinter Firtz findet sich hier.

"Eigentlich" hätte ich gerne etwas, was mich einen Beitrag mit dem Smartphone aufnehmen lässt, der Episode einen Titel vergibt und dann fertig ist. Kommentare sollten auch möglich sein. Ich vermute, dass Firtz auf dem Weg dorthin ist. Schauen wir mal. Eventuell findet sich etwas Zeit für den Test.

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".