Konstantin's coding samples

Select one or more keywords:
[c4wa]

Compiler from a subset of C to Web Assembly Text (WAT)

A compiler from a subset of C to Web Assembly Text format. While not a full C implementation, it supports loops, conditionals, all of C operators, all primitive types, structs, arrays and pointers while generating a compact, readable and efficient WAT/WASM code.

Download page: https://github.com/kign/c4wa/releases

#Java #C #WebAssembly #Antlr4 #Gradle

[react-cal]

Calendar/Todo list in ReactJS

Notes for each day, saved into browser local storage.

Live demo: https://kign.github.io/react-cal

#React #Javascript

[lifefx]

JavaFX demo for Game of Life

Conway's Game of Life with JavaFX-based UI, plugging in a C library via JNI.

#Java #JavaFX #JNI

[life-inf]

Web UI for Game of Life on true infinite board

Core algorithm implemented in C and compiled to WASM with c4wa compiler; Javascript-based UI supports Pan/Zoom with multi-touch

Live demo: https://kign.github.io/life-inf

#C #Javascript #WebAssembly

[life-lib]

Optimized C library for Game of Life

Used in JNI and Python C interface packages included here; optimized to support up to 120 fps with 1200x1600 board on modern hardware (single-thread mode).

#C

[life-pni]

Low-level Python package for Game Of Life API

Integrating C library into Python package, with callback support.

PyPi link: https://pypi.org/project/conway-life

#Python #PyPi #Python C interface

[life-pyweb]

Python package for Game of Life Web UI

An example of using conway-life package, and also a template for Python-based Web UI more generally.

PyPi link: https://pypi.org/project/life-web-ui

#Python #PyPi #Flask

[life-wasm]

Native Web Assembly implementation for Game of Life

Original C implementation done natively in Web Assembly; there is also an interesting performance comparison between native implementation and some popular Web Assembly runtimes.

Live demo: https://kign.github.io/life/life-web.html

#WebAssembly #Javascript

[any-db]

Database utilities

Lots of Java code (almost 10,000 lines!), mostly implementing typical database tasks in a uniform way regardless of a backend. Among supported backends are PosgreSQL, MySQL, Redshift, Snowflake, Presto, hive and sqlserver.

There is also a Java RMI-server which keeps JDBC connection alive making it possible to bypass browser authentication on every query, and an advanced interactive shell with table/column name completion, saved history and terminal width-adjusted output formatting.

Bash wrappers for all utilities included.

#Java #SQL #JDBC #Maven

[js-billiard]

Billiard game in JavaScript

Fun game, which also is a showcase for an elastic collision algorithm and a TypeScript programming. Elastic collision is implemented in Zig (a very new language which is basically an improved C) compiled into Web Assembly.

Live demo: https://kign.github.io/js-billiard

#Typescript #Javascript #WebAssembly #Zig #Webpack

[xonix]

Xonix

The only project originally written more than 10 years ago. “Xonix” is a very old terminal game I saw back in the high school; when I learned about the original version of Google Web Toolkit making it possible to implement interactive applications on the Web, I used it for this implementation. Code is written entirely in Java and transcoded to JavaScript with GWT v1.

Live demo: https://kign.github.io/xonix

#Java #GWT

[starwars]

Starwars: simultaneous programming for terminal and for Web

An exercise in Java using lanterna, a popular ncurses library. There is also a Web version with Java to JavaScript transcoding using TeaVM.

Could be adapted to support any other ncurses/terminal games.

Live demo: https://kign.github.io/starwars/starwars.html

#ncurses #Java #Javascript #TeaVM #Gradle

[pkg-inetlab]

Python helper libraries

Large collection of Python utilities, which at some point I decided to accumulate under one published package. Most other projects included here use some utilities from this package.

Among other things, it has an email send utility which works both with a typical SMTP server while also supporting Google Gmail API.

PyPi link: https://pypi.org/project/inetlab

#Python #PyPi

[hcal]

Hebrew calendar

I have written several handy Chrome extensions, but that’s the only one thus far actually published in the Chrome Web Store.

It’s main differentiator vs many other Hebrew calendars available online is that it shows the Hebrew month/year not as an overlay over a Gregorian calendar, but by itself. Visual representation of the 19 year metonic cycle (corresponding to 235 lunar months) is also nice.

Chrome Web Store link: Real Jewish Calendar

#Javascript #Chrome

[board]

Collaborative Programming Board

Not 100% finished, but the idea was to make a collaborative JavaScript programming environment on a simple board, coordinated between participants via a server with a Restful API.

#RESTful API #Python #Javascript

[url-shortener]

URL shortener service

A fully functional Web shortener implementation written in Python3 (backend) and Bootstrap 5 (UI), using free Google Firestore as NoSQL database backend. Supports authentication with either Google or Microsoft accounts.

Live deployment: ign.us

#Python #Bootstrap #Javascript #jQuery #Flask #NoSQL

[dw-new-comments]

New comments marker for Dreamwidth.org

While not published, this is a fully functional Google Chrome extension which adds a markup for newly added used comments on popular blogging site Dreamwidth.org

#Chrome #Javascript

[kign.github.io]

Source code for this personal page

Static page generated from Jinja2 template, with animation courtesy of jQuery.

#Bootstrap #Javascript #jQuery #Python