ropensci / ozunconf19

OzUnconf19
http://ozunconf19.ropensci.org/
21 stars 5 forks source link

⬡ Kick start the CRHR (comprehensive R hexagon repository) #24

Open mitchelloharawild opened 4 years ago

mitchelloharawild commented 4 years ago

Related work

For projects like the hexwall, the most time consuming part is collecting the sticker files. Collecting and managing stickers for that project first hand with @dicook involved a huge effort by us and sticker submitters, and I understand that RStudio is undertaking a similar effort for this year's conference.

Creating a Comprehensive R Hexagon Repository (CRHR) would provide a convenient source for all R specific hexagon stickers.

This would not be the first repository of its type, others include:

While not being R specific, the hexb.in project is the most similar to how I expect this repository could be structured:

I believe a fresh start to an R specific hexagon repository is needed for a few reasons. The hexb.in repository is far from comprehensive, and the submission process deters submissions. Additionally, the meta information collected in hexb.in is insufficient to adequately characterise the variety of hex stickers created within the R community.

Finding hex stickers

To encourage package authors to submit new stickers to the repository, I think the repository should begin as comprehensive as possible. Collecting and organising existing stickers is not an easy task, but a simple place to start is with package stickers.

I currently have a script which parses README files from CRAN packages to identify which packages have a sticker. To initialise the repository, this script could be used to group stickers by maintainer and send a one time email requesting inclusion of their stickers in the repository.

The email should include a list of packages identified to have an associated hex sticker, and perhaps a customised submission URL which pre-fills some meta fields (maintainer, package names, sticker files if found, sticker type as 'package', etc.).

This cannot be done completely automatically for a couple of reasons:

  1. Stickers included in the README are low resolution rasters of the vector file we want.
  2. In many cases the vector image doesn't exist within the package's repository.
  3. Additional meta information such as sticker license is required.

Submitting stickers

Submitting stickers should be quick and simple. I do like the use of pull requests in hexb.in, however this requires familiarity with the repository's structure and provides no automatic validation of submissions.

Some ideas for sticker submission methods:

  1. A pull request
  2. An interactive form
  3. A package function

I think all submisson methods should eventually result in a PR being made to the CRHR.

Validating stickers

How flexible are the definitions of a hex sticker?

The StickersStandard outlines the size of a conformant sticker. Some image processing can check that the image follows these dimensions.

Up for discussion however is the quality standard expected of stickers.

Regarding file quality, the best would be providing the original vector artwork (with outlined fonts). This however is unrealistic for many stickers, as it requires the sticker author to have created the hexagon using vector graphics. In many cases, stickers are designed in powerpoint and contain raster images within.

There is also the case of design quality, but I think all stickers should be accepted which meet the dimension standards to properly tessellate with other stickers.

Accessing stickers

Having the repository available on GitHub would be a good start for accessing the stickers. A package for accessing (and perhaps submitting) stickers could be appropriate for this project.

A package was originally suggested when I made the hexwall script, and I think some hexagon layout functions could be a useful inclusion to the package.

A website to display, search and filter stickers would also be a fun way to access stickers.

emitanaka commented 4 years ago

Great idea! Love it!

emitanaka commented 4 years ago

Slightly related to https://github.com/akgold/stickr