

{"id":11928,"date":"2019-02-18T12:13:21","date_gmt":"2019-02-18T17:13:21","guid":{"rendered":"https:\/\/rud.is\/b\/?p=11928"},"modified":"2019-02-18T12:13:21","modified_gmt":"2019-02-18T17:13:21","slug":"in-dev-wigle-your-way-into-a-hotspot-with-wiglr","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/","title":{"rendered":"In Dev: WiGLE Your Way Into A Hotspot with wiglr"},"content":{"rendered":"<p><a href=\"https:\/\/wigle.net\">WiGLE<\/a> has been around a <em>while<\/em> and is a great site to explore the pervasiveness or sparsity of Wi-Fi (and cellular) networks around the globe. While interactive use is fun, WiGLE also has a free API (so long as you obey the EULA and aren&#8217;t abusive) that lets you explore a little deeper if you register for an account, get a key, and use the WIP <a href=\"https:\/\/github.com\/hrbrmstr\/wiglr\"><code>wiglr<\/code>?<\/a> | <a href=\"https:\/\/gitlab.com\/hrbrmstr\/wiglr\">GL<\/a>| <a href=\"https:\/\/github.com\/hrbrmstr\/wiglr\">GH<\/a> package.<\/p>\n<p>Install from your least offensive social coding site:<\/p>\n<pre><code class=\"language-r\">devtools::install_git(\"https:\/\/sr.ht.com\/~hrbrmstr\/wiglr\")\n# or\ndevtools::install_gitlab(\"hrbrmstr\/wiglr\")\n# or (if you must)\ndevtools::install_github(\"hrbrmstr\/wiglr\")\n<\/code><\/pre>\n<p>read the code (to ensure R package developers are pwning or tracking you),and &hellip;after putting your &#8220;Encoded for use&#8221; token in the <code>WIGLE_API_KEY<\/code> environment variable&hellip;start exploring!<\/p>\n<p>Let&#8217;s pull all the country stats and plot the top 20:<\/p>\n<pre><code class=\"language-r\">library(wiglr)\nlibrary(hrbrthemes)\nlibrary(tidyverse) # for show\n\ncc &lt;- wigle_country_stats()\n\ntop_n(cc, 20) %&gt;%  # show top 20 \n  mutate(country = factor(country, levels = rev(country))) %&gt;% \n  ggplot(aes(count, country)) +\n  geom_segment(aes(xend=0, yend=country), size = 6, color = ft_cols$blue) +\n  scale_x_comma(position = \"top\") +\n  labs(\n    x = \"# Networks\", y = NULL,\n    title = \"WiGLE Top 20 Countries\"\n  ) +\n  theme_ipsum_rc(grid = \"X\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/country-stats-02-1\/\" rel=\"attachment wp-att-11929\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11929\" data-permalink=\"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/country-stats-02-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/country-stats-02-1.png?fit=1536%2C1152&amp;ssl=1\" data-orig-size=\"1536,1152\" 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=\"country-stats-02-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/country-stats-02-1.png?fit=510%2C383&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/country-stats-02-1.png?resize=510%2C383&#038;ssl=1\" alt=\"\" width=\"510\" height=\"383\" class=\"aligncenter size-full wp-image-11929\" \/><\/a><\/p>\n<p>We can also supply a bounding box and find all the Wi-Fi access points in the vicinity and use <code>leaflet<\/code> to make a handy interactive map (you can add other columns, too, to find fully open ones):<\/p>\n<pre><code class=\"language-r\">library(leaflet)\n\nwifi_box &lt;- wigle_bbox_search(43.2468, 43.2806, -70.9282, -70.8025)\n\nwifi_box$results %&gt;% \n  mutate(labs = sprintf(\"SSID: &lt;code&gt;%s&lt;\/code&gt;&lt;br\/&gt;Encryption: %s\", ssid, encryption)) %&gt;% \n  leaflet() %&gt;% \n  addTiles() %&gt;% \n  addCircleMarkers(~trilong, ~trilat, radius = 1, popup = ~labs)\n<\/code><\/pre>\n<p><iframe seamless style = \"width:100%; height:600px;\" src=\"https:\/\/rud.is\/dl\/wigle-01.html\"><\/iframe><\/p>\n<p>There&#8217;s good but not complete WiGLE API coverage:<\/p>\n<ul>\n<li><code>wigle_about_me<\/code>: Get WiGLE user object for the current logged-in user<\/li>\n<li><code>wigle_api_key<\/code>: Get or set WIGLE_API_KEY value<\/li>\n<li><code>wigle_bbox_search<\/code>: Get WiGLE named map of general statistics<\/li>\n<li><code>wigle_country_stats<\/code>: Get WiGLE statistics organized by country<\/li>\n<li><code>wigle_region_stats<\/code>: Get WiGLE statistics for a specified country, organized by region<\/li>\n<li><code>wigle_site_stats<\/code>: Get WiGLE named map of general statistics<\/li>\n<\/ul>\n<h3>FIN<\/h3>\n<p>The package is a WIP but the API is really straightforward, so if you&#8217;re looking to contribute to a (dare I say &#8220;fun!&#8221;) open source project in 2019 now&#8217;s your chance! Just drop an issue on whatever social coding site you prefer (ping me in a comment if you use something besides SourceHut, GitLab or GitHub and I&#8217;ll get the package up there) and spec out what you&#8217;d like to do <em>or<\/em> just file a well-articulated PR. Potential areas to enhance are:<\/p>\n<ul>\n<li>support for more search parameters<\/li>\n<li>a function for automatic pagination<\/li>\n<li>cover the remaining search\/retrieval API endpoints<\/li>\n<li>investigate how to use R to <em>submit<\/em> readings<\/li>\n<li>create an internal package Shiny app for exploring WiGLE straight from R<\/li>\n<li>develop standard base visualizations and add them as package functions<\/li>\n<li>write a vignette<\/li>\n<li>improve package docs<\/li>\n<li>develop a statistical model for the likelihood on finding free\/open Wi-Fi in an area or the impact of Wi-Fi\/cellular deserts on communities by layering in Census data<\/li>\n<\/ul>\n<p>Working with or developing for the package may also help shed some light on yet-another-way we&#8217;re exposed in the digital world.<a href=\"https:\/\/rud.is\/b\/\" rel=\"attachment wp-att-11940\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/leaf-1.png?resize=510%2C364&#038;ssl=1\" alt=\"\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-11940\" \/><\/a><\/p>\n<p>As always you&#8217;ll get judgement-free help\/suggestions. full credit in the DESCRIPTION and the fame and glory of CRAN if it ever makes its way through the process. The package does <em>just enough<\/em> for me right now so it will be a while before I get to the above TODO list if others don&#8217;t jump in first.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WiGLE has been around a while and is a great site to explore the pervasiveness or sparsity of Wi-Fi (and cellular) networks around the globe. While interactive use is fun, WiGLE also has a free API (so long as you obey the EULA and aren&#8217;t abusive) that lets you explore a little deeper if you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11941,"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-11928","post","type-post","status-publish","format-standard","has-post-thumbnail","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>In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is\" \/>\n<meta property=\"og:description\" content=\"WiGLE has been around a while and is a great site to explore the pervasiveness or sparsity of Wi-Fi (and cellular) networks around the globe. While interactive use is fun, WiGLE also has a free API (so long as you obey the EULA and aren&#8217;t abusive) that lets you explore a little deeper if you [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-18T17:13:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2064\" \/>\n\t<meta property=\"og:image:height\" content=\"850\" \/>\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\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"In Dev: WiGLE Your Way Into A Hotspot with wiglr\",\"datePublished\":\"2019-02-18T17:13:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/\"},\"wordCount\":468,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/search-results.png?fit=2064%2C850&ssl=1\",\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/\",\"name\":\"In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/search-results.png?fit=2064%2C850&ssl=1\",\"datePublished\":\"2019-02-18T17:13:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/search-results.png?fit=2064%2C850&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/search-results.png?fit=2064%2C850&ssl=1\",\"width\":2064,\"height\":850},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/02\\\/18\\\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"In Dev: WiGLE Your Way Into A Hotspot with wiglr\"}]},{\"@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":"In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/","og_locale":"en_US","og_type":"article","og_title":"In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is","og_description":"WiGLE has been around a while and is a great site to explore the pervasiveness or sparsity of Wi-Fi (and cellular) networks around the globe. While interactive use is fun, WiGLE also has a free API (so long as you obey the EULA and aren&#8217;t abusive) that lets you explore a little deeper if you [&hellip;]","og_url":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/","og_site_name":"rud.is","article_published_time":"2019-02-18T17:13:21+00:00","og_image":[{"width":2064,"height":850,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&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\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"In Dev: WiGLE Your Way Into A Hotspot with wiglr","datePublished":"2019-02-18T17:13:21+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/"},"wordCount":468,"commentCount":9,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1","articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/","url":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/","name":"In Dev: WiGLE Your Way Into A Hotspot with wiglr - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1","datePublished":"2019-02-18T17:13:21+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1","width":2064,"height":850},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2019\/02\/18\/in-dev-wigle-your-way-into-a-hotspot-with-wiglr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"In Dev: WiGLE Your Way Into A Hotspot with wiglr"}]},{"@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\/2019\/02\/search-results.png?fit=2064%2C850&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-36o","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":11859,"url":"https:\/\/rud.is\/b\/2019\/02\/03\/r-package-update-urlscan\/","url_meta":{"origin":11928,"position":0},"title":"R Package Update: urlscan","author":"hrbrmstr","date":"2019-02-03","format":false,"excerpt":"The urlscan? package (an interface to the urlscan.io API) is now at version 0.2.0 and supports urlscan.io's authentication requirement when submitting a link for analysis. The service is handy if you want to learn about the details \u2014 all the gory technical details \u2014 for a website. For instance, say\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":4217,"url":"https:\/\/rud.is\/b\/2016\/03\/29\/easier-composite-u-s-choropleths-with-albersusa\/","url_meta":{"origin":11928,"position":1},"title":"Easier Composite U.S. Choropleths with albersusa","author":"hrbrmstr","date":"2016-03-29","format":false,"excerpt":"Folks who've been tracking this blog on R-bloggers probably remember [this post](https:\/\/rud.is\/b\/2014\/11\/16\/moving-the-earth-well-alaska-hawaii-with-r\/) where I showed how to create a composite U.S. map with an Albers projection (which is commonly referred to as AlbersUSA these days thanks to D3). I'm not sure why I didn't think of this earlier, but you\u2026","rel":"","context":"In &quot;cartography&quot;","block_context":{"text":"cartography","link":"https:\/\/rud.is\/b\/category\/cartography\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/Fullscreen_3_29_16__9_06_AM.png?fit=1200%2C747&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/Fullscreen_3_29_16__9_06_AM.png?fit=1200%2C747&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/Fullscreen_3_29_16__9_06_AM.png?fit=1200%2C747&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/Fullscreen_3_29_16__9_06_AM.png?fit=1200%2C747&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/Fullscreen_3_29_16__9_06_AM.png?fit=1200%2C747&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3898,"url":"https:\/\/rud.is\/b\/2016\/01\/13\/cobble-xpath-interactively-with-the-xmlview-package\/","url_meta":{"origin":11928,"position":2},"title":"Cobble XPath Interactively with the xmlview Package","author":"hrbrmstr","date":"2016-01-13","format":false,"excerpt":"(If you don't know what XML is, you should probably [read a primer](https:\/\/en.wikipedia.org\/wiki\/XML) before reading this post,) When working with data, one inevitably comes across things encoded in XML. I'm in the \"anti-XML\" camp, but deal with my fair share of XML in \"cyber\" and help out enough people who\u2026","rel":"","context":"In &quot;data wrangling&quot;","block_context":{"text":"data wrangling","link":"https:\/\/rud.is\/b\/category\/data-wrangling\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/01\/RStudioScreenSnapz003.png?fit=865%2C523&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/01\/RStudioScreenSnapz003.png?fit=865%2C523&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/01\/RStudioScreenSnapz003.png?fit=865%2C523&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/01\/RStudioScreenSnapz003.png?fit=865%2C523&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":3585,"url":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","url_meta":{"origin":11928,"position":3},"title":"Achieve Charting Zen With TauCharts","author":"hrbrmstr","date":"2015-08-04","format":false,"excerpt":"There was some chatter on the twitters this week about a relatively new D3-based charting library called [TauCharts](http:\/\/taucharts.com\/) (also @taucharts). The API looked pretty clean and robust, so I started working on an htmlwidget for it and was quickly joined by the Widget Master himself, @timelyportfolio. TauCharts definitely has a\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11846,"url":"https:\/\/rud.is\/b\/2019\/02\/02\/homebrew-2-0-0-released-homebrewanalytics-package-updated\/","url_meta":{"origin":11928,"position":4},"title":"Homebrew 2.0.0 Released == homebrewanalytics package updated","author":"hrbrmstr","date":"2019-02-02","format":false,"excerpt":"A major new release of Homebrew has landed and now includes support for Linux as well as Windows! via the Windows Subsystem for Linux. There are overall stability and speed improvements baked in as well. The aforelinked notification has all the info you need to see the minutiae. Unless you've\u2026","rel":"","context":"In &quot;homebrew&quot;","block_context":{"text":"homebrew","link":"https:\/\/rud.is\/b\/category\/homebrew\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/02-50-libs-01.png?fit=1200%2C1197&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/02-50-libs-01.png?fit=1200%2C1197&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/02-50-libs-01.png?fit=1200%2C1197&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/02-50-libs-01.png?fit=1200%2C1197&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/02\/02-50-libs-01.png?fit=1200%2C1197&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3508,"url":"https:\/\/rud.is\/b\/2015\/07\/10\/r-package-to-access-the-open-movie-database-omdb-api\/","url_meta":{"origin":11928,"position":5},"title":"R Package to access the Open Movie Database (OMDB) API","author":"hrbrmstr","date":"2015-07-10","format":false,"excerpt":"It's not on CRAN yet, but there's a devtools-installable R package for getting data from the OMDB API. It covers all of the public API endpoints: find_by_id: Retrieve OMDB info by IMDB ID search find_by_title: Retrieve OMDB info by title search get_actors: Get actors from an omdb object as a\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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11928","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=11928"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11928\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/11941"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=11928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=11928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=11928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}