Hi,

I am Evan Pratten

Who I am

I am a first-year college student, studying Information Security at Sheridan College, starting this fall. I develop software both as a hobby, and professionally, and have been programming since I was in the 5th grade. I am also a Canadian amateur radio operator (callsign VA3ZZA), and the former Lead Software Developer at Raider Robotics.

The blog

I occasionally post writeups and tutorials in the blog portion of this website. Below are the three most recent posts.

Building a cheap APRS digipeater
Using an extra radio and some spare parts, I set up an APRS/APRS-IS/APRStt digipeater. This post covers some of the details.
How I flashed QMK to my Vortex Core
After having some issues with the factory firmware on my 40% keyboard, I decided to replace it with the widely used QMK firmware instead.
Using KBFS as a makeshift maven server
In my never-ending hunt for a suitable solution for hosting Java libraries, I take a stop to try out Keybase Filesystem (KBFS)

My notable projects

I develop and provide many web and desktop applications for public use. I host them all on my private backend infrastructure. The network of servers that powers these applications was originally set up to help me learn server management and distributed application development.

Darth Raider
Darth Raider Archived

Darth Raider was a competitive robot built in 6 weeks by a team of highschool students. My main role on this project was as the lead programmer and team lead for software development as a whole.

Lib5K
Lib5K

Lib5K is the core software library that powers all of Raider Robotics' robots. It started as a summer project of mine, and has now been used to build high-performance competitive robots, and win some awards along the way.

OpenDepthMap

OpenDepthMap is an experiment in Binocular Depth Mapping, based around the ultraleap's first generation LeapMotion hand tracking sensors.

MCInfo
MCInfo

MCInfo is a simple web app for viewing information about any public Minecraft server or user. The site is powered by the RetryLife API, and communicates to servers via TCP connections using Dinnerbone's Python library.

Open App
DJI3D
DJI3D

DJI3D is a tool for graphing 3d positional data extracted from DJI drone telemetry. This tool works by extracting flight computer data from video metadata.

PolyMesh
PolyMesh

PolyMesh is a suite of tools, a library, and a file format I designed to describe and render arbitrary 3D objects. This project is partly a learning experiment, and partly a tool for future projects to build upon.

Deep Breath
Deep Breath

Deep Breath is an exploration game where you explore an underwater cave in hopes of finding your lost transponder. Items and upgrades can be acquired along the way to assist your search.

cl

cl is my command-line amateur radio logging tool. This program is designed to allow me to log radio contacts in my terminal.

boop

boop is a command-line tool that aims to be a super simple cross between ping and nmap. The tool can quickly probe hosts using ICMP ping packets, and report their status.

ittyr

ittyr is a CLI Internet Teletype client that decodes and outputs ITTY messages in real time as they are being streamed through the ITTY service.

adif-rs

Amateur Data Interchange Format parsing and generation tools for Rust.

JDMA

JDMA is a Java library that provides c-like malloc() and free() functions, along with many others. All functions operate off-heap, meaning no need to deal with the garbage collector.

Minecraft Query

Minecraft Query is a small CLI tool for checking who is playing on a Minecraft server.

Student Portal
Student Portal

This is a free-to-use webapp that acts as a new frontend to the TVDSB Student Portal website. This webapp also includes some extra data and graphs of each student's progress through highschool.

Open App
HamBands

HamBands is a small Rust library for checking which amateur radio band a frequency belongs to.

Path Following Demo
Path Following Demo

This application is an interactive demonstration of the Pure Pursuit algorithm used by @frc5024 in frc5024/lib5k.

FilterLib

FilterLib is a small utility library for Java that is designed to provide a simple way to work with lists of data. This library is heavily callback-oriented.

FrostBucket
FrostBucket

FrostBucket is a server-side Minecraft plugin that adds a new item, the "Frost Bucket". This item turns water into ice.

MinimapServer

