Hiking Blog

Hiking, climbing, via ferrata & trail maps. Personal hike experiences.

A personal hiking blog with route files, interactive maps and metadata.

PlanetoidGen

A highly parallel distributed system for pipeline-oriented geographic data processing.

The system was developed to use cloud computing to provide near real time generation of large-scale 3D models of eastern Ukraine during the full-scale russian invasion for news coverage and education purposes with a storytelling aspect. The result is similar to a dynamic timeline-based version of Cesium Ion or Google Earth with a small web client using limited pre-generated data and full desktop client displaying landscapes with streamed models. The system follows a Microservice architecture using REST and gRPC for communication through the API, PostgreSQL for temporary map data and metadata storage, MongoDB for 3D model, satellite image, texture, and description storage, Kafka for processing request querying and distribution among multiple worker Software Agents through a load balancer, and Overpass as the cartographic data source. Parallel computing and asynchronous execution is utilized where possible, database information serialization routines are generated through runtime bytecode JIT-compilation, and dynamic SQL stored procedure generation is used for query optimization. The system supports extensions through runtime plugin loading using Dynamic Link Libraries. Kubernetes are used for component container management. Monitoring, reliability, scalability and other aspects are considered. The system can be hosted independently or through AWS/Azure/Google.

Crosslight

A language translation / interpretation engine for cross-language compilation / execution.

The original idea of the project was to create a modular plugin-based framework for translating code between different programming languages. The goal was to achieve language interoperability in game engines where only a specific scripting language is supported. The project is written in .NET Standard. For now, the development was frozen due to personal time constraints and will be reworked from scratch as part of the cross game engine toolset in the future.

Geo Tools

A .NET GeoServer client API with minimal dependencies exclusively on standard libraries.

During my master’s thesis project development I wanted to connect GeoServer to a PostgreSQL database during runtime, since the table and schema name wasn’t known beforehand. I found out that there is no official .NET API for the server and the proposed autogenerated OpenAPI project is extremely outdated. Thus, I took it upon myself to write a proper library for GeoServer administration in .NET Standard for anyone to use. Right now the project is temporarily frozen due to lack of personal time, but it will be resumed shortly.

Nanoid C++

A tiny, URL-friendly, unique string ID generator for C++, implementation of ai's nanoid.

This C++ project was developed for the purpose of providing variable-length unique identifiers for entities in custom game engines and client applications. Can be Safe. It uses mt19937, a strong random generator with a seed from random_device by default, which is not cryptographically secure. However, the library can be expanded using an algorithm of choice (from OpenSSL, Crypto++, Botan, LibCrypto) using the API. Compact. It uses more symbols than UUID (A-Za-z0-9_-) and has the same number of unique options in just 22 symbols instead of 36. Fast. Nanoid is as fast as UUID but can be used in URLs.

TUM Info

A bunch of useful exam-related information I've collected while studying at the Technical University of Munich.

A relatively big dataset of TUM exam statistics and course reviews. The data is collected anonymously and distributed across schools. The website uses Jekyll, Ruby, and GitHub Actions to statically compile the data and make it available in HTML and JSON formats for further usage or analysis. The project uses a custom Python web scraper to collect courses for a specific student using their login and password.

Data Visualization

A set of small data visualization projects.

An assortment of different data visualization toy project I have been working on. These include hiking routes with Digital Elevation Maps, profiling statistics and more.