

{"id":1532,"date":"2012-07-20T21:06:20","date_gmt":"2012-07-21T02:06:20","guid":{"rendered":"http:\/\/rud.is\/b\/?p=1532"},"modified":"2017-03-27T09:41:25","modified_gmt":"2017-03-27T14:41:25","slug":"veris-community-json-vs-xml","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/","title":{"rendered":"VERIS Community :: JSON vs XML"},"content":{"rendered":"<p>You may not be aware of the fact that the #spiffy Verizon Biz folk have some <a href=\"https:\/\/github.com\/veris-opensource\/verisc\">VERIS open source<\/a> components, one of which is the <span class=\"removed_link\" title=\"https:\/\/github.com\/veris-opensource\/verisc\/blob\/master\/verisc.xsd\">XML schema<\/span> for the &#8220;Vocabulary for Event Recording and Incident Sharing&#8221;. <\/p>\n<p>While most Java-backends will readily slurp up and spit back archaic XML data, the modern web is a JSON world and I wanted to take a stab at encoding the <span class=\"removed_link\" title=\"https:\/\/github.com\/veris-opensource\/verisc\/blob\/master\/data\/sample.allelements.xml\">sample incident<\/span> in JSON format since I&#8217;m pretty convinced this type of data is definitely a NoSQL candidate and that JSON is the future.<\/p>\n<p>I didn&#8217;t run this past the VZB folk prior to the post, but I think I got it right (well, it validates, at least :-) :<\/p>\n<pre lang=\"javascript\" line=\"1\">\r\n{\r\n  \"VERIS_community\": {\r\n    \"incident\": {\r\n      \"incident_uid\": \"String\",\r\n      \"handler_id\": \"String\",\r\n      \"security_compromise\": \"String\",\r\n      \"related_incidents\": { \"related_incident_id\": \"String\" },\r\n      \"summary\": \"String\",\r\n      \"notes\": \"String\",\r\n      \"victim\": {\r\n        \"victim_id\": \"String\",\r\n        \"industry\": \"000\",\r\n        \"employee_count\": \"25,001 to 50,000\",\r\n        \"location\": {\r\n          \"country\": \"String\",\r\n          \"region\": \"String\"\r\n        },\r\n        \"revenue\": {\r\n          \"amount\": \"0\",\r\n          \"iso_currency_code\": \"USD\"\r\n        },\r\n        \"security_budget\": {\r\n          \"amount\": \"0\",\r\n          \"iso_currency_code\": \"USD\"\r\n        },\r\n        \"notes\": \"String\"\r\n      },\r\n      \"agent\": [\r\n        {\r\n          \"motive\": \"String\",\r\n          \"role\": \"String\",\r\n          \"notes\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"External\",\r\n          \"motive\": \"String\",\r\n          \"role\": \"String\",\r\n          \"notes\": \"String\",\r\n          \"external_variety\": \"String\",\r\n          \"origins\": {\r\n            \"origin\": {\r\n              \"country\": \"String\",\r\n              \"region\": \"String\"\r\n            }\r\n          },\r\n          \"ips\": { \"ip\": \"String\" }\r\n        },\r\n        {\r\n          \"type\": \"Internal\",\r\n          \"motive\": \"String\",\r\n          \"role\": \"String\",\r\n          \"notes\": \"String\",\r\n          \"internal_variety\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"Partner\",\r\n          \"motive\": \"String\",\r\n          \"role\": \"String\",\r\n          \"notes\": \"String\",\r\n          \"industry\": \"0000\",\r\n          \"origins\": {\r\n            \"origin\": {\r\n              \"country\": \"String\",\r\n              \"region\": \"String\"\r\n            }\r\n          }\r\n        }\r\n      ],\r\n      \"action\": [\r\n        { \"notes\": \"Some notes about a generic action.\" },\r\n        {\r\n          \"type\": \"Malware\",\r\n          \"notes\": \"String\",\r\n          \"malware_function\": \"String\",\r\n          \"malware_vector\": \"String\",\r\n          \"cves\": { \"cve\": \"String\" },\r\n          \"names\": { \"name\": \"String\" },\r\n          \"filenames\": { \"filename\": \"String\" },\r\n          \"hash_values\": { \"hash_value\": \"String\" },\r\n          \"outbound_IPs\": { \"outbound_IP\": \"String\" },\r\n          \"outbound_URLs\": { \"outbound_URL\": \"String\" }\r\n        },\r\n        {\r\n          \"type\": \"Hacking\",\r\n          \"notes\": \"String\",\r\n          \"hacking_method\": \"String\",\r\n          \"hacking_vector\": \"String\",\r\n          \"cves\": { \"cve\": \"String\" }\r\n        },\r\n        {\r\n          \"type\": \"Social\",\r\n          \"notes\": \"String\",\r\n          \"social_tactic\": \"String\",\r\n          \"social_channel\": \"String\",\r\n          \"email\": {\r\n            \"addresses\": { \"address\": \"String\" },\r\n            \"subject_lines\": { \"subject_line\": \"String\" },\r\n            \"urls\": { \"url\": \"String\" }\r\n          }\r\n        },\r\n        {\r\n          \"type\": \"Misuse\",\r\n          \"notes\": \"Notes for a misuse action.\",\r\n          \"misuse_variety\": \"String\",\r\n          \"misuse_venue\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"Physical\",\r\n          \"notes\": \"Notes for a physical action.\",\r\n          \"physical_variety\": \"String\",\r\n          \"physical_location\": \"String\",\r\n          \"physical_access\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"Error\",\r\n          \"notes\": \"Notes for a Error action.\",\r\n          \"error_variety\": \"String\",\r\n          \"error_reason\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"Environmental\",\r\n          \"notes\": \"Notes for a environmental action.\",\r\n          \"environmental_variety\": \"String\"\r\n        }\r\n      ],\r\n      \"assets\": {\r\n        \"asset_variety\": \"String\",\r\n        \"asset_ownership\": \"String\",\r\n        \"asset_hosting\": \"String\",\r\n        \"asset_management\": \"String\",\r\n        \"os\": \"String\",\r\n        \"notes\": \"String\"\r\n      },\r\n      \"attribute\": [\r\n        { \"notes\": \"String\" },\r\n        {\r\n          \"type\": \"ConfidentialityPossession\",\r\n          \"notes\": \"String\",\r\n          \"data_disclosure\": \"String\",\r\n          \"data\": {\r\n            \"data_variety\": \"String\",\r\n            \"amount\": \"0\"\r\n          },\r\n          \"data_state\": \"String\"\r\n        },\r\n        {\r\n          \"type\": \"AvailabilityUtility\",\r\n          \"notes\": \"String\",\r\n          \"availability_utility_variety\": \"String\",\r\n          \"availability_utility_duration\": \"String\"\r\n        }\r\n      ],\r\n      \"timeline\": {\r\n        \"timestamp_first_known_action\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        },\r\n        \"timestamp_data_exfiltration\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        },\r\n        \"timestamp_incident_discovery\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        },\r\n        \"timestamp_containment\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        },\r\n        \"timestamp_initial_compromise\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        },\r\n        \"timestamp_investigation\": {\r\n          \"year\": \"2001\",\r\n          \"month\": \"--12\",\r\n          \"day\": \"---17\",\r\n          \"time\": \"14:20:00.0Z\"\r\n        }\r\n      },\r\n      \"discovery_method\": \"String\",\r\n      \"control_failure\": \"String\",\r\n      \"corrective_action\": \"String\",\r\n      \"loss\": {\r\n        \"loss_variety\": \"String\",\r\n        \"loss_amount\": {\r\n          \"amount\": \"0\",\r\n          \"iso_currency_code\": \"USD\"\r\n        }\r\n      },\r\n      \"impact_rating\": \"String\",\r\n      \"impact_estimate\": {\r\n        \"amount\": \"0\",\r\n        \"iso_currency_code\": \"USD\"\r\n      },\r\n      \"certainty\": \"String\"\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>I believe I&#8217;d advocate for the &#8220;timestamps&#8221; to be more timestamp-y in the JSON version (the dashes do not make much sense to me even in the XML version) and any fields with min\/max range values to be separated to actual min &#038; max fields. I&#8217;m going try to find some cycles to mock up a MongoDB \/ Node.js sample to show how this JSON format would work. At a minimum, even a rough conversion from XML to JSON when requested by a browser would make it easier for client-side data rendering\/manipulation.<\/p>\n<p>If you&#8217;re not thinking about using VERIS for documenting incidents or hounding your vendors to enable easier support for it, <b>you should be<\/b>. If you&#8217;re skittish about recording incidents anonymously into the VERIS Community, you should <i>get over it<\/i> (barring capacity constraints).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You may not be aware of the fact that the #spiffy Verizon Biz folk have some VERIS open source components, one of which is the XML schema for the &#8220;Vocabulary for Event Recording and Incident Sharing&#8221;. While most Java-backends will readily slurp up and spit back archaic XML data, the modern web is a JSON [&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":true,"_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":[3,15,669],"tags":[],"class_list":["post-1532","post","type-post","status-publish","format-standard","hentry","category-information-security","category-javascript","category-veris"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VERIS Community :: JSON vs XML - 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\/2012\/07\/20\/veris-community-json-vs-xml\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VERIS Community :: JSON vs XML - rud.is\" \/>\n<meta property=\"og:description\" content=\"You may not be aware of the fact that the #spiffy Verizon Biz folk have some VERIS open source components, one of which is the XML schema for the &#8220;Vocabulary for Event Recording and Incident Sharing&#8221;. While most Java-backends will readily slurp up and spit back archaic XML data, the modern web is a JSON [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2012-07-21T02:06:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-03-27T14:41:25+00:00\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"VERIS Community :: JSON vs XML\",\"datePublished\":\"2012-07-21T02:06:20+00:00\",\"dateModified\":\"2017-03-27T14:41:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/\"},\"wordCount\":261,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"articleSection\":[\"Information Security\",\"Javascript\",\"VERIS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/\",\"name\":\"VERIS Community :: JSON vs XML - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2012-07-21T02:06:20+00:00\",\"dateModified\":\"2017-03-27T14:41:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/07\\\/20\\\/veris-community-json-vs-xml\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VERIS Community :: JSON vs XML\"}]},{\"@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":"VERIS Community :: JSON vs XML - 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\/2012\/07\/20\/veris-community-json-vs-xml\/","og_locale":"en_US","og_type":"article","og_title":"VERIS Community :: JSON vs XML - rud.is","og_description":"You may not be aware of the fact that the #spiffy Verizon Biz folk have some VERIS open source components, one of which is the XML schema for the &#8220;Vocabulary for Event Recording and Incident Sharing&#8221;. While most Java-backends will readily slurp up and spit back archaic XML data, the modern web is a JSON [&hellip;]","og_url":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/","og_site_name":"rud.is","article_published_time":"2012-07-21T02:06:20+00:00","article_modified_time":"2017-03-27T14:41:25+00:00","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\/2012\/07\/20\/veris-community-json-vs-xml\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"VERIS Community :: JSON vs XML","datePublished":"2012-07-21T02:06:20+00:00","dateModified":"2017-03-27T14:41:25+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/"},"wordCount":261,"commentCount":2,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"articleSection":["Information Security","Javascript","VERIS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/","url":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/","name":"VERIS Community :: JSON vs XML - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2012-07-21T02:06:20+00:00","dateModified":"2017-03-27T14:41:25+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2012\/07\/20\/veris-community-json-vs-xml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"VERIS Community :: JSON vs XML"}]},{"@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-oI","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":10287,"url":"https:\/\/rud.is\/b\/2018\/05\/18\/lmx-ot-nosj-interchanging-classic-data-formats-with-single-blackmagic-incantations\/","url_meta":{"origin":1532,"position":0},"title":"&#8220;LMX ot NOSJ!&#8221; Interchanging Classic Data Formats With Single blackmagic Incantations","author":"hrbrmstr","date":"2018-05-18","format":false,"excerpt":"The D.C. Universe magic hero Zatanna used spells (i.e. incantations) to battle foes and said spells were just sentences said backwards, hence the mixed up jumble in the title. But, now I'm regretting not naming the package zatanna and reversing the function names to help ensure they're only used deliberately\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":12917,"url":"https:\/\/rud.is\/b\/2021\/01\/26\/making-it-easier-to-experiment-with-compiled-swift-code-in-r\/","url_meta":{"origin":1532,"position":1},"title":"Making It Easier To Experiment With Compiled Swift Code In R","author":"hrbrmstr","date":"2021-01-26","format":false,"excerpt":"The past two posts have (lightly) introduced how to use compiled Swift code in R, but they've involved a bunch of \"scary\" command line machinations and incantations. One feature of {Rcpp} I've always ? is the cppFunction() (\"r-lib\" zealots have a similar cpp11::cpp_function()) which lets one experiment with C[++] code\u2026","rel":"","context":"In &quot;macOS&quot;","block_context":{"text":"macOS","link":"https:\/\/rud.is\/b\/category\/macos\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":123,"url":"https:\/\/rud.is\/b\/2011\/02\/14\/metricon-evidence-based-risk-management\/","url_meta":{"origin":1532,"position":2},"title":"Metricon: Evidence Based Risk Management","author":"hrbrmstr","date":"2011-02-14","format":false,"excerpt":"Better management through better measurementSpeakers: Wade Baker and Alex Hutton and Chris Porter State of the industry: are we a science or pseudoscience? random fact gathering morass of interesting, trivial, irrelevant obs variety of theories that provide little guidance to data gathering \u00a0 Sources of knowledge under \"risk\" aggregate: asset\u2026","rel":"","context":"In &quot;Information Security&quot;","block_context":{"text":"Information Security","link":"https:\/\/rud.is\/b\/category\/information-security\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18584,"url":"https:\/\/rud.is\/b\/2024\/03\/23\/vulnchecks-free-community-kev-cve-apis-code-golang-cli-utility\/","url_meta":{"origin":1532,"position":3},"title":"VulnCheck&#8217;s Free Community KEV &#038; CVE APIs  (Code &#038; Golang CLI Utility)","author":"hrbrmstr","date":"2024-03-23","format":false,"excerpt":"VulnCheck has some new, free API endpoints for the cybersecurity community. Two extremely useful ones are for their extended version of CISA\u2019s KEV, and an in-situ replacement for NVD\u2019s sad excuse for an API and soon-to-be-removed JSON feeds. There are two ways to work with these APIs. One is retrieve\u2026","rel":"","context":"In &quot;APIs&quot;","block_context":{"text":"APIs","link":"https:\/\/rud.is\/b\/category\/apis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2637,"url":"https:\/\/rud.is\/b\/2013\/09\/08\/rforecastio-simple-r-package-to-access-forecast-io-weather-data\/","url_meta":{"origin":1532,"position":4},"title":"Rforecastio &#8211; Simple R Package To Access forecast.io Weather Data","author":"hrbrmstr","date":"2013-09-08","format":false,"excerpt":"It doesn't get much better for me than when I can combine R and weather data in new ways. I've got something brewing with my Nest thermostat and needed to get some current wx readings plus forecast data. I could have chosen a number of different sources or API's but\u2026","rel":"","context":"In &quot;Development&quot;","block_context":{"text":"Development","link":"https:\/\/rud.is\/b\/category\/development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6091,"url":"https:\/\/rud.is\/b\/2017\/06\/17\/replicating-the-apache-drill-yelp-academic-dataset-with-sergeant\/","url_meta":{"origin":1532,"position":5},"title":"Replicating the Apache Drill &#8216;Yelp&#8217; Academic Dataset Analysis with sergeant","author":"hrbrmstr","date":"2017-06-17","format":false,"excerpt":"The Apache Drill folks have a nice walk-through tutorial on how to analyze the Yelp Academic Dataset with Drill. It's a bit out of date (the current Yelp data set structure is different enough that the tutorial will error out at various points), but it's a great example of how\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"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\/1532","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=1532"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/1532\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=1532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=1532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=1532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}