Montag, 26. Juni 2017

Tips und Tricks: Erstellte Pads in Etherpad Lite aufräumen

Möchten Sie gemeinsam an einem Textdokument arbeiten, ist das Versenden der Versionen an alle Mitwirkenden äußerst umständlich und verstopft über kurz oder lang ihr Postfach. Außerdem birgt das Vorgehen die Gefahr, dass der Überblick verloren geht, welche Version des Textdokuments gerade aktuell ist oder ein Mitwirkender bei der Zusendung vergessen wird.

An dieser Stelle kommt Etherpad Lite ins Spiel. Diese kollaborative Software ist im wesentlichen ein Texteditor, den Sie über ihren Webbrowser bedienen. Ausgestattet mit einer Versionsverwaltung geht zudem kein Zwischenschritt verloren. Jedes Textdokument bearbeiten Sie in einem Pad, welches i.d.R. auf dem Server gespeichert wird, auf dem ihre Instanz von Etherpad Lite gehostet wird.


Die einzelnen Dokumente in Etherpad Lite verwalten
Mit der Zeit sammeln sich diverse Pads an. Von hause aus bringt Etherpad Lite nur die Möglichkeit mit, Pads über die Etherpad-Lite-API und einen passenden http-Request wieder zu entfernen. Einfacher geht es hingegen mit Hilfe des Plugins adminpads. Dieses klinkt sich direkt in die Admin-Konsole des Etherpad Lite ein.

Über den Menüpunkt Manage pads in der Navigation erreichen Sie alle Pads auf einen Blick und erfahren deren Status. Das hilft Ihnen dabei, herauszufinden, wie lange ein Pad bereits besteht, wieviele aktive Bearbeiter es derzeit hat und wann dessen Inhalt zuletzt modifiziert wurde. Wird es nicht mehr benötigt, entsorgen Sie es samt Historie mit einem beherzten Klick auf den dazugehörigen Löschknopf. Voila!

Einen Überblick zu weiterer Software aus dieser Kategorie bietet der lesenswerte Blogbeitrag von Jens Kubieziel.

Freitag, 23. Juni 2017

Herzlichen Glückwunsch, Workshop17!

2 Jahre Workshop17
Heute war es soweit -- der Coworking Space Workshop17 feierte sein zweijähriges Bestehen. Herzlichen Glückwunsch!

Beheimatet im Watershed -- einer ehemaligen Bootshalle im Hafen von Kapstadt -- bietet es eine luftige, offene Atmosphäre für die Kreativwirtschaft, Startups und Unternehmer aus der IT-Welt. Neben Einzelarbeitsplätzen, die spontan von jedem Interessenten genutzt werden können, stehen auch dauerhaft anmietbare Schreibtische zur Verfügung.

Emsiges Werkeln in offener Atmosphäre


Während im Erdgeschoß des Gebäudes vielfältige, afrikanische Kunst verkauft wird, dominieren im 1. Stock Laptops und in ihr Tun vertiefte, digitale Helden aus aller Welt. Ein Kontrast, wie er zu Afrika passt und die Gegensätzlichkeit des Kontinents sehr deutlich zeigt.

Donnerstag, 15. Juni 2017

Umweltdaten messen mit einem Feinstaubsensor

Am 25. Mai 2017 fand auf dem Areal des Kulturzentrums Freiland e.V. im Zentrum von Potsdam der diesjährige OpenTechSummit statt. Eine überschaubare, sehr relaxte Veranstaltung mit internationalem Flair, bei der nicht nur Gäste aus Europa teilnahmen.

Stolz den Feinstaubsensor begutachten
Auf großes Interesse traf ein Sensor zur Messung von Feinstaub. Diesen Sensor stellte Frank Riedel vom Projekt luftdaten.info vor. Als Bausatz für den Außeneinsatz konzipiert, setzen Sie diesen in zehn Schritten zusammen, verbinden ihn mit dem Internet und das Erfassen der Daten beginnt. Alle Daten werden gesammelt und sind am Folgetag sichtbar.

