2020 Cherry Blossom 10 mile Virtual Race

a post-race selfie

Ever since fall 2019, I’ve been training for the Cherry Blossom 10 mile race, scheduled for 5 April 2020. Unfortunately, like everything else involving more than one person, it’s been scuttled by COVID-19. After all that training, it was disappointing. (I will take a moment to acknowledge that it’s objectively ridiculous to be disappointed by a missed race when people are dying. However, there’s always someone worse off than any other person. eg. I can feel that I’ve had a bad day at work, even if my day wasn’t as bad as someone who found out they had cancer It doesn’t delegitimize their feelings of disappointment as long as they keep it in perspective.) The organizers of the Cherry Blossom Festival race had a solution – a virtual race! Run wherever you can and record your time and it’ll all go on the website. It’s not perfect, but it’s certainly a way to use all that training you’ve done. So today I went ahead and did the race since the weather’s actually good today. It was an AWESOME run. It felt great to do it and, given the insane hills in my neighborhood, I finished feeling that I could definitely kick butt in the Cherry Blossom race next year because their course is not very hilly. It also renewed my confidence in being able to do well in the Baltimore 10-miler this summer (if it’s not cancelled), renowned for being hilly. So how did I do? (if you paid attention, it was spoiled at the top…hehe)

Well, first of all, check out these achievements I earned during the race:

Fastest mile! 6:54
Fastest 5k! 22 min 30 seconds!
Fastest 10k! 46 min 40 seconds – need to do this at a 10k race!

Finally, here’s the time!

10 miles in 1 hour 14 minutes 48 seconds
hard to run slowly to this music

I looked at the RunCoach.com website and, based on the training they’d been having me do, they predicted a 7:52/mile race pace. So I set that in my Garmin and headed out. But I was listening to my techno album Y2K: Beat the Clock and to Lionize. And so I just couldn’t go that slowly. I keep going faster than the pace I was supposed to go. I was worried that would wear me out. But I just kept up that pace, slowing on the long uphill stretches, but overall keeping a good pace. In face, even though miles 5-7 were close to that pace, even they were faster. And I did a sprint in the 0.25 miles, responsible for my best mile ever recorded by the Garmin. And so, as you can see above, I averaged a 7:29/mile pace. Very, very exciting. I cannot wait to run this race next year with others around me (and after having had a full year of training)

Throughout this training, for the past few weeks, RunCoach.com has had me running 12 miles every weekend as my long run. I’d been having doubts about being able to do a half marathon before this training, but now it’s right there within reach and I’m definitely also trying to figure out which half marathons might be available for sign up in the future. I’ll leave you with some amusing stats from the Garmin.

I guess I should take it easy tomorrow

My Photostats Python Program

11 years ago (HOLY MOLEY WHERE DOES THE TIME GO?!?) I wrote about Jeffrey Friedl’s LR Stats plugin. As you know if you’ve been around my blog for a while, I love stats! It’s the biggest reason I do my end of year posts with my music, reading, and video game stats. Well, I haven’t used Lightroom for a few years now, and for some reason I was inspired this past weekend to recreate this ability. So I started on photostats, which will present a lot of the same stats that his Lightroom plugin does. On the plus side, my Python program is app-agnostic!

Here are some graphs representing 2020:

How many photos I’ve taken with each lens in 2020
How many photos I’ve taken in 2020 at a given focal length

I still have lots of mods to make, like labeling the axis and so forth. But I’m pretty excited already! I’ll end this post with my 2019 lens model stats:

PyCharm 1 week Update

I’ve been using PyCharm for about a week now across a couple projects. I’d like to note a few things I’m really enjoying:

  • PyCharm is aware of your venv config and you can use it to pip install new packages. Ok, so pip is easy to use for installing. But it also provides a quick at-a-glance view of the packages you’ve installed and their versions – and I find it easier to view than a pip freeze.
  • I know KDevelop has this for C++, but it doesn’t really have the same support for Python – being able to run my Python files from within PyCharm as well as being able to run the debugger from within PyCharm is like how new cars unlock for you when you get close. It’s not necessary. It’s not even that huge of an improvement. But it’s a quality of life thing that you miss when it’s not there.
  • PyCharm is very smart about git. With KDevelop, I could add files withink the GUI (which is nice for making sure the project is aware of the file and provides a quick visual cue). But then I had to remember to git add it (either in the GUI or on the commandline). With PyCharm, every time I add a file through the GUI, it asks me if I want to add it to version control.
