Small Projects

These are some smaller things I have done that aren't large enough to justify a separate page.

During my senior year of high school, I got a message from Eye Encounters (a small business I monitor and maintain a WordPress site for) that they were upgrading the server they used for securely storing their medical records on site, and that I could have the old one for personal use after wiping the data off of it. I wiped the server using the DoD 5220.22M method on ShredOS, then installed Fedora onto the server. From there, I set up Nextcloud using Fedora's package for it, a self hosted "Google Drive alternative" that makes its core components available for free under an open source license. This, along with also hosting AdGuard Home, has been giving me practice with Linux server maintenance and has helped enhance my troubleshooting skills.

One of my projects is hosting my own instance of AdGuard Home, a DNS server that provides a nice UX to block unwanted resolution of some domains, such as ads, trackers, and malware. One concern I had though was causing anomalies to be recorded by an OONI probe running using my DNS servers. To mitigate this, I decided to add in a whitelist for the Citizen Lab test lists that OONI uses for its network tests. I quickly ran into an issue though, because Citizen Lab keeps their lists in a CSV format that works well for their use case but is not compatible with AdGuard Home. To fix this, I wrote a Python script that utilizes Pandas to extract the list of URLs from the test lists, and then put them into a TXT file that AdGuard Home could handle. I additionally wanted to make sure this list would automatically update itself. To accomplish that, I used GitHub Actions to run the script on a timer that happens every day, so the list is kept up to date. I also made the GitHub action post the list to my GitHub pages site, so my AdGuard Home instances can easily grab the updated lists.
This got me some experience with using GitHub Actions, along with a small bit of practice using Pandas in a simple case.

This is what you are currently looking at! To show off my work, I made this site using a combination of Bootstrap Studio and GitHub Pages. Bootstrap Studio provides an easy to use web design environment that utilizes various open source components such as Bootstrap, Bootswatch, and Animate.css. While I do have a self hosted web server I could run this page on, using GitHub Pages is nice for static content since they handle reliability for me. Making the website has helped me appreciate the hard work that goes into designing UIs, and the difficulty of centering things.

While a very small change, I made an optimization in Cura's gcode for the Ender 3 Pro 3D Printer that made it heat up both the build plate and the nozzle at the same time, better utilizing the power supply and cutting down on overall heating time a little. I had been using the optimization myself for months and felt that it would be good to let the rest of the community benefit from it. Given the popularity of both Cura as a slicer and the Ender 3 Pro as a hobby printer, this small change has likely saved large amounts of time across users.