lch361's projects

A digital forge of progress

Every project developed by me, summarized. Every page is accompanied by a history of development, architectural details and engineering thought behind every project.

lch361.net

My personal website that you are watching right now. A place for my thoughts. A place to tell about my skills, projects and share information that I, from a developer perspective, find useful and interesting.

spiral

General purpose editing of lines in a terminal. Available as a Zig library, as well as a separate executable. Intended usage is command-line applications working in a REPL fashion, where every line could require rich editing.

lcalc

A command-line calculator with simple, but modern interface. Intended usage is interactive, shell-agnostic calculations. Supports arbitrary precision integer, rational, floating and complex numbers. It is also my first complete project in Zig programming language.

STM32 Morse device

An STM32F103C6T6 microcontroller firmware. Textual information goes to the USART pins on a microcontroller, while Morse signal is on one of the digital pins, for example, connected to LED. Sending ASCII letters through USART will make an LED blink accordingly to the decoded Morse signal, and otherwise. It is my first firmware made with Zig programming language, and it serves as a great example of a simple, interrupt-driven application.

sdns-json

A command-line converter of DNSCrypt 2 stamps into JSON, and otherwise. Provides an intuitive interface and a simple to understand documentation, while simultaneously conforming to both JSON and DNSCrypt standards. Many DNSCrypt applications use stamps in their encoded form, but there was no offline application to configure them in text format. Also, it is my first complete project in Rust programming language.

FCDL

A Linux kernel module written in C. Creates a special character device that, when being read from, outputs every created or deleted file on the entire system. It does so by intercepting system calls. My first Linux Kernel module ever developed. Not very practical for use, because Inotify exists.