PyCharm asking if I want to add the new file to source control
  • I love being able to do a commit/push at once through the PyCharm GUI.
  • It also noticed on a new project that I hadn’t setup a .gitignore yet. AND when I said I wanted to set one it, it did just like GitKraken and automatically created an awesome file for me that already had all the Python stuff you’d want to ignore.
PyCharm noticing I don’t have a .gitignore set up
  • Finally, I also figured out the one thing I was strongly missing from KDevelop – the ability to highlight your variables so that it’s quick and easy to find them throughout your source code without having to first highlight them. I asked on reddit and was told to enable semantic highlighting.
PyCharm with semantic highlighting enabled.

So, I think I’m pretty strongly hooked. I guess there’s still something that could come about that would make me turn away from PyCharm, but right now I’m thinking it’s basically the BEST way to code in Python on Windows and Linux.

Reviving and Revamping my btrfs backup program Snap-In-Time

If you’ve been following my blog for a long time, you know that back in 2014 I was working on a Python program to create hourly btrfs snapshots and cull them according to a certain algorithm. (See all the related posts here: 1, 2, 3, 4, 5, 6, 7, 8, 9) The furthest I ever got was weekly culling. Frankly, life and school contributed a good excuse not to keep going because I had created a huge headache for myself by attempting to figure out the date and cover all the possible corner cases with unit tests. This is what my code looked like in 2014.

As you know, I’ve recently been on a Python programming binge due to reading a few books that taught me advanced topics and how to properly structure Python code folders. One of the books also had a reminder to check the Python modules (built-in and others) before implementing something that has already been done and well-tested. I’ve also gotten way better at reading and understanding the official Python documentation. So I discovered the datetime module that alleviates almost all the pain I was having when working on Snap-In-Time and spent a week or two on a code sprint. I’m now almost back to the same functionality I had before, but with MUCH cleaner and more maintainable code! Also, it’s become my third package on PyPi.

Snap-in-Time on PyPi

Now I’m jazzed to keep working on it and making it better and better.

Programming Tools Q12020

I decided to document the tools I’m using for development since the various programming subreddits I frequent always have someone asking what tools they should be using.



As I wrote in September, I’ve moved to using KDevelop for my larger projects.


Its built-in Python parser (working with flake8) has helped me find a lot of issues before getting to the stage of running flake8. The GUI for pushing commits to git has been very helpful in helping remind me what has changed and even (sometimes) noticing something I forgot to add to git. Its project-wide search has been invaluable when refactoring or renaming functions/classes. When it comes to large, complex programs, it’s hard to beat KDevelop when using KDE. That said, it’s only recently that the developers have started focusing away from being only a C++ editor and as you’ll see at the end of this blog post, for my Python workflow, I might be switching away.

I am still using Kate for smaller projects.


It’s nice and light-weight and it has pretty good syntax highlighting. Over the next few development cycles they’ll be implementing more and more LSPs (language parsers) that might give VS Code a run for its money. That said, for how great the debugging capabilities are, I might even move my smaller Python projects to PyCharm.


On Windows I’ve only been working on Unity games, so the complexity there lends itself to Visual Studio (the KDevelop of Windows):

My favorite feature here (and, as far as I can tell, something not in KDevelop – but IS in PyCharm) is the ability to highlight functions and create stubs or do some auto-refactoring. For example, let’s say for a Unity game I’m trying to think a bit before I code, so I start adding function calls into the Update function. The functions don’t exist yet – I’m just trying to figure out what to code based on what I’d call. I can then highlight each of those and right click and by selecting the right command, create stubs for each of those functions. I’ve yet to use any of the git features of Visual Studio and there’s probably tons I haven’t explored yet since I’m only using it for Unity development.


Git GUIs


When I first started using Git on Windows, it was from watching GameDev.Tv’s Git for Unity devs course. The recommended using SourceTree:

It worked alright. My biggest gripe was that it wasn’t always as quick on auto-refreshing as it could be. The interface is OK. Not horrible, not amazing.

But for the past few months, I’ve switched to Git Kraken:

Git Kraken

If you compare both windows, it’s MOSTLY the same. Git Kraken just has a more modern looking GUI. But I like Git Kraken a bit more as it’s more responsive and it does have a lot of great features when first creating a repo, like importing a .gitignore file based on the type of project you’re working on. It can also integrate with Github from the beginning with a better user interface than SourceTree has. So far I haven’t had any issues with the free version, but if you’re a dev on a huge project, using it for work, or some other thing – you may need to buy in the professional version, which might make it a harder choice. For me, it’s currently the best (and best-looking) git GUI on Windows.