Ursprünglich nur für den Großraum Stuttgart gedacht, nutzen diesen inzwischen auch andere Interessenten. Über eine interaktive Karte auf der Basis von OpenStreetMap sehen Sie, welche Werte der Sensor seit dessen Inbetriebnahme an dem jeweiligen Standort gemessen hat.

Erfasste Messwerte für einen ausgewählten Sensor

Donnerstag, 8. Juni 2017

Mageia Linux 6 RC

Control Center im Mageia 6 (XFCE-Design)
Stets im Sommer erscheint eine neue Version der französischen Linux-Distribution Mageia. 2010 geforkt vom Mandriva-Projekt, hat sich die Distribution mittlerweile einen guten Ruf erarbeitet. Der erste Test des RC für die Version 6 war sehr positiv. Mehr dazu in Kürze.

Dienstag, 30. Mai 2017

Cubietruck im Alltagsbetrieb

Cubieboard 3 (Cubietruck) im Test
Vor über einem Jahr liefen mehrere Tests mit dem Cubieboard 3 (Cubietruck) sehr erfolgreich. Seitdem war das Board vorrangig als Fileserver auf der Basis des Debian-Derivats Armbian für Schulungszwecke im Einsatz. Bei meinen Linux-Trainings ließ sich leistungsstarke Board zum Mitbringen immer wieder gut in Szene setzen.

Inzwischen bekam das Board ein mattschwarzes Gehäuse, was es gegen Staub schützt und zudem auch leichter transportabel macht. Es bleibt darin genügend Platz für eine 2.5"-Festplatte, die das Leistungsspektrum des Cubietruck nochmal steigert.

Gehäuse für das Cubietruck
Ordentlich bedruckt macht das Gehäuse einen professionellen Eindruck und ist somit auch endkundentauglich. Die Reaktionen darauf waren bislang nur positiv.

Das Gehäuse mit den sauber ausgeführten Anschlüssen
Derzeit entsteht in Zusammenarbeit mit dem Berliner Kooperationspartner Zugangswerk e.V. ein Prototyp für eine Aufzeichnungssoftware, die auf dem Cubieboard aufsetzt. Grundlage dafür bildet wiederum ein Etherpad Lite, welches auf die speziellen Bedürfnisse von den Nutzern -- hier Dolmetschern -- angepaßt wird. Jetzt stehen intensive Tests an, um noch störende Bugs zu beseitigen.

Sonntag, 28. Mai 2017

Analyse der Ausführungszeit eines Kommandos in der bash

Für diesen Anwendungsfall -- das Messen der Ausführungszeit eines Programms -- existiert das UNIX-Kommando time. Es ermittelt diese drei Werte:
  • real: die gesamte, tatsächliche Ausführungszeit (elapsed real time)
  • user: die Zeit, in der die CPU tatsächlich den (User-)Code des Programms ausführt (Total number of CPU-seconds that the process spent in user mode)
  • sys: jene Zeit, in der die CPU mit Ausführung von Kernel-Code für das Programm beschäftigt ist (Total number of CPU-seconds that the process spent in kernel mode) 

Beispiel 1

Um die Zeit zu ermitteln, rufen Sie time vor ihrem eigentlichen Kommando auf:

$ time find . -user frank
...
real   0m3.681s
user   0m0.248s
sys    0m0.916s
$

Das Beispiel ermittelt alle Dateien, die dem Benutzer frank gehören. time rechnet aus, dass find dafür 3.6s benötigt.

Skripting in der Praxis

Spannender wird die Zeitmessung, wenn mehrere Kommandos zusammenspielen, bspw. in einem Shellskript. Nachfolgend geht es darum, die User ID und den dazugehörigen Namen des UNIX-Nutzers zu ermitteln, der ein Skript gerade aufruft. Variante 1 greift auf interne Variablen und das Kommando whoami zurück:

#!/bin/bash
userId=$UID
userName=$(whoami)
echo "the script runs as user $userName with UNIX id $userId"

Variante 2 nutzt stattdessen grep und cut:

