

{"id":11483,"date":"2018-09-12T11:33:07","date_gmt":"2018-09-12T16:33:07","guid":{"rendered":"https:\/\/rud.is\/b\/?p=11483"},"modified":"2018-09-12T11:39:03","modified_gmt":"2018-09-12T16:39:03","slug":"the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/","title":{"rendered":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack"},"content":{"rendered":"<p>I was chatting with some cyber-mates at a recent event and the topic of cyber attacks on the U.S. power-grid came up (as it often does these days). The conversation was brief, but the topic made its way into active memory and resurfaced when I saw today&#8217;s <a href=\"https:\/\/tinyletter.com\/data-is-plural\/letters\/data-is-plural-2018-09-12-edition\">Data Is Plural<\/a> newsletter which noted that <em>&#8220;Utility companies are required to report major power outages and other \u201celectric disturbance events\u201d to the Department of Energy within a business day (or, depending on the type of event, sooner) of the incident. The federal agency then aggregates the reports annual summary datasets.&#8221;<\/em> (follow the links to the newsletter to get the URLs for the site since Jeremy deserves your ?).<\/p>\n<p>Many of us data nerds use the Data Is Plural newsletters as fodder for class assignments, blog posts or personal &#8220;data katas&#8221;. This time, I was after cyber attack data.<\/p>\n<p>When you head to the annual reports URL, you&#8217;re greeted with a SharePoint-driven HTML table:<\/p>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/html-table\/\" rel=\"attachment wp-att-11486\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11486\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/html-table\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png?fit=400%2C726&amp;ssl=1\" data-orig-size=\"400,726\" 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=\"html-table\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png?fit=400%2C726&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png?resize=400%2C726&#038;ssl=1\" alt=\"\" width=\"400\" height=\"726\" class=\"aligncenter size-full wp-image-11486\" \/><\/a><\/p>\n<p>So, our options are PDF or XLS (and I mean <code>.xls<\/code>, too, they&#8217;re not modern <code>.xlsx<\/code> files). We&#8217;ll opt for the latter and cache them locally before working on them. One &#8220;gotcha&#8221; is that the <code>href<\/code>s look like this: <code>https:\/\/www.oe.netl.doe.gov\/download.aspx?type=OE417XLS&amp;ID=78<\/code> &mdash; i.e. no filenames. <em>But<\/em>, the filenames come along for the ride when an HTTP <code>GET<\/code> or <code>HEAD<\/code> request is issued in a <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Disposition\"><code>content-disposition<\/code> response header<\/a>. We&#8217;ll use this metadata instead of siphoning off the year from the first column of the table:<\/p>\n<pre><code class=\"language-r\">library(rvest)\nlibrary(readxl)\nlibrary(tidyverse)\n\ndoe <- read_html(\"https:\/\/www.oe.netl.doe.gov\/OE417_annual_summary.aspx\")\n\ndir.create(\"~\/Data\/doe-cache-dir\", showWarnings = FALSE)\n\nhtml_nodes(doe, xpath=\".\/\/a[contains(., 'XLS')]\") %>%\n  html_attr(\"href\") %>%\n  { .pb <<- progress_estimated(length(.)) ; . } %>% # we likely don't rly need progress bars tho\n  walk(~{\n\n    .pb$tick()$print()\n\n    dl_url <- sprintf(\"https:\/\/www.oe.netl.doe.gov\/%s\", .x)\n\n    res <- HEAD(dl_url) # so we can get the filename\n    stop_for_status(res) # halt on network errors\n\n    fil <- str_replace(\n      string = res$headers['content-disposition'],\n      pattern = \"attachment; filename=\",\n      replacement = \"~\/Data\/doe-cache-dir\/\"\n    )\n\n    if (!file.exists(fil)) { # this pattern allows us to issue a lightweight HTTP HEAD request, then cache and refresh w\/o wasting server\/our bandwidth\/cpu\n      res <- GET(dl_url, httr::write_disk(fil))\n      stop_for_status(res)\n      Sys.sleep(5) # be kind to the server(s) but only if we're downloading data files since HEAD requests don't really tax services\n    }\n\n  })<\/code><\/pre>\n<p>Let's do a quick check for the likelihood of uniformity. Some of these files go back to 2002 and I suspect they're more geared for \"printing\" (the PDF counterparts were a clue) than programmatic processing:<\/p>\n<pre><code class=\"language-r\"># check to see if the files are all the same (spoiler alert: they're not)\nlist.files(\"~\/Data\/doe-cache-dir\", \"xls\", full.names=TRUE) %>%\n  map_df(~list(\n    fil = basename(.x),\n    ncols = read_xls(.x, col_names=FALSE, col_types=\"text\") %>% ncol()\n  )) -> cols_profile\n\ncols_profile\n## # A tibble: 17 x 2\n##    fil                     ncols\n##    <chr>                   <int>\n##  1 2002_Annual_Summary.xls     8\n##  2 2003_Annual_Summary.xls     8\n##  3 2004_Annual_Summary.xls     8\n##  4 2005_Annual_Summary.xls     8\n##  5 2006_Annual_Summary.xls     8\n##  6 2007_Annual_Summary.xls     8\n##  7 2008_Annual_Summary.xls     8\n##  8 2009_Annual_Summary.xls     8\n##  9 2010_Annual_Summary.xls     8\n## 10 2011_Annual_Summary.xls     9\n## 11 2012_Annual_Summary.xls     9\n## 12 2013_Annual_Summary.xls     9\n## 13 2014_Annual_Summary.xls     9\n## 14 2015_Annual_Summary.xls    11\n## 15 2016_Annual_Summary.xls    11\n## 16 2017_Annual_Summary.xls    11\n## 17 2018_Annual_Summary.xls    11<\/code><\/pre>\n<p>O_o<\/p>\n<p>At this point, I paused and wanted to see what was going on in the minds of the DoE staffers charged with releasing this data.<\/p>\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div data-carousel-extra='{&quot;blog_id&quot;:1,&quot;permalink&quot;:&quot;https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/&quot;}' id='gallery-1' class='gallery galleryid-11483 gallery-columns-4 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2002\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"723\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2002.png?fit=510%2C723&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11490\" data-attachment-id=\"11490\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2002\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2002.png?fit=1396%2C1980&amp;ssl=1\" data-orig-size=\"1396,1980\" 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=\"2002\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2002&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2002.png?fit=510%2C723&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11490'>\n\t\t\t\t2002\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2003\/'><img loading=\"lazy\" decoding=\"async\" width=\"438\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2003.png?fit=438%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11491\" data-attachment-id=\"11491\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2003\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2003.png?fit=1246%2C2914&amp;ssl=1\" data-orig-size=\"1246,2914\" 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=\"2003\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2003&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2003.png?fit=438%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11491'>\n\t\t\t\t2003\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2004\/'><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2004.png?fit=498%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11492\" data-attachment-id=\"11492\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2004\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2004.png?fit=1418%2C2914&amp;ssl=1\" data-orig-size=\"1418,2914\" 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=\"2004\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2004&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2004.png?fit=498%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11492'>\n\t\t\t\t2004\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2005\/'><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2005.png?fit=461%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11493\" data-attachment-id=\"11493\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2005\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2005.png?fit=1312%2C2914&amp;ssl=1\" data-orig-size=\"1312,2914\" 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=\"2005\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2005&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2005.png?fit=461%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11493'>\n\t\t\t\t2005\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2006\/'><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2006.png?fit=479%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11494\" data-attachment-id=\"11494\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2006\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2006.png?fit=1362%2C2914&amp;ssl=1\" data-orig-size=\"1362,2914\" 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=\"2006\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2006&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2006.png?fit=479%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11494'>\n\t\t\t\t2006\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2007\/'><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2007.png?fit=465%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11495\" data-attachment-id=\"11495\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2007\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2007.png?fit=1324%2C2914&amp;ssl=1\" data-orig-size=\"1324,2914\" 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=\"2007\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2007&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2007.png?fit=465%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11495'>\n\t\t\t\t2007\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2008\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"827\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2008.png?fit=510%2C827&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11496\" data-attachment-id=\"11496\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2008\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2008.png?fit=1796%2C2914&amp;ssl=1\" data-orig-size=\"1796,2914\" 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=\"2008\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2008&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2008.png?fit=510%2C827&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11496'>\n\t\t\t\t2008\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2009\/'><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2009.png?fit=472%2C1024&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11497\" data-attachment-id=\"11497\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2009\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2009.png?fit=1342%2C2914&amp;ssl=1\" data-orig-size=\"1342,2914\" 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=\"2009\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2009&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2009.png?fit=472%2C1024&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11497'>\n\t\t\t\t2009\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2010\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"1011\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2010.png?fit=510%2C1011&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11498\" data-attachment-id=\"11498\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2010\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2010.png?fit=1470%2C2914&amp;ssl=1\" data-orig-size=\"1470,2914\" 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=\"2010\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2010&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2010.png?fit=510%2C1011&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11498'>\n\t\t\t\t2010\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2011\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"980\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2011.png?fit=510%2C980&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11499\" data-attachment-id=\"11499\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2011\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2011.png?fit=1516%2C2914&amp;ssl=1\" data-orig-size=\"1516,2914\" 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=\"2011\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2011&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2011.png?fit=510%2C980&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11499'>\n\t\t\t\t2011\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2012\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"980\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2012.png?fit=510%2C980&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11500\" data-attachment-id=\"11500\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2012\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2012.png?fit=1516%2C2914&amp;ssl=1\" data-orig-size=\"1516,2914\" 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=\"2012\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2012&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2012.png?fit=510%2C980&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11500'>\n\t\t\t\t2012\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2013\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"976\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2013.png?fit=510%2C976&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11501\" data-attachment-id=\"11501\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2013\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2013.png?fit=1522%2C2914&amp;ssl=1\" data-orig-size=\"1522,2914\" 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=\"2013\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2013&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2013.png?fit=510%2C976&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11501'>\n\t\t\t\t2013\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2014\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"979\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2014.png?fit=510%2C979&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11502\" data-attachment-id=\"11502\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2014\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2014.png?fit=1518%2C2914&amp;ssl=1\" data-orig-size=\"1518,2914\" 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=\"2014\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2014&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2014.png?fit=510%2C979&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11502'>\n\t\t\t\t2014\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2015\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"575\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2015.png?fit=510%2C575&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11503\" data-attachment-id=\"11503\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2015\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2015.png?fit=1762%2C1986&amp;ssl=1\" data-orig-size=\"1762,1986\" 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=\"2015\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2015&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2015.png?fit=510%2C575&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11503'>\n\t\t\t\t2015\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2016\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"748\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2016.png?fit=510%2C748&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11504\" data-attachment-id=\"11504\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2016\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2016.png?fit=1986%2C2914&amp;ssl=1\" data-orig-size=\"1986,2914\" 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=\"2016\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2016&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2016.png?fit=510%2C748&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11504'>\n\t\t\t\t2016\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2017\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"748\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2017.png?fit=510%2C748&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11505\" data-attachment-id=\"11505\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2017\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2017.png?fit=1986%2C2914&amp;ssl=1\" data-orig-size=\"1986,2914\" 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=\"2017\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2017&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2017.png?fit=510%2C748&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11505'>\n\t\t\t\t2017\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2018\/'><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"748\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2018.png?fit=510%2C748&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-11506\" data-attachment-id=\"11506\" data-permalink=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/attachment\/2018\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2018.png?fit=1986%2C2914&amp;ssl=1\" data-orig-size=\"1986,2914\" 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=\"2018\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;2018&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2018.png?fit=510%2C748&amp;ssl=1\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-11506'>\n\t\t\t\t2018\n\t\t\t\t<\/dd><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n<p>(You can grab the macOS Quick Look preview snaps of all of those <a href=\"https:\/\/rud.is\/dl\/doe-evolution.zip\">here<\/a>.)<\/p>\n<p>From 2002 to 2010 the Excel documents are clearly designed for print as the target, complete with month breaklines and repeated (+ heavily formatted) headers. They even left other tabs around (inconsistently).<\/p>\n<p>Things got a <em>little<\/em> better between 2011 and 2014, but we still have month breaks and occasional, repeated headers (someone likely learned how to generate headers-per-page in Excel in 2011 then the administration changed hands and new staffers came in and fubar'd 2012 a bit before going back to the slightly better format).<\/p>\n<p>Prior to 2015, the print-as-target trumped programmatic access. Interestingly enough, this is roughly when \"data science\" was on the upswing (in a major way):<\/p>\n<p>\ufeff  <script type=\"text\/javascript\" src=\"https:\/\/ssl.gstatic.com\/trends_nrtr\/1544_RC03\/embed_loader.js\"><\/script><\/p>\n<p><script type=\"text\/javascript\">\n    trends.embed.renderExploreWidget(\"TIMESERIES\", {\"comparisonItem\":[{\"keyword\":\"data science\",\"geo\":\"US\",\"time\":\"2004-01-01 2018-09-12\"}],\"category\":0,\"property\":\"\"}, {\"exploreQuery\":\"date=all&geo=US&q=data%20science\",\"guestPath\":\"https:\/\/trends.google.com:443\/trends\/embed\/\"});\n  <\/script><\/p>\n<p>Starting with 2015 we have a \"month\" column, more uniformity for specifying dates &amp; times and more care given to other value fields, so kudos to the then and current staffers who made our data-machinating lives easier.<\/p>\n<p>This really is, I believe, a byproduct of modern \"data literacy\". Folks in charge of gathering and publishing data are realizing there are multiple ways others want\/need to consume the data. The original purpose for this data was to hand a report to someone after regulations were put in place to mandate notifications. I'm willing to bet nobody did anything with this data for a few years. Staffers either learned to wield Excel better or new staffers came in with this new knowledge. Finally, recent years clearly show that the staffers realize that folks are as (or more) likely to programmatically consume this information as they are reading a a long list of events (?). More work is needed (and an API or CSV\/JSON output would be super cool) but it's great to see data literacy alive and well in the halls of the U.S. gov.<\/p>\n<p>Said modern format changes do not really help us work with the complete data set and the more recent files have issues all their own, including inconsistency in the way the date\/time columns are represented in Excel cells.<\/p>\n<p>By golly, we're <em>still<\/em> going to try to read all these files in and work with them (for at least the purpose I originally set out on). We'll have to deal with the differences in columns and come up with a way to remove non-data rows. I also kinda at least want dates as dates. Here's my stab at an initial clean-up (there's lots more work to do, though):<\/p>\n<pre><code class=\"language-r\">map2(cols_profile$fil, cols_profile$ncols, ~{\n\n  if (.y == 8) { # handle 8 cols\n\n    suppressWarnings(read_xls(\n      path = sprintf(\"~\/Data\/doe-cache-dir\/%s\", .x),\n      col_names = c(\"date_began\", \"region\", \"time\", \"area\", \"event_type\", \"loss\", \"customers_affected\", \"date_restored\"),\n      col_types = c(\"date\", \"text\", \"text\", \"text\", \"text\", \"text\", \"text\", \"date\")\n    )) %>%\n      filter(!is.na(date_began)) %>%\n      mutate(date_began = as.Date(date_began))\n\n  } else if (.y == 9) { # handle 9 cols\n\n    suppressWarnings(read_xls(\n      path = sprintf(\"~\/Data\/doe-cache-dir\/%s\", .x),\n      col_names = c(\"date_began\", \"time_began\", \"date_restored\", \"time_restored\", \"area\", \"region\", \"event_type\", \"loss\", \"customers_affected\"),\n      col_types = c(\"date\", \"guess\", \"date\", \"guess\", \"text\", \"text\", \"text\", \"text\", \"text\")\n    )) %>%\n      filter(!is.na(date_began)) %>%\n      mutate(date_began = as.Date(date_began))\n\n  } else if (.y == 11) { # handle 11 cols\n\n    # note that the date columns aren't uniform in the Excel spreadsheets even in these more data-literate files :-(\n\n    suppressWarnings(read_xls(\n      path = sprintf(\"~\/Data\/doe-cache-dir\/%s\", .x),\n      col_names = c(\"month\", \"date_began\", \"time_began\", \"date_restored\", \"time_restored\", \"area\", \"region\", \"alert_criteria\", \"event_type\", \"loss\", \"customers_affected\"),\n      col_types = c(\"text\", \"text\", \"guess\", \"text\", \"guess\", \"text\", \"text\", \"text\", \"text\", \"text\", \"text\")\n    )) %>%\n      mutate(\n        date_began = case_when(\n          str_detect(date_began, \"\/\") ~ suppressWarnings(as.Date(date_began, format=\"%m\/%d\/%Y\")),\n          str_detect(date_began, \"^[[:digit:]]+$\") ~ suppressWarnings(as.Date(as.integer(date_began), origin = \"1899-12-30\")),\n          TRUE ~ suppressWarnings(as.Date(NA))\n        )\n      ) %>%\n      mutate(\n        date_restored = case_when(\n          str_detect(date_restored, \"\/\") ~ suppressWarnings(as.Date(date_restored, format=\"%m\/%d\/%Y\")),\n          str_detect(date_restored, \"^[[:digit:]]+$\") ~ suppressWarnings(as.Date(as.integer(date_restored), origin = \"1899-12-30\")),\n          TRUE ~ suppressWarnings(as.Date(NA))\n        )\n      ) %>%\n      filter(!is.na(date_began))\n\n  }\n\n}) -> reports\n\nreports[[1]]\n## # A tibble: 23 x 8\n##    date_began region time                area      event_type      loss  customers_affec\u2026 date_restored\n##    <date>     <chr>  <chr>               <chr>     <chr>           <chr> <chr>            <dttm>\n##  1 2002-01-30 SPP    0.25                Oklahoma  Ice Storm       500   1881134          2002-02-07 12:00:00\n##  2 2002-01-29 SPP    Evening             Metropol\u2026 Ice Storm       500-\u2026 270000           NA\n##  3 2002-01-30 SPP    0.66666666666666663 Missouri  Ice Storm       210   95000            2002-02-10 21:00:00\n##  4 2002-02-27 WSCC   0.45000000000000001 Californ\u2026 Interruption o\u2026 300   255000           2002-02-27 11:35:00\n##  5 2002-03-09 ECAR   0                   Lower Pe\u2026 Severe Weather  190   190000           2002-03-11 12:00:00\n##  6 2002-04-08 WSCC   0.625               Arizona   Vandalism\/      0     0                2002-04-09 00:00:00\n##  7 2002-07-09 WSCC   0.51875000000000004 Californ\u2026 Interruption o\u2026 240   1 PG&E           2002-07-09 19:54:00\n##  8 2002-07-19 WSCC   0.49375000000000002 Californ\u2026 Interruption o\u2026 240   1 PG&E           2002-07-19 16:30:00\n##  9 2002-07-20 NPCC   0.52777777777777779 New York  Fire            278   63500            2002-07-20 20:12:00\n## 10 2002-08-02 MAIN   0.52986111111111112 Illinois  Interruption o\u2026 232   53565            2002-08-02 18:36:00\n## # ... with 13 more rows\n\nreports[[10]]\n## # A tibble: 307 x 9\n##    date_began time_began  date_restored       time_restored  area    region event_type loss  customers_affec\u2026\n##    <date>     <chr>       <dttm>              <chr>          <chr>   <chr>  <chr>      <chr> <chr>\n##  1 2011-01-11 0.96388888\u2026 2011-01-11 00:00:00 0.96388888888\u2026 Athens\u2026 NPCC   Electrica\u2026 0     0\n##  2 2011-01-12 0.25        2011-01-12 00:00:00 0.58333333333\u2026 Massac\u2026 NPCC   Winter St\u2026 N\/A   80000\n##  3 2011-01-13 0.30624999\u2026 2011-01-13 00:00:00 0.34236111111\u2026 North \u2026 FRCC   Firm Syst\u2026 150   20900\n##  4 2011-01-18 0.58333333\u2026 2011-01-18 00:00:00 0.58333333333\u2026 Whitma\u2026 NPCC   Vandalism  0     0\n##  5 2011-01-23 0.29166666\u2026 2011-01-23 00:00:00 0.54166666666\u2026 Frankl\u2026 WECC   Vandalism  0     0\n##  6 2011-01-24 0.55555555\u2026 2011-01-24 00:00:00 0.5625         Newman\u2026 WECC   Suspiciou\u2026 0     0\n##  7 2011-01-25 0.14097222\u2026 2011-01-25 00:00:00 0.45833333333\u2026 Newark\u2026 RFC    Vandalism  0     0\n##  8 2011-01-26 0.39236111\u2026 2011-01-27 00:00:00 0.70833333333\u2026 Carson\u2026 WECC   Suspected\u2026 0     0\n##  9 2011-01-26 0.39791666\u2026 2011-01-27 00:00:00 0.62708333333\u2026 Michig\u2026 RFC    Vandalism  0     0\n## 10 2011-01-26 0.70833333\u2026 2011-01-31 00:00:00 0.33333333333\u2026 Montgo\u2026 RFC    Winter St\u2026 N\/A   210000\n## # ... with 297 more rows\n\nreports[[17]]\n## # A tibble: 120 x 11\n##    month  date_began time_began date_restored time_restored area   region alert_criteria     event_type loss\n##    <chr>  <date>     <chr>      <date>        <chr>         <chr>  <chr>  <chr>              <chr>      <chr>\n##  1 Janua\u2026 2018-01-01 0.7645833\u2026 2018-01-02    0.7576388888\u2026 Tenne\u2026 SERC   Public appeal to \u2026 Severe We\u2026 Unkn\u2026\n##  2 Janua\u2026 2018-01-01 0.7381944\u2026 NA            Unknown       Texas: TRE    Public appeal to \u2026 Severe We\u2026 Unkn\u2026\n##  3 Janua\u2026 2018-01-01 0.9006944\u2026 2018-01-02    0.4375        Tenne\u2026 SERC   Public appeal to \u2026 System Op\u2026 Unkn\u2026\n##  4 Janua\u2026 2018-01-02 0.4166666\u2026 2018-02-12    0.3333333333\u2026 New Y\u2026 NPCC   Fuel supply emerg\u2026 Fuel Supp\u2026 675\n##  5 Janua\u2026 2018-01-02 0.3125     NA            Unknown       South\u2026 SERC   Public appeal to \u2026 Severe We\u2026 0\n##  6 Janua\u2026 2018-01-02 0.28125    2018-01-02    0.375         North\u2026 SERC   System-wide volta\u2026 Severe We\u2026 14998\n##  7 Janua\u2026 2018-01-04 0.0756944\u2026 2018-01-04    0.0895833333\u2026 Texas\u2026 TRE    Physical attack t\u2026 Actual Ph\u2026 Unkn\u2026\n##  8 Janua\u2026 2018-01-12 0.5472222\u2026 2018-01-12    0.6201388888\u2026 Michi\u2026 RF     Cyber event that \u2026 System Op\u2026 41\n##  9 Janua\u2026 2018-01-15 0.1805555\u2026 2018-01-18    0.2416666666\u2026 Texas: TRE    Public appeal to \u2026 Severe We\u2026 Unkn\u2026\n## 10 Janua\u2026 2018-01-16 0.625      2018-01-18    0.5416666666\u2026 Tenne\u2026 SERC   Public appeal to \u2026 Severe We\u2026 Unkn\u2026\n## # ... with 110 more rows, and 1 more variable: customers_affected <chr>\n<\/code><\/pre>\n<p>If you'd've handled the above differently it'd be ? if you could drop a note in the comments (for both my benefit and that of any other readers who have kindly made it this far into this tome).<\/p>\n<p>At this point, I really just want to <em>finally<\/em> see if there are any \"cyber\" events in the data set and when\/where they were. To do that, let's whittle down the columns a bit and make one data frame out of all the reports:<\/p>\n<pre><code class=\"language-r\">map_df(reports, ~{\n  select(.x, date_began, region, area, event_type, customers_affected, date_restored) %>%\n    mutate(date_restored = as.Date(date_restored)) %>%\n    mutate(\n      customers_affected = suppressWarnings(\n        str_replace_all(customers_affected, \"\\\\-.*$|[[:punct:]]+|[[:alpha:]]+\", \"\") %>%\n          as.numeric()\n      )\n    ) %>%\n    mutate(date_restored = as.Date(ifelse(is.na(date_restored), date_began, date_restored), origin = \"1970-01-01\"))\n}) -> events\n\nevents\n## # A tibble: 2,243 x 6\n##    date_began region area                          event_type                 customers_affect\u2026 date_restored\n##    <date>     <chr>  <chr>                         <chr>                                  <dbl> <date>\n##  1 2002-01-30 SPP    Oklahoma                      Ice Storm                            1881134 2002-02-07\n##  2 2002-01-29 SPP    Metropolitan Kansas City Area Ice Storm                             270000 2002-01-29\n##  3 2002-01-30 SPP    Missouri                      Ice Storm                              95000 2002-02-10\n##  4 2002-02-27 WSCC   California                    Interruption of Firm Load             255000 2002-02-27\n##  5 2002-03-09 ECAR   Lower Peninsula of Michigan   Severe Weather                        190000 2002-03-11\n##  6 2002-04-08 WSCC   Arizona                       Vandalism\/                                 0 2002-04-09\n##  7 2002-07-09 WSCC   California                    Interruption of Firm Power                 1 2002-07-09\n##  8 2002-07-19 WSCC   California                    Interruption of Firm Powe\u2026                 1 2002-07-19\n##  9 2002-07-20 NPCC   New York                      Fire                                   63500 2002-07-20\n## 10 2002-08-02 MAIN   Illinois                      Interruption of Firm Power             53565 2002-08-02\n## # ... with 2,233 more rows<\/code><\/pre>\n<p>Now we're cookin' with gas!<\/p>\n<p>Let's do a quick check to make sure things look OK:<\/p>\n<pre><code class=\"language-r\">count(events, event_type, sort=TRUE)\n## # A tibble: 390 x 2\n##    event_type                         n\n##    <chr>                          <int>\n##  1 Severe Weather                   369\n##  2 Vandalism                        216\n##  3 Severe Weather - Thunderstorms    97\n##  4 Suspected Physical Attack         87\n##  5 System Operations                 74\n##  6 Severe Thunderstorms              70\n##  7 Winter Storm                      51\n##  8 Ice Storm                         42\n##  9 Physical Attack - Vandalism       40\n## 10 High Winds                        33\n## # ... with 380 more rows<\/code><\/pre>\n<p>Those events+quantities seem to make sense. Now, for my ultimate goal:<\/p>\n<pre><code class=\"language-r\">filter(events, grepl(\"cyber|hack\", event_type, ignore.case=TRUE)) # yep, grepl() is still in muscle memory\n## # A tibble: 19 x 6\n##    date_began region area                               event_type             customers_affec\u2026 date_restored\n##    <date>     <chr>  <chr>                              <chr>                             <dbl> <date>\n##  1 2003-01-25 ECAR   Cincinnati, Ohio                   Cyber Threat From Int\u2026               NA 2003-01-25\n##  2 2011-02-03 RFC    Bowie, Maryland                    Suspected Cyber Attack                0 2011-02-03\n##  3 2011-02-17 WECC   Roseville, California              Suspected Cyber Attack                0 2011-02-23\n##  4 2011-03-14 RFC    Baltimore, Maryland                Suspected Cyber Attack               NA 2011-03-14\n##  5 2011-04-03 SERC   Unknown                            Suspected Cyber Attack                0 2011-04-05\n##  6 2011-07-08 RFC    PJM Corporate Office, Pennsylvania Suspected Cyber Attack               NA 2011-07-11\n##  7 2011-12-21 WECC   Boise, Idaho                       Suspected Cyber Attack                0 2011-12-21\n##  8 2012-01-17 TRE    Austin, Texas                      Suspected Cyber Attack                0 2012-01-17\n##  9 2012-02-17 SERC   Little Rock, Arkansas              Suspected Cyber Attack               NA 2012-02-17\n## 10 2012-11-15 MRO    Iowa; Michigan                     Suspected Cyber Attack               NA 2012-11-15\n## 11 2013-06-21 MRO    Michigan, Iowa                     Suspected Cyber Attack               NA 2013-10-30\n## 12 2013-10-16 SERC   Roxboro Plant, North Carolina      Cyber Event with Pote\u2026                0 2013-10-16\n## 13 2014-03-20 NPCC   New York                           Suspected Cyber Attack               NA 2014-03-20\n## 14 2014-10-21 MRO    Carmel, Indiana                    Suspected Cyber Attack               NA 2014-10-21\n## 15 2014-12-30 NPCC   New Hampshire, Massachusetts, Mai\u2026 Suspected Cyber Attack               NA 2014-12-31\n## 16 2016-02-07 NPCC   New York: Orange County            Cyber Attack                         NA 2016-02-07\n## 17 2016-04-12 WECC   Washington: Pend Oreille County    Cyber Attack                          0 2016-04-12\n## 18 2016-11-09 WECC   California: Stanislaus County, Sa\u2026 Cyber Attack                          0 2016-11-09\n## 19 2016-12-13 WECC   California: Riverside County;      Cyber Event                           0 2016-12-13<\/code><\/pre>\n<p>?<\/p>\n<h3>FIN<\/h3>\n<p>There's a great deal of work left out of this power-outage data cleanup work:<\/p>\n<ul>\n<li>Turn outage start\/end info into <code>POSIXct<\/code> objects<\/li>\n<li>Normalize <code>area<\/code> (make it a <code>data_frame<\/code> column with state and municipality so it can be unnested nicely)<\/li>\n<li>Normalize <code>event_type<\/code> since many of the phrases used are equivalent and some have more than one categorization<\/li>\n<li>Normalize <code>loss<\/code> somehow and do a better job with <code>customers_affected<\/code> (I did not double-check my work and I think there are errors in that column, now, but I didn't need it for my goal).<\/li>\n<\/ul>\n<p>Since GitLab snippets are terrible, awful, slow things I've grudgingly posted the above code (contiguously) over <a href=\"https:\/\/gist.github.com\/hrbrmstr\/7bd38defd92979970b187ae533550696\">at GitHub<\/a>.<\/p>\n<p>If you wrangle the data more and\/or come up with other insights drop a note in the comments with a link to your post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was chatting with some cyber-mates at a recent event and the topic of cyber attacks on the U.S. power-grid came up (as it often does these days). The conversation was brief, but the topic made its way into active memory and resurfaced when I saw today&#8217;s Data Is Plural newsletter which noted that &#8220;Utility [&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":[764,91],"tags":[],"class_list":["post-11483","post","type-post","status-publish","format-standard","hentry","category-data-wrangling","category-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - 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\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - rud.is\" \/>\n<meta property=\"og:description\" content=\"I was chatting with some cyber-mates at a recent event and the topic of cyber attacks on the U.S. power-grid came up (as it often does these days). The conversation was brief, but the topic made its way into active memory and resurfaced when I saw today&#8217;s Data Is Plural newsletter which noted that &#8220;Utility [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-12T16:33:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-12T16:39:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2002.png?fit=530%2C752&amp;ssl=1\" \/>\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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack\",\"datePublished\":\"2018-09-12T16:33:07+00:00\",\"dateModified\":\"2018-09-12T16:39:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/\"},\"wordCount\":994,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/html-table.png\",\"articleSection\":[\"data wrangling\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/\",\"name\":\"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/html-table.png\",\"datePublished\":\"2018-09-12T16:33:07+00:00\",\"dateModified\":\"2018-09-12T16:39:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/html-table.png?fit=400%2C726&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/html-table.png?fit=400%2C726&ssl=1\",\"width\":400,\"height\":726},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/09\\\/12\\\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack\"}]},{\"@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":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - 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\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/","og_locale":"en_US","og_type":"article","og_title":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - rud.is","og_description":"I was chatting with some cyber-mates at a recent event and the topic of cyber attacks on the U.S. power-grid came up (as it often does these days). The conversation was brief, but the topic made its way into active memory and resurfaced when I saw today&#8217;s Data Is Plural newsletter which noted that &#8220;Utility [&hellip;]","og_url":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/","og_site_name":"rud.is","article_published_time":"2018-09-12T16:33:07+00:00","article_modified_time":"2018-09-12T16:39:03+00:00","og_image":[{"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/2002.png?fit=530%2C752&amp;ssl=1","type":"","width":"","height":""}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack","datePublished":"2018-09-12T16:33:07+00:00","dateModified":"2018-09-12T16:39:03+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/"},"wordCount":994,"commentCount":0,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png","articleSection":["data wrangling","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/","url":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/","name":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png","datePublished":"2018-09-12T16:33:07+00:00","dateModified":"2018-09-12T16:39:03+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png?fit=400%2C726&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/09\/html-table.png?fit=400%2C726&ssl=1","width":400,"height":726},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2018\/09\/12\/the-evolution-of-data-literacy-at-the-u-s-department-of-energy-finding-power-grid-cyber-attacks-in-a-data-haystack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"The Evolution of Data Literacy at the U.S. Department of Energy + Finding Power Grid Cyber Attacks in a Data Haystack"}]},{"@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-2Zd","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4242,"url":"https:\/\/rud.is\/b\/2016\/04\/06\/52vis-week-2-2016-week-14-honing-in-on-the-homeless\/","url_meta":{"origin":11483,"position":0},"title":"52Vis Week 2 (2016 Week #14) &#8211; Honing in on the Homeless","author":"hrbrmstr","date":"2016-04-06","format":false,"excerpt":">UPDATE: Since I put in a \"pull request\" requirement, I intended to put in a link to getting started with GitHub. Dr. Jenny Bryan's @stat545 has a great [section on git](https:\/\/stat545-ubc.github.io\/git00_index.html) that should hopefully make it a bit less painful. ### Why 52Vis? In case folks are wondering why I'm\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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/percapita.png?fit=800%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/percapita.png?fit=800%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/percapita.png?fit=800%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/percapita.png?fit=800%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":10886,"url":"https:\/\/rud.is\/b\/2018\/06\/07\/making-world-tile-grid-grids\/","url_meta":{"origin":11483,"position":1},"title":"Making World Tile Grid-Grids","author":"hrbrmstr","date":"2018-06-07","format":false,"excerpt":"A colleague asked if I would blog about how I crafted the grid of world tile grids in this post and I accepted the challenge. The technique isn't too hard as it just builds on the initial work by Jon Schwabish and a handy file made by Maarten Lambrechts. 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":4225,"url":"https:\/\/rud.is\/b\/2016\/03\/30\/introducing-a-weekly-r-python-js-etc-vis-challenge\/","url_meta":{"origin":11483,"position":2},"title":"Introducing a Weekly R \/ Python \/ JS \/ etc Vis Challenge!","author":"hrbrmstr","date":"2016-03-30","format":false,"excerpt":">UPDATE: Deadline is now 2016-04-05 23:59 EDT; next vis challenge is 2016-04-06! Per a suggestion, I'm going to try to find a neat data set (prbly one from @jsvine) to feature each week and toss up some sample code (99% of the time prbly in R) and offer up 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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/RStudioScreenSnapz024.png?fit=1200%2C605&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/RStudioScreenSnapz024.png?fit=1200%2C605&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/RStudioScreenSnapz024.png?fit=1200%2C605&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/RStudioScreenSnapz024.png?fit=1200%2C605&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/RStudioScreenSnapz024.png?fit=1200%2C605&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":12630,"url":"https:\/\/rud.is\/b\/2020\/01\/21\/davos-2020-world-economic-forum-2020-global-risk-report-cyber-cliffs-notes\/","url_meta":{"origin":11483,"position":3},"title":"Davos 2020 World Economic Forum 2020 Global Risk Report Cyber Cliffs Notes","author":"hrbrmstr","date":"2020-01-21","format":false,"excerpt":"Each year the World Economic Forum releases their Global Risk Report around the time of the annual Davos conference. This year's report is out and below are notes on the \"cyber\" content to help others speed-read through those sections (in the event you don't read the whole thing). Their expert\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":11102,"url":"https:\/\/rud.is\/b\/2018\/07\/29\/ggplot-doodling-with-hibp-breaches\/","url_meta":{"origin":11483,"position":4},"title":"ggplot &#8220;Doodling&#8221; with HIBP Breaches","author":"hrbrmstr","date":"2018-07-29","format":false,"excerpt":"After reading this interesting analysis of \"How Often Are Americans' Accounts Breached?\" by Gaurav Sood (which we need more of in cyber-land) I gave in to the impulse to do some gg-doodling with the \"Have I Been Pwnd\" JSON data he used. It's just some basic data manipulation with some\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\/2018\/07\/hibp-lines.png?fit=1200%2C588&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/hibp-lines.png?fit=1200%2C588&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/hibp-lines.png?fit=1200%2C588&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/hibp-lines.png?fit=1200%2C588&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/07\/hibp-lines.png?fit=1200%2C588&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2329,"url":"https:\/\/rud.is\/b\/2013\/03\/14\/%cf%80-awareness-datavis-vast-2013-moar-data-greader-machinations\/","url_meta":{"origin":11483,"position":5},"title":"\u03c0, Awareness, DataVis, VAST 2013, Moar data! &#038; GReader Machinations","author":"hrbrmstr","date":"2013-03-14","format":false,"excerpt":"Far too many interesting bits to spam on Twitter individually but each is worth getting the word out on: - It's [\u03c0 Day](https:\/\/www.google.com\/search?q=pi+day)* - Unless you're living in a hole, you probably know that [Google Reader is on a death march](http:\/\/www.bbc.co.uk\/news\/technology-21785378). I'm really liking self-hosting [Tiny Tiny RSS](https:\/\/www.google.com\/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDEQFjAA&url=https%3A%2F%2Fgithub.com%2Fgothfox%2FTiny-Tiny-RSS&ei=YtlBUfOLJvLe4AOHtoDIAQ&usg=AFQjCNGwtEr8slx-i0vNzhQi4b4evRVXFA&bvm=bv.43287494,d.dmg) so far,\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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11483","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=11483"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11483\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=11483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=11483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=11483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}