I’ve been using QGit for a long while now.


As I wrote a few days ago, GitQlient 1.0 was released and I’ve been using that.


GitQlient surfaces all the information I need up front, in a clear manner. It looks nice and clean. And it has some really awesome features related to blame and diff. To be perfectly honest, on Linux (as opposed to Windows) having a git GUI is MUCH MUCH less important. Especially with the visual git features to KDevelop, there are a lot of features I don’t use in GitQlient – like making commits. Mostly I use it to get very quick and visual confirmations of what’s going on with my various branches, tags, etc.

Git Websites

While I love self-hosting because it gives me perfect control over the situation and I don’t have to worry about websites disappearing (looking at you, Google!), I just don’t see the advantage to self-hosting when it comes to a git project for which I’d like to have potential contributors or allow for user bug reports. Who wants to make another account on my personal GitLab or Gitea site? So for nearly all of my projects, I use Github.

That said, I do have a couple projects that I’m self-hosting for various reasons. For those, I use Gitea:


I found Gitea to be infinitely easier to set up for self-hosting than GitLab or Pagure. It has ALMOST all the same features as Github and a great community behind it. *IF* you want to self-host a git repo, I definitely recommend Gitea.

Continuous Integration

I’d played with Jenkins for a bit, but I found it overly complex and it had a really crusty interface. While I use Github CI for my Github projects (why not?). For my Gitea projects I use Drone CI:

Drone CI

It may or may not have everything you need compared to Travis CI or other options, but for my needs it’s perfect. Just create the YAML file and it does every step based on Docker containers.


Ever since Konsole got the ability to intelligently split the screen, it became a LOT more useful when programming.

Konsole with lots of tabs and split screening

Coupled with the ability to open lots of tabs (see the bottom of that screenshot), it’s very useful without having to have tons of windows open. In the screenshot above, I’ve typically got the left side for running the program, the top right for git commands, and the bottom right for compiling the Sphinx docs.

Going Forward

That’s where I’m at right now. Looking forward, I can see a couple potential changes to the programing programs I’m using:

As you saw with yesterday’s post, I’ll be investigating using PyCharm on Linux. It looks like it has a lot of AWESOME features that will help my code improve. That might sound like an exaggeration, but at my current level (more than beginner and less than super-hacker), each bit of new learning I’ve applied to my Python coding has made my code better – unit tests are helping me discover when my refactoring is breaking things, flake8/pydocstyle are helping me make the code easier to read when I come back to it, Sphinx is helping me create documentation that will help contributors as well as make it easy for me to come back to the code. Based on what I saw from using PyCharm for just a few minutes, I think it’s potentially going to help me discover some non-Pythonic things I’m doing that will make my code more efficient and better to read/understand. (That said, I know better than to blindly follow the program’s suggestions)

I might take a look at using Docker/Podman for compiling code or creating AppImage, Flatpak, or RPM packages.

New Dishes I cooked in Feb 2020

Very low number of new dishes. Mostly because I was obsessed with programming and Gwent.

Both recipes were from America’s Test Kitchen. The pizza recipe was a challenge to be able to make a pizza that would be ready in an hour and not suffer too much from not having the pizza ferment for a few days. I thought it was alright. Despite liberally dusting the pizza peel, had a hard time getting the pizza off.

The quesadilla was a very different recipe than our usual. I think the verdict between Danielle and I was, “it’s different. It’s good. It’s not better than the one we usually make.” Still, I did learn some techniques for making four at once in the oven which should help no matter which style we make.

Hey, Pycharm, hey.

Back in September I wrote about moving to KDevelop for my larger Python projects and also staying with Kate for my smaller projects. I’ve REALLY been enjoying all the features as I work on more and more complex packages involving lots of files. But for a few episodes of Python Bytes now (and/or maybe Talk Python to Me – they share a host) they’ve been talking about how awesome it is to use an IDE that has a Python debugger built in. It may be that KDevelop has that ability (I’m pretty sure it does for C++), but I’m not sure. I am nearly certain that Pycharm does have a debugger built-in. A while ago I’d set up the Pycharm COPR repo on my laptop. I tried playing with it a little at the time, but I was coding on a very small project without a venv, so things didn’t work out well. (Pycharm is pretty opinionated about the way a Python project should work)

