{"id":312,"date":"2012-05-29T10:00:00","date_gmt":"2012-05-29T15:00:00","guid":{"rendered":"http:\/\/labviewjournal.com\/?p=312"},"modified":"2019-07-30T17:38:14","modified_gmt":"2019-07-30T22:38:14","slug":"maintaining-state-3","status":"publish","type":"post","link":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/","title":{"rendered":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones)"},"content":{"rendered":"<p>In <a href=\"http:\/\/labviewjournal.com\/2012\/05\/maintaining-state-information-in-labview-applications-part-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">part 2<\/a> of this series, I showed how shared clones can\u2019t be used for VIs that maintain internal state.\u00a0 I want to explain a few more details about how shared clones work by answering a few common questions\u2026<\/p>\n<ol>\n<li>When are shared clones allocated?\u00a0 How many are allocated?<\/li>\n<li>When are shared clones deallocated?<\/li>\n<li>How do shared clones behave inside timed loops?<\/li>\n<li>How do shared clones work with the VI Server?<\/li>\n<\/ol>\n<p><!--more--><\/p>\n<h2><em>1. When are shared clones allocated? How many are allocated?<\/em><\/h2>\n<p>When you set a VI\u2019s properties to be reentrant with shared clones\u2026<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2012\/05\/vi-properties-shared.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-310 size-full\" src=\"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2012\/05\/vi-properties-shared.png?resize=389%2C270&#038;ssl=1\" alt=\"\" width=\"389\" height=\"270\" srcset=\"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2012\/05\/vi-properties-shared.png?w=389&amp;ssl=1 389w, https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2012\/05\/vi-properties-shared.png?resize=300%2C208&amp;ssl=1 300w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><\/a><\/p>\n<p>LabVIEW creates a \u201cclone pool\u201d with a couple of clones that can run the VI when it\u2019s called from various diagrams.\u00a0 When a diagram wants to execute this subVI, it checks out a clone from the pool and uses it to run the VI.\u00a0 When the subVI call finishes, the clone is checked back in.<\/p>\n<p>If more than two calls are needed at the same time, the next call will create a new clone, and after the call completes, this new clone will be added to the clone pool. So basically, the clone pool grows to the right size to accommodate the maximum number of calls that actually happen in parallel.<\/p>\n<h2><em>2. When are shared clones deallocated?<\/em><\/h2>\n<p>Clones aren\u2019t deallocated until the VI they are associated with is unloaded from memory.\u00a0 LabVIEW makes the assumption that the calling profile doesn\u2019t change much over the course of the application.\u00a0 It\u2019s also somewhat time-consuming to create a new clone, so we err on the side of keeping the clone in memory for future use.<\/p>\n<h2><em>3. How do shared clones behave inside timed loops?<\/em><\/h2>\n<p>Timed loops are generally used when you want more deterministic timing, so we actually preallocate reentrant VIs inside timed loops.\u00a0 By preallocating, we eliminate the possibility of having to spend time inside the loop allocating a new clone.\u00a0 So even if you set the VI to use shared clones, calls inside the timed loop will preallocate their clones, while calls outside timed loops will share clones.<\/p>\n<h2><em>4. How do shared clones work with the VI Server?<\/em><\/h2>\n<p>By default, when you open a VI reference with the VI Server, the reference won\u2019t be marked as reentrant.\u00a0 This is true even if the VI\u2019s properties are set for it to be reentrant.\u00a0 So even if you forked the reference wire and tried to call the VI with the VI Server multiple times in parallel, they would execute in a serial fashion.<\/p>\n<p>You can change the default by wiring the numeric value 0x40 to the \u201coptions\u201d input of the Open VI Reference function.\u00a0 If the referenced VI is set to reentrant execution in the VI Properties, then with the 0x40 option, the reference can then be used to call the VI in parallel through the VI Server.<\/p>\n<p>Read the help documentation for Open VI Reference for all the details on the \u201coptions\u201d input.<\/p>\n<hr \/>\n<p>What other questions do you have?\u00a0 I still owe you an explanation on the potential memory savings between shared and preallocated clones.\u00a0 Keep reading in <a href=\"https:\/\/stravaro.com\/blog\/lvjournal\/2012\/06\/maintaining-state-4\/\">part 4<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In part 2 of this series, I showed how shared clones can\u2019t be used for VIs that maintain internal state.\u00a0 I want to explain a few more details about how shared clones work by answering a few common questions\u2026 When are shared clones allocated?\u00a0 How many are allocated? When are shared clones deallocated? How do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":128,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_post_was_ever_published":false},"categories":[9,4],"tags":[34,41,59,65],"class_list":["post-312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance","category-programming","tag-fgv","tag-labview","tag-reentrancy","tag-state"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives<\/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:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives\" \/>\n<meta property=\"og:description\" content=\"In part 2 of this series, I showed how shared clones can\u2019t be used for VIs that maintain internal state.\u00a0 I want to explain a few more details about how shared clones work by answering a few common questions\u2026 When are shared clones allocated?\u00a0 How many are allocated? When are shared clones deallocated? How do [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/\" \/>\n<meta property=\"og:site_name\" content=\"LabVIEW Field Journal Archives\" \/>\n<meta property=\"article:published_time\" content=\"2012-05-29T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-30T22:38:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t<meta property=\"og:image:height\" content=\"100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brian\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian\" \/>\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:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/\"},\"author\":{\"name\":\"Brian\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#\\\/schema\\\/person\\\/5a7979adfffe497f72353515e7e4698b\"},\"headline\":\"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones)\",\"datePublished\":\"2012-05-29T15:00:00+00:00\",\"dateModified\":\"2019-07-30T22:38:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/\"},\"wordCount\":523,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/brian_square.png?fit=100%2C100&ssl=1\",\"keywords\":[\"FGV\",\"LabVIEW\",\"reentrancy\",\"state\"],\"articleSection\":[\"Performance\",\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/\",\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/\",\"name\":\"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/brian_square.png?fit=100%2C100&ssl=1\",\"datePublished\":\"2012-05-29T15:00:00+00:00\",\"dateModified\":\"2019-07-30T22:38:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/brian_square.png?fit=100%2C100&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/brian_square.png?fit=100%2C100&ssl=1\",\"width\":100,\"height\":100,\"caption\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2012\\\/05\\\/maintaining-state-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#website\",\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/\",\"name\":\"LabVIEW Field Journal Archives\",\"description\":\"Advanced LabVIEW with the NI Field Architects\",\"publisher\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#organization\",\"name\":\"Stravaro, LLC\",\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2014\\\/10\\\/Twitter_Logo_512-54543176_site_icon.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2014\\\/10\\\/Twitter_Logo_512-54543176_site_icon.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Stravaro, LLC\"},\"image\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#\\\/schema\\\/person\\\/5a7979adfffe497f72353515e7e4698b\",\"name\":\"Brian\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g\",\"caption\":\"Brian\"},\"sameAs\":[\"https:\\\/\\\/stravaro.com\\\/\"],\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/author\\\/brian\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives","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:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/","og_locale":"en_US","og_type":"article","og_title":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives","og_description":"In part 2 of this series, I showed how shared clones can\u2019t be used for VIs that maintain internal state.\u00a0 I want to explain a few more details about how shared clones work by answering a few common questions\u2026 When are shared clones allocated?\u00a0 How many are allocated? When are shared clones deallocated? How do [&hellip;]","og_url":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/","og_site_name":"LabVIEW Field Journal Archives","article_published_time":"2012-05-29T15:00:00+00:00","article_modified_time":"2019-07-30T22:38:14+00:00","og_image":[{"width":100,"height":100,"url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","type":"image\/png"}],"author":"Brian","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Brian","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#article","isPartOf":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/"},"author":{"name":"Brian","@id":"https:\/\/stravaro.com\/lvjournal\/#\/schema\/person\/5a7979adfffe497f72353515e7e4698b"},"headline":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones)","datePublished":"2012-05-29T15:00:00+00:00","dateModified":"2019-07-30T22:38:14+00:00","mainEntityOfPage":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/"},"wordCount":523,"commentCount":2,"publisher":{"@id":"https:\/\/stravaro.com\/lvjournal\/#organization"},"image":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","keywords":["FGV","LabVIEW","reentrancy","state"],"articleSection":["Performance","Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/","url":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/","name":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones) - LabVIEW Field Journal Archives","isPartOf":{"@id":"https:\/\/stravaro.com\/lvjournal\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#primaryimage"},"image":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","datePublished":"2012-05-29T15:00:00+00:00","dateModified":"2019-07-30T22:38:14+00:00","breadcrumb":{"@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#primaryimage","url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","contentUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","width":100,"height":100,"caption":""},{"@type":"BreadcrumbList","@id":"https:\/\/stravaro.com\/lvjournal\/2012\/05\/maintaining-state-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stravaro.com\/lvjournal\/"},{"@type":"ListItem","position":2,"name":"Maintaining State Information in LabVIEW Applications, Part 3 (More on Shared Clones)"}]},{"@type":"WebSite","@id":"https:\/\/stravaro.com\/lvjournal\/#website","url":"https:\/\/stravaro.com\/lvjournal\/","name":"LabVIEW Field Journal Archives","description":"Advanced LabVIEW with the NI Field Architects","publisher":{"@id":"https:\/\/stravaro.com\/lvjournal\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stravaro.com\/lvjournal\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/stravaro.com\/lvjournal\/#organization","name":"Stravaro, LLC","url":"https:\/\/stravaro.com\/lvjournal\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stravaro.com\/lvjournal\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2014\/10\/Twitter_Logo_512-54543176_site_icon.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2014\/10\/Twitter_Logo_512-54543176_site_icon.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Stravaro, LLC"},"image":{"@id":"https:\/\/stravaro.com\/lvjournal\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/stravaro.com\/lvjournal\/#\/schema\/person\/5a7979adfffe497f72353515e7e4698b","name":"Brian","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b65e73e808770fb97191694e008a472c044ef97914aa71f86b7ce1987dd0bf3?s=96&d=mm&r=g","caption":"Brian"},"sameAs":["https:\/\/stravaro.com\/"],"url":"https:\/\/stravaro.com\/lvjournal\/author\/brian\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/brian_square.png?fit=100%2C100&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/comments?post=312"}],"version-history":[{"count":3,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts\/312\/revisions"}],"predecessor-version":[{"id":646,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts\/312\/revisions\/646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/media\/128"}],"wp:attachment":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/media?parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/categories?post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/tags?post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}