MinimapServer is an open-source re-implementation of xaero96's Minimap API for his popular Xaero's Minimap and Xaero's World Map Minecraft mods.

mathutils

The goal of this library is to provide a few small and simple functions to speed up software development involving linear transformations and basic trigonometry.

Bird's-Eye
Bird's-Eye Archived

A GUI application for providing a multi-user bird's-eye view of players on Minecraft servers that have the Dynmap plugin installed.

HATCHField
HATCHField Archived

HATCHField was a competitive robot built in 6 weeks by a team of highschool students. My main role on this project was as the lead programmer and team co-lead for software development as a whole.

LegalAccess
LegalAccess

LegalAccess is a small Java library that wraps some commonly used reflection code for fetching / modifying private variables and methods.

Micromanaged Mike
Micromanaged Mike

Micromanaged Mike is a game built over a weekend for Ludum Dare 46 by myself and a group of friends.

MChat

A console chat client for most Minecraft server versions. This is mainly a personal tool for quick server moderation without dealing with RCON.

MCDiscovery

mcdiscovery is a Python library and CLI tool for discovering Minecraft LAN worlds / servers on your local network by listening to multicast communication between Minecraft clients

RetryLife API

If you are looking to build an application that hooks into the backend of any one of my services, take a look at the RetryLife API. My backend API is edge-cached and CORS-ready for use in any application at any load.

MiniBot
MiniBot Archived

MiniBot was an experimental robot built by myself and some friends. I both developed its control software, and worked on the hardware side of the machine.

Easy Pose Notation library
Easy Pose Notation library

LibEPN is a Java library I built that provides a common interface for working with the position and orientation of objects in 3-dimensional space by making heavy use of Quaternions.

FlippyCat
FlippyCat Archived

FlippyCat is a FlappyBird clone that I built with @hyperliskdev for an 11th grade computer science assignment. The first game I ever worked on in Java

Ultralight
Ultralight

Ultralight is a custom maven server that is designed to run on machines with very low resources, and almost no storage. I use Ultralight to host my personal maven repositories, and welcome other people to set up their own instances.

Demo
Not Enough Reviews
Not Enough Reviews

Not Enough Reviews (NER) is a GitHub frontend webapp I built to let me browse discussions and changes in a visual style I like. This project was inspired by old text-based software mailing lists, and made more modern with a nice touch of CSS.

Open App
JState

JState is a library for implementing Finite State Machines in Java code with minimal work. It was originally written by me for use at Raider Robotics, but has since been forked and updated to run without the team's infrastructure around it.

InputLib

InputLib is a small and easy-to-use Java library for working with text-based user inputs in a terminal. InputLib is designed to reduce messy safety-checking code without sing a large parsing library like ANTLR

rev-11-1105-rs

Platform-agnostic Rust definitions for the Rev Robotics REV-11-1105 Blinkin LED Driver

Q*bert
Q*bert Archived

Q*bert was a competitive robot built in 6 weeks by a team of highschool students. I developed control and navigation software for this robot.

SmallTools

SmallTools is a collection of programs and tools that are too small to get their own GitHub repository. I mainly use these as a learning tool for trying out new languages, libraries, and ideas.

GitHub Actions for FRC Archived

A GitHub CI action specifically built for FRC/GradleRIO codebases. This has been used in production by multiple FRC teams, and has become a core tool in the Raider Robotics software development pipeline.

GitHub Marketplace
Shift

Shift is a rotating-key, XOR-based data encryption tool that I built to learn about the inner workings of simple encryption tools. This tool is used to obfuscate program data in some of my other applications.

Blog Post
Rayzor
Rayzor Archived

Rayzor is my final project from my ICS4U computer science class. This is a 3D raytracer that can generate still images from a scene definition file. Take a look at the project's README file for some examples.

Pi-hole API

This is an old project of mine that is used in some of my backend server management tools, and by many other people in personal projects. Pi-hole API is a Python3 wrapper around the Pi-hole admin interface.