I hereby claim:
- I am wch on github.
- I am winston (https://keybase.io/winston) on keybase.
- I have a public key ASBIcD-b7Mr5y30DdA4AfVp_I263JfDKgLboP2DYCHpfvwo
To claim this, I am signing this object:
| # @drob's version from https://twitter.com/drob/status/1501747414780239879 | |
| pluck_recursive <- function(lst, name) { | |
| if (is.list(lst)) { | |
| if (!is.null(lst[[name]])) { | |
| return(lst[[name]]) | |
| } | |
| return(unname(unlist(purrr::map(lst, pluck_recursive, name)))) | |
| } | |
| } |
| library(inline) | |
| get_mtime <- cfunction( | |
| signature(filename = "character"), | |
| includes = " | |
| #include <time.h> | |
| #include <sys/stat.h>", | |
| body = ' | |
| const char* path = CHAR(asChar(filename)); | |
| struct stat attr; | |
| stat(path, &attr); |
| # Demonstration of using ContextVars instead of global variables. | |
| # Set to True for global mode, False for ContextVar mode | |
| global_mode = False | |
| # With a global variable, the result is: 1 2 3 3 3 3 3 3 3 | |
| # With a ContextVar, the result is: 1 2 3 1 2 3 1 2 3 | |
| import asyncio | |
| import contextvars |
| # This code uses later's C API to schedule callbacks as quickly as possible, and | |
| # it tests if the callbacks execute in the same order that they are scheduled. | |
| # In Docker on Mac, they sometimes do not. | |
| docker run --rm -ti rocker/shiny /bin/bash | |
| R | |
| install.packages(c('cpp11', 'later', 'brio', 'callr', 'cli', 'decor', 'desc', | |
| 'tibble', 'vctrs')) | |
| library(cpp11) |
| docker run --rm -ti --security-opt seccomp=unconfined wch1/r-debug | |
| # ===================================================================== | |
| # Setup | |
| # ===================================================================== | |
| RD -e 'install.packages(c("cpp11", "decor", "igraph"))' | |
| RD -e 'remotes::install_github("r-lib/memtools", build_manual = FALSE, build_vignettes = FALSE)' | |
| # ============================================================================== |
I hereby claim:
To claim this, I am signing this object:
| library(rlang) | |
| library(pryr) | |
| # =========================== | |
| # Normal quosures | |
| # =========================== | |
| # as_function() with a quosure: OK | |
| a <- 1 | |
| x <- quo(a + 10) | |
| a <- 2 |
| library(digest) | |
| library(promises) | |
| library(cache) | |
| # Given a list with items named `value` and `visible`, return `x$value` either | |
| # visibly, or invisibly, depending on the value of `x$visible`. | |
| valueWithVisible <- function(x) { | |
| if (x$visible) x$value else invisible(x$value) | |
| } |
| library(profvis) | |
| library(microbenchmark) | |
| library(memoise) | |
| library(digest) | |
| # Bare function | |
| f <- function(a, b) { | |
| a + b | |
| } |
| library(httpuv) | |
| # Create a web server app which returns the time and prints out the value of | |
| # a header named "test-header". | |
| handle_request <- function(req) { | |
| list( | |
| status = 200L, | |
| headers = list('Content-Type' = 'text/plain'), | |
| body = paste0( | |
| "The time is: ", Sys.time(), "\n", |