Nan Xiao
@nanxstats.bsky.social
Reverse dependency check speedrun: a data.table case study nanx.me/blog/post/re... #rstats
Reverse dependency check speedrun: a data.table case study
How fast can you run reverse dependency checks for a package with 1700+ reverse dependencies? I put revdeprun to the test with data.table on a 48-core cloud instance. Here is what I learned about spee...
nanx.me
November 5, 2025 at 2:16 PM
Reverse dependency check speedrun: a data.table case study nanx.me/blog/post/re... #rstats
revdeprun: Rust CLI for #rstats package reverse dependency check automation nanx.me/blog/post/re...
revdeprun: Rust CLI for R package reverse dependency check automation
revdeprun is a Rust CLI tool that makes running reverse dependency checks on cloud instances as easy as a single command. Learn why this matters for R package maintainers and how it can save you hours...
nanx.me
October 27, 2025 at 10:43 PM
revdeprun: Rust CLI for #rstats package reverse dependency check automation nanx.me/blog/post/re...
ggsci 4.0.0: 400+ new color palettes nanx.me/blog/post/gg... #rstats
ggsci 4.0.0: 400+ new color palettes
ggsci 4.0.0 is here, with over 400 new color palettes from Primer, Atlassian, and iTerm2-Color-Schemes to bring more options to your ggplot2 data visualizations.
nanx.me
September 26, 2025 at 4:37 AM
ggsci 4.0.0: 400+ new color palettes nanx.me/blog/post/gg... #rstats
Introducing py-ggsci: ggsci color palettes for plotnine in Python nanx.me/blog/post/gg...
Introducing py-ggsci: ggsci color palettes for plotnine in Python
Bring publication-ready color palettes to your Python plots with py-ggsci. This new package ports the popular ggsci palettes from R to plotnine and makes it easy to create beautiful, professional visu...
nanx.me
September 15, 2025 at 6:15 AM
Introducing py-ggsci: ggsci color palettes for plotnine in Python nanx.me/blog/post/gg...
Markdown Stupefy: tidy AI text in VS Code nanx.me/blog/post/vs...
Markdown Stupefy: Tidy AI Text in VS Code
Markdown Stupefy is a VS Code extension that converts smart punctuation to ASCII, removes emoji, and tidies trailing whitespace so AI-generated text is easy to edit and diff.
nanx.me
August 15, 2025 at 6:12 AM
Markdown Stupefy: tidy AI text in VS Code nanx.me/blog/post/vs...
A small vibe coding experiment with Claude Code: nanx.me/blog/post/cl...
Refactoring the GPU Selector App with Claude Code: A Vibe Coding Experiment
I rebuilt my deep learning GPU selector app using Claude Code, and here is what I learned from this small vibe coding experiment.
nanx.me
June 13, 2025 at 5:36 AM
A small vibe coding experiment with Claude Code: nanx.me/blog/post/cl...
My first #PyCon experience nanx.me/blog/post/my...
My First PyCon Experience
I attended my first PyCon in Pittsburgh. Here is what caught my attention as a statistician by learning from the Python community.
nanx.me
June 3, 2025 at 4:59 AM
My first #PyCon experience nanx.me/blog/post/my...
pkgdown.offline: Build pkgdown websites without an internet connection nanx.me/blog/post/pk... #rstats
pkgdown.offline: Build pkgdown websites without an internet connection
Introducing pkgdown.offline, an R package for building pkgdown websites entirely offline. Learn how it addresses recent pkgdown internet requirements, essential for CI/CD pipelines and air-gapped envi...
nanx.me
May 12, 2025 at 5:30 AM
pkgdown.offline: Build pkgdown websites without an internet connection nanx.me/blog/post/pk... #rstats
Customizing Inter with alternative optical sizing presets nanx.me/blog/post/in...
Customizing Inter with alternative optical sizing presets
Fine-tune the popular Inter typeface using optical sizing (opsz) and letter spacing. This post introduces a set of CSS presets to easily adjust its appearance for optimal readability in your web proje...
nanx.me
April 22, 2025 at 4:56 AM
Customizing Inter with alternative optical sizing presets nanx.me/blog/post/in...
Optimize R foreach loops for parallelism: avoid the .combine argument nanx.me/blog/post/r-... #rstats
Optimize R foreach loops for parallelism: avoid the .combine argument
Learn why using .combine in R parallel foreach loops can harm performance. Benchmark comparisons show that manual aggregation methods like data.table::rbindlist() significantly accelerate execution.
nanx.me
March 25, 2025 at 12:54 AM
Optimize R foreach loops for parallelism: avoid the .combine argument nanx.me/blog/post/r-... #rstats
R packages using Rust nanx.me/blog/post/r-... #rstats
R packages using Rust
r-rust-pkgs is a curated GitHub repository that collects R packages on CRAN that use Rust. It provides a centralized resource for finding high-performance R packages built with Rust, leveraging Rust's...
nanx.me
February 28, 2025 at 10:09 PM
R packages using Rust nanx.me/blog/post/r-... #rstats
Introducing rtflite for Python nanx.me/blog/post/rt...
Introducing rtflite for Python
rtflite is a lightweight Python package for generating production-ready tables, listings, and figures (TLFs) in RTF format, designed for clinical study reporting and regulatory submissions while integ...
nanx.me
February 14, 2025 at 12:33 AM
Introducing rtflite for Python nanx.me/blog/post/rt...
Prevent RStudio 2024.12.0 from adding ProjectID to .Rproj files nanx.me/blog/post/rs... #rstats
Prevent RStudio 2024.12.0 from adding ProjectID to .Rproj files
RStudio 2024.12.0 unconditionally adds a ProjectID field to .Rproj files, causing unwanted Git diffs and potential editing conflicts. This post explains the issue and provides an R script to automatic...
nanx.me
February 10, 2025 at 2:45 AM
Prevent RStudio 2024.12.0 from adding ProjectID to .Rproj files nanx.me/blog/post/rs... #rstats
Introducing pkglite for #Python nanx.me/blog/post/pk...
Introducing pkglite for Python
pkglite for Python is a simple framework to pack source packages written in any language into a text file and restore them, supporting reproducible research and standard engineering workflows across d...
nanx.me
January 16, 2025 at 7:53 AM
Introducing pkglite for #Python nanx.me/blog/post/pk...
Customize testthat snapshot directory with monkey patching nanx.me/blog/post/te... #rstats
Customize testthat snapshot directory with monkey patching
Learn how to customize the default snapshot directory in testthat using monkey patching in R. This post provides a practical solution for modifying testthat internals to meet your project's needs, wit...
nanx.me
January 6, 2025 at 4:58 AM
Customize testthat snapshot directory with monkey patching nanx.me/blog/post/te... #rstats
Skip splash screen in RStudio IDE 2024.12+ nanx.me/blog/post/rs... #rstats
Skip RStudio splash screen
Learn how to skip the RStudio IDE splash screen using simple automation scripts for macOS, Linux, and Windows.
nanx.me
December 17, 2024 at 6:15 AM
Skip splash screen in RStudio IDE 2024.12+ nanx.me/blog/post/rs... #rstats
tinyvdiff: Minimalist visual regression testing plugin for pytest nanx.me/blog/post/ti...
tinyvdiff: Minimalist visual regression testing plugin for pytest
Introducing tinyvdiff, a minimalist pytest plugin for visual regression testing in Python. Designed for reproducible workflows, tinyvdiff converts PDFs into SVG snapshots for comparing appearance chan...
nanx.me
December 6, 2024 at 7:31 AM
tinyvdiff: Minimalist visual regression testing plugin for pytest nanx.me/blog/post/ti...