

{"id":12718,"date":"2020-04-01T09:45:45","date_gmt":"2020-04-01T14:45:45","guid":{"rendered":"https:\/\/rud.is\/b\/?p=12718"},"modified":"2020-04-01T09:45:45","modified_gmt":"2020-04-01T14:45:45","slug":"uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","title":{"rendered":"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8}  Application Bundles"},"content":{"rendered":"<p>Just a quick note that thanks to <a href=\"https:\/\/github.com\/hrbrmstr\/uaparserjs\/issues\/7\">a gentle nudge<\/a> an updated version of {uaparser} &#8212; a package that processes User Agent strings web clients send to servers &#8212; is making its way to all the CRAN mirrors and is also available <a href=\"https:\/\/cinc.rud.is\/web\/packages\/uaparserjs\/\">on CINC<\/a>. The most significant change is a much overdue update to the user agent regex dictionary.<\/p>\n<p>It takes something like this <code>Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/535.2 (KHTML, like Gecko) Ubuntu\/11.10 Chromium\/15.0.874.106 Chrome\/15.0.874.106 Safari\/535.2<\/code> and turns it into a tidy data frame:<\/p>\n<pre><code class=\"language-r\">uaparserjs::ua_parse(\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/535.2 (KHTML, like Gecko) Ubuntu\/11.10 Chromium\/15.0.874.106 Chrome\/15.0.874.106 Safari\/535.2\")\n## # A tibble: 1 x 9\n##   userAgent                                   ua.family ua.major ua.minor ua.patch os.family os.major os.minor device.family\n##   &lt;chr&gt;                                       &lt;chr&gt;     &lt;chr&gt;    &lt;chr&gt;    &lt;chr&gt;    &lt;chr&gt;     &lt;chr&gt;    &lt;chr&gt;    &lt;chr&gt;        \n## 1 Mozilla\/5.0 (X11; Linux x86_64) AppleWebKi\u2026 Chromium  15       0        874      Ubuntu    11       10       Other     \n<\/code><\/pre>\n<p>The <code>js<\/code> on the end of the package name is a nod that it uses the <a href=\"https:\/\/github.com\/ua-parser\/uap-ref-impl\">javascript <code>ua-parser-core<\/code> module<\/a> via Jeroen&#8217;s seriously awesome {V8} package. Four years ago, {uaparserjs} did not work on Windows due to V8 VM stack limitations on Windows. Today, it now works on all platforms!<\/p>\n<p>Tis no slouch, either, as it processes 100 user agent strings in ~20ms. No speed demon, but should get the job done for most use-cases.<\/p>\n<p>There is an excellent <a href=\"https:\/\/github.com\/ua-parser\/uap-r\">C++-backed R version<\/a> that is not on CRAN and some heavy dependencies, but is faster than the javascript version if you need to process scads of user agent strings (I tend to use at-scale Scala environments for this now, hence the reason for a long delay update).<\/p>\n<p>Jeroen has <a href=\"https:\/\/cran.r-project.org\/web\/packages\/V8\/vignettes\/npm.html\">an excellent writeup<\/a> on how to use <code>browserify<\/code> to create an application bundle for javascript-backed R packages or scripts. There are some idiosyncrasies with the <code>ua-parser-core<\/code> reference implementation that was causing me no end of trouble with that method. On a lark, I tried:<\/p>\n<pre><code class=\"language-shell\">$ webpack --mode=\"production\" index.js -o bundle.js\n<\/code><\/pre>\n<p>and it worked perfectly on the first try (both in creating the app bundle and that bundle working just as before). This is due in no small part to Jeroen getting {V8} package to work with more recent <code>lib-v8<\/code> releases (which is also why it works on Windows now). I&#8217;ll try to write-up the <code>webpack<\/code> alternate method and PR into the vignette as I get time.<\/p>\n<h3>FIN<\/h3>\n<p>As usual, kick the tyres, jump in with PRs or issues and &#8212; most of all &#8212; be safe out there!<\/p>\n<p>For folks who interact with CRAN or R Core: they&#8217;re continuing to support our community during these crazy times so when you are in exchanges with them, definitely take some time out to add an extra nod of thanks for managing to do so whilst juggling the same things we all are.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just a quick note that thanks to a gentle nudge an updated version of {uaparser} &#8212; a package that processes User Agent strings web clients send to servers &#8212; is making its way to all the CRAN mirrors and is also available on CINC. The most significant change is a much overdue update to the [&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-12718","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>{uaparserjs} Updated on CRAN &amp; Using webpack to Make {V8} Application Bundles - 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\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"{uaparserjs} Updated on CRAN &amp; Using webpack to Make {V8} Application Bundles - rud.is\" \/>\n<meta property=\"og:description\" content=\"Just a quick note that thanks to a gentle nudge an updated version of {uaparser} &#8212; a package that processes User Agent strings web clients send to servers &#8212; is making its way to all the CRAN mirrors and is also available on CINC. The most significant change is a much overdue update to the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-01T14:45:45+00:00\" \/>\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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8} Application Bundles\",\"datePublished\":\"2020-04-01T14:45:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/\"},\"wordCount\":391,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/\",\"name\":\"{uaparserjs} Updated on CRAN & Using webpack to Make {V8} Application Bundles - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2020-04-01T14:45:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2020\\\/04\\\/01\\\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8} Application Bundles\"}]},{\"@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":"{uaparserjs} Updated on CRAN & Using webpack to Make {V8} Application Bundles - 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\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","og_locale":"en_US","og_type":"article","og_title":"{uaparserjs} Updated on CRAN & Using webpack to Make {V8} Application Bundles - rud.is","og_description":"Just a quick note that thanks to a gentle nudge an updated version of {uaparser} &#8212; a package that processes User Agent strings web clients send to servers &#8212; is making its way to all the CRAN mirrors and is also available on CINC. The most significant change is a much overdue update to the [&hellip;]","og_url":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","og_site_name":"rud.is","article_published_time":"2020-04-01T14:45:45+00:00","author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8} Application Bundles","datePublished":"2020-04-01T14:45:45+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/"},"wordCount":391,"commentCount":1,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","url":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","name":"{uaparserjs} Updated on CRAN & Using webpack to Make {V8} Application Bundles - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2020-04-01T14:45:45+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8} Application Bundles"}]},{"@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-3j8","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":12103,"url":"https:\/\/rud.is\/b\/2019\/03\/19\/assumptions-matter-more-than-dependencies\/","url_meta":{"origin":12718,"position":0},"title":"Assumptions Matter More Than Dependencies","author":"hrbrmstr","date":"2019-03-19","format":false,"excerpt":"There's been alot of talk about \"dependencies\" in the R universe of late. This is not really a post about that but more of a \"really, don't do this\" if you decide you want to poke the dependency bear by trying to build a deeply flawed model off of CRAN\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":3919,"url":"https:\/\/rud.is\/b\/2016\/02\/10\/craft-httr-calls-cleverly-with-curlconverter\/","url_meta":{"origin":12718,"position":1},"title":"Craft httr calls cleverly with curlconverter","author":"hrbrmstr","date":"2016-02-10","format":false,"excerpt":"UPDATE curlconverter will now return (as the function return value) a working R function. See the README for examples When you visit a site like the LA Times' NH Primary Live Results site and wish you had the data that they used to make the tables & visualizations on 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":12288,"url":"https:\/\/rud.is\/b\/2019\/06\/07\/reader-challenge-have-some-fun-with-apples-wwdc-2019-keynote-subtitles-show-your-work\/","url_meta":{"origin":12718,"position":2},"title":"Reader Challenge: Have Some Fun with Apple&#8217;s WWDC 2019 Keynote Subtitles &#038; Show Your Work","author":"hrbrmstr","date":"2019-06-07","format":false,"excerpt":"I was pretty brutal to Apple earlier this week in a Twitter thread that I tried to craft so it occurred in-line with the WWDC live stream (which might be something you want to remember as\/if you read on). I really don't care about \"memojis\" and I have serious dismay\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":11921,"url":"https:\/\/rud.is\/b\/2019\/02\/17\/conquering-caffeinated-amazon-athena-with-the-metis-trio-of-packages\/","url_meta":{"origin":12718,"position":3},"title":"Conquering Caffeinated Amazon Athena with the metis Trio of Packages","author":"hrbrmstr","date":"2019-02-17","format":false,"excerpt":"I must preface this post with the posit that if you're doing anything interactive() with Amazon Athena you should seriously consider just using their free ODBC drivers as it's the easiest way to wire them up to R DBI- and tidyverse-wise. I've said as much in previous posts. Drop a\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12990,"url":"https:\/\/rud.is\/b\/2021\/03\/13\/retrieve-process-run-time-architecture-on-apple-silicon-macs-on-the-command-line-with-archinfo\/","url_meta":{"origin":12718,"position":4},"title":"Retrieve Process Run-time Architecture on Apple Silicon Macs On The Command Line with `archinfo`","author":"hrbrmstr","date":"2021-03-13","format":false,"excerpt":"Apple M1\/Apple Silicon\/arm64 macOS can run x86_64 programs via Rosetta and most M1 systems currently (~March 2021) very likely run a mix of x86_64 and arm64 processes. Activity Monitor can show the architecture: but command line tools such as ps and top do not due to Apple hiding the details\u2026","rel":"","context":"In &quot;Apple&quot;","block_context":{"text":"Apple","link":"https:\/\/rud.is\/b\/category\/apple\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12855,"url":"https:\/\/rud.is\/b\/2020\/11\/20\/updated-apache-drill-r-jdbc-interface-package-sergeant-caffeinated-with-dbplyr-2-x-compatibility\/","url_meta":{"origin":12718,"position":5},"title":"Updated Apache Drill R JDBC Interface Package {sergeant.caffeinated} With {dbplyr} 2.x Compatibility","author":"hrbrmstr","date":"2020-11-20","format":false,"excerpt":"While the future of the Apache Drill ecosystem is somewhat in-play (MapR \u2014 a major sponsoring org for the project \u2014 is kinda dead), I still use it almost daily (on my local home office cluster) to avoid handing over any more money to Amazon than I\/we already do. The\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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/12718","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=12718"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/12718\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=12718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=12718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=12718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}