So in light of these recent mentions on the podcasts, I loaded up ELDonation Tracker, since that DOES use a virtual environment. I do have to say that I was pretty darned impressed. Here’s what it loaded up when I opened that folder:

PyCharm automatically loaded up my README.MD and rendered it

What impressed me most, was that it rendered my readme.md. Rather than guessing at what it will look like on Github based on this view in KDevelop, I’ll know exactly what it’ll look like:

README.MD in KDevelop

To be fair, KDevelop was created for hacking on C++ for KDE back before Github was even a thing. But it’s still a neat feature. Another thing that could potentially save me some time vs running Sphinx’s make html and then reloading my local page, is that PyCharm also renders rst (Python’s official markdown language):

PyCharm also renders rst files! I can see why they charge for the professional version!

That could save me a bit of time and it could save a dev team LOTS of man-hours. It was even able to run my unit tests from within PyCharm. Pretty neat vs having to run an entire PyTest run if I just need to check one function or check one test that I’m designing.

PyCharm performing unit tests within PyCharm

As for its Python Parser. It was even more involved than KDevelop – it seems to be running MyPy and PEP-8 automatically. It also offered to run coverage on my file. I couldn’t get the pop-up to show up in the screenshot, but below it was telling me on line 84 that there’s a different way I could do that instantiation. It was also a bit aggressive on some other things that I would probably ignore – like how it has Amnt as a mispelling, but that dictionary key becomes a filename for text output and I’d rather not have it be ridiculously long.

PyCharm evaluating extralifedonations.py

I’d been planning for a few weeks now to write up a blog post documenting all the programs I’m using while programming – IDEs, Editors, Git GUIs, etc. I think I’m going to have to install it on my main dev box (one point against PyCharm is that it can tend to be a bit heavy to run on my laptop) and give it a test run to see if I like it more than KDevelop. Also, Kate blog posts have been pointing to Kate getting better parsers for its languages (not sure if they’ll end up sharing with KDevelop or not) as well as maybe also getting some built-in Git awarements to match their competition in VSCode. So I’m not sure if there’ll end up being ONE IDE/EDITOR TO RULE THEM ALL or not. I also want to try and find some time to explore some Vim plugins, etc for those times when I’m on the commandline or don’t want to fire up a GUI just to do a really quick edit.

Scarlett Portraits

It was time to take some portrait shots of Scarlett. As I was getting set up, I decided that I wanted to try something new; something I’d struggled with before, but never been able to succeed at – a flash highlight of a black background. I’d seen Gavin Hooey use the technique to great success on his Adorama TV show on Youtube. But somehow I’d just never been able to get it to work well. So I decided to try and mess around with the setup before the photo shoot. Eventually, I found something that worked well for me. I think, reviewing the photos for the fifth time now, that as I have it set up, it works best for the closeup shots. For the 3/4 shots, it probably should have been either dropped a little lower or maybe pulled away from the background a bit more to spread it out a bit more. The setup looked like this:

In the past, I’d tried this with “barn doors” and small snoots on the 580EX. While that worked for others with their lighting setups, it was never what I needed for mine to work well. This time I happened to use the large white gobo from a kit I got about 10 years ago and I happened to get the perfect distance from the background (VERY far forward) to get it to work just right.

Here’s what I think the best portrait from that session looks like; best in the sense of making best use of my technique – not necessarily the best photo of Scarlett. (It’s now one of my computer backgrounds)

Scarlett portrait with the background technique.

Here are the 3/4 portraits I took:

Like I said, I like them. They came out well, but I would need to do things slightly differently to get the same feel as with the closeup.

As usual, we also took advantage to have some sibling portraits and Stella really wanted to join in. Here are the best of those:

Overall, I’m happy to get another artistic documentation of the girls getting older as well as coming closer to mastering a technique that had eluded me until now. (Extra awesome to me since I had been ignoring photography in favor of programming and video games recently)

EL Donation Tracker (v4.1.1)

It’s been 5 months since I last wrote about ELDonation Tracker, my software for tracking Extra Life donations for use during a livestream or VOD. I’ve been quite busy since then! First, I used Github pages to make a site for the software to make it a little easier for those who are just users and don’t intend to do any development. They don’t have to navigate Github to try and figure out how to get the program and use it. Then, by reading Serious Python I learned about Sphinx, which can automatically create documentation out of your docstrings. I also learned that all these “readthedocs” pages I’d seen springing up with all the projects I care about were leveraging the fact that readthedocs.io will use your Sphinx documentation to create hosted documentation. So now I have some great documentation for my software. Finally, it’s my SECOND bit of software to go up on PyPi:

