This was a research project for my class High Performance Computing at Trent University. It is an automated setup of a cloud compute cluster managed by SLURM.
A single shell script runs Terraform to deploy the 'hardware', Python to gather IP and create configuration files on the fly, and Ansible to configure the servers.
Once the script finshes running, a login node is available to shell into and run jobs using SLURM.
Building on the below project, I experimented with buildroot to automate and make easier the process of creating a custom Linux disto for the Beaglebone Black.
I largely followed Bootlin's tutorial to create this system.
Likely one of the more interesting project's I've had the chance to work on, this was a project which followed Bootlin's Free Training Materials and the first few chapters of Mastering Embedded Linux.
The links above are to a blog series I wrote detailing this project. Which largely consisted of building a custom Linux distrobutution from scratch on the Beaglebone Black.
Challenging yes, but I learned a great deal about how Linux works at it's lowest and first levels.
This is a continuous work in progress Ansible and Docker Compose based automated configuration for my home server.
I've made the github link private to increase the security of my server.
My home server is currently running Nginx Proxy Manager, Nextcloud, and MariaDB to store these services configurations, with plans to expand this to other services.
The set configuration of the hosts file is to be used in conjunction with the scripts/run_docker_ansible.sh. This is a testing environment which runs the playbook on an Alpine Linux docker container.
I did this just so I could finally say "btw I use Arch" or "I use Arch btw".
But for real, Installing Arch was just the next step in my journey of learning more and more about the Linux operating system, and operating systems in general.
A fun little experiment in which a Gitlab server is setup with only a few keystrokes and password entries.
This was my first ever use of Terraform and Ansible. It is not an optimized project at all, and could very much use some future improvements. Nonetheless, it was super fun to dip my toes into the IaC world.
My friends Lindsay, Avery, and I participated in TOHacks this year, as all of our first hackathon!
We built an application that utilizes a REST API made by Digital Humani that requests trees to be planted based on POST requests.
This was a lot of fun to make, I had the most fun leveraging my Linux skills setting up the dev environment for everyone, administering the webserver and Mysql database, as well as teaching my crew some git tricks.
This was a personal project that I have been really looking forward to writing for a long time.
Continuing on with my last project working with TCP, I wanted to deepen my knowledge with it, and prove to my self I understand the basics by writing this webserver.
This project helped me a lot with computer networking, and C programming.
This is the final project from my class COIS-3380 - Systems Programming.
This project was my first time working with Web Sockets, specifically TCP sockets. I really enjoy writing C for Linux, this project was thrilling to write and is likely only the first of many C networking programs I'll write.
This is another project from my class COIS-3380 - Systems Programming.
I had a great time working on this project, and I'm still working on adding to it. My next step is to work it so that the program can take command line arguments like -r or -l.
This repo contains BASH scripts that I have written. Currently, it contains three I wrote for my class COIS-3380 - Systems Programming, and some other assorted ones I've written since.
I really-really enjoy working with Linux and had a great time making these scripts.
See Github for a current description of these scripts
Perhaps the mother of all simple programs. Hardly even worth posting about, except for the fact that this was my first every time writing and using unit tests.
This project starts on a Raspberry PI, with sensors attatched, running inside of my apartment. Contained within, there is a short Python script that pulls the sensor data, and pushes it to a MySQL database. This Pi is automated with modifications to run the script every 15 minutes.
When a user accesses the website, a PHP script runs and gathers the latest data from two sources: The MySQL Database, and an external weather API that returns JSON formated climate data.
This data is then displayed in a responsive grid system to see. :)Update Feb 2022:
After having to move pi's more than once. I got sick of setting this system up more than once. With my new knowledge of bash scripting I decided to improve this workflow incase I ever need to reinstall again.
The script is simple but helpful. It sets the pi up to allow I2C so the sensor can work, checks python versioning, installs package, and sets a cronjob to upload the temp data.
This was a pairs project completed for COIS-3420 - Web Application Development. We were assigned to build a timesheet management website using the languages and tools we learned prior.
With a Vanilla PHP backend, and a Vanilla JS front end, this was a great project to get our feet wet in the world of web development.
This project includes: Session managment, HTML generation, secure password storage/retrieval, and guest login ability.