projects

👨‍💻 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.

📦 R Packages

These are all hosted on GitHub; none are on CRAN. Install with remotes::install_github(). The majority are concepts. You can find a refined selection of the (possibly?) more useful ones on my R-universe page. The source for the hex logos is my matt-dray/stickers repo.

# Name Hex What Links
1 {ActionSquirrel}   Play as a squirrel collectin 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
Blog 1
Blog 2
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} Create an R package with the minimum required content Source
Blog
21 {plunderplot}   Extract datapoints from PNG images of plots Source
22 {r2eng} Translate R expressions to English sentences Source
Site
Blog
Binder
23 {r.oguelike} A dungeon-crawling ASCII roguelike game for the R console Source
Site
Blog 1
Blog 2
Binder
24 {safar6}   Playable in-console text-based simulation of the Safari Zone from Pokémon Blue using {R6} OOP Source
Blog
25 {soccercolleagues}   Find footballers’ team mates and team-mates-in-common Source
Blog
26 {snorkel}   RStudio Addin to insert roxygen2 formatting into function documentation Source
Blog
27 {skyphone}   Get contributions data from the GitHub Skyline API (deprecated) and visualise/sonify it Source
Blog
28 {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
29 {tidyquiz}   A {learnr}/{shiny} hack to generate random quiz questions about {tidyverse} functions Source
App
Blog

✨ R Shiny apps

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
Blog 1
Blog 2
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

🕸 Websites

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

📽 Presentations

Most slides made with the {xaringan} package.

Title Where, when What Links
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

➕ Other

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
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
Blog 1
Blog 2
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
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