Tan
banner
tanho.ca
Tan
@tanho.ca
#rstats carver, @nflverse.com wizard, pumpkin engineer, easily nerdsniped, he/him. soccer @ teamworks intelligence, mentor @dslc.io.

tanho.ca
Pinned
Tan @tanho.ca · Dec 2
I was looking over my hopeless hoard of bookmarks the other day and decided to make it a little more useful by curating my favourites into a more evergreen list of recommended reading/watching. Enjoy!

tanho.ca/recs
Things I Think You Should Read and Watch · TanHo.ca
A curated, non-exhaustive list of content I’ve really enjoyed and shared with friends and colleagues. Includes thoughts on life as a programmer, technical leadership, career advice, technical topics, ...
tanho.ca
Reposted by Tan
~~ nflverse data update ~~
2025 participation data is now live thanks to @ftnfantasy.com and @realfrankbrank.bsky.social.

Access
with nflreadr nflreadr.nflverse.com/reference/lo...
or
with nflreadpy
nflreadpy.nflverse.com/api/load_fun...
February 10, 2026 at 7:08 PM
I usually lean to get() from external http apis, read() from files, and load() from databases, but this only needs to be aligned within a specific project imo
February 10, 2026 at 2:24 AM
Whatever it is, it should be internally consistent and use the corresponding “opposite” words for the opposite function, eg:

- load_x(), save_x()
- read_x() = write_x()
- get_x() = set_x(), although acceptable to use POST or PUT as the opposite verb in rare instances if aligning to the http verbs
February 10, 2026 at 2:23 AM
Reposted by Tan
Congratulations @discord.com; you have convinced *all* of my friend groups to start looking for alternatives to your service because of your shitty ID requirement rollout. Well, nothing lasts forever. 🙃
February 9, 2026 at 5:47 PM
It’s a bit funny because I routinely find gha delightful when I think about what I can do with it for free (in the foss or just as a broke student) but every one of the hellish UX nightmares he lists I am very familiar with
February 9, 2026 at 5:59 PM
I've wanted a "nice way to document a universe of packages" for ages, so definitely would be keen on the website bit! My current lazy-effort is redirecting nflverse.com to point at the github org page where the readme serves as a two sentence summary, but real automated universe docs would be >>>>
February 9, 2026 at 3:22 PM
January 27, 2026 at 8:27 PM
food nerds in my skeeting circles: anyone do dry aging at home? am contemplating building a diy minifridge setup with a raspberry pi humidity/fan/temp controller
January 27, 2026 at 6:46 PM
Not sure which action you're using but I would recommend using the one from r-lib/actions which deploys the gh-pages branch rather than the main one (this prevents conflicts polluting your main branch) github.com/r-lib/action...
github.com
January 27, 2026 at 3:31 PM
Reposted by Tan
There's a new tool from @ussoccer.com and @akeaswaran.me is here to tell you about it. Introducing Glass Onion, an Identifier Synchronization Tool

www.americansocceranalysis.com/home/2026/1/...
Introducing Glass Onion by US Soccer, An Identifier Synchronization Tool — American Soccer Analysis
By Akshay Easwaran Every soccer data analysis group has had the same jump-scare: they sign data provider contract #2, and suddenly, they need a solution to link teams, matches, and players across th...
www.americansocceranalysis.com
January 26, 2026 at 2:08 PM
praise be for garages
January 24, 2026 at 6:42 PM
Wandering out into -24C with my @rfortherestofus.com hat, thanks @dgkeyes.com!
January 24, 2026 at 3:28 PM
I still can hyperfixate on random things for 12 hours but I’ve suddenly gained Consequences for doing so 🥲
January 24, 2026 at 3:20 PM
Reposted by Tan
Life's been extremely difficult lately, especially when your progress and efforts... feels under constant assessment. I made this to let myself code with no pressure. I'm calling it 'release.' A reminder that even in the darkest phases, there's light on the horizon. Messy Code: tinyurl.com/dy7zc2mz
January 23, 2026 at 10:11 PM
Reposted by Tan
In the wake of FBref's defacto death, I saw a lot of posts suggesting alternate data sources. Unfortunately, many of them focus exclusively on men's soccer. To measure what options remain for woso, I conducted a survey of the most popular FBref alternatives. What I found is disappointing:

🧵
January 23, 2026 at 6:51 PM
but what about a shower head under the toilet seat to pressure wash your butt?
January 21, 2026 at 7:31 PM
this fucking sucks
Utterly disastrous news for public access to soccer data and statistics.

www.sports-reference.com/blog/2026/01...
January 20, 2026 at 11:16 PM
Mildly respect them more for not using AI to slop it together though tbh
January 19, 2026 at 4:18 PM
k-cups!
January 15, 2026 at 10:46 PM
`sudo reboot` go brrr
January 15, 2026 at 10:05 PM
Reposted by Tan
Let’s go!!! 🚀 🏒

Teamworks has acquired Sportlogiq, the global leader in AI-powered hockey analytics.

teamworks.com/blog/teamwor...
Teamworks Acquires Sportlogiq, Expands AI-Powered Intelligence Platform | Teamworks
Teamworks announces the acquisition of Sportlogiq, expanding its AI-powered intelligence platform with industry-leading hockey analytics and video-based player tracking.
teamworks.com
January 15, 2026 at 4:07 PM
miseryyyyyyyy :(
January 12, 2026 at 3:00 PM
tan^2x!
January 11, 2026 at 6:02 AM
ctrl-b!
January 10, 2026 at 9:41 PM
Jasper is a shih tzu who doesn’t shed all that much so I’m more or less fine there hahah
January 10, 2026 at 7:36 PM