Tom Flídr Freelance web developer, lektor a konzultant,
primární platformy: JS/PHP/C#/VB.NET/MySQL/MSSQL

Open source projekty

Motivace psát open source software u mě vychází z 3 hlavních důvodů:

  • chci si svoji práci více usnadnit a zefektivnit,
  • jsem občas nespokojený s dostupnými řešeními a chci to jinak,
  • při přípravě IT kurzů narazím na zajímavý nápad nebo ho přinese některý z účastníků.

MvcCore

PHP framework pro vytváření webových aplikací, který pohání mé systémy nebo slouží k výukovým účelům OOP. Prozatím největší projekt.

  • Důraz na výkon
    • Co nejméně magických principů a funkcí.
    • Co nejrychlejší křivka učení, žádný nový jazyk nebo vesmír.
  • Důraz na strukturu
    • K jednoduchým aplikacím lze použít pouze jádro frameworku.
    • Pro komplexní projekty lze použít širokou škálu extenzí, které spolu navzájem spolupracují - routery, datagridy, atd.
    • Už nikdy nebudete mít přeplněné složky s controllery, šablonami, widgety apod., všechny MVC komponenty lze strukturovat dle potřeby.
    • Extrémně velké aplikace lze samostatně strukturovat do Composer balíčků a používat je dohromady jako moduly jedné hlavní aplikace.
  • Důraz na svobodu
    • Framework se nesnaží nutit žádné univerzální řešení a styl, vývojář má maximální možnost kreativity.
    • Framework klade důraz na dlouhou zpětnou kompatibilitu.

Framework umí vytvářet aplikace nebo sbalit rozsáhlé knihovny do jednoho souboru PHP (bez sbalení PHAR),
které jsou díky takto zjednodušené opcache ještě rychlejší.

Součástí frameworku je repozitář dokumentace, více než 50 rozšíření a mnoho repozitářů s příklady.

Desharp

.NET utilita pro dumpování nebo logování proměnných, objektů, výjimek, s trasováním volání a s mnoha dalšími funkcemi.

  • Výstup lze zobrazit ve vývojovém okně výstupu nebo v CLI.
  • Výstup lze zobrazit také jako plovoucí okno v HTML odpovědi ASP.NET aplikace (podobně jako u PHP tracy).
  • Výstup lze logovat podle priorit na HDD jako klikatelný HTML výstup nebo prostý text.
  • Konfigurace - nastavení logování podle úrovní, zasílání upozornění emailem, debug IP adresy, vlastní debug panely apod.
  • Součástí projektu jsou repozitáře s příklady, code snippety pro Visual Studio a další.
  • Použití pouze v .NET Framework (prostředí .NET Core stále čeká na reimplementaci).

Ext.TS

Projekt vývoje webových aplikací s frameworkem Ext.JS v TypeScriptu. Generování mapy TS typů (z JSDocs) a příklady použití.

  • Projekt obsahuje generátor typových definic Ext.JS napsaný v jazyce C#, který z Ext.JS toolkit ZIP souboru extrahuje AST strom typů.
  • Předgenerované typové definice pro jednotlivé verze Ext.JS jsou jako samostatné repozitáře projektu.
  • Vygenerované typové definice obsahují plnou JSDocs nápovědu frameworku včetně fungujících odkazů, formátovaného kódu apod.
  • Lze použít vygenerované typové definice nebo si pomocí generátoru vytvořit vlastní, stručnější.
  • TypeScript definice pro Ext.JS poskytují v některých místech i lepší automatické doplňování, než placené vývojové prostředí od Sencha.
  • Součástí projektu jsou repozitáře s příklady pro jednotlivé verze frameworku.

Databasic.NET

.NET databázová vrstva pro usnadnění práce s relační databází v SQL. Nedává si za cíl být ORM jako EntityFramework, nepoužívá LINQ.

  • Implementace pro Microsoft SQL Server/MySQL/MariaDB/PostgreSQL/Oracle/ODBC/OLEDB, pomocí zvolené extenze.
  • Serializace databázových dat do skalárních typů, typovaných tříd, tříd ActiveRecord, kolekcí nebo dalších pomocí anotací.
  • Detekce změn v třídách ActiveRecord, vkládání, aktualizace a mazání podle změn a anotací.
  • Možnost výběru z více připojení podle anotace nebo přímo jako další parametr dotazu.
  • Použití pouze v .NET Framework (prostředí .NET Core stále čeká na reimplementaci).

Web Dev Server for Node.JS

Jednoduchý HTTP server pro vývoj menších aplikací nebo pro účely školení.

  • Jednoduchý vývoj - TypeScript definice, "hot reload" aplikace při změně (není třeba restartovat server a debugger).
  • Málo závislostí - pouze balíčky tslib a mime-db. Pokud je třeba, lze použít express apod.
  • Hlavní funkce - výchozí script aplikace/složky, odesílání souborů, session, řešení chyb aplikací, logování, chybové stránky apod.
  • Součástí projektu jsou repozitáře s příklady.

Notepad++ JS/HTML Formatter Plugin

Zásuvný modul pro "jN Plugin", jde o reimplementaci deobfuskátoru kódu z domény jsbeautifier.org.

Ajax.JS

Utilitka nabízející stejné funkce a funkce navíc, které dodnes vestavěné objekty window.XMLHttpRequest a window.fetch() stále nemají.

Pooler

Knihovna pro paralelní úlohy v .NET frameworku, pro omezení příliš vysokého loadu systému úlohami na pozadí.

SReality RSS

Vlastní neplacený RSS kanál největšího českého realitního portálu využívající jeho API, včetně obrázků a google map. Velmi potřebné, pokud rychle sháníte nový byt.

IMDB Training Database

Část databáze IMDB (International Movie Database) pro účely školení optimalizí databází a dotazů.

Archivované projekty

jDiet.JS

Malý JS framework z dob jQuery pro JS nerdy, který vznikl na základě deziluze z obtloustlého jQuery.
Syntaxe je plně kompatibilní s jQuery, avšak framework obsahuje pouze funkce, které byly reálně využívané, vše pouze jako 8 kB (GZIP).

ClassAdvanced.JS

Univerzální knihovna pro zápis tříd z dob široce rozšířeného EcmaScriptu 5, kde nebyly konstrukce pro zápis tříd.

  • Podporované konstrukce - konstruktor, rozšířování pro statické a dynamické členy, volání rodičovských funkcí, namespaces.
  • Obdobné chování jako "Late Static Binding" v PHP pro this.self a this.static.
  • Podporované prostředí - prohlížeče (MSIE6+, Firefox, Webkit, Opera), Node.JS, WSH (Windows Script Host), Adobe ExtendScript Toolkit.
  • Kontrola dědičnosti pomocí instanceof konstrukce a minimalistická sebereflexe pro třídy a namespaces.
  • Konfigurace syntaxe pro zápis tříd.
  • Podpora pro "Go To Definition (F12)" ve Visual Studio IDE i jiných editorech s plnohodnotným JS interpretem.
  • Velmi rychlé, efektivní, supermalé - 2.8 kB (GZIP).
  • Inspirace z PHP OOP, Ext.JS a Prototype.JS syntaxe.
GradientOverlay.JS

Knihovna pro vytváření barevných přechodů nad obrázky v prohlížeči z dob, kdy nebyla široce rozšířena vlastnost CSS filter.