Tom Flídr Freelance web developer, trainer & consultant,
primary platforms: JS/PHP/C#/VB.NET/MySQL/MSSQL

Open Source Projects

My motivation to write open source software comes from three main reasons:

  • I want to make my work easier and more efficient,
  • I'm sometimes dissatisfied with available solutions and want to do it differently,
  • While preparing an IT course, I come across an interesting idea or one is suggested by a participant.

MvcCore

A PHP framework for building web applications that powers my systems or serves educational purposes for OOP. So far, my biggest project.

  • Focus on performance
    • Minimal use of magic principles and functions.
    • Quick learning curve, no new language or universe.
  • Focus on structure
    • The framework's core can be used for simple applications.
    • For complex projects, a wide range of extensions are available, such as routers, datagrids, etc.
    • No more cluttered folders with controllers, templates, widgets, etc.—all MVC components can be structured as needed.
    • Extremely large applications can be structured as separate Composer packages and used together as modules of a main application.
  • Focus on freedom
    • The framework doesn't enforce any universal solution or style, providing developers maximum creativity.
    • The framework emphasizes long-term backward compatibility.

The framework can build applications or pack extensive libraries into a single PHP file (without PHAR compression),
which improves performance due to simplified opcache.

The framework includes a documentation repository, more than 50 extensions and many example repositories.

Desharp

A .NET utility for dumping or logging variables, objects, exceptions, clickable stack trace and many other features.

  • Output can be displayed in the development output window or CLI.
  • Output can also appear as a floating window in the HTML response of an ASP.NET app (similar to PHP Tracy).
  • Output can be logged to HDD as clickable HTML output or plain text based on priority.
  • Configuration includes log level settings, email alerts, debug IP addresses, custom debug panels, etc.
  • The project includes example repositories, code snippets for Visual Studio, and more.
  • Usage is limited to .NET Framework (reimplementation for .NET Core is pending).

Ext.TS

A web application development project using the Ext.JS framework in TypeScript. Includes generating TS types map (from JSDocs) and usage examples.

  • The project contains a type definition generator for Ext.JS written in C#, which extracts an AST tree of types from the Ext.JS toolkit ZIP file.
  • Pre-generated type definitions for different Ext.JS versions are separate project repositories.
  • Generated type definitions include complete JSDocs help, including working links, formatted code, etc.
  • You can use pre-generated type definitions or create custom ones using the generator.
  • TypeScript definitions for Ext.JS sometimes offer better intellisense autocomplete, than the paid IDE from Sencha.
  • The project includes example repositories for different framework versions.

Databasic.NET

A .NET database layer for simplifying work with relational databases in SQL. It doesn't aim to be an ORM like EntityFramework and doesn't use LINQ.

  • Supports Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, Oracle, ODBC, and OLEDB through chosen extensions.
  • Serializes database data to scalar types, typed classes, ActiveRecord classes, collections, or others using annotations.
  • Detects changes in ActiveRecord classes, inserts, updates, and deletes based on changes and annotations.
  • Allows selecting multiple connections via annotation or directly as another query parameter.
  • Usage is limited to .NET Framework (reimplementation for .NET Core is pending).

Web Dev Server for Node.JS

A simple HTTP server for developing smaller applications or for training purposes.

  • Simple development - TypeScript definitions, "hot reload" for applications upon changes (no need to restart server and debugger).
  • Few dependencies - only tslib and mime-db. Additional packages like express can be used if needed.
  • Main features - default application script/folder, file serving, session management, error handling, logging, error pages, etc.
  • The project includes example repositories.

Notepad++ JS/HTML Formatter Plugin

A plugin for "jN Plugin", reimplementing the code deobfuscator from jsbeautifier.org.

Ajax.JS

A utility offering similar and additional functionalities that built-in window.XMLHttpRequest and window.fetch() objects still lack.

Pooler

A library for parallel tasks in the .NET framework to limit excessive system load from background tasks.

SReality RSS

A custom free RSS feed for the largest Czech real estate portal, using its API, including images and Google Maps. Extremely useful when searching for a new apartment quickly.

IMDB Training Database

A portion of the IMDB (International Movie Database) for training database optimization and query efficiency.

Archived Projects

jDiet.JS

A small JS framework from the jQuery era for JS nerds, created out of disillusionment with bloated jQuery.
Fully compatible with jQuery syntax but includes only frequently used features, all packed in just 8 kB (GZIP).

ClassAdvanced.JS

A universal library for defining classes from the days of widely used ECMAScript 5, which lacked class constructs.

  • Supported constructs: constructor, static and dynamic member extension, parent function calls, namespaces.
  • Similar behavior to "Late Static Binding" in PHP for this.self and this.static.
  • Supported environments: browsers (MSIE6+, Firefox, Webkit, Opera), Node.JS, WSH (Windows Script Host), Adobe ExtendScript Toolkit.
  • Inheritance checks using the instanceof construct and minimal self-reflection for classes and namespaces.
  • Syntax configuration for class writing.
  • Support for "Go To Definition (F12)" in Visual Studio IDE and other editors with a full-featured JS interpreter.
  • Very fast, efficient, super small - 2.8 kB (GZIP).
  • Inspired by PHP OOP, Ext.JS, and Prototype.JS syntax.
GradientOverlay.JS

A library for creating color overlays on images in the browser from a time when the CSS property filter was not widely adopted.