Skip to content

Podunion beendet ...

podcast Das ist wirklich sehr schade. Das Portal Podunion denkt, es würde nicht mehr gebraucht. Es hat mir immer einen Überblick über die deutschsprachige Podcastszene gegeben und war enorm hilfreich. Viele Dinge wurden auch in den Kommentaren der einzelnen Episoden diskutiert, manchmal kontrovers, aber immer freundlich.

Schade!

Die Audiodateien der produzierten Podcasts sind noch eine Zeit lang online, leider die Blogartikel und die Sendungsnotizen sowie die Kommentare nicht.

Alles Gute den Machern!

Timewarrior 1.0.0beta1 ...

taskwarrior Jetzt ist es endlich soweit, die erste beta-Version von Timewarrior wurde veröffentlicht. Timewarrior ist eine Kommandozeilenanwendung zur Zeiterfassung, sie lässt sich über Hooks in Taskwarrior einbinden.

Wenn Ihr Verwendung dafür habt, ist jetzt der richtige Zeitpunkt einzusteigen und uns mit Euren Tests und Bugreports zu unterstützen.

Timewarrior 0.9.5 Alpha Release ...

taskwarrior Da ist sie endlich, die erste Alpha-Version von Timewarrior. Timewarrior ist eine Kommandozeilen-Applikation, die es erlaubt, Zeit zu erfassen.

Es gibt einen Hook von Taskwarrior zu Timewarrior.

Langfristig betrachtet, wird Timewarrior das timesheet-Kommando in Taskwarrior ablösen.

Den News-Eintrag mit einem schicken Screenshot findet Ihr hier.

Taskwarrior-Projektraum auf der FrOSCon?

taskwarrior Für die diesjährige FrOSCon habe ich einmal einen Antrag auf einen Projektraum gestellt. Ich denke, dass es genügend Stoff gibt.

Neben den Workshops "Übersetzen und Einrichten von Taskwarrior und Taskserver" und auch "Einführung in Taskwarrior" würde ich vom jüngsten Spross der Familie "Timewarrior" erzählen.

Wenn Ihr noch Wünsche habt, dann her damit.

Wen von Euch werde ich denn in St. Augustin treffen?

Serendipity-Camp 2016 ...

serendipity 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 make
 


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?

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

serendipity 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 2.5.1 ...

taskwarrior 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!