Charlie Gao's Avatar

Charlie Gao

@shikokuchuo.net

Software Engineer, Open Source @posit.co github.com/shikokuchuo

363
Followers
95
Following
73
Posts
18.11.2024
Joined
Posts Following

Latest posts by Charlie Gao @shikokuchuo.net

Video thumbnail

And that means you no longer have to choose between convenience and correctness. Don't want to identify and specify your dependencies by hand? Let Claude do it for you.

You get the robustness of mirai's model with the ease of pointing at your code and saying "use mirai to make this parallel".

06.03.2026 23:09 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

We've always designed mirai to be robust, explicit, and production-ready.

It turns out that the same properties that make mirai trustworthy for humans make it ideal for AI.

The explicit and deterministic interface is one that an AI agent can reason about perfectly.

06.03.2026 23:07 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The skill covers the patterns that trip up both humans and AI:

โœ… Passing dependencies explicitly
โœ… Namespacing package functions on daemons
โœ… Blocking vs non-blocking result collection
โœ… Scoped daemons with automatic cleanup
โœ… Converting from future and parallel
โœ… Remote/HPC cluster configuration

06.03.2026 20:55 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
mirai/dev/skills at main ยท r-lib/mirai Minimalist Async Evaluation Framework for R. Contribute to r-lib/mirai development by creating an account on GitHub.

New: mirai skill for AI coding agents ๐Ÿค–

Use with Claude Code/Codex/Cursor for writing async/parallel R code. Covers explicit dependency passing, daemon setup, mirai_map, Shiny integration ++

Install:
npx skills add posit-dev/skills --skill mirai

github.com/shikokuchuo/mirai/tree/main/dev/skills

06.03.2026 20:45 ๐Ÿ‘ 12 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

RStudio now has next edit suggestions! I wrote a bit about how they work and have open-sourced the eval we used to engineer the system's prompt: www.simonpcouch.com/blog/2026-03...

06.03.2026 14:07 ๐Ÿ‘ 29 ๐Ÿ” 8 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
Preview
PDF Accessibility and Standards โ€“ Quarto Quarto 1.9 brings PDF accessibility and standards support, building on new tagging features in LaTeX and Typst.

If you are interested in PDF accessibility, there has been some big progress in Quarto.

Take a look at the latest blog post: quarto.org/docs/blog/po...

#Quarto #Accessibility #LaTeX #Typst

05.03.2026 15:21 ๐Ÿ‘ 19 ๐Ÿ” 7 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

I presented at Shiny in Production 2025, an incredible conference hosted by @jumpingrivers.com up in Newcastle! I was glad to share the very latest from the Shiny team directly. The topics were bleeding edge at the time, so still new and relevant now. My video: www.youtube.com/watch?v=vxai...

04.03.2026 14:34 ๐Ÿ‘ 22 ๐Ÿ” 5 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Minimalist Async Evaluation Framework for R Evaluates R expressions asynchronously and in parallel, locally or distributed across networks. An official parallel cluster type for R. Built on nanonext and NNG, its non-polling, event-driven archit...

mirai 2.6.1 is now on CRAN

Launching daemons on Posit Workbench wasn't working for you with mirai 2.6.0? We've fixed it! `http_config()` now authenticates correctly for all Workbench installation types.

Scale seamlessly from laptop to enterprise with mirai.

mirai.r-lib.org
#Rstats #Tidyverse

03.03.2026 14:02 ๐Ÿ‘ 19 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
HTTP streaming and Server-Sent Events in R with nanonext HTTP streaming and Server-Sent Events in R with nanonext - sse.R

HTTP streaming and Server-Sent Events in R with nanonext. Here's an example: gist.github.com/jrosell/178e...

02.03.2026 20:43 ๐Ÿ‘ 8 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
The mirai hex sticker on a dotted background, with the Posit logo in the corner.

The mirai hex sticker on a dotted background, with the Posit logo in the corner.

Announcing mirai 2.6.0!

This framework for parallel & async computing in #RStats just got a major upgrade: HTTP Launcher (incl to Posit Workbench!), C-Level Dispatcher, process results as they finish, and synchronous mode .

Learn more: tidyverse.org/blog/2026/02...