ELDonation Tracker on PyPi

Here’s the latest instructional video showing off some of the new features:

Podcasts I’m Listening to In 2020

I’ve both added and dropped some podcasts since last time around. Where I’m listing the same podcast as last year I may use the same description as in the past with slight (or no) variation.

Public Radio

Radiolab – Heard about them because sometimes their stories are used on This American Life. Radiolab is a lot like TAL except with a much bigger focus on sound effects. It is, in a way, the descendant of the old radio shows of the 30s and 40s. (Approx 30-45 min)

Marketplace – This is a really good economics show.  They talk about news that happened that day as well as stories that have been pre-prepared.  (Approx 30 min long)

Codebreaker: A tech podcast. Season 1 asked the question “Is it Evil?” of various technologies. still on my feed, but hasn’t release a new episode in 38 months.

On the Media –  Although not always perfect and although it leans a little more left than moderate, On the Media is a good podcast about media issues.  Examples include: truth in advertising, misleading news stories on the cable networks, debunking PR-speak from the White House, and other media literacy items.  I tend to enjoy it nearly all the time and it’s a good balance to news on both sides of the spectrum, calling out CNN as often as Fox News. (Approx 1 hour long)

Fresh Air – Fresh Air is one of NPR’s most famous shows. It tends to have a heavy focus on cultural topics (books, movies, etc).  Terry Gross has been hosting Fresh Air for decades and is a master at interviewing her guests.  Every once in a while there is a guest host or the interview is conducted by a specialist in that industry.  (Approx 1 hour)

Freakonomics – Essentially an audio, episodic version of the eponymous book. If you enjoyed the insights of the book, you’ll really enjoy this podcast. (Approx 30 min)

The Infinite Monkey Cage – a BBC radio show about science. A panel of scientists (and one media star who is interested in science) talk about a topic. The only bummer is that the shows are quite infrequent. Something like 4 weekly episodes per quarter (Approx 30 min)


Dan Carlin’s Hardcore History – if you’re a history buff you really need to be listening to this podcast. Dan’s well-researched podcast presents bits of history you never heard of in ways you never thought of it. He does a great job of making ancient societies relate-able. The only bad thing is that there is a long gap between episodes due to the research involved. (Varies. Approx 1.5 – 4 hrs)

Hardcore History Addendum – Meant to bridge the gap between Hardcore History episodes, it focuses on interviews and smaller topics.

The Dollop – A very funny and very profane look at American history. The premise: The host tells a story of American history to the other guy, who doesn’t know ahead of time what the story’s about. It’s a premise that leads to some great reactions from the person not in the know (usually Gareth, but sometimes they do a Reverse Dollop). Also, listening to this podcast is a great reminder that the past is full of some really messed up people and situations.

History Unplugged – I found this podcast when I was looking for Dan Carlin’s Hardcore History Addendum. I enjoy his question and answer episodes. (20 minutes)

Tides of History – I liken this podcast to the other side of Hardcore History. Dan Carlin tends to focus on the big movers and shakers in history. So far, in Tides of History the host has focused a lot on the experience of the common man (or woman) in the time period he’s exploring. Very entertaining and, unlike Hardcore History, it’s not on a George RR Martin update pace. (Usually 20-40 minutes)

The History Chicks – Focused on women’s history, they usually tell the story of an important figure from birth to death. I really enjoy the style, especially since, like The Dollop it involves more than one person so they can play off each other, even if it’s not as comedic as the other show.


WTF with Marc Maron – This is a pretty solid podcast which mostly consists of Marc Maron interviewing comedians.  As with any interview-based show, the episodes are hit or miss, although more often than not they are really good.  Occasionally he does a live show in which he’s still interviewing people, but with 4-6 per episode it’s much less in-depth.  And, since it has an audience, the guest is performing more than being open.  The only irritating thing is that Marc starts off each episode with a rant/listener email reading.  Most of the time this is neither interesting nor funny.  I wish he’d do his rant at the end of the episode so that those of us who just want to hear a great interview with a comedian we like can easily skip the monologue.  (Approx 1.5 hours long)

Conan o’Brien Needs a Friend – It’s kind of like WTF, but much, much jokier. Most of the time, Conan has a really great conversation with a comedian that just goes off in random directions. Every once in a while it’s more like a commercial for whatever the comedian has recently released. (Approx. 1 hour long)

