ᴅʀ. ᴍᴏᴡɪɴᴄᴋᴇʟ'ꜱ
@drmowinckels
Staff scientists / RSE @LCBC_UiO & @LifebrainEU. She/Her. PhD Cognitive Neurosciences 🧠 @rladies.org Global Team. #Rstats #Nerd 🌈🏳️🌈
101 tests passed — then R crashed on exit with a Windows stack-buffer-overrun 🫠 I wrapped Rust's link checker lychee into an R package (rambutan). The whole trip, teardown bug and all: #rstats #rust https://l.drmowinckels.io/ajLoWM
Its so dang warm! Happy we have AC to cool down. Even forced the cat to stay indoor the last hour so she is out of the worst of it and can cool down.
I'm an R person who just shipped two cross-platform desktop apps in Rust + Tauri + React — a stack I'd never written before. One built straight in code with Claude, one designed first as a clickable artifact. Story: https://l.drmowinckels.io/sNeRrN
Do you use The StoryGraph to catalogue the books you read, and find it cumbersome to sync the devices you read from to the website? drmowinckels.io/storywell/ #books #storyGraph #bibliophile
Quarto's `hugo-md` format wraps every figure in raw HTML, so Hugo's image render hook never fires on them. Fifteen lines of Lua + one line in `_quarto.yml` and every figure comes out as clean `` markdown instead. https://l.drmowinckels.io/WgOEMR
ggseg.extra now builds cortical brain atlases directly from the mesh geometry! A 150-region Destrieux atlas tok 9 seconds. No screenshots, no ImageMagick, no headless browser. #rstats #neuroscience #brainimaging
It's full of new features, and likely lots of new bugs. I'd love folks to test how it works, I've really tried making things more robust and I hope its payed off! #rstats #ggsegverse #neuroimaging
My dotfiles now manage my AI coding agents 🤖 Same instructions for Claude Code and OpenCode, symlinked from one repo. Here's how I set it up: https://drmo.site/CCrf37
New neuromapr #rstats package is available from GitHub! Highly experimental, early adopters and bug identifiers are super welcome to report issues! github.com/lcbc-uio/neu... #neuroscience #rstats #neuroimaging
The ggseg ecosystem finally has a proper home! 🧠 For those who don't know, ggseg is an R package ecosystem for visualizing brain atlas data. Think ggplot2, but for brains. #rstats #neuroimaging #openscience
Stop playing "diagnostics ping-pong" with your users 🏓 Wrote about why every R package wrapping external tools needs a sitrep() function — with real examples from meetupr and freesurfer. #RStats https://drmo.site/F5gVjR
15 years together, and going strong. Growing, learning, supporting, laughing, crying, loving.
My 2025 Year in Review is out! 📝 A year of deliberate work amidst post-COVID recovery. Highlights: deep dives into #RStats APIs w/ #httr2, the R Package Dev Advent Calendar, & `ggseg` improvements. Focus on sustainable, impactful work. Read more & share your 2025! 👇 https://drmo.site/8NNsxa
Managing a Hugo site gets complex fast - builds, dev servers, and getting dependencies where Hugo expects them. Here's how npm scripts solved our R-Ladies website workflow 🧵 #Hugo #NPM #WebDev #BuildTools #OpenSource #Automation
My #RPackageAdvent2025 recap is live! 📦✨ Get the complete guide to modern R package development: setup, docs, testing, CI/CD, and CRAN submission. All 25 days of tips, tools, and best practices in one place! Dive in! #RStats #RPackageDevelopment Link: https://drmo.site/8ny3eU
We Made It! 🎉 25 days. Complete modern R package development workflow. From usethis automation to CRAN submission. You have everything you need! #rstats #CRAN #RPackageAdvent2025 #ThatsAWrap
Day 25: CRAN Submission Checklist and cran-comments.md Final steps for successful CRAN submission. Pro Tip: Be proactive about communicating any unusual aspects of your package to CRAN reviewers. #rstats #RPackageAdvent2025
Happy Christmas to all who celebrate, and to those who don't I hope you get to enjoy the end of the year. We celebrated just the three of us, with a quiet and lovely celebration. After two Christmases that have been quite difficult, it was nice to have a semblance of normality.
Day 24: rlang - Tidy Evaluation in Packages Handle user expressions safely in package functions. Pro Tip: Use {{ }} (embrace) for single arguments, ... for multiple arguments. Resources: rlang.r-lib.org #rstats #RPackageAdvent2025
Day 23: cli - Beautiful Command Line Interfaces Create user-friendly messages and progress indicators. Pro Tip: Use semantic markup like {.fn function_name} and {.val value} for consistent formatting. Resources: cli.r-lib.org #RpackageAdvent2025 #rstats
Day 22: S3, S4, and S7 Object Systems Create robust object-oriented interfaces with R's object systems. Pro Tip: Use S3 for simple classes, S4 for complex validation, S7 for modern OOP. Resources: rconsortium.github.io/S7 #rstats #RPackageAdvent2025
Day 21: rhub - Multi-Platform Testing (Thread) Test your package on multiple platforms before CRAN submission. Resources: r-hub.github.io/rhub/ #rstats #RPackageAdvent2025
Day 20: Performance Testing with bench Profile and benchmark your package functions. Pro Tip: Include benchmarks in your test suite to catch performance regressions. Resources: bench.r-lib.org #rstats #RPackageAdvent2025
5/ The Bottom Line: goodpractice is your package health checkup. Catches issues before they become problems. Run regularly, maintain quality.
Day 18: Use linters! Maintain consistent, readable code style automatically. Usage: lintr::lint_package() styler::style_pkg() Pro Tip: Add both to pre-commit hooks for automatic code formatting. Resources: lintr.r-lib.org #rstats #RPackageAdvent2025
Day 17: vcr - Recording API Calls for Tests Record real API responses for reliable, fast tests without hitting live APIs. Pro Tip: Commit cassette files to git for reproducible tests across environments. Resources: docs.ropensci.org/vcr #rstats #RPackageAdvent2025
Day 16: Testing with Mocks using testthat Test functions that depend on external resources using testthat's built-in mocking. Pro Tip: Use local_mocked_bindings() to mock functions within the test scope only. Resources: testthat.r-lib.org #rstats #RPackageAdvent2025
Day 15: Snapshot Testing with testthat Test complex outputs that are hard to specify exactly. Pro Tip: Review snapshot changes carefully - they capture everything, including whitespace and formatting. #rstats #RPackageAdvent2025
Day 14: testthat 3rd Edition Features Modern testing with the latest testthat features. Setup: usethis::use_testthat(3) Pro Tip: Use test_that() with descriptive names that explain what should happen. Resources: testthat.r-lib.org #rstats #RPackageAdvent2025
Day 13: covr - Test Coverage Reporting Track how much of your code is tested. use #nocov for code you don't want to cover (like basic R functions etc) Pro Tip: Focus on testing critical functions thoroughly rather than chasing 100%. Resources: covr.r-lib.org #rstats #RPackageAdvent2025