Reagan's Code Corner

Table of Contents


C-Minus Interpreter

C Minus

I'm working on writing a basic interpreter for a subset of C99 I'm calling C-Minus.

The interpreter is being written in C99 and will (hopefully) be self-hosting. It'll support all C99 features except for:

You can follow my progress at the git page for this project. I'll also post links to progress updates below.

  1. Step 1: Lexing

Mock Networks

Network

I've used the GNS3 network modelling software to experiment with various network architectures, and have gone as far as to set up a full active directory domain (pictured here) with multiple users attached.

One aspect of active directory domains I'm interested in is properly integrating them with Linux DNS/LDAP architecture to allow for successful mixed-system environments.

Outside of active directory domains, I've also experimented with setting up mock DSL ISPs with RADIUS authentication and integrated DNS servers, along with web CDNs.

I plan to update this space with a link to a writeup on one of these projects soon.

Win32/C++ Text Editor

Editor

I built a semi-functional text editor using the Windows console API and C++ for PPSCs CSC161, Computer Science II. This project implemented various facets of object-orientated design such as polymorphism, encapsulation, and exception handling.

While it's a bit buggy, it's still able to edit files. Designing it was challenging as many aspects of the windows API are poorly documented, and the console API specifically is not intended for use as a TUI design tool, unlike for instance NCurses.

The code is available here

This Website!

Website

This website was hand-coded by me and is hosted via Nginx on a Virtual Private Server. Most of the CSS is either my own work or from the NewCSS framework. I've also installed a git server, an email server, and a personal VPN.

The part of it I'm most proud of is the cat picture finder. Go to cat to get one of 9937 beautiful cat pictures. The cat pictures are sourced from a Kaggle dataset meant for AI training. I used multiple python scripts to deduplicate them, move them into their own folders, clean them up for the web, and properly number them.



I'll soon have more projects to showcase, watch this space!