Science Fiction Short Stories

Clarkesworld Magazine

Escape Pod

There isn’t much to differentiate these two podcasts.  They both feature great selections of short stories.  I added them to my podcatcher to get a dose of fiction among the more non-fiction podcasts I usually listen to.  Also, there’s something great about short-form fiction where you have to build the world AND tell the story in a very concise way.  The main difference between the two podcasts is that Clarkesworld has pretty much just one narrator who’s quite incredible.  Escape Pod tends to have a group of narrators.  Most of them are great – every once in a while there’s a less than stellar one.  Clarkesworld tends to end the story with the narrator’s interpretation and Escape Pod tends to end with reader comments from a few episodes ago. (varies. 15 min to 45 min)


How Did This Get Made – Paul Scheer, June Diane Raphael and Jason Mantzoukas (plus the occasional guest) watch movies from the last few decades that will probably be in the future’s version of Mystery Science Theatre 3000. The movies are often incredibly baffling and full of strange plot points. One of the best parts of the show is “Second Opinions” where Paul goes to Amazon.com to get 5 Star ratings for the movie they just spent about an hour lambasting. Every other episode is a mini episode that previews the next show, has a section called “Corrections and Omissions”, and Qs and As. The first two sections are great. The last one varies depending on the quality of the questions and answers. It can be pretty funny, but most times I just skip it. (Approx 1 hr)

Unspooled – Paul Scheer’s serious movie podcast. He teams up with Amy Nicholson to talk about movies from the AFI Top 100 best American movies list. It’s pretty neat to hear them really dissect these movies and they usually have an interview with someone involved in the movie. (Approx 1.5 hours long)

Zoom – Amy Nicholson goes in depth into various movie topics and how they fit into our culture. Last season’s greatest episode was about the history of zombies throughout human history and film. I don’t even like Zombie movies and I found it absolutely fascinating. (Approx 30 minutes)

Twinsies – Andy Wood from Probably Science and another guy who might just mention that he has a film degree from Arizona State talk about two movies that came out around the same time and are almost the same movie – at least superficially. For example Antz v A Bug’s Life or The Illusionist v The Prestige. Good for film/pop culture nerds. (approximately 45 minutes)


Political Gabfest (from Slate) – This has taken the role that Talk of the Nation’s Wednesday slot left vacant when the show went off the air. They talk about politics (usually swinging heavily left or sometimes libertarian while ToTN was more neutral) and I get a dose of what everyone’s talking about in politics. (Approximatly 1 hour)

Common Sense with Dan Carlin – If you like the attention Dan puts towards Hardcore History, then you’ll probably love this take on the news. Usually Dan takes one (max 2) topics from the news and by the time he’s done with it, I’ve seen 2-3 different points of view. Sometimes there’s a clearly right point of view (the sky is blue), but other times each side has valid points and neither one has the complete high ground. Dan is a complex creature, like many of us. On some topics he’s more likely to agree with Dems, other time Republicans, and sometimes neither. Other times he agrees with their Platonic Ideal Version, but not their RealPolitik version. Either way, I’m always overjoyed when it shows up – which is somewhere between biweekly and monthly. (Approximately 45 minutes) still on my feed, but it’s been 21 months since the last episode

FiveThirtyEight Elections – a great, wonky podcast from the guys that brought you the most accurate election predictions. Has continued beyond the elections due to the odd circumstances of the Trump administration.

What Trump can teach us about Con Law – Hosted by Roman Mars of 99% Invisible and Elizabeth Joh, a constitutional law professor, it explores issues of constitutional law around statements, executive orders, etc that Trump has made. Very informative and explains a lot about how certain things that affect other politicians don’t affect the present. (15 minutes)


Give Me Fictionnote: I’m still subscribed to this podcast, but it’s on hiatus. A pretty hilarious (to my sense of humor) super short story podcast. It’s recorded live (which often spices up comedy) and seems to skew Gen X/Millenial in its humor.  (Varies, but usually under 15 minutes)

Talkin’ Toons with Rob Paulsen – The great voice actor behind two Ninja Turtles, Pinky, Yakko, and many, many other cartoon characters interviews other voice actors. It’s like WTF,  but without the annoying self-reflection 10-15 minutes that I always skip on Maron’s podcast. If you enjoy voice acting nerdom or want a place to start, check this out. (Approximately 1 hour)