25.02.2026 15:24 ๐Ÿ‘ 28 ๐Ÿ” 5 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

mirai is the recommended async backend for Shiny, the only backend for plumber2, the parallel backend for purrr, and powers targets and ragnar.

Learn `daemons()` + `mirai()` and you've learned the async primitives behind the modern R stack.

`install.packages("mirai")`

#RStats #Tidyverse #RShiny

13.02.2026 12:13 ๐Ÿ‘ 7 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
mirai 2.6.0 mirai 2.6.0 brings an HTTP launcher for cloud and Posit Workbench, a C-level dispatcher for near-zero overhead task dispatch, and new tools for racing and debugging async tasks.

mirai 2.6.0 is on CRAN โ€” R's async framework now deploys from your laptop to Posit Workbench with a single call.

New HTTP launcher, C-level dispatcher with near-zero overhead, `race_mirai()` for process-as-completed patterns, and sync mode for debugging.

tidyverse.org/blog/2026/02/mirai-2-6-0/

13.02.2026 12:11 ๐Ÿ‘ 31 ๐Ÿ” 6 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
nanonext 1.8.0 nanonext 1.8.0 adds a low-level streaming HTTP/WebSocket server to R's web infrastructure, with TLS support, new async primitives, and redesigned documentation.

nanonext 1.8.0 is out - R now has a streaming HTTP/WebSocket server with bundled TLS.

Runs alongside Shiny in the same process. We're already using it at Posit to explore new real-time capabilities.

#Rstats #tidyverse

tidyverse.org/blog/2026/02/nanonext-1-8-0/

09.02.2026 20:13 ๐Ÿ‘ 28 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
shikokuchuo{net}: secretbase: The 40KB Hash Package Streaming cryptographic hashes for R

New post: the design behind secretbase, a 40KB streaming hash package I maintain.

The entire source package is smaller than most hex sticker PNGs.

Hash large objects with constant memory. Powers targets pipelines. Plus CBOR encoding comes to R.

shikokuchuo.net/posts/28-int...

#RStats #OpenSource

04.02.2026 16:02 ๐Ÿ‘ 11 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

(OpenMP + Fortran) * Mirai levels of scaling!

29.01.2026 01:29 ๐Ÿ‘ 6 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I'd also like to give a shout out to {quickr} by @t-kalinowski.bsky.social , transpiling R code to Fortran is another strategy for seeking the ultimate performance.

But in terms of mirai being multi-process, one key advantage is it allows seamless scaling beyond your local machine to servers / HPC.

28.01.2026 21:46 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Preview
ragnar 0.3.0 The new release of ragnar adds faster ingestion, new embedding providers, improved retrieval, and new integrations for using ragnar stores from tools.

ragnar 0.3.0 is now on CRAN! ๐Ÿš€ An R toolkit for RAG from your docs: faster ingestion, better retrieval, Azure OpenAI + Snowflake embeddings, and MCP serving. tidyverse.org/blog/2026/01...

#rstats #rag #ai

27.01.2026 17:30 ๐Ÿ‘ 29 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

{mirai} implements multi-process parallelism, in a modern performant way. It's sadly not multi-threading, but the overhead is so low now that for most purposes it's not that much difference.

26.01.2026 23:30 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Minimalist Async Evaluation Framework for R Designed for simplicity, a mirai evaluates an R expression asynchronously, locally or distributed over the network. Built on nanonext and NNG for modern networking and concurrency, scales efficiently ...

mirai.r-lib.org #rstats

26.01.2026 21:05 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I merged a PR for mirai today (fixing an esoteric bug), that came with a performance boost that I'd never have thought existed. That means that on my laptop, the default (with dispatcher) round-trip performance now dips into sub-100 microseconds territory!! Get it now: `pak::pak("r-lib/mirai")`

26.01.2026 21:04 ๐Ÿ‘ 32 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Preview
Time Will Tell App - App Store Download Time Will Tell by Hadley Wickham on the App Store. See screenshots, ratings and reviews, user tips, and more games like Time Will Tell.

Thanks to claude code, I wrote my first iphone app:
apps.apple.com/us/app/time-...
It's what I have always wanted for a talk timer (as both a speaker and a chair). It's very minimal, designed to be read from across the room, and make it clear when you're running out of time.

