{"id":99,"date":"2011-07-27T16:19:05","date_gmt":"2011-07-27T21:19:05","guid":{"rendered":"http:\/\/labviewjournal.com\/?p=99"},"modified":"2011-07-27T16:19:05","modified_gmt":"2011-07-27T21:19:05","slug":"to-ppl-packed-project-libraries-or-not-to-ppl-part-1","status":"publish","type":"post","link":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/","title":{"rendered":"To PPL (Packed Project Libraries) or not to PPL &#8211; Part 1"},"content":{"rendered":"<p>\t\t\t\tWelcome to LabVIEW Journal!\u00a0 The Field Architect team is thrilled to be working with teams of talented and creative engineers throughout the US, helping them tackle the next software challenge.\u00a0With NIWeek 2011 around the corner, it seems fitting to discuss a LabVIEW 2010 feature.<\/p>\n<p>We are working with one team that faces a few issues related to the deployment of updated API\u2019s (Application Programming Interfaces, or libraries, or groups of VIs with a specific task or responsibility).\u00a0 This group is well organized with clear roles and responsibilities for specific libraries that are rolled into a larger test application.\u00a0 However, the clean handoff and distribution of updated code has been cumbersome.<\/p>\n<p><strong>Enter Packed Project Libraries (PPLs)<\/strong><\/p>\n<p>A packed project library is simply a compiled .lvlib that contains all of the .lvlib&#8217;s VIs and allows the user to call the public VIs in a manner that is identical to the use of the original .lvlib.<\/p>\n<p>Assume that someone is tasked with writing an analysis library that will be used by a broader team.\u00a0 The developer places all of the code in an .lvlib (recall that an .lvlib is simply an xml file that references the VIs which actually reside on the computer&#8217;s file system).\u00a0 The team has jointly defined the interface to the library and as such, public VIs are provided for their use. \u00a0The implementation details that may change over time remain buried in private VIs.<\/p>\n<p><strong>Create a Packed Project Library &#8211; .lvlibp\u00a0<\/strong><\/p>\n<p style=\"text-align: left\">1.\u00a0 Ensure code is complete, reviewed, and tested. \u00a0Check that VIs have proper access scope. \u00a0The developer selects access scope by right clicking on the VI in the project. \u00a0Public access scope allows any VI to call the .lvlib&#8217;s VI. \u00a0Private access scope ensures that only VIs that are also members of the .lvlib can call the VI.<\/p>\n<p style=\"text-align: left\"><a href=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/Pic_11.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-105\" title=\"Pic_1\" src=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/Pic_11-263x300.png?resize=263%2C300\" alt=\"\" width=\"263\" height=\"300\" \/><\/a><\/p>\n<p style=\"text-align: left\">2. \u00a0Create a build specification and run it. PPLs are not an ideal distribution format for libraries that will be changed or modified fairly regularly. \u00a0Once compiled, the process can not be reversed. \u00a0This is on par with DLLs and EXEs. \u00a0The process moves in one direction. \u00a0Compiled code cannot be reverse engineered into the original source. \u00a0Some may consider this a drawback, others may deem it a benefit. \u00a0The developer of the library can easily modify the source in the original .lvlib and subsequently recompile and redeploy.<\/p>\n<p style=\"text-align: left\"><a href=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/Pic2.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-106\" title=\"Pic2\" src=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/Pic2-261x300.png?resize=261%2C300\" alt=\"\" width=\"261\" height=\"300\" \/><\/a><\/p>\n<p style=\"text-align: left\">3. \u00a0Distribute the PPL to team members. \u00a0What were formerly public VIs of the .lvlib, are now called Exported VIs in the .lvlibp. \u00a0They are used in the calling code in the same manner as the public VIs of the former .lvlib.<\/p>\n<p style=\"text-align: left\"><a href=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/pic3.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-107\" title=\"pic3\" src=\"https:\/\/i0.wp.com\/stravaro.com\/blog\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/pic3-233x300.png?resize=233%2C300\" alt=\"\" width=\"233\" height=\"300\" \/><\/a><\/p>\n<p style=\"text-align: left\">4. \u00a0Initially transition to the .lvlibp. \u00a0You can right click on the .lvlib and select the option to replace with a Packed Project Library. \u00a0This feature is included to facilitate the transition to using PPLs. \u00a0No feature is included to reverse the process, see below.<\/p>\n<p style=\"text-align: left\"><strong>Ensure Better Software Development Processes<\/strong><\/p>\n<p style=\"text-align: left\">In summary, PPLs are an elegant solution for the smooth deployment of a group of VIs from the developers of those VIs to the team who will be using the code. \u00a0One .lvproj is used for PPL development and then the PPL could be utilized in unlimited projects. Those who are using the PPL cannot edit the VIs and have no exposure to the private VIs. \u00a0PPLs force us to implement a few practices that we often skip: ensure code is complete, reviewed, and tested. \u00a0Then deploy the code.<\/p>\n<p>As noted above, once you convert calling code \u00a0to use a PPL, LabVIEW does not have a native mechanism to revert the calling code such that it now points to the original .lvlib. \u00a0 Rumor suggests that a very enterprising Applications Engineer at National Instruments wrote code to <a href=\"http:\/\/lavag.org\/topic\/13474-libraries-packed-libraries-source-code-distributions-and-the-end-of-the-universe\/\" target=\"_blank\" rel=\"noopener noreferrer\">revert back to *.lvlib<\/a>.\u00a0 However reverting breaks the original intended use case for PPLs. \u00a0As bugs and features are needed in the PPL, it is the developer&#8217;s responsibility to make changes to the .lvlib, retest, rerun the build, and distribute it to the team.<\/p>\n<p><strong>Easily Update Libraries called by a Test Application<\/strong><\/p>\n<p>Once the test application has been deployed as an exe, updating to\u00a0a new PPL is straightforward. \u00a0The build specification for Test.exe allows the developer to select the directory in which the PPL will reside. \u00a0Updating to a new version requires a simple copy of the new PPL to the Test.exe&#8217;s directory, replacing the old file. \u00a0As such, Test.exe is not modified thus saving the time to revalidate. Test.exe must be rerun to call the new version of the PPL.<\/p>\n<p><strong>Look Under the Hood<\/strong><\/p>\n<p>Let&#8217;s consider the use case in the previous paragraph. \u00a0What would happen if developers where not using PPLs? \u00a0Answering this question requires that we dive into the details of how the LabVIEW execution system works. One of the nuances of LabVIEW is that a change in a subVI can cause calling VIs, potentially numbering in the hundreds, to be forced to recompile. \u00a0Changes that force the recompile include modifications to the inplaceness algorithm of the subVI or specific changes to the connector pane. \u00a0(Brian Powell might comment on the inplaceness algorithm in a future post, provided the community vigorously asks him to do so). When PPLs are not used, the calling code would detect the changes and force the recompile.<\/p>\n<p>So what is happening in the LabVIEW execution system once PPLs are in use? \u00a0 The execution system now recognizes that a difference exists between expected state of a PPL subVI and it&#8217;s newer state (different inplaceness etc.). \u00a0So the caller is intelligent and when changes occur, it uses a VIServer-like methodology to call the subVI that is part of the PPL. \u00a0As such the caller has the responsibility to do what ever is necessary, potentially copy data, etc., so that it can call the subVI in it&#8217;s newer state without the recompile. \u00a0All of this is transparent to us, the users of the PPL. \u00a0Without the forced recompile, many users may experience the benefit of reduced build times.<\/p>\n<p><strong>Address the Issues With Hierarchies of PPLs<\/strong><\/p>\n<p>We&#8217;ve covered the basics. \u00a0Now we move to a more complicated situation that we encountered. \u00a0 Let us consider the use case in which LibaryA.lvlibp calls LibraryB.lvlibp. When LibraryA is first compiled to a PPL it will place LibararyB.lvlibp in a support directory. \u00a0This is fine, until Test.exe will call both LibraryA.lvlibp and directly call LibraryB.lvlibp. \u00a0Building Test.exe requires that a new copy of LibraryB.lvlibp be placed in a support directory, thus two copies now exist. \u00a0Fully describing this scenario and the potential solutions will be detailed in a future post. However, it did convince us that PPLs are not yet perfected.<\/p>\n<p><strong>Talk About Your Experiences<\/strong><\/p>\n<p>As Brian noted in his post, we are utilizing this forum for an honest conversation about our challenges and the best solutions moving forward. \u00a0We look forward to your comments, commendations, and criticisms about Packed Project Libraries. \u00a0Your ideas and feedback will help drive improvements to this and other features.<\/p>\n<div><span style=\"font-family: Arial, 'Times New Roman', 'Bitstream Charter', Times, serif\"><br \/>\n<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to LabVIEW Journal!\u00a0 The Field Architect team is thrilled to be working with teams of talented and creative engineers throughout the US, helping them tackle the next software challenge.\u00a0With NIWeek 2011 around the corner, it seems fitting to discuss a LabVIEW 2010 feature. We are working with one team that faces a few issues [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":129,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[43],"class_list":["post-99","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-labview-packed-project-libraries-lvlibp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>To PPL (Packed Project Libraries) or not to PPL - Part 1 - 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\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"To PPL (Packed Project Libraries) or not to PPL - Part 1 - LabVIEW Field Journal Archives\" \/>\n<meta property=\"og:description\" content=\"Welcome to LabVIEW Journal!\u00a0 The Field Architect team is thrilled to be working with teams of talented and creative engineers throughout the US, helping them tackle the next software challenge.\u00a0With NIWeek 2011 around the corner, it seems fitting to discuss a LabVIEW 2010 feature. We are working with one team that faces a few issues [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"LabVIEW Field Journal Archives\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-27T21:19:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_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=\"Nancy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nancy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/\"},\"author\":{\"name\":\"Nancy\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#\\\/schema\\\/person\\\/d744941a580281fa0367716873e64aa4\"},\"headline\":\"To PPL (Packed Project Libraries) or not to PPL &#8211; Part 1\",\"datePublished\":\"2011-07-27T21:19:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/\"},\"wordCount\":1180,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/nancy_square.png?fit=100%2C100&ssl=1\",\"keywords\":[\"LabVIEW Packed Project Libraries lvlibp\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/\",\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/\",\"name\":\"To PPL (Packed Project Libraries) or not to PPL - Part 1 - LabVIEW Field Journal Archives\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/nancy_square.png?fit=100%2C100&ssl=1\",\"datePublished\":\"2011-07-27T21:19:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/nancy_square.png?fit=100%2C100&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/stravaro.com\\\/lvjournal\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2011\\\/07\\\/nancy_square.png?fit=100%2C100&ssl=1\",\"width\":100,\"height\":100,\"caption\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/2011\\\/07\\\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"To PPL (Packed Project Libraries) or not to PPL &#8211; Part 1\"}]},{\"@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\\\/d744941a580281fa0367716873e64aa4\",\"name\":\"Nancy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g\",\"caption\":\"Nancy\"},\"url\":\"https:\\\/\\\/stravaro.com\\\/lvjournal\\\/author\\\/nancy\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"To PPL (Packed Project Libraries) or not to PPL - Part 1 - 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\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/","og_locale":"en_US","og_type":"article","og_title":"To PPL (Packed Project Libraries) or not to PPL - Part 1 - LabVIEW Field Journal Archives","og_description":"Welcome to LabVIEW Journal!\u00a0 The Field Architect team is thrilled to be working with teams of talented and creative engineers throughout the US, helping them tackle the next software challenge.\u00a0With NIWeek 2011 around the corner, it seems fitting to discuss a LabVIEW 2010 feature. We are working with one team that faces a few issues [&hellip;]","og_url":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/","og_site_name":"LabVIEW Field Journal Archives","article_published_time":"2011-07-27T21:19:05+00:00","og_image":[{"width":100,"height":100,"url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","type":"image\/png"}],"author":"Nancy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nancy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#article","isPartOf":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/"},"author":{"name":"Nancy","@id":"https:\/\/stravaro.com\/lvjournal\/#\/schema\/person\/d744941a580281fa0367716873e64aa4"},"headline":"To PPL (Packed Project Libraries) or not to PPL &#8211; Part 1","datePublished":"2011-07-27T21:19:05+00:00","mainEntityOfPage":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/"},"wordCount":1180,"commentCount":0,"publisher":{"@id":"https:\/\/stravaro.com\/lvjournal\/#organization"},"image":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","keywords":["LabVIEW Packed Project Libraries lvlibp"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/","url":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/","name":"To PPL (Packed Project Libraries) or not to PPL - Part 1 - LabVIEW Field Journal Archives","isPartOf":{"@id":"https:\/\/stravaro.com\/lvjournal\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#primaryimage"},"image":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","datePublished":"2011-07-27T21:19:05+00:00","breadcrumb":{"@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#primaryimage","url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","contentUrl":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","width":100,"height":100,"caption":""},{"@type":"BreadcrumbList","@id":"https:\/\/stravaro.com\/lvjournal\/2011\/07\/to-ppl-packed-project-libraries-or-not-to-ppl-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stravaro.com\/lvjournal\/"},{"@type":"ListItem","position":2,"name":"To PPL (Packed Project Libraries) or not to PPL &#8211; Part 1"}]},{"@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\/d744941a580281fa0367716873e64aa4","name":"Nancy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9dffdc6d73aeb7f623577880aeff4f0e36a6af3bc1cae1d95d15af284adb590?s=96&d=mm&r=g","caption":"Nancy"},"url":"https:\/\/stravaro.com\/lvjournal\/author\/nancy\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/stravaro.com\/lvjournal\/wp-content\/uploads\/sites\/2\/2011\/07\/nancy_square.png?fit=100%2C100&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts\/99","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":0,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/media\/129"}],"wp:attachment":[{"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stravaro.com\/lvjournal\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}