Boars, Gore, and Swords: A Game of Throne Podcast – two comedians (and sometimes some friends) discuss each episode of A Game of Thrones and each chapter of the books. While it’s primarily funny, it does sometimes lead me to some deeper insights into each episode. Since the show is over and there aren’t any more published books, they’ve branched out to include a lot of “What You Should Be Watching” episode where they cover different movies and TV shows. They’ve introduced me to a lot of shows that I’ve ended up really loving, like Counterpart.

The Allusionist – a podcast about words, where they come from, and how we use them (Approx 15-25 min)

Nancy – A WNYC podcast about LGBT culture. It’s fascinating for me to hear about a culture I’ve absolutely no experience with and the differences in the life experiences of the hosts and their guests. Also interesting having Kathy Tu as a co-host because the bits of LGBT culture I’ve seen before were from a white perspective and she provides an asian perspective on the LGBT experience. (15 minutes)

Imaginary Worlds – a look at what makes science fiction and fantasy so enjoyable whether as books, film, or music.

Decoder Ring – they take a look at a cultural mystery or meme and where it came from and how it’s affecting culture. Examples include: Truck Nutz, Sad Jennifer Aniston, The Incunabula Papers, and Clown Panic.

SciFi Diner Podcast – I discovered them when I went to Farpoint this year. They talk about SFF stuff. So far from the episodes I’ve heard, it’s mostly about SFF movies.

Spanish Aqui Presents – a Latinx improv group spends the first half of the show on a topic that’s front of mind to one of the members. Then they interview someone from the Latinx entertainment world, culminating in doing an improve sketch based on what they learned about that person in the interview.

Our Opinions Are Correct – Annalee Newitz (science journalist and science fiction author) and Charlie Jane Anders (science fiction author) discuss a topic from science fiction (eg a particular trope) and where it came from and how it applies to stories past and presesnt. Somewhat similar to Decoder Ring, but where that one is very journalistic, this one is more of a conversation between two people. (Approximately 30-40 minutes)


You Are Not So Smart – the host, who wrote an eponymous book, tackles topics of self-delusion. Examples include placebos, alternative medicine, and conspiracy theories. (Approximately 45 min)

Probably Science – some comedians who used to work in the science and tech fields bring on other comedians (of various levels of scientific knowledge) to discuss pop science and where the articles might be misleading.

Star Talk Radio – Neil DeGrasse Tyson’s official podcast feed. Some episodes are a show hosted by him in which he either interviews a guest or answers listener questions. Others are Chuck Nice and another guy talking about the science of sports.


99% Invisible – Similar in scope to the NPR podcast Invisibilia, this one was there first. It explores the things that are in the background of life. Examples include architectural details we often miss or stories that tell how regions came to be. Production is similar in sonic greatness to RadioLab.  (Approx 15 min)

GoodMuslimBadMuslim – a window into what it’s like to be a Muslim in modern America.

Politically Reactive – note: I’m still subscribed to this podcast, but it’s on hiatus. W. Kamau Bell and Hari Kondabolu discuss politics with some jokes and some interviews with people mostly on the left, but sometimes on the right. They are respectful and always provide context to what’s being said.

More Perfect – Explores Supreme Court rulings and how they affect America.

Song Exploder – they pick a song and a member from that band explains how they put it together. They usually look at each layer of the track – vocals, drums, guitar, etc and talk about why each decision was made. Can range from interesting to revealing.

Business Wars – focuses on business rivalries like Netflix v Blockbuster, Nike v Adidas, or Marvel v DC. Usually 4-6 episodes per topic and a reasonably deep dive into the subjects.

My Brother, My Brother, and Me – “An Advice Show for the Modern Era”. The McElroy brothers come up with answers to Yahoo Questions and Listener Questions. Also a bunch of random recurring skits. My favorite is “Munch Squad” where they make fun of restaurant press releases. (Approximately 1 hour)

Get Rich Nick – Two guys named Nick try various schemes and gig jobs to see if any of them can allow you to get rick quickly. (Approx 1 hour)

Cautionary Tales – Similar to You Are Not So Smart in that we often learn the wrong lessons from things that happen in history. The host takes a few seemingly unrelated historical events and ties them together to see how we can use them all to learn the same lesson.


Command Line Heroes – A podcast produced by Red Hat that tackles different tech topics, organized around a seasonal topic. Season 2 was about programming languages and introduced me to the Python podcasts that I listen to. Season 3 is about the history of computer hardware. (Approximately 30 minutes)

Talk Python to Me – A podcast about the Python programming language in which the host interviews a Python programmer about their project. Some of the neat interviews have been about climate change and programming, open-source in academia, and Python packaging in 2020.

Python Bytes – A short Python news show in which the hosts talk about news and new modules (sometimes just new to them). I often learn quite a bit of bits of functionality I never knew about related to Python.


Milk Street – a cooking podcast that goes along with Chris Kimball’s new enterpise, Milk Street. They interview a chef or two, have a question and answer section, and go over a recipe.(Approximately an hour)

Proof – a short podcast by the folks at America’s Test kitchen that looks at various food culture stories. Previous episodes include Fair Foods, Bowls, and Ketchup. (usually about 15-20 minutes)

Serious Eats – Ed Levine interviews a chef about their life and about food.

Review: Soleil (The Illumination Paradox, #3)

Soleil (The Illumination Paradox, #3)Soleil by Jacqueline Garlick
My rating: 1 of 5 stars

It is a real bummer for me to give this book 1 star. I really enjoyed the first book in the trilogy. The second book was fun. But this book… kind of just felt like perhaps this series should have been a duology instead of a trilogy. While the first third or so was a good bit of fan service, it could have maybe just been a post-script novella? The rest of the book was just full of the introduction of all sorts of new rules and technology to the way the world worked that I didn’t think made sense in the third book of a trilogy. On top of that, the last chunk – from when our main characters end up in a canyon until the end just didn’t make any god forsaken sense. (view spoiler)

This book might be great for you. And that’s OK. I don’t want to “yuck” anyone’s “yum”. But it did not work for me. This is why there was such a gap between updates towards the end. This is why I read more than one book at once. So if one isn’t motivating me, I’ve got others to still be excited about. Anyway, a real bummer because I believe Ms. Garlick had a blast creating this series and really seems to love the characters. I enjoyed interacting with her on twitter while reading the first book and going through all the fun twists and turns there. Anyway, I’m rambling…

View all my reviews

Review: Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More

Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and MoreSerious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More by Julien Danjou
My rating: 5 of 5 stars

This is an AWESOME book that has completely transformed the way I code in Python. That might sound like the opening to a parody review, but I’m being sincere. One of the best things about Python is that it has a low barrier to entry and it’s easy to get started programming. One of the worst things about Python is that it has a low barrier to entry and it’s easy to get started programming. I’ve been going through the past 15ish years with just a surface-level understanding of my favorite programming language.

On my biggest, most used (by others) Python program, I’ve gone from code to looks like this (https://github.com/djotaku/ELDonation…) to a package that’s published on PyPi (https://pypi.org/project/eldonationtr…) and auto-generated documentation(https://eldonationtracker.readthedocs…), pulling from my Python docstrings (https://eldonationtracker.readthedocs…) with even more ways I’m going to fix/optimize my code and make it more Pythonic. I think this is the best book I’ve read on Python programming since the Mark Pilgrim book that got me into Python that decade and a half ago.

Seriously, if you are self-taught on Python and want to go to the next level, you NEED to read this book.

View all my reviews

Review: Over the Wine-Dark Sea (Hellenic Traders, #1)

Over the Wine-Dark Sea (Hellenic Traders, #1)Over the Wine-Dark Sea by H.N. Turteltaub
My rating: 3 of 5 stars

This is the second time I’ve read this book, the first time being nearly 20 years ago when it first came out. A few key bits had stuck with me, like Menedemos’ womanizing and a battle at sea. But after 20 years, most of the details had faded, so it was almost like reading it anew.

As a history geek, I found it a lot of fun to read historical fiction that isn’t set in one of the traditional time periods like Victorian England or Napolean’s Reign. The two characters also make great foils for each other, impulsive Menedemos and his philosopher/wannabe-historian cousin Sostratos. While it’s obviously a work of fiction, it was neat to see what things are the same about humans no matter how far back you go (haggling, superstitions, balancing desire with prudence) while other things are so different (how they viewed meals, technology, gender relations).

Perhaps obviously, since the main characters are sea traders and the majority of the book takes place during the trading season, it’s structured almost as a series of episodes, each taking place in a new city. There isn’t a truly overarching plot and it’s both metaphorically and literally about the journey, not the destination(s). The biggest narrative momentum comes from Sostratos’ character growth, but even that is relatively minimal.

Overall, I think it’s a pretty fun read, particularly if you’re interested in ancient Greece.

View all my reviews