Seventeen Minutes From Tweet To Package

Earlier today, @noamross posted to Twitter:

The answer was a 1:1 “file upload” curl to httr translation:

  url = "",
  encode = "multipart",
  body = list(file = httr::upload_file("/some/path/to/file")),

but I wanted to do more than that since Noam took 20 minutes out his day this week (with no advance warning) to speak to my intro-to-stats class about his work and R.

The Twitter request was (ultimately) a question on how to use R to post content to They have a really simple API, and the timespan from Noam’s request to the initial commit of a fully functional package was roughly 17 minutes. The end product included the ability to post files, strings and R data (something that seemed like a good thing to add).

Not too long after came a v0.1.0 release complete with tests and passing CRAN checks on all platforms.

Noam also suggested I do a screencast:

I don’t normally do screencasts but had some conference call time so folks can follow along at home:

That’s not the best screencast in the world, but it’s very representative of the workflow I used. A great deal of boilerplate package machinations is accomplished with this bash script.

I wasn’t happy with the hurried function name choices I made nor was I thrilled with the package title, description, tests and basic docs, so I revamped all those into another release. That took a while, mostly due to constantly triggering API warnings about being rate-limited.

So, if you have a 5 GB or less file, character vector or in-memory R data you’d like to ephemerally share with others, take the fileio package for a spin:


##   success    key                   link  expiry
## 1    TRUE n18ZSB 14 days

(bonus points if you can figure out what that seemingly random sequence of characters says).

Cover image from Data-Driven Security
Amazon Author Page

2 Comments Seventeen Minutes From Tweet To Package

  1. Pingback: Seventeen Minutes From Tweet To Package – Mubashir Qasim

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.