

{"id":12430,"date":"2019-07-27T07:47:40","date_gmt":"2019-07-27T12:47:40","guid":{"rendered":"https:\/\/rud.is\/b\/?p=12430"},"modified":"2019-07-27T07:47:40","modified_gmt":"2019-07-27T12:47:40","slug":"two-new-testing-themed-addins-one-new-and-one-updated-cran-package","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/","title":{"rendered":"Two New Testing-themed Addins + One New and One Updated CRAN Package"},"content":{"rendered":"<p>It&#8217;s been yet-another weirdly busy summer but I&#8217;m finally catching up on noting some recent-ish developments in the blog.<\/p>\n<p>First up is a full rewrite of the <a href=\"https:\/\/cinc.rud.is\/web\/packages\/wand\/\">{wand} pacakge<\/a> which still uses <a href=\"https:\/\/en.wikipedia.org\/wiki\/Magic_number_(programming)#Magic_numbers_in_files\">magic<\/a> but is 100% R code (vs a mix of compiled C and R code) and now works on Windows. A newer version will be up on CRAN in a bit that has additional MIME mappings and enables specifying a custom extension mapping data frame. You&#8217;ve seen this beast on the blog before, though, <a href=\"https:\/\/rud.is\/b\/2018\/03\/23\/on-mimes-software-versions-and-web-site-promiscuity-a-k-a-three-new-packages-to-round-out-the-week\/\">by another name<\/a>.<\/p>\n<pre><code class=\"language-r\">wand::get_content_type(\"\/etc\/syslog.conf\")\n## [1] \"text\/plain\"\n<\/code><\/pre>\n<p>Next is the <a href=\"https:\/\/cinc.rud.is\/web\/packages\/ulid\/\">{ulid} package<\/a> (which I&#8217;ve also <a href=\"https:\/\/rud.is\/b\/2019\/01\/10\/waffle-geoms-other-miscellaneous-in-development-package-updates\/\">previously discussed, here<\/a>) which is also now on CRAN to meet all your Universally Unique Lexicographically Sortable Identifiers-generation needs.<\/p>\n<pre><code class=\"language-r\">ulid::ulid_generate()\n## [1] \"0001EKRGTCRSVA4ACSCQJA61A0\"\n\nulid::unmarshal(\"0001EKRGTCRSVA4ACSCQJA61A0\")\n##                    ts              rnd\n## 1 2019-07-27 08:27:56 RSVA4ACSCQJA61A0\n<\/code><\/pre>\n<p>The [{testthat}] gravity well has caught over 4,000 CRAN packages but it&#8217;s not the only testing game in town. The <a href=\"https:\/\/github.com\/markvanderloo\/tinytest\">{tinytest} package<\/a> take slightly more minimalist approach and has the added benefit that the tests come along for the ride with the package, which makes it easier to solicit said test results from package users having problems with your code.<\/p>\n<p>I still use {testthat} in most of my packages but gave {tinytest} a spin for a few of my more recent ones and it&#8217;s pretty nifty. The biggest feature I missed when switching to it was the lack of Cmd-Shift-T support for it in RStudio. Since I kinda still want Cmd-Shift-T for all the packages I have that use {testthat} I whipped up an RStudio addin that adds an Addin context menu item (below) and placed it in <a href=\"https:\/\/cinc.rud.is\/web\/packages\/hrbraddins\/\">{hrbraddins}<\/a>.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12431\" data-permalink=\"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/tinytest-addin\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?fit=766%2C616&amp;ssl=1\" data-orig-size=\"766,616\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"tinytest-addin\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?fit=510%2C410&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=300%2C241&#038;ssl=1\" alt=\"\" width=\"300\" height=\"241\" class=\"aligncenter size-medium wp-image-12431\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=300%2C241&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=150%2C121&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=530%2C426&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=500%2C402&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=400%2C322&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?resize=200%2C161&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?w=766&amp;ssl=1 766w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>If you load up that package you can then bind something like Cmd-Option-Shift-T to that function and have equally quick keystroke access to package tests during development.<\/p>\n<pre><code class=\"language-r\">&gt; hrbraddins:::run_tiny_test() # from within the {wand} pkg\nRunning test_wand.R...................   52 tests OK\nAll ok (52 results)\n<\/code><\/pre>\n<p>Finally, I got bit in a recent CRAN submission because I have remote CRAN checks turned off (soooo sloooowww) but had a 404&#8217;ing URL in the documentation of one of the methods in the package. Since I have a few more submissions coming up in the next 6-8 weeks I decided to whip up an RStudio addin for an on-the-fly package URL checker that wraps the exact same checks CRAN does for these submissions. (I keybound this to Cmd-Option-Shift-U and you can catch a glimpse of it in the addins menu in the above screenshot).<\/p>\n<p>The output of one run is below. I deliberately modified two working URLs to show what you get output-wise when everything isn&#8217;t perfect:<\/p>\n<pre><code class=\"language-r\">&gt; hrbraddins:::check_package_urls()\nGathering URLs for {wand} (this may take a bit)\n- Looking in HTML files...\n- Looking in metadata files...\n- Looking in news files...\n- Looking in Rd files...\n- Looking in README files...\n- Looking in source files...\n- Looking in PDF files...\n\nChecking found URLs (this may also take a bit)\n# A tibble: 13 x 4\n   url                                                        parent      status is_https\n   &lt;chr&gt;                                                      &lt;chr&gt;        &lt;dbl&gt; &lt;lgl&gt;   \n 1 https:\/\/gitlab.com\/hrbrmstr\/wand\/issuessss                 DESCRIPTION    599 TRUE    \n 2 http:\/\/gitlab.com\/hrbrmstr\/wand                            DESCRIPTION    200 FALSE   \n 3 https:\/\/github.com\/jshttp\/mime-db                          man\/wand.Rd    200 TRUE    \n 4 https:\/\/github.com\/threatstack\/libmagic\/tree\/master\/magic\/ man\/wand.Rd    200 TRUE    \n 5 https:\/\/ci.appveyor.com\/project\/hrbrmstr\/wand              README.md      200 TRUE    \n 6 https:\/\/codecov.io\/gh\/hrbrmstr\/wand                        README.md      200 TRUE    \n 7 https:\/\/cranchecks.info\/pkgs\/wand                          README.md      200 TRUE    \n 8 https:\/\/github.com\/r-lib\/remotes                           README.md      200 TRUE    \n 9 https:\/\/github.com\/threatstack\/libmagic\/tree\/master\/magic\/ README.md      200 TRUE    \n10 https:\/\/keybase.io\/hrbrmstr                                README.md      200 TRUE    \n11 https:\/\/travis-ci.org\/hrbrmstr\/wand                        README.md      200 TRUE    \n12 https:\/\/www.r-pkg.org\/pkg\/wand                             README.md      200 TRUE    \n13 https:\/\/www.repostatus.org\/#active                         README.md      200 TRUE  \n<\/code><\/pre>\n<p>The {hrbraddins} package itself is just a playground and will never see CRAN, so do not hesitate to yank anything from it and put it in a safer and\/or more accessible location for your own work.<\/p>\n<h3>FIN<\/h3>\n<p>For the packages, file issues and PRs the same way you always would. Same goes for the addins.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been yet-another weirdly busy summer but I&#8217;m finally catching up on noting some recent-ish developments in the blog. First up is a full rewrite of the {wand} pacakge which still uses magic but is 100% R code (vs a mix of compiled C and R code) and now works on Windows. A newer version [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[91],"tags":[],"class_list":["post-12430","post","type-post","status-publish","format-standard","hentry","category-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s been yet-another weirdly busy summer but I&#8217;m finally catching up on noting some recent-ish developments in the blog. First up is a full rewrite of the {wand} pacakge which still uses magic but is 100% R code (vs a mix of compiled C and R code) and now works on Windows. A newer version [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-27T12:47:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin-300x241.png\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Two New Testing-themed Addins + One New and One Updated CRAN Package\",\"datePublished\":\"2019-07-27T12:47:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/\"},\"wordCount\":472,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/tinytest-addin-300x241.png\",\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/\",\"name\":\"Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/tinytest-addin-300x241.png\",\"datePublished\":\"2019-07-27T12:47:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/tinytest-addin.png?fit=766%2C616&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/tinytest-addin.png?fit=766%2C616&ssl=1\",\"width\":766,\"height\":616},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/07\\\/27\\\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Two New Testing-themed Addins + One New and One Updated CRAN Package\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rud.is\\\/b\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\\\/\\\/rud.is\"],\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/author\\\/hrbrmstr\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/","og_locale":"en_US","og_type":"article","og_title":"Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is","og_description":"It&#8217;s been yet-another weirdly busy summer but I&#8217;m finally catching up on noting some recent-ish developments in the blog. First up is a full rewrite of the {wand} pacakge which still uses magic but is 100% R code (vs a mix of compiled C and R code) and now works on Windows. A newer version [&hellip;]","og_url":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/","og_site_name":"rud.is","article_published_time":"2019-07-27T12:47:40+00:00","og_image":[{"url":"https:\/\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin-300x241.png","type":"","width":"","height":""}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Two New Testing-themed Addins + One New and One Updated CRAN Package","datePublished":"2019-07-27T12:47:40+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/"},"wordCount":472,"commentCount":2,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin-300x241.png","articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/","url":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/","name":"Two New Testing-themed Addins + One New and One Updated CRAN Package - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin-300x241.png","datePublished":"2019-07-27T12:47:40+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?fit=766%2C616&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/07\/tinytest-addin.png?fit=766%2C616&ssl=1","width":766,"height":616},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2019\/07\/27\/two-new-testing-themed-addins-one-new-and-one-updated-cran-package\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Two New Testing-themed Addins + One New and One Updated CRAN Package"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-3eu","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":9496,"url":"https:\/\/rud.is\/b\/2018\/04\/08\/dissecting-r-package-utility-belts\/","url_meta":{"origin":12430,"position":0},"title":"Dissecting R Package &#8220;Utility Belts&#8221;","author":"hrbrmstr","date":"2018-04-08","format":false,"excerpt":"Many R package authors (including myself) lump a collection of small, useful functions into some type of utils.R file and usually do not export the functions since they are (generally) designed to work on package internals rather than expose their functionality via the exported package API. Just like Batman's utility\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/r-utility-belt-final.png?fit=891%2C375&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/r-utility-belt-final.png?fit=891%2C375&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/r-utility-belt-final.png?fit=891%2C375&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/r-utility-belt-final.png?fit=891%2C375&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4515,"url":"https:\/\/rud.is\/b\/2016\/07\/10\/cran-packages-on-github-and-some-cran-description-observations\/","url_meta":{"origin":12430,"position":1},"title":"CRAN Packages on GitHub (and some CRAN DESCRIPTION observations)","author":"hrbrmstr","date":"2016-07-10","format":false,"excerpt":"Just about a week ago @thosjleeper posited something on twitter w\/r\/t how many CRAN packages had associations with GitHub (i.e. how many used GitHub for development). The `DESCRIPTION` file (that comes with all R packages) has some fields that can house this information and most folks who do use GitHub\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4547,"url":"https:\/\/rud.is\/b\/2016\/07\/24\/mid-year-r-packages-update-summary\/","url_meta":{"origin":12430,"position":2},"title":"Mid-year R Packages Update Summary","author":"hrbrmstr","date":"2016-07-24","format":false,"excerpt":"I been updating some existing packages and github-releasing new ones (before a CRAN push). Most are \"cyber\"-related, but there are some general purpose ones. Here's a quick overview: docxtractr (CRAN, now, v0.2.0) was initially designed to make it easy to get data tables out of MS Word (docx) documents. The\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7713,"url":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","url_meta":{"origin":12430,"position":3},"title":"New Package swatches  is Now on CRAN","author":"hrbrmstr","date":"2017-12-21","format":false,"excerpt":"It's been a long time coming, but swatches? is now on CRAN. What is \"swatches\"? First off, swatches has nothing to do with those faux-luxury brand Swiss-made timepieces. swatches is all about color. R\/CRAN has plenty of color picking packages. The colourlovers? ? by @thosjleeper is one of my favs.\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6111,"url":"https:\/\/rud.is\/b\/2017\/07\/17\/ten-hut-the-apache-drill-r-interface-package-sergeant-is-now-on-cran\/","url_meta":{"origin":12430,"position":4},"title":"Ten-HUT! The Apache Drill R interface package \u2014\u00a0sergeant \u2014\u00a0is now on CRAN","author":"hrbrmstr","date":"2017-07-17","format":false,"excerpt":"I'm extremely pleased to announce that the sergeant package is now on CRAN or will be hitting your local CRAN mirror soon. sergeant provides JDBC, DBI and dplyr\/dbplyr interfaces to Apache Drill. I've also wrapped a few goodies into the dplyr custom functions that work with Drill and if you\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5050,"url":"https:\/\/rud.is\/b\/2017\/02\/15\/ggalt-0-4-0-now-on-cran\/","url_meta":{"origin":12430,"position":5},"title":"ggalt 0.4.0 now on CRAN","author":"hrbrmstr","date":"2017-02-15","format":false,"excerpt":"I'm uncontainably excited to report that the ggplot2 extension package ggalt is now on CRAN. The absolute best part of this package is the R community members who contributed suggestions and new geoms, stats, annotations and integration features. This release would not be possible without the PRs from: Ben Bolker\u2026","rel":"","context":"In &quot;ggplot&quot;","block_context":{"text":"ggplot","link":"https:\/\/rud.is\/b\/category\/ggplot\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/02\/RStudio-1.png?fit=1200%2C510&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/02\/RStudio-1.png?fit=1200%2C510&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/02\/RStudio-1.png?fit=1200%2C510&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/02\/RStudio-1.png?fit=1200%2C510&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/02\/RStudio-1.png?fit=1200%2C510&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/12430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=12430"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/12430\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=12430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=12430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=12430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}