đ¨âđť A list of public GitHub-based projects that I, Matt Dray, have worked on for fun, mostly. Most things are written about in my blog: rostrum.blog.
These are all hosted on GitHub; none are on CRAN. Install with
remotes::install_github()
. The majority are concepts with no
guarantees. The source for the hex logos is my matt-dray/stickers
repo.
# | Name | Hex | What | Links |
---|---|---|---|---|
1 | {ActionSquirrel} | Â | Play as a squirrel collecting nuts and avoiding an owl in an audiovisual tile-based game in your R console, thanks to {R6} | Source Blog |
2 | {altcheckr} | ![]() |
Accessibility checker: scrape websites and assess image alt-text | Source Site Blog |
3 | {backtick} | Â | RStudio Addin to insert backtick constructions (maybe your keyboard doesnât have a backtick key, or itâs mapped to do something else) | Source Blog |
4 | {badgr} | Â | Generate a customised README metadata badge from shields.io | Source Site Blog |
5 | {blogsnip} | Â | RStudio Addin for HTML and markdown constructions to make it easier for me to write {blogdown} content | Source Site Blog |
6 | {cabinet} | Â | Demo to teach package generation with {usethis} | Source Site Blog Slides |
7 | {coloratio} | Â | Check the contrast ratio of two colours for accessibility | Source Blog |
8 | {cran} | ![]() |
An extension for the {units} package so you can load an antiquated unit of uncleaned herrings (a âcranâ) | Source Site Blog |
9 | {dehex} | ![]() |
Learn how to read a colour hex code | Source Blogs |
10 | {dialga} | ![]() |
Convert R expressions to cron strings, convert cron strings to English | Source Blog |
11 | {dray} | Â | A small handful of miscellaneous personal functions | Source Blog |
12 | {emojiscape} | Â | Generate a small emoji scene in your console | Source Blog |
13 | {gdstheme} | Â | {xaringan} theme and template for the Government Digital Service, in package form | Source Site Blog Slides |
14 | {ghdump} | ![]() |
Download/clone all GitHub repos for a given user | Source Site Blog |
15 | {gpx3d} | Â | Extract geospatial data from a GPX file and plot it as an interactive 3D object | Source Blog |
16 | {hokey} | Â | Three simple games in the terminal to demo the {keypress} package | Source Blog |
17 | {kevinbacran} | ![]() |
Calculate graph distances for CRAN authors, ĂĄ la âthe six degrees of Kevin Baconâ | Source Site Blog App |
18 | {linkrot} | Â | Scrape a webpage to detect âlink rotâ (when links to a web page break because itâs been taken down or moved) | Source Blog |
19 | {oystr} | ![]() |
Work with data from Transport for Londonâs Oyster card payment system | Source Site Blog |
20 | {pico} | ![]() |
A package top help create R packages that have the minimum required content | Source Blog |
21 | {pixeltrix} |  | Click âpixelsâ in an interactive plot window and get your final image as a matrix (e.g. for pixel art, sprites) | Source Blog |
22 | {plunderplot} | Â | Extract datapoints from PNG images of plots | Source |
23 | {potato} | Â | Play in your R console an interactive version of âPotatoâ, a one-page role-playing game (RPG) by Oliver Darkshire | Source Blog |
24 | {quartostamp} | ![]() |
RStudio Addin to insert divs, classes, etc, to Quarto documents | Source Site |
25 | {r2eng} | ![]() |
Translate R expressions to English sentences | Source Site Blog Binder |
26 | {r.oguelike} | ![]() |
A dungeon-crawling ASCII roguelike game for the R console | Source Site Blogs Binder |
27 | {remorse} | Â | Text to Morse Code to audio | Source Blog |
28 | {safar6} | Â | Playable in-console text-based simulation of the Safari Zone from PokĂŠmon Blue using {R6} OOP | Source Blog |
29 | {soccercolleagues} | Â | Find footballersâ team mates and team-mates-in-common | Source Blog |
30 | {snorkel} | Â | RStudio Addin to insert roxygen2 formatting into function documentation | Source Site Blog |
31 | {skyphone} | Â | Get contributions data from the GitHub Skyline API (deprecated) and visualise/sonify it | Source Blog |
32 | {tide} | Â | Edit a data.frame with Râs inbuilt spreadsheet-like data editor and get some code to reproduce the manual changes you made | Source Blog |
33 | {tamRgo} | ![]() |
Tamagotchi-like digital pets in the R console that persist between sessions | Source Site Blog |
34 | {tidyquiz} | Â | A {learnr}/{shiny} hack to generate random quiz questions about {tidyverse} functions | Source App Blog |
35 | {trapinch} | ![]() |
Wrapper for the PokĂŠAPI API using {httr2} | Source Blog |
Apps hosted on shinyapps.io.
Name | What | Links |
---|---|---|
Animal Crossing Popularity Contest | Swipe left or right on villagers from Nintendoâs Animal Crossing New Horizons, Tinder-style | App Source Blogs |
LeWitt ReMix | An app to remix âartâ in the style of Sol LeWitt for #RecreationThursday | App Source Blog |
Randoflag | Small app to provide a new-browser-tab flag challenge | App Source Blog |
Tidyquiz | A {learnr}/{shiny} hack to generate random quiz questions about {tidyverse} functions | App Source Blog |
Whatâs your Hadley number? | Visual demo of my {kevinbacran} package: find shortest paths to Hadley Wickham by CRAN authorship | App Source Blog |
Apps on GitHub, but not hosted.
Name | What | Links |
---|---|---|
Deer-vehicle collisions in Scotland | Explore open data on deer strikes in Scotland, 2000 to 2017 | Source Blog |
How many footballers at World Cup 2018 were younger than you? | Realise itâs too late for you to become a professional footballer | Source Blog |
Mission Across IOW | Investigate the easiest route to cross the Isle of Wight on foot in a straight line | Source Blog |
Read a colour hex code | Learn how to interpret the colour encoded in a hex code with {dehex} | Source Blog |
Pages written with R Markdown. All source code on GitHub.
Name | Type | What | Served via | Links |
---|---|---|---|---|
matt-dray.com | Personal site made with {postcards} | A single-page launchpad for links to Twitter, GitHub, etc | Netlify with CI | Source Blog |
rostrum.blog | Blog made with {blogdown} | Fun and learning with R: posting tutorials, tips, data exploration, visualisations | Netlify with CI | Source About |
faxcrayon.art | Single page RMarkdown with {bs4cards} | A gallery of recreations/remixes/original art | GitHub Pages | Source Blog |
Selected presentations. Slides made with the {xaringan} package or Quarto.
Title | Where, when | What | Links |
---|---|---|---|
Fun and Learning. In a Dungeon! | Home Office Data Science Conference, London, March 2023 | Learning to code is more fun when youâre doing something silly? | Â |
Create reproducible and accessible spreadsheets with {a11ytables} | EARL 2022 conference, London, Sep 2022; Scottish Government, remote, Nov 2022; NHS-R, remote, Jan 2023 | Generate best-practice spreadsheets with help from the {a11ytables} R package | Video 1 Video 2 Slides Source Blog |
Make a Twitter bot with {rtweet} and GitHub Actions | LondonR, London, Feb 2022 | Use free tools to create a simple automated Twitter bot that tweets on schedule, using londonmapbot as an example | Video Slides Source Blog |
Hit your reproducibility {targets} | Data Science Festival, UK Government, Sep 2020 | Introduction and demo of the {targets} package for workflow reproducibility in R | Slides Source Blog |
{drake} for reproducible workflows | Bionformatics London Meetup, London, Jan 2020 | Introduction and demo of the {drake} package for workflow reproducibility in R | Slides Source Blog |
Reproducibility in R: three things | Data Science Week, Department for Education, Jan 2020 | Advice on making your R projects more reproducible | Slides Source Blog |
Easier R packages with {usethis} | Coffee & Coding, UK Government, London, Nov 2019 | How to build an R package from scratch with the {usethis} package | Slides Source Blog |
Can {drake} RAP? | Coffee & Coding, UK Government, London, Oct 2019 | Introduction and demo of the {drake} package for workflows as part of a Reproducible Analytical Pipeline (RAP) | Slides Blog Materials |
{crosstalk}: Shiny-like without Shiny | EARL 2018 conference, London, Sep 2018 | Intro and demo of the {crosstalk} package to allow HTML widgets to update dynamically without {shiny} | Slides Source Blog Materials Memes |
Intro to R Markdown | Department for Education, London, May 2018 | Quick introduction to R Markdown for beginners | Slides Source Blog |
These are some other bits and bobs that seem worthwhile to mention. In general you can visit my blog, rostrum.blog, for other stuff that Iâve dabbled with but arenât mentioned specifically on this page.
Name | What | Links |
---|---|---|
Awesome R games | A list of games made with R (note: not an official Awesome List) | Source |
gamelad | An RStudio theme to mimic the original GameBoyâs green palette (intended for use with my {safar6} package) | Source Blog |
Hastings Half maps | A page of interactive maps of the Hastings Half-Marathon route | Site Source |
Hex stickers | Hexagonal sticker designs, mostly for R packages | Source |
Dataviz recreations | Attempts to recreate/remix data visualisations and art (see also faxcrayon.art) | Source Blogs |
londonmapbot | A Twitter bot that tweets a MapBox satellite image of a random part of London, made with {rtweet} and GitHub Actions | Twitter Source Blog 1 Blog 2 Blog 3 Blog 4 Blog 5 |
Emojis to SVG | Script to fetch SoftBankâs 1997 emoji set (the first-ever?) and convert them to SVG format | Source Blog |
Tidyswirl | A work-in-progress introduction to the tidyverse using {swirl} for learning R from within R itself | Source Blog |
Try R v4.1 | RStudio instance in the browser with R version 4.1 so you can try out the new base pipe (\|> ) and lambda (\() ) syntax |
Source Binder |