Frank Hull's Avatar

Frank Hull

@frankiethull.bsky.social

Here for R, MLOps, Energy, & local LLMs

341 Followers  |  175 Following  |  380 Posts  |  Joined: 26.11.2024  |  1.97

Latest posts by frankiethull.bsky.social on Bluesky

Automating Repetitive Reports with Quarto, 2025 MAPOR Fall Webinar Series.

Automating Repetitive Reports with Quarto, 2025 MAPOR Fall Webinar Series.

Next week! I am giving a webinar on "Automating Repetitive Reports with Quarto" as part of the 2025 MAPOR Fall Webinar Series!

Save serious time and eliminate errors by letting Quarto do the heavy lifting ๐Ÿ‹๏ธ

I would love to see you there ๐Ÿ’š๐Ÿ’›๐Ÿ’™
www.mapor.org/2025-mapor-f...

17.10.2025 14:02 โ€” ๐Ÿ‘ 27    ๐Ÿ” 15    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
R Packages (2e) Learn how to create a package, the fundamental unit of shareable, reusable, and reproducible R code.

Mostly learned from this book & looking at open source packages on GitHub for ideas r-pkgs.org

For any extension package related to tidymodels, tidymodels, etc. they also contain vignettes for developers that come in handy

18.10.2025 15:41 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

You #rstats, all I'm going to say is that I'm so excited for the amazing speakers and topics we have for you on the R+AI lineup. Official marketing posts are coming but I am so excited, it's hard to not talk about it.

18.10.2025 00:30 โ€” ๐Ÿ‘ 6    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thanks to the @posit.co team for adding the @bsky.app icon to the top right of the navbar at quarto.org.

With the latest @quarto.org update, the ๐Ÿฆ‹ Bootstrap icon works on your personal Quarto homepage too ๐Ÿฅณ
#rstats

17.10.2025 14:48 โ€” ๐Ÿ‘ 7    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Relatable. Do everything in UTC before converting to local time (& boycott DST) lol

17.10.2025 19:45 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A very important detail from a data sage ๐Ÿง™๐Ÿป๐Ÿ™Œ๐Ÿป

17.10.2025 19:33 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

But eventually need to use that data somewhere else. Makes sense to start in a project for better organization. But if pieces can be helpful downstream for team, just make a package. Now we have 30+ or so modularized data, modeling, visualizing, branding, reporting packages that work together ๐Ÿ™Œ๐Ÿป

17.10.2025 19:32 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I'm skipping over a lot. Originally I would get stuck thinking "should this be a script or a notebook" eventually I'd have to pull the code from a notebook and place in a script. Modularizing scripts like 00_get_data, 01_clean_data, 02_feature_data, 03_regression, etc.

17.10.2025 19:29 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I haven't mentioned it (until now) but "all you need" is a survey analysis I'm conducting. Eventually scrape my profile with bskyr and see which "all you need" is ranked highest and truly all you need.

16.10.2025 18:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

6. Everything should be a project or package

I'm almost to the point where everything should be a PACKAGE. This has saved me so much time this year.

7. Vignettes, NEWS, Issues

Helpful for the developer, user, and managers to follow along. Or even your future self ๐Ÿค—

16.10.2025 17:31 โ€” ๐Ÿ‘ 15    ๐Ÿ” 2    ๐Ÿ’ฌ 4    ๐Ÿ“Œ 0

4. Everything will be used again

This is the opposite of my early script days. It's the mindset to build modular. Eventually I became modular with scripts but instead, write functions.

5. Be descriptive

descriptively_name_everything_and_do_it_early_refactor_if_necessary()

๐Ÿงต

16.10.2025 17:24 โ€” ๐Ÿ‘ 8    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

1. Use git (use GitHub)

Every analysis I've done in 2025 is a repo. GAME CHANGER.

2. Namespace everything

Every function should include pkg::fun. EVERY FUNCTION.

3. Use air formatter

Automatic formatting. IT DOES SAVE TIME.

๐Ÿงต

16.10.2025 17:18 โ€” ๐Ÿ‘ 13    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 1

There's a few rules I've adopted for data analysis this year that have helped me out a lot.

16.10.2025 16:56 โ€” ๐Ÿ‘ 31    ๐Ÿ” 7    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

Friendly reminder, after 2038 integer representations of datetime are larger than 32-bits #POSIXct

16.10.2025 16:52 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Darth Vader "I've been waiting for you S7. We meet again at last" meme

Darth Vader "I've been waiting for you S7. We meet again at last" meme

When I left you. I was but the learner. Now I am the master.

15.10.2025 22:13 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Looks like David Smith & Hong Ooi ๐Ÿค— at least on the internet archive

15.10.2025 01:59 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

No that's ๐Ÿ’ค.R

14.10.2025 20:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

duckplyr is also designed like this ๐Ÿ˜

14.10.2025 20:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

What do you mean? Looks just like his profile pic โšช

11.10.2025 22:29 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

stRictvegetaRian

11.10.2025 00:34 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

zzz.R is all you need

11.10.2025 00:29 โ€” ๐Ÿ‘ 7    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

No it's okay. I am fine now, thanks for the offer.

As if today, I can back into the energy use of any ceiling fan in any building in America

09.10.2025 20:43 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

snake_case_is_all_you_need

09.10.2025 18:18 โ€” ๐Ÿ‘ 17    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

stringr::str_detect is all you need

09.10.2025 14:55 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I AM INVINCIBLE

08.10.2025 20:47 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

YAML is all you need

08.10.2025 20:01 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

left join left join left join left join

07.10.2025 22:02 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Somewhat tabular structured so not too bad. 15-minute interval time series with ~280 columns each. Data is split by various IDs into separate files.

07.10.2025 15:10 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
07.10.2025 14:36 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

๐Ÿฅด

06.10.2025 21:05 โ€” ๐Ÿ‘ 15    ๐Ÿ” 1    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 1

@frankiethull is following 20 prominent accounts