seeseekey.net - Invictus Deus Ex Machina

Um eine gute Lesbarkeit auf einer Webseite zu erreichen, ist es wichtig ein sinnvolles Kontrastverhältnis zwischen Hintergrund und Schrift zu wählen. Ist dieses Verhältnis zu schlecht, leidet die Lesbarkeit der Texte. Große Webkonzerne wie Google und Apple gehen hierbei teilweise mit schlechtem Beispiel voran.

leaverou.github.io/contrast-ratio/

Nach der WCAG 2.0 Richtlinie wird im Normalfall ein Kontrastverhältnis von mindestens 4,5:1 gefordert. Ob die eigene Webseite diesem Kontrastverhältnis entspricht, kann man mit dem contrast ratio Tool testen, welches auf GitHub unter leaverou.github.io/contrast-ratio/ zu finden ist. Der Quelltext, der unter der MIT-Lizenz lizenzierten Software, ist ebenfalls auf GitHub zu finden.

Wer aus einer Webanwendung heraus etwas in die Zwischenablage kopieren möchte, der benötigte bis vor einiger Zeit dazu ein Schnipsel Flash. Mittlerweile lässt sich dies, ohne zusätzliche Plugins, in den meisten Browsern über eine entsprechende Web Api nutzen.

clipboardjs.com

Einfacher wird die Nutzung dieser Web Api mit der JavaScript-Bibliothek clipboard.js. Die Bibliothek welche sich seit September 2015 in der Entwicklung befindet, abstrahiert die Nutzung der entsprechenden Web Api. Damit wird es möglich, mit wenigen Zeilen, die Zwischenablage in einer Webanwendung zu nutzen. Der Quelltext der Bibliothek ist auf GitHub zu finden. Sie ist unter der MIT Lizenz lizenziert und damit freie Software.

Wenn man eine nicht mehr verfügbare Webseite aufrufen möchte oder einen älteren Stand einer Webseite benötigt ist die Wayback Machine vom Internet Archive stets zur Stelle. Das Internet Archive ist eine gemeinnützige Organisation, welche seit 2007 offiziell als Bibliothek vom US-amerikanischen Bundesstaat Kalifornien anerkannt ist.

archive.org/web/

Manchmal benötigt man einen Snapshot einer bestimmten Version der Webseite und möchte diesen nicht umständlich über das Webinterface der Wayback Machine herunterladen. In diesem Fall kann sich des Tools wayback-machine-downloader bedienen. Dieses Tool, welches in Ruby geschrieben ist, kann einfach über den Ruby-Paketmanager installiert werden:

gem install wayback_machine_downloader

Anschließend kann das Tool genutzt werden:

wayback_machine_downloader http://example.com

Damit wird der letzte gesammelte Snapshot heruntergeladen. Daneben existieren Option wie die –to Optionen um den Snapshot nur aus einem bestimmten Zeitraum zu holen. Da ich mehrere Snapshots einer Seite benötigte habe ich das ganze in ein Skript gegossen:

#sh

for i in `seq 127 1`;
  do
    # Define date postfix
    DATE_POSTFIX="28120000";
			
    # Linux (Linux date)
    #DATE=`date +%Y%m -d "$i month ago"`    
				
    # macOS (BSD date) 
    DATE=`date -j -v-${i}m +%Y%m` 
    
    # Add date postfix
    DATE=$DATE$DATE_POSTFIX
				
    # Create folder for snapshot
    mkdir $DATE
    cd $DATE

    # Download snapshot
    wayback_machine_downloader http://example.com --to $DATE

    # Leave folder
    cd ..
  done  

In diesem Skript wird durch das Skript 127 Monate in die Vergangenheit gereist und ein Snapshot der Webseite heruntergeladen. Das ganze läuft so lange durch bis das Ende der Schleife erreicht ist. So erhält man pro Monat einen Snapshot. Der Wayback Machine Downloader, dessen Quelltext auf GitHub zu finden ist, ist unter der MIT Lizenz lizenziert und damit freie Software.

Vor einiger Zeit schrieb ich einen Artikel in welchem ich beschrieb wie die Firmware des Raspberry Pi aktualisiert werden kann. Mittlerweile lässt sich das ganze noch einen Schritt einfacher bewerkstelligen. Im ersten Schritt muss rpi-update installiert werden:

sudo apt-get install rpi-update

Anschließend kann der Updater mittels:

sudo rpi-update

aufgerufen werden. Neben diesem Aufruf existieren eine Reihe weiterer Optionen mit denen sich der Aktualisierungsprozess noch besser steuern lässt. Im Normalfall werden diese allerdings nicht benötigt. Nach dem Backup der alten Firmware und vor dem eigentlichen Update erscheint in der aktuellen Version eine Sicherheitsabfrage:

#############################################################
WARNING: This update bumps to rpi-4.9.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934
##############################################################
Would you like to proceed? (y/N)

Wenn man keine spezielle Hardware (der Beitrag im Forum behandelt eventuelle Probleme) betreibt, kann man das ganze mit einem Druck auf die y-Taste bestätigen. Anschließend wird das Firmware-Update durchgeführt. Dabei werden die Firmware, Kernel Module, das SDK, einige Bibliotheken wie z.B. die VideoCore und HardFP-Bibliotheken und weitere Komponenten aktualisiert. Wenn die Aktualisierung fehlerfrei durchlief, sollte der Raspberry Pi mittels:

sudo reboot

neugestartet werden. Das Projekt des Updaters kann auf GitHub gefunden werden. Der Updater ist unter der MIT Lizenz lizenziert und freie Software. Technisch handelt es sich bei dem rpi-update-Tool um ein Bash-Skript. Es befindet sich seit April 2012 in aktiver Entwicklung, so das man auch in Zukunft auf dieses Tool bauen kann.

Wenn man JSON-Dateien erzeugt, kann es passieren das man bei der Erzeugung Fehler erzeugt. Zur Überprüfung solcher JSON-Daten kann man einen Validator nutzen, wie ihn jsonlint.com zur Verfügung stellt. Dort wird der JSON-Quelltext eingefügt und kann anschließend problemlos validiert werden. Bei Fehlern in der JSON-Datei, wird angezeigt wo diese entstehen und können damit beseitigt werden.

jsonlint.com

jsonlint.com

Der Quelltext von JSONLint kann auf GitHub bezogen werden. Er ist dabei unter der MIT-Lizenz lizenziert und damit freie Software.

Wenn man eine Präsentation mit einem Office-Programm seiner Wahl erstellt, so führt das meist dazu das man sich die ersten Stunden Gedanken über das Design der Präsentation macht, anstatt sich um die Inhalte zu kümmern. Das war einer der Gründe, warum ich für Präsentationen nur noch Frameworks nutzte, welche im Browser laufen und ihren Fokus auf den Inhalt legen.

Eine Präsentation welche mittels Reveal realisiert wurde

Eine Präsentation welche mittels Reveal realisiert wurde

Eines dieser Frameworks ist reveal.js. Besonders schätze ich an reveal.js die Möglichkeit den eigentlichen Inhalt der Präsentation in Markdown-Textdateien auszulagern. So kann sich voll und ganz auf den Inhalt konzentrieren. Das Framework unterstützt dabei alles was man für eine Präsentation benötigt wie Tabellen, Fragmente, Auflistungen und ähnliches. Der Quelltext ist auf GitHub zu finden. Lizenziert ist reveal.js unter der MIT-Lizenz und damit freie Software. Eine Demo gibt es auf der entsprechenden Demo-Seite des Autors.

Unit-Test sind in der Softwareentwicklung ein wichtiger Teil der Entwicklung. Problematisch wird es wenn ein solcher Unit-Test fehlschlägt. Dann muss der Grund dafür gesucht und beseitigt werden. Unit-Test werden bei vielen Continuous-Integration-Systemen beim Build-Vorgang automatisch ausgeführt. Der Entwickler wird vom System über entsprechende Fehler bei der Ausführung informiert und kann handeln.

github.com/hmlb/phpunit-vw

github.com/hmlb/phpunit-vw

Wem das zu anstrengend ist, der kann sich mit der Phpunit VW Extension behelfen. Sobald die Unit-Test über ein Continuous-Integration-System ausgeführt werden, werden sie dank der Phpunit VW Extension automatisch durchgewunken. Bei der normalen Entwicklung schlagen die Tests wie gewohnt fehl – ein Prüfstandmodus für Unit-Tests.

Das originale Starcraft hat mittlerweile über 15 Jahre auf dem Buckel. Dies hielt den Entwickler Ryuta nicht davon ab eine Umsetzung von StarCraft für den Browser mittels HTML5 und Javascript zu entwickeln. Die Umsetzung ist dabei nicht mit einem fertigen Spiel zu verwechseln, sondern eher eine Tech-Demo, welche allerdings nicht minder beindruckend ist. So können die Einheiten gesteuert werden und andere Einheiten angegriffen werden – auch an die Soundausgabe wurde gedacht.

StarCraft im Browser

StarCraft im Browser

Lizenziert ist die Engine – dessen Quelltext auf GitHub zu finden ist – unter MIT-Lizenz und damit freie Software. Ausprobieren kann man die Engine unter gloomyson.github.io/StarCraft/.

Das Internet Archive betreibt mit der Wayback Machine ein Archiv des Web. In diesem Archiv kann man sich frühere Version einer Webseite ansehen. Problematisch wird es wenn man einen Snapshot einer bestimmten Version einer Webseite benötigt. Bei größeren Webseiten ist der manuelle Download zeitaufwending. Mit dem Wayback Machine Downloader – einem in Ruby geschriebenen Tool – ist es möglich einen solchen Snapshot automatisiert herunterzuladen. Dazu muss das Tool im ersten Schritt über das Terminal installiert werden:

gem install wayback_machine_downloader

Lauffähig ist der Downloader dabei unter Linux, Mac OS X und Windows. Nach der Installation kann ein Snapshot mittels:

wayback_machine_downloader http://example.com --timestamp 20060716231334

heruntergeladen werden. Je nach Größe der Webseite kann der Vorgang dabei einige Stunden dauern. Der Quelltext ist auf GitHub zu finden. Lizenziert ist der Wayback Machine Downloader unter der MIT-Lizenz und damit freie Software.

Ein Git-Repository kann aus vielen Branches bestehen welche ab und an mit dem Hauptentwicklungszweig gemergt werden. Dies führt dazu das man die Geschichte eines solchen Repositories in Form eines Graphen darstellen kann. Ein Tool um sich sein Repository in Form eines Graphen anzeigen zu lassen ist dabei SeeGit.

SeeGit mit einem geöffneten Repository

SeeGit mit einem geöffneten Repository

Problematisch wird die Bedienung von SeeGit bei größeren Repositories. Dort nimmt der Ladevorgang sehr lange in Anspruch, während der Graph aufgebaut wird. Lizenziert ist SeeGit unter der MIT-Lizenz und damit freie Software – der Quelltext ist auf GitHub zu finden. SeeGit läuft auf Grund einiger Abhängigkeiten zur Windows-API leider nur unter Windows.