#!/bin/bash
userId=$UID 
userName=$(grep ":$UID:" /etc/passwd | cut -d: -f 1)
echo "the script runs as user $userName with UNIX id $userId"

In Variante 3 kommen grep und awk zum Einsatz:

#!/bin/bash
userId=$UID
userName=$(grep ":$UID:" /etc/passwd | awk -F : '{ print $1 }')
echo "the script runs as user $userName with UNIX id $userId"

Für Puristen ist die Variante 4 -- diese nutzt ausschließlich awk:

#!/bin/bash
userId=$UID
userName=$(awk -F : '/:'$userId':/ { print $1 }' /etc/passwd)
echo "the script runs as user $userName with UNIX id $userId"

Das das auch mit einer Skriptsprache wie Perl geht, zeigt das Variante 5:

#!/usr/bin/perl -w
$username=$ENV{'LOGNAME'};

# read /etc/passwd
open(FH, "/etc/passwd") || die "Cannot open /etc/passwd: $!";
{
  while(<FH>) {
    # look for the user name
    if (m/^${username}:/) {
      @fields=split(/:/, $_); 
 
      # extract user id
      $uid=$fields[2];
      print "the script runs as user $username with UNIX id $uid\n";
     }
   }
}
close(FH);

Auswertung der Laufzeit

Nun wird es spannend, welche der fünf Varianten am flinkesten ist. Rufen Sie die Konstrukte alle einzeln auf, liefert time bei allen einen Wert von etwa 1s. Um die Unterschiede deutlicher sichtbar werden zu lassen, bauen wir eine Schleife drumherum und lassen das ganze 10000 Mal durchlaufen:

#!/bin/bash
# define loops
loops=10000

time {
  for((i=$loops; i>0; i--))
  do
    userId=$UID
    userName=$(whoami)
    echo "the script runs as user $userName with UNIX id $userId"
  done
} | grep "real"

Analog erfolgt das auch für die Varianten 2 bis 5. Folgendes Ergebnis wird sichtbar:

Variante Ausführungszeit
Variante 1 mit whoami 8.25s
Variante 2 mit grep und cut 11.03s
Variante 3 mit grep und awk 17.1s
Variante 4 nur mit awk 13.9s
Variante 5 mit Perl 15.22s

Fazit

Eindeutiger Gewinner ist Variante 1, gefolgt Variante 2 und Variante 4. Es hilft also doch, bei der Programmierung stets die Laufzeit im Blick zu behalten.

Links

Samstag, 27. Mai 2017

Beweiszettel. Linux-Zertifizierungen kurz angerissen

Bücher zur Vorbereitung -- eine kleine Auswahl.
Beschäftigen Sie sich mit dem freien Betriebssystem Linux, rutschen Sie heute vielfach noch in die Kategorie der Exoten. Dabei ist Linux inzwischen ein Vierteljahrhundert alt und gehört in der IT-Welt zum Alltag. Damit werden nicht nur vereinzelte Endgeräte betrieben, sondern komplette Rechenzentren gefüllt.

Mit Linux nur zu arbeiten, ist das eine. Hingegen mehr davon zu verstehen und es auch produktiv nutzen zu können, das andere. Ein guter Weg, nachzuweisen, dass Sie mehr als nur der Oberflächenklicker sind, ist ein Zertifikat. Dieses steht dann für eine oder mehrere Prüfungen.

Grundsätzlich sortieren sich die Zertifizerungen in zwei Klassen ein -- distributionsübergreifend und distributionsspezifisch. Als Anbieter umfaßt das auf der einen Seite das Linux Professional Instititute (LPI), die Linux Foundation und die Computing Technology Industry Association (CompTIA). Auf der anderen Seite stehen die Hersteller bzw. Distributoren RedHat und SuSe.

Diese Prüfungen für Zertifikate werden derzeit angeboten:

Form Anbieter/Programm Zertifikat (Auswahl)
distributionsübergreifend LPI, Linux Foundation, CompTIA
distributionsspezifisch RedHat, SuSe
Aufgrund der längeren Marktpräsenz gelten die LPIC-Zertifikate als etabliert und werden bspw. auch durch die Bundesagentur für Arbeit öffentlich gefördert.
Weitaus seltener unterstützt werden RHCE/RHCSA sowie die SUSE-Prüfungen, nicht zuletzt weil sie herstellerspezifisch sind.

Im Prinzip erst seit 2017 am deutschen Markt vertreten und daher noch nicht so bekannt in Deutschland sind die Abschlüsse der Linux Foundation. Neben einem ansehnlichen Angebotsumfang kann es mit zwei großen Namen auftrumpfen -- Linus Torvalds und Microsoft. CompTIA ist zwar ebenfalls schon lange in Deutschland vertreten, tritt aber weniger als Linux-Spezialist auf.

Montag, 8. Mai 2017

Gesucht und Gefunden

Recherche im Baumhaus Berlin
Neben einer sehr angenehmen Atmosphäre hat das Baumhaus Berlin eine sehr originelle Form für eine Pinnwand - Schnüre und Wäscheklammern. Ein Blick darauf lohnt sich ebenso :)

Auf einen Blick sehen, wo was los ist

Freitag, 5. Mai 2017

Die Mäuse kommen

11+4 Mäuse
Alle sind für einen guten Zweck. 15 Mäuse unterstützen soziale Projekte.

Montag, 1. Mai 2017

Training Linux/Programmierung mit der bash in Hamburg 6.+7. Juni 2017

Diese bash -- immer muss ich da so viel eintippen! Wenn das nicht alles irgendwie einfacher gehen würde. Aber das geht tatsächlich und Sie können das auch erlernen. Aber es ist eine ganze Menge an Stoff.

Hier findet der nächste Kurs statt -- es gibt noch freie Plätze:

dama.go Hamburg, Süderstraße 77, 20097 Hamburg
Dienstag, den 6. und Mittwoch, den 7. Juni 2017
9h00-16h30

Kontakt und Anmeldung zum bash-Kurs:
Stefanie Johannsen Cömert
Telefon: (040) 254 133 950

Und das steht bisher als Themen auf dem Plan:

  • Die bash im Detail
  • Die bash als Programmiersprache
  • Praktische Shellskripte
  • Interaktive Shellskripte
  • Der Stromeditor sed
  • Die Programmiersprache awk

Die Schulung findet auf einem Debian GNU/Linux statt.

Berliner Kleinkunst - die Hauptstadtpolka

Hauptstadtpolka live in der c-base am 30. April 2017
Das Trio aus Dirk, Dirk & Wulf bildet die Hauptstadtpolka. Berliner Kleinkunst, welche zwischen Swing, Jazz, Klezmer und Seemannsliedern unterhaltsam hin-und-her-maändert. Instrumentiert mittels Tuba, Akkordeon und dem Schlagzeug verleiht Wulfs Stimme den Melodien ihren einprägsamen Charakter. Spielt häufiger so schön, Jungs!

Freitag, 28. April 2017

Digitale Zuganzeiger der DB

Digitale Zuganzeiger. Die rote Markierung zeigt den Bereich auf dem Bahnsteig an.
Seit Herbst 2016 durchläuft der der Bahnhof Berlin-Südkreuz an mehreren Stellen eine Modernisierung. Am auffälligsten sind die digitalen Zuganzeiger am Bahnsteig, die die aktuelle Wagenreihung der nächsten Züge darstellen. Damit findet sich bspw. der Weg zum Speisewagen ohne Umweg -- der Kaffee für unterwegs ist somit gesichert.

Freitag, 21. April 2017

Office im Rucksack

Office im Rucksack. Digitale Nomaden unterwegs.


Arbeiten von unterwegs? Gelingt mit viel Selbstdisziplin und geht auch nicht für alle Branchen. Der aktuelle Beitrag im LinuxUser 05/2017 erklärt das ganze näher.

Sonntag, 26. Februar 2017

Unterwegs im Zululand





Unterwegs entlang der Route 66

Jedes Jahr am 23. Februar findet das Khekhekhe-Festival in der Region KwaZulu-Natal (Zululand) statt. Es erinnert an König Diniswayo und wie er seine Kraft über die Schlangen gewann. Das Festival ist eines der letzten traditionellen Veranstaltungen, die neben Geschichten auch Tänze und Beschwörungen beinhaltet. Mehr Informationen lesen Sie hier.


Die Beschützer der Häuser



Dienstag, 21. Februar 2017

Abendstimmung

Manche Momente sind festhaltenswert - so auch dieser abendliche Himmel mit Sonnenuntergang im Hafen von Kapstadt.

Abendstimmung

Montag, 20. Februar 2017

Geballte Informationen aus erster Hand - das Debian-Paketmanagement-Buch

Seit 2013 arbeiten Axel Beckert und ich an dem Buch zum Thema Debian-Paketmanagement. Mittlerweile umfaßt es mehr als 400 Seiten kompaktes Wissen zum dem Thema. Es unterteilt sich in Grundlagen, Werkzeuge und Anwendungsfälle für die Praxis.

Webseite des Buchprojekts


Unser Buch steht seit Sommer 2015 unter einer Creative Commons (CC-BY-SA)-Lizenz und ist für jeden Interessierten zur freien Nutzung über die Versionierungsplattform GitHub verfügbar. Darüber kann jeder am Buch mitwirken und Korrekturen sowie Ergänzungen vornehmen. Diese fließen live in das Projekt ein und erlauben eine stets aktualisierte Fassung als HTML, ePub, MobiPocket oder PDF. Diese Ausgabeformate werden automatisch gebaut und stehen innerhalb kürzester Zeit online zur Verfügung. Damit können Sie unser Buch auch komplett online lesen.

Uns freut auch sehr, dass das Buch als Debianpaket bereitsteht. Ab der kommenden Debian-Release 9 Stretch ist es fester Bestandteil der regulären Pakete.

Sonntag, 19. Februar 2017

Python-Tutorial und Trainings



Seit mehreren Jahren biete ich Trainings zur Programmiersprache Python an. Das umfaßt den Einstieg in die Skriptsprache, aber auch komplexere Themen wie Reguläre Ausdrücke, verlinkte Datenstrukturen und Objektorientierte Programmierung.

Dazu pflege ich ein Tutorial auf GitHub. Heute kamen darin etliche Beispiele für die Praxis hinzu. Diese Beispiele zeigen die Verwendung der nützlichen Module re, datetime, csv und fileinput.

In Kürze stehen auch wieder Schulungen zu Python auf Linux an. Die Termine folgen hier im Blog, sobald bekannt.

Mandela Run 2017

Am 11. März 2017 fand in der Nähe von Stellenbosch der jährliche Mandela Run statt. Diese Veranstaltung erinnert an die Freilassung Nelson Mandelas, welche sich dieses Jahr zum 27. mal jährt. Die Route folgt dem Weg, den Nelson Mandela seinerzeit aus dem Gefängnis nahm. Zur Auswahl standen eine Laufstrecke von 27km, von 10km und von 5km.

Vor dem Start der 5km-Strecke
Nach der erfolgreichen Teilnahme am Run war dieses Foto obligatorisch:

Geschafft!

Dienstag, 7. Februar 2017

Cape Town Cycle Tour - #Cancermustfall

Am 12. März 2017 wird erneut die Cape Town Cycle Tour stattfinden. Es ist eines der größten und populärsten Radrennen im südlichen Afrika. Hunderte von Teilnehmern kommen dazu aus der ganzen Welt zusammen, um dabei mitzufahren.

Mandy unterwegs beim Training

Jeder kann daran teilnehmen -- sei es nur aus Interesse am Sport, an der Bewegung an der frischen Luft, als persönliche Herausforderung oder um damit eine Organisation zu unterstützen. Letzteren Weg hat Mandy Neumeyer eingeschlagen. Sie nimmt an dem Rennen teil, um damit die Non-Profit-Organisation Ari´s Cancer Foundation (ACF) zu unterstützen. Die ACF ist die erste und einzige Organisation in Südafrika, die ihren Fokus auf Heranwachsende und junge Erwachsene hat, die mit der Diagnose Krebs konfrontriert sind. Das betrifft das Lebensalter von 15 bis 39 Jahren. Häufig gibt es für diese Menschen in dieser Altersgruppe keine adäquate Behandlung -- entweder werden sie falsch diagnostiziert, oder sind sie zu jung oder alt, um angemessen als junge Erwachsene behandelt zu werden.

Mandy sagt über sich: Cancer has stroked the life of all of us in one way or the other. I had a cancer diagnosis myself in 2012 and the Cape Town Cycle Tour will be a possibility for me to push my body and to feel what is capable of and therefore to win the trust in my own body back. But what makes this event extra special is the chance to make a difference in the life of those young underprivileged adults fighting cancer.

Die Ari´s Cancer Foundation unterstützt Familien, die den Krebs bekämpfen und mit dem emotionalen Trauma sowie der finanziellen Belastung der Behandlung umgehen müssen. Viele dieser Familien verfügen nicht über eine finanzielle Unterstützung, medizinische Hilfe oder eine Krankenversicherung, die die Kosten trägt. Mandy war bestürzt, als sie erfahren hat, dass die Behandlung in Südafrika nicht abgedeckt ist.

Um die Behandlung zu erleichtern, hat die Ari´s Cancer Foundation die sogenannte Youth Booth entwickelt. Das ist ein komfortabler, mobiler Arbeits- und Entspannungsbereich, in dem sich junge Erwachsene während der Behandlung aufhalten können und dabei von dieser abgelenkt werden. Derzeit läuft die Suche nach den Mitteln für die dritte Box dieser Art.

Youth Booth (Pressebild)


Möchten auch Sie Mandy bei ihrer Aktion unterstützen und einen Beitrag zur Linderung leisten? Jeder noch so kleine Beitrag zählt.

Nehmen Sie Kontakt zu Mandy Neumeyer auf: mandy.neumeyer@web.de

Sonntag, 5. Februar 2017

Sonntag, 29. Januar 2017

Einen GPX-Track auf einer Landkarte darstellen

Routen und Wege erfassen Sie mit einem GPS-fähigen Gerät, bspw. ihrem Smartphone. Dafür muss bei diesem die Standorterfassung über GPS eingeschaltet werden, damit es die Verbindung zu den Navigationssateliten herstellen kann. Das erreichen Sie über die Einstellungen ihres Gerätes. I.d.R. ist für die Nutzung dieser Funktion keine Datenverbindung erforderlich.

Die Wegpunkte selbst erfassen Sie mit einem zusätzlichen Programm, bspw. GPS Logger für Android. Damit gelingt das automatisiert und in regelmäßigen Abständen.

GPS Logger im Einsatz
Zur Darstellung des GPX-Tracks stehen Ihnen verschiedene Werkzeuge zur Verfügung, bspw. gpsprune, QLandkarteGT und dessen nachfolger QMapShack. Alle Erlauben das direkte Einlesen des Tracks sowie die Nachbearbeitung, sofern erfasste Wegpunkte korrigiert werden müssen. Die nachfolgenden Abbildungen zeigen die Darstellung in gpsprune und QLandkarteGT. Alle Darstellungen verwenden das Kartenmaterial von OpenStreetMap.

Eine erfaßte Wegstrecke mit Höhenprofil und Details zu dem ausgewählten Wegpunkt, dargestellt mit gpsprune

Die gleiche Wegstrecke samt Wegpunkten und Höhenprofil, dargestellt mit QLandkarteGT

Duiker's Island - der westlichste Punkt des Weges


Samstag, 28. Januar 2017

Naturschauspiele am Kap

Manche Momente sind einfach nur beeindruckend anzusehen - hier die Fallwinde und die Wolken zum Sonnenuntergang südlich von Kapstadt.

Abendstimmung in Clifton

Hier liegt der Hafen von Hout Bay in der Abendstimmung.

Abendstimmung in Hout Bay

Dienstag, 17. Januar 2017

Hout Bay's Schätze

Der kleine Ort liegt etwa 20km südlich von Kapstadt an einer malerischen Bucht und hat etwa 20.000 Einwohner. Eingerahmt von den schroff wirkenden Höhenzügen des Tafelbergmassivs bieten sich faszinierende Kontraste zwischen dem blauen Wasser des Atlantiks, dem hellen Sandstrand und der mediterranen Vegetation - ganz ohne den Trubel der Mutterstadt Cape Town.

Zunächst etwas unscheinbar wirkend, glänzt es mit den lokalen Attraktionen wie dem jedes Wochenende stattfindenden Hout Bay Market sowie dem World of Birds. Letzteres ist ein mit privater Initiative eingerichteter und erhaltener Zoo, der sich vorrangig der Vogelwelt der südlichen Hemisphäre widmet. Mit über 400 verschiedenen Spezies gilt es als der größte Vogelpark Südafrikas. Die Anregung von Dirk Deimeke hat sich voll gelohnt - danke!

Gehege im World of Birds

Hout Bay ist weiterhin Ausgangspunkt des Chapman’s Peak Drive, einer etwa 9km langen, mautpflichtigen Strecke am Meer entlang in Richtung des Kap der Guten Hoffnung. Diese Strecke ist sowohl für den Fahrer, als auch für den Beifahrer ein echter Genuß.

Blick von Hout Bay auf den Chapman's Peak Drive

Der Empfehlung der Mother City Hikers und dem Cape Town Magazine folgend, ergeben sich attraktive Blickwinkel von den Höhenzügen rund um den Ort. Neben leichteren Routen wie bspw. zur Sandy Bay mit mehreren Schiffswracks erlauben der Constantiaberg (928m) und der Skorsteenberg (504m) imposante Aufstiege im Table Mountain National Park.

Abendstimmung auf dem Plateau rund um den Skorsteenberg mit Blick zum Tafelberg

Mittwoch, 11. Januar 2017

Auswertung mit NumPy, Pandas und Matplotlib

Die drei Python-Bibliotheken NumPy, Pandas und Matplotlib erlauben eine Datenauswertung mit graphischer Darstellung. Die Ausgabe der Wegstrecken für 2016 ergibt nachfolgende Grafik. Jeder enthaltene Staffelbalken repräsentiert dabei einen Monat.

Darstellung als Staffelbalken mit Legende

Die Legende in obiger Abbildung wird automatisch erzeugt, ist hier aber noch nicht optimal. Gleiches gilt für die verwendeten Farben in der Darstellung. Ideal wäre, wenn jede Wegstrecke eine eigene, unverwechselbare Farbe hätte.

Zur Erzeugung der Grafik kommt zunächst dieser Aufruf zum Einsatz:

df = pd.DataFrame(distances, index=month,columns=pd.Index(travelDescription))
df.plot(kind='barh', stacked=True)

df ist ein DataFrame aus der Pandas-Bibliothek. Dieser wird gefüttert mit den Distanzen, den Zeitintervallen und den Beschreibungen der jeweiligen Wegstrecke. plot() berechnet daraus die horizontalen Balken, der Parameter stacked=True sorgt für die Staffelung.

Die Methode plot() kennt einen weiteren Parameter namens colormap, mit der Sie die Farbauswahl steuern. Zur Auswahl stehen über ein dutzend Farbsets, bspw. Blues, Pastel1, Pastel2, spectral oder auch autumn. Je nach Farbset ist es ein Übergang zwischen zwei einzelnen Farben oder ein mehrstufiges Spektrum. Eine genaue Übersicht liefert Ihnen dazu das SciPy Cookbook. Die nachfolgende Abbildung benutzt das Farbset Set1 und macht die Darstellung schon aussagekräftiger. Folgender Aufruf wird dazu genutzt:

df.plot(kind='barh', stacked=True, colormap='Set1')


Darstellung als Staffelbalken mit Farbset Set1 und Legende

Dienstag, 10. Januar 2017

Aufbruch nach Süden

Strahlend blauer Himmel mit Sonnenschein macht die kalte Januarluft Berlins etwas erträglicher. Bald ist es soweit und ich habe erneut afrikanischen Boden unter den Füßen. Anspannung, Vorfreude und Herzklopfen. Es dauert nicht mehr allzu lange - hoffe ich.

Blick auf das Rollfeld in Berlin-Tegel

Sonntag, 1. Januar 2017

Mit Linux-Bordmitteln Fahrstrecken ausrechnen

Unterwegs zwischen Neuenburg und Genf
Wer viel zwischen unterschiedlichen Orten unterwegs ist, kennt das Bedürfnis: irgendwann will man wissen, wieviele Kilometer man tatsächlich zurückgelegt hat. Erfassen Sie das nicht automatisiert mit ihrem Smartphone -- bspw. mit Route Tracker --, helfen für das Ergebnis etwas Handarbeit und wenige Zeilen Programmcode.

Grundlage für die Berechnung ist eine Textdatei mit den fünf Spalten Anzahl, Von, Nach, Distanz und Grund. Erstere gibt an, wie häufig diese Strecke genutzt wurde, Von und Nach den Start- und Endpunkt der Reise, Distanz die Entfernung zwischen Start- und Endpunkt sowie Grund den Anlass der Reise. Alle Spalten sind mit Tabulatoren voneinander getrennt, damit die Spalten bei der Ausgabe auf dem Terminal oder im Texteditor auch hübsch untereinander angeordnet werden. Leerzeichen kommen nicht als Spaltentrenner in Frage, da Ortsangaben noch Erweiterungen wie Flußnamen oder Regionen haben können.

Ausschnitt aus den erfaßten Strecken für 2016 im Texteditor Vim
Für die Lösungsvariante tritt awk in den Ring und punktet mit einem Dreizeiler.

awk-Variante zur Berechnung der Gesamtkilometerzahl
In Zeile 1 wird der Inhalt der internen awk-Variable FS redefiniert. FS kürzt field separator ab und beinhaltet die Trennzeichen, die awk benutzt, um die einzelnen Spalten zu erkennen. Hier wird FS auf mehrfach aufeinanderfolgende Tabulatoren gesetzt.

In Zeile 2 werden der Inhalt der beiden Spalten 1 und 4 miteinander multipliziert und zur Variable gesamt addiert. awk merkt sich für jede gelesene Zeile den Spalteninhalt in den Variablen $1 bis $5. Die Spaltentrennung erfolgt anhand von FS wie zuvor in Zeile 1 festgelegt.

Nützlich sind hier mehrere Automatismen von awk:
  • die Variable gesamt wird automatisch angelegt und mit 0 initialisiert, sofern diese noch nicht existiert. 
  • Enthalten die Variablen $1 bis $5 keine Zahlenwerte, erfolgt keine Berechnung. Damit wird die erste Zeile elegant verabeitet und muss nicht zuvor von Hand entfernt werden.
  • Alles zwischen den beiden Schlüsselworten BEGIN und END wendet awk auf jede gelesene Zeile an. Eine explizite for-Schleife entfällt.
Abschließend erfolgt in Zeile 3 die Ausgabe der aufsummierten Gesamtkilometer mit Hilfe der awk-Funktion printf.

Für das Kalenderjahr 2016 sieht das Ergebnis wie folgt aus, wobei das awk-Skript aus der Datei distanz.awk kommt und das Fahrtenbuch in der Datei fahrtenbuch-2016.txt enthalten ist:

$ awk -f distanz.awk fahrtenbuch-2016.txt
Gesamt: 100245 km

$

Das sind zweieinhalbmal um die Erde. Welche Orte es 2016 waren, entnehmen Sie dieser Liste.

Weitere Lösungsvarianten für die Shell sowie mittels Python, Perl, Tcl und SQL inklusive einer ausführlichen Beschreibung entnehmen Sie meinem Artikel Sieben Brücken. Alltagsaufgaben mit Bordmitteln lösen aus LinuxUser 05/2016. Die Skripte finden Sie auch in meinem Repository auf GitHub.