2022
    
    
      Toy WASM interpreter in base R
      
        2022-07-29
      
    
    
    
      AnotherWorld game written + playable in R (with {nara} and {eventloop})
      
        2022-07-29
      
    
    
    
      Pacman game written in R with {nara} and {eventloop}
      
        2022-07-26
      
    
    
    
      Introducing {nara} for nativeRaster handling for fast in-memory rendering buffers
      
        2022-07-25
      
    
    
    
      World's simplest R music system. Part 3 - Non-sinusoidal Waveforms
      
        2022-07-12
      
    
    
    
      World's simplest R music system. Part 2 - linear ADSR note shaping
      
        2022-07-11
      
    
    
    
      World's simplest R music system
      
        2022-07-10
      
    
    
    
      {isocubes} v0.1.2 update with Signed Distance Fields
      
        2022-07-01
      
    
    
    
      Introducing isocubes - an isometric rendering backend
      
        2022-06-21
      
    
    
    
      Nesting Functions
      
        2022-06-15
      
    
    
    
      Introducing `{tickle}` quickly build UIs in base R
      
        2022-06-03
      
    
    
    
      Introducing `{tr808r}` a TR-808 Drum Machine in R
      
        2022-05-14
      
    
    
    
      A naive implementation of Visvalingam's line simplification in R
      
        2022-05-07
      
    
    
    
      Introducing {eventloop} - Realtime interactive rendering in R
      
        2022-05-06
      
    
    
    
      Introducing {cstructr} - a demonstration package showing how C structs may be exposed to R
      
        2022-04-26
      
    
    
    
      Find sets of five words in the wordle dictionary that contain 25 unique letters
      
        2022-01-17
      
    
    
    
      {wordle} v0.1.5 - a package for playing (and helping solve) Wordle puzzles
      
        2022-01-04
      
    
    
    
    2021
    
    
      Introducing {wordle} - a package for helping solve Wordle puzzles
      
        2021-12-31
      
    
    
    
      Solving a Wordle with assistance from R
      
        2021-12-28
      
    
    
    
      Introducing {ggsvg} - use SVG as ggplot points
      
        2021-12-23
      
    
    
    
      Lex, Parse and Evaluate a Simple S-Expression with {flexo}
      
        2021-12-09
      
    
    
    
      Base64 encoding/decoding in plain R
      
        2021-12-04
      
    
    
    
      Introducing {svgparser} - an SVG renderer in plain R
      
        2021-12-02
      
    
    
    
      A simple 2048 game engine in R
      
        2021-11-14
      
    
    
    
      Custom {ggplot2} point shapes with {gggrid}
      
        2021-11-04
      
    
    
    
      Introducing {cssparser} - parse CSS into R lists and apply CSS to html within R
      
        2021-09-29
      
    
    
    
      Introducing {gozer} add destruction artefacts to R objects
      
        2021-09-28
      
    
    
    
      New {flexo} vignette - parsing subtitles in srt format
      
        2021-09-16
      
    
    
    
      Introducing {priorityqueue} - two simple priority queues. One written in R, the other in C
      
        2021-09-14
      
    
    
    
      Introducing {typhoid} uint16, fixedpt & numberwang implemented in vctrs
      
        2021-09-09
      
    
    
    
      {smallfactor} update - store factors in bytes and bits rather than integers
      
        2021-09-06
      
    
    
    
      Introducing {numberwang} - numbers to words and vice versa)
      
        2021-08-30
      
    
    
    
      Introducing {smallfactor} - a space-saving factor backed by a raw vector (instead of integers)
      
        2021-08-27
      
    
    
    
      Fast(?) cubic beziers at variable resolution
      
        2021-08-11
      
    
    
    
      Introducing {colourmebad} - find pronounceable colours close to reference colours
      
        2021-07-30
      
    
    
    
      Introducing {ggqr} - A geom for QR codes in ggplot2
      
        2021-07-27
      
    
    
    
      Introducing {bdftools} - tools for bitmap fonts in R
      
        2021-07-26
      
    
    
    
      Introducing {facetious} - alternate facets for ggplot2
      
        2021-07-20
      
    
    
    
      Introducing {ingrid} - alternate tools for grab creation, manipulation and output
      
        2021-07-15
      
    
    
    
      Introducing 'sars' - proof-of-concept for running 'SAS' DATA and PROC SQL statements in R
      
        2021-07-14
      
    
    
    
      R v4.1.0 - {grid} graphics new feature - patterns (part 3)
      
        2021-07-03
      
    
    
    
      R v4.1.0 - {grid} graphics new feature - patterns (part 2)
      
        2021-07-02
      
    
    
    
      R v4.1.0 - {grid} graphics new feature - patterns
      
        2021-07-01
      
    
    
    
      Introducing {gluestick} - a simple, base R, single function, glue-like string interpolator
      
        2021-06-04
      
    
    
    
      Package Development Update
      
        2021-04-01
      
    
    
    
      Introducing 'fugly' - fast regular expression substring extraction with named capture groups
      
        2021-03-19
      
    
    
    
      On 'on.exit()' - Part 2
      
        2021-03-12
      
    
    
    
      On 'on.exit()'
      
        2021-03-12
      
    
    
    
      Modifying R6 objects after creation - Part 2
      
        2021-02-20
      
    
    
    
      Modifying R6 objects after creation
      
        2021-02-19
      
    
    
    
      A Simple Ray-Tracer Written in Base R
      
        2021-02-15
      
    
    
    
      From the time before Tetris - 'Beat the Computer' puzzles
      
        2021-01-27
      
    
    
    
      Introducing {wingspan} - data about the cards in the Wingspan boardgame
      
        2021-01-18
      
    
    
    
    2020
    
    
      Introducing flexo - simple lex/parse tools in R
      
        2020-12-07
      
    
    
    
      Introducing ggrgl - a 3d extension to ggplot
      
        2020-12-02
      
    
    
    
      Demo: Rendering Images in Polygons with {ggplot2} and {ggpattern}
      
        2020-11-18
      
    
    
    
      Play Zork in RStats
      
        2020-11-15
      
    
    
    
      {emphatic} v0.1.3 - highlight data.frame output with ANSI - Added legends & support for vectors
      
        2020-11-11
      
    
    
    
      A Chess Engine  in RStats (Proof-of-Concept using Stockfish)
      
        2020-11-05
      
    
    
    
      Parsing Forsyth Edwards Notation for Chess in RStats
      
        2020-11-05
      
    
    
    
      Parsing Chess PGN files in RStats
      
        2020-11-04
      
    
    
    
      Knight's Tour Problem
      
        2020-11-03
      
    
    
    
      8 Queens Chess Problem
      
        2020-11-02
      
    
    
    
      Introducing 'emphatic' - highlight data.frames in the R console
      
        2020-10-30
      
    
    
    
      Introducing 'purler' - fast run-length encoding with data.frame output
      
        2020-10-14
      
    
    
    
      Introducing geomlime
      
        2020-10-13
      
    
    
    
      Introducing devoutrgl - a 3d graphics device targetting rgl
      
        2020-10-06
      
    
    
    
      A level 3 menger sponge in R
      
        2020-09-27
      
    
    
    
      Introducing the {triangular} package for decomposing complex polygons to triangles
      
        2020-09-26
      
    
    
    
      What's the upper limit on serialization speed in R?
      
        2020-09-22
      
    
    
    
      xxhashlite - hash arbitrary R objects as fast as possible
      
        2020-09-22
      
    
    
    
      Introducing serializer - a demonstration pkg illustrating how to use R's serialiation from C
      
        2020-09-18
      
    
    
    
      Creating a data.frame in C
      
        2020-09-16
      
    
    
    
      Introducing 'snowcrash' - a package to encode arbitrary R objects into image representations
      
        2020-09-11
      
    
    
    
      Introducing 'cryogenic' - a package to freeze function calls to modify and evaluate later
      
        2020-09-09
      
    
    
    
      Inserting rgl as webgl in an Rmarkdown document - Part 2
      
        2020-09-07
      
    
    
    
      Inserting rgl as webgl in an Rmarkdown document
      
        2020-09-07
      
    
    
    
      Introducing 'insitu' - functions for in-place modification
      
        2020-09-03
      
    
    
    
      Run-Length Encoding and The Problem of NAs
      
        2020-08-26
      
    
    
    
      Introducing 'chipmunkcore' - a wrapper for the chipmunk2d physics simulation c library
      
        2020-08-20
      
    
    
    
      Introducing 'cairobasic' - an R6 wrapper around cairocore
      
        2020-08-18
      
    
    
    
      Introducing 'cairocore' - fast 2d drawing canvas backed by cairo
      
        2020-08-17
      
    
    
    
      Introducing 'spng' - In-memory decoding of PNG images
      
        2020-08-05
      
    
    
    
      Introducing 'pixelweaver' - Convert arrays/matrices to packed ARGB32 colour format
      
        2020-08-03
      
    
    
    
      Introducing 'simpletrie' - a simple trie written in pure R (a.k.a. a tool for cheating at scrabble)
      
        2020-08-01
      
    
    
    
      Introducing 'frak' - a julia set fractal generator
      
        2020-07-16
      
    
    
    
      Introducing 'displease' - a package for non-linear numeric inteprolation
      
        2020-07-14
      
    
    
    
      Introducing 'miranda' - a package of fast, modern, uniform pseudo-random number generators
      
        2020-07-09
      
    
    
    
      The quality of R's Random Number Generators
      
        2020-07-07
      
    
    
    
      Introducing terse - a package for compact output of lists and data.frames
      
        2020-07-01
      
    
    
    
      simplec, simplecall, simplercpp - demo packages incorporating C code
      
        2020-06-30
      
    
    
    
      Introducing 'zstdlite' - fast, configurable, in-memory compression of numeric vectors with Zstandard
      
        2020-06-19
      
    
    
    
      Introducing 'lz4lite' - extremely fast compression with LZ4
      
        2020-06-16
      
    
    
    
      Introducing 'xxhashr' - extremely fast hashing with xxHash
      
        2020-06-12
      
    
    
    
      Introducing the 'defaultlist' package - R list objects with a user-defined default value.
      
        2020-05-13
      
    
    
    
      defaultlist - an R list with a user-defined default value. Take 2
      
        2020-05-12
      
    
    
    
      defaultlist - an R list with a default value
      
        2020-05-11
      
    
    
    
      Introducing 'gridfont' - a vector font
      
        2020-05-08
      
    
    
    
      Introducing 'arcadefont' - an oldschool arcade vector font  (Happy Star Wars Day)
      
        2020-05-04
      
    
    
    
      Introducing devoutansi - an ANSI graphics device
      
        2020-04-30
      
    
    
    
      Introducing miniansi - a package for creating simple ANSI documents
      
        2020-04-29
      
    
    
    
      Scanline Polygon Fill Algorithm in Plain R (with bonus ANSI colour!)
      
        2020-04-28
      
    
    
    
      Introducing 'ransid' - a simple image to ANSI converter
      
        2020-04-27
      
    
    
    
      Introducing devoutdrawio - A graphics device which outputs to draw.io format
      
        2020-04-23
      
    
    
    
      Introducing minidrawio - create simple draw.io documents in R
      
        2020-04-22
      
    
    
    
      Manipulate CSV files on the command line with dplyr-cli
      
        2020-04-20
      
    
    
    
      Racing Barplots with {ggpattern}, {flagon} & {gganimate}
      
        2020-04-12
      
    
    
    
      Introducing 'flagon' - A package of just flag images in PNG and SVG format
      
        2020-04-03
      
    
    
    
      Introducing 'optout' - A package for optimizing graphics output
      
        2020-04-03
      
    
    
    
      Introducing ggpattern - pattern fills for ggplot
      
        2020-04-01
      
    
    
    
      Line Segment/Box Intersection Test
      
        2020-03-01
      
    
    
    
      My mental model of how alpha works is wrong
      
        2020-02-14
      
    
    
    
      Introducing the {ggblur} package
      
        2020-02-11
      
    
    
    
    2019
    
    
      Drawing with epicycles in R
      
        2019-12-31
      
    
    
    
      dplyr::ungroup() - forget me not. Part 4.
      
        2019-12-06
      
    
    
    
      dplyr::ungroup() - forget me not. Part 3.
      
        2019-11-22
      
    
    
    
      dplyr::ungroup() - forget me not. Part 2.
      
        2019-11-20
      
    
    
    
      dplyr::ungroup() - forget me not
      
        2019-11-19
      
    
    
    
      Introducing {devoutsvg} - SVG graphics output device with pattern fills
      
        2019-10-10
      
    
    
    
      Introducing {svgpatternusgs} - a collection U.S. Geological Survey repeating SVG patterns
      
        2019-10-10
      
    
    
    
      Introducing {svgpatternsimple} - a collection of simple repeating SVG patterns
      
        2019-10-09
      
    
    
    
      The {miniverse} - a collection of document creation packages for RStats
      
        2019-10-09
      
    
    
    
      Introducing {minisvg} - create SVG documents with R
      
        2019-10-08
      
    
    
    
      The {devoutverse} - a collection of non-standard graphics output devices for RStats
      
        2019-10-08
      
    
    
    
      Introducing {devoutpdf} - a hand-crafted PDF graphics device written in plain R
      
        2019-10-07
      
    
    
    
      Introducing {devoutaudio} - an experimental package for rendering graphics as audio
      
        2019-10-04
      
    
    
    
      Re-introducing devout - a package for creating graphics output devices in plain R
      
        2019-10-03
      
    
    
    
      Introducing the `minixml` package for creating XML documents in R
      
        2019-09-30
      
    
    
    
      Introducing the `hershey` package - raw data for the Hershey Vector Fonts
      
        2019-09-24
      
    
    
    
      Introducing the `minihtml` package for creating HTML documents in R
      
        2019-09-19
      
    
    
    
      Introducing the `minizdog` package for creating zdog 3d illustrations in R
      
        2019-09-17
      
    
    
    
      Introducing the `minicss` package for creating CSS styles and stylesheets in R
      
        2019-09-11
      
    
    
    
      Introducing the `minipdf` package for writing raw PDFs
      
        2019-08-14
      
    
    
    
      Introducing the `lofi` package for low-fidelity/low-bit data representations
      
        2019-08-06
      
    
    
    
      Using random bits to generate random numbers
      
        2019-07-19
      
    
    
    
      poissoned - a package for poisson disc sampling
      
        2019-06-25
      
    
    
    
      Drawing Fractals with grid graphics - part 2
      
        2019-04-29
      
    
    
    
      Drawing Fractals with grid graphics - part 1
      
        2019-04-27
      
    
    
    
      Introducing the ggreverse package for turning ggplots back in to code
      
        2019-04-26
      
    
    
    
      Reverse engineer the ggplot call from a ggplot object
      
        2019-04-26
      
    
    
    
      Every possible scatterplot from a data.frame (32 thousand plots of `mtcars`)
      
        2019-04-25
      
    
    
    
      GIF image writing in pure R
      
        2019-04-23
      
    
    
    
      Twitter #rstats activity
      
        2019-04-09
      
    
    
    
      Outputting data to images
      
        2019-04-08
      
    
    
    
      Red/Blue Analglyphs with ggplot2 and ggthreed
      
        2019-04-02
      
    
    
    
      ggdebug - v0.1.1
      
        2019-04-01
      
    
    
    
      ggdebug - a package for debugging ggplot stats
      
        2019-03-26
      
    
    
    
      ggecho - an experimental ggplot stat for blurring elements
      
        2019-03-22
      
    
    
    
      geom_blurry() - proof of concept
      
        2019-03-19
      
    
    
    
      Introducing the `analemmatic` Package for Creating Analemmatic Sundials
      
        2019-03-19
      
    
    
    
      group_map() in dplyr 0.8.1 (still in development)
      
        2019-03-17
      
    
    
    
      group_split/map/modify() in dplyr 0.8.1 (still in development)
      
        2019-03-15
      
    
    
    
      Anonymous Functions in R - Part 3: Introducing the 'anon' package
      
        2019-03-14
      
    
    
    
      Anonymous Functions in R - Part 2
      
        2019-03-13
      
    
    
    
      Anonymous Functions in R - Part 1
      
        2019-03-13
      
    
    
    
      image2xlsx package: Converting an image to an excel spreadsheet
      
        2019-03-09
      
    
    
    
      Custom axis breaks on facetted ggplot
      
        2019-03-07
      
    
    
    
      Converting an image to an excel spreadsheet
      
        2019-03-03
      
    
    
    
      object of type 'closure' is not(?) subsettable
      
        2019-02-12
      
    
    
    
      8 out of 10 cats does countdown - part 2
      
        2019-02-11
      
    
    
    
      8 out of 10 cats does countdown
      
        2019-02-04
      
    
    
    
      Interleaving vectors and matrices - part 3
      
        2019-01-31
      
    
    
    
      Interleaving vectors and matrices - part 2
      
        2019-01-30
      
    
    
    
      Interleaving vectors and matrices (part 1)
      
        2019-01-29
      
    
    
    
      Puzzle Solving: Dominosa
      
        2019-01-28
      
    
    
    
    2018
    
    
      split-apply-combine with `group_map`
      
        2018-12-31
      
    
    
    
      R packages - internal and external data
      
        2018-12-10
      
    
    
    
      phon - a package for rhymes etc
      
        2018-12-03
      
    
    
    
      grrr - a package for changing default function arguments
      
        2018-11-20
      
    
    
    
      ggthreed - 3d pie charts
      
        2018-11-13
      
    
    
    
      threed - drawing a cube in ggplot2
      
        2018-11-12
      
    
    
    
      Parsing a favicon with {minitypes}
      
        2018-11-06
      
    
    
    
      Minitypes - vector type conversion
      
        2018-11-06
      
    
    
    
      facet_inception()
      
        2018-10-31
      
    
    
    
      Creating fractals with ggplot2 and patchwork
      
        2018-10-30
      
    
    
    
      engroupify: A function to transform other functions to be aware of dplyr groups
      
        2018-10-11
      
    
    
    
      Writing a function which respects `dplyr::group_by()`
      
        2018-10-09
      
    
    
    
      Introducing the `memoisetools` package
      
        2018-10-08
      
    
    
    
      Using LZ4 and Zstandard to compress files with `saveRDS()`
      
        2018-10-02
      
    
    
    
      Memoisation
      
        2018-10-01
      
    
    
    
      Writing a nonogram solver in R
      
        2018-09-28
      
    
    
    
      Creating nonograms with 'nonogram' and 'magick' packages
      
        2018-09-27
      
    
    
    
      Nonograms in R - 'nonogram' package
      
        2018-09-26
      
    
    
    
      Memoise with object size limit
      
        2018-09-24
      
    
    
    
      The Zombie/Vampire Apocalypse - A use case for strict membership tests
      
        2018-09-21
      
    
    
    
      strict `case_when` - bugfix
      
        2018-09-20
      
    
    
    
      Find all sequences of a given length with the given sum
      
        2018-09-20
      
    
    
    
      Intersection of multiple vectors
      
        2018-09-17
      
    
    
    
      A stricter `%in%`
      
        2018-09-07
      
    
    
    
      strict `case_when`
      
        2018-09-06
      
    
    
    
      bits and bit reversal
      
        2018-09-04
      
    
    
    
      gganimate with sprites
      
        2018-08-13
      
    
    
    
      gganimate with bitmap fonts
      
        2018-08-12
      
    
    
    
      ggplot2 stat_summary problem
      
        2018-08-06
      
    
    
    
      Encoding and Rendering Grade 1 Braille
      
        2018-07-31
      
    
    
    
      Re-defining 'return()'
      
        2018-07-27
      
    
    
    
      pipe - rewriting nested function calls with pipes
      
        2018-07-27
      
    
    
    
      unpipe - rewriting an expression without the pipes
      
        2018-07-26
      
    
    
    
      Shortest unique prefix - it's a builtin function
      
        2018-07-24
      
    
    
    
      Shortest unique prefix - second attempt
      
        2018-07-24
      
    
    
    
      Shortest unique prefix
      
        2018-07-23
      
    
    
    
      Introducting the 'funcmath' package for creating plotmath expression
      
        2018-07-18
      
    
    
    
      Ikeda map (fractal)
      
        2018-07-09
      
    
    
    
      Barnsley Ferns (fractal)
      
        2018-07-07
      
    
    
    
      Hilbert Curves
      
        2018-07-06
      
    
    
    
      Fractals with matrices - sierpinski carpet
      
        2018-07-05
      
    
    
    
      Text fractals - sierpinski
      
        2018-07-04
      
    
    
    
      Plotmath fractals 2
      
        2018-07-03
      
    
    
    
      Plotmath fractals
      
        2018-07-02
      
    
    
    
      Benchmark mutate - vector, matrix, data.frame
      
        2018-05-12
      
    
    
    
      Challenge: Simultaneous parallel min() and which.min()
      
        2018-05-12
      
    
    
    
      Hi-res c64 images with Rstats 'r64' package
      
        2018-05-10
      
    
    
    
      Introducing the `tapir` package: Text-based Arbitrary Precision Integers in R
      
        2018-05-07
      
    
    
    
      Challenge: Adding Large Integers in R
      
        2018-05-04
      
    
    
    
      Finding names in R packages which could be domain names (using rvest and the tidyverse)
      
        2018-05-02
      
    
    
    
      `uint8` package for an unsigned 8bit integer type in R
      
        2018-04-29
      
    
    
    
      r64 package - a c64/6502 assembler
      
        2018-04-25
      
    
    
    
      Generating Executable ASCII art
      
        2018-04-12
      
    
    
    
      Changing the default arguments to a function
      
        2018-04-11
      
    
    
    
      Solving the 8 queens problem
      
        2018-04-10
      
    
    
    
      Finding a length n needle in a haystack
      
        2018-04-03
      
    
    
    
      Assert condition over a code block
      
        2018-03-23
      
    
    
    
      Assert condition over a code block
      
        2018-03-22
      
    
    
    
      Body modification part 5: Adding runtime check of function return value
      
        2018-03-21
      
    
    
    
      Body modification part 4: Adding runtime checks to an existing function
      
        2018-03-20
      
    
    
    
      Body modification part 3: Syntax for body modification/function wrapping
      
        2018-03-19
      
    
    
    
      Body modification part 2: Automatically creating type checks for a function
      
        2018-03-18
      
    
    
    
      Body modification: Injecting new content into a function
      
        2018-03-16
      
    
    
    
      Base R split has issues - Part 3 more idiosyncrasies
      
        2018-03-15
      
    
    
    
      geom_cat()
      
        2018-03-08
      
    
    
    
      `chop()`: A tidyverse-style `split()`
      
        2018-03-07
      
    
    
    
      `cleave_by()`: A tidyverse-style `split()`
      
        2018-03-04
      
    
    
    
      Base R split has issues - Part 2 idiosyncrasies
      
        2018-03-04
      
    
    
    
      Base R split has issues - Part 1 runtime
      
        2018-03-04
      
    
    
    
      Split-Apply-Combine: My search for a replacement for 'group_by + do'
      
        2018-03-03
      
    
    
    
      The 'ggplot2pipes' package
      
        2018-02-27
      
    
    
    
      Using ggplot with pipes
      
        2018-02-25
      
    
    
    
      Customing ggplots created within functions
      
        2018-02-24
      
    
    
    
      Overlapping lines
      
        2018-02-20
      
    
    
    
      Convex Hulls part 4
      
        2018-02-18
      
    
    
    
      Convex Hulls part 3
      
        2018-02-18
      
    
    
    
      convex hulls part 2
      
        2018-02-16
      
    
    
    
      chull()
      
        2018-02-15
      
    
    
    
      Evaluating R code from potentially malicious sources Part 4
      
        2018-02-13
      
    
    
    
      Part 3: Evaluating R code from potentially malicious sources
      
        2018-02-12
      
    
    
    
      Evaluating R code from potentially malicious sources part 2
      
        2018-02-11
      
    
    
    
      Evaluating R code from potentially malicious sources
      
        2018-02-10
      
    
    
    
      YAML vs jsonlite vs RJSONIO
      
        2018-02-07
      
    
    
    
      `blogdown` rss feed of full articles
      
        2018-02-07
      
    
    
    
      `dithr` package for error diffusion dithering in R
      
        2018-02-05
      
    
    
    
      Error Diffusion Dithering in R
      
        2018-02-04
      
    
    
    
      YAML vs JSON for saving human-readable R objects  (TLDR: Use YAML)
      
        2018-02-03