14.01.2026 19:49 ๐Ÿ‘ 78 ๐Ÿ” 7 ๐Ÿ’ฌ 6 ๐Ÿ“Œ 0
Semi-automating 200 Pull Requests with Claude Code โ€“ Davis Vaughan

I sent 200 pull requests using Claude Code and wrote about the experience. It's pretty wild!

For dplyr releases, we send a PR any time we break an #rstats package. This release advances a lot of deprecated functions, triggering issues in many old packages!

blog.davisvaughan.com/posts/2026-0...

12.01.2026 13:42 ๐Ÿ‘ 61 ๐Ÿ” 13 ๐Ÿ’ฌ 6 ๐Ÿ“Œ 1
Preview
GitHub - shikokuchuo/secretbase: secretbase - Cryptographic Hash, Extendable-Output and Binary Encoding Functions secretbase - Cryptographic Hash, Extendable-Output and Binary Encoding Functions - shikokuchuo/secretbase

I released {secretbase} 1.1.0 today. github.com/shikokuchuo/...

Adds optimized base58check and CBOR encoding.

This is a zero-dep #rstats package that wraps C code for hashing and binary/text encoding often needed in web development contexts. It also handles the file/object hashing for {targets}.

08.01.2026 20:37 ๐Ÿ‘ 17 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I demonstrated OpenTelemetry at Japan.R 2025 last week as an example of ecosystem-wide innovation we're driving at Posit for #rstats. Now thanks to @schloerke.com we have it in a release version of Shiny. This was also a technology that other community speakers picked as one to watch in 2026!

11.12.2025 10:54 ๐Ÿ‘ 9 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I'm honoured and delighted to be delivering the keynote for Japan.R 2025 in Tokyo on Dec 6.

New ideas on creativity and community in open source software. Live demonstrations of ggbot2, OpenTelemetry and mirai (Posit ecosystem-wide initiatives).

#Rstats #Tidyverse
japanr.connpass.com/event/374714/

20.11.2025 12:20 ๐Ÿ‘ 30 ๐Ÿ” 5 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Mix and match: โœ… use more cores on your laptop โœ… use cores on a machine on the network via SSH โœ… use cloud instances via tunnelled SSH โœ… use nodes on your HPC cluster. Leverage all this compute at the same time. Or choose exactly where to send different compute with different needs.

17.11.2025 11:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

mirai's core architecture has evolved significantly this year to really unlock the possibilities for parallel compute. No more rigid backend settings that don't respond to requirements as they evolve. Instead, add and remove compute dynamically.

17.11.2025 11:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Purrrfectly parallel, purrrfectly distributed (Charlie Gao, Posit) | posit::conf(2025)
Purrrfectly parallel, purrrfectly distributed (Charlie Gao, Posit) | posit::conf(2025) YouTube video by Posit PBC

Everyone can now view my posit::conf 2025 talk "purrrfectly parallel, purrrfectly distributed"!

{purrr} now lets you access the magic of {mirai} directly, as the modern way to make things faster through parallel computation in #rstats.

youtu.be/j1yHjMvbnQM?...

17.11.2025 11:30 ๐Ÿ‘ 27 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Update runtimed to fix compatibility issue with the Ark kernel by lionel- ยท Pull Request #40889 ยท zed-industries/zed Closes #40888 This updates runtimed to the latest version, which handles the "starting" variant of execution_state. It actually handles a bunch of other variants that are not documented i...

Much thanks to @lionelhenry.bsky.social and @cirw.in for pushing the rust bindings for Jupyter further and making @posit.co's Ark runtime work in @zed.dev! github.com/zed-industri...

13.11.2025 19:38 ๐Ÿ‘ 7 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
When plotting, LLMs see what they expect to see - Posit Data science agents need to accurately read plots even when the content contradicts their expectations. Our testing shows today's LLMs still struggle here.

To be effective, data science agents need to be able to read plots reliably. @sara-altman.bsky.social and I wrote about some concerning findings on LLMs' ability to interpret plots when the content contradicts their expectations on the @posit.co blog.

posit.co/blog/introdu...

13.11.2025 15:07 ๐Ÿ‘ 47 ๐Ÿ” 18 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 2