

{"id":3880,"date":"2016-01-08T10:44:07","date_gmt":"2016-01-08T15:44:07","guid":{"rendered":"http:\/\/rud.is\/b\/?p=3880"},"modified":"2018-03-07T16:43:07","modified_gmt":"2018-03-07T21:43:07","slug":"iptools-0-3-0-violet-packet-now-on-cran-with-windows-support","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/","title":{"rendered":"iptools 0.3.0 (&#8220;Violet Packet&#8221;) Now on CRAN with Windows Support!"},"content":{"rendered":"<p>`iptools` is a set of tools for working with IP addresses. Not just work, but work _fast_. It&#8217;s backed by `Rcpp` and now uses the [AsioHeaders](http:\/\/dirk.eddelbuettel.com\/blog\/2016\/01\/07\/#asioheaders_1.11.0-1) package by Dirk Eddelbuettel, which means it no longer needs to _link_ against the monolithic Boost libraries and *works on Windows*!<\/p>\n<p>What can you do with it? One thing you can do is take a vector of domain names and turn them into IP addresses:<\/p>\n<pre lang=\"rsplus\">library(iptools)\r\n\r\nhostname_to_ip(c(\"rud.is\", \"dds.ec\", \"ironholds.org\", \"google.com\"))\r\n\r\n## [[1]]\r\n## [1] \"104.236.112.222\"\r\n## \r\n## [[2]]\r\n## [1] \"162.243.111.4\"\r\n## \r\n## [[3]]\r\n## [1] \"104.131.2.226\"\r\n## \r\n## [[4]]\r\n##  [1] \"2607:f8b0:400b:80a::100e\" \"74.125.226.101\"           \"74.125.226.102\"          \r\n##  [4] \"74.125.226.100\"           \"74.125.226.96\"            \"74.125.226.104\"          \r\n##  [7] \"74.125.226.99\"            \"74.125.226.103\"           \"74.125.226.105\"          \r\n## [10] \"74.125.226.98\"            \"74.125.226.97\"            \"74.125.226.110\"<\/pre>\n<p>That means you can pump a bunch of domain names from logs into `iptools` and get current IP address allocations out for them.<\/p>\n<p>You can also do the reverse:<\/p>\n<pre lang=\"rsplus\">library(magrittr)\r\nlibrary(purrr)\r\nlibrary(iptools)\r\n\r\nhostname_to_ip(c(\"rud.is\", \"dds.ec\", \"ironholds.org\", \"google.com\")) %>% \r\n  flatten_chr() %>% \r\n  ip_to_hostname() %>% \r\n  flatten_chr()\r\n\r\n##  [1] \"104.236.112.222\"           \"dds.ec\"                    \"104.131.2.226\"            \r\n##  [4] \"yyz08s13-in-x0e.1e100.net\" \"yyz08s13-in-f5.1e100.net\"  \"yyz08s13-in-f6.1e100.net\" \r\n##  [7] \"yyz08s13-in-f4.1e100.net\"  \"yyz08s13-in-f0.1e100.net\"  \"yyz08s13-in-f8.1e100.net\" \r\n## [10] \"yyz08s13-in-f3.1e100.net\"  \"yyz08s13-in-f7.1e100.net\"  \"yyz08s13-in-f9.1e100.net\" \r\n## [13] \"yyz08s13-in-f2.1e100.net\"  \"yyz08s13-in-f1.1e100.net\"  \"yyz08s13-in-f14.1e100.net\"<\/pre>\n<p>Notice that it handled IPv6 addresses and also cases where no reverse mapping existed for an IP address.<\/p>\n<p>You can convert IPv4 addresses to and from long integer format (the 4 octet version of IPv4 addresses is primarily to make them easier for humans to grok), generate random IP addresses for testing, test IP addresses for validity and type and also reference data sets with registered assignments (so you can see allocated IP groups). Plus, it includes `xff_extract()` which can help identify an actual IP address (helpful when connections come from behind proxies).<\/p>\n<p>We can&#8217;t thank Dirk enough for cranking out `AsioHeaders` since it means there will be many more network\/&#8221;cyber&#8221; packages coming for R and available on every platform.<\/p>\n<p>You can find `iptools` version `0.3.0` [on CRAN](https:\/\/cran.r-project.org\/web\/packages\/iptools\/) now (it may take your mirror a bit to catch up), grab the source [release](https:\/\/github.com\/hrbrmstr\/iptools\/releases\/tag\/v0.3.0) on GitHub or check out the [repo](https:\/\/github.com\/hrbrmstr\/iptools\/), poke around, submit issues and\/or contribute!<\/p>\n<p>Isn&#8217;t it great when an R package can help you with resolutions in the new year?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>`iptools` is a set of tools for working with IP addresses. Not just work, but work _fast_. It&#8217;s backed by `Rcpp` and now uses the [AsioHeaders](http:\/\/dirk.eddelbuettel.com\/blog\/2016\/01\/07\/#asioheaders_1.11.0-1) package by Dirk Eddelbuettel, which means it no longer needs to _link_ against the monolithic Boost libraries and *works on Windows*! What can you do with it? One thing [&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":[681,74,3,91],"tags":[810],"class_list":["post-3880","post","type-post","status-publish","format-standard","hentry","category-cybersecurity","category-dns","category-information-security","category-r","tag-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>iptools 0.3.0 (&quot;Violet Packet&quot;) Now on CRAN with Windows Support! - 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\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"iptools 0.3.0 (&quot;Violet Packet&quot;) Now on CRAN with Windows Support! - rud.is\" \/>\n<meta property=\"og:description\" content=\"`iptools` is a set of tools for working with IP addresses. Not just work, but work _fast_. It&#8217;s backed by `Rcpp` and now uses the [AsioHeaders](http:\/\/dirk.eddelbuettel.com\/blog\/2016\/01\/07\/#asioheaders_1.11.0-1) package by Dirk Eddelbuettel, which means it no longer needs to _link_ against the monolithic Boost libraries and *works on Windows*! What can you do with it? One thing [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-08T15:44:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T21:43:07+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\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"iptools 0.3.0 (&#8220;Violet Packet&#8221;) Now on CRAN with Windows Support!\",\"datePublished\":\"2016-01-08T15:44:07+00:00\",\"dateModified\":\"2018-03-07T21:43:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/\"},\"wordCount\":312,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"keywords\":[\"post\"],\"articleSection\":[\"Cybersecurity\",\"DNS\",\"Information Security\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/\",\"name\":\"iptools 0.3.0 (\\\"Violet Packet\\\") Now on CRAN with Windows Support! - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2016-01-08T15:44:07+00:00\",\"dateModified\":\"2018-03-07T21:43:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/01\\\/08\\\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"iptools 0.3.0 (&#8220;Violet Packet&#8221;) Now on CRAN with Windows Support!\"}]},{\"@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":"iptools 0.3.0 (\"Violet Packet\") Now on CRAN with Windows Support! - 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\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/","og_locale":"en_US","og_type":"article","og_title":"iptools 0.3.0 (\"Violet Packet\") Now on CRAN with Windows Support! - rud.is","og_description":"`iptools` is a set of tools for working with IP addresses. Not just work, but work _fast_. It&#8217;s backed by `Rcpp` and now uses the [AsioHeaders](http:\/\/dirk.eddelbuettel.com\/blog\/2016\/01\/07\/#asioheaders_1.11.0-1) package by Dirk Eddelbuettel, which means it no longer needs to _link_ against the monolithic Boost libraries and *works on Windows*! What can you do with it? One thing [&hellip;]","og_url":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/","og_site_name":"rud.is","article_published_time":"2016-01-08T15:44:07+00:00","article_modified_time":"2018-03-07T21:43:07+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\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"iptools 0.3.0 (&#8220;Violet Packet&#8221;) Now on CRAN with Windows Support!","datePublished":"2016-01-08T15:44:07+00:00","dateModified":"2018-03-07T21:43:07+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/"},"wordCount":312,"commentCount":1,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"keywords":["post"],"articleSection":["Cybersecurity","DNS","Information Security","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/","url":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/","name":"iptools 0.3.0 (\"Violet Packet\") Now on CRAN with Windows Support! - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2016-01-08T15:44:07+00:00","dateModified":"2018-03-07T21:43:07+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2016\/01\/08\/iptools-0-3-0-violet-packet-now-on-cran-with-windows-support\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"iptools 0.3.0 (&#8220;Violet Packet&#8221;) Now on CRAN with Windows Support!"}]},{"@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-10A","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4236,"url":"https:\/\/rud.is\/b\/2016\/04\/04\/iptools-0-4-0-released-into-the-wild-i-e-is-hitting-the-cran-mirrors-today\/","url_meta":{"origin":3880,"position":0},"title":"iptools 0.4.0 released into the wild (i.e. is hitting the CRAN mirrors today)","author":"hrbrmstr","date":"2016-04-04","format":false,"excerpt":"The [`iptools` package](https:\/\/github.com\/hrbrmstr\/iptools)\u2014a toolkit for manipulating, validating and testing IP addresses and ranges, along with datasets relating to IP addresses\u2014is flying through the internets and hitting a CRAN mirror near you, soon. ### What's fixed? [Tim Smith](https:\/\/github.com\/tdsmith) fixed [a bug](https:\/\/github.com\/hrbrmstr\/iptools\/issues\/26) in `ip_in_range()` that occurred when the netmask was `\/32` (thanks,\u2026","rel":"","context":"In &quot;Cybersecurity&quot;","block_context":{"text":"Cybersecurity","link":"https:\/\/rud.is\/b\/category\/cybersecurity\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4527,"url":"https:\/\/rud.is\/b\/2016\/07\/12\/slaying-cidr-orcs-with-triebeard-a-k-a-fast-trie-based-ipv4-in-cidr-lookups-in-r\/","url_meta":{"origin":3880,"position":1},"title":"Slaying CIDR Orcs with Triebeard (a.k.a. fast trie-based &#8216;IPv4-in-CIDR&#8217; lookups in R)","author":"hrbrmstr","date":"2016-07-12","format":false,"excerpt":"The insanely productive elf-lord, @quominus put together a small package ([`triebeard`](https:\/\/github.com\/ironholds\/triebeard)) that exposes an API for [radix\/prefix tries](https:\/\/en.wikipedia.org\/wiki\/Trie) at both the R and Rcpp levels. I know he had some personal needs for this and we both kinda need these to augment some functions in our `iptools` package. Despite `triebeard`\u2026","rel":"","context":"In &quot;Cybersecurity&quot;","block_context":{"text":"Cybersecurity","link":"https:\/\/rud.is\/b\/category\/cybersecurity\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4417,"url":"https:\/\/rud.is\/b\/2016\/06\/07\/new-viridis-colorbrewer-palettes-for-ipv4-heatmap\/","url_meta":{"origin":3880,"position":2},"title":"New viridis &#038; colorbrewer palettes for ipv4-heatmap","author":"hrbrmstr","date":"2016-06-07","format":false,"excerpt":"It's no seekrit that I :heart: Hilbert curve heatmaps of IPv4 space. Real-world IPv4 maps (i.e. the ones that drop dots on the Earth) have little utility, but with Hilbert curves maps of IPv4 space many different topologies can be superimposed (from ASNs to\u2014if need be\u2014geographic locations). Plus, there's more\u2026","rel":"","context":"In &quot;data driven security&quot;","block_context":{"text":"data driven security","link":"https:\/\/rud.is\/b\/category\/data-driven-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/06\/rdbu-inverted.png?fit=512%2C512&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4547,"url":"https:\/\/rud.is\/b\/2016\/07\/24\/mid-year-r-packages-update-summary\/","url_meta":{"origin":3880,"position":3},"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":11746,"url":"https:\/\/rud.is\/b\/2019\/01\/10\/waffle-geoms-other-miscellaneous-in-development-package-updates\/","url_meta":{"origin":3880,"position":4},"title":"Waffle Geoms &#038; Other Miscellaneous In-Development Package Updates","author":"hrbrmstr","date":"2019-01-10","format":false,"excerpt":"More than just sergeant has been hacked on recently, so here's a run-down of various ? updates: waffle The square pie chart generating waffle? package now contains a nascent geom_waffle() so you can do things like this: library(hrbrthemes) library(waffle) library(tidyverse) tibble( parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), values = c(10, 20,\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\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":11775,"url":"https:\/\/rud.is\/b\/2019\/01\/21\/hrbrthemes-0-6-0-on-cran-other-in-development-package-news\/","url_meta":{"origin":3880,"position":5},"title":"hrbrthemes 0.6.0 on CRAN + Other In-Development Package News","author":"hrbrmstr","date":"2019-01-21","format":false,"excerpt":"Version 0.6.0 of the hrbrthemes? package should be hitting a CRAN mirror near you soon. Apart from some general documentation and code cleanup this release includes the dark theme folks have been seeing in blog posts and tweets over the past few months. It's called theme_ft_rc() since it is an\u2026","rel":"","context":"In &quot;maine&quot;","block_context":{"text":"maine","link":"https:\/\/rud.is\/b\/category\/maine\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3880","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=3880"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3880\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=3880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=3880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=3880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}