Homelab 1.1

Throughout the summer I’ve made a few homelab updates:

If you’re interested in the setup process, I’ve compiled my notes in a GitHub repository. I mounted the RPi’s in a cluster case, with intentions of adding to it in the future.

Learning Python, Building gtRPG

Last year I began using Python professionally for the first time, and quickly came to love the language for it’s flexibility and readability. In an effort to become more familiar with the language, I decided to build a small personal project using Python.

I was mostly using Python for automation scripting at work, so I wanted the project to also feature a web framework. I eventually settled on Flask for two reasons: 1) The “micro”-ness and extensibility of Flask seemed appealing, and 2) I found Miguel Grinberg’s multi-part Flask tutorial to be a fantastic introduction to both the Flask framework and the Python ecosystem.

So with that, I began building a gamified guitar practice app called gtRPG. gtRPG is an idea I’ve played with since my time teaching private guitar lessons - applying gamification principles to guitar practice. gtRPG attempts to enhance guitar practice using common RPG elements. With gtRPG, users can choose Categories - musical genres or activities that the User wants to improve in - and create Tasks - practice items associated with a given Category. Users can then complete tasks in practice Sessions to earn XP towards leveling up.

After about 3 months of sporadic work, I had a functional version of gtRPG. I deployed it to gtrpg.com via Heroku and began testing it out. I also shared the app on Reddit to get some user feedback and see how it performed in the wild.

Some potential improvements for the future:

  • UI Improvements: The look and feel of the site could use some work (navigation bar bugs, giant drop-down menus, tedious checkboxes, etc.)
  • Learning Paths: Pre-built series of Tasks in a given Category.
  • Model Improvements: The Category model as currently constructed proved limiting - it fails to accurately capture Tasks that span multiple Categories (e.g. A Task can fall under Country, Acoustic, and Fingerstyle, but it can only be associated with one Category). I think an easy improvement might be moving to a tag-based system.
  • Rebranding: The concept can and should be generalized for all instruments.

Overall, I learned a ton about Python and enjoyed working with Flask. For my next development project, I plan to tackle the Django web framework next as that is what I’m currently using at work.

YoWutUpdate April 2020

In February Guitars Not Guns Ohio wrapped up another class, this one at Cassady Elementary School with After-School All-Stars. The kids did a great job and were very excited to take their guitars home. For now the organization is playing the COVID-19 waiting game like everyone else, but we’re looking forward to a return to normalcy and classes starting back up.

The class warming up
The class showing off their guitars on Graduation Day

After playing a few shows in the fall - including the Columbus Marathon - bottleflies turned to focus on writing and recording. We worked on new material through the winter, and were preparing to enter the studio when the Stay At Home order came out. So, with studio recording on pause, we’re staying busy by revisiting some DIY recording we did last summer. Hopefully I’ll have something to share from those efforts.

bottleflies at the Columbus Marathon
bottleflies at the Columbus Marathon

In the meantime, I’ve started learning to play the mandolin after receiving one as a gift - thanks Mom! The instrument has provided a nice challenge and a welcome distraction while the social distancing continues. It’s also helped inspire me to revisit some half-written songs I’ve had sitting on the backburner for a while. Again, hoping to share some recordings soon.

My new mandolin hanging on the wall