04 February 2023
I’ve been coding for a very long time, so I’ve had lots of projects in various languages, on various platforms, and stored very differently.
I got nostalgic on and off over the past couple years and went digging around to recover the source for some of those old projects. I uploaded the more notable projects to my GitHub account.
I spent money to buy a 3.5-inch USB floppy drive and an old 386 PC with a 5.25-inch and 3.5-inch floppy drive, so I could ultimately copy files from really old 5.25-inch floppies that I used in the late 1980s and early 1990s to my live storage of today. Among those old files were binaries and source in GWBASIC and QuickBasic.
I found one of the first games I wrote and sort of distributed, Gravity Blocks. I could play the compiled binary with DOSBox and read the main source file, but some of the source code for my common libraries is still locked up in a compressed format from QuickBasic 4.5. I may need to dig deeper into QB64, a clone of QuickBasic 4.5 that seems to be able to read, run, and compile those old compressed files.
I also found source code for the first software I wrote for the local fire company to help track statistics on calls and print reports to submit to the local municipalities we served.
It was written in GWBASIC, so I was able to decode the compressed source where needed to read it. I published my CALL-REP source, so I could go back and have a look at the simple, but useful, things I used to write as a kid.
I continued to build stuff through college (and obviously beyond). Some of it was in C, PERL, and Java.
I recovered these bits
of source code
laying around in backups and copies
of old Linux servers I’ve run
over the years.
This source was in old Subversion repositories
that used old versions of Berkeley DB.
Initially,
This BDB version mismatch
kept svn checkout
from working,
but the current Subversion tools
have an svnadmin recover
command
that could fix the repository
for normal reading today.
I’m sure some
of those old SVN repositories
had previously been migrated
from CVS.
I found the source code from my final project in the Java class in my last year of college in 2000.
Pop-a-Prof is a clone of my favorite puzzle game, Bust-a-Move. It’s a Java Applet that ran in Netscape allowing any number of players, and it coordinated everyone’s play with a shared public server, Each round lasted 5 minutes, and any time you topped-out, you’d lose some points, and start over, so no one needed to sit around watching the last people battle it out.
After school, I started on Pop-a-Prof 2. This one ran as a plain Java application, and implemented rebounding balls in the game. It was more of a proof-of-concept for the new game mechanics, and it never got network play.
I liked running little bits of code, like applets did, so I continued into writing Java ME (J2ME) for my feature phones around 2005.
I did a gas-logging app that stored fuel-ups and drew graphs to show fuel economy.
I also wrote a quick little game called Ben’s Backhoe to give the kids a little something to do on my phone. By the time I was building this sort of thing, though, I’m a decent Java programmer, so it’s not the fun mess that we see in the other old project.
I spent most the day poking around at various old BASIC files and trying to tweak them a bit to run in PCBasic or QB64. I used lots of weird graphics modes from the Tandy 1000 and didn’t think much about portability. I may post more projects over time.
03 November 2022
I have 73 feeds I currently follow. I have a whole system of prioritization, so I can listen to important things first. I’ve listed them alphabetically here:
99% Invisible https://feeds.simplecast.com/BqbsxVfO
All About Android (Audio) https://feeds.twit.tv/aaa.xml
All Songs Considered https://feeds.npr.org/510019/podcast.xml?uid=n1qe4e85742c986fdb81d2d38ffa0d5d53
Android Central Podcast https://androidcentral.libsyn.com/rss
Arrested DevOps https://www.arresteddevops.com/episode/index.xml
At Liberty https://feeds.soundcloud.com/users/soundcloud:users:40330678/sounds.rss
Back to Work https://feeds.fireside.fm/backtowork/rss
The Best of Car Talk https://feeds.npr.org/510208/podcast.xml
The Candid Frame: Conversations on Photography https://thecandidframe.libsyn.com/rss
CaSE: Conversations about Software Engineering https://www.case-podcast.org/feed/aac
The Changelog: Software Development, Open Source https://changelog.com/podcast/feed
ClojureStream Podcast https://feeds.soundcloud.com/users/soundcloud:users:627190089/sounds.rss
Cognicast https://feeds.feedburner.com/cognicast
The Daily https://feeds.simplecast.com/54nAGcIl
Darknet Diaries https://feeds.megaphone.fm/darknetdiaries
defn https://feeds.soundcloud.com/users/soundcloud:users:220484243/sounds.rss
Distractible https://feeds.megaphone.fm/QCD8163454930
Do By Friday https://feeds.simplecast.com/5nKJV82u
Do By Friday After Show (Private Link)
Don’t Ask Tig https://feeds.publicradio.org/public_feeds/dont-ask-tig/itunes/rss.rss
Engineering Culture by InfoQ https://feeds.soundcloud.com/users/soundcloud:users:258266127/sounds.rss
Escape Pod https://escapepod.org/feed/podcast/
Everything is Alive http://feeds.everythingisalive.com/everythingisalive
FLOSS Weekly (Audio) https://feeds.twit.tv/floss.xml
The Fox News Rundown https://feeds.megaphone.fm/FOXM1880458659
Freakonomics Radio https://feeds.simplecast.com/Y8lFbOT4
Functional Geekery https://www.functionalgeekery.com/feed/mp3/
Global News Podcast https://podcasts.files.bbci.co.uk/p02nq0gn.rss
Grammar Girl Quick and Dirty Tips for Better Writing https://feeds.simplecast.com/XcH2p3Ah
Groovy Podcast http://groovypodcast.podbean.com/feed/
Hacker Public Radio http://hackerpublicradio.org/hpr_rss.php
Hanselminutes with Scott Hanselman https://feeds.simplecast.com/gvtxUiIf
Hidden Brain https://feeds.simplecast.com/kwWc0lhf
How I Built This with Guy Raz https://rss.art19.com/how-i-built-this
Interview Podcast – Echoes https://echoes.org/category/program-highlights/interviews/feed/
Jeffery Saddoris: Everything https://pcr.apple.com/id1438550795/
JS Party: JavaScript, CSS, Web Development https://changelog.com/jsparty/feed
JUXT Cast https://feeds.feedburner.com/JuxtCast
LensWork - Photography and the Creative Process https://www.lenswork.com/podcast.xml
Linux Inlaws https://linuxinlaws.eu/inlaws_rss.xml
Lost in Lambduhhs https://anchor.fm/s/581d4eb4/podcast/rss
Marketplace All-in-One https://www.marketplace.org/feed/podcast/marketplace-all-in-one
The Mortified Podcast https://feeds.feedburner.com/MortifiedPod
No Stupid Questions https://feeds.simplecast.com/dfh_verV
NPR News Now https://feeds.npr.org/500005/podcast.xml
Oh No, Ross and Carrie https://feeds.simplecast.com/ftB6Gihc
On the Media https://feeds.feedburner.com/onthemedia
People I (Mostly) Admire https://feeds.simplecast.com/rP60Wf24
Podcast – Cory Doctorow’s craphound.com https://feeds.feedburner.com/doctorow_podcast
The REPL https://feeds.therepl.net/therepl
Security Now (Audio) https://feeds.twit.tv/sn.xml
Smashing Podcast https://feeds.transistor.fm/smashing
Software Defined Talk https://www.softwaredefinedtalk.com/rss
Software Engineering Radio - the podcast for professional software developers https://seradio.libsyn.com/rss
Song Exploder https://feed.songexploder.net/SongExploder
The Stack Overflow Podcast https://feeds.simplecast.com/XA_851k3
TED Radio Hour https://feeds.npr.org/510298/podcast.xml
This American Life https://www.thisamericanlife.org/podcast/rss.xml
This Week in Tech (Audio) https://feeds.twit.tv/twit.xml
Thoughtworks Technology Podcast https://thoughtworks.libsyn.com/rss
Wait Wait… Don’t Tell Me! https://feeds.npr.org/344098539/podcast.xml
Welcome to Night Vale http://feeds.nightvalepresents.com/welcometonightvalepodcast
What’s Your Problem? https://www.omnycontent.com/d/playlist/e73c998e-6e60-432f-8610-ae210140c5b1/32c25e85-1667-4acb-99fd-ae3c0021f33e/beacef48-19d2-4f52-b9e8-ae3c0021f347/podcast.rss
Wicked Good Development https://anchor.fm/s/81a22db8/podcast/rss
Wrong About Everything https://wrongabouteverything.libsyn.com/rss
WTF with Marc Maron Podcast https://feeds.acast.com/public/shows/62a222737c02140013aa4c03
You Are Not So Smart https://feeds.simplecast.com/N5eKDxJI
24 August 2022
I’ve used BeyondPod for over 10 years, since my first Android phone, to download, organize, and play podcasts. For at least the past 4 years, maintenance and updates to the application have slowed to a crawl. I had paid a one-time fee for the application, so I guess I couldn’t think they owed me updates forever.
I would try to find a replacement every once in a while, but the other podcatchers always lacked some feature upon which I relied. Even Podcast Addict fell short the last time I tried it about 4 years ago, but it’s been getting lots of updates.
SmartPlay allowed me to organize my 74 podcast feeds into 3 or 4 tiers. This allowed me to ensure the quick, timely podcasts were played first before the longer podcasts that could wait for days or weeks. I even managed to create one tier that played chronologically, which is opposite of all my other podcasts.
For each podcast, I could boost the volume, adjust speed, and have it only keep the latest so many episodes.
It had a button to skip the rest of a podcast to quickly get to the next one.
It liked to just stop playing and crash occasionally.
It was increasingly abandoned and unmaintained, so I didn’t trust it would continue to work when Android 13 hit my phone.
I could export my OPML file, but it went to a private filesystem that can no longer be accessed by file managers in newer versions of Android.
BeyondPod never updated to use the standard media controls and kept its old notification-based player.
There was a race-condition bug when skipping forward through the end of an episode: it would skip way into the next episode.
The catalog of podcasts has stopped working, so I could only add podcasts by URL, which is fine, but less convenient.
Podcast Addict can play at even faster speeds, though I’ve not taken advantage of these speeds: I’m still listening at 2-3x speeds.
For each podcast feed, I can set custom volume boost, speed, and auto cleanup by age or count of episodes.
When an episode is finished, it automatically moves it to a Recycle Bin or 24 hours, so I can go find it again if I want to refer to it again, or completed it by accident. In BeyondPod, I had to "delete played" occasionally for myself to give myself time to review and recover what’s been played.
I can assign a numeric priority to the podcasts and sort by it, so I can easily ensure my favorite podcasts play before others when they’re available just like BeyondPod’s SmartPlay, but even more conveniently.
"Smart Priorities" automatically increments a podcasts priority when I manually click an episode to play before others. In practice, this moved things around more than I wanted, so I disabled it and fine-tuned the priorities by hand as I saw them slightly out of order.
I can see artwork for each episode. I didn’t even know there was per-episode artwork.
I also never knew chapters were a thing in podcasts. Now I can see chapters for the couple podcasts that provide them.
Skip silence works well, but it’s super-weird for story podcasts, since it eliminates all hints of punctation.
These latest features are working really well, so I’m excited everytime I get to see the software in action. I expect to see even more features showing up in the frequent releases of Podcast Addict.
There’s a Getting Started guide which intuitively walked me through the things I’d likely want to configure, and I immediately recognized all the features I wanted. I was confident Podcast Addict would work for me, so I set it up completely, and signed up to pay the annual subscription fee to help make sure they keep updating it.
I made the transition, and I love Podcast Addict. Listening to podcasts is easily my #1 pastime, so it’s important that I found the perfect software.
2022-09-23: Player→Settings→Controls→Skip Outro=95% let’s me hit the forward skip button in the last 5% of a podcast and finishes the whole episode instead of skipping only 20 seconds as it usually would. This saves a couple taps to get past the last bit of credits or closing music.
28 January 2022
My Google Assistant on my phone has been refusing to turn on and off the 2 devices I have on smart plugs: "Can’t reach SmartThings."
I found an article about the Google Home doing the same thing. Fortunately, the advice there worked: go into Assistant’s settings → Devices → Add Devices. Upon clicking on the SmartThings entry that was already there, it gave me the option to re-link. Once I authorized access, I could again ask Google to control those devices.