Miles McBain
banner
milesmcbain.bsky.social
Miles McBain
@milesmcbain.bsky.social
Code hacker, number cruncher, #rstats user, board gamer, road racer, plant eater, bass slapper.

I like big bikes and I cannot lie. #cargobike

Coming to you from AUS / BNE.

https://milesmcbain.com
What’s important is that the verbiage implies you are a king/queen and the computer is your lowly servant. 👑👑👑
February 10, 2026 at 2:30 AM
Saw an interesting project yesterday that disclosed ‘extensive LLM use’ which to me is a 🚩that it may encounter maintenance issues.

It’s not really ‘open source’ is it? Code is open but the source is a conversation with an LLM.
February 9, 2026 at 11:17 PM
So is anyone doing ‘Open Prompt Software’ yet? 🤔
February 9, 2026 at 11:12 PM
Reposted by Miles McBain
#rstats In very non-Superbowl news, here's an experimental 📦 for nice graphics display and UX in VS Code (and other potential front-ends).

github.com/grantmcdermo...
GitHub - grantmcdermott/jgd: Lightweight R graphics device
Lightweight R graphics device. Contribute to grantmcdermott/jgd development by creating an account on GitHub.
github.com
February 9, 2026 at 12:47 AM
Yes. It’s each row that is colour coordinated though. Data frame is tipped on to side which means you can print wide data frames without having to either truncate or wrap.
February 8, 2026 at 8:26 PM
PS. You won't find these on CRAN.

My reservations about CRAN's governance aside, these packages use assignInNamespace() to redirect print methods in a way that is fairly explicity forbidden by CRAN policy.
a cartoon of homer simpson saying " mmmm...forbidden donut "
ALT: a cartoon of homer simpson saying " mmmm...forbidden donut "
media.tenor.com
February 8, 2026 at 7:12 AM
You can use {paint} alone, but I recommend checking out {flippingtables} as well. Why limit yourself to just one set of print methods? Contexts vary!

See:
github.com/milesmcbain/...
github.com/milesmcbain/...
GitHub - MilesMcBain/paint: paint the data
paint the data. Contribute to MilesMcBain/paint development by creating an account on GitHub.
github.com
February 8, 2026 at 7:06 AM
I have {paint} always on, replacing the default print methods for common data.frame formats I use.

At work I roll a theme derived from 'magma' of viridis, which pairs nicely with my editor theme.

To set that up is like:
February 8, 2026 at 7:01 AM
Bit of love for #rstats 📦 {paint} today as I had to swap out a deprecated dependency.

The interactive scrolling ipaint() got a speed up, and some additional controls to advance pages, or to start / end. I find myself using this one a bit lately.
February 8, 2026 at 6:39 AM
Reposted by Miles McBain
inspired by CLAUDE.md, I’ve started putting markdown files named after coworkers into work code repos so I can remind them to stop doing shit to the codebase that annoys me

for some reason they’re all mad at me now, which means ill be adding commands to JEREMY.md for an attitude adjustment
February 4, 2026 at 5:32 PM
Reposted by Miles McBain
Look. It's simple. To first order, you should not ever, *ever* think you can square up against game engine engineers

spader.zone/engine/
Claude Code's renderer is more complex than a game engine
spader.zone
February 2, 2026 at 8:18 PM
Reposted by Miles McBain
February 1, 2026 at 11:48 PM
Reposted by Miles McBain
I don't know if there was any one thing that skilled up #rstats skills but for sure learning how to use browser() was key.

Many resources available but @brodriguesco.bsky.social video below helped me the most.
www.youtube.com/watch?v=ATIl...
Debugging your R code with the browser() function and a second pipe operator
YouTube video by Bruno Rodrigues
www.youtube.com
January 26, 2026 at 1:50 PM
Reposted by Miles McBain
January 26, 2026 at 1:26 AM
Reposted by Miles McBain
“The collapse of the AI bubble is going to be ugly…AI is the asbestos in the walls of our technological society, stuffed there with wild abandon by a finance sector & tech monopolists run amok.“

Read this article by @pluralistic.net.web.brid.gy. Whether you agree with it all or not, it’s important.
AI companies will fail. We can salvage something from the wreckage | Cory Doctorow
AI is asbestos in the walls of our tech society, stuffed there by monopolists run amok. A serious fight against it must strike at its roots
www.theguardian.com
January 18, 2026 at 10:33 PM
Reposted by Miles McBain
I have attempted a tierlist of common styles of bike racks. (Just install staple racks!)
January 18, 2026 at 11:49 PM
Reposted by Miles McBain
After 9 years, I thought it was time for another major release of the forecast package for #rstats! New modelling functions, missing values now handled in ETS models, and a more consistent interface. robjhyndman.com/hyndsight/fo...
forecast package v9 – Rob J Hyndman
robjhyndman.com
January 12, 2026 at 4:21 AM
Reposted by Miles McBain
"But even if it sometimes helps, is it worth it? Can you get a mouse out of your kitchen with a small atomic bomb? Sure. Does it work? Yes. Do you want that? Probably not. Does the rest of the world want that? Definitely not."

@felienne.bsky.social in www.felienne.nl/2026-02/#eng...
AI in week 2
Al mijn argumenten tegen LLMs in een handig overzicht, kunnen we tegen de AI-lawine in controleren, en nog maar weer eens over samenvatten | All of my arguments against LLMs combined, can we check the...
www.felienne.nl
January 12, 2026 at 7:25 AM
Ah yeah that makes sense. I’m kind of a mix of the magit port and command line for git stuff.
January 13, 2026 at 4:24 AM
OR just hide entirely. Between command palette and keyboard shortcuts you don’t need it.

ALSO I am a fan of file browser on RHS. Code is more important so should get prime spot on LHS. File browser can be resized as convenient without changing where code begins.
January 13, 2026 at 1:18 AM
The bad practice is accumulating all that state. Likely due to “wall of code” type script structure, lacking use of functions to partition work into manageable sections etc.
January 6, 2026 at 9:07 PM
If a script accumulates a large amount of state in the global environment, wiping the environment on start makes it easier to see where it got up to before it failed, and to tinker from there.

Also guards against phantom bugs due to script stopping and leaving global env in inconsistent state.
January 6, 2026 at 9:03 PM
IRLs I’ve encountered two types of user that do this. 1 do it for superstitious reasons (or my supervisor always insisted on it), 2 do it for ergonomic reasons.

Probably you can convince 1. 2 is harder because it’s the tip of a shitberg of bad practices that are all kind of interrelated.
January 6, 2026 at 8:48 PM