

{"id":14337,"date":"2023-09-09T06:45:12","date_gmt":"2023-09-09T11:45:12","guid":{"rendered":"https:\/\/rud.is\/b\/?p=14337"},"modified":"2023-09-10T10:42:59","modified_gmt":"2023-09-10T15:42:59","slug":"foliage-2023","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/","title":{"rendered":"Foliage 2023"},"content":{"rendered":"<ul>\n<li>2023-09-10 UPDATE: <a href=\"https:\/\/fosstodon.org\/@adababbage#.\">Art Steinmetz<\/a> took me up on the Shiny challenge (at the end of the post) and <a href=\"https:\/\/viztoy.shinyapps.io\/foliage\/\">did a fantastic job<\/a>!<\/li>\n<\/ul>\n<p>The days are getting shorter and when we were visiting Down East Maine the other week, there was just a hint of some trees starting to change up their leaf palettes. It was a solid reminder to re-up my ~annual \u201cfoliage\u201d plotting that I started way back in 2017.<\/p>\n<p>The fine folks over at <a href=\"https:\/\/smokymountains.com\/fall-foliage-map\/\">Smoky Mountains<\/a> \u2014 (<em>\u201cthe most authoritative source for restaurants, attractions, &amp; cabin rentals in the Smoky Mountains\u201d<\/em>) \u2014 have been posting an interactive map of ConUS foliage predictions for many years and the dataset they curate and use for that is also very easy to use in R and other contexts.<\/p>\n<p>This year, along with the usual <a href=\"https:\/\/github.com\/hrbrmstr\/foliage\/blob\/master\/r-foliage\/foliage-2023.R\">R version<\/a>, I have also made:<\/p>\n<ul>\n<li>an <a href=\"https:\/\/observablehq.com\/@hrbrmstr\/conus-foliage-2023\">Observable Notebook<\/a> version, using data wrangled from the R version<\/li>\n<li>a <a href=\"https:\/\/github.com\/hrbrmstr\/foliage\/tree\/master\/conus-foliage-2023\">Quarto project<\/a> version (see it rendered, <a href=\"https:\/\/hrbrmstr.github.io\/foliage\/conus-foliage-2023.html\">here<\/a>) that was made almost solely using my <a href=\"https:\/\/github.com\/hrbrmstr\/reveal-qmd\">Reveal QMD Chrome Extension<\/a>, which turns Observable notebooks into QMD projects with one click<\/li>\n<li>and a <a href=\"https:\/\/rud.is\/foliage-lit-plot\/\">LitElement + Observable Plot + Tachyons CSS + Vanilla JS<\/a> version (see it live, <a href=\"https:\/\/rud.is\/foliage-lit-plot\/\">here<\/a>)<\/li>\n<\/ul>\n<p>The only real changes to R version were to add <a href=\"https:\/\/github.com\/hrbrmstr\/foliage\/blob\/c63ed05c8429fb52b0d5c87c5bf36991207a027d\/r-foliage\/foliage-2023.R#L80-L102\">some code<\/a> to make a more usable JSON for the JavaScript versions of the project, and to take advantage of the <code>.progress<\/code> parameter to {purrr}&#8217;s <a href=\"https:\/\/github.com\/hrbrmstr\/foliage\/blob\/c63ed05c8429fb52b0d5c87c5bf36991207a027d\/r-foliage\/foliage-2023.R#L158\">walk<\/a> function.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"14354\" data-permalink=\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/observable-frame\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?fit=1856%2C1238&amp;ssl=1\" data-orig-size=\"1856,1238\" 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=\"observable-frame\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?fit=300%2C200&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?fit=510%2C341&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=510%2C340&#038;ssl=1\" alt=\"\" width=\"510\" height=\"340\" class=\"aligncenter size-full wp-image-14354\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?w=1856&amp;ssl=1 1856w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=530%2C354&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=150%2C100&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=768%2C512&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=1536%2C1025&amp;ssl=1 1536w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=500%2C334&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=1200%2C800&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=400%2C267&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=800%2C534&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?resize=200%2C133&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/observable-frame.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>The Observable notebook version (one frame of that is above) makes use of Observable Plot&#8217;s super handy <a href=\"https:\/\/observablehq.com\/plot\/marks\/geo#geo-mark\">geo mark<\/a>, and also shows how to do some <a href=\"https:\/\/observablehq.com\/@hrbrmstr\/conus-foliage-2023#states48\">shapefile surgery<\/a> to avoid plotting Alaska &amp; Hawaii (the Smoky Mountains folks only provide predictions for ConUS).<\/p>\n<p>After using the Reveal QMD extension to make the Quarto project, the <code>qmd<\/code> document rendered fine, but I tweaked the YAML to send the output to the GH Pages-renderable <code>docs\/<\/code> directory, and combined some of the OJS blocks to tighten up the document. You&#8217;ll see some Quarto \u201cerror\u201d blocks, briefly, since there the QMD fetches imports from Observable. You can get around that by moving all the imported resources to the Observable notebook before generating the QMD, but that&#8217;s an exercise left to the reader.<\/p>\n<p>And, since I&#8217;m a fan of both <a href=\"https:\/\/lit.dev\">Lit WebComponents<\/a> and <a href=\"https:\/\/tachyons.io\/\">Tachyons CSS<\/a>, I threw together a version using them (+ Observable Plot) to further encourage folks to get increasingly familiar with core web tech. Tachyons + Plot make it pretty straightforward to create responsive pages, too (resize the browser and toggle system dark\/light mode to prove that). The Lit element&#8217;s CSS section also shows how to style Plot&#8217;s legend a bit.<\/p>\n<p>Hit up the <a href=\"https:\/\/github.com\/hrbrmstr\/foliage\">GH page<\/a> to see the animated gif (I&#8217;ve stared at it a bit too much to include it in the post).<\/p>\n<p>Drop any q&#8217;s here or in the GH issues, and \u2014 if anyone makes a Shiny version \u2014  please let me know, and I&#8217;ll add all links to any of those here and on the GH page.<\/p>\n<h3>FIN<\/h3>\n<p>While it is all well and good to plot foliage prediction maps, please also remember to take some time away from your glowing rectangles to go and actually <em>observe<\/em> the fall palette changes IRL.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2023-09-10 UPDATE: Art Steinmetz took me up on the Shiny challenge (at the end of the post) and did a fantastic job! The days are getting shorter and when we were visiting Down East Maine the other week, there was just a hint of some trees starting to change up their leaf palettes. It was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14352,"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":[764,673,674,753,15,842],"tags":[],"class_list":["post-14337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-wrangling","category-datavis-2","category-dataviz","category-ggplot","category-javascript","category-observable"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Foliage 2023 - 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\/2023\/09\/09\/foliage-2023\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Foliage 2023 - rud.is\" \/>\n<meta property=\"og:description\" content=\"2023-09-10 UPDATE: Art Steinmetz took me up on the Shiny challenge (at the end of the post) and did a fantastic job! The days are getting shorter and when we were visiting Down East Maine the other week, there was just a hint of some trees starting to change up their leaf palettes. It was [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-09T11:45:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-10T15:42:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2006\" \/>\n\t<meta property=\"og:image:height\" content=\"1900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/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\/2023\/09\/09\/foliage-2023\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Foliage 2023\",\"datePublished\":\"2023-09-09T11:45:12+00:00\",\"dateModified\":\"2023-09-10T15:42:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\"},\"wordCount\":528,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1\",\"articleSection\":[\"data wrangling\",\"DataVis\",\"DataViz\",\"ggplot\",\"Javascript\",\"Observable\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\",\"url\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\",\"name\":\"Foliage 2023 - rud.is\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1\",\"datePublished\":\"2023-09-09T11:45:12+00:00\",\"dateModified\":\"2023-09-10T15:42:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1\",\"width\":2006,\"height\":1900,\"caption\":\"conus foliage map 2023\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rud.is\/b\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Foliage 2023\"}]},{\"@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":"Foliage 2023 - 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\/2023\/09\/09\/foliage-2023\/","og_locale":"en_US","og_type":"article","og_title":"Foliage 2023 - rud.is","og_description":"2023-09-10 UPDATE: Art Steinmetz took me up on the Shiny challenge (at the end of the post) and did a fantastic job! The days are getting shorter and when we were visiting Down East Maine the other week, there was just a hint of some trees starting to change up their leaf palettes. It was [&hellip;]","og_url":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/","og_site_name":"rud.is","article_published_time":"2023-09-09T11:45:12+00:00","article_modified_time":"2023-09-10T15:42:59+00:00","og_image":[{"width":2006,"height":1900,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","type":"image\/png"}],"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\/2023\/09\/09\/foliage-2023\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Foliage 2023","datePublished":"2023-09-09T11:45:12+00:00","dateModified":"2023-09-10T15:42:59+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/"},"wordCount":528,"commentCount":3,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","articleSection":["data wrangling","DataVis","DataViz","ggplot","Javascript","Observable"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/","url":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/","name":"Foliage 2023 - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","datePublished":"2023-09-09T11:45:12+00:00","dateModified":"2023-09-10T15:42:59+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","width":2006,"height":1900,"caption":"conus foliage map 2023"},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2023\/09\/09\/foliage-2023\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Foliage 2023"}]},{"@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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/lit-plot.png?fit=2006%2C1900&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-3Jf","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":6380,"url":"https:\/\/rud.is\/b\/2017\/09\/18\/mapping-fall-foliage-with-sf\/","url_meta":{"origin":14337,"position":0},"title":"Mapping Fall Foliage with sf","author":"hrbrmstr","date":"2017-09-18","format":false,"excerpt":"I was socially engineered by @yoniceedee into creating today's post due to being prodded with this tweet: Where to see the best fall foliage, based on your location: https:\/\/t.co\/12pQU29ksB pic.twitter.com\/JiywYVpmno\u2014 Vox (@voxdotcom) September 18, 2017 Since there aren't nearly enough sf and geom_sf examples out on the wild, wild #rstats\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\/09\/f.gif?fit=800%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/09\/f.gif?fit=800%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/09\/f.gif?fit=800%2C480&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/09\/f.gif?fit=800%2C480&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":13569,"url":"https:\/\/rud.is\/b\/2022\/09\/09\/fall-foliage-javascript-ojs-edition\/","url_meta":{"origin":14337,"position":1},"title":"Fall Foliage: JavaScript\/OJS Edition","author":"hrbrmstr","date":"2022-09-09","format":false,"excerpt":"I've been (mostly) keeping up with annual updates for my R\/{sf} U.S. foliage post which you can find on GH. This year, we have Quarto, and it comes with so many batteries included that you'd think it was Christmas. One of those batteries is full support for the Observable runtime.\u2026","rel":"","context":"In &quot;d3&quot;","block_context":{"text":"d3","link":"https:\/\/rud.is\/b\/category\/d3\/"},"img":{"alt_text":"foliage map","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2022\/09\/foliage.png?fit=1200%2C1040&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2022\/09\/foliage.png?fit=1200%2C1040&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2022\/09\/foliage.png?fit=1200%2C1040&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2022\/09\/foliage.png?fit=1200%2C1040&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2022\/09\/foliage.png?fit=1200%2C1040&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":14440,"url":"https:\/\/rud.is\/b\/2023\/09\/23\/tracking-rite-aid-store-closures\/","url_meta":{"origin":14337,"position":2},"title":"Tracking Rite-Aid Store Closures","author":"hrbrmstr","date":"2023-09-23","format":false,"excerpt":"Rite-Aid closed 60+ stores in 2021. They said they'd nuke over 1,000 of them over three years, back in 2022. And, they're now about to close ~500 due to bankruptcy. FWIW Heyward Donigan, Former President and CEO \u2014 in 2023 \u2014 took home $1,043,713 in cash, $7,106,993 in equity, and\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\/2023\/09\/rite-aid-store-map.png?fit=1200%2C587&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/rite-aid-store-map.png?fit=1200%2C587&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/rite-aid-store-map.png?fit=1200%2C587&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/rite-aid-store-map.png?fit=1200%2C587&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/rite-aid-store-map.png?fit=1200%2C587&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":13894,"url":"https:\/\/rud.is\/b\/2023\/03\/29\/using-webr-pyodide-to-fill-in-the-temporary-package-gaps\/","url_meta":{"origin":14337,"position":3},"title":"Using WebR + Pyodide To Fill In The (Temporary) Package Gaps","author":"hrbrmstr","date":"2023-03-29","format":false,"excerpt":"I won't wax long and poetic here since I've already posted the experiment that has all the details. TL;DR: there are still only ~90-ish ? in the WebR WASM \"CRAN\", but more are absolutely on the way, including the capability to build your own CRAN and dev packages via Docker\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"https:\/\/rud.is\/b\/category\/python-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":14213,"url":"https:\/\/rud.is\/b\/2023\/07\/09\/new-r-package-hhhash\/","url_meta":{"origin":14337,"position":4},"title":"New R Package For HTTP Headers Hashing","author":"hrbrmstr","date":"2023-07-09","format":false,"excerpt":"HTTP Headers Hashing (HHHash) is a technique developed by Alexandre Dulaunoy to gen\u00aderate a fingerprint of an HTTP server based on the headers it returns. It employs one-way hashing to generate a hash value from the list of header keys returned by the server. The HHHash value is calculated by\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":14001,"url":"https:\/\/rud.is\/b\/2023\/04\/29\/supreme-annotations-plot-redux-an-ojs-plot%e2%86%94ggplot2-rosetta-stone\/","url_meta":{"origin":14337,"position":5},"title":"Supreme Annotations Plot Redux &#038; An OJS Plot\u2194ggplot2 Rosetta Stone","author":"hrbrmstr","date":"2023-04-29","format":false,"excerpt":"Back in 2016, I did a post on {ggplot2} text annotations because it was a tad more challenging to do some of the things in that post back in the day. Since I've been moving back and forth between R and Observable (and JavaScript in general), I decided to recreate\u2026","rel":"","context":"In &quot;Observable&quot;","block_context":{"text":"Observable","link":"https:\/\/rud.is\/b\/category\/observable\/"},"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\/14337","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=14337"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/14337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/14352"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=14337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=14337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=14337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}