seeseekey.net - Invictus Deus Ex Machina

Manchmal ist man als Entwickler auf der Suche nach einem Stück Quellcode. Die Gründe dafür sind vielfältig und natürlich kann man für diesen Zweck die Suchfunktionen einzelner Portale wie GitHub und Co. nutzen um den gewünschten Quelltext zu finden.

searchcode in Aktion

Einfacher wird das ganze mittels searchcode.com, einer Quelltextsuchmaschine. Bei searchcode, werden nach eigenen Angaben, über sieben Millionen Projekte verschiedenster Plattformen durchsucht. Für den Gebrauch in Firmen, welche natürlich auch private Repositories betreiben, gibt es searchcode dabei auch als Lösung zum selberhosten. Der Quelltext von searchcode ist auf GitHub zu finden. Zu beachten ist hierbei, das es sich um keine freie Software handelt und man damit die Lizenzbedingungen bei der Eigennutzung des Servers genau lesen sollte.

Ein REST-API von Hand entwickelt, benötigt eine Dokumentation, ein entsprechenden Server und eventuell einige Clients als Referenz. Einfacher wird es mit einem Framework wie Swagger. Unter Zuhilfenahme der Beschreibungssprache YAML können mit Hilfe des Frameworks REST-APIs, Dokumentation, Server und Clients generiert werden.

Der Swagger Editor

Der Swagger Editor

Doch Swagger versteht sich nicht nur als Framework, sondern auch als Spezifikation. Begonnen wurde mit der Entwicklung bereits im 2010; die Swagger Specification trägt seit Anfang Januar 2012 offiziell den Namen OpenAPI Specification und beschreibt eine maschinenlesbare Interfacedefinitionen einer REST-API. Ähnliches wurde unter anderem schon mit WSDL und WADL versucht – alles Konzepte bzw. Beschreibungsprachen welche an ihren eigenen Limitationen gescheitert sind und wenn überhaupt nur noch sporadisch genutzt werden.

Betreut und weiterentwickelt wird die Spezifikation nun von der Open API Initiative, zu der namenhafte Firmen wie Google, PayPal, IBM, Atlassian und Microsoft gehören. Die Spezifikation als solche ist freie Software und auf GitHub zu finden. Sie ist unter der Apache Lizenz lizenziert. Aktuell ist die Spezifikation in der Version 2.0 veröffentlicht.

Auf der offiziellen Webseite von Swagger findet sich ein Editor, mit welchem APIs definiert werden können und anschließend exportiert werden können. Der Editor kann dabei Server unter anderem in den Sprachen bzw. für die Framworks Haskel, Jax-RS, Node.js, Python, Rails und PHP erzeugen. Bei den Clients ist die Auswahl noch größer. Diese können in C#, HTML, Dart, Go, Groovy, Java, Javascript, Objective C, Perl, PHP, Ruby, Scala, Swift und vielen weiteren Sprachen erzeugt werden.

Neben dem Editor kann für die Erzeugung von Clients auch der Swagger Codegen genutzt werden. Dabei handelt es sich um eine Java-Anwendung um die Clients lokal auf dem eigenen Rechner zu erzeugen. Der Editor und viele weitere Tools rund um Swagger sind ebenfalls auf GitHub zu finden. – auch diese sind freie Software, welche unter der Apache Lizenz stehen.

Das Shellskript ist fertig und wartet auf seinen Einsatz. Wer das eigene Skript vor dem Einsatz überprüfen möchte, sollte ShellCheck ausprobieren. Bei ShellCheck handelt es sich um ein Tool zur statischen Code-Analyse von Shell-Skripten. Neben allgemeinen Skriptfehlern, weißt ShellCheck dabei auch auf andere Probleme hin und schlägt Verbesserungen vor.

ShellCheck in Aktion

ShellCheck in Aktion

Neben der Webseite, welcher unter shellcheck.net zu finden ist, kann ShellCheck auch auf der Konsole ausprobiert werden. Das Tool ist unter der GPLv3 lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden.

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 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.

Für die Darstellung von Quelltext werden in den meisten Fällen eine Monospace-Schriftart genutzt. Das bedeutet das jedes Zeichen genau die gleiche Breite besitzt – dies wirkt sich positiv auf die Lesbarkeit des Quelltextes aus. Mit Hack 2.0 wurde vor einigen Tagen eine freie Monospace-Schriftart vorgestellt, welche sich besonders an Entwickler richtet. Die Schriftart liegt dabei in unterschiedlichsten Fontformaten (OTF, TTF, SVG, EOT, WOFF, WOFF2) vor.

Die Schriftart eignet sich besonders gut zur Darstellung von Quelltext

Die Schriftart eignet sich besonders gut zur Darstellung von Quelltext

Bezogen werden kann die Schriftart über die offizielle Seite es Projektes – die Quelldaten sind auf GitHub zu finden. Lizenziert ist der Font unter der Hack Open Font License und der Bitstream Vera License.

Wer sich mit Apples neuer Programmiersprache Swift vertraut machen möchte, kann sich natürlich durch die Apple Dokumentation kämpfen. Einfacher wird es mit den Tutorials von Hacking with Swift.

hackingwithswift.com

hackingwithswift.com

Auf der Webseite gibt es eine Reihe von praktischen Lektionen, in welchen kleinere und größere Apps gebaut werden, so das man einen schnellen Einstieg in die Entwicklung mit Swift bekommt. Alle Beispiele sind dabei auf GitHub zu finden – freigeben unter Public Domain und damit für jeden Zweck nutzbar.

Wenn man ein Spiel entwickelt oder eine Animation in einem 3D-Programm erstellt wird man früher oder später Texturen benötigen. Diese kann man teuer einkaufen, oder aber sich nach freien Quellen (wie z.B. OpenGameArt) für entsprechende Texturen umsehen. Eine solche Quelle ist das Nobiax Texture Pack.

Einige der Texturen aus dem Paket

Einige der Texturen aus dem Paket

In dem Texturepaket sind neben den Vorschaubildern über dreihundert Texturen für alle möglichen Zwecke enthalten. Das Texturenpaket ist gemeinfrei, darf also nach Belieben genutzt werden. Zu finden ist das Texturenpaket auf GitHub.

Issue-Tracking-System oder auch Helpdesk-Systeme gibt es wie Sand am Meer. Allerdings gibt es relativ wenige frei lizenzierte Systeme auf PHP/MySQL Basis. Eines dieser Systeme ist eTicket, welches unter eticketsupport.com zu finden ist. Nachteilig an eTicket ist, das dieses Systemen nicht bzw. nur noch sporadisch weiterentwickelt wird.

osticket.com

osticket.com

Hier punktet osTicket, welches über die offizielle Seite bezogen werden kann. Das System befindet sich in aktiver Entwicklung und wird von Enhancesoft betreut. Enhancesoft bietet dabei auch das Cloudhosting von osTicket an. Der Quelltext des unter der GPL2 lizenzierten Systems ist auf GitHub zu finden.