Skip to main content

Pretty Good Hat

Tag: Rstats

Histogram comparing the distribution of calories expended on indoor cycling rides in 2024 versus 2025. The histogram bars are filled in orange, with black outlines. Both plots roughly cluster around about 250 kcals.

After briefly operating again, authentication to the Peloton API has been re-restricted. There are apparently some workarounds, but building a bunch of OAuth mechanics on top of a non-public API is a lot of work on something too fragile for me to rely on. That means that RideShare is inoperable for the foreseeable future, and that’s a big bummer!

Much, but not all of the ride data continues to be available through Apple Health, so I can continue to use a lot of what I did to summarize the year’s exercise data last year. Here’s a quick comparison of workout intensity in 2025 and 2024.

Today’s hobby project troubleshooting: Darn, which library did I update in that other project (don’t renv me right now, I’m riffing) that’s causing this to fail? Okay, update some other libraries. Okay, maybe there’s new R version conflict; update R. Now reinstall all libraries. Hmm. Okay, rewrite to go around the place where I think the error is raised. Nope, but that isolated enough that I can see the problem. Fixed in one minute.

A blue and orange graphic, showing the list of new artists in my most-listened to list this year. The list is Nick Cave & the Bad Seeds, Ken Pomeroy, Tunde Adebimpe, Anna von Hausswolff and Big Thief.

I’ve updated my annual last.fm summary stats app for 2025. I’m really happy with this year’s changes: The app should be faster for most users and it offers a simpler couple of visuals, displaying a shareable card for your top “new to you” artists as well as for your top overall artists of the year. It’s fun to update this year over year. If you’re a last.fm user, I hope you’ll try it out!

deardestiny.shinyapps.io/tuner

My little data vis all for my Peloton rides broke a couple of weeks ago, but clever developers found a way to continue using the API, so it’s back, for now. I wish Peloton would publish an official auth flow; they would see an explosion of support and interest from small and big developers, I think.

A screenshot of my little Peloton data app called RideShare. It is showing a climb ride with Christine and a historical plot of inactivity recently.

My week in riding the bike: I was under the weather after a few long, in-person work days last week. Improving early this week, I started up slow but built to feeling really good for this morning’s dawnbreaker HIIT and Hills thumper.

An info card showing a Low Impact ride with instructor Denis Morton. He is photographed standing against a wall of light and dark blue brick.

A share card showing my heart rate for a Sweat Steady Peloton ride with instructor Jess King, dated February 14. My heart rate steadily climbs through the ride.

A share image for a HIIT and Hills ride on the Peloton, led by Robin Arzon. Her photograph is against a black background. This ride features a lot of high heart rate time.

I made some updates to my RideShare app (which produces nice, shareable images of Peloton rides) that I’m really happy with: More flexible output image sizing and the ability to select from the image types that the Peloton API provides for more interesting visuals. I wrote this up over at the data blog.

I vastly prefer writing and working with R to Python, but marimo is a really interesting tool and addresses the thing I’ve always disliked most about jupyter notebooks – the awful json file format that stores state in the document itself. Its browser-based editor feels pretty nimble and modern, too. I’ll explore it some more.

Screenshot from the marimo home page listing its highlights

I volunteered to do some copyediting of the web page for my kid’s school, and naturally the best way to do that was to spend a couple of hours learning how to use {rvest} and writing a short script to scrape the site into a set of Quarto files. I’m right on track to get started with the copyediting in early 2025, give or take.