<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Package on rostrum.blog</title>
    <link>https://www.rostrum.blog/categories/package/</link>
    <description>Recent content in Package on rostrum.blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Tue, 01 Aug 2023 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://www.rostrum.blog/categories/package/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>One weird trick to {monetize} your R package</title>
      <link>https://www.rostrum.blog/2023/08/01/monetize/</link>
      <pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/08/01/monetize/</guid>
      <description>tl;dr The {monetize} R package gives you inspiration for monetising your R package. Developers rise up!
 Free as in free There’s one good reason why SAS, SPSS and Stata1 are such successful and beloved statistical tools: money.
For some reason, R remains free and open source. But what if Ihaka &amp;amp; Gentleman originally wanted users to be charged a literal (New Zealand) dollar2 every time they use the $ symbol to access an element from an object?</description>
    </item>
    
    <item>
      <title>Save high scores for your R game</title>
      <link>https://www.rostrum.blog/2023/07/15/hiscore/</link>
      <pubDate>Sat, 15 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/07/15/hiscore/</guid>
      <description>tl;dr You can save your high score in games made with R. See the package {hiscore} for a demo.
 Boot up I wrote recently about how R is a game engine and started a list of games written in R.
All good game engines should let you save a high score, right?
So I’ve done exactly this for a tiny concept package called {hiscore}1 that contains a simple game of luck</description>
    </item>
    
    <item>
      <title>Convert a Word table to Markdown</title>
      <link>https://www.rostrum.blog/2023/06/21/wordup-tables/</link>
      <pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/06/21/wordup-tables/</guid>
      <description>tl;dr I made a function that shouldn’t need to exist in an ideal world: it takes a copied Microsoft Word table and outputs a Markdown version (well, a Govspeak version).
 Govspeak when you’re spoken to I’ve written about three painful things recently:
Forcing data scientists to expose their tools so we can all use and learn from them. ‘Rectangularising’ tables scraped out of a Word document via the {officer} package.</description>
    </item>
    
    <item>
      <title>Automate {blogdown} to Quarto</title>
      <link>https://www.rostrum.blog/2023/05/07/bd2q/</link>
      <pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/05/07/bd2q/</guid>
      <description>gRaPhIc DeSiGn Is My PaSsIoN.  tl;dr I’ve written a quick R package, {bd2q}, to help me convert my {blogdown} blog to Quarto. Whether I’ll actually complete the conversion is another story.
 Upside blogdown It is destiny: no-one is ever completely happy with their blog.
This site was built five years ago1 with {blogdown}, which lets you write R Markdown files and have them knitted into a blog. I ignored the newer {distill} package2, but Quarto may be worth the switch.</description>
    </item>
    
    <item>
      <title>Wrapping PokéAPI with {trapinch}</title>
      <link>https://www.rostrum.blog/2023/02/02/trapinch/</link>
      <pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/02/02/trapinch/</guid>
      <description>tl;dr I’ve used the {httr2} R package to create {trapinch}, a package that wraps PokéAPI for fetching Pokémon data.
 Update
I had found a couple of older, non-{httr2} PokéAPI wrappers for R (see footnotes), but had somehow missed one that already uses {httr2}: see Ash Baldry’s {pokeapi} package, which he wrote months ago!
  {httr} me baby one more time The {httr2} package lets you talk to the internet.</description>
    </item>
    
    <item>
      <title>.-././--/---/.-./.../.</title>
      <link>https://www.rostrum.blog/2023/01/06/remorse/</link>
      <pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/01/06/remorse/</guid>
      <description>You may not believe it, but I am releasing this art under CC0. tl;dr {remorse} is a tiny R package that converts text to Morse Code to audio.
 Beat a dead morse In the last post I mentioned {sonify} for making R do little audible beeps and boops.
It reminded me of one (of many) unwritten micro-projects I’ve got kicking around in my brain: obviously you could use {sonify} to communicate Morse Code.</description>
    </item>
    
    <item>
      <title>Ding! Sound effects in {r.oguelike}</title>
      <link>https://www.rostrum.blog/2023/01/04/rogue-sfx/</link>
      <pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/01/04/rogue-sfx/</guid>
      <description>new wr — r.oguelike any% tenkeyless noglitch tl;dr The {r.oguelike} package—a toy roguelike microadventure for the R console—now has little sound effects thanks to {sonify}. Pew pew!
 The adventure continues? Apparently this is part 5 of the {r.oguelike} devlog. You can read earlier posts about:
 its inception creating simple procedural dungeons making an enemy chase the player 3D dungeons and continuous keypress inputs  Alas, this is also probably the last installment.</description>
    </item>
    
    <item>
      <title>Animate sprites in R with {pixeltrix}</title>
      <link>https://www.rostrum.blog/2022/12/11/pixeltrix-animate/</link>
      <pubDate>Sun, 11 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/12/11/pixeltrix-animate/</guid>
      <description>tl;dr I’ve updated the {pixeltrix} package so you can create animated sprite gifs with a simple, interactive pixel editor from within R’s plot window.
 Pix all the right boxes The {pixeltrix} package—which I’ve written about before—lets you open an interactive R plot that you can click to turn ‘pixels’ on and off.
I created it for one purpose: to quickly create simple, blocky sprites for my {tamRgo} package, which lets you keep a persistent cyberpet on your computer (yes, really).</description>
    </item>
    
    <item>
      <title>Tamagotchi in R?</title>
      <link>https://www.rostrum.blog/2022/11/13/tamrgo/</link>
      <pubDate>Sun, 13 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/11/13/tamrgo/</guid>
      <description>Hex logo: evolution line of a {tamRgo} digital pet (species Y, ‘hat guy’).  tl;dr I’ve written the concept R package {tamRgo} to simulate a persistent digital pet in your R console and I think it’s pretty neat.
 Had an oeuf? R is a game engine1. Don’t @ me2.
Turns out that R can keep a ‘save state’: developers can write a persistent file to the platform-independent path on a user’s machine resolved by tools::R_user_dir()3.</description>
    </item>
    
    <item>
      <title>Interactive pixel art in R with {pixeltrix}</title>
      <link>https://www.rostrum.blog/2022/09/24/pixeltrix/</link>
      <pubDate>Sat, 24 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/09/24/pixeltrix/</guid>
      <description>tl;dr I’ve written {pixeltrix}, an R package that lets you select ‘pixels’ interactively from a plot window and returns your final image as a matrix. You could use it to design sprites, for example.
 Pixel perfect I’ve written before about creating very simple pixel art in R. To create a sprite of Link from The Legend of Zelda I had to write out by hand a vector that encoded its pixel values.</description>
    </item>
    
    <item>
      <title>You are a halfling, trying to harvest {potato}</title>
      <link>https://www.rostrum.blog/2022/09/13/potato/</link>
      <pubDate>Tue, 13 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/09/13/potato/</guid>
      <description>tl;dr Play an interactive version of ‘Potato’—a one-page halfling-themed role-playing game (RPG) by Oliver Darkshire (Twitter, Patreon)—in your R console with the {potato} package.
 Potato? I’ve recently put together a GitHub repo to collect together a bunch of neat games that you can play. The twist? They were built using R.
Yes, R: ‘a FrEe SoFtWaRe EnViRoNmEnT fOr StAtIsTiCaL cOmPuTiNg AnD gRaPhIcS’.
I think R is best suited to either text-based user-input games on the R console, or via a more dedicated interface, like Shiny.</description>
    </item>
    
    <item>
      <title>EARL 22: {a11ytables} for better spreadsheets</title>
      <link>https://www.rostrum.blog/2022/09/07/earl22/</link>
      <pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/09/07/earl22/</guid>
      <description>Please don’t sue me for my fan art, Microsoft.  tl;dr I presented some slides at the EARL 2022 conference about {a11ytables}: an R package that helps automate the production of reproducible and accessible spreadsheets, with a focus on publication of government statistics.
 Counting sheets The UK government publishes a lot of spreadsheets that contain statistical tables. Compared to each other—and to themselves over time—these files are often:
 inconsistent in structure (e.</description>
    </item>
    
    <item>
      <title>Two RStudio Addins: {quartostamp} and {snorkel}</title>
      <link>https://www.rostrum.blog/2022/08/11/quartostamp-snorkel/</link>
      <pubDate>Thu, 11 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/08/11/quartostamp-snorkel/</guid>
      <description>tl;dr I made a couple of packages that contain RStudio Addins: {quartostamp} inserts little divs and classes into your Quarto documents, while {snorkel} inserts Rd tags into your {roxygen2} function documentation.
 Al Addin RStudio Addins let you access R functions interactively at the click of a button (or with a keyboard shortcut, or via the RStudio command palette). I particularly like them for easy sharing of insertable pre-written code.</description>
    </item>
    
    <item>
      <title>An isometric dungeon chase in R</title>
      <link>https://www.rostrum.blog/2022/06/28/isometric-dungeon/</link>
      <pubDate>Tue, 28 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/06/28/isometric-dungeon/</guid>
      <description>tl;dr I made an interactive isometric-dungeon demo in R, thanks to {r.oguelike} for dungeon building and mikefc’s {isocubes} for drawing isometric cube graphics and {eventloop} for continuous keypress inputs.
 A new dimension Mike (AKA mikefc, AKA coolbutuseless) is well known for off-label R creations that desecrate the assumption that ‘R is a language for statistical computing’.
Mike revealed the {isocubes} package recently, which lets you print objects made of isometric cubes to a graphics device.</description>
    </item>
    
    <item>
      <title>Automated pathfinding in {r.oguelike}</title>
      <link>https://www.rostrum.blog/2022/06/10/basic-search/</link>
      <pubDate>Fri, 10 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/06/10/basic-search/</guid>
      <description>The enemy E chases the player @ who collects gold $ and and an apple a  tl;dr I’ve experimented with simple breadth-first search for {r.oguelike}, a work-in-progress game-in-a-package for R. This means enemies can pathfind and chase down the player character.
 Hunting the hunter I’ve written before about the inception of {r.oguelike}, a concept for a roguelike game written in R, along with a simple method for creating procedural tile-based cave-like dungeons.</description>
    </item>
    
    <item>
      <title>Simple procedural dungeons in R</title>
      <link>https://www.rostrum.blog/2022/05/01/dungeon/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/05/01/dungeon/</guid>
      <description>Three iterations to expand four randomly-placed floor tiles into a cavern.  tl;dr I wrote a (very!) basic procedure to generate randomised ASCII-character tile-based dungeons for {r.oguelike}, an in-development roguelike-game-in-a-package for R.
 Generate to accumulate I wrote recently about the {r.oguelike} R package, which contains the beginnings of a roguelike game written entirely in R.
 A key element of roguelike games is that the dungeons should be procedurally generated1 so that the player gets a different one each time they play.</description>
    </item>
    
    <item>
      <title>Turn the {tide} on R&#39;s secret spreadsheet editor</title>
      <link>https://www.rostrum.blog/2022/04/27/tide/</link>
      <pubDate>Wed, 27 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/04/27/tide/</guid>
      <description>tl;dr R has an interactive spreadsheet editor for dataframes that you can access with edit(). I made the function tide::tide() to generate automatically some code that will reproduce the changes you made manually with edit().
 Edit R’s edit() function invokes a text editor so you can amend an R object.1
Something special happens If you edit() a data.frame object: a somewhat-janky interactive spreadsheet-like editor appears in a new window.</description>
    </item>
    
    <item>
      <title>Building a {r.oguelike} in R</title>
      <link>https://www.rostrum.blog/2022/04/25/r.oguelike-dev/</link>
      <pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/04/25/r.oguelike-dev/</guid>
      <description>tl;dr I started writing a roguelike game in an R package called {r.oguelike}.
 Rogue… like? There’s loads of video game genres: beat ’em up, platformer, rhythm, MMORPG, sports, puzzle. Have you heard of roguelikes?
The name is literal: they’re games that play like Rogue, a legendary dungeon-explorer from 1980 that set the bar for role-playing games.
Perhaps most recognisably, it used ASCII text as ‘graphics’: the player controls a character denoted by the at symbol (@), while floor tiles are made of periods (.</description>
    </item>
    
    <item>
      <title>Add in an RStudio Addin to add in backticks</title>
      <link>https://www.rostrum.blog/2022/02/19/backtick/</link>
      <pubDate>Sat, 19 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/02/19/backtick/</guid>
      <description>tl;dr I wrote a tiny R package called {backtick}, which contains an RStudio Addin with a handful of functions for inserting backticks into your R scripts and R Markdown documents (yes, really).
 Plus one RStudio Addins let you select an R function from a dropdown menu in the RStudio IDE. They’re often functions that you don’t need in your executed script, but can make your life easier by performing some kind of supportive action.</description>
    </item>
    
    <item>
      <title>Introduce me to your {soccercolleagues}</title>
      <link>https://www.rostrum.blog/2022/02/04/soccercolleagues/</link>
      <pubDate>Fri, 04 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/02/04/soccercolleagues/</guid>
      <description>Lee Bowyer and Kieran Dyer: ‘team mates’ (BBC via Giphy)  tl;dr I made a quick R package called {soccercolleagues} that for a given player, or players, lets you (a) find all their former team mates in common and (b) sample from them for quiz-based purposes.
 Lord of the Ings Quiz question:
 Which current Premier League footballer has been team mates with each of the following: Kevin Phillips, Mark Viduka, Dejan Lovren, Danny Ings and Nicky Butt?</description>
    </item>
    
    <item>
      <title>Your workout route (in three dimensions!)</title>
      <link>https://www.rostrum.blog/2021/12/30/gpx3d/</link>
      <pubDate>Thu, 30 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/12/30/gpx3d/</guid>
      <description>tl;dr You can use R to extract coordinate and elevation data from a GPX file and then plot it as an interactive 3D object. I put some functions in the tiny R package {gpx3d} to help do this.
 Elevate to accumulate I’ve seen recently on Twitter some people using Marcus Volz’s {strava} R package to create pleasing visualisations of their running routes as small-multiples.</description>
    </item>
    
    <item>
      <title>{ActionSquirrel}: a game in the R console</title>
      <link>https://www.rostrum.blog/2021/10/03/squirrel/</link>
      <pubDate>Sun, 03 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/10/03/squirrel/</guid>
      <description>tl;dr I created the {ActionSquirrel} package. It contains an {R6}-powered playable game for the R console, which includes images (well, emoji) and sounds (thanks to the {sonify} package).
 GameRs I’ve written before about the idea of games that you can play in R. For example, I replicated a text-based version of Pokemon Blue’s Safari Zone. This was made possible by using the {R6} package by Winston Chang, which provides an implementation of object-oriented programming (OOP) in R.</description>
    </item>
    
    <item>
      <title>Auto-label closing parentheses in RStudio</title>
      <link>https://www.rostrum.blog/2021/08/31/add-biscuits/</link>
      <pubDate>Tue, 31 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/08/31/add-biscuits/</guid>
      <description>tl;dr I wrote a novelty R function that inserts comments after closing parentheses with the names of the functions they belong to. (These are called biscuits, apparently.) It’s available as an RStudio Addin from the {blogsnip} package.
 Matryoshka functions Shiny apps can involve a lot of nested functions in the UI, which can make them difficult to handle.
Sometimes I comment after a closing parenthesis (‘paren’) with the name of the function that it’s closing, which makes it easier to match the pairs.</description>
    </item>
    
    <item>
      <title>Adding a Shiny app to {dehex}</title>
      <link>https://www.rostrum.blog/2021/08/27/dehex-app/</link>
      <pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/08/27/dehex-app/</guid>
      <description>Use the {dehex} app to generate a random hex code and learn how to interpret it by eye.  tl;dr The {dehex} package now contains a Shiny app that you can use to walk through the process of reading a colour hex code, as per David DeSandro’s method.
 {dehex}cellent In the last post I introduced the R package {dehex}. Its purpose is to help me (you?) look at a colour hex code and be able to ‘read’ roughly what colour it is without resorting to a lookup.</description>
    </item>
    
    <item>
      <title>Read a hex colour code with {dehex}</title>
      <link>https://www.rostrum.blog/2021/08/10/dehex/</link>
      <pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/08/10/dehex/</guid>
      <description>tl;dr I wrote an R package, {dehex}, that helps you learn to ‘read’ a hex colour code by eye according to David DeSandro’s method. Check out his mindblowing talk.
 Hue are you? Hex codes are used in computing to encode a colour as a succinct six-digit alphanumeric string, like #F4D82A.
These codes are written in hexadecimal (hence ‘hex’): they can take the characters 0 to 9 and A to F, which encodes 16 possible values.</description>
    </item>
    
    <item>
      <title>Decay is inevitable, accept {linkrot}?</title>
      <link>https://www.rostrum.blog/2021/07/10/linkrot/</link>
      <pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/07/10/linkrot/</guid>
      <description>tl;dr I wrote a little function to check web pages for link rot and put it in the tiny R package {linkrot} in case you want to use or improve it.
 Page not found You’ve clicked a link before and been taken somewhere you weren’t expecting. Sometimes it’s because you’ve been rickrolled,1 sure, but content on the internet is constantly being moved or removed and links break all the time.</description>
    </item>
    
    <item>
      <title>Generate an {emojiscape}</title>
      <link>https://www.rostrum.blog/2021/06/26/emojiscape/</link>
      <pubDate>Sat, 26 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/06/26/emojiscape/</guid>
      <description>tl;dr You can print a little emoji scene to your R console with the {emojiscape} package.
 Really? Regular readers will know that this blog is where I implement whimsical R daydreams. Today is no exception: I’ve made a tiny package to print a little randomised emoji scene to my console.
Why? I’ve seen people make cute emoji-based bots, which I’ve been interested in after making the @londonmapbot Twitter bot (post, source, BotWiki).</description>
    </item>
    
    <item>
      <title>Make the simplest R package with {pico}</title>
      <link>https://www.rostrum.blog/2021/04/18/pico-pkg/</link>
      <pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/04/18/pico-pkg/</guid>
      <description>tl;dr I made {pico}, an R package for creating tiny R packages with the absolute minimum structure and content. The goal: to demystify package making.
 Function in a haystack I saw a @WeAreRLadies tweet from last week’s curator, @ShreyaLouis. The gist was ‘how can you be more organised when recalling and reusing your own R code?’
See the thread for ideas, but I had the same thought as Fabio: create a personal package of your frequently-used functions so you can invoke them whenever you want.</description>
    </item>
    
    <item>
      <title>Convert R to cron to English with {dialga}</title>
      <link>https://www.rostrum.blog/2021/04/10/dialga/</link>
      <pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/04/10/dialga/</guid>
      <description>tl;dr I made the small proof-of-concept R package {dialga} to help build and interpret standard cron expressions using familiar R syntax. r2cron() converts R to cron; cron2eng() converts cron to English.
 Cronwhat? You can schedule scripts to run at specific times using software on your computer called ‘cron’. You can set up ‘cron jobs’ to specify what needs to be run. A key part of the recipe is a short cron string that provides instructions about when to run it.</description>
    </item>
    
    <item>
      <title>#GithubSkyline but hear me out</title>
      <link>https://www.rostrum.blog/2021/02/21/skyphone/</link>
      <pubDate>Sun, 21 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/02/21/skyphone/</guid>
      <description>My skyline clearly has a Central Business District with development in the suburbs.   Note
The GitHub Skyline API–on which the {skyphone} package depends–stopped responding (i.e. it 404s) soon after this post was published. I may fix {skyphone} in future to work via {gh} instead; feel free to contribute.
 tl;dr I made the R package {skyphone} to get GitHub contributions data from GitHub Skyline and sonify it.
 Reach for the skyline Skyline is an online curio from GitHub that lets you input a user’s name and get a 3D rendering of that user’s contributions to the platform.</description>
    </item>
    
    <item>
      <title>Play Pokémon&#39;s Safari Zone in R</title>
      <link>https://www.rostrum.blog/2021/01/04/safar6/</link>
      <pubDate>Mon, 04 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/01/04/safar6/</guid>
      <description>An original Nintendo Game Boy playing Pokémon… if you squint.  tl;dr I created the R package {safar6}, which contains an R6-class object to simulate a simplified, text-based version of the Safari Zone sub-area from Pokémon Blue.
I also made the ‘gamelad’ RStudio theme to mimic the screen of a pukey-green original Game Boy. Pair with a blocky monospace font like VT323 for that 8-bit experience.1
 Kangaskhan you believe it?</description>
    </item>
    
    <item>
      <title>Accessible colour contrasts with {coloratio}</title>
      <link>https://www.rostrum.blog/2020/12/30/coloratio/</link>
      <pubDate>Wed, 30 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/12/30/coloratio/</guid>
      <description>This blog’s theme: insufficient contrast!  tl;dr I made a small R package called {coloratio} to evaluate colour-contrast ratios for accessibility. Then I found out that {savonliquide} already exists to do this.
 Accessible charts The UK government’s website, GOV.UK, was developed with user needs and accessibility in mind. I’ve been using {ggplot2} to recreate the simple, accessible chart styles suggested for use on GOV.UK by the Government Statistical Service.</description>
    </item>
    
    <item>
      <title>Translate R to English with {r2eng}</title>
      <link>https://www.rostrum.blog/2020/11/14/hello-r2eng/</link>
      <pubDate>Sat, 14 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/11/14/hello-r2eng/</guid>
      <description>tl;dr I created the work-in-progress {r2eng} package (source, site) to help translate R expressions to speakable English. Inspired by Amelia McNamara and with a huge amount of help from Chung-hong Chan.
 Communication is hard Amelia McNamara (site, Twitter) gave a talk at the useR! 2020 conference called ‘Speaking R’. Watch the video on YouTube, or take a look at the slides.
To summarise greatly: R code should be speakable so that we can teach, learn and communicate with minimal friction.</description>
    </item>
    
    <item>
      <title>{units} of uncleaned herring</title>
      <link>https://www.rostrum.blog/2020/09/12/herring-units/</link>
      <pubDate>Sat, 12 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/09/12/herring-units/</guid>
      <description>The hex sticker is better than the package.  tl;dr I made the tiny R package {cran} to convert volumes to an antiquated measurement of fish. Why? To test out the {units} package and to resolve a joke about the Comprehensive R Archive Network (CRAN).
 {units} The {units} package by Edzer Pebesma, Thomas Mailund and James Hiebert (site, source, R Journal) helps you set and create units, convert between them and raise an error where that isn’t possible.</description>
    </item>
    
    <item>
      <title>Take a {ghdump} to download GitHub repos</title>
      <link>https://www.rostrum.blog/2020/06/14/ghdump/</link>
      <pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/06/14/ghdump/</guid>
      <description>My garbage GitHub repos being dumped onto my local machine (via openclipart.org, CC0 1.0)  tl;dr Run ghd_copy() from the {ghdump} package to either clone or download all the GitHub repositories for a given user. Intended for archival purposes or setting up a new computer.
The package comes with no guarantees and will likely be in a perpetual work-in-progress state. Please submit issues or pull requests.
 Clone army Situation:</description>
    </item>
    
    <item>
      <title>Make a README badge with {badgr}</title>
      <link>https://www.rostrum.blog/2020/05/08/readme-badge/</link>
      <pubDate>Fri, 08 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/05/08/readme-badge/</guid>
      <description>{badgr} is definitely a bodge (CBeebies via Giphy)  ℹ️ Note
Somehow I missed the existence of the {badger} package by Guangchuang Yu. It contains functions for several pre-baked badge types, plus badge_custom(). Download it from CRAN.
 tl;dr Sometimes a post on this blog is related to some code in a GitHub repository. I wanted to create a badge to link from that repo to the relevant post.</description>
    </item>
    
    <item>
      <title>Handle London travel data with {oystr}</title>
      <link>https://www.rostrum.blog/2019/12/23/oystr/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/12/23/oystr/</guid>
      <description>tl;dr  Problem: I wanted to analyse my Transport for London (TfL) travel data Solution: I came up with the R package name {oystr} and a hex sticker design Practical solution: I actually wrote the package Self-flagellation: it has zero dependencies Further problem: TfL won’t give me information I need to complete it properly Result: blog it and move on Revelation: I’ve spent more than 53 days on TfL trains since Autumn 2014 😱   Clam-ouring for a package Transport for London (TfL) operates the travel system in London.</description>
    </item>
    
    <item>
      <title>{altcheckr}: check image alt text from R</title>
      <link>https://www.rostrum.blog/2019/12/08/altcheckr/</link>
      <pubDate>Sun, 08 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/12/08/altcheckr/</guid>
      <description>tl;dr I’ve made a small R package called {altcheckr} that checks the accessibility of images on web pages. It has functions that (1) scrape attributes from HTML  elements on a web page and (2) apply simple rules to indicate the suitability of the alt text provided. To use:
remotes::install_github(&amp;quot;matt-dray/altcheckr&amp;quot;) images &amp;lt;- alt_get(&amp;quot;https://www.bbc.co.uk/news&amp;quot;) alt_check(images) I’m not an expert and the package has not been user tested.
 Accessibility A web site is accessible if everyone can engage with its content.</description>
    </item>
    
    <item>
      <title>Build an R package with {usethis}</title>
      <link>https://www.rostrum.blog/2019/11/01/usethis/</link>
      <pubDate>Fri, 01 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/11/01/usethis/</guid>
      <description>Ossie, a Cabinet Office cat (via @cabinetofficeuk)  tl;dr  I gave a talk about creating an R package with helper functions from the {usethis} package In the session I created a new package from scratch called {cabinet} for identifying the cats that live in the UK Government’s Cabinet Office See the slides in a dedicated window or view their source See the {cabinet} package source and its website Jump to a list of other materials   Coffee packaging I gave a talk at a Cabinet Office Coffee &amp;amp; Coding session about building R packages from scratch.</description>
    </item>
    
    <item>
      <title>{blogsnip}: an RStudio addin package</title>
      <link>https://www.rostrum.blog/2019/10/22/blogsnip/</link>
      <pubDate>Tue, 22 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/10/22/blogsnip/</guid>
      <description>Inserting a details block with the {blogsnip} addin  tl;dr On my commute home I made {blogsnip}: a tiny package of RStudio addins that add snippets of R code to help me write blog posts.
Install with:
install.packages(&amp;quot;remotes&amp;quot;) remotes::install_github(&amp;quot;matt-dray/blogsnip&amp;quot;)  The problem I’m lazy.
There’s some bits of code I often want to put in my blog posts (written in R Markdown) but I can’t remember them.
In particular:
 an expandable ‘details’ section1, which sometimes contains R session information and the date of the post’s last update (see examples throughout this previous post) a way to add an image with a caption and alt text that differ (like the gif at the top of this post), something that makes the images more accessible for users of screen readers, for example a link that opens in a new tab, rather than in the tab where you’re reading a post (as per this tweet by Albert Y Kim)  Originally I stored them in a GitHub Gist, but this is sub-optimal: the internet connection on my commute can be patchy.</description>
    </item>
    
    <item>
      <title>Make a {brickr} soccer player</title>
      <link>https://www.rostrum.blog/2019/05/31/brickr-soccer/</link>
      <pubDate>Fri, 31 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/05/31/brickr-soccer/</guid>
      <description>Virtual Lego {brickr} is a fun package by Ryan Timpe that lets you build 2D mosaics and 3D models with Lego-like virtual bricks,1 with a little help from Tyler Morgan Wall’s {rayshader} package.
Build 3D LEGO models &amp;amp; mosaics in #rstats! {brickr} is now on GitHub. More examples, How-To&#39;s, and vignettes coming soon. Can&#39;t wait to see what you all build! https://t.co/vBK0A70PTl pic.twitter.com/5kXRGta4jx — Ryan Timpe 📊 (@ryantimpe) 15 March 2019   You can get started with the brickr toybox, which lets you arrange bricks in a spreadsheet that {brickr} can turn into a 3D model.</description>
    </item>
    
    <item>
      <title>Package a {xaringan} template</title>
      <link>https://www.rostrum.blog/2019/05/24/xaringan-template/</link>
      <pubDate>Fri, 24 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/05/24/xaringan-template/</guid>
      <description>A remarkable ninja The {xaringan} package by Yihui Xie implements remark.js1 in R Markdown so you can create exciting presentations that contain reproducible R content.2
Yihui has encouraged people to submit styles—like the RLadies theme—to enrich {xaringan}.
This post is about a specific theme I recreated for {xaringan} and shared in the {gdstheme} package along with an R Markdown template.
Click on the slides embedded below and cycle through with your arrow keys, or you can open them fullscreen in a dedicated browser tab.</description>
    </item>
    
    <item>
      <title>What’s your Hadley Number?</title>
      <link>https://www.rostrum.blog/2019/02/27/hadley-number/</link>
      <pubDate>Wed, 27 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/02/27/hadley-number/</guid>
      <description>A Bacon Number of zero and a Bacon Number of one (via Giphy)  tl;dr I made a Shiny app to demonstrate the Six Degrees of Kevin Bacon. Except it’s for CRAN authors. And Hadley Wickham is Kevin Bacon.
To help do this, I made the little package {kevinbacran} (as in ‘Kevin Bacon’ + ‘CRAN’, lol) to find the network separation between any two authors on CRAN.
 Six degrees People are connected to each other in networks.</description>
    </item>
    
  </channel>
</rss>