Tom Flídr Freiberuflicher Webentwickler, Trainer & Berater,
Primäre Plattformen: JS/PHP/C#/VB.NET/MySQL/MSSQL

Open Source Projekte

Die Motivation, Open-Source-Software zu schreiben, ergibt sich bei mir aus 3 Hauptgründen:

  • Ich möchte meine Arbeit erleichtern und effizienter gestalten,
  • ich bin manchmal mit verfügbaren Lösungen unzufrieden und möchte es anders machen,
  • bei der Vorbereitung eines IT-Kurses stoße ich auf eine interessante Idee oder sie wird von einem der Teilnehmer eingebracht.

MvcCore

PHP-Framework zur Erstellung von Webanwendungen, das meine Systeme antreibt oder zu Schulungszwecken in OOP verwendet wird. Bislang das größte Projekt.

  • Fokus auf Performance
    • So wenig magische Prinzipien und Funktionen wie möglich.
    • So steile Lernkurve wie möglich, keine neue Sprache oder neues Universum.
  • Fokus auf Struktur
    • Für einfache Anwendungen kann nur der Kern des Frameworks verwendet werden.
    • Für komplexe Projekte steht eine breite Palette von Erweiterungen zur Verfügung, die miteinander zusammenarbeiten – Router, Datagrids usw.
    • Nie wieder überfüllte Ordner mit Controllern, Templates, Widgets usw. Alle MVC-Komponenten können nach Bedarf strukturiert werden.
    • Extrem große Anwendungen können eigenständig in Composer-Pakete strukturiert und zusammen als Module einer Hauptanwendung verwendet werden.
  • Fokus auf Freiheit
    • Das Framework versucht nicht, universelle Lösungen und Stile zu erzwingen; der Entwickler hat maximale kreative Freiheit.
    • Das Framework legt großen Wert auf langfristige Rückwärtskompatibilität.

Das Framework kann Anwendungen erstellen oder umfangreiche Bibliotheken in eine einzelne PHP-Datei packen (ohne PHAR-Packing),
die durch vereinfachtes opcache noch schneller sind.

Teil des Frameworks ist ein Dokumentations-Repository, mehr als 50 Erweiterungen und viele Beispiel-Repositories.

Desharp

.NET-Utility zum Dumpen oder Loggen von Variablen, Objekten und Ausnahmen mit Call-Stack-Trace und vielen weiteren Funktionen.

  • Ausgabe kann im Entwicklungs-Ausgabefenster oder in der CLI angezeigt werden.
  • Ausgabe kann auch als schwebendes Fenster in der HTML-Antwort einer ASP.NET-Anwendung angezeigt werden (ähnlich wie bei PHP Tracy).
  • Ausgabe kann prioritätsbasiert auf der Festplatte als klickbare HTML-Ausgabe oder einfacher Text geloggt werden.
  • Konfiguration – Log-Level-Einstellungen, E-Mail-Benachrichtigungen, Debug-IP-Adressen, benutzerdefinierte Debug-Panels usw.
  • Teil des Projekts sind Beispiel-Repositories, Code-Snippets für Visual Studio und mehr.
  • Nutzung nur im .NET Framework (die Umgebung .NET Core wartet noch auf eine Reimplementierung).

Ext.TS

Ein Web-Anwendungsentwicklungsprojekt unter Verwendung des Ext.JS-Frameworks in TypeScript. Beinhaltet das Generieren einer TS-Typenzuordnung (aus JSDocs) und Anwendungsbeispiele.

  • Das Projekt enthält einen Typdefinitionen-Generator für Ext.JS, geschrieben in C#, der aus dem Ext.JS-Toolkit-ZIP eine AST-Baum-Struktur der Typen extrahiert.
  • Vorgefertigte Typdefinitionen für verschiedene Ext.JS-Versionen sind als separate Repositories des Projekts verfügbar.
  • Die generierten Typdefinitionen enthalten vollständige JSDoc-Hilfen des Frameworks, inklusive funktionierender Links, formatiertem Code usw.
  • Es können vorgefertigte Typdefinitionen verwendet oder eigene kompaktere mit dem Generator erstellt werden.
  • TypeScript-Definitionen für Ext.JS bieten teilweise eine bessere Intellisense-Autovervollständigung als die kostenpflichtige IDE von Sencha.
  • Zum Projekt gehören Beispiel-Repositories für verschiedene Versionen des Frameworks.

Databasic.NET

.NET-Datenbankschicht zur Erleichterung der Arbeit mit relationalen Datenbanken in SQL. Ziel ist es nicht, ein ORM wie EntityFramework zu sein; LINQ wird nicht verwendet.

  • Implementierung für Microsoft SQL Server/MySQL/MariaDB/PostgreSQL/Oracle/ODBC/OLEDB mithilfe der gewählten Erweiterung.
  • Serialisierung von Datenbankdaten in skalare Typen, typisierte Klassen, ActiveRecord-Klassen, Sammlungen oder andere mithilfe von Annotationen.
  • Änderungserkennung in ActiveRecord-Klassen, Einfügen, Aktualisieren und Löschen basierend auf Änderungen und Annotationen.
  • Möglichkeit, zwischen mehreren Verbindungen anhand von Annotationen oder direkt als weiterer Parameter einer Abfrage zu wählen.
  • Nutzung nur im .NET Framework (die Umgebung .NET Core wartet noch auf eine Reimplementierung).

Web Dev Server for Node.JS

Einfache HTTP-Serverlösung zur Entwicklung kleinerer Anwendungen oder für Schulungszwecke.

  • Einfache Entwicklung – TypeScript-Definitionen, "Hot Reload" der Anwendung bei Änderungen (kein Neustart von Server und Debugger erforderlich).
  • Wenige Abhängigkeiten – nur die Pakete tslib und mime-db. Bei Bedarf können express und andere genutzt werden.
  • Hauptfunktionen – Standardskript für Anwendungen/Verzeichnisse, Dateiübertragung, Sessions, Fehlerbehandlung, Logging, Fehlerseiten usw.
  • Zum Projekt gehören Beispiel-Repositories.

Notepad++ JS/HTML Formatter Plugin

Plugin für "jN Plugin", eine Reimplementierung des Code-Deobfuskators der Seite jsbeautifier.org.

Ajax.JS

Utility mit denselben Funktionen und zusätzlichen Features, die in den eingebauten Objekten window.XMLHttpRequest und window.fetch() noch fehlen.

Pooler

Bibliothek für parallele Aufgaben im .NET Framework, um eine zu hohe Systembelastung durch Hintergrundprozesse zu vermeiden.

SReality RSS

Eigener kostenloser RSS-Feed des größten tschechischen Immobilienportals, der dessen API nutzt, inklusive Bildern und Google Maps. Sehr hilfreich, wenn Sie schnell eine neue Wohnung suchen.

IMDB Training Database

Ein Teil der IMDB-Datenbank (International Movie Database) für Schulungszwecke in Datenbank- und Abfrageoptimierung.

Archivierte Projekte

jDiet.JS

Kleines JS-Framework aus der jQuery-Ära für JS-Enthusiasten, entstanden aus der Ernüchterung über das "aufgeblähte" jQuery.
Die Syntax ist vollständig mit jQuery kompatibel, jedoch enthält das Framework nur häufig genutzte Funktionen, alles in nur 8 kB (GZIP).

ClassAdvanced.JS

Universelle Bibliothek zur Klassendeklaration aus der Zeit des weit verbreiteten ECMAScript 5, als es noch keine Klassensyntax gab.

  • Unterstützte Konstruktionen – Konstruktor, Vererbung für statische und dynamische Mitglieder, Aufrufe von Elternfunktionen, Namespaces.
  • Ähnliches Verhalten wie "Late Static Binding" in PHP für this.self und this.static.
  • Unterstützte Umgebungen – Browser (MSIE6+, Firefox, Webkit, Opera), Node.JS, WSH (Windows Script Host), Adobe ExtendScript Toolkit.
  • Vererbungsprüfung mit der instanceof-Konstruktion und minimalistische Selbstreflexion für Klassen und Namespaces.
  • Konfigurierbare Syntax für die Klassendeklaration.
  • Unterstützung für "Gehe zu Definition (F12)" in Visual Studio IDE und anderen Editoren mit vollständigem JS-Interpreter.
  • Sehr schnell, effizient, superklein – 2,8 kB (GZIP).
  • Inspiration aus PHP OOP, Ext.JS und Prototype.JS-Syntax.
GradientOverlay.JS

Bibliothek zur Erstellung von Farbverläufen über Bildern im Browser, aus der Zeit, als die CSS-Eigenschaft filter noch nicht weit verbreitet war.