Stars of GitHub: Meine Sternchen 06.2015

Ständig stolpere ich über abgefahrene Projekte auf GitHub und nehme sie in meinen “Stars” auf. Die Außergewöhnlichsten möchte ich euch mit dieser neuen Reihe “Stars of GitHub” regelmäßig vorstellen.

1. gremlins.js

Einer der wichtigsten Faktoren in der Entwicklung ist die Softwarequalität, die wir häufig mit verschiedenen Testverfahren prüfen (sollten). Im Web und auf dem Desktop eher unbekannt, sind die Verfahren “Monkey Testing” und “Fuzz Testing”. Sie werden eher in der mobilen Entwicklung eingesetzt.

Mit steigender Anzahl und Komplexität von Webanwendungen, sind diese aber auch immer häufiger gute Kandidaten für einen Monkey-Test (Affen sind nunmal nach wie vor the shit in Sachen Käfer und Läuse finden…). Ein gutes Stichwort wäre hier z. B. AngularJS.

Tatkräftige Unterstützung für die Testausführung kann man von gremlins.js erwarten.
Geschrieben in JavaScript, kann gremlins.js im Browser oder mit NodeJS verwendet werden. Die Handhabung ist sehr simpel, einfach mal bei GitHub anschauen.

The Fuck

Mein Favorit der Woche ist The Fuck, ein “Kommandozeilen-Verbesserer” für Linux.

Magnificent app which corrects your previous console command…

Klassisches, simples Beispiel, welches jeder Linux-Administrator kennt:

~/$ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

~/$ fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done
...

The Fuck versucht also, einen vorangegangenen, fehlerhaften Befehl korrigiert erneut auszuführen.
Klingt nicht spektakulär, spart allerdings enorm Tippzeit und Nerven. Ich habe es intuitiv in meinen Prozess an der Konsole integriert und hatte bisher keinen Fall, der nicht von The Fuck korrigiert werden konnte.

Das Tool ist in Python geschrieben und kann mit pip installiert werden. Zudem muss man einen Alias definieren, unter welchem die Anwendung ausgeführt werden kann.

3. A collection of .gitignore templates

Mit einer .gitignore-Datei können Entwickler einfache Filter für jede git-Repository auf Basis von Dateinamen erstellen. Die Anweisung *.cache verhindert zum Beispiel, dass Dateien mit der Endung .cache in die Repository aufgenommen werden.

Um den Einstieg zu erleichtern, kann man sich bei “A collection of .gitignore templates” eine oder mehrere Vorlagen besorgen, welche die für eine Sprache, eine bestimmte IDE oder ein Framework üblichen Anweisungen enthält.

Auch wenn es sich hier nicht um ein Softwareprojekt per se handelt, halte ich diese Sammlung für überaus praktisch.

4. Faker

Beim Entwickeln von neuen Anwendungen hat man oft nicht die nötigen Testdaten zur Hand. Man sitzt vor einer frischen, leeren Datenbank, weil es entweder noch keine Daten gibt oder diese noch nicht migriert werden können.

Wenn es sich bei der Anwendung um PHP-Code handelt, kann man in solchen Fällen auf Faker zurückgreifen. Das Tool generiert auf Anfrage zufällige Daten. Das Besondere daran ist, dass man gezielt Daten einer bestimmten Art abfragen kann. Dazu gehören unter anderem personenbezogene Daten, wie Namen und Adressen, aber auch IP-Adressen, User-Agents, Kreditkarten-Daten, Barcodes oder Farbwerte.

Faker ließ sich durch die gleichnamigen Perl- und Ruby-Projekte inspirieren. Auch für JavaScript hatte ich ein solches Tool schon mal gesehen.
Einen kurzen Blick ist das Helferlein auf jeden Fall wert.

5. Element Finder

Diese CLI-Anwendung ist primär für Frontend-Entwickler interessant, denn Element Finder identifiziert HTML-Elemente, welche zu einem bestimmten CSS-Selektor passen.

Vor allem während der Weiterentwicklung von Projekten möchte man vermeiden, dass neue CSS-Anweisungen Seiteneffekte auf bestehende Elemente haben. Um sicher zu gehen, kann man dieses kleine NodeJS-Tool verwenden und eventuellen Problemen auf die Schliche kommen.

Ein durchdachtes LESS/SCSS-Konstrukt ziehe ich definitiv vor, aber man hat es ja nicht immer mit zeitgemäßen Projekten zu tun.

6. PerfMap

PerfMap bietet eine visuelle Analyse der Performance von Frontend-Ressourcen im Browser, in Form einer Heatmap. Das Tool, welches als Bookmarklet oder Chrome Extension verwendet werden kann, nutzt hierfür die “Resource Timing API” des Browsers (wenn der Browser diese unterstützt).

Zum Aktivieren reicht ein Klick auf einer vollständig geladenen Seite und schon zeigt das Overlay die entsprechenden Ladezeiten der Ressourcen bunt und übersichtlich an.

Kennt ihr auch ein paar interessante Projekte auf GitHub? Ich nehme sie gerne auf die Liste für die nächste Ausgaben von Stars of GitHub.