Home Celeste Programming

scheduler-visualizer

A small program that I created during the scheduling algorithm unit in my operating systems class. It simulates a few different scheduling algorithms based on the provided task list and produces Gantt charts as well as some statistics. Here is an example:


0     5     11 13         25    30      37      44 45        100        110
┌─────┬──────┬──┬──────────┬─────┬───────┬───────┬──┬──────────┬──────────┐
│   P0│    P2│P3│        P8│   P6│     P5│     P1│P4│          │        P7│
└─────┴──────┴──┴──────────┴─────┴───────┴───────┴──┴──────────┴──────────┘
Task      Begin Completion Turnaround    Waiting   Response
   P0          0          5          5          0          0
   P1         37         44         44         37         37
   P2          5         11         11          5          5
   P3         11         13         13         11         11
   P4         44         45         40         39         39
   P5         30         37         25         18         18
   P6         25         30         22         17         17
   P7        100        110         10          0          0
   P8         13         25         20          8          8
  Avg                            21.11      15.00      15.00

I also experimented with fuzz-testing on this project. The rust fuzz book pointed me in the direction of afl.rs, which provides a way to use the American Fuzzy Lop fuzzing program. The fuzzer found a lot of crashes related to the boilerplate required to interface with afl, which is a bit silly. It also discovered an infinite loop when trying to use a round-robin scheduler with a time quantum of 0, and a couple integer overflow bugs.

The source code can be viewed here.

Agora Nomic Notary Tools

This is a tool I made for when I was playing Agora Nomic. (Side note: you should check out agora!). It was my first time working with SQL in any way. The tool updates the database in a way that maintains the invariants imposed by the rules of the Agora (although they may have changed since), and then a monthly report can be generated based on the events provided. The source can be found here.

Kalker

kalker is the main calculator program that I use on my laptop. I was taking a Linear Algebra course in Spring 2026, and I wanted to be able to use this calculator to help with that course. Unfortunately, Kalker does not support most common matrix operations. I added the ability to take the trace and determinant of square matrices in this PR.

Shrimple

The World's First (maybe) shrimp-based daily guessing game! This was created with the amazing and wonderful kaizoplant. Honestly she did the majority of the work. But anyway, you can play the game here: shrimple. We originally planned to have an account system to remember your progress, which was totally overkill for such a s(hr)imple game. Currently it runs entirely clientside. The source code can be viewed here.