Below you will find pages that utilize the taxonomy term “Extra-Life”
Programming Jan-April 2024
This year started off pretty light when it came to programming because I’ve been addicted to the video game Against the Storm since last winter. But I eventually started working again on various projects - some old and some new. I didn’t do any programming in January, so we’ll start in February.
February and March
Over these two months I worked on my replacement for web access to my Taskwarrior TODO list because Inthe.am had shut down. In February I got the podman containers set up - one to run the taskd server and one to run the website I’d coded up in Flask. In March I had to write some rudimentary Javascript to get the website to highlight the selected tab (Overdue, Today, This Month, etc). The rest of the interactivity on the site works using HTMX, letting me focus on Python instead of Javascript, but I just wasn’t able to get that part of the site to work without a tiny bit of Javascript. I also added some fixes because the date/time widget assumes UTC. Of course, now that I have it all working correctly and get lots of use for it (especially when I’m at work and I want to quickly get something out of my brain’s short-term buffer), Taskwarrior went to 3.0 which completely changes the way the program works, the API, and the way syncing works. I think in the end it’ll be for the best, but it’s annoying that I need to figure this out. That may involve finally learning how to use PyO3 to interact with Rust or re-writing part of my backend in Rust. We’ll have to see where that goes.
Programming Update for July and August 2021
I didn’t do much coding in July, so I decided to combine the July and August wrap-ups.
Python
Dreamhost Dynamic DNS
I decided to clean up and update some code that uses the Dreamhost API to allow for Dynamic DNS. I cleaned up the logging output so that I could figure out why it was sometimes deleting one of my domains rather than just updating the IP. The original programmer had it printing out to the terminal. I used the logging package to send logs out to a file. While I was improving the logging, I also decided to use f-strings to make it more obvious what was going into the output string.
My Extra Life Donation Tracker reaches v6.0 (feature complete)
This is my seventh year raising money for Johns Hopkins Children’s Center via the Extra Life gaming charity. When I started back then I was brand new to streaming or recording video game play. In fact, just a few years before that I hadn’t even understood the point. I found out that you could somehow display your progress towards fundraising on your screen while you played. I had no idea how to do that and, at the time, I’d only done commandline programs. So I found bfinleyui’s web-based program. I set up XSplit (which I was using at the time) to capture the web pages and was able to have a great first year. The following year he created an app with Adobe Air that was even better. The GUI for this app would become the inspiration for ElDonationTracker; what I aspired to eventually build. My first commit to the repo for ElDonationTracker was that year. I was exploring how to get the API data via the commandline, but I wasn’t too hurried because I had the Adobe Air app. Unfortunately, the following year Adobe killed Adobe Air. So it was now time for me to try and make my own app. Unfortunately, I’d never done GUI programming before and my experiment with the TKinter GUI framework didn’t quite work.
Last Few Days in Programming: Lots of Python
Been quite busy with Python, keeping me away from other pursuits, like video games. (Although the kids have been requesting Spelunky 2 whenever it’s time to hang out with them)
Extra Life Donation Tracker (eldonationtracker)
For my Extra Life Donation Tracker I pushed out a new release, v5.2.2. A user of my program (man, I never get tired of how awesome that is!!) had wholly anonymous donors which was causing an issue I thought I’d handled. But it turns out that the folks that run the Donor Drive API are a little inconsistent in how they handle that in the donor endpoint vs the donations endpoint. So I pushed that fix out and now things should be dandy for game day (about 2 weeks away!!)
Last Three Days of Programming: Python
I’ve mostly been working on version 5.0 of my Extra Life Donation Tracker. Since I adopted the Semantic Versioning principle for the project, an API change means a major version change. I’ve been taking everything I’ve learned about Python programming from 2019 and 2020 and tried to make my code both more Pythonic and more sophisticated. I’m also trying to move towards 100% code coverage. That is to say, I’m looking to try and make sure every line of code is covered by a test. While 100% test coverage doesn’t guarantee perfect code (after all, the test itself could be flawed or I might not be considering corner cases), striving for it usually has a few benefits:
New Release (v1.9.3) of my Extra Life Donation Tracker Software
I’m getting really close to finally getting this program to where I wanted it to be 4 years ago. My most recent release adds in the Team info to the GUI (and the previous release, which I didn’t blog about added team info in general). I’m getting feature requests and bug reports and all those kinds of encouraging things that make people want to provide programs for others. Also new as of a couple releases ago is the fact that I’m using Github’s CI (called Github Actions) to produce binaries for me that I can attach to releases to make it easier for folks to use the software.
New Release of my Extra Life Donations Tracker Software
After a bit more work since my 21 July post, I’ve finally reached what I can consider to be beta status for the GUI. Things have matured to the point where it works well on both Linux and Windows and I’m now using it every time I game. I created a bunch of issues on Github to track new features I want to add in order to get to what I think will be a 1.0 release. I’m excited at the progress I’ve made and that the software continues to have interest. As always, the code is available on Github. Here are videos on how to use the GUI:
New Release of my Extra Life Donations Tracker Software
If you follow the blog, you remember I’ve been working on a GUI for the donation tracker. Part of making that work involved changing the code to be object oriented. Also, it required moving the user-defined configs to be moved out of the main code. I’ve done that and finally tested that it works (I had a silly bug involving a typo that I had to correct) and merged the code into master over on the github repo. The new code required a change in the directions, so I made new instructional videos to go along with those changes:
My Extra Life Donation Tracker gets a GUI Part 1
Three years ago I created ELDonationTracker to use the Extra Life API to provide donation alerts on my screen while I’m streaming or recording games. About a year and a half ago, I actually had to start using it because the previous donation tracker I’d been using stopped being maintained. Since then I’ve been steadily improving it, but there’s still a bit of functionality for the alerts when someone donates that I was missing by running a commandline utility. A year ago I tried creating a GUI with Tkinter, but I just found it too hard to figure out. What I really wanted anyway was to do it in QT or QML. A few months ago I saw that it appeared the company being QT was going to finally take Python seriously. While looking up some tutorials on PyQT I found out that I could use QT Designer to do a WYSIWYG design and then a simple utility to convert it to Python code. Since designing GUIs is a real drag and takes away time from doing the coding to make the GUI work, I was jazzed. So I threw this together over a couple days, copying the interface from the program that was no longer maintained:
November Video Games Report
Took advantage of MIL’s presence to get some gaming done before I would be too busy to game for a while.
Civilization VI (18 hours):
https://youtu.be/9eHVWDntw4g?list=PLEJrELYLxNgWZ4TsugA53ODOuSvnraSVu
This time around I play as Greece and try for a cultural victory while also getting more involved in the religion part of the game.
Vertical Drop Heroes HD (1 hour 25 minutes):
https://youtu.be/2VyexAVIwEY?list=PLEJrELYLxNgXBv5HxeZNUxg5AWWM9QGJb
On Extra Life game day I end up further than I’ve ever been in the game.
Yes, I'm participating in Extra Life in 2016
You can contribute to my campaign at: http://www.extra-life.org/participant/EricMesa2016
I’ve already played way over 24 hours in 2016!
Extra Life 2015 Post-Mortem
A video in which I describe my experience participating in Extra Life 2015:
First Nine Days in Extra Life
I’ve been hearing about the members of the Giant Bombcast talk about participating in the Extra Life video game marathon for a few years now. For some reason, when the 2014 event happened, I decided to look into it to see if I could participate this year. When I started looking into it around a month ago, I realized I wouldn’t be able to participate in the big 24 hour day because that’s when someone’s getting married. But, then I found out that the organizers are OK with creativity in the marathon was run. There are others, like me, who raise money and play games throughout the year.