Jack Parkinson

Projects

My work is organized primarly on GitHub, but I also have a GitGud profile as a backup.


MTG Power Words

An analysis of words used in the names of Magic: The Gathering card names. Common words are sorted by color and frequency, with some visualizations to show the most and least common.

The work is all done in main.ipynb, reading data from a JSON file to create dataframes and then using pandas and string manipulation to clean it. The 100 most common words were isolated, then graphs were generated with matplotlib and output manually.

I have played MTG extensively and am familiar with recurring characters and trends, which let me provide some unique insight in the write-up (the character Nicol Bolas had his name interpreted as "bola," for instance).


Weather Visualizations

Visualizations of weather data using the OpenWeather API and a city-finding library in Python. This was a simple exercise but I was proud of the output since I needed to marry datasets that had been made with very different assumptions/expectations (the definition of "city" is not as universal as you might think) and think about the data in practical way.


Anglish Translator

An OpenAI assistant that translates English to Anglish (English with only Anglo words). Anglish is a conlang, spoken by no-one and written only by obsessive people who enjoy turning words like "conquering" into "overlordship" - it is genuinely less known than Klingon.

This made for several challenges when working with traditional LLMs: there is barely any data to feed into them, making it flatly impossible to have an LLM trained in Anglish. I was able to overcome both of these factors and produce something that functions reasonably well and can be used by someone with no technical background.


HISTO-SYSTEM

A Linux C program that writes to and reads random characters from a circular buffer to generate a histogram which is displayed in a command terminal in real time. Uses inter-process communication, multi-threading, and semaphores to control access to shared memory.

I'm really proud of the way I handled debugging on this one. The GNU debugger is a joke and I didn't want to use an IDE, so I built in a switch (#def DEBUG) in a header file that could be commented out on compilation. Most code blocks have #ifdef DEBUG checks which output helpful, human-readable information if the program was compiled in "verbose" mode.