startafire

That blog about stuff.

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.

Feeds sind kaputt
2016-02-18 19:44

Wir müssen reden. Über Feeds von Webseiten. Denn ich treffe immer öfter auf Webseiten mit unbenutzbaren Feeds.

Ich bin ein großer Freund von Feeds. Vielen Webseiten folge ich darüber, denn es ist für mich bequem auf dem laufenden zu bleiben. Dazu nutze ich einen dedizierten Feedreader, dessen Android-Client mir unter anderem erlaubt Offline die Beiträge zu lesen. Das setzt allerdings für mich voraus, dass die Einträge im Feed vollständig sind.

Leider beobachte ich seit einiger Weile, dass Webseiten zwar einen RSS-Feed anbieten, diesen aber künstlich beschneiden. Manchmal ist es nur ein Anreisser, aber oftmals wird sogar mitten im Wort unterbrochen und dann folgt der Link auf den Post auf der Webseite - gerne in der Form The post How To Annoy Your Readers appeared first on thatHorribleBlog. Das nervt!

Liebe Blogger, bitte versucht nicht mich auf eure Seiten zu locken. Es hat einen Grund, dass ich den Feed benutze. Es geht mir um Lesbarkeit, Zugänglichkeit. Und ganz ehrlich: ich habe keine Lust auf Werbung. Falls ihr kein Interesse daran habt, dass Leute euren Feed ernsthaft benutzen, schaltet ihn lieber ab.

Klein und flink
2016-01-27 17:57

0,22Mbps Downstream hat der Speedtest vorhin angezeigt. Ich schreibe diese Zeilen hinter einer geteilten Leitung und - da es der Gastzugang ist - eventuell sogar gedrosselt. Das ist nicht furchtbar viel Übertragungsgeschwindigkeit. Die Bundesnetzagentur benennt 1Mbps Durchsatz als Breitband.

Selbst wenn irgendwann mal überall entsprechende Bandbreite stationär zur Verfügung steht, ist die Mobilfunkabdeckung noch immer ein Flickenteppich. Bei meiner täglichen Fahrt durch Rhein-Main habe ich mehrere Stellen, an denen Mobilfunk einfach aufhört zu existieren. Mobiles Internet habe ich dort oftmals nur als Edge. Wenn - ja, wenn - überhaupt.

Wenn ich nicht selbst fahre, lese ich auf der Zugfahrt gerne. Meistens ein Buch, aber auch oft genug mit dem Smartphone. Und dann freue ich mich unglaublich über schnell-ladende Webseiten.

Leider sind die meisten Websites ziemlich überladen und langsam. Vorbei sind die Zeiten liebevoll in Handarbeit zusammengestellter Seiten, die nur ein paar KB an Speicher benötigt haben. Heutzutage wird im besten Falle Bootstrap eingesetzt und es kommt keine Werbung. Bei der Masse der Seiten darf man leider mit mehreren MB an Datenübertragung rechnen. Am Ende habe ich dann sieben verschiedene Versionen von jQuery geladen und es kommt noch Werbung hinzu.

Ich habe da keine Lust mehr drauf. Und deshalb habe ich ein Theme für Nikola gebastelt, welches ganz ohne JavaScript auskommt und nur CSS verwendet. Damit ist der Index dieser Seite von ~450KB auf ~50KB geschrumpft. Das ist noch groß, aber die Seite ist auf verschiedenen Geräten gut lesbar - und ich habe keinen Feature-Verlust. Außerdem zeigt sie dem Leser noch schneller ihren Inhalt! Wahnsinn!

Der ursprüngliche Ansporn kam von diesem Talk zu übergewichtigen Webseiten. Seitdem habe ich unzählige Seiten mit angeschalteten Webdeveloper-Tools angesurft und mir anzeigen lassen, wieviel MB gerade über die Leitung gejagt wurden. Es ist teilweise wirklich erschreckend!

PS: Wer wissen will, wie sich so eine langsame Verbindung anfühlt, der sollte es mit dem Comcast-Tool versuchen.