startafire

That blog about stuff.

Rucksack: Blahol New Wave
2016-08-20 10:57

Einkaufen mit meiner Messengerbag klappt gut. Wenn man allerdings für zwei Leute für eine ganze Woche einkauft, wird es eng. Selbst mit zwei Messbags, mussten wir immer noch zusätzliche Taschen mitnehmen. Mich hat das ziemlich genervt, da Radeln mit einem Stoffbeutel über der Schulter keinen Spaß macht. Zeit nach Alternativen zu suchen!

Weiterlesen…

TCR 2016
2016-07-30 10:12

Gestern Nacht ging es los beim diesjährigen Transcontinental Race. Nach dem Start in Geraardsbergen müssen die ohne Unterstützung fahrenden Teilnehmer zum Mount Ventoux, über den Furkapass, den Passo di Giau und den Durmitor, bevor sie das Ziel Çanakkale erreichen.

Im Gegensatz zum letzten Jahr wird die gesamte Strecke vermutlich 400km kürzer ausfallen, dafür sind einige Höhenmeter mehr zu erwarten.

Ich werden in den nächsten Tagen auf jeden Fall das Livetracking verfolgen und nach Beiträgen mit #TCRno4 Ausschau halten!

Bringing opsi to Github
2016-07-14 12:24

Probably the most satisfying thing I have done in the last month was publishing the official opsi.org repositories at Github.

Weiterlesen…

Kartusche oder Muskeln?
2016-06-13 22:37

Ein platter Reifen kommt nie zu einem guten Zeitpunkt. Glücklicherweise ist ein Reifen schnell ausgebaut, geflickt und wieder eingebaut. Was dann noch fehlt ist Luft.

Weiterlesen…

PyCon.DE 2016
2016-06-12 20:42

Nachdem es lange unklar war, ob es 2016 eine PyCon in Deutschland geben wird, bin ich sehr erfeut zu lesen, dass es eine geben wird. Überraschenderweise in München anstatt Berlin.

Mehr Infos gibt es aktuell unter pymunich.de. Dort läuft aktuell auch der Call for Papers, es ist also ein guter Zeitpunkt noch einen Talk einzureichen.

Erste RTF 2016
2016-06-10 22:27

Das Wetter ist schon lange geeignet für lange Radfahrten, aber irgendwie dauerte es bis zum letzten Wochenende, das ich eine RTF mitgefahren bin. Die war dafür gleich etwas besonderes.

Weiterlesen…

Tausende Kilometer, schöne Minuten
2016-06-08 21:51

Stundenlang im Sattel sitzen kennen vermutlich die meisten. Aber was ist, wenn aus den Stunden Tage werden?

Die Kölner Fahrradschmiede Bombtrack hat zwei sehr interessante Filme veröffentlicht, die sich um Touren mit mehreren tausend Kilometern drehen.

Mit dem Bericht zur 2015er Ausgabe des Transcontinental Rennens, welches von Flandern nach Istanbul führte, begleitet man Clem Shovel auf seiner Reise. Mit dabei sein Bombtrack Audax, mit dem er die Tour von über 4000 Kilometern absolvierte. Das Video zeigt sehr schöne Bilder, die Lust auf mehr machen!

Über 1000 Kilometer mehr hatte Marc Maurer in den Beinen, nachdem von der Türkei aus in den Iran gefahren ist. Auch hier auf einem Rad von Bombtrax, diesmal ein Beyond, welches dem Film auch seinen Namen gibt: A Journey Beyond. Ganz anderer Stil, deutlich persönlicher und voller schöner Bilder und Geschichten.

Beide Filme habe ich genossen, beide machen Lust auf lange Radtouren und von beiden würde ich gerne mehr sehen!

Einfach Packen: Hoboroll
2016-03-23 18:03

Beim Reisen alle Sachen mitnehmen können und das ganz doch möglichst kompakt halten ist nicht immer einfach. Mein liebstes Reise-Accessoire ist seit einiger Zeit eine Hoboroll, mit der das ziemlich einfach geht.

Man kann sich die Hoboroll vorstellen wie die Hülle eines Schlafsacks, in welche noch weitere Fächer eingenäht wurden. Sie ist an beiden Seiten zu öffnen und bietet außerdem an der Außenseite einen Pack-Gurt, den man nicht nur zum Komprimieren sondern auch zum Einklemmen von bspw. einer dünnen Jacke verwenden kann. Das Material ist ein dünner, aber stabiler Stoff. Wenn die Rolle mal nicht in Benutzung ist, kann man sie in eine kleine, angenhähte Tasche falten.

So transportieren sich Klamotten und auch Turnschuhe super, ohne dass ein Koffer nötig wäre. In Verbindung mit einer Messenger Bag kann ich so problemlos ein langes Wochenende mitsamt Laptop und Gadgets verreisen, ohne dass ich einen Koffer mitnehmen muss.

Auch als Turnbeutel-Ersatz eignet sie sich super. Und ist mal weniger drin, dann kann man sie ganz einfach zusammenziehen und benötigt deutlich weniger Platz.

Die Hoboroll bekam ich netterweise von miko :)

Vivaldi: neuer Browser für Poweruser
2016-03-01 13:46

Seit einiger Zeit ist mit Vivaldi ein weiterer Wettbewerber auf dem Browsermarkt. Gegründet wurde die Firma von ehemaligen Opera-Mitarbeitern, die nun ihr Know-How in einen neuen Browser einbringen.

Dabei wird viel auf Bewährtes gesetzt: als Engine kommt Blink zum Einsatz, die UI erinnert an letzte Versionen von Opera. Der Einstieg geht schnell, ich fühlte mich sofort heimisch.

Und ich finde ein paar Features wieder, die ich bei Firefox vermisst habe: Tab-Stacking, also das Übereinanderlegen von Tabs. Bei Firefox habe ich mir seinerzeit mit Tab-Gruppen beholfen. Tab Stacking gefällt mir besser, weil es direkter in der Verwendung ist - kein Umschalten nötig. Leider ist das noch nicht so sehr ausgereift, denn der Zugriff auf einzelne Tabs ist dann leider nicht mehr so einfach. Opera hatte ein Feature zum Ausklappen der Tabgruppe, so dass jeder Tab den gleichen Platz wie einer ohne Gruppe einnahm, man aber durch einen Rand trotzdem die Zugehörigkeit zur Gruppe erkennen konnte.

Außerdem gibt es eine Seitenleiste! Darin habe ich endlich wieder Zugriff auf Bookmarks, yeah! Und das per Tastenkützel, doppel-yeah! In die Seitenleiste kann man außerdem beliebige Internetseiten legen. Twitter oder Mattermost immer in der Seitenleiste offen? Kein Problem!

Auch das Anpinnen von Tabs, damit diese immer erreichbar sind und nicht zufällig geschlossen werden können, ist möglich.

Das Steuern per Tastatur klappt prima. Neue Tabs per STRG+T, das Schließen per STRG+W und wechseln per STRG+TAB gehören schon zum Standard. Neu ist STRG+E zum Öffnen eines Kurzbefehl-Menüs. Darin kann bspw. direkt eine Seite aus den Bookmarks oder dem Verlauf aufgerufen werden, auch weitere Browsersteuerung ist möglich.

Der neue Snapshot ermöglicht es offene Tabs als eine Session zu speichern. Eine tolle Ergänzung zu Tab-Gruppen, wenn man keinen Tab-Wildwuchs möchte.

Außerdem kann man Tabs in den Hintergrund verbannen, damit der Browser nicht allen verfügbaren RAM mit eigentlich ungenutzten Tabs belegt. Sehr gute Sache! Ein nettes Feature beim Öffnen von Tabs im Hintergrund ist außerdem, dass ein kleiner Balken den Ladezustand anzeigt und man so in der Lage ist zu sehen ob der Tab schon geladen hat oder noch nicht.

Die Performance finde ich auch gut, übermäßig kam mir der RAM-Verbrauch nicht vor. Die Engine unterstützt gängige Standards und ich muss mir keine Gedanken darüber machen, dass Seiten eventuell nicht funktionieren.

Nun wird nicht jeder den Browser so benutzen, wie ich das mache. Das ist aber kein Problem, denn Einstellungsmöglichkeiten gibt es zahlreich. Auch Plugins können verwendet werden. Da hier die gleiche Engine wie bei Chromium im Hintergrund läuft, gibt es die Möglichkeit auf Chrome Plugins zurück zu greifen - und somit ist die Auswahl groß.

Ist Vivaldi ein Browser für Poweruser? Ich denke schon! Die große Menge an Features, die Steuerungs- und Erweiterungsmöglichkeiten sprechen für sich. Ich bin außerdem gespannt welche Features noch kommen werden und freue mich auf die nächste Version.

Wer neugierig geworden ist und Vivaldi selbst ausprobieren möchte, der hat momentan die Wahl zwischen Beta und Snapshot. Die Beta ist stabiler, bringt dafür aber noch nicht alle Features der Snapshots mit. Mac, Windows und Linux - für alle Betriebssysteme gibt es Pakete, die auch gleichwertig gepflegt werden.

Simple log-parsing with Python 3.5
2016-02-20 15:36

One of the coolest features for me in Python 3.5 is os.scandir - iterating over the contents of a directory. Of course you can use os.listdir in previous versions but this does neither work as a generator nor are the returned entries caching information from stat-calls.

For trying out the new feature I decided to create a simple log-parsing pipeline to find any failures in logs.

#! /usr/bin/env python3

import argparse
import os


def check_folder(folder):
    logs = get_logs(folder)
    failures = collect_failures(logs)
    print_failures(failures)


def get_logs(folder):
    for entry in os.scandir(folder):
        if entry.is_dir():
            yield from get_logs(entry.path)
        elif entry.is_file() and not entry.is_symlink():
            yield entry.path


def collect_failures(paths):
    for filedescriptor in get_file_descriptors(paths):
        yield from get_failure_lines(filedescriptor)


def get_file_descriptors(paths):
    for path in paths:
        if not path.endswith('.log'):
            continue

        with open(path, 'r') as fd:
            yield fd


def get_failure_lines(filedescriptor):
    for linenumber, line in enumerate(filedescriptor):
        if 'failed' in line.lower():
            yield filedescriptor.name, linenumber, line


def print_failures(failures):
    for filename, linenumber, line in failures:
        print('{}, line {}: {}'.format(filename, linenumber, line.strip()))


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('folder')

    args = parser.parse_args()

    check_folder(args.folder)

This is very simple but has the advantage to be easily extendable. Want to support gzip-compressed files or some obscure binary log format? Just return the corresponding file descriptor. Looking for different messages? Just extend the function to yield the findings.

The functions on their own are easy to test because they are not very tight-coupled.