Tag: werkzeuge

201622Jan

CoreSheet: Responsives Sass/CSS3-Framework

Für die Websites meiner Open Source-Projekte habe ich bisher eine CSS-Codebasis sowie ein entsprechendes HTML-Template eingesetzt. Da ich den CSS-Code stetig erweitert habe, ist daraus schließlich ein eigenes Framework entstanden. Es hat eine eigene Website erhalten und steht ab sofort bei GitHub, NPM und Bower zur Verfügung: CoreSheet stellt ein responsives Sass/CSS3-Framework dar, das ein prozentuales Grid-System sowie verschiedene Komponenten enthält. Dazu zählen gestaltete Formulare, Tabellen, Navigationsmenüs, Schaltflächen sowie ein Sticky Footer.

CoreSheet - Responsive Sass/CSS3 framework including a grid system

CoreSheet an sich ist kompakt und beinhaltet nur rudimentäre CSS-Resets und -Normalisierungen. Das primäre Layout setzt sich aus einem horizontal zentrierten Container und den Spalten des Grid-Systems bzw. Rasters zusammen. Das Grid-System ist wie alle anderen Komponenten konfigurierbar, so dass die Anzahl der Spalten und die Breite der Stege eingestellt werden können. Es gibt einen zentralen Breakpoint bei 767px, bei dem alle Elemente umbrechen und auf die volle Breite des Fensters gestreckt werden. Mit den bestehenden Konzepten und Elementen von CoreSheet können direkt responsive Seiten-Layouts erstellt werden. Die Grundidee besteht in einem minimalistischen Framework, das durch eigene Stile erweitert und so auf das Erscheinungsbild (Corporate Design) des eigenen Projekts zugeschnitten wird.
Es gibt zudem Themes, die als Vorlage genutzt werden können. Die Kompilierung der SCSS-Dateien erfolgt durch Gulp. Durch die beiliegende gulpfile.js werden die Sass-Dateien von CoreSheet (Framework, Konfiguration und Theme) eingelesen und die finale CSS-Datei inklusive der minifizierten Variante werden erzeugt. Ein Watcher für die Echtzeit-Aktualisierung ist ebenfalls enthalten.

201619Jan

Vue.js: Modernes und kompaktes Reactive-Framework

Es gibt einen neuen Stern am Framework-Himmel, der sich neben anderen Web 3.0-Frameworks wie React, AngularJS oder Riot.js aufstellt: Es ist von Vue.js die Rede und es sei gleich vorab erwähnt, dass diese Bibliothek auf jeden Fall einen Blick wert ist. Sie vereint Konzepte von React und AngularJS, bleibt dabei aber einfach und dennoch komfortabel. Vue.js bietet reaktive Data-Bindings, um DOM und Daten zu synchronisieren. Es kommt mit einer Template-Sprache, Filtern, Directives, Komponenten und sogar Mixins.

Vue.js - Reactive Components for Modern Web Interfaces

Das Framework biete im Grunde alles, was eine moderne Webanwendung oder mobile App benötigt. Für Single-Page-Applications (SPAs) darf auch ein Router nicht fehlen. Hier ein Code-Snippet, welches Event Handling demonstriert. Der HTML-Code:

  • <div id="example-2">
  • <button v-on:click="say('hi')">Say Hi</button>
  • <button v-on:click="say('what')">Say What</button>
  • </div>

Und der JavaScript-Teil:

  • new Vue({
  • el: '#example-2',
  • methods: {
  • say: function(msg) {
  • alert(msg);
  • }
  • }
  • });

Die Entwickler hinter Vue.js haben sogar einen ausführlichen Vergleich mit den führenden Web-Frameworks zusammengestellt, in dem die einzelnen Unterschiede sowie Nachteile sehr genau beleuchtet werden. Hier wird auch die Funktionsweise von Vue.js noch deutlicher. Bei GitHub steht das Projekt bereit und hat mittlerweile Version 1.0 erreicht.

201507Sep

WebGLStudio: Komplette 3D-Szenen im Browser erstellen

Mit WebGL lassen sich nicht nur Spiele oder Betrachter für 3D-Modelle umsetzen, sondern auch ganze 3D-Editoren. Mit WebGLStudio steht ein ausgereiftes Exemplar dieser Art bereit. Dabei handelt es sich also um eine interaktive Webanwendung, mit der sich komplette 3D-Szenen erzeugen lassen. Es können verschiedene Grundkörper angelegt oder auch 3D-Modelle importiert werden. Natürlich können auch Lichter und Kameras hinzugefügt werden. Zudem sind Animationen durch Keyframes möglich und auch ein Node-Editor steht bereit, so dass auch komplexere Szenen erstellt werden können.

WebGLStudio - 3D Development environment for the web

Die Online-Demo zeigt, was der Editor bisher zu bieten hat. Neben den genannten Funktionen können einer Szene auch eigene Shader hinzugefügt werden. Szenen können zudem exportiert und lokal gespeichert werden (hierfür kommt ein eigenes Format zum Einsatz).
Die Idee eines solchen Editors nicht neu: Mit ThreeFab oder ThreeNodes stehen schon seit geraumer Zeit ähnliche Projekte bereit, die allerdings auf THREE.js ausgelegt sind.

201531Aug

Birdfont: Freier Editor zum Erstellen von Schriftarten

Wer eine eigene Schriftart erstellen möchte, hat eine große Aufgabe vor sich. Neben dem eigentlichen Design der etlichen Zeichen, die gestaltet werden müssen, bedarf es einer entsprechenden Software. Mittlerweile gibt es neben den Industriestandard FontLab Studio auch zahlreiche kostenlose Alternativen. Dazu zählen seit geraumer Zeit bereits FontForge oder Type Light. Eine weitere Alternative stellt die Software Birdfont dar, die das Erzeugen von TTF-, EOT- und SVG-Schriftarten ermöglicht.

Birdfont – A free font editor for TTF, EOT and SVG fonts

Bei Birdfont handelt es sich um ein Open Source-Projekt: Daher steht die Anwendung für Windows, Mac OS X, Linux und OpenBSD bereit. Das eigentliche Erstellen einer Schriftart kann anhand von geometrischen Formen (Kreis, Rechteck), freihändig oder über Bezierkurven erfolgen. Es können aber auch Pfade aus einer bestehenden SVG-Datei importiert werden. Das Programm bietet zudem Ebenen, verschiedene Raster-Einstellungen und die Möglichkeit, einzelne Zeichen zu kippen. Schließlich kann die Laufweite der Schriftart angepasst werden.
Die Software steht in einer kostenlosen Variante zur Verfügung: Einzige Bestimmung hierbei besteht darin, dass die erstellte Schriftart unter der SIL Open Font-Lizenz veröffentlicht werden muss. Die kommerzielle Version von Birdfont ist aber schon ab 5 USD zu haben.

201516Aug

Update: Web Development Tools mit allen Projekten

Heute gibt es noch eine weitere Neuigkeit in eigener Sache: Ich wollte meine bisherigen Anwendungen und Skripte für Webentwickler in einer großen Übersicht sammeln und darstellen. Dazu habe ich mein User-Repository bei GitHub verwendet. Dort finden sich jetzt die Web Development Tools. Hierbei handelt es sich um eine interaktive 3D-Darstellung, die ich mit der Famous Engine umgesetzt habe.

Web Development Tools - the complete collection

Die Seite besteht aus einer abstrakten Landschaft, auf der die verschiedenen Projekte verteilt sind. Zudem gibt es die vier Kategorien "Web Development", "User Interface Design", "Comparisons" und "Game Development", in denen die Tools zu finden sind. Die Landschaft wird um zukünftige Projekte erweitert werden. Viel Spaß beim Ausprobieren!

201514Aug

Node.js: Seiten automatisch neu laden mit AutoReload

Die Entwicklung einer Webanwendung oder Website beginnt für gewöhnlich in einer lokalen Umgebung. Unabhängig davon, ob serverseitige Skriptsprachen wie PHP, C#, Java oder JavaScript zum Einsatz kommen, müssen das User Interface und HTML-Templates umgesetzt werden. Beim Entwickeln von HTML-Vorlagen stellt das automatische Aktualisieren des Browserfensters eine große Hilfe dar und ist mittlerweile fast selbstverständlich geworden. Dieser Prozess lässt sich auch sehr gut mit Node.js umsetzen.

AutoReload - Browserfenster automatisch aktualisieren

Ich habe dazu das Skript "AutoReload" geschrieben, das einen lokalen Webserver für statische Dateien erstellt und anschließend auf Änderungen von Dateien wartet. Findet eine Dateiänderung statt, wird die entsprechende Seite im Browser neu geladen. AutoReload basiert auf den Modulen connect, connect-livereload, serve-static, tiny-lr und chokidar. Die rund 50 Zeilen Code stehen als Gist bereit. Das Skript wird einfach über die Konsole per Befehl ausgeführt und kann als Argument oder nach dem Start eine Pfadangabe entgegen nehmen, die zum Wurzelverzeichnis der lokalen Website führt.

201522Jul

JavaScript: Desktop-Automatisierung mit Robot.js

Wer automatisierte Aktionen auf Betriebssystemebene ausführen möchte, kann dazu die Skriptsprache AutoHotkey verwenden. Hiermit lassen sich diverse Aufgaben ausführen, zu denen auch Maus- und Tastatureingaben gehören. Für den produktiven Einsatz habe ich damit bereits die Skripte MonitorMouseMover und Simple Alarm entwickelt, die auch bei GitHub bereitstehen.
Einen Haken gibt es bei AutoHotkey bisher allerdings: Die Skriptumgebung steht ausschließlich für Windows zur Verfügung. Das störte auch den Entwickler Jason Stallings, der mit Robot.js ein Node.js-Pendant für Mac OS X und Linux entwickelt hat.

Robot.js - Node.js Desktop Automation

Mit dem Skript lassen sich die absoluten Maus-Koordinaten auslesen und auch setzen, so dass der Mauszeiger an eine bestimmte Stelle auf dem Bildschirm bewegt werden kann. Weiterhin können Tastatureingaben gemacht werden und somit Texte eingefügt werden. Schließlich kann auch die Pixelfarbe unter der Mauszeigerposition ausgelesen werden. Laut Roadmap sind die Arbeiten am "Screen"-Bereich zu 10% abgeschlossen. Der Entwickler möchte hier noch erweiterte Funktionen wie etwa ImageSearch implementieren. Die Windows-Variante von Robot.js steht zudem auch noch aus, befindet sich aber in Arbeit.

201509Jul

Windows: Ordner per Kontextmenü in Konsole öffnen

Wer mit Node.js arbeitet, wird hauptsächlich mit der Konsole arbeiten. Das verwendete Betriebssystem spielt dabei keine Rolle. Im produktiven Einsatz wird in der Regel die entsprechende Konsole (cmd.exe/Terminal) gestartet und anschließend zum gewünschten Verzeichnis navigiert (per cd). Alternativ kann auch ein entsprechender Ordner per Drag 'n' Drop in das Konsolenfenster gezogen werden, um die vollständige Pfadangabe zu erhalten.

Windows - Ordner per Kontextmenü in Konsole öffnen

Unter Windows geht es aber noch einen Schritt schneller: Über einen kleinen Eintrag in der Windows-Registrierung lässt sich allen Ordnern ein Eintrag im Konextmenü hinzufügen, über den dann direkt die Konsole mit dem entsprechenden Pfad geöffnet werden kann. Der vollständige Pfad inklusive Parameter lautet:

  • [HKEY_CLASSES_ROOT\Directory\shell\console\command]
    @="cmd.exe /k cd \"%V\""

Zusätzlich kann im "console"-Bereich (diese Bezeichnung kann frei gewählt werden) noch ein Icon gesetzt werden. Die ZIP-Datei enthält die fertige Registrierungsdatei, die nur noch per Doppelklick aktiviert werden muss.