

{"id":14475,"date":"2023-09-30T16:45:55","date_gmt":"2023-09-30T21:45:55","guid":{"rendered":"https:\/\/rud.is\/b\/?p=14475"},"modified":"2023-10-29T10:18:23","modified_gmt":"2023-10-29T15:18:23","slug":"avoid-libwebp-electron-woes-on-macos-with-positron","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/","title":{"rendered":"Avoid libwebp Electron Woes On macOS With positron"},"content":{"rendered":"<p>If you&#8217;ve got ? on this blog (directly, or via syndication) you&#8217;d have to have been living under a rock to not know about the <a href=\"https:\/\/arstechnica.com\/security\/2023\/09\/incomplete-disclosures-by-apple-and-google-create-huge-blindspot-for-0-day-hunters\/\">libwebp supply chain disaster<\/a>. An unfortunate casualty of inept programming just happened to be any app in the Electron ecosystem that doesn&#8217;t undergo bleeding-edge updates.<\/p>\n<p>Former cow-orker Tom Sellers (one of the best humans in cyber) did a great service to the macOS user community with tips on <a href=\"https:\/\/infosec.exchange\/@TomSellers\/111126352647377681\">how to stay safe on macOS<\/a>. His <code>find<\/code> + <code>strings<\/code> + <code>grep<\/code> combo was superbly helpful and I hope many macOS users did the command line dance to see how negligent their app providers were\/are.<\/p>\n<p>But, you still have to know what versions are OK and which ones are not to do that dance. And, having had yet-another immune system invasion (thankfully, not COVID, again) on top of still working through long COVID (<code>#protip<\/code>: you may be over the pandemic, but I guarantee it&#8217;s not done with you\/us for a while) which re-sapped mobility energy, I put my sedentary time to less woesome use by hacking together a small, Golang macOS CLI to help ferret out bad Electron-based apps you may have installed.<\/p>\n<p>I named it <a href=\"https:\/\/gitlab.com\/hrbrmstr\/positron\">positron<\/a>, since that&#8217;s kind of the opposite of Electron, and I was pretty creativity-challenged today.<\/p>\n<p>It does virtually the same thing as Tom&#8217;s <code>strings<\/code> and <code>grep<\/code> does, just in a single, lightweight, universal, signed macOS binary.<\/p>\n<p>When I ran it after the final build, all my Electron-based apps were ?. After deleting some, and updating others, this is my current status:<\/p>\n<pre><code class=\"language-bash\">$ find \/Applications -type f -name \"*Electron Framework*\" -exec .\/positron \"{}\" \\;\n\/Applications\/Signal.app: Chrome\/114.0.5735.289 Electron\/25.8.4 ?\n\/Applications\/Keybase.app: Chrome\/87.0.4280.141 Electron\/11.5.0 ?\n\/Applications\/Raindrop.io.app: Chrome\/102.0.5005.167 Electron\/19.0.17 ?\n\/Applications\/1Password.app: Chrome\/114.0.5735.289 Electron\/25.8.1 ?\n\/Applications\/Replit.app: Chrome\/116.0.5845.188 Electron\/26.2.1 ?\n\/Applications\/lghub.app: Chrome\/104.0.5112.65 Electron\/20.0.0 ?\n<\/code><\/pre>\n<p>It&#8217;s still on <em>you<\/em> to do the <code>find<\/code> (cooler folks run <code>fd<\/code>) since I&#8217;m not about to write a program that&#8217;ll rummage across your SSDs or disc drives, but it does all the MachO inspection internally, and then also does the SemVer comparison to let you know which apps still suck at keeping you safe.<\/p>\n<p>FWIW, the Keybase folks did accept a PR for the libwebp thing, but darned if I will spend any time building it (I don&#8217;t run it anymore, anyway, so I should just delete it).<\/p>\n<p>The aforementioned signed, universal, macOS binary is in the GitLab releases.<\/p>\n<p>Stay safe out there!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve got ? on this blog (directly, or via syndication) you&#8217;d have to have been living under a rock to not know about the libwebp supply chain disaster. An unfortunate casualty of inept programming just happened to be any app in the Electron ecosystem that doesn&#8217;t undergo bleeding-edge updates. Former cow-orker Tom Sellers (one [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14477,"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":[681,840,841,3,780],"tags":[],"class_list":["post-14475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity","category-go","category-golang","category-information-security","category-macos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Avoid libwebp Electron Woes On macOS With positron - rud.is<\/title>\n<meta name=\"description\" content=\"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.\" \/>\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\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Avoid libwebp Electron Woes On macOS With positron - rud.is\" \/>\n<meta property=\"og:description\" content=\"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-30T21:45:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-29T15:18:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"2500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Avoid libwebp Electron Woes On macOS With positron\",\"datePublished\":\"2023-09-30T21:45:55+00:00\",\"dateModified\":\"2023-10-29T15:18:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\"},\"wordCount\":372,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1\",\"articleSection\":[\"Cybersecurity\",\"Go\",\"Golang\",\"Information Security\",\"macOS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\",\"url\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\",\"name\":\"Avoid libwebp Electron Woes On macOS With positron - rud.is\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1\",\"datePublished\":\"2023-09-30T21:45:55+00:00\",\"dateModified\":\"2023-10-29T15:18:23+00:00\",\"description\":\"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.\",\"breadcrumb\":{\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1\",\"width\":2000,\"height\":2500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rud.is\/b\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Avoid libwebp Electron Woes On macOS With positron\"}]},{\"@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":"Avoid libwebp Electron Woes On macOS With positron - rud.is","description":"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.","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\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/","og_locale":"en_US","og_type":"article","og_title":"Avoid libwebp Electron Woes On macOS With positron - rud.is","og_description":"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.","og_url":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/","og_site_name":"rud.is","article_published_time":"2023-09-30T21:45:55+00:00","article_modified_time":"2023-10-29T15:18:23+00:00","og_image":[{"width":2000,"height":2500,"url":"https:\/\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg","type":"image\/jpeg"}],"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\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Avoid libwebp Electron Woes On macOS With positron","datePublished":"2023-09-30T21:45:55+00:00","dateModified":"2023-10-29T15:18:23+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/"},"wordCount":372,"commentCount":2,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1","articleSection":["Cybersecurity","Go","Golang","Information Security","macOS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/","url":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/","name":"Avoid libwebp Electron Woes On macOS With positron - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1","datePublished":"2023-09-30T21:45:55+00:00","dateModified":"2023-10-29T15:18:23+00:00","description":"Explore the impact of the libwebp supply chain disaster on Electron-based apps and discover Positron, a Golang macOS CLI tool designed to identify vulnerable apps. Stay informed and secure with our in-depth analysis and practical solutions.","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/09\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1","width":2000,"height":2500},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2023\/09\/30\/avoid-libwebp-electron-woes-on-macos-with-positron\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Avoid libwebp Electron Woes On macOS With positron"}]},{"@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\/resource-database-Ix86EQm6HDQ-unsplash.jpg?fit=2000%2C2500&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-3Lt","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":12878,"url":"https:\/\/rud.is\/b\/2021\/01\/16\/new-swiftr-chapter-up-building-an-r-backed-swiftui-macos-app\/","url_meta":{"origin":14475,"position":0},"title":"New SwiftR Chapter Up: Building an R-backed SwiftUI macOS App","author":"hrbrmstr","date":"2021-01-16","format":false,"excerpt":"Last week I introduced a new bookdown series on how to embed R into a macOS Swift application. The initial chapters focused on core concepts and showed how to build a macOS compiled, binary command line application that uses embedded R for some functionality. This week, a new chapter is\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":13365,"url":"https:\/\/rud.is\/b\/2022\/03\/13\/a-zsh-helper-script-for-updating-macos-rstudio-daily-electron-quarto-cli-installs\/","url_meta":{"origin":14475,"position":1},"title":"A zsh Helper Script For Updating macOS RStudio Daily Electron + Quarto CLI Installs","author":"hrbrmstr","date":"2022-03-13","format":false,"excerpt":"RStudio's macOS Electron build is coming along quite nicely and is blazing fast on Apple Silicon. I like to install the dailies, well, daily!; and, of late, RStudio and Quarto are joined at the hip. As a result, I regularly found myself having to manually update Quarto CLI right after\u2026","rel":"","context":"In &quot;macOS&quot;","block_context":{"text":"macOS","link":"https:\/\/rud.is\/b\/category\/macos\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":13042,"url":"https:\/\/rud.is\/b\/2021\/04\/25\/a-small-macos-big-sur-to-extract-indicators-of-compromise\/","url_meta":{"origin":14475,"position":2},"title":"A Small macOS (Big Sur+) App to Extract Indicators of Compromise","author":"hrbrmstr","date":"2021-04-25","format":false,"excerpt":"There's a semi-infrequent-but-frequent-enough-to-be-annoying manual task at $DAYJOB that involves extracting a particular set of strings (identifiable by a fairly benign set of regular expressions) from various interactive text sources (so, not static documents or documents easily scrape-able). Rather than hack something onto Sublime Text or VS Code I made a\u2026","rel":"","context":"In &quot;Information Security&quot;","block_context":{"text":"Information Security","link":"https:\/\/rud.is\/b\/category\/information-security\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10991,"url":"https:\/\/rud.is\/b\/2018\/07\/06\/visualizing-macos-app-usage\/","url_meta":{"origin":14475,"position":3},"title":"Visualizing macOS App Usage with a Little Help from osqueryr &#038; mactheknife","author":"hrbrmstr","date":"2018-07-06","format":false,"excerpt":"Both my osqueryr and macthekinfe packages have had a few updates and I wanted to put together a fun example (it being Friday, and all) for what you can do with them. All my packages are now on GitHub and GitLab and I'll be maintaining them on both so I\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\/07\/app-lod-tree-1.png?fit=1200%2C1197&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/app-lod-tree-1.png?fit=1200%2C1197&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/app-lod-tree-1.png?fit=1200%2C1197&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/app-lod-tree-1.png?fit=1200%2C1197&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/app-lod-tree-1.png?fit=1200%2C1197&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6154,"url":"https:\/\/rud.is\/b\/2017\/08\/13\/r%e2%81%b6-exploring-macos-applications-with-codesign-gatekeeper-r\/","url_meta":{"origin":14475,"position":4},"title":"R\u2076 \u2014 Exploring macOS Applications with codesign, Gatekeeper &#038; R","author":"hrbrmstr","date":"2017-08-13","format":false,"excerpt":"(General reminder abt \"R\u2076\" posts in that they are heavy on code-examples, minimal on expository. I try to design them with 2-3 \"nuggets\" embedded for those who take the time to walk through the code examples on their systems. I'll always provide further expository if requested in a comment, so\u2026","rel":"","context":"In &quot;macOS&quot;","block_context":{"text":"macOS","link":"https:\/\/rud.is\/b\/category\/macos\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12459,"url":"https:\/\/rud.is\/b\/2019\/08\/26\/rswitch-1-4-0-released\/","url_meta":{"origin":14475,"position":5},"title":"RSwitch 1.4.0 Released","author":"hrbrmstr","date":"2019-08-26","format":false,"excerpt":"Swift 5 has been so much fun to hack on that there's a new update to macOS R-focused mebubar utility RSwitch available. Along with the app comes a new dedicated RSwitch landing page and a new user's guide since it has enough features to warrant such documentation. Here's the new\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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/14475","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=14475"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/14475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/14477"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=14475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=14475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=14475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}