<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007">
   <channel>
      <title>An &quot;Engineers&quot; Take Blogroll</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=SPAVxtmb3RGxSzvHbLsjiw</link>
      <pubDate>Sat, 21 Nov 2009 04:56:45 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Happy Halloween</title>
         <link>http://www.eyesonvis.com/blog/2009/10/happy-halloween.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/blog/uploaded_images/HalloweenFairy2-761330.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:267px;height:400px;&quot; src=&quot;http://www.eyesonvis.com/blog/uploaded_images/HalloweenFairy2-761296.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/blog/uploaded_images/VIServer_NormK-761262.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:300px;height:400px;&quot; src=&quot;http://www.eyesonvis.com/blog/uploaded_images/VIServer_NormK-761211.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;It's Friday, October 30, at 12:50PM and the LabVIEW team Halloween Demo day is about to start! I wasn't very creative this year, so I'm just a run-of-the-mill fairy. Norm, however, went all out on his VI Server costume!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-4400628590858633565?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-4400628590858633565</guid>
         <pubDate>Fri, 30 Oct 2009 05:49:00 -0700</pubDate>
      </item>
      <item>
         <title>The &quot;R&quot; in &quot;R&amp;D&quot;</title>
         <link>http://www.eyesonvis.com/blog/2009/10/r-in-r.html</link>
         <description>I'm so excited to be able to share with you the project that I've been working on recently! As far as I know, this is the first time LabVIEW R&amp;D has been able to run a Pioneer program to get customer feedback on a research project.&lt;br /&gt;&lt;br /&gt;I'd like to emphasize that this is &lt;span style=&quot;font-style:italic;&quot;&gt;Research&lt;/span&gt;. This version of LabVIEW is a Pioneer. That could mean many things, but in this case it means that this version is not approved for production work and the features in it are not guaranteed to be in any future version of LabVIEW.&lt;br /&gt;&lt;br /&gt;If you see something you like or dislike in this Pioneer, please let us know! This is an opportunity for you to directly affect the future design of LabVIEW.&lt;br /&gt;&lt;br /&gt;I encourage you to watch these two short videos on the LabVIEW Notebook:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=AT76UPUhqKw&quot;&gt;Introduction to the LabVIEW Notebook Pioneer&lt;/a&gt; (on YouTube)&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=Ejz_4wKS5Bs&quot;&gt;Using Data in the LabVIEW Notebook Pioneer&lt;/a&gt; (on YouTube)&lt;/li&gt;&lt;/ul&gt;If you have time to &quot;get behind the wheel,&quot; please join the LabVIEW Notebook Pioneer program and try it out. Although it's not actually a Beta, we're running the Pioneer through the Beta Program Resource Center, so to sign up go to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/beta&quot;&gt;ni.com/beta&lt;/a&gt; and select the product &lt;span style=&quot;font-weight:bold;&quot;&gt;LabVIEW Notebook&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Once approved to the program, you'll receive an e-mail invitation to join a private group on ni.com/Community. That's where you can download the Pioneer and discuss it on our private forum.&lt;br /&gt;&lt;br /&gt;Note that the LabVIEW Notebook is intended to complement the LabVIEW Project, not replace it. However, if you have ideas for how concepts in the Notebook could be applied to Projects as well, we'd love to discuss them with you!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1668468963043746923?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1668468963043746923</guid>
         <pubDate>Tue, 27 Oct 2009 09:46:00 -0700</pubDate>
      </item>
      <item>
         <title>Are you part of a user group?</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/JgQNkjNpogE/</link>
         <description>We are deep in the middle of planning for 2010 right now. One of the areas we want to continue to invest in (or perhaps raise our investment) is around user groups. Working with user groups can be a tricky topic for us &amp;#8211; the best groups are those run completely by customers, and they [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=232&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=232</guid>
         <pubDate>Fri, 23 Oct 2009 11:48:26 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>We are deep in the middle of planning for 2010 right now. One of the areas we want to continue to invest in (or perhaps raise our investment) is around user groups. Working with user groups can be a tricky topic for us &#8211; the best groups are those run completely by customers, and they tend to be the ones who don&#8217;t want a lot of interference from NI trying to &#8220;sell&#8221; them on products. On the flip side, we are often asked for new technical content that can be used for user group presentations. </p>
<p>Feel free to comment on this topic &#8211; I&#8217;ll create a poll to make it easier to respond:</p>
<p> <a rel="nofollow" name="pd_a_2159662"></a><div class="PDS_Poll" id="PDI_container2159662" style="display:inline-block;"></div> <noscript> <a rel="nofollow" target="_blank" href="http://answers.polldaddy.com/poll/2159662/">View This Poll</a><br/><span style="font-size:10px;"><a rel="nofollow" target="_blank" href="http://answers.polldaddy.com">trends</a></span> </noscript>
<p><strong>Physical User Groups<br />
</strong>If you are looking for more information on user groups. you can learn about physical user group meetings in your area at <a rel="nofollow" target="_blank" href="http://www.ni.com/usergroups">http://www.ni.com/usergroups</a></p>
<p><strong>Virtual User Groups<br />
</strong>We have a new capability on our Web site for creating virtual user groups. Most of these are organized around specific topics like &#8220;Building Large Apps with LabVIEW&#8221; or &#8220;RF Testing&#8221; and so on. You can see a list of these at <a rel="nofollow" target="_blank" href="http://decibel.ni.com/content/groups">http://decibel.ni.com/content/groups</a></p>
<p>Feel free to comment with any specific ideas for future user group meeting topics you would like to see&#8230;</p> Tagged: labview, user groups <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/232/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/232/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/232/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/232/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/232/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=232&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/JgQNkjNpogE" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
      </item>
      <item>
         <title>Moving Servers</title>
         <link>http://www.eyesonvis.com/blog/2009/10/moving-servers.html</link>
         <description>I've decided to move the &lt;b&gt;Eyes On VIs&lt;/b&gt; blog to my own server since some people can't view blogspot.com content at work.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's likely that I'll break some thing in this move. (I probably already have, while setting up for it). The new location will be &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/blog/&quot;&gt;http://www.eyesonvis.com/blog/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The old Blogger RSS feeds will become invalid. If you want to subscribe via RSS, I recommend you use the Feedburner feed: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/eyesonvis&quot;&gt;http://feeds.feedburner.com/eyesonvis&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I apologize for any inconvenience!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Edit] As far as I know, this won't affect e-mail subscriptions (through FeedBurner) at all.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-3693646239720379048?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-3693646239720379048</guid>
         <pubDate>Thu, 22 Oct 2009 07:01:00 -0700</pubDate>
      </item>
      <item>
         <title>3 Development Tips for the Serious LabVIEW Programmer</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/32ve74Z-Wew/</link>
         <description>The other day I ran into LabVIEW developer Phil Joffrain, one of my friends from my R&amp;#38;D days, and asked him to share some of his tips for serious LabVIEW development &amp;#8211; we settled on three &amp;#8220;random tips about under-utilitized development features&amp;#8221; as the approach. Phil is a hardcore computer science major who has been working [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=225&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=225</guid>
         <pubDate>Thu, 24 Sep 2009 11:59:42 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>The other day I ran into LabVIEW developer Phil Joffrain, one of my friends from my R&amp;D days, and asked him to share some of his tips for serious LabVIEW development &#8211; we settled on three &#8220;random tips about under-utilitized development features&#8221; as the approach. Phil is a hardcore computer science major who has been working at NI for 7 years. He has worked on our LabVIEW SignalExpress project, which is a unique combination of a LabVIEW-built application running within a C/C++ application framework &#8211; so Phil is constantly switching contexts in terms of programming language &#8211; he is an expert programmer using LabVIEW for professional development.</p>
<p>Here are three tips for hardcore users &#8211; this may be something new for you to consider, or it may be old news.</p>
<p><strong>1. Type Defs:</strong></p>
<p>Large application constantly need to pass around bundles of information. Bundles of information obviously come in different types, but more importantly, the type of information can sometimes change either midway through development, or from release to release. An easy way to bundle information in LabVIEW is to use a Cluster. Clusters, for example, which contain a fixed number of items could in the future need to contain more or less items. But when a cluster being used by a large number of subVIs needs to update, it&#8217;s simply not feasible to open each and every subVI to update the cluster being passed in by hand (or by writing a tool to do it). Instead, turning that cluster into a Type-Def solves this problem since changes made to a type-def update all consumers automatically. It&#8217;s also important to note that there are 2 types of type-defs in LabVIEW: regular type-defs, and strict type-defs. The difference (as the name implies) is in the level is strictness and the frequency by which the type-def will update when changes are made to it. Strict type-defs contain the most information about its contents and force updates most frequently. Now type-defs are not simply a good idea for large clusters of data, they are also very useful for single item types. Imagine for example, an internal API where a set of subVIs take in a control reference. If this is a strict reference (meaning that extra information about that control is associated with that reference), making a change to the original control will change the strict reference type and break that input to all our subVIs. Having a strict type-def which simply contains that strict control reference means that only one place needs to be updated, to automatically propagate that change. When a number of subVIs take in the same type of input or produce the same type of output is when using type-defs makes sense.</p>
<p><strong>2. User-Defined Events for the Event Structure</strong></p>
<p>Most large applications have to process requests or provide the application with actions to perform. The LabVIEW event structure is an ideal tool to do this. The common use case for the event structure is often associated with processing control value changes on a User Interface, but this is only scratching the surface of the event structure&#8217;s usefulness. First of all, what makes the event structure such a useful tool, is that it doesn&#8217;t poll the UI for changes, nor does it steal the CPU waiting for things to happen. When no timeout is set on the event structure, it is happy to wait and wake up only when needed (unlike old-style state machines that comprise of a while loop and case structure). But the main feature of the event structure that is often overlooked is User-Defined events. A developer can create custom events that can be received by the event structure. This allows the developer to create a messaging system to process requests and define actions to be performed. The powerful thing about User-Defined events is that a developer gets to dictate what information gets sent to that event via the event&#8217;s internal terminals. A very simple example of this is: you can create an event called &#8220;save&#8221;, which has a path attribute. When the event gets called, the path attribute can be accessed using that events terminals, and the application can save its state at the path given. It is the caller of the event who would have gotten to specify what path to provide. Old and alternative ways of doing this was to use a LabVIEW Queue, who&#8217;s elements would either be a cluster of the data you wanted to pass around, or a variant so that anything could be passed. Both of these techniques have issues. One places a burden on the type of data that can be passed in the cluster, the other places the burden on the receiver of the data to extract it from the variant. The event structure removes both of these burdens by allowing each event type to have different data passed to them, and by giving direct access to that data within the event case via the internal terminals.</p>
<p><strong>3. LabVIEW Classes</strong></p>
<p>A relatively new feature to LabVIEW which is becoming mainstream very quickly is LabVIEW Classes. The fear with using a new feature is often the potential instability and performance hit, but a lot of time and effort has recently be put into LabVIEW Classes to make them more stable, faster and quickly becoming a mature feature of LabVIEW. The benefits of using LabVIEW Classes are the same as using any object-orientated programming approach to a large application; scalability and modularized components are among the top reasons. A lot of large applications today need an easy way to &#8220;plug in&#8221; new features, or new tools. When these new features or tools share common information and common abilities with the existing ones, having a base class with that information and ability that a new feature or tool can inherit from simplifies code greatly. A new plug-in no longer needs to start from scratch nor start by copying over half the code, it simply &#8220;plugs in&#8221;. Adding the extra functionality to that new feature or tool&#8217;s class is all that is left. In addition, new information and abilities added to the base class are automatically also available to the classes that inherit from it.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/225/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/225/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/225/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/225/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/225/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=225&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/32ve74Z-Wew" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>How complex is your LabVIEW code?</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/n4Zy23wiR3c/</link>
         <description>In a recent post on sumerlin.com, the author bemoaned the fact that the software industry has made great strides in programmer productivity with new visual tools (like LabVIEW), but has done so at the expense of visibility into the size of the code. His blog harkens back to the exact day that his guys re-wrote [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=222&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=222</guid>
         <pubDate>Tue, 15 Sep 2009 11:57:16 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p><a rel="nofollow" target="_blank" href="http://sumarlin.com/2009/09/02/have-we-lost-our-ability-to-estimate-software-size/">In a recent post on sumerlin.com</a>, the author bemoaned the fact that the software industry has made great strides in programmer productivity with new visual tools (like LabVIEW), but has done so at the expense of visibility into the size of the code. His blog harkens back to the exact day that his guys re-wrote more than 30,000 lines of FORTRAN and Assembly code for simulating satellite communications in LabVIEW in just a few days. This event was what pushed the author into the ranks of management because &#8220;at his age&#8221; he could no longer keep up with the latest productivity tools in the new &#8220;visual&#8221; programming world. (He actually never mentions LabVIEW, but instead he refers to <a rel="nofollow" target="_blank" href="http://www.flander.net/English/Endevo/Products/GoopDevSuite/tabid/8080/language/en-US/Default.aspx">GOOP </a>- the graphical object oriented programming tools from Endevo/Flander)</p>
<p>First, let me say that our goal has never been to push people out of programming. In fact, through efforts like our partnerships with Lego Mindstorms and FIRST Robotics, we are working hard to bring more kids into programming. But that&#8217;s not the point&#8230;</p>
<p>The issue is that the programming industry, particularly in mission-critical application areas, has spent years building tools, tactics, and programmers&#8217; intuition around traditional code complexity metrics like single lines of code (SLOC). Although we can find lots of examples where graphical programming is more advantageous than text-based code (see multicore), we can&#8217;t ignore all of the history and infrastructure built up over the years around text-based languages. Users need some methodology for measuring the complexity or size of their projects &#8211; for estimating project timelines/cost, for comparing programmer productivity, or for planning maintenance. </p>
<p>We&#8217;ve built a lot of tools and integration over the past 5 years to address some of these traditional <a rel="nofollow" target="_blank" href="http://pasquarette.wordpress.com/2008/11/05/time-to-get-serious-with-labview-software-engineering/">software engineering challenges with LabVIEW</a>. More specifically, LabVIEW has <a rel="nofollow" target="_blank" href="http://zone.ni.com/devzone/cda/tut/p/id/3324">tools built into the Professional Development System for measuring the complexity of your code,</a> as well as some <a rel="nofollow" target="_blank" href="http://zone.ni.com/reference/en-XX/help/371361F-01/lvvianalyzerhelp/complexity_metrics_tests/">tests you can run with VI Analyzer for measuring cyclomatic complexity of code</a>. This is just another one of the efforts we&#8217;ve made to map LabVIEW to the traditional programming process for large applications. </p>
<p>My question to any of you LabVIEW users out there &#8211; are you using these complexity metric tools? Or better yet, were you aware of them? Let me know.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/222/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/222/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/222/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/222/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/222/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=222&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/n4Zy23wiR3c" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <category>Technical</category>
      </item>
      <item>
         <title>Cooperative Innovation</title>
         <link>http://automatedtestblog.com/2009/09/02/cooperative-innovation/</link>
         <description>I recently published the aforementioned article in Electronic Design titled Cooperate to Innovate. The premise is that we need to be creative, particularly in tough economic times, to preserve innovation. One techqnique is to cooperate along non-traditional lines. For example, I have been working for the last couple of years on a joint developement project [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=137</guid>
         <pubDate>Wed, 02 Sep 2009 11:34:18 -0700</pubDate>
         <content:encoded><![CDATA[<p>I recently published the aforementioned article in <a rel="nofollow" target="_blank" href="http://electronicdesign.com/">Electronic Design </a>titled <a rel="nofollow" target="_blank" href="http://electronicdesign.com/Articles/Index.cfm?ArticleID=21684">Cooperate to Innovate</a>. The premise is that we need to be creative, particularly in tough economic times, to preserve innovation. One techqnique is to cooperate along non-traditional lines. For example, I have been working for the last couple of years on a joint developement project with <a rel="nofollow" target="_blank" href="http://www.tek.com">Tektronix </a>to develop a best-in-class <a rel="nofollow" target="_blank" href="http://www.ni.com/pxi/">PXI Express </a>digitizer. This project leverages <a rel="nofollow" target="_blank" href="http://www.tek.com">Tektronix</a>’s unique ASIC technology and high-bandwidth design experience and <a rel="nofollow" target="_blank" href="http://www.ni.com">National Instruments</a>’ experience in modular instruments, data streaming, and software. This collaboration will result in a product that neither company could effectively or economically develop alone.</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Changes to the LabVIEW 2009 Getting Started Window</title>
         <link>http://www.eyesonvis.com/blog/2009/08/changes-to-labview-2009-getting-started.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/Spb8yXRRrhI/AAAAAAAAAQo/EcW3eLdPQX8/s1600-h/GSW_FEED.PNG&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:345px;&quot; src=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/Spb8yXRRrhI/AAAAAAAAAQo/EcW3eLdPQX8/s400/GSW_FEED.PNG&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5374761147483401746&quot;/&gt;&lt;/a&gt;&lt;br /&gt;I made a few changes to the Getting Started window in LabVIEW 2009.&lt;br /&gt;&lt;br /&gt;On the right-hand side, the top section is now &lt;span style=&quot;font-weight:bold;&quot;&gt;Latest from ni.com&lt;/span&gt;. These links monitor feeds from ni.com*, notifying you of new content by displaying a number in parentheses to show how many articles have been posted in that category since the last time you clicked the link.**&lt;br /&gt;&lt;br /&gt;If you mouse over these links, a tip strip previews the titles of the new articles.&lt;br /&gt;&lt;br /&gt;On the left-hand size, there is now a dividing graphic that appears in the recent files list, between the projects and other files.&lt;br /&gt;&lt;br /&gt;Also, it's not in &lt;span style=&quot;font-weight:bold;&quot;&gt;Tools&amp;gt;&amp;gt;Options&lt;/span&gt; yet, but LabVIEW 2009 supports a config token for changing how many recent projects appear on the Getting Started window. Example: &quot;MaxGSWRecentProjects=10&quot; (The default is 2).&lt;br /&gt;&lt;br /&gt;I hope you find these changes useful!&lt;br /&gt;&lt;br /&gt;* &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:x-small;&quot;&gt;- The web feeds are available only in the English version of LabVIEW 2009.&lt;/span&gt;&lt;br /&gt;** &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:x-small;&quot;&gt;- You might actually see more links when you click the link, because we filter out posts for modules that you're not using when determining the Getting Started window count. If you don't want LabVIEW to check the web for this information, you can disable the updates in &lt;b&gt;Tools&amp;gt;&amp;gt;Options&lt;/b&gt;.&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1870705188268022702?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1870705188268022702</guid>
         <pubDate>Fri, 28 Aug 2009 07:50:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://3.bp.blogspot.com/_BN3_donLgVE/Spb8yXRRrhI/AAAAAAAAAQo/EcW3eLdPQX8/s72-c/GSW_FEED.PNG" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Improved Block Diagram Cleanup in LabVIEW 2009</title>
         <link>http://www.eyesonvis.com/blog/2009/08/improved-block-diagram-cleanup-in.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SpW3ogmzIFI/AAAAAAAAAQg/GWLwvH5RIpI/s1600-h/CleanUp.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:159px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SpW3ogmzIFI/AAAAAAAAAQg/GWLwvH5RIpI/s400/CleanUp.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5374403636911874130&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of my favorite features in LabVIEW 2009 is the improved Block Diagram Cleanup. We first saw Cleanup in LabVIEW 8.6. It worked well, but had a few limitations that caused me to use it only on small, simple VIs. &lt;br /&gt;&lt;br /&gt;The improvements in LabVIEW 2009 have made Cleanup much more useful to me. It's a huge time-saver! &lt;br /&gt;&lt;br /&gt;The most noticeable change is that you can now cleanup selections instead of entire diagrams. I use this frequently, selecting a loop or case structure and then clicking on the Cleanup button (the icon of a broom).&lt;br /&gt;&lt;br /&gt;Another significant change is that LabVIEW handles free labels more intelligently. Instead of treating them the same as functions and moving them arbitrarily, LabVIEW attempts to keep free labels with the items that they probably describe. This is especially useful when you have labels on top of wires describing their data.&lt;br /&gt;&lt;br /&gt;Finally, there is the ability to exclude individual loops and structures from the block diagram cleanup. This allows you to &quot;lock down&quot; sections of the code while still using the diagram-wide automatic cleanup. To use this feature, right click on the frame of a loop or structure and choose &quot;Exclude from Diagram Cleanup.&quot;&lt;br /&gt;&lt;br /&gt;No more spaghetti code!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-6211093696695126206?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-6211093696695126206</guid>
         <pubDate>Wed, 26 Aug 2009 10:48:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/SpW3ogmzIFI/AAAAAAAAAQg/GWLwvH5RIpI/s72-c/CleanUp.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Guns, Fireworks, and Nerds: Hope for the Future</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/s87Xi7tyhqI/</link>
         <description>Following up on my earlier &amp;#8220;LabVIEW on TV&amp;#8221; post, I wanted to share with you a grass roots effort from a group of our AEs here in Austin who refer to themselves as Waterloo Labs. Our AE department is full of recently graduated engineers and computer scientists from some of the top schools around the [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=218&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=218</guid>
         <pubDate>Wed, 19 Aug 2009 06:44:58 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>Following up on my earlier <a rel="nofollow" target="_blank" href="http://pasquarette.wordpress.com/?s=tv">&#8220;LabVIEW on TV&#8221;</a> post, I wanted to share with you a grass roots effort from a group of our AEs here in Austin who refer to themselves as <a rel="nofollow" target="_blank" href="http://waterloolabs.blogspot.com/">Waterloo Labs</a>. Our AE department is full of recently graduated engineers and computer scientists from some of the top schools around the country. Once they get more acquainted with our products and technology, they tend to find very creative ways to experiment with it. These guys are taking it one step further. They are combining our cool technology with their interest in movie making and multimedia, and creating their own web-based version of a MythBusters-like show called Waterloo Labs. I urge you to check it out &#8211; it&#8217;s pretty cool, in a geeky sort of way.</p>
<p><span style="font-family:Helv;font-size:x-small;"><span style="font-family:Helv;font-size:x-small;"></p>
<p dir="ltr"><span style="text-align:center;display:block;"><a rel="nofollow" target="_blank" href="http://pasquarette.wordpress.com/2009/08/19/guns-fireworks-and-nerds-hope-for-the-future/"><img src="http://img.youtube.com/vi/WNZCS-coZjY/2.jpg" alt=""/></a></span></p>
<p></span></span></p>
<p>We spend a lot of our time in Marketing trying to figure out ways to penetrate the hardcore programmers of test and embedded systems out there with our graphical programming story. We are constantly looking for ways to make more credible arguments with benchmarks, case studies, and code examples to convince experienced programmers that LabVIEW is a valid alternative. </p>
<p>A different approach is to go after the next generation and get kids excited about our technology before they ever get &#8220;stained&#8221; with the traditional approach. We experiment with a lot of ideas to try to get kids interested in technology in general, and LabVIEW more specifically. Also, because our tools are so widely used, we have to learn how to market through the channels that are emerging &#8211; YouTube, Twitter, Facebook, etc. We do a lot of experiementing to see how we can get people interested in our tools beyond the traditional marketing approaches. These Waterloo Labs guys are driving right down the middle of all of this &#8211; and its all driven from their own interest and passion in the technology and the media. Their latest video has more than 200,000 views.</p>
<p>It&#8217;s interesting to talk to the crustiest, most entrenched, hardcore programmers who are so set in their ways that they swear they could never switch to LabVIEW even if they wanted. These sames guys are the ones who light up when you tell them that their kids can program robots with LabVIEW. Perhaps <a rel="nofollow" target="_blank" href="http://www.youtube.com/waterloolabs">more cool videos </a>like Waterloo Labs is what we need to be doing.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/218/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/218/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/218/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/218/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/218/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=218&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/s87Xi7tyhqI" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <media:content url="http://img.youtube.com/vi/WNZCS-coZjY/2.jpg" medium="image"/>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Final NIWeek Thought: The real reason to come next year</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/h12HZa9_MoQ/</link>
         <description>A little side note about NIWeek&amp;#8230;
The last night of NIWeek, after the annual Wednesday night NIWeek party, I was reminded of the real reason you should consider coming to NIWeek next year. We stumbled into a bar on 6th street sat and watched an amazing blues guitar virtuoso jam out for about 3 hours of some of the [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=200&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=200</guid>
         <pubDate>Fri, 14 Aug 2009 01:01:55 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>A little side note about NIWeek&#8230;</p>
<p>The last night of NIWeek, after the annual Wednesday night NIWeek party, I was reminded of the real reason you should consider coming to NIWeek next year. We stumbled into a bar on 6th street sat and watched an amazing blues guitar virtuoso jam out for about 3 hours of some of the most ear-splitting, face-burning, mind-blowing guitar pyrotechnics I&#8217;ve ever seen to a &#8220;crowd&#8221; of about 9 people for no cover charge. There is something really cool (and tragic) about seeing a talent that good in a place that small. It was awesome. </p>
<p>So talk about all of the great networking and coding techniques you can pick up here when you are convincing your boss to come next year, but keep artists like <a rel="nofollow" target="_blank" href="http://www.erictessmerband.com/">Eric Tessmer </a> in mind. (and don&#8217;t forget a really good alarm clock &#8211; those Thursday morning keynotes are great)</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/200/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/200/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/200/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/200/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/200/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=200&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/h12HZa9_MoQ" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>A Record-Breaking NI Week</title>
         <link>http://automatedtestblog.com/2009/08/12/a-record-breaking-ni-week/</link>
         <description>We wrapped up NI Week last week and the NIers are all still coming down from the high. Despite all trends to the contrary, we had record attendence and the best NI Week yet. The work to prepare for the event is my excuse, by the way, for not posting for so long. Anyway, here [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=135</guid>
         <pubDate>Wed, 12 Aug 2009 07:38:06 -0700</pubDate>
         <content:encoded><![CDATA[<p>We wrapped up <a rel="nofollow" target="_blank" href="http://www.ni.com/niweek/">NI Week</a> last week and the NIers are all still coming down from the high. Despite all trends to the contrary, we had record attendence and the best <a rel="nofollow" target="_blank" href="http://www.ni.com/niweek/">NI Week </a>yet. The work to prepare for the event is my excuse, by the way, for not posting for so long. Anyway, here are some of my highlights and observations:</p>
<ul>
<li>We have got to change our values in most of the western world with respect to how we view science and engineering versus other professions. <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Dean_Kamen">Dean Kamen </a>of <a rel="nofollow" target="_blank" href="http://www.dekaresearch.com/index.shtml">DEKA Research </a>and inventor of the <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Segway_PT">Segway</a>, among many other things, described this crisis most eloquently and I won&#8217;t try to reproduce all of it here. He did made one comparison that I found particularly instructive, though: he described countries and cultures as going through development much like individuals. They start life taking risks and learning quickly and over time become more risk-averse and conservative. In this sense, it is not a coincidence that the US was the great innovator in the world at the beginning of last century; we didn&#8217;t have smarter people, we were just willing to take more risks. Now, that risk taking has moved to other regions. He did mention that perhaps the set of crisis that currently face us will push us to reevaluate what is ultimately important in our culture and give us a renewed sense of purpose.</li>
<li>We announced our co-development project with Tektronix on a high bandwidth PXI digitizer. This project is unique in that it leaverages the strengths of both companies to bring a unique product to the market that neither of us could have done alone. This got me thinking a lot more about the idea o Cooperative Innovation. In fact, I&#8217;m currently writing a column for <a rel="nofollow" target="_blank" href="http://electronicdesign.com/">Electronic Design </a>on this subject. Look for it in the next couple of months.</li>
<li>My kids loved the expo. As engineers, we all need to do a better job engaging our children and children in general on what we do. We often mistakenly think that our work is over their heads or will be boring to them. Instead, creating new things is fascinating to children and we need to encourage this. Of course, the fact that we had a &#8220;Robot Petting Zoo&#8221; didn&#8217;t hurt, either.</li>
<li>Most of our community has dated impression of what NI does. So many of our key customers, after attending their first NI Week, say &#8221; I now have a completely different impression of NI&#8221;. While it remains difficult to explain exactly what it is we do, as a marketer, this lays down a challenge to do a better job presenting our company&#8217;s vision to the world.</li>
</ul>
<p>OK, that&#8217;s all I&#8217;ve digested for now. Time to get to work on NI Week 2010.</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>NIWeek 2009 Thoughts – Part 1</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/rQTLyEY-qWs/</link>
         <description>NIWeek 2009 is in the books, and NI as a whole is recovering from our annual NIWeek hangover. A few thoughts looking back at the week:
1. Attendance was stellar &amp;#8211; we actually saw a slight increase in attendance over 2008 numbers. For those of you who were able to join, a big &amp;#8220;thank you&amp;#8221; for [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=210&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=210</guid>
         <pubDate>Wed, 12 Aug 2009 01:04:24 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>NIWeek 2009 is in the books, and NI as a whole is recovering from our annual NIWeek hangover. A few thoughts looking back at the week:</p>
<p>1. Attendance was stellar &#8211; we actually saw a slight increase in attendance over 2008 numbers. For those of you who were able to join, a big &#8220;thank you&#8221; for investing your time and energy by coming to the conference. We recognize that any kind of expense is going to be looked at very closely in these tough times.</p>
<p>2. Graphical System Design as a concept seemed to get its legs at this NIWeek. The notion of using LabVIEW beyond its test and measurement roots as a system design platform was evident throughout the conference. The tremendous activity around <a rel="nofollow" target="_blank" href="http://www.ni.com/robotics/">robotics </a>was the strongest testament to this. Not just the technologies and success stories, but the people who showed up who are involved in this area was impressive &#8211; Dean Kamen, Ellen Purdy, Dr. Dave Barrett&#8230; (more on that in a separate blog entry &#8211; it&#8217;s justified).</p>
<p>3. The future of LabVIEW is bright &#8211; for the first time in awhile, we shared some of the new technologies that we are developing in LabVIEW and there was genuine interest and excitement from the users. In particular, we are doing some things to address some core issues with the product and language in the short term (next year or two), as well as starting to reveal some of our <a rel="nofollow" target="_blank" href="http://zone.ni.com/wv/app/doc/p/id/wv-1700">3 to 5 year plans </a>that will have an <a rel="nofollow" target="_blank" href="http://zone.ni.com/wv/app/doc/p/id/wv-1697">even greater impact</a>. It&#8217;s always exciting to see the amazing solutions from our users each year at NIWeek. It&#8217;s even better to see the smiles and fist-pumps from users when you let them know where we are going to confirm we are working on the right things. (I&#8217;ll have to figure out how I can post on some of this stuff for those of you who were not able to make it to NIWeek).</p>
<p>4. The Austin Convention Center re-affirmed its position as the coldest building in North America. I think the HVAC system there alone could cure our global warming problem.</p>
<p>&#8230; more thoughts to come&#8230;. Anyone who was there, feel free to tack on with your own comments.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/210/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/210/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/210/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/210/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/210/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=210&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/rQTLyEY-qWs" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>More on the VI Snippet</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/AwiCJzo4XT8/</link>
         <description>I had so many people ask me the same question, that I went ahead and created a new post to answer:
When you create a snippet, we indicate that fact two ways: the image is surrounded by a dashed line
the snippet glyph is appended to the top of the image See below for an example. Feel free to [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=205&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=205</guid>
         <pubDate>Tue, 11 Aug 2009 01:00:10 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>I had so many people ask me the same question, that I went ahead and created a new post to answer:</p>
<p>When you create a snippet, we indicate that fact two ways:</p>
<ul>
<li>the image is surrounded by a dashed line</li>
<li>the snippet glyph is appended to the top of the image</li>
</ul>
<p>See below for an example. Feel free to drag this into a blank LabVIEW 2009 VI to try it out. Or you can see more <a rel="nofollow" target="_blank" href="http://www.ni.com/labview/whatsnew/features.htm">here</a>.</p>
<p><img class="aligncenter size-full wp-image-206" title="Flatten_Array_to_1-D" src="http://pasquarette.files.wordpress.com/2009/08/flatten_array_to_1-d.png?w=258&#038;h=86" alt="Flatten_Array_to_1-D" width="258" height="86"/></p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/205/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/205/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/205/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/205/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/205/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=205&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/AwiCJzo4XT8" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <media:content url="http://pasquarette.files.wordpress.com/2009/08/flatten_array_to_1-d.png" medium="image">
            <media:title>Flatten_Array_to_1-D</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Hi, I'm Christina</title>
         <link>http://www.eyesonvis.com/blog/2009/08/hi-im-christina.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SoBTWVZKIfI/AAAAAAAAAOY/CFUP-eOsUuE/s1600-h/MyPicture2.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:141px;height:160px;&quot; src=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SoBTWVZKIfI/AAAAAAAAAOY/CFUP-eOsUuE/s320/MyPicture2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5368382398990524914&quot;/&gt;&lt;/a&gt;&lt;br /&gt;I had a great time at NIWeek 2009! It was so cool to meet with NI customers and see the amazing things they accomplish with our products.&lt;br /&gt;&lt;br /&gt;One thing that surprised me is how many people were curious about me, the person who writes Eyes on VIs.&lt;br /&gt;&lt;br /&gt;So I thought it would be good to take a moment to introduce myself. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: Who are you?&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: I'm Christina Rogers, a senior software engineer in the LabVIEW R&amp;D group at National Instruments.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: What do you do?&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: Part of my job is that I'm a proponent of usability and user interface design. I help other developers design the UI for their features, including dialogs and such. I also implement LabVIEW features, both in C++ and in LabVIEW VIs (a.k.a. G).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: What kinds of things have you worked on?&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: I've been on the LabVIEW team for 12 years, so I've worked on all kinds of things, including the Getting Started window, the Navigation window, report generation, printing, the multicolumn listbox, type definitions, and other things I'm probably forgetting at the moment.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: And the &quot;Eyes on VIs&quot; blog?&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: I started this blog as a way to share my LabVIEW knowledge directly with LabVIEW users.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: Is it part of your job?&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: No. Although folks at NI appreciate that I run this blog, it's not what they pay me for.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Q&lt;/span&gt;: Who else works on &quot;Eyes on VIs?&quot;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A&lt;/span&gt;: Just me. I write the content, make the videos, do the graphics, do the web development, etc. Well, except for that time I had Norm as a guest blogger.&lt;br /&gt;&lt;br /&gt;If you have any other questions, please feel free to leave me a comment!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-8337833768006962062?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-8337833768006962062</guid>
         <pubDate>Mon, 10 Aug 2009 04:52:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_BN3_donLgVE/SoBTWVZKIfI/AAAAAAAAAOY/CFUP-eOsUuE/s72-c/MyPicture2.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Scripting: Get inside the guts of LabVIEW at NIWeek 2009</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/_fouPCNf4QQ/</link>
         <description>NIWeek 2009 &amp;#8211; Getting back to the (deeply technical) basics. That was one of our goals for NIWeek this year. In the past several years, we really pushed the envelope into application areas with the Summits &amp;#8211; mini-conferences within NIWeek &amp;#8211; on topics like RF, Sound and Vibration, Vision, Robotics, etc. These have been great at [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=194&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=194</guid>
         <pubDate>Mon, 10 Aug 2009 07:09:24 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>NIWeek 2009 &#8211; Getting back to the (deeply technical) basics. </p>
<p>That was one of our goals for NIWeek this year. In the past several years, we really pushed the envelope into application areas with the Summits &#8211; mini-conferences within NIWeek &#8211; on topics like RF, Sound and Vibration, Vision, Robotics, etc. These have been great at attracting experts from these areas and having more topical discussions about trends and techniques. However, we still believe that NIWeek at its core is about LabVIEW and what you can do with it. This year, we made a concerted effort to &#8220;go deep&#8221; and deliver very technical presentations at the conference. Two areas where we got a lot of great attendance and feedback were on the LabVIEW Scripting session and the LabVIEW for large applications. </p>
<p>The scripting session had over 180 people in attendance. Scripting refers to the set of APIs you can use to edit or generate VIs &#8211; use LabVIEW to create macros if you will. You can learn more about it at our <a rel="nofollow" target="_blank" href="http://decibel.ni.com/content/groups/labview-apis">LabVIEW APIs community group</a>. We also highlighted some pretty cool uses of scripting in a video we showed during <a rel="nofollow" target="_blank" href="http://zone.ni.com/wv/app/doc/p/id/wv-1702">Jeff K&#8217;s keynote</a>. Check it out:</p>
<p><span style="font-family:Helv;font-size:x-small;"><span style="font-family:Helv;font-size:x-small;"><span style="text-align:center;display:block;"><a rel="nofollow" target="_blank" href="http://pasquarette.wordpress.com/2009/08/10/scripting-get-inside-the-guts-of-labview-at-niweek-2009/"><img src="http://img.youtube.com/vi/wgL7yPdGUi4/2.jpg" alt=""/></a></span></p>
<p></span></span></p>
<p>The LabVIEW for Large Apps sessions was standing room only as well. It covered all the tools and techniques for using LabVIEW in a large, team-based environment for large projects, including topics like:</p>
<ul>
<li>Configuration Management (Source Code Control, Diff, Merge, etc)</li>
<li>Requirements Management</li>
<li>Testing and Debugging (Unit testing, dynamic and static code analysis, etc)</li>
<li>Documentation and validation</li>
</ul>
<p>Yes, we have tools for all of these. Check it out at at <a rel="nofollow" target="_blank" href="http://www.ni.com/largeapps">www.ni.com/largeapps</a></p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/194/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/194/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/194/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/194/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/194/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=194&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/_fouPCNf4QQ" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <media:content url="http://img.youtube.com/vi/wgL7yPdGUi4/2.jpg" medium="image"/>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>LabVIEW 2009</title>
         <link>http://www.eyesonvis.com/blog/2009/08/labview-2009.html</link>
         <description>It's NIWeek, and that means (you guessed it!) a new release of LabVIEW!&lt;br /&gt;&lt;br /&gt;As you probably know, we changed the version number scheme so this release is LabVIEW 2009.&lt;br /&gt;&lt;br /&gt;To see the new features, you should check out &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/labview&quot;&gt;ni.com/labview&lt;/a&gt;. There is a nice video (click &quot;See what's new&quot;) that's in Flash, so you can easily navigate to sections that interest you.&lt;br /&gt;&lt;br /&gt;One change that isn't big enough to be listed as a new feature (and that I happened to work on) is a revised &lt;span style=&quot;font-weight:bold;&quot;&gt;Edit Events&lt;/span&gt; dialog for the event structure:&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SnbdQMaaUpI/AAAAAAAAAOQ/JIVMhxIJpaE/s1600-h/2009-08-03_EditEvents.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:234px;&quot; src=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SnbdQMaaUpI/AAAAAAAAAOQ/JIVMhxIJpaE/s320/2009-08-03_EditEvents.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5365719276338172562&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This new design addresses numerous problems with the previous version of the dialog.&lt;ul&gt;&lt;li&gt;Grouping events in a tree structure helps keep the Event list browsable, and makes the commonly-used &quot;Value Change&quot; event visible without scrolling.&lt;/li&gt;&lt;li&gt;The flow when using the dialog is left-to-right, which should be easier for new users to understand.&lt;/li&gt;&lt;li&gt;The full label of the event case is visible instead of just the number.&lt;/li&gt;&lt;li&gt;The &quot;Lock front panel&quot; text includes &quot;defer processing&quot; to give a better indication that locking does not discard user actions while the panel is locked.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What are your favorite new features of LabVIEW 2009?&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-3678489709592458638?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-3678489709592458638</guid>
         <pubDate>Mon, 03 Aug 2009 00:42:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://3.bp.blogspot.com/_BN3_donLgVE/SnbdQMaaUpI/AAAAAAAAAOQ/JIVMhxIJpaE/s72-c/2009-08-03_EditEvents.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Birth of a Feature: The improbable story of VI Snippet</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/7XwkEIEgnlU/</link>
         <description>The next version of LabVIEW will be coming to a presentation near you very soon. I thought I would share the back story about one of the new features that you will see called the VI Snippet. First, the problem statement. For many years, we&amp;#8217;ve been working on better ways to empower users to share their [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=169&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=169</guid>
         <pubDate>Fri, 31 Jul 2009 02:00:37 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>The next version of LabVIEW will be coming to a presentation near you very soon. I thought I would share the back story about one of the new features that you will see called the VI Snippet. </p>
<p>First, the problem statement. For many years, we&#8217;ve been working on better ways to empower users to share their code with other users &#8211; through better Web features on ni.com and better ways of packaging and distributing your VIs. The popularity of the platform, and the expertise of our user base, can be measured in some ways by the number of VIs available on the Web &#8211; it&#8217;s a kind of currency for LabVIEW. </p>
<p>We have a few challenges in enabling users to share code:</p>
<ol>
<li>LabVIEW is graphical, so you really need to see the block diagram to understand what techniques you want to learn more about</li>
<li>Seeing the diagram ins&#8217;t enough &#8211; it needs to be easy to get the VI from a Web site into your LV environment so you can experiment with the code. One advantage text-based languages has is you can simply cut and paste text from any document into your environment to transfer it. LabVIEW code needs to move that easily. </li>
</ol>
<p>With these seemingly insurmountable hurdles in the way, enter the Hogg &#8211; that would be Simon Hogg, one of our talented young LabVIEW product managers. Simon had some ideas on how we can create a better experience for users to share code, but rather than try to convince R&amp;D to build something, he went off and built it prototyped it himself (the beauty of LabVIEW for fast prototyping). The idea is simple, but when implemented comes across as magical. In LabVIEW 2009, you create a special screen shot of your VI &#8211; called a VI Snippet &#8211; which embeds the actual binary information of the VI into the image. You can then post that image anywhere on a Web page and other users simply drag the image onto a blank block diagram in LabVIEW and voilá! &#8211; the actual LabVIEW code is there, ready to explore, edit, or run. Check out the video below to see it in action:</p>
<p><span style="font-family:Helv;font-size:x-small;"><span style="font-family:Helv;font-size:x-small;"></p>
<p dir="ltr"><span style="text-align:center;display:block;"><a rel="nofollow" target="_blank" href="http://pasquarette.wordpress.com/2009/07/31/birth-of-a-feature-the-improbable-story-of-vi-snippet/"><img src="http://img.youtube.com/vi/zXtK6BGqz-k/2.jpg" alt=""/></a></span></p>
<p></span></span></p>
<p>Once Simon created his prototype, it was quickly dubbed internally as &#8220;the Hogg Feature&#8221; or &#8220;the Hogg&#8221; for short. We&#8217;ve even taken it to its verb form &#8211; similar to &#8220;googling&#8221; or &#8220;xeroxing&#8221; something, when you distribute a VI Snippet, you are &#8220;hogging it.&#8221; </p>
<p>Naturally, there was the small step of actually designing, implementing, and testing the feature in R&amp;D to make it work in the product for real &#8211; but having a working prototype was a great influencer. If one of our product managers can prototype the feature, then certainly our R&amp;D guys can develop it. </p>
<p>So I wanted to share this story to show that even the best-laid plans at NI to smoothly manage the feature set of upcoming LabVIEW versions can be disrupted here when someone combines initiative with the power of LabVIEW programming to make something happen (and because the Hogg is a cool feature). I look forward to &#8220;hogging&#8221; some VIs posted by the c0mmunity of LabVIEW users in the near future.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/169/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/169/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/169/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/169/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/169/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=169&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/7XwkEIEgnlU" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <media:content url="http://img.youtube.com/vi/zXtK6BGqz-k/2.jpg" medium="image"/>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>What do you want to see in a roadmap?</title>
         <link>http://feedproxy.google.com/~r/pasquarette/~3/vQ_cOgBdx3M/</link>
         <description>I&amp;#8217;ve been busily updating our LabVIEW roadmaps for NIWeek next week and once again I am faced with the challenge of creating a presentation that is relevant to a crowd of LabVIEW users &amp;#8211; we are doing so many things with LabVIEW, that is more difficult than you think. So as I am preparing for [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&amp;blog=5236275&amp;post=188&amp;subd=pasquarette&amp;ref=&amp;feed=1&quot;/&gt;</description>
         <guid isPermaLink="false">http://pasquarette.wordpress.com/?p=188</guid>
         <pubDate>Tue, 28 Jul 2009 22:13:45 -0700</pubDate>
         <content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been busily updating our LabVIEW roadmaps for NIWeek next week and once again I am faced with the challenge of creating a presentation that is relevant to a crowd of LabVIEW users &#8211; we are doing so many things with LabVIEW, that is more difficult than you think. So as I am preparing for next week, I thought I would hit the user base to see what you guys want to know. </p>
<p>My goals for a roadmap presentation are:</p>
<p>1. Show your loyal users that you are hearing them and understand their concerns, and share our plans to address these concerns</p>
<p>2. Explain our higher-level strategy and investment directions (for example, if you aren&#8217;t considering the benefits of using LV FPGA with our RIO architecture, you need to)</p>
<p>3. Recap where we are today &#8211; most users can&#8217;t keep up with everything we are doing</p>
<p>4. Speak to the skeptics in the room with an honest assessment of key issues that have and share plans to address those issues (to push them to reconsider)</p>
<p>5. Capture reactions to our plans, questions, and open issues from the customers at hand.</p>
<p>Maybe I am missing something. Respond with any other general topics that you would like to see in a LabVIEW roadmap discussion, or send in specific questions or comments so I can comment and/or include them in my presentation.</p> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/pasquarette.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pasquarette.wordpress.com/188/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/pasquarette.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pasquarette.wordpress.com/188/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/pasquarette.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pasquarette.wordpress.com/188/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/pasquarette.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pasquarette.wordpress.com/188/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/pasquarette.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pasquarette.wordpress.com/188/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pasquarette.wordpress.com&blog=5236275&post=188&subd=pasquarette&ref=&feed=1"/></div><img src="http://feeds.feedburner.com/~r/pasquarette/~4/vQ_cOgBdx3M" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/bb90309b231c4a5098a0c4b777427d01?s=96&amp;amp;d=identicon&amp;amp;r=G" medium="image">
            <media:title>pasquarette</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>NIWeek 2009</title>
         <link>http://www.eyesonvis.com/blog/2009/07/niweek-2009.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SmSkTkJYFRI/AAAAAAAAANg/ioHjpwqFL_U/s1600-h/2009-register-for-niweek.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:204px;height:68px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SmSkTkJYFRI/AAAAAAAAANg/ioHjpwqFL_U/s320/2009-register-for-niweek.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5360590112505206034&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Are you going to&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/niweek/&quot;&gt; NIWeek 2009&lt;/a&gt;? The Conference &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/pdf/niweek/us/2009/niweek_program.pdf&quot;&gt;program&lt;/a&gt; is on-line, so you can plan what sessions you want to see.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Closed Door Session&lt;/h3&gt;I'm not presenting any regular sessions this year, but I am holding a closed-door session to get feedback on a project that I'm working on. There are a few spots still available. The target audience is people who teach LabVIEW, either formally (teaching classes) or informally (mentoring colleagues).&lt;br /&gt;&lt;br /&gt;If you are interested in participating, please e-mail me at my GMail account (eyesonvis at gmail.com). (&lt;span style=&quot;font-style:italic;&quot;&gt;Note: I will reply to every e-mail on this topic so that you know your e-mail wasn't blocked by the spam filter. If you don't receive a reply after a day, please leave a comment here to let me know&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Details&lt;ul&gt;&lt;li&gt;It's Thursday, August 6, 10AM-Noon.&lt;/li&gt;&lt;li&gt; You would need to sign an NDA (non-disclosure agreement) if you are not already under one.&lt;/li&gt;&lt;li&gt;Spots are limited, so I apologize in advance if you want to attend but I can't get you in.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Where Else I'll Be&lt;/h3&gt;Other places you will probably find me during NIWeek:&lt;ul&gt;&lt;li&gt;I plan to visit the &lt;span style=&quot;font-weight:bold;&quot;&gt;LabVIEW Experts Panel&lt;/span&gt; in the Technology Theater on Tuesday, Noon-1PM, to hear what &quot;insight and advice&quot; people seek from &quot;NI engineers working on the latest version of LabVIEW&quot; (seeing as how I am one of those).&lt;/li&gt;&lt;li&gt;I won't want to miss the &lt;span style=&quot;font-weight:bold;&quot;&gt;Challenge the Champions&lt;/span&gt; event at the Technology Theater on Tuesday from 5PM-6PM.&lt;/li&gt;&lt;li&gt;I'm really looking forward to the &lt;span style=&quot;font-weight:bold;&quot;&gt;LAVA/OpenG BBQ at Stubb's&lt;/span&gt;. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://bit.ly/PCL6d&quot;&gt;Tickets&lt;/a&gt; are still available if you want to join in.&lt;/li&gt;&lt;li&gt;Of course, there are a LOT of sessions I want to see, but NI employees only get in if the rooms don't fill up, so I can't promise which ones I'll actually be at.&lt;/li&gt;&lt;/ul&gt;I hope to see you at NIWeek! As a &quot;thank you&quot; for my blog readers, I'll have a few hand-crafted &quot;Eyes on VIs&quot; buttons to give away. If you see me there, ask for one! :-)&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SmTCqtFK1qI/AAAAAAAAANo/-SCgRxAlA1g/s1600-h/EyesOnVIsButton.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer;cursor:hand;width:110px;height:110px;&quot; src=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SmTCqtFK1qI/AAAAAAAAANo/-SCgRxAlA1g/s320/EyesOnVIsButton.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5360623495389304482&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-8285892839551214044?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-8285892839551214044</guid>
         <pubDate>Mon, 20 Jul 2009 03:14:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/SmSkTkJYFRI/AAAAAAAAANg/ioHjpwqFL_U/s72-c/2009-register-for-niweek.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LVSpeak: Automating VI development through speech</title>
         <link>http://www.eyesonvis.com/blog/2009/07/lvspeak-automating-vi-development.html</link>
         <description>&lt;blockquote&gt;Eyes on VIs is pleased to welcome its first guest blogger, Norm &quot;The Captain&quot; Kirchner! Norm is the first person in history to sacrifice his LabVIEW Champion status for the pleasure of working at National Instruments. (NI Employees cannot be LabVIEW Champions). Norm has been using LabVIEW for over 9 years and he is going to share his &quot;LVSpeak&quot; project, which (I hope you will agree) is pretty darn amazing. Thanks for joining us, Norm!
&lt;br /&gt;
&lt;br /&gt;- Christina&lt;/blockquote&gt;
&lt;br /&gt;&lt;hr /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;style&gt;&lt;!-- _filtered {font-family:Wingdings;panose-1:5 0 0 0 0 0 0 0 0 0;} _filtered {font-family:&quot;Cambria Math&quot;;panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}/* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin-top:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:0in;line-height:115%;font-size:11.0pt;font-family:&quot;Calibri&quot;, &quot;sans-serif&quot;;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {margin-top:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:.5in;line-height:115%;font-size:11.0pt;font-family:&quot;Calibri&quot;, &quot;sans-serif&quot;;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;line-height:115%;font-size:11.0pt;font-family:&quot;Calibri&quot;, &quot;sans-serif&quot;;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;line-height:115%;font-size:11.0pt;font-family:&quot;Calibri&quot;, &quot;sans-serif&quot;;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {margin-top:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:.5in;line-height:115%;font-size:11.0pt;font-family:&quot;Calibri&quot;, &quot;sans-serif&quot;;}.MsoChpDefault {}.MsoPapDefault {margin-bottom:10.0pt;line-height:115%;} _filtered {margin:1.0in 1.0in 1.0in 1.0in;}div.Section1 {} _filtered {} _filtered {} _filtered {} _filtered {font-family:Symbol;} _filtered {} _filtered {font-family:Symbol;}ol {margin-bottom:0in;}ul {margin-bottom:0in;}--&gt;&lt;/style&gt; &lt;p class=&quot;MsoNormal&quot;&gt;Imagine if LabVIEW was able to read your thoughts and react to them. You just think “edit icon” and *pop* the icon editor is opened for you immediately. Imagine if every time you wanted to drop a property node for a control or group of controls, they just showed up on the diagram. &lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;Although this ability is not implemented in LabVIEW &lt;u&gt;yet&lt;/u&gt;, we can get darn close by using our voice and a little creative coding.&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;LVSpeak (LabVIEW Speak) is a very simple concept with a great deal of possibilities. It utilizes the Microsoft Speech API (SAPI) and provides an open and extendable interface to it within LabVIEW. Currently, two extensions of that architecture exist. They are ‘Quick Edit’ and ‘Speech Enabled Quick Drop’.
&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;These extensions of LVSpeak and the LabVIEW development environment give the coder tools to greatly speed the process of code creation and modification upwards of 70%.&lt;/p&gt;&lt;br&gt;Note: Volume on the videos is very low, turn speakers all the way up&lt;br&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;         &lt;iframe class=&quot;embeddedvideo&quot; src=&quot;http://content.screencast.com/users/NJKirchner/folders/Jing/media/aebdd7ca-0da3-470b-bf59-3243e9183f27/jingswfplayer.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;&lt;/iframe&gt; 
&lt;br /&gt;Video 1: Code creation
&lt;br /&gt;
&lt;br /&gt;&lt;/u&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;
&lt;br /&gt;&lt;/u&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;WHY&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;LabVIEW is an easy to use and intuitive application development environment and programming language, but there are still some basic actions that require multiple clicks and force the user to navigate through a variety menus and options.
&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;LVSpeak was developed to take those minor but time consuming steps and reduce them to a single voice command. At the root of this entire effort is one simple premise, “A good engineer is a lazy engineer”. And until we can program LabVIEW with our minds, turning a 4 step, 3 second action into a ½ second, 1 step voice command, makes me a happy lazy engineer.
&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;At the end of the day, any action that requires you to remove your hand from the mouse (Ctl+I), or needs more than two mouse clicks and navigation deeper than a top level context menu (Label Visible) is warranted to become a Voice Command&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;HISTORY&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;When LabVIEW Scripting was still very new in LabVIEW 7.0 and some of it’s functionality was accidentally exposed by NI, it occurred to me that you could combine this scripting ability to use LabVIEW code to write LabVIEW code along with the free Microsoft speech recognition technology and do some creative things.&lt;span style=&quot;&quot;&gt; &lt;/span&gt;Although an interesting idea, integrating dll’s and ActiveX objects into G was still foreign to me and presented a barrier that caused LVSpeak to sit dormant until NI Week 2008 and the release of Quick Drop.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt; Almost immediately I recognized a synergy between this great new development tool in LabVIEW and the still undeveloped LVSpeak. This was only confirmed further when I was watching the coding challenge at NI Week 08. During the coding speed challenge, the creator of Quick Drop, Darren Nattinger, was slowed to a crawl when doing simple tasks like creating a constant or typing verbose function names in the Quick Drop window.
&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;At that point I realized that all the components needed, to allow the developer to program as fast as they could imagine the code, were in place.&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;HOW&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;The how is actually more simple than I would like to admit.&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;There are two key components to the Microsoft SAPI that are utilized in LVSpeak&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Symbol;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:7;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Grammar List&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:Symbol;&quot;&gt;&lt;span style=&quot;&quot;&gt;'&lt;/span&gt;&lt;/span&gt;Speech Recognized’ .NET Callback Event&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot;&gt;Within LabVIEW, two components are required to enable speech recognition in any program.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Symbol;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:7;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Load Command List (Grammar)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:Symbol;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:7;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Register for speech recognized event&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot;&gt;The way everything plays together is quite simple&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;LVSpeak Core starts and&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;Initializes the Microsoft SAPI&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;Creates a LV User event&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Registers a callback VI to be run when speech is detected and fire the LV User Event with the command
&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Programs utilizing LVSpeak&lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Register for the Grammar Detected event&lt;/span&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Load their command list into the “Grammar” &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;Catch the fired event and respond accordingly to the string
&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;&lt;/span&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;For speech enabled Quick Drop, the grammar list is &lt;u&gt;everything&lt;/u&gt; in the function palette, and whenever the LVSpeak event is caught, it takes the detected string and loads it into the text box as if you had just typed it.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;Quick Edit follows that same flow. The grammar list is all created Quick Edit commands pulled from an enumeration. When one of those commands is detected, it runs the corresponding code to execute that &lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;command.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;         &lt;iframe class=&quot;embeddedvideo&quot; src=&quot;http://content.screencast.com/users/NJKirchner/folders/Jing/media/fcf6c099-5c17-4f31-a6b3-0bc672756399/jingswfplayer.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;&lt;/iframe&gt; 
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;font-size:85%;&quot;&gt;Video 2: Basic detection&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;         &lt;iframe class=&quot;embeddedvideo&quot; src=&quot;http://content.screencast.com/users/NJKirchner/folders/Jing/media/b586b546-fe50-46a7-8cfa-1e3a6c6ead80/jingswfplayer.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;600&quot; height=&quot;600&quot;&gt;&lt;/iframe&gt; 
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;font-size:85%;&quot;&gt;Video 3: Quick Edit Demo&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-weight:bold;font-family:verdana;font-size:85%;&quot;&gt;Getting Started&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:verdana;font-size:85%;&quot;&gt;
&lt;br /&gt;To start developing LabVIEW with your voice you need to download and install
&lt;br /&gt;&lt;/span&gt;&lt;ul style=&quot;font-family:verdana;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://jkisoft.com/&quot;&gt;VI Package Manager (JKISoft.com)&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://tinyurl.com/lzz3t5&quot;&gt;Microsoft Speech SDK 5.1&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; (http://tinyurl.com/lzz3t5)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/shared/lavag_cr_LVSpeak-0.4.1-1.ogp&quot;&gt;LVSpeak Core&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/shared/lavag_cr_LVS_QD-0.5.0-1.ogp&quot;&gt;LVS Quick Drop Addon&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Once all these parts are installed, you should see a new item in your LabVIEW tools menu &quot;Enable LVSpeak&quot;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Select that option, and you should see two floating windows show up.&lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;If you microphone is active, manually drop some controls on your front panel, flip over to the block diagram, select all the controls and say &quot;Label Side&quot; in a relatively monotonic voice.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;font-family:verdana;&quot;&gt;Summary&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;If you program LabVIEW on a regular basis, begin paying attention to how long some tasks&lt;span style=&quot;font-family:verdana;&quot;&gt; take and how often you repeat some basic tasks that could be streamlined by a little scripting automation. &lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Controlling LV with your voice is not just a novel idea. &lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;It is truly a quantum leap forward in how you develop your code and a HUGE performance booster.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;So wipe the dust off of your microphone or headset and get ready to take your development process to the next level.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;~,~&lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;The Captain Was Here&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;Norm Kirchner
&lt;br /&gt;
&lt;br /&gt;PS Thank you Christina for your patience with me getting this out to you and providing a great resource for the rest of us LabVIEW nuts out in the world.
&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1663037399261070857?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Norm Kirchner ~,~</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1663037399261070857</guid>
         <pubDate>Fri, 03 Jul 2009 07:05:00 -0700</pubDate>
      </item>
      <item>
         <title>VI Makeover Edition - Customizing a Slider</title>
         <link>http://www.eyesonvis.com/blog/2009/06/vi-makeover-edition-customizing-slider.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/Ske3LFSgkoI/AAAAAAAAANY/94cxbMzxqyY/s1600-h/SliderCustom.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:99px;height:155px;&quot; src=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/Ske3LFSgkoI/AAAAAAAAANY/94cxbMzxqyY/s320/SliderCustom.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5352448083179377282&quot;/&gt;&lt;/a&gt;&lt;br /&gt;In a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eyesonvis.blogspot.com/2009/03/vi-makeover-edition-part-1.html&quot;&gt;previous post&lt;/a&gt;, I talked about a VI for an NI Week keynote demo.&lt;br /&gt;&lt;br /&gt;Now I'd like to talk about customizing the slider control for that project.&lt;br /&gt;&lt;br /&gt;You can watch the video on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/main/eyes_on_vis_video_podcast/customizing_labview_control.html&quot;&gt;EyesOnVIs.com&lt;/a&gt; or &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=qvhGH0TlCqs&quot;&gt;YouTube&lt;/a&gt;, or you can read the text version below.&lt;br /&gt;&lt;br /&gt;When customizing a control, I like to start with the simplest control of the right type, which usually means controls from the Classic palette. For this demo, I customized a Classic Vertical Pointer Slide. Note that the control editor lets you change the appearance of a control, but not its functionality.&lt;br /&gt;&lt;br /&gt;You can edit a control either from the &lt;span style=&quot;font-weight:bold;&quot;&gt;Edit&amp;gt;&amp;gt;Customize Control&lt;/span&gt; menu or from the &lt;span style=&quot;font-weight:bold;&quot;&gt;Advanced&amp;gt;&amp;gt;Customize&lt;/span&gt; right-click menu.&lt;br /&gt;&lt;br /&gt;This will open the control in the Control Editor. From there, you can customize using the normal right-click options (such as setting the Scale style as I did for this demo) or go into &quot;Customize&quot; mode either by clicking the toolbar button to switch to the tweezer icon or by showing the Parts window from the Window menu.&lt;br /&gt;&lt;br /&gt;You can find the slider thumb by cycling through the Parts and then right-click on it to see the options for changing its image. For this demo, I used a graphic that I created myself in a graphics program, but there are lots of sources for nice, professional images that you could use for your projects. You can find the graphics I made in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/main/gallery/&quot;&gt;Image Archive&lt;/a&gt; on my website, EyesOnVIs.com.&lt;br /&gt;&lt;br /&gt;After customizing the thumb, I added some free labels for + and - scale markers, made the text big and bold so it would be easily visible on the keynote projector screens, and colored the increment and decrement arrows transparent.&lt;br /&gt;&lt;br /&gt;I hope this inspires you to make your own custom controls and take your LabVIEW UIs to the next level!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-4371735708010961324?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-4371735708010961324</guid>
         <pubDate>Sun, 28 Jun 2009 06:19:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_BN3_donLgVE/Ske3LFSgkoI/AAAAAAAAANY/94cxbMzxqyY/s72-c/SliderCustom.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LabVIEW Scripting</title>
         <link>http://www.eyesonvis.com/blog/2009/05/labview-scripting.html</link>
         <description>If &quot;VIs dynamically constructing new VIs&quot; doesn't sound like the premise of a bad summer movie to you, then you might be interested in the recent &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/docs/DOC-4973&quot;&gt;LabVIEW Scripting&lt;/a&gt; post on NI Communities.&lt;br /&gt;&lt;br /&gt;To quote &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://labviewartisan.blogspot.com/2009/05/writing-vis-with-vis.html&quot;&gt;Darren Nattinger&lt;/a&gt; (who has a lot more experience with Scripting than me), &quot;LabVIEW Scripting is an (until today) internal LabVIEW feature that allows you to write VIs that create, modify, and inspect other VIs.&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Important note&lt;/span&gt;: &quot;As this is an 'NI Labs' product, NI will not be supporting LabVIEW Scripting through Applications Engineering.&quot; That means if you have technical questions, you will need to post them to the API Community instead of going through NI's usual support channels.&lt;br /&gt;&lt;br /&gt;In my experience, Scripting is very difficult to work with, but I am really looking forward to seeing what people will do with it.&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://jkisoft.com/&quot;&gt; JKI &lt;/a&gt;has already announced the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/docs/DOC-4678&quot;&gt;JKI Right-click Framework for LabVIEW&lt;/a&gt;, which will allow end-users to add features to the LabVIEW editor itself. Pretty cool.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1805536765316839989?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1805536765316839989</guid>
         <pubDate>Fri, 29 May 2009 10:56:00 -0700</pubDate>
      </item>
      <item>
         <title>PXI in Semiconductor Characterization</title>
         <link>http://automatedtestblog.com/2009/05/20/pxi-in-semiconductor-characterization/</link>
         <description>Embedded.com recently published an article by an engineer at On Semiconductor about their use of PXI and LabVIEW for the characterization benches. In the article, Ray Morgan describes the benefits of this system over previous approaches, saying, among other things that &amp;#8220;the PXI platform set a new standard for semiconductor design validation, breaking many [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=129</guid>
         <pubDate>Wed, 20 May 2009 14:52:31 -0700</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://www.embedded.com/">Embedded.com </a>recently published an <a rel="nofollow" target="_blank" href="http://www.embedded.com/design/217500725?pgno=1">article </a>by an engineer at <a rel="nofollow" target="_blank" href="http://www.onsemi.com/PowerSolutions/home.do">On Semiconductor </a>about their use of <a rel="nofollow" target="_blank" href="http://pxisa.org/">PXI </a>and <a rel="nofollow" target="_blank" href="http://www.ni.com/labview/">LabVIEW </a>for the characterization benches. In the article, Ray Morgan describes the benefits of this system over previous approaches, saying, among other things that &#8220;the PXI platform set a new standard for semiconductor design validation, breaking many of the paradigms and constraints of previous testing methodologies&#8221;.</p>
<p>I found the article particularly inersting as it articulates some common challenges I&#8217;ve been seeing in semiconductor characterization that I believe <a rel="nofollow" target="_blank" href="http://pxisa.org/">PXI </a>and <a rel="nofollow" target="_blank" href="http://www.ni.com/labview/">LabVIEW </a>are very well-suited to solve. We are, in fact, seeing a major uptick in the use of these platforms in applications such as these. Another technolgy that I believe will be important in these applications is the user-programmable FPGA. I discussed this trend in a previous post on <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/2007/11/27/protocol-aware-ate/">Protocol Aware ATE</a>.</p>]]></content:encoded>
      </item>
      <item>
         <title>Help Define the New LabVIEW Advanced Course</title>
         <link>http://www.eyesonvis.com/blog/2009/05/help-define-new-labview-advanced-course.html</link>
         <description>Scott Romine and Nancy Hollenback are rewriting the LV Advanced I Course, and they want your help!&lt;br /&gt;&lt;br /&gt;Join the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/designing-drafting-developing-the-lv-advanced-course&quot;&gt;Designing, Drafting, &amp; Developing the LV Advanced Course&lt;/a&gt; group on NI Communities to participate in discussions and polls that will shape the future of the course.&lt;br /&gt;&lt;br /&gt;I've joined the group, and I look forward to hearing everyone's input on what techniques every LabVIEW developer should master!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-2957124603459322412?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-2957124603459322412</guid>
         <pubDate>Thu, 07 May 2009 14:36:00 -0700</pubDate>
      </item>
      <item>
         <title>Innovating in Tough Times</title>
         <link>http://automatedtestblog.com/2009/04/07/innovating-in-tough-times/</link>
         <description>I am, by nature, and optimist. So when confronted with the very difficult business conditions we now face, I can&amp;#8217;t help but look for the opportunities. After all, opportunities do often lie in the the most unexpected places. In this case, I have been researching the phenomena that a lot of very good innovation comes [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=126</guid>
         <pubDate>Tue, 07 Apr 2009 07:21:32 -0700</pubDate>
         <content:encoded><![CDATA[<p>I am, by nature, and optimist. So when confronted with the very difficult business conditions we now face, I can&#8217;t help but look for the opportunities. After all, opportunities do often lie in the the most unexpected places. In this case, I have been researching the phenomena that a lot of very good innovation comes in the face of great adversity. I recently wrote a <a rel="nofollow" target="_blank" href="http://electronicdesign.com/Articles/ArticleID/20793/20793.html">column </a>for <a rel="nofollow" target="_blank" href="http://electronicdesign.com/">Electronic Design </a>on this subject. The gist of the article is that while R&amp;D spending clearly decreases in a recession, good ideas do tend to rise to the top, and they face less competition, in these tough times. In fact, there are quite a few examples of companies and products that have succeeded not just despite a recession, but because of it. I also discuss some strategies that you and your company can employ in this time to maximize the opportunity.</p>]]></content:encoded>
      </item>
      <item>
         <title>Tree Control Scrollbar Tip</title>
         <link>http://www.eyesonvis.com/blog/2009/04/tree-control-scrollbar-tip.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sda_Ro9-kKI/AAAAAAAAAM4/E0ym0wD6xvQ/s1600-h/LabVIEW_tree_control1.jpg&quot;&gt;&lt;img style=&quot;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:280px;height:189px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sda_Ro9-kKI/AAAAAAAAAM4/E0ym0wD6xvQ/s400/LabVIEW_tree_control1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5320650319560872098&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sda_RnDCa3I/AAAAAAAAANA/K673bXxTDa0/s1600-h/LabVIEW_tree_control2.jpg&quot;&gt;&lt;img style=&quot;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:280px;height:189px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sda_RnDCa3I/AAAAAAAAANA/K673bXxTDa0/s400/LabVIEW_tree_control2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5320650319045225330&quot;/&gt;&lt;/a&gt;&lt;br /&gt;One of my colleagues recently showed me a VI that automatically shows and hides the scrollbars of the tree control, as well as resizing the columns, depending on the text in the cells. Those of you who are familiar with the tree control are probably aware that it doesn't have this capability built-in.&lt;br /&gt;&lt;br /&gt;The VI isn't in the palettes but is in the &lt;b&gt;tree&lt;/b&gt; folder of vi.lib. It's called &lt;b&gt;Tree_ShowScrollBar.vi&lt;/b&gt;.&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SdbAAbqDBEI/AAAAAAAAANI/EWbOKIIee64/s1600-h/LabVIEW_tree_control3.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:52px;height:51px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SdbAAbqDBEI/AAAAAAAAANI/EWbOKIIee64/s400/LabVIEW_tree_control3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5320651123441468482&quot;/&gt;&lt;/a&gt;&lt;br /&gt;To see a brief demo of the functionality, check out &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.eyesonvis.com/main/topic_archive/movie.html&quot;&gt;this video on my website&lt;/a&gt;. If you have trouble viewing that video, you can try &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=f0B1Zso4-3I&quot;&gt;the YouTube version.&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-14071454457140294?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-14071454457140294</guid>
         <pubDate>Fri, 03 Apr 2009 13:16:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/Sda_Ro9-kKI/AAAAAAAAAM4/E0ym0wD6xvQ/s72-c/LabVIEW_tree_control1.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>&quot;Large LabVIEW Application Development&quot; and &quot;UI Interest&quot; Groups</title>
         <link>http://www.eyesonvis.com/blog/2009/04/large-labview-application-development.html</link>
         <description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/large-labview-application-development&quot;&gt;&lt;img style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:200px;height:267px;&quot; src=&quot;http://decibel.ni.com/content/groups/image/1010/1.png?a=5011&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;One of my colleagues, Elijah Kerry, has a group on NI Communities dedicated to &quot;Large LabVIEW Application Development.&quot; His recent &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/large-labview-application-development/blog/2009/03/23/professional-user-interfaces-in-labview&quot;&gt;blog post on &quot;Professional User Interfaces in LabVIEW&quot;&lt;/a&gt; has links to numerous examples of &quot;the level of customization and flexibility that LabVIEW controls and indicators provide.&quot; Please check it out!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/ui&quot;&gt;&lt;img style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:200px;height:150px;&quot; src=&quot;http://decibel.ni.com/content/groups/image/1088/1.png?a=5070&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Also, be sure not to miss the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/ui&quot;&gt;UI Interest Group&lt;/a&gt;, which has cool info and examples, including the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/docs/DOC-4028&quot;&gt;&quot;ni.com Inspired Custom Control Suite&quot;&lt;/a&gt; (which Jim Kring has kindly created a VI Package for, so you can easily install it with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://jkisoft.com/vipm&quot;&gt;VI Package Manager&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Finally, I'd like to send out a personal thank you to Christopher Relf for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/groups/ui/blog/2009/03/23/an-introduction-to-user-interface-design---creating-an-intuative-ui&quot;&gt;kind comments&lt;/a&gt; about my article in the latest &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/news/inst_news_q1_09.htm&quot;&gt;Instrumentation Newsletter&lt;/a&gt;, entitled &lt;a rel=&quot;nofollow&quot;&gt;&lt;i&gt;Your VIs: Good, Bad, or Ugly?&lt;/i&gt;&lt;/a&gt; The article is available online for anyone who missed it in the mail!&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-8826598365446800021?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-8826598365446800021</guid>
         <pubDate>Thu, 02 Apr 2009 13:40:00 -0700</pubDate>
      </item>
      <item>
         <title>There Are No Strict Type Definition Constants</title>
         <link>http://www.eyesonvis.com/blog/2009/03/there-are-no-strict-type-definition.html</link>
         <description>Type definitions (aka typedefs) are very useful. However, they also have some unexpected behaviors that can cause you a lot of trouble.&lt;br /&gt;&lt;br /&gt;As a usability advocate, it pains me every time I have to explain this one, but here it is: There are no strict typedef constants in LabVIEW.&lt;br /&gt;&lt;br /&gt;I am not going to try to defend this as &quot;good&quot; behavior. But it's not a bug when constants linked to strict typedef files only update on type changes.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Basics of Custom Controls&lt;/h3&gt;&lt;br /&gt;LabVIEW has three kinds of custom controls (.ctl files).&lt;ol&gt;&lt;li&gt;&lt;b&gt;Unlinked custom control&lt;/b&gt;. A &quot;regular&quot; custom control uses a definition (.ctl) file but the instances are not linked to the definition file. Thus, when you edit the .ctl file, instances that were created from it in the past do not update.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Linked by type&lt;/b&gt; (aka typedef or type definition). Whenever the definition (.ctl file) changes &lt;em&gt;type&lt;/em&gt;, all instances need to update. If the instance is set to auto-updating, it will update itself on load. [Note, however, that it will not auto-update while the definition file is open in the control editor.] If not set to auto-updating, you must right click on each instance to update it.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Linked by all attributes&lt;/b&gt; (aka strict typedef). Similar to a typedef, except that any time the definition changes, all instances must update. This is achieved by time stamp comparison between the definition and instances. The intent is to have all instances cosmetically identical to the definition. Since most cosmetic attributes are invalid on the block diagram, there is no such thing as a strict typedef constant. &lt;b&gt;Constants linked to strict typedef definitions act like typedef constants.&lt;/b&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Confusion Over When Typedefs Update&lt;/h3&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_BN3_donLgVE/Scr8Km8BFnI/AAAAAAAAAMo/uWbQpNmyFuE/s1600-h/LabVIEW_ring.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:181px;&quot; src=&quot;http://4.bp.blogspot.com/_BN3_donLgVE/Scr8Km8BFnI/AAAAAAAAAMo/uWbQpNmyFuE/s320/LabVIEW_ring.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5317339569245460082&quot;/&gt;&lt;/a&gt;If you have a ring, its type is its numeric representation, e.g. unsigned word. &lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/Scr8pYpUGsI/AAAAAAAAAMw/VB1XHnpumrs/s1600-h/LabVIEW_enum.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:166px;&quot; src=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/Scr8pYpUGsI/AAAAAAAAAMw/VB1XHnpumrs/s400/LabVIEW_enum.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5317340097984862914&quot;/&gt;&lt;/a&gt;If you have an enum (which can look identical on the front panel), its type contains its item names. &lt;br /&gt;&lt;br /&gt;Thus, when you add items to a typedef ring definition file, the instances don't update (because the type didn't change). When you add items to a typedef &lt;b&gt;enum&lt;/b&gt; definition file, the instances &lt;em&gt;do&lt;/em&gt; update. However, if you make a strict typedef ring, then control instances will update when you add items. But since there's no strict typedefs on the diagram, constants that are linked to a strict typedef ring will not update when you add items. This behavior is confusing, but it is working as designed.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Forcing Updates&lt;/h3&gt;&lt;br /&gt;Even though typedefs only update when types change, instances get cosmetic changes from the definition whenever they update. So one trick to &quot;push&quot; changes to typedef instances is to change the data type, apply changes, and then change the data type back. [edit, March 26 - Note that the typedef instances need to be in memory when you use this trick].&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Unreliability of Data&lt;/h3&gt;&lt;br /&gt;Another potential problem with typedefs is that you shouldn't rely on them keeping their data values when they update. LabVIEW will attempt to preserve data. For example, if you have a typedef numeric constant and change its representation, LabVIEW will convert the value. However, there are many cases where LabVIEW will not preserve the values correctly, especially with clusters, so it's a good policy not to rely on the values being preserved. (Or to visit all the typedef instances when you make changes, in order to verify their values).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Why Use Typedefs?&lt;/h3&gt;&lt;br /&gt;I would be remiss if I didn't make a case for using typedefs despite the potential problems that I've covered here. Typedefs let you change the type of all the instances with a single edit. This is very useful, for example, when you have a set of VIs operating on a cluster and you later realize you need to add or remove items to it. Without using a typedef, you have a lot of broken wires until you visit every VI that passes the cluster in or out of its connector pane. And strict typedefs are extremely valuable for maintaining consistent user interfaces - you can make controls on any number of VIs have the same appearance. &lt;br /&gt;&lt;br /&gt;One final note - if you're using LabVIEW 8.2 or later, and you want to use a typedef so that you can encapsulate data for passing between VIs, then you should consider using a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eyesonvis.blogspot.com/2006/08/class-black-box-cluster-typedef.html&quot;&gt;LVClass&lt;/a&gt; instead. You may still choose to use a typedef, but it's good to evaluate, because LVClasses serve the role well and give you a lot of other benefits as well.&lt;br /&gt;&lt;br /&gt;[Please ignore this edit. I'm trying to see if updating an older post makes it show up on my blog mirror on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://decibel.ni.com/content/people/ChristinaR?view=blogposts&quot;&gt;NI Communities&lt;/a&gt;, without causing ill effects.]&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-6623474151551369768?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-6623474151551369768</guid>
         <pubDate>Wed, 25 Mar 2009 13:43:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_BN3_donLgVE/Scr8Km8BFnI/AAAAAAAAAMo/uWbQpNmyFuE/s72-c/LabVIEW_ring.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Creative Market Sizing</title>
         <link>http://automatedtestblog.com/2009/03/19/creative-market-sizing/</link>
         <description>Two weeks ago, Martin Rowe from Test and Measurement World posted to story Will LXI Really Grow 24 Percent on his blog. I was glad to see Martin dig into the number to uncover some of the creative spin in the way it was positioned. Martin is dead-on - this number can be misleading for [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=122</guid>
         <pubDate>Thu, 19 Mar 2009 13:51:06 -0700</pubDate>
         <content:encoded><![CDATA[<p>Two weeks ago, <a rel="nofollow" target="_blank" href="http://www.tmworld.com/blogger/2012.html">Martin Rowe </a>from <a rel="nofollow" target="_blank" href="http://www.tmworld.com/">Test and Measurement World </a>posted to story <a rel="nofollow" target="_blank" href="http://www.tmworld.com/blog/1430000143/post/1610041561.html">Will LXI Really Grow 24 Percent on his blog</a>. I was glad to see Martin dig into the number to uncover some of the creative spin in the way it was positioned. Martin is dead-on - this number can be misleading for at least three reasons:</p>
<p>1) A large number of LXI instruments already had Ethernet connectivity and then added LXI compliance;</p>
<p>2) Many LXI instruments also have other buses that can be used to connect them to a PC, such as GPIB and USB; and</p>
<p>3) Not all standalong instruments are connected to a PC at all.</p>
<p>Not that these issues are a problem for users - it makes sense to have standards around implementation of Ethernet instruments and it makes sense to give users a choice of connectivity options. The only problem is that these numbers are positioned this way to influence public opinion; in this case, to imply that the use of LXI is greater then it actually is. I don&#8217;t blame the LXI group for trying, but I do commend Martin Rowe for questioning the report.</p>]]></content:encoded>
      </item>
      <item>
         <title>VI Makeover Edition - Part 1</title>
         <link>http://www.eyesonvis.com/blog/2009/03/vi-makeover-edition-part-1.html</link>
         <description>For a long time, I've been meaning to do a series of posts I call the &quot;VI Makeover Edition&quot; where we take a VI front panel from &quot;drab&quot; to &quot;fab!&quot; :-)&lt;br /&gt;&lt;br /&gt;I helped &quot;spiffy up&quot; a VI for an NI Week keynote demo last year. It is a graphic equalizer powered by LabVIEW MathScript. You can watch the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/niweek/2008/keynote/graphic_equalizer_with_multicore.htm&quot;&gt;demo video on ni.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The goal was simply to make the VI look better on the big screen, and make it easier to see the operation of the controls from the back of the room.&lt;br /&gt;&lt;br /&gt;The original VI looked something like this:&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sa3jr05SzhI/AAAAAAAAAMQ/_CCIzai6lyc/s1600-h/MathScriptEqualizerOriginal.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:318px;height:320px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sa3jr05SzhI/AAAAAAAAAMQ/_CCIzai6lyc/s320/MathScriptEqualizerOriginal.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5309149877812514322&quot;/&gt;&lt;/a&gt;&lt;br /&gt;And the final VI looked something like this:&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sa3iyaKkthI/AAAAAAAAAMI/rIxK4aPslbc/s1600-h/MathScript+Equalizer+Demo.jpg&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:306px;height:320px;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/Sa3iyaKkthI/AAAAAAAAAMI/rIxK4aPslbc/s320/MathScript+Equalizer+Demo.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5309148891384690194&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Some of the tips and tricks I plan to cover include:&lt;ul&gt;&lt;li&gt;VI panel wallpaper&lt;/li&gt;&lt;li&gt;Background images and locking&lt;/li&gt;&lt;li&gt;Customizing the parts of a slider control&lt;/li&gt;&lt;li&gt;Adding decorations to controls&lt;/li&gt;&lt;li&gt;Using transparent color&lt;/li&gt;&lt;li&gt;Gradients and graphics&lt;/li&gt;&lt;li&gt;Grouping and alignment&lt;/li&gt;&lt;/ul&gt;If you want me to cover these in a particular order or have questions in advance that I should cover, please let me know!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-632786894360537661?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-632786894360537661</guid>
         <pubDate>Tue, 03 Mar 2009 11:48:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/Sa3jr05SzhI/AAAAAAAAAMQ/_CCIzai6lyc/s72-c/MathScriptEqualizerOriginal.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Trend# 3: Expansion of Wireless and Protocol-Aware Test</title>
         <link>http://automatedtestblog.com/2009/03/02/trend-3-expansion-of-wireless-and-protocol-aware-test/</link>
         <description>As I stated in my last blog post, I’m planning to discuss one of three industry trends per blog entry over the next few weeks. My 3rd and final trend is: Expansion of Wireless and Protocol-Aware Test
In addition to emerging technological advances, software-defined instrumentation has proved ideal for rapid-growth areas such as wireless and protocol-aware test. [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=117</guid>
         <pubDate>Mon, 02 Mar 2009 12:34:13 -0800</pubDate>
         <content:encoded><![CDATA[<p>As I stated in my last <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/2009/02/09/trend-2-increased-adoption-of-parallel-processing-technologies/">blog post</a>, I’m planning to discuss one of three industry trends per blog entry over the next few weeks. My 3rd and final trend is:</p>
<p><strong><br />
Expansion of Wireless and Protocol-Aware Test</strong><br />
In addition to emerging technological advances, software-defined instrumentation has proved ideal for rapid-growth areas such as wireless and <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/2007/11/27/protocol-aware-ate/">protocol-aware test</a>. For example, consumer electronics devices including cell phones and automotive in-dash entertainment systems often integrate multiple communication protocols and standards such as <a rel="nofollow" target="_blank" href="http://www.3gpp.org/">GSM</a>, <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Gps">GPS</a>, and <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Wireless_LAN">WLAN</a>. Test engineers using traditional instruments rely on vendors to develop dedicated, stand-alone instruments to test each standard. With software-defined instruments, engineers and researchers can test multiple standards using common modular hardware components and implement emerging and custom wireless protocols and algorithms in their test systems regardless of the maturity of a new wireless standard.</p>
<p>For example, Dr. Umberto Spagnolini at the Polytechnic Institute of Milan is using LabVIEW to prototype algorithms for emerging standards such as <a rel="nofollow" target="_blank" href="http://www.wimaxforum.org/node">WiMAX</a>. Researchers such as Dr. Spagnolini can directly control system parameters, including channel coding, power, and modulation scheme, while adding fading and multipath interference to determine system immunity as a prototype of emerging <a rel="nofollow" target="_blank" href="http://www.wimaxforum.org/node">WiMAX </a>algorithms.</p>
<p>In the semiconductor industry, the demand for increasingly functionality and integration continues unabated. As a result, semiconductor companies are heavily investing in complex systems on a chip (<a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/System-on-a-chip">SoCs</a>) and systems in a package (<a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/System_in_package">SiPs</a>) technologies. It is often difficult to fully verify these devices using traditional ATE, which has led to an increased demand for so-called <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/2007/11/27/protocol-aware-ate/">protocol aware </a>test or the ability to test devices by emulating the real-world signals connected to them.</p>
<p>These increasing requirements for semiconductor test and the need to reduce total test costs have led industry organizations such as the Semiconductor Test Consortium (<a rel="nofollow" target="_blank" href="http://www.semitest.org/home">STC</a>) and the newly founded Collaborative Alliance for Semiconductor Test (<a rel="nofollow" target="_blank" href="http://www.semi.org/en/IndustrySegments/Test/Cast/index.htm">CAST</a>) to investigate standards around open test architectures that support the integration of modular, software-defined instrumentation such as PXI into traditional semiconductor ATE. By using software-defined, FPGA-based instrumentation in these semiconductor test systems, engineers can achieve real-time responses with the standard pin electronics found in traditional ATE, lowering the total cost of test through better use-case coverage and improving the user’s ability to debug failures.</p>]]></content:encoded>
      </item>
      <item>
         <title>A Short Robot Video</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/3Zx2zymX2zs/short-robot-video.html</link>
         <description>&lt;p&gt;In my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2008/12/labview-api-design-quick-case-study.html&quot;&gt;last post&lt;/a&gt;, I talked about the instrument driver for a Hokuyo LIDAR that I've been working with. The new driver that supports more models (and supports them all better) will be posted to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ni.com/idnet/&quot;&gt;IDNet&lt;/a&gt; in the next week or two.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I thought I'd show you how I was actually using the LIDAR. Meet NIcholas, a robot I've been working with for the last few weeks...&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SZL3K3Ai3EI/AAAAAAAAAKQ/lwx25H8_r-U/s1600-h/20090211_0003.jpg&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5301571477305482306&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;WIDTH:400px;CURSOR:hand;HEIGHT:336px;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SZL3K3Ai3EI/AAAAAAAAAKQ/lwx25H8_r-U/s400/20090211_0003.jpg&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;NIcholas is based on a radio-controlled car platform, but is controlled entirely by the on-board single-board RIO computer running LabVIEW Real-Time and LabVIEW FPGA.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/singleboard/&quot;&gt;Single-board RIO&lt;/a&gt; is an OEM-able circuit board that contains both LabVIEW Real-time and LabVIEW FPGA targets. It's similar in functionality to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/compactrio/&quot;&gt;compactRIO&lt;/a&gt; platform. I'm using the Real-time part for processing the LIDAR data, and the FPGA for controlling the motors and steering.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I didn't build NIcholas myself; he was built by an intern last summer. As a research project, I've taken him under my wing for a while to learn more about LabVIEW on the RIO platform, and a little bit about robotics.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;NIcholas doesn't have much of a mission, yet. He just drives around autonomously and tries to avoid obstacles. The LIDAR is used to detect obstacles and find the clearest path to take.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here's a short video showing NIcholas in action...&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;iframe class=&quot;embeddedvideo&quot; src=&quot;http://www.youtube.com/v/AFyAEOfsSSY&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For more information on robotics with LabVIEW, see &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ni.com/robotics/&quot;&gt;ni.com/robotics&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-7918951684438375375?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/TLMz8jH4mzII12t_QLx0m8JdHxc/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/TLMz8jH4mzII12t_QLx0m8JdHxc/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/TLMz8jH4mzII12t_QLx0m8JdHxc/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/TLMz8jH4mzII12t_QLx0m8JdHxc/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-7918951684438375375</guid>
         <pubDate>Tue, 10 Feb 2009 07:27:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_3ziZaf8zuQ4/SZL3K3Ai3EI/AAAAAAAAAKQ/lwx25H8_r-U/s72-c/20090211_0003.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Trend# 2: Increased Adoption of Parallel Processing Technologies</title>
         <link>http://automatedtestblog.com/2009/02/09/trend-2-increased-adoption-of-parallel-processing-technologies/</link>
         <description>As I stated in my last blog post, I’m planning to discuss one of three industry trends per blog entry over the next few weeks. My 2nd trend is:
Trend#2: Increased Adoption of Parallel Processing Technologies
Multicore technology has become a standard feature in automated test systems and a necessity for today’s electronic devices that are processing [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=96</guid>
         <pubDate>Mon, 09 Feb 2009 15:23:18 -0800</pubDate>
         <content:encoded><![CDATA[<p>As I stated in my last <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/2009/01/26/2009-trends-in-test/">blog</a> post, I’m planning to discuss one of three industry trends per blog entry over the next few weeks. My 2nd trend is:</p>
<p><strong>Trend#2: Increased Adoption of Parallel Processing Technologies</strong></p>
<p><a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Multi-core_(computing)">Multicore </a>technology has become a standard feature in automated test systems and a necessity for today’s electronic devices that are processing unprecedented amounts of data. Software-defined instrumentation takes advantage of the latest multicore processors and high-speed bus technologies to generate, capture, analyze and process the gigabytes of data required to properly design and test electronic devices. Multicore architectures can present a challenge when used with traditional text-based programming environments that are not inherently parallel and require low-level programming techniques. However, test engineers quickly can <a rel="nofollow" target="_blank" href="http://zone.ni.com/devzone/cda/tut/p/id/6422">realize the benefits of multicore technology </a>through inherently higher level programming environments such as <a rel="nofollow" target="_blank" href="http://zone.ni.com/devzone/cda/tut/p/id/5899">LabVIEW</a>, which automatically distributes multithreaded applications across multiple computing cores for maximum performance and throughput.</p>
<p>Many test engineers I talk to are already experiencing the challenge of programming multicore in that, for the first time, they are not seeing an increase in test system performance when updating the PC in the system. In fact, due to the potentially slower clock rates of many multicore processors, their systems may actually run slower!</p>
<p>On the other hand, Alejandro Torres, senior manufacturing test engineer at <a rel="nofollow" target="_blank" href="http://www.sanmina-sci.com/Info/locations/glob_loc.jsp?site=Guadalajara&amp;type=Logistics">Sanmina-SCI</a>, provided an example of the potential business benefits attained by using programming tools tuned for multicore technology when he stated, “By leveraging the multicore technology in LabVIEW and the latest NI multicore PXI embedded controller, we were able to increase our test throughput by one additional workday per week. Best of all, we achieved this throughput increase by simply upgrading from a previous-generation PXI single-core embedded controller to the latest NI PXI multicore embedded controller with only minimal changes to our code.”</p>
<p>Another area of growth for software-defined instrumentation is the increase in system-level design tools for FPGAs. Many <a rel="nofollow" target="_blank" href="http://www.ni.com/flexrio/">modular instruments</a> now come equipped with FPGAs, including several released in the past year that offer the high-performance <a rel="nofollow" target="_blank" href="http://www.xilinx.com/products/virtex5/">Xilinx Virtex-5 FPGA</a>. These FPGA-based instruments provide test engineers with the ability to implement more complex digital signal processing at faster rates than ever before. Because software programs such as LabVIEW give test engineers the ability to program FPGAs without requiring knowledge of VHDL, the performance benefits of FPGAs are no longer limited to a subset of hardware engineers with extensive knowledge in digital design.</p>
<p>Next week, I’ll post on the third trend, the Expansion of Wireless and Protocol-Aware Test.</p>]]></content:encoded>
      </item>
      <item>
         <title>You're Invited - LabVIEW Beta Program</title>
         <link>http://www.eyesonvis.com/blog/2009/02/youre-invited-labview-beta-program.html</link>
         <description>I am pleased to announce that NI is calling for participation in the LabVIEW 2009 Beta program!&lt;br /&gt;&lt;br /&gt;Here is more information from the Beta program coordinators:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You are invited to register for participation in the LabVIEW 2009 Platform beta program. &lt;br /&gt;&lt;br /&gt;You can register by visiting &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/beta&quot;&gt;http://www.ni.com/beta&lt;/a&gt; and selecting &quot;LabVIEW 2009 Platform&quot; from the list of beta programs. Please complete the profile questions that will help us understand your experience and use cases with LabVIEW. Make sure you agree to the T&amp;C of the beta program so that you can be approved.&lt;br /&gt;&lt;br /&gt;After you register, please be patient for the beta coordinators to process your application. You will be notified when you have been approved. Registration does not necessarily guarantee you a position in the beta program. Determination of acceptance into the program is up to the sole discretion of National Instruments.&lt;br /&gt;&lt;br /&gt;We will have a private section of the Discussion Forums on NI Developer's Exchange set up for beta users to discuss the beta version of the LabVIEW 2009 Platform.&lt;br /&gt;&lt;br /&gt;We eagerly await your registration. Thank you for your invaluable help in assisting us design and test LabVIEW.&lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-4400934643680461036?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-4400934643680461036</guid>
         <pubDate>Mon, 09 Feb 2009 08:46:00 -0800</pubDate>
      </item>
      <item>
         <title>Tip for iPhone Users</title>
         <link>http://www.eyesonvis.com/blog/2009/02/tip-for-iphone-users.html</link>
         <description>This past week I learned that I can create links to web pages on my iPhone home screen. I love having quick access to my favorite web sites! Here's the description from &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/webapps/whatarewebapps.html&quot;&gt;Apple.com&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;When you find a web app you like, you can put it front and center on your Home screen. Just open the web app on your iPhone or iPod touch, tap the plus sign, and then tap “Add to Home screen.” A Web Clip will be added to your Home screen automatically for easy, one-tap access.&lt;/blockquote&gt;&lt;br /&gt;If you add a web clip to Eyes on VIs, you'll get to see the custom icon I made for it!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-3091425142127826732?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-3091425142127826732</guid>
         <pubDate>Sun, 08 Feb 2009 02:38:00 -0800</pubDate>
      </item>
      <item>
         <title>Captions</title>
         <link>http://www.eyesonvis.com/blog/2009/01/captions.html</link>
         <description>Last week I was fixing a problem with a VI where the wrong text was shown in the Context Help window for some of the controls. Perhaps it's a VI you recognize...&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SYEaBFWWVWI/AAAAAAAAALY/SzPN5dMHnhE/s1600-h/Getting+Started+Window.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:264px;&quot; src=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SYEaBFWWVWI/AAAAAAAAALY/SzPN5dMHnhE/s320/Getting+Started+Window.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296543242682520930&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Yes, embarrassingly enough, it was a bug with my Getting Started window. The small images to the left of some of the links are picture rings. They were showing their decidedly unhelpful labels in the help window:&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_BN3_donLgVE/SYEalu_KJhI/AAAAAAAAALg/Oq7ZY44NI1k/s1600-h/Context+Help.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:142px;height:148px;&quot; src=&quot;http://4.bp.blogspot.com/_BN3_donLgVE/SYEalu_KJhI/AAAAAAAAALg/Oq7ZY44NI1k/s320/Context+Help.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296543872334833170&quot;/&gt;&lt;/a&gt;&lt;br /&gt;After deciding that the picture rings should simply have the same names and descriptions as the items to their right, I added a property node to set the caption text and description. &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SYEb4Uaa9fI/AAAAAAAAALo/9UUV7DVNdOU/s1600-h/Property+Node.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:113px;height:56px;&quot; src=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SYEb4Uaa9fI/AAAAAAAAALo/9UUV7DVNdOU/s320/Property+Node.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296545291130566130&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Then I ran the VI. It didn't work. In fact, it fixed the context help for some, but not all, of the picture rings.&lt;br /&gt;&lt;br /&gt;You might already be able to spot what I did wrong. If not, maybe you'll be able to guess after I explain more about captions.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What Are Captions?&lt;/h3&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SYEetwaYInI/AAAAAAAAALw/InriUyo3D-g/s1600-h/String.png&quot;&gt;&lt;img style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:111px;height:51px;&quot; src=&quot;http://3.bp.blogspot.com/_BN3_donLgVE/SYEetwaYInI/AAAAAAAAALw/InriUyo3D-g/s320/String.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296548408202895986&quot;/&gt;&lt;/a&gt;When you place a control on a VI's front panel, it has a label where you give it a name. This name is shown in the context help window. It also provides the identifier for programmatic interfaces such as &lt;span style=&quot;font-weight:bold;&quot;&gt;Set Control Value&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;When the LabVIEW team added features to support localization of VIs, we needed to be able to change the name of a control. But if we changed the label, calls to interfaces like &lt;span style=&quot;font-weight:bold;&quot;&gt;Set Control Value&lt;/span&gt; would break. So we introduced another kind of label, called a caption.&lt;br /&gt;&lt;br /&gt;We also didn't want to make VIs bigger (in memory and on disk) by adding a part to every control and indicator that most wouldn't use, so captions are &quot;lazily created.&quot; When you right-click on a control and select &lt;span style=&quot;font-weight:bold;&quot;&gt;Visible Items&amp;gt;Caption&lt;/span&gt;, LabVIEW creates a caption for the control. It also hides the label (since you usually use a caption instead of a label, not in addition to it) which leads to the confusing situation where the menu option appears to have no effect (because the caption initially looks exactly like the label and is in the same location).&lt;br /&gt;&lt;br /&gt;You can tell that a control has a caption by looking at the context help window. When the VI is in edit mode, the context help displays the caption and the label, with the label in square brackets. (Note that when the VI is running, the context help displays the caption but not the label).&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SYEipvToB1I/AAAAAAAAAL4/e523kecoUHg/s1600-h/Caption+Help.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:190px;height:147px;&quot; src=&quot;http://2.bp.blogspot.com/_BN3_donLgVE/SYEipvToB1I/AAAAAAAAAL4/e523kecoUHg/s320/Caption+Help.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296552737233176402&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Fixing the Bug&lt;/h3&gt;Coming back to my original story, when I checked the &lt;span style=&quot;font-weight:bold;&quot;&gt;error out&lt;/span&gt; of the property node that was setting the ring caption, I found it was generating error 1320: &quot;In run mode, LabVIEW cannot get or set a property for a control part that has not been created.&quot;&lt;br /&gt;&lt;br /&gt;The problem was that some, but not all, of the rings had caption parts. As I mentioned earlier, captions are lazily created - you can't set the text on them if they don't exist, and LabVIEW can't create them on running VIs. The solution was to show (and thus create) the captions for all the rings. Luckily, I was using LabVIEW 8.6 and could use the new multi-select feature. I selected all the rings, right-clicked to show the Properties dialog and showed all their captions in one step. Problem solved.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-6317609299615497840?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-6317609299615497840</guid>
         <pubDate>Wed, 28 Jan 2009 12:44:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_BN3_donLgVE/SYEaBFWWVWI/AAAAAAAAALY/SzPN5dMHnhE/s72-c/Getting+Started+Window.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>2009 Trends in Test</title>
         <link>http://automatedtestblog.com/2009/01/26/2009-trends-in-test/</link>
         <description>Yes, its 2009 and time again to make some predictions about the technologies and trends that I think will shape our industry this year. Of course, making predictions for the rest of this year right now is a pretty risky proposition. But, one thing I know to be true is that in a tough economy, [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=93</guid>
         <pubDate>Sun, 25 Jan 2009 18:37:20 -0800</pubDate>
         <content:encoded><![CDATA[<p>Yes, its 2009 and time again to make some predictions about the technologies and trends that I think will shape our industry this year. Of course, making predictions for the rest of this year right now is a pretty risky proposition.<span> </span>But, one thing I know to be true is that in a tough economy, you have to be able to do more with fewer resources.<span> </span>Test and measurement often comes under particular scrutiny in an economic down cycle, and test engineers will need to be prepared to optimize our approach to verification and production test, or even look at alternatives to our existing test engineering strategies</p>
<p>These demands have led to three major trends that I believe will significantly influence the Test and Measurement industry over the next year. Instead of blogging them all here today, I will share one per entry over the next few weeks.</p>
<p><strong>Trend#1: Growth of Software-Defined Instrumentation</strong></p>
<p>The adoption of software-defined instrumentation is the most significant trend in test and measurement for 2009. Software-defined instruments, also known as virtual instruments, consist of modular hardware and user-defined software that give engineers the ability to combine standard and user-defined measurements with custom data processing using common hardware components. This flexibility has become critical as electronic devices such as next-generation navigation systems and smart phones integrate diverse capabilities and rapidly adopt new communication standards. Using software-defined instruments, engineers rapidly can reconfigure their test equipment by modifying software algorithms to meet changing test requirements.</p>
<p>In addition, engineers are using software-defined instrumentation to achieve new levels of measurement performance and lower test costs by applying the latest technological advancements such as <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Multi-core_(computing)"> multicore processors</a> and field-programmable gate arrays (<a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Multi-core_(computing)">FPGAs</a>) in their test systems to meet the demands of new application areas such as wireless and <a rel="nofollow" target="_blank" href="http://automatedtestblog.com/tag/protocol-aware-ate/">protocol-aware test</a>.</p>
<p>Because of the flexibility and cost-effectiveness of this approach, thousands of companies are adopting software-defined instrumentation and industry standards that build on this approach continue to grow, even in the difficult world economy. For example, according to the <a rel="nofollow" target="_blank" href="http://pxisa.org/">PXI Systems Alliance</a>, more than 100,000 PXI systems will be deployed by the end of 2009, and the number of deployed PXI systems is expected to double in the next decade.</p>
<p>Jessy Cavazos, test and measurement industry manager at <a rel="nofollow" target="_blank" href="http://www.frost.com/prod/servlet/frost-home.pag">Frost &amp; Sullivan</a>, recently confirmed that PXI is influencing this trend when she stated, “The open, modular architecture of software-defined instruments such as those in PXI have proven beneficial to a wide range of industries, and, as a result, PXI revenue in measurement and automation is expected to grow at 17.6 percent CAGR through 2014. The performance delivered by the PXI platform has successfully addressed areas such as RF applications in radar testing, mobile phone testing and other wireless applications that were previously impossible to address with other instrumentation.”</p>
<p>Next week, I&#8217;ll post on the second trend, the increased adotoption of parallel technologies.</p>]]></content:encoded>
      </item>
      <item>
         <title>Learning LabVIEW</title>
         <link>http://www.eyesonvis.com/blog/2009/01/learning-labview.html</link>
         <description>A LabVIEW user who is aspiring to become a CLAD (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438&quot;&gt;Certified LabVIEW Associate Developer&lt;/a&gt;) asked me for book recommendations. I didn't know the answer, but I knew who to ask. My colleague Nitin Thomas, one of our LabVIEW Product Support Engineers, helped me out with the following links, which I think would be helpful to anyone trying to learn LabVIEW: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/academic/lv_training/how_learn_lv.htm&quot;&gt;How Can I Learn LabVIEW&lt;/a&gt; on NI's Academic site. This page is a great compilation of resources, including courses, webcasts, books and more. &lt;br /&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.lavag.org/LabVIEW_Books&quot;&gt;LAVA Wiki book list&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Dr. Scott Hannah's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://hannahsmac.magnet.fsu.edu/labview/basic_labviewbooks.html&quot;&gt;extensive LabVIEW book list.&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/4261&quot;&gt;How Can I Prepare&lt;/a&gt; for the Certified LabVIEW Associate Developer (CLAD) Exam?&quot; on ni.com, including preparation guide and webcast.&lt;br /&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1318730308069717447?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1318730308069717447</guid>
         <pubDate>Thu, 08 Jan 2009 00:36:00 -0800</pubDate>
      </item>
      <item>
         <title>New Blog from Darren of LabVIEW R&amp;D</title>
         <link>http://www.eyesonvis.com/blog/2009/01/new-blog-from-darren-of-labview-r.html</link>
         <description>I'm thrilled that Darren Nattinger (of Darren's Weekly Nugget fame), creator of the Quick Drop feature of LabVIEW, has started his own blog: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://labviewartisan.blogspot.com/&quot;&gt;LabVIEW Artisan&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Darren is one of the top experts in VI development here at NI, and I am looking forward to reading his development tips and ideas for future features!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1587703997413841274?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1587703997413841274</guid>
         <pubDate>Mon, 05 Jan 2009 07:30:00 -0800</pubDate>
      </item>
      <item>
         <title>A Brave New Year</title>
         <link>http://automatedtestblog.com/2009/01/05/a-brave-new-year/</link>
         <description>Well, 2009 is finally here. After a couple months of bad news on the financial markets and the global economy, I think we&amp;#8217;re all ready for a fresh start. No, I don&amp;#8217;t think the bad news is over yet; in fact, it will probably get a little worse still before it gets better. Still, while [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=91</guid>
         <pubDate>Sun, 04 Jan 2009 18:54:21 -0800</pubDate>
         <content:encoded><![CDATA[<p>Well, 2009 is finally here. After a couple months of bad news on the financial markets and the global economy, I think we&#8217;re all ready for a fresh start. No, I don&#8217;t think the bad news is over yet; in fact, it will probably get a little worse still before it gets better. Still, while 2009 does promise to be a challenging year economically, I doubt it will be as bad as some of the headlines would lead you to believe. And, in any economy, there are opportunities for those who innovate. In fact, I believe that innovation actually flourishes in the toughest situations. I&#8217;ll write more on that idea in a future post. For now, here&#8217;s to making the most of 2009!</p>]]></content:encoded>
         <category>News</category>
      </item>
      <item>
         <title>LabVIEW API Design: A Quick Case Study</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/SvpXb_xyrVw/labview-api-design-quick-case-study.html</link>
         <description>Happy holidays, everybody. It's Friday, December 26, and I'm one of a handful of NI Austin employees not taking a vacation today. I got a &lt;em&gt;really&lt;/em&gt; good parking spot. :)&lt;br /&gt;&lt;br /&gt;A couple of recent blog comments have asked for more thoughts on LabVIEW API design. As it happens, I've been working with a device lately with a LabVIEW instrument driver that I'm not entirely happy with. So I will use this driver as an example to highlight a few points on API design.&lt;br /&gt;&lt;br /&gt;To be fair, this driver is actually pretty good. It's a driver for a Hokuyo laser rangefinder, written by one of our interns. I think this is the first driver that we've written for a laser rangefinder, also called a LIDAR. The first driver for a particular type of instrument is the hard. (That's why our instrument driver development tools encourage you to start with a driver for a similar instrument if you can.)&lt;br /&gt;&lt;br /&gt;I'm revisiting this driver for a couple of reasons... 1) I am trying to extend the driver to support a newer, faster model in the same LIDAR family, and 2) I'm trying to get data from my current LIDAR faster.&lt;br /&gt;&lt;br /&gt;If the first driver of a particular type is hard, the second is harder. Once I have two similar, but different, instruments, I have to resolve the differences in a way that makes sense for both devices.&lt;br /&gt;&lt;br /&gt;Okay, let's dive into the API...&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;strong&gt;Not Enough Choices&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When Initialize is called, instrument drivers generally query the instrument they are talking to, in order to ensure that it's really the right kind of instrument. Most Initialize functions let you turn this check off, either for performance reasons, or to let you try to use this driver for a different instrument with a compatible set of commands.&lt;br /&gt;&lt;br /&gt;Here's the help window for the Hokuyo URG-04LX instrument driver Initialize VI...&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SVUFuYi1jVI/AAAAAAAAAJQ/UjmCLadYbuU/s1600-h/init-help.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5284136032209833298&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;WIDTH:400px;HEIGHT:229px;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SVUFuYi1jVI/AAAAAAAAAJQ/UjmCLadYbuU/s400/init-help.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;There's something missing that just about every instrument driver Initalize function includes--the &quot;ID Query&quot; Boolean input. (&quot;ID&quot; as in &quot;Identification&quot;.)&lt;br /&gt;&lt;/p&gt;This latter example is what I was trying to do. I had a new model of Hokuyo URG LIDAR that I wanted to talk to. As expected, the instrument driver failed on the Initialize, since the identification string returned from the LIDAR didn't match an expected value.&lt;br /&gt;&lt;br /&gt;Why wasn't the ID Query Boolean included on the Initialize VI? I don't know. I can imagine that the author didn't feel confident that the code worked with anything more than the specific hardware he or she tested. But I still would have included the Boolean, to make it easier for end users to try anyway.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;FONT-WEIGHT:bold;&quot;&gt;Too Many Choices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There's another input on Initialize labelled &quot;Protocol&quot;...&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/SVUMd4R8KEI/AAAAAAAAAJY/U1kNHyZXwSQ/s1600-h/init-fp.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5284143445252515906&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;WIDTH:385px;CURSOR:pointer;HEIGHT:400px;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/SVUMd4R8KEI/AAAAAAAAAJY/U1kNHyZXwSQ/s400/init-fp.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;This LIDAR has two slightly different ASCII command sets that it can support--version 1.1 and version 2.0.&lt;br /&gt;&lt;br /&gt;How does a user know which to choose? Let's see what the help says for this input...&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SVUNjkhQUuI/AAAAAAAAAJg/tiUw_jkSQfk/s1600-h/protocol-help.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5284144642538885858&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;WIDTH:400px;CURSOR:pointer;HEIGHT:140px;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/SVUNjkhQUuI/AAAAAAAAAJg/tiUw_jkSQfk/s400/protocol-help.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;Hmm. Sounds like 2.0 is better. Why not default to that? Why give the user a choice at all?&lt;br /&gt;&lt;br /&gt;I can think of two reasons. First and most importantly, early units of this model of LIDAR had firmware that don't support SCIP 2.0. So, if we assume that SCIP 2.0 is available, this driver wouldn't work with those units. Second, the SCIP 2.0 protocol uses a few more bytes per command than the SCIP 1.1 protocol, and thus might be slightly slower in certain uses.&lt;br /&gt;&lt;br /&gt;But I think we should not expose this protocol choice to users. Here's my reasoning... 1) The only users of this LIDAR that we know are using it with LabVIEW have the latest firmware, thus they wouldn't be affected by depending on 2.0. 2) The firmware is field-upgradable, so the user could update the LIDAR to be compatible with the driver. 3) The newer model of LIDAR I'm using only supports the 2.0 protocol, so it's confusing to have the option for 1.1 when it won't work on some devices. 4) The extra bytes for the commands don't seem to have a measurable impact; the measurement time of the instrument appears to be the gating factor on performance. 5) Dropping support for the old command set lets us remove almost half the code in the driver. Most VIs have a case structure for the 1.1 and 2.0 cases. We can now remove those case structures and just leave the 2.0 code inline.&lt;br /&gt;&lt;br /&gt;Another couple of minor nit-picks as long as I'm showing you this front panel for Initialize... I would have hidden the digital displays for baud rate and protocol. The menu ring's label says 19200, so I don't need to see that the data value is also 19200. And the protocol data value of &quot;1&quot; is used only internally and doesn't need to be exposed to the user.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;FONT-WEIGHT:bold;&quot;&gt;Giving Users Choices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I seem to have come up with two contradictory examples about giving users choices. For ID Query, I'm complaining that the API designer didn't give me the choice to turn it off. For the protocol, I'm complaining that the API designer gave me a choice I didn't want to make.&lt;br /&gt;&lt;br /&gt;I think it all comes down to a judgement call. What are the chances that someone is going to want to use one of Hokuyo's other models of LIDARs? High, I think. What are the chances that somebody really must use the 1.1 communications protocol. Low, I think.&lt;br /&gt;&lt;br /&gt;If the API designer really wanted to support both communications protocols, I would insist that he or she document how to choose between them. Which leads to a related issue in the driver...&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;FONT-WEIGHT:bold;&quot;&gt;Documenting Expected Usage&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;One of these LIDARs can use serial to communicate. (Both can use USB.) With serial, one of the parameters you have to configure is the baud rate--the communication speed of the device.&lt;/p&gt;&lt;p&gt;Most serial devices use a baud rate configured through either DIP switches, or through a front panel menu that stores the rate in non-volatile storage.&lt;/p&gt;&lt;p&gt;The Hokuyo URG-04LX uses a command sent through the serial port to configure the baud rate for the serial port. This is a classic &quot;chicken and egg&quot; problem. I have to use the serial port to configure the serial port.&lt;/p&gt;&lt;p&gt;When this device powers on, it defaults to 19,200 baud. If I want to transfer data at 115,200 baud, I have to connect at 19,200, then send a command to tell the LIDAR to communicate at 115,200 baud, then change my own connection to 115,200 before continuing the conversation.&lt;/p&gt;&lt;p&gt;Now suppose I finish my program and want to run it again. What should the initial baud rate be? In this case, I have to know that when I reconnect to the device, that it is already configured to 115,200 baud. (Or I have to reset or power-cycle the LIDAR in between programs, to revert to 19,200 baud.)&lt;/p&gt;&lt;p&gt;This can get pretty confusing, which is why my most devices configure their baud rates through physical switches.&lt;/p&gt;&lt;p&gt;Back to the API, there are two places where baud rate can be configured. First is on Initialize, as shown above. As I learned by studying the block diagram of Initialize, this baud rate is used for the initial communications to the instrument.&lt;/p&gt;&lt;p&gt;The second place you configure baud rate is with a configuration VI...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/SVUoFDXxPmI/AAAAAAAAAJo/MKXRks8r6-A/s1600-h/baudrate-help.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5284173805058604642&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;WIDTH:400px;CURSOR:pointer;HEIGHT:198px;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/SVUoFDXxPmI/AAAAAAAAAJo/MKXRks8r6-A/s400/baudrate-help.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As I learned by studying the block diagram of this VI, it sends a command to the LIDAR to configure its serial baud rate. It does not change the baud rate of the host side.&lt;/p&gt;&lt;p&gt;So I think the expected usage is that you would call Initialize to establish the initial connection, then Configure Serial Baud Rate to increase the LIDAR link speed, and then use a VISA property node to change the host link speed. And I think you have to put in a short delay after that to get things to settle down after the baud rate change on the LIDAR.&lt;/p&gt;&lt;p&gt;Suggestion #1: Document this! Don't make every user have to figure this out on their own. If nothing else, make an example. It may not be a common use case, but if it's non-intuitive, an example or a little bit of documentation can be very helpful.&lt;/p&gt;&lt;p&gt;Suggestion #2: If two steps should always happen together, combine them. I modified the Configure Serial Baud Rate VI to also change the local baud rate and add the delay. That way, the end user doesn't have to remember to do this. I also thought about moving all of this into Initialize (which would take two baud rate inputs--initial, and desired). I voted against this, since there might be a use case where you just want to change the baud rate after you've already initialized.&lt;/p&gt;&lt;p style=&quot;FONT-WEIGHT:bold;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Making Changes&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So what's going to happen to this instrument driver? For myself, I've hacked together an instrument driver that does what I want for my two LIDARs. Now, I'll be asking someone to go back in and make the edits the &quot;right way&quot;, now that we know more about what the &quot;right way' is. We'll then feed this update back onto the Instrument Driver Network for others to download and use.&lt;/p&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-5106720454193707765?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/C0owsmSS-4bAcYCR1bb1I53fnbY/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/C0owsmSS-4bAcYCR1bb1I53fnbY/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/C0owsmSS-4bAcYCR1bb1I53fnbY/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/C0owsmSS-4bAcYCR1bb1I53fnbY/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-5106720454193707765</guid>
         <pubDate>Fri, 26 Dec 2008 07:23:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_3ziZaf8zuQ4/SVUFuYi1jVI/AAAAAAAAAJQ/UjmCLadYbuU/s72-c/init-help.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>A Quick Update</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/ZexqnUSynck/quick-update.html</link>
         <description>I'll be traveling to Albuquerque and Denver next week for the NI Tech Symposia. If you live in New Mexico or Colorado, I hope to see you. (Dec. 2 for Albuquerque, Dec. 4 for Denver.) For more info... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/seminars/&quot;&gt;http://www.ni.com/seminars/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll be presenting &quot;What's New in LabVIEW 8.6&quot;, &quot;Software Engineering Best Practices for LabVIEW&quot;, and &quot;Using IEEE-1588, GPS, and IRIG-B for Multi-System Synchronization&quot;.&lt;br /&gt;&lt;br /&gt;This weekend before the Albuquerque NI Tech Symposium, I'll be making my annual trip to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.fws.gov/southwest/refuges/newmex/bosque/&quot;&gt;Bosque del Apache National Wildlife Refuge&lt;/a&gt; for some &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.bhpowell.com/galleries/Bosque/&quot;&gt;bird photography&lt;/a&gt;. Let me know if any of you are hanging out there.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;A quick update on our employee giving campaign. (I got a lot of positive feedback on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2008/10/giving-back-to-our-communities.html&quot;&gt;that post&lt;/a&gt;, by the way.) In these tough economic times, we managed to increase the total dollars pledged, as well as the number of donors. I am proud that NI employees recognize that non-profits need us now more than ever, and that we were able to step up and help meet those needs. I know of only one other Austin high-tech company that grew their campaign dollars this year.&lt;br /&gt;&lt;br /&gt;For me personally, it was an emotionally rewarding experience. I'm glad the &quot;Why me?&quot; of heading the campaign turned into a &quot;Yes&quot;.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;I've got some more blog posts in my head, and I'll be trying to find the time to get them out.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1460642753814366291?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vB4xkq4PngqA8K9D-nhwS4yu-lI/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vB4xkq4PngqA8K9D-nhwS4yu-lI/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vB4xkq4PngqA8K9D-nhwS4yu-lI/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vB4xkq4PngqA8K9D-nhwS4yu-lI/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1460642753814366291</guid>
         <pubDate>Wed, 26 Nov 2008 08:52:00 -0800</pubDate>
      </item>
      <item>
         <title>Test More with Less</title>
         <link>http://automatedtestblog.com/2008/11/25/test-more-with-less/</link>
         <description>There is no doubt that we now are facing an economic headwind. Customers I’ve visited around the world are trying to understand how this headwind will affect their business and what they can do to put themselves in the best position to weather this storm, and perhaps even come out of this down cycle stronger [...]</description>
         <guid isPermaLink="false">http://automatedtestblog.com/?p=88</guid>
         <pubDate>Tue, 25 Nov 2008 06:15:23 -0800</pubDate>
         <content:encoded><![CDATA[<p>There is no doubt that we now are facing an economic headwind.<span> </span>Customers I’ve visited around the world are trying to understand how this headwind will affect their business and what they can do to put themselves in the best position to weather this storm, and perhaps even come out of this down cycle stronger than they are now.<span> </span>More and more test engineers are looking at how to optimize their approach to <em>test more with less</em>.</p>
<p class="MsoNormal">Testing more with less means that you may have to reevaluate your approach to test, and indeed, it is in disruptive conditions such as we now face that new ideas are the most prone to take hold.<span> </span>I believe that modular, software defined test systems provide the greatest opportunity for testing more with less – regardless of the dimension where optimization is needed.<span> </span>For example, optimizing the test speed of a production system is often the best path to decreasing test costs.<span> </span>For other applications, reconfiguring a single tester to test multiple devices yields the best results.<span> </span>And in very complex testers, the capital cost may the focus for cost reduction.<span> </span>For each of these situations, and in many others, the software-defined approach has proven time and time again to deliver dramatic improvements.</p>
<p class="MsoNormal">Let me share a few examples.<span> </span>In a production system, time is, quite literally, money.<span> </span>If you can reduce test time by ½, then you may be able to put half the number of testers at the end of a line.<span> </span>Wireless devices, in particular, are often expensive and time consuming to test.<span> </span>Many cellular phones are still tested with a inefficient method called “call-processing”.<span> </span>In this approach, a device called a “one-box tester” is used to actually simulate a phone call to the device under test.<span> </span>Bringing a phone up into a call is slow and is unnecessary to test if the device is correctly assembled.<span> </span>This would be like testing a television by watching a movie on it, instead of simply sending it a test pattern and verifying the result.<span> </span>More and more cellular handset manufacturers are moving to a software-defined test system that instead tests the physical layer signal of the device and uses signal processing in software to perform the necessary tests to verify each type of wireless standard.<span> </span>This technique is often 2-5 times faster than call-processing, which results in huge savings for the manufacturer.</p>
<p class="MsoNormal">Another example of achieving cost savings with a modular, software-defined approach is to use the flexibility of software to reconfigure a system to test many different types of devices.<span> </span>Another challenge in wireless test is that many devices have multiple wireless standards.<span> </span>My beloved iPhone, for example, now has 5 radios!<span> </span>Often, these different standards have required different instruments with their own vendor-defined measurement routines.<span> </span>A software-defined system can be reconfigured to test each standard with the same hardware.<span> </span>And when standards inevitably change and evolve, a software-defined system is in a much better position to be able to react to these changes.</p>
<p class="MsoNormal">A final example is in semiconductor ATE.<span> </span>Many semiconductor devices are tested on so-called “Big iron” testers.<span> </span>These testers have the sophisticated digital infrastructure and pin-electronics to test high performance semiconductors such as processors and SOCs.<span> </span>For simpler devices with low target prices, such as a MEMs sensor or an RFID, however, these testers may be overkill.<span> </span>Because they have the infrastructure to support high performance, it is difficult to scale them to these simpler requirements.<span> </span>A modular, open system such as PXI, though, has a very low entry cost and can be configured with only the minimum required capability,<span> </span>which results in lower capital expenditure.</p>
<p class="MsoNormal">So, in these turbulent economic times, it will be up to test engineers to innovate using the latest technology to meet the challenges of testing more with less.<span> </span>And those companies and individuals that do this the best will be able to come out of this difficult time stronger than before and ready to take advantage of new opportunities as conditions improve.</p>]]></content:encoded>
      </item>
      <item>
         <title>Maker Faire 2008</title>
         <link>http://www.eyesonvis.com/blog/2008/10/maker-faire-2008.html</link>
         <description>Last weekend I visited the Austin &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://makerfaire.com/&quot;&gt;Maker Faire&lt;/a&gt;, a showcase of arts, crafts, and engineering. I saw robots, contraptions, musical Tesla coils and more. Quite an event! And LabVIEW was there, too - I saw a group of children using LEGO Mindstorms NXT at a hands-on exhibit. If you're interested in seeing more, I put together a short &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=z4Fd3I5HKG8&quot;&gt;YouTube video&lt;/a&gt; of some highlights, including the life-sized Mousetrap (based on the old board game).&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1379993958412939042?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1379993958412939042</guid>
         <pubDate>Sat, 25 Oct 2008 13:05:00 -0700</pubDate>
      </item>
      <item>
         <title>Giving Back To Our Communities</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/2VLzHz3d-iU/giving-back-to-our-communities.html</link>
         <description>On Friday night, I went to the opening night performance of a local non-profit choral group, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://conspirare.org/&quot;&gt;Conspirare&lt;/a&gt;. They are an amazing, world-class group, and they put on a wonderful show that will soon be recorded by PBS. I even recognized in the audience Dr. Anton Armstrong, conductor of the renowned &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.stolaf.edu/music/stolaf_choir/&quot;&gt;St. Olaf Choir&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sitting in the audience, watching and listening to Conspirare, I could not help but think that this is an organization worth supporting. How fortunate we are to have them in Austin.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Today marks the beginning of our three-week employee fall giving campaign, of which I am the chair.&lt;br /&gt;&lt;br /&gt;A few weeks ago, I received a mysterious meeting invitation in my inbox... &quot;Quick chat with community relations&quot;. I had been warned that I was on the list of candidates to chair this year's campaign, so I knew what the meeting was going to be about. This gave me time to think about it.&lt;br /&gt;&lt;br /&gt;At first, it was a &quot;why me?&quot; kind of experience. What was I signing up for? It's overwhelming and intimidating&amp;mdash;we've got thousands of employees in the US, and I would be the voice of the campaign.&lt;br /&gt;&lt;br /&gt;We've got a pretty good track record of employee giving. High standards, yet the economy is tough this year.&lt;br /&gt;&lt;br /&gt;Sigh. I'm not sure I'm the guy for the job. It would be so easy to say no; to push this off on someone else.&lt;br /&gt;&lt;br /&gt;But I don't. I won't.&lt;br /&gt;&lt;br /&gt;I care about the community in which I live. I care about NI, and feel privileged to work here. I care about the arts. I care about education. I care about animals and the environment. I care about social needs, health needs, literacy needs.&lt;br /&gt;&lt;br /&gt;With the consummate support of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/company/citizenship.htm&quot;&gt;National Instruments Community Relations team&lt;/a&gt;, especially Yvette Ruiz and Amanda Webster, here I am.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;hr /&gt;&lt;br /&gt;We hire a lot of our employees right out of school. This is great; keeps us young. It also means that some of our employees may not yet feel strong connections to their communities. And this is one of my challenges.&lt;br /&gt;&lt;br /&gt;I asked for a field trip. I asked our community relations people if we could organize a field trip for our campaign volunteers.&lt;br /&gt;&lt;br /&gt;I wanted our volunteers to see a need firsthand. We have dozens of volunteers, without whom we couldn't run this giving campaign. They go to every group meeting and explain the reasons for the campaign, the goals, and the mechanics.&lt;br /&gt;&lt;br /&gt;I wanted our volunteers to see where the money goes, and what it buys, and to be able to talk about it to our employees.&lt;br /&gt;&lt;br /&gt;We went to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.safeplace.org/&quot;&gt;SafePlace&lt;/a&gt;, which fights domestic violence and sexual abuse.&lt;br /&gt;&lt;br /&gt;A few days later, a different group of NI employees went to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.childrensaustin.org/&quot;&gt;Dell Children's Medical Center of Central Texas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And in the past few weeks, I've been to events for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cisaustin.org/&quot;&gt;Communities in Schools&lt;/a&gt;, and the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://austinlyricopera.org/&quot;&gt;Austin Lyric Opera&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We've got thousands of non-profits in central Texas, thousands more nationwide, and our employees can choose to whom they donate. I want all of our employees to know that they can make a difference in their communities.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Another theme I want to stress is that &lt;em&gt;any amount helps&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;I am truly proud that NI has the largest number of employees who are able to donate $1000 or more to be a part of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.unitedwaycapitalarea.org/leadership_giving/young_leaders_society/&quot;&gt;United Way Capitol Area Young Leaders Society&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But many of our employees aren't in a position to donate that much. I want them to know that they can still make a difference, even with a small donation.&lt;br /&gt;&lt;br /&gt;Among other things going on in my life right now, I'm raising money for cancer research and survivorship through the Lance Armstrong Foundation. I'll be doing the Livestrong Challenge bike ride at the end of October. (Plug: Support my ride here... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://austin08.livestrong.org/bhpowell&quot;&gt;austin08.livestrong.org/bhpowell&lt;/a&gt;.) One of my friends came up to me the other day and handed me a dollar bill in support of my ride. It's all he had to give. He promised another dollar in a week. That meant so much to me, as it also reminded me of a parable that I am sure many of you know.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;My challenge to all of you readers, wherever you are, whoever you are, is to go out and make a difference in your community. Find your passion. Give your time. Give your money. Find someone who needs your support, and support them.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-6632925642286770081?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/F36NQBe7_rf6BsLx-SKfn4yM48Q/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/F36NQBe7_rf6BsLx-SKfn4yM48Q/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/F36NQBe7_rf6BsLx-SKfn4yM48Q/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/F36NQBe7_rf6BsLx-SKfn4yM48Q/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-6632925642286770081</guid>
         <pubDate>Mon, 06 Oct 2008 07:00:00 -0700</pubDate>
      </item>
      <item>
         <title>AutoTestCon 2008</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/mqYt4m7hFAc/autotestcon-2008.html</link>
         <description>As I mentioned in an earlier post, I was at AutoTestCon in Salt Lake City a few weeks ago. This was my first visit to this MIL/AERO conference and tradeshow.&lt;br /&gt;&lt;br /&gt;I was greeted to the Salt Palace Convention Center by banners with images of fighter jets and bombers over Monument Valley and Delicate Arch.&lt;br /&gt;&lt;br /&gt;I was there to give a presentation on IVI, be part of a panel discussion on LXI, and to support a demo for the LXI Consortium...&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Here's a photo of the demo I built for the consortium, using a Rohde &amp;amp; Schwarz FSL Spectrum Analyzer, a Keithley 2910 RF Signal Generator, two Agilent E5818A Trigger Boxes, an NI 8353 quad-core 1U PXI Controller, and NI LabVIEW 8.6.&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5252576630640227938&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:pointer;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/SOTmncDUNmI/AAAAAAAAAGs/efViFJM8CYU/s400/20080909_0007.jpg&quot; border=&quot;0&quot;/&gt;&lt;br /&gt;&lt;br /&gt;The other demo in the booth consisted of Matlab and image processing software from The Mathworks, Agilent E5818A Trigger Boxes, and 1394 cameras from Point Grey Research. Colloquially called &quot;the bouncing ball demo&quot;, it used a military grade &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hasbro.com/playskool/default.cfm?page=browse&amp;amp;product_id=13031&quot;&gt;Playskool Busy Basics Busy Popper&lt;/a&gt; for projectile measurements.&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5252576623900912386&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:pointer;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/SOTmnC8iawI/AAAAAAAAAGk/3C6cKVaJSs4/s400/20080909_0002.jpg&quot; border=&quot;0&quot;/&gt;&lt;br /&gt;&lt;br /&gt;Okay, the part about &quot;military grade&quot; was a joke. The demo was there to make noise and entice people into the booth. Shown in the photo are Conrad Proft, from Agilent, and Rob Purser, from The Mathworks.&lt;br /&gt;&lt;br /&gt;Both demos showed LXI features such as IEEE 1588 timing and distributing triggers across a network.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;On Monday, I gave a presentation about IVI instrument driver technology at one of the seminars. This was just a basic introduction into what IVI drivers are, and an update on the status of current work in the IVI Foundation.&lt;br /&gt;&lt;br /&gt;The tone was set for this presentation a few seconds into my talk. One attendee raised his hand and said, &quot;IVI drivers don't work.&quot;&lt;br /&gt;&lt;br /&gt;&quot;I see it's going to be a tough crowd&quot;, I replied.&lt;br /&gt;&lt;br /&gt;In this particular case, the user had obtained several IVI-COM drivers from his instrument vendor, and all but one failed to communicate correctly with his instruments. He had also received an IVI-C driver for an instrument from a different vendor, and he was unable to make it work until he got National Instruments involved to fix it for him.&lt;br /&gt;&lt;br /&gt;This is a good point for me to point out that you don't have to depend on your instrument vendor for your instrument drivers. The National Instruments &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ni.com/idnet&quot;&gt;Instrument Driver Network&lt;/a&gt; (IDNet) contains instrument drivers for thousands of instruments from hundreds of different vendors, including IVI drivers, LabVIEW Plug and Play drivers, and VXIplug&amp;amp;play drivers.&lt;br /&gt;&lt;br /&gt;Many of the drivers on IDNet are marked as &quot;NI Certified&quot;, which means...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Certified instrument drivers comply with instrument driver standards including programming style, error handling, documentation, and functional testing. Certified drivers ensure consistency among instrument drivers and, therefore, improve ease of use. They also provide source code so that you can modify, customize, optimize, debug, and add functionality to the instrument driver. All National Instruments certified instrument drivers receive NI support.&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;I was also on a panel discussion about LXI. We presented to about fifteen people.&lt;br /&gt;&lt;br /&gt;A week later, we recorded a webcast for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.tmworld.com/&quot;&gt;T&amp;amp;M World Magazine&lt;/a&gt; with the same material. You can view a replay of the webcast by registering on the T&amp;amp;M World website.&lt;br /&gt;&lt;br /&gt;We had time for questions and answers during both versions of the presentation. Additional questions from the webcast will eventually be posted with answers on the LXI website.&lt;br /&gt;&lt;br /&gt;Interestingly, most of the questions at AutoTestCon related to GPIB. Conrad Proft, from Agilent, had slides that showed examples where LXI works better than GPIB (over long distances) and RS-485 (cabling).&lt;br /&gt;&lt;br /&gt;One question was whether companies are going to continue to support GPIB. Conrad from Agilent voiced his company's continued commitment to GPIB. I added that I believe that many people are still building GPIB-based test systems, and that NI will continue to support our GPIB users. (Later that week, NI announced our new PCI Express GPIB controllers that support a nearly 8 megabyte/second transfer rate, are RoHS compliant, and use only 1.1W of power.)&lt;br /&gt;&lt;br /&gt;Another audience member, perhaps a little caught up in the excitement of LAN-based instrumentation, asked, &quot;Why would anyone still use GPIB? It's slow. The cables are so inflexible.&quot;&lt;br /&gt;&lt;br /&gt;My jaw dropped at this. I bet if you polled all the AutoTestCon attendees, just about every one of them is using GPIB, and is going to continue to use GPIB. So my answer began with, &quot;Because it just works!&quot;.&lt;br /&gt;&lt;br /&gt;&quot;The GPIB cables are shielded and have rugged connectors that screw in and don't have plastic tabs that break off.&quot;&lt;br /&gt;&lt;br /&gt;[Bringing it back to LXI] &quot;...the message of the LXI Consortium is that it's important to ensure that LXI works well with other buses.&quot;&lt;br /&gt;&lt;br /&gt;The reality is that our users are going to develop &quot;hybrid&quot; systems, using a mix of bus technologies. Every bus has pros and cons. GPIB has low communications latency and is rugged. LXI has cheaper cabling and works well over extraordinarily long distances. PXI and PXI Express have high communications bandwidth and low latency.&lt;br /&gt;&lt;br /&gt;And that's why it's my job at National Instruments to help ensure that &lt;span style=&quot;FONT-STYLE:italic;&quot;&gt;all&lt;/span&gt; forms of I/O work well in LabVIEW.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1768485579038370975?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/EcussATLnH5_ocVpzy3WN5lnw38/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/EcussATLnH5_ocVpzy3WN5lnw38/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/EcussATLnH5_ocVpzy3WN5lnw38/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/EcussATLnH5_ocVpzy3WN5lnw38/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1768485579038370975</guid>
         <pubDate>Thu, 02 Oct 2008 10:30:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_3ziZaf8zuQ4/SOTmncDUNmI/AAAAAAAAAGs/efViFJM8CYU/s72-c/20080909_0007.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>AutoTestCon 2008 in Salt Lake City</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/JwYSXkAmE4A/autotestcon-2008-in-salt-lake-city.html</link>
         <description>I'll be in Salt Lake City next week, September 8-10, for AutoTestCon.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.autotestcon.com/index.php&quot;&gt;AutoTestCon&lt;/a&gt; is a large Mil/Aero conference and trade show sponsored by the IEEE.&lt;br /&gt;&lt;br /&gt;I'll be doing a couple of presentations...&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;On Monday, I'm presenting as part of a seminar entitled, &quot;VXI, PXI, IVI &amp;amp; LXI Standards Improve ATE Systems Design&quot;. I will be presenting the part about IVI. I'll cover what IVI is, the current state of IVI, future work, as well as technical informationi on configuration, the differences between IVI-C and IVI-COM, and how to use class and specific drivers together.&lt;br /&gt;&lt;br /&gt;On Wednesday, I will be part of a panel discussion on &quot;Test Applications Using LXI Instruments&quot;. Hosted by Test &amp;amp; Measurement World chief editor Rick Nelson, the panel plans to share some of what we've learned over the past three years creating multi-vendor LXI-based test systems.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-3496725259152465085?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/QUqDQnSVFKk7AX25NRvGFM8oFuk/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/QUqDQnSVFKk7AX25NRvGFM8oFuk/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/QUqDQnSVFKk7AX25NRvGFM8oFuk/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/QUqDQnSVFKk7AX25NRvGFM8oFuk/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-3496725259152465085</guid>
         <pubDate>Tue, 02 Sep 2008 07:22:00 -0700</pubDate>
      </item>
      <item>
         <title>Quick Drop</title>
         <link>http://www.eyesonvis.com/blog/2008/08/quick-drop.html</link>
         <description>Quick Drop is a new feature of LabVIEW 8.6. I don't think I can describe it as well as Jim Kring did, so I refer you to his blog post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://thinkinging.com/2008/08/26/labview-86-quick-drop-is-awesome-and-an-unfair-advantage/&quot;&gt;&quot;Quick Drop is Awesome.&quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also see a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/7423&quot;&gt;video&lt;/a&gt; of Quick Drop in action on ni.com.&lt;br /&gt;&lt;br /&gt;Darren Nattinger (of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/5720&quot;&gt;Darren's Weekly Nugget&lt;/a&gt; fame) created Quick Drop and is amazingly fast when using it. He has configured keyboard shortcuts that he can type entirely with his left hand. His right hand never leaves the mouse!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1877869284468563370?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1877869284468563370</guid>
         <pubDate>Wed, 27 Aug 2008 10:42:00 -0700</pubDate>
      </item>
      <item>
         <title>Linked Tunnels</title>
         <link>http://www.eyesonvis.com/blog/2008/08/linked-tunnels.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SJb5tM7IMrI/AAAAAAAAAHE/IEK51tz_bTM/s1600-h/linked_tunnels.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SJb5tM7IMrI/AAAAAAAAAHE/IEK51tz_bTM/s400/linked_tunnels.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5230642572196065970&quot;/&gt;&lt;/a&gt;&lt;br /&gt;Linked tunnels are a new feature of LabVIEW 8.6&lt;br /&gt;&lt;br /&gt;Linked tunnels save you from the tedious process of wiring through frames of a case structure when you add new frames or when you add new tunnels to a structure that already has multiple frames. It's easy. Just right-click on an output tunnel and choose an item from the &lt;span style=&quot;font-weight:bold;&quot;&gt;Linked Input Tunnel&lt;/span&gt; shortcut menu. You can create the link and wire all the unwired cases, or just create the link. After that, as you create new frames in your case structure, LabVIEW will automatically wire the linked tunnels. This feature also works on event structures.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-4154969406207465098?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-4154969406207465098</guid>
         <pubDate>Mon, 11 Aug 2008 04:30:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/SJb5tM7IMrI/AAAAAAAAAHE/IEK51tz_bTM/s72-c/linked_tunnels.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>NIWeek 2008</title>
         <link>http://www.eyesonvis.com/blog/2008/08/niweek-2008.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SJtjR27cuuI/AAAAAAAAAHU/9q5w68Ycghs/s1600-h/NIWeek2008.PNG&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;&quot; src=&quot;http://1.bp.blogspot.com/_BN3_donLgVE/SJtjR27cuuI/AAAAAAAAAHU/9q5w68Ycghs/s320/NIWeek2008.PNG&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5231884550574750434&quot;/&gt;&lt;/a&gt;&lt;br /&gt;NIWeek 2008 is finished and I want to thank everyone who attended. It was a fun and interesting conference. I especially want to thank those of you who told me that you read my blog! It was great to meet you in person! And, yes, I will try to post more often. :-)&lt;br /&gt;&lt;br /&gt;Slightly off-topic... does anyone know of any research in the area of seating fragmentation for large groups of people? I have a hypothesis that we'd get more useful seats in the same space if we left more rows open, even though we'd have fewer chairs. (I can't help pondering this; there's something about the engineering mind that detests inefficiency, even in keynote seating arrangements).&lt;br /&gt;&lt;br /&gt;Speaking of the engineering mind, have you seen the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/user/anengineeringmind&quot;&gt;&quot;An Engineering Mind&quot; videos on YouTube&lt;/a&gt; (that they showed before the NIWeek keynotes). Yeah, I know that guy. :-)&lt;br /&gt;&lt;br /&gt;Safe journey home to all our visiting friends!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32599616-1674605608928066459?l=www.eyesonvis.com%2Fblog'/&gt;&lt;/div&gt;</description>
         <author>Christina</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32599616.post-1674605608928066459</guid>
         <pubDate>Thu, 07 Aug 2008 09:05:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_BN3_donLgVE/SJtjR27cuuI/AAAAAAAAAHU/9q5w68Ycghs/s72-c/NIWeek2008.PNG" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>NIWeek 2008</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/Wydbu3hV0B4/niweek-2008.html</link>
         <description>It's Monday of NIWeek 2008, so it's a tradition for the Austin American-Statesman (the local newspaper) to have a nice article about NI. Today's was about &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.statesman.com/business/content/business/stories/technology/08/04/0804nati.html&quot;&gt;Green Engineering&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today is Alliance Day, and the full-blown conference starts tomorrow.&lt;br /&gt;&lt;br /&gt;I'll be presenting again this year, on Thursday...&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;My topic is about using NI hardware and software products to work with LXI-based test systems.&lt;br /&gt;&lt;br /&gt;I'll be around the convention center all week, including the LAVA dinner Tuesday night, and the conference party on Wednesday. Feel free to find me and say hi.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-6734230615389001638?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/_Ykk4WZesA6nWRvFKVI7EA0pwv8/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/_Ykk4WZesA6nWRvFKVI7EA0pwv8/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/_Ykk4WZesA6nWRvFKVI7EA0pwv8/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/_Ykk4WZesA6nWRvFKVI7EA0pwv8/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-6734230615389001638</guid>
         <pubDate>Mon, 04 Aug 2008 12:28:00 -0700</pubDate>
      </item>
      <item>
         <title>Thoughts on Network Protocols for Instrumentation</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/h310x-x5Brg/thoughts-on-network-protocols-for.html</link>
         <description>Among my other responsibilities, I still hang out with the LXI crowd. Lots of conference calls, and a quarterly face-to-face meeting. (Thank you, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.testforce.com/&quot;&gt;TestForce&lt;/a&gt;, for hosting our recent meeting in Toronto.)&lt;br /&gt;&lt;br /&gt;Following up on my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/09/what-is-lxi.html&quot;&gt;earlier blog post&lt;/a&gt;, National Instruments did join the LXI Consortium at some point (last year, I think). I believe that having one network-instrumentation standard to follow is better than having many, and the technical side of the consortium is constantly working to devise solutions to limitations inherent in a network-based test system.&lt;br /&gt;&lt;br /&gt;There are a variety of challenges revolving around the fact that LAN opens up the door to having more than one &quot;controller&quot; in a test system.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;In a test system using RS-232 or USB, for example, any single device talks to only a single &quot;controller&quot;—typically the test system's PC. A GPIB system is a form of network, but there's always one &quot;controller in charge&quot;. Nobody can easily intrude into the test system.&lt;br /&gt;&lt;br /&gt;Is this a &quot;feature&quot;, or a &quot;limitation&quot;? It all depends on the test system. What if you wanted to see test data from the outside world? Today, you'd probably put a network connection on your test PC, and let it serve up data through the LabVIEW Web Server, or store data into a corporate database. Nobody could talk to the instruments directly; they would always go through the PC.&lt;br /&gt;&lt;br /&gt;But an alternative that LXI allows is to connect your private test network to the rest of your company's intranet (or the entire internet, if you want). This allows others to interact directly with the measurement instruments. You probably wouldn't want this feature in all test systems, but it opens the door to some interesting possibilities.&lt;br /&gt;&lt;br /&gt;Even if you don't connect your test network to the internet, you might still want to have more than one test PC talking to the devices. Or one grand vision of the consortium is that instruments can control other instruments. How does an instrument manage multiple connections from multiple controllers at once? Does this sound complicated? It is.&lt;br /&gt;&lt;br /&gt;And this is where the LXI Consortium comes in. What can the consortium do to make it &quot;safe&quot; to have more than one controller on your network?&lt;br /&gt;&lt;br /&gt;There are many aspects of this that the consortium is working on—defining behavior when there are too many connections for an instrument to handle, for example. One particularly challenging problem is how to &quot;reserve&quot; or &quot;lock&quot; an instrument in your test program so that nobody else comes in and changes settings in the middle of your test.&lt;br /&gt;&lt;br /&gt;It's worse than that, really. Just discovering instruments on your network can have the accidental side effect of interrupting a test program. And it's especially this kind of inadvertent access to a test instrument that the consortium is trying to resolve.&lt;br /&gt;&lt;br /&gt;One step in this direction was announced in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.lxistandard.org/about/lxi_standards_and_clarifications/&quot;&gt;LXI 1.2 standard&lt;/a&gt;. There will be a new mechanism for discovering LXI devices that is less obtrusive than the current approach. In the future, when instruments are available that support the next version of the LXI standard, this very common form of inadvertant access should be solved for future test systems.&lt;br /&gt;&lt;br /&gt;But there are still challenges with test systems with more than one computer or instrument trying to talk to a single device at the same time. For that, we really need to be able to reserve the instrument for exclusive use by a single test program (or perhaps even a single part of a larger test program).&lt;br /&gt;&lt;br /&gt;This problem has been solved before in this domain. In 2004, I helped write an article for T&amp;amp;M World entitled &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.tmworld.com/article/CA457475.html&quot;&gt;Migrating to Ethernet&lt;/a&gt;. I discussed the VXI-11 protocol for communicating with instrumentation over Ethernet.&lt;br /&gt;&lt;br /&gt;Because VXI-11 defines processing on both the host (PC) and client (instrument), it is able to provide a way to reserve or lock the instrument in a test program. With VXI-11 devices, the VISA commands viLock and viUnlock can be used to lock the instrument so that it only responds to the program that has the lock.&lt;br /&gt;&lt;br /&gt;However, VXI-11 has kind of fallen out of favor with instrument vendors. One reason is that it requires a fair amount of processing horsepower inside the instrument. VXI-11 is based on a technology called RPC, or Remote Procedure Calls. With RPC, much of the processing happens on the instrument, requiring more processing power, more memory, and thus, higher overall cost.&lt;br /&gt;&lt;br /&gt;Instrument vendors want to move to simpler protocols. The consortium therefore needs to take a fresh look at instrument locking, and hopefully come up with a proposed solution in the 2009 or 2010 versions of the LXI standard.&lt;br /&gt;&lt;br /&gt;Until then, fortunately, most LXI instruments continue to support VXI-11 and you can use viLock or viUnlock (in LabVIEW, they are called &quot;VISA Lock Async&quot; and &quot;VISA Unlock&quot;) to lock instruments in your test system.&lt;br /&gt;&lt;br /&gt;One caveat is that IVI drivers do not support the same kind of locking. You need to have access to the VISA session to properly lock the device. This is one of the benefits of using a LabVIEW Plug and Play (or for C users, VXIpnp) driver. Since these kinds of drivers use the VISA session directly, you can easily add VISA Lock and VISA Unlock calls to your program without major rework.&lt;br /&gt;&lt;br /&gt;Stay tuned as the standards evolve.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-4826729001188237574?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/zMEHGvjUKyuJdR9mcyMK2kJeF7A/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/zMEHGvjUKyuJdR9mcyMK2kJeF7A/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/zMEHGvjUKyuJdR9mcyMK2kJeF7A/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/zMEHGvjUKyuJdR9mcyMK2kJeF7A/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-4826729001188237574</guid>
         <pubDate>Tue, 24 Jun 2008 14:00:00 -0700</pubDate>
      </item>
      <item>
         <title>64-bit LabVIEW</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/nc3KHIRK0yc/64-bit-labview.html</link>
         <description>&lt;p&gt;Last week, we &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://forums.ni.com/ni/board/message?board.id=170&amp;amp;thread.id=319502&quot;&gt;announced the 64-bit LabVIEW beta&lt;/a&gt;. That announcement reveals a little about how I've spent the last couple of years of my life.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A long, long time ago, when I first started at NI, we were pretty proud of the fact that LabVIEW started its life as a 32-bit Macintosh application. We didn't suffer the pains of some applications that were having to live in (and later convert from) the 16-bit DOS and Windows environments.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But in some parts of the source code, we weren't as rigorous with our data types as we should have been. I asked the guy next to me, &quot;Hey, Steve. Should I be worried about all these places we assume pointers fit into 32 bits?&quot;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&quot;No,&quot; he responded, &quot;we do that all over the place. Somebody far in the future will have to go through all of LabVIEW and fix that.&quot;&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;I did not know then that the &quot;somebody&quot; would be me.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As I alluded to in my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2008/02/twenty-years.html&quot;&gt;Twenty Years&lt;/a&gt; post, when I first started working on this, it seemed like an insurmountable task. LabVIEW source code is big, with a lot of developers having their hands in the code over time. And it's part GUI, part compiler, part runtime engine, and part kitchen sink.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Fortunately, I soon got help—a small, but really good team—and we just started plugging away at it. The little milestones along the way...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Compile the source code without errors&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compile, link, and crash on launch&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Launch to Untitled 1&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Launch to the Getting Started window&lt;/li&gt;&lt;br /&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;There was a snowball effect—we'd fix something, and then a whole bunch of stuff would start working.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I wouldn't say it's been easy. When we first started, I had a fair amount of skepticism... I had fears that we would hit a brick wall, or we'd discover something that would require more effort than we were willing to invest. That skepticism was justified. We had to make some tradeoffs to keep the project from getting out of hand.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;From a software engineering perspective, I think we did a good job of containing the risk to 32-bit LabVIEW while pushing forward with 64-bit LabVIEW. (All the code is shared.) Perhaps more on that later.&lt;/p&gt;&lt;p&gt;I'm pretty happy with our level of quality in this beta release. If you've got access to a 64-bit Windows machine, I encourage you to sign up for the beta and give it a try. Here's a teaser for the kinds of things you'll be able to do. (Click to enlarge the image.)&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/SB9PtBNHWEI/AAAAAAAAAEM/fdAOyX-pcho/s1600-h/profile.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5196960129844992066&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/SB9PtBNHWEI/AAAAAAAAAEM/fdAOyX-pcho/s320/profile.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1809044529512477668?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/8oyKsPryNzWIxkYZrFqrSvBx16k/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/8oyKsPryNzWIxkYZrFqrSvBx16k/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/8oyKsPryNzWIxkYZrFqrSvBx16k/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/8oyKsPryNzWIxkYZrFqrSvBx16k/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1809044529512477668</guid>
         <pubDate>Mon, 05 May 2008 08:46:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_3ziZaf8zuQ4/SB9PtBNHWEI/AAAAAAAAAEM/fdAOyX-pcho/s72-c/profile.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Twenty Years</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/idtTqTU57ww/twenty-years.html</link>
         <description>&lt;p&gt;Last month, I celebrated twenty years at National Instruments.&lt;/p&gt;&lt;p&gt;One of the first things I learned about software development at NI is that food plays a prominent role. Back in the early days, it was mostly Double-Stuf Oreos®.&lt;/p&gt;&lt;p&gt;Hardly a day goes by without someone sending out a food announcement email—bagels, doughnuts, leftover party food. There's almost always a reason for the food: an anniversary, or &quot;Thanks to Kevin for helping me figure out this problem&quot;, or &quot;I broke the build&quot;.&lt;/p&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;p&gt;During one test day, someone wrote a LabVIEW application that sits in the system tray (multi-platform, of course) and pops up to let you know that someone has brought in food. It also showed you the shortest path from your desk to the food. Who says testing isn't fun?&lt;/p&gt;&lt;p&gt;For my fifteen year anniversary, I bought fifteen dozen Krispy Kreme® doughnuts and scattered them around several floors of the building I'm in. It's frighteningly easy to buy 15 dozen doughnuts. They didn't bat an eye. They did offer to help carry them to my car.&lt;/p&gt;&lt;p&gt;For twenty years, I made a couple of desserts, both from the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hotellimpia.com/&quot;&gt;Hotel Limpia &lt;/a&gt;(Fort Davis, Texas) cookbook. I made the most decadent chocolate brownies ever—containing about 20 pounds of chocolate and sugar. And in a feeble attempt to provide enough for everybody on the team, I made dozens and dozens of oatmeal raisin cookies.&lt;/p&gt;&lt;p&gt;But enough about food. That's not what keeps me coming back to this place every day.&lt;/p&gt;&lt;p&gt;Let's tie this all back to software engineering.&lt;/p&gt;&lt;p&gt;While software engineering is mostly about the process of developing software, one aspect of it has to cover how you get people to come into the office every day and do the work. Food is nice. Pay is important. But it's the cool projects that keep me coming back.&lt;/p&gt;&lt;p&gt;I'm working on a long-term project that I sooo want to be able to talk about. (Soon, soon.) I've been working on this project for a couple of years, and I still come in to work each day eager to work on it. What seemed like an insurmountable problem when I started is now within reach, thanks to a small and really good team we've put together.&lt;/p&gt;&lt;h3&gt;A Sense of Urgency&lt;/h3&gt;&lt;p&gt;There's a lot to be proud of as I look back over twenty years, but I come to work every day thinking about what's next. And maybe that's something to be proudest of—I helped build a software development process that is still one I want to be part of after twenty years.&lt;/p&gt;&lt;p&gt;I come to work every day with a sense of urgency. I think all good software teams do. It's not a sense of panic. Okay, maybe it occasionally approaches panic, but mostly it's under control. It's more wanting to relentlessly make progress, every day. A little bit more works every day, and soon we've worked past major obstacles. Celebrate briefly. And we keep going, because we're not done yet.&lt;/p&gt;&lt;p&gt;It's a whole lot like twenty years ago on the LabVIEW team. And that's a very good thing.&lt;/p&gt;&lt;p&gt;And my project is one of many. There are many other small teams here working on exciting things, with their own sense of urgency.&lt;/p&gt;&lt;p&gt;So I think it's pretty cool that after twenty years at the same job, I'm still having fun. We haven't run out of things to do. We haven't run out of ideas. We aren't &quot;done&quot; yet.&lt;/p&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-4259949358048345276?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/WxRE1cYfZWIa6uV6U7r666MtHwY/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/WxRE1cYfZWIa6uV6U7r666MtHwY/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/WxRE1cYfZWIa6uV6U7r666MtHwY/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/WxRE1cYfZWIa6uV6U7r666MtHwY/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-4259949358048345276</guid>
         <pubDate>Thu, 21 Feb 2008 07:36:00 -0800</pubDate>
      </item>
      <item>
         <title>Linux and LXI Instrument Control</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/UpQBQ74azgs/linux-and-instrument-control.html</link>
         <description>&lt;p&gt;A long time ago, I learned a lot about UNIX — first, as a programmer at a well-run BSD shop, and later after joining NI, by becoming NI's system administrator for our lone Sun 3/160 workstation. (That was in addition to my &lt;em&gt;real&lt;/em&gt; job of being a LabVIEW programmer.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I've also been heavily involved in the UNIX/Linux flavors of LabVIEW... initially LabVIEW for Sun, and later, LabVIEW for HP-UX, LabVIEW for Concurrent PowerMAX, and LabVIEW for Linux.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So with great interest, I've noticed several new Application Notes from Agilent about Linux, the most recent of which is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cp.literature.agilent.com/litweb/pdf/5989-6717EN.pdf&quot;&gt;Using Linux to Control LXI Instruments Through TCP&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;While these app notes provide some useful information, they typically show you how to do things the hard way. With NI software, things are much easier...&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;For example, in the above-mentioned application note, you get to learn about socket calls, network byte ordering, and Nagle's algorithm for packet consolidation. In another application note, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cp.literature.agilent.com/litweb/pdf/5989-6716EN.pdf&quot;&gt;Using Linux to Control LXI Instruments Through VXI-11&lt;/a&gt;, you get to learn how to program remote procedure calls and the XDR format for data representation.&lt;/p&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;h3&gt;NI and Linux&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;One of the benefits of National Instruments' software is that we actually have Linux versions of LabVIEW, the LabWindows/CVI Run-Time Module, our I/O Libraries such as NI-VISA and NI-488.2, and some of our other device drivers such as NI-DAQmx.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So instead of having to learn how to write your own I/O libraries, and how to use the GNU Compiler Collection and debugging tools, you can work at a much higher level in a graphical system design language.&lt;/p&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;h3&gt;Instrument Drivers&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;LabVIEW is a portable language, which means that the functions (VIs) that you write can be moved from one flavor of LabVIEW (e.g., LabVIEW for Windows) to another (e.g., LabVIEW for Linux, or Macintosh, or Real-Time) and function correctly. There are a few caveats to this... Not all real-time targets have hard disks, so the File I/O functions don't work there. Another example: VIs that use OS-dependent technology, such as IVI-COM drivers that depend on Microsoft's ActiveX technology, are not portable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So what to do about instrument drivers? Agilent, in their application note &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cp.literature.agilent.com/litweb/pdf/5989-6715EN.pdf&quot;&gt;Using Linux in Your Test Systems: Linux Basics&lt;/a&gt; suggests &quot;in most situations you do not need an instrument driver.&quot; While true, it sidesteps the issue that instrument drivers are really valuable, since someone else has developed and debugged the code that deals with the nuances of specific instrument models.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Fortunately, the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ni.com/idnet/&quot;&gt;National Instruments Instrument Driver Network&lt;/a&gt; contains thousands of LabVIEW Plug and Play instrument drivers. These instrument drivers will work on Windows, Linux, MacOS X, and LabVIEW Real-time — anywhere you have both LabVIEW and VISA.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What about IVI? All IVI drivers are Windows only, but there's a way to get IVI-C drivers working on Linux. They're no longer officially &quot;IVI&quot;, but it can be done. NI has an article entitled &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/3809&quot;&gt;Porting IVI-C Specific Drivers and Applications to Linux&lt;/a&gt; that describes the steps.&lt;/p&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;p&gt;So to summarize, if you like doing things the hard way, the Agilent application notes lay out a nice roadmap. The rest of you might want to consider NI's Linux products. To learn more, see &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ni.com/linux&quot;&gt;ni.com/linux&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-7673558401721255817?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UtQv4uHXiucp0s-57B-csUIlHHU/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UtQv4uHXiucp0s-57B-csUIlHHU/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UtQv4uHXiucp0s-57B-csUIlHHU/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UtQv4uHXiucp0s-57B-csUIlHHU/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-7673558401721255817</guid>
         <pubDate>Wed, 05 Dec 2007 07:08:00 -0800</pubDate>
      </item>
      <item>
         <title>LabVIEW in Public Places</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/SAueuCzWZCY/labview-in-public-places.html</link>
         <description>&lt;p&gt;I've been traveling quite a bit lately. That's my excuse for falling behind on the blog.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Having spent nearly twenty years of my life at National Instruments, I've gotten pretty good at detecting the presence of LabVIEW in the world around me. For example, during the Tour de France coverage on TV, there was a short segment on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.lswt.com/&quot;&gt;San Diego Air &amp;amp; Space Technology Low Speed Wind Tunnel&lt;/a&gt;. There was maybe one second of video showing software, and I call out, &quot;That's LabVIEW.&quot; Those buttons on the front panel are pretty recognizable.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;I recently visited (as a tourist) the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.omsi.edu/&quot;&gt;Oregon Museum of Science and Industry&lt;/a&gt;, and found LabVIEW in the Vernier Technology Lab. It's used to show how electrical activity in the heart is measured.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I also recently visited—again as a tourist, this time with colleagues from Agilent—the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.deutsches-museum.de/&quot;&gt;Deutsches Museum&lt;/a&gt; in Munich. We went to the museum late in the afternoon one day, with only an hour before closing. This is a big museum, so we were racing through trying to see as much as we could. We ran across the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.tumlab.de/&quot;&gt;TUMLab&lt;/a&gt;, an engineering education lab in the museum, associated with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://portal.mytum.de/welcome&quot;&gt;Technische Universität München&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The lab was closed, but through the glass window, I could see a Lego robot. This meant that LabVIEW was probably nearby. I don't think my colleagues from Agilent were quite as excited by this discovery as I was.&lt;/p&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;p&gt;I never get tired of seeing LabVIEW in the &quot;real world&quot;. I'm proud to be part of the team that's made it possible. And I'm especially proud we're helping educate the next generation of scientists and engineers.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-3557527821253829823?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/7A9UWbyLo7GFNCbqGItzEXeuh1w/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/7A9UWbyLo7GFNCbqGItzEXeuh1w/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/7A9UWbyLo7GFNCbqGItzEXeuh1w/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/7A9UWbyLo7GFNCbqGItzEXeuh1w/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-3557527821253829823</guid>
         <pubDate>Mon, 22 Oct 2007 10:32:00 -0700</pubDate>
      </item>
      <item>
         <title>NIWeek recap</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/0aDzcgc-UsU/niweek-recap.html</link>
         <description>&lt;p&gt;Michael Aivoliotis just published his &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://forums.lavag.org/blog/niweek2007/index.php?showentry=182&quot;&gt;video interview of me&lt;/a&gt;. That's prodded me into posting a quick NIWeek recap. Thanks, Michael!&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;p&gt;I got the attendance numbers for my sessions. A total of nearly 300 people attended my presentations. Wow! Thanks to everybody who came, and I hope the sessions were useful.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&quot;Software Engineering—The NI Way&quot; was very popular; we filled a large room. I'm pleased that we had such great audience participation during this presentation.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The LXI presentation had the least amount of interest, but I think we had a good selection of attendees there. I showed unreleased products from both NI and Rohde &amp;amp; Schwarz. A big thank you to David Owen from Pickering Test, and Johannes Ganzert from Rohde &amp;amp; Schwarz, for loaning equipment for my demo. Afterwards, one attendee said that my presentation was &quot;better than the one Agilent gives&quot;. I haven't seen Agilent's LXI presentation, but that sounds like a good compliment.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Another highlight for me is that one of the stars of NIWeek came to my Instrument Control Bus Comparison presentation. If you didn't attend the Thursday NIWeek keynote, you should visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/niweek/keynote_videos.htm&quot;&gt;NIWeek Keynote Videos&lt;/a&gt; web page. Click on the Thursday tab, and watch the 8-minute video entitled, &quot;Future Scientists and Engineers - An Interview with Samuel Majors&quot;. I think you'll be inspired.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I was honored to meet Samuel, but I was even more pleased that I was able to connect him with Jim Kring, the co-author of one of Samuel's favorite books, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.com/LabVIEW-Everyone-Programming-Instruments-Instrumentation/dp/0131856723/ref=cm_taf_title_featured?ie=UTF8&quot;&gt;LabVIEW for Everyone&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I also had a great time at the LAVA Barbecue at the Salt Lick. Somebody needs to tell Chris Relf that I already paid. ;-) My car (and Nancy Hollenback and I) made a cameo appearance near the end of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://forums.lavag.org/blog/niweek2007/index.php?showentry=179&quot;&gt;another Michael A. video&lt;/a&gt;. We had a great time.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-461418504998131591?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/5fn0gJv_Ld0NEHAS1kNwLTSsIDo/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/5fn0gJv_Ld0NEHAS1kNwLTSsIDo/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/5fn0gJv_Ld0NEHAS1kNwLTSsIDo/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/5fn0gJv_Ld0NEHAS1kNwLTSsIDo/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-461418504998131591</guid>
         <pubDate>Fri, 07 Sep 2007 07:30:00 -0700</pubDate>
      </item>
      <item>
         <title>My NIWeek 2007 Sessions</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/dA3n2FQXxFs/my-niweek-2007-sessions.html</link>
         <description>&lt;p&gt;I hope you are attending NIWeek, and that you are planning to attend at least one of my NIWeek presentations...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Software Engineering - The NI Way&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Using LabVIEW in an LXI-Based Test System&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Head-to-Head High-Speed Bus Comparison: GPIB, PCI, PCI Express, USB, and Ethernet/LAN&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Read more below for details on each presentation...&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;h3&gt;Software Engineering - The NI Way&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Wednesday, 3:30 PM, Room 12A&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Join me for an interactive discussion about how NI develops software. When I first joined NI nearly 20 years ago, our software development process was, shall I say, &quot;underdeveloped&quot;. Fortunately, we've been improving ever since.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I'll talk about how our process has evolved as our team and code have gotten bigger. I'll talk about and demo some of the tools we use.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This topic is significantly more interesting with audience participation, so bring your own thoughts and stories about how you develop software.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Using LabVIEW in an LXI-Based Test System&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Wednesday, 4:45 PM, Room 17A&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LXI is a relatively new standard for LAN-based test and measurement instrumentation. As many of you know, I represent NI at LXI Consortium meetings. You may have read my earlier blog postings about &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/09/what-is-lxi.html&quot;&gt;What is LXI?&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/10/lan-is-simple-right.html&quot;&gt;LAN is Simple, Right?&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In this presentation, I'll show how you can use NI hardware and software to control an LXI-based system. I've put together a system containing LXI devices from Rohde &amp;amp; Schwarz, Pickering Interfaces, and Agilent. (Thanks to the vendors who loaned me their equipment!)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This NIWeek presentation is heavy on demos and light on slides. I'll show you everything from simple instrument communciations to advanced synchronization and timing.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Head-to-Head High-Speed Bus Comparison: GPIB, PCI, PCI Express, USB, and Ethernet/LAN&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Wednesday, 10:30 AM, Room 17B&lt;br /&gt;&lt;br /&gt;Thursday, 2:15 PM, Room 13B&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The typical test system these days includes instrumentation with a variety of interfaces. You might have a mix of simple PXI devices, legacy GPIB instruments, and perhaps a LAN or USB device thrown in. This presentation will shed some light on the strengths and weaknesses of various buses, including performance, cost, and ease of use.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-4591032085432015948?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/DOQg8loGZAFvTvEyHcpfD7sNFQY/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/DOQg8loGZAFvTvEyHcpfD7sNFQY/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/DOQg8loGZAFvTvEyHcpfD7sNFQY/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/DOQg8loGZAFvTvEyHcpfD7sNFQY/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-4591032085432015948</guid>
         <pubDate>Wed, 01 Aug 2007 11:37:00 -0700</pubDate>
      </item>
      <item>
         <title>Pop Quiz Answer</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/orwFB3lhBX0/pop-quiz-answer.html</link>
         <description>&lt;p&gt;Nobody answered my pop quiz!&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;Pop Quiz:&lt;/em&gt; Default data on a front panel control is useful, for example, when the control is on the connector pane, but isn't wired in the caller's diagram. The subVI runs with the default value in that case. When is default data on an indicator useful?&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Read more for the answer...&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;We pass data out of subVIs through its indicators that are on the connector pane. But what if an indicator doesn't receive any data while the subVI runs? In that case, we use the indicator's default data and pass that out to the caller.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A picture helps. Here are the two frames of a case structure...&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RqjYNU4I3cI/AAAAAAAAAB0/fjgky0H1kH0/s1600-h/condind.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5091557102196415938&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RqjYNU4I3cI/AAAAAAAAAB0/fjgky0H1kH0/s320/condind.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;This is an example of a conditional indicator. The indicator is only updated in one frame. If the VI never executes that frame, no data ever reaches the terminal for the indicator. When the indicator's data is passed out of the connector pane, the default data for the indicator is used in that case.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So in the example above, I made the default data for &quot;My Conditional Indicator&quot; the value 456. I put the &quot;Case?&quot; Boolean and the &quot;My Conditional Indicator&quot; on the connector pane and saved the VI. In the calling VI, if I pass True, I get the result &quot;123&quot;. If I pass False, I get &quot;456&quot;. Make sense?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Why did I bring this up in a posting about performance? Because it affects memory usage. LabVIEW has to account for two different ways that a conditional indicator can be updated (through a wire or by copying the default data). This interferes with the in-place algorithm and means that LabVIEW can't be as efficient with memory usage.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Conditional indicators aren't typically needed. I could have achieved the same effect with the following diagram...&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/Rq5pKE4I3eI/AAAAAAAAACE/JQuSDriHWMg/s1600-h/condind2.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5093123850431421922&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_3ziZaf8zuQ4/Rq5pKE4I3eI/AAAAAAAAACE/JQuSDriHWMg/s320/condind2.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;(Or, for simple things like this, I could have used the Select function.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, you might want to look at your own code for places you are using conditional indicators to see if you can improve your memory usage. I wouldn't worry much about scalars and other small data, but if you have large arrays or strings, this can make a difference.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-3538365582566986463?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/ke579EJ9P9PXskFWbBU_5MOUDow/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/ke579EJ9P9PXskFWbBU_5MOUDow/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/ke579EJ9P9PXskFWbBU_5MOUDow/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/ke579EJ9P9PXskFWbBU_5MOUDow/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-3538365582566986463</guid>
         <pubDate>Mon, 30 Jul 2007 15:40:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_3ziZaf8zuQ4/RqjYNU4I3cI/AAAAAAAAAB0/fjgky0H1kH0/s72-c/condind.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>NIWeek 2007</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/RRvviN_b7eA/niweek-2007.html</link>
         <description>&lt;p&gt;NIWeek 2007 is fast approaching on August 7-9. If you use NI products (or are thinking of using them), this is an awesome event. Dozens of technical sessions, amazing keynotes, and scores of exhibitors. In addition, we have special summits for Graphical System Design, RF and Wireless Communications, Sound and Vibration, and Vision applications. Register now at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://niweek.com/&quot;&gt;niweek.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Staying informed during NIWeek&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Whether or not you are attending NIWeek, watch the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://forums.lavag.org/blog/niweek2007/&quot;&gt;NIWeek Blog&lt;/a&gt; by Michael Aivaliotis. Videos and stories throughout NIWeek.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The official &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/niweek&quot;&gt;NIWeek Twitter link&lt;/a&gt; can keep you informed of late-breaking NIWeek news. Or maybe you can just twitter each other during my presentation about how great it is. ;-)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Speaking of my presentations, I have three this year...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Software Engineering - The NI Way&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Using LabVIEW in an LXI-Based Test System&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Head-to-Head High-Speed Bus Comparison: GPIB, PCI, PCI Express, USB, and Ethernet/LAN&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;I'll post more information on these as we get closer.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1692934819700518091?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/54WJHA_WOPmmlYtmBHhV-InKR_k/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/54WJHA_WOPmmlYtmBHhV-InKR_k/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/54WJHA_WOPmmlYtmBHhV-InKR_k/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/54WJHA_WOPmmlYtmBHhV-InKR_k/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1692934819700518091</guid>
         <pubDate>Thu, 26 Jul 2007 09:30:00 -0700</pubDate>
      </item>
      <item>
         <title>Yet another kind of data</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/t5NF84D2j0g/yet-another-kind-of-data.html</link>
         <description>&lt;blockquote&gt;&lt;strong&gt;Note...&lt;/strong&gt; I'll be in Vancouver, B.C., for next week's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sine.ni.com/apps/utf8/nievn.ni?action=display_offering&amp;amp;offering_id=442777&amp;amp;site=NIC&amp;amp;state=BC&amp;amp;node=61120&amp;amp;l=US&quot;&gt;LabVIEW Developer Education Days&lt;/a&gt; on June 26. I hope to see some of you there.&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;As I mentioned last time, there's a fourth kind of data that can show up in the profile window...&lt;strong&gt;Default Data&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;I'll go back to the simple VI I used in the last posting. It's an array of int8's wired to an array of int8's. The default value of each array is empty. This means that when I load the VI into memory, the front panel doesn't have the arrays allocated. (And the VI only takes up about 8 kilobytes of disk space.) For my earlier profiling tests, I was typing a new value into the millionth element of the array control, which allocates the million bytes for it. When I ran this VI, it consumed five megabytes of data.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now let's see what happens when I go ahead and &quot;Make Current Value Default&quot; for the million-byte array...&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnhYkm2rM3I/AAAAAAAAABU/a0bXGmiPmRI/s1600-h/blog1-profwin.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5077905965788640114&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnhYkm2rM3I/AAAAAAAAABU/a0bXGmiPmRI/s320/blog1-profwin.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;When I run the VI (and I've run it more than once, so you can see the final values in the profile window), you see that the five megabytes has turned into six megabytes. The profile window is now showing you that there's an extra megabyte of memory being consumed by this VI, because of the default data.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To take it a step further, if I also made the indicator array's data the default, I'd be growing the memory consumption to seven megabytes.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Default data is often a good thing, but we sometimes find VIs where we've saved a large amount of data as default accidentally. This is easy to do if you select the &quot;Make All Current Values Default&quot; menu item from the Edit menu. I try to stay away from this menu item, and instead only set the default value for the controls I know that need it.&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;Pop Quiz:&lt;/em&gt; Default data on a front panel control is useful, for example, when the control is on the connector pane, but isn't wired in the caller's diagram. The subVI runs with the default value in that case. When is default data on an indicator useful?&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Note that the VI Analyzer reports non-empty default values for arrays so that you can take a closer look at them. (The VI Analyzer is a separate add-on for LabVIEW that can check your VIs for common programming errors, style conformance, and in this case, performance issues.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Interesting side note...&lt;/em&gt; When I save my new test VI to disk, how much disk space do you think it consumes? Seven megabytes? Two megabytes?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It turns out that it takes up about 8 kilobytes, which is about what it took when I hadn't saved any default data. Why is that? It's because my default data was entirely made up of zeros. The VI's data gets compressed when it's saved, and a million zeros compresses very well.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Just for fun, I created an identical VI with a million bytes of random data saved as default data for each front panel array. That VI took about 1.2 megabytes on disk—still, that's a 40% savings over the uncompressed data, which is pretty good, I think. (Your mileage may vary.)&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-4015789747008628407?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UyN8aYdMKjJoUqmxbLz_HUMTJOs/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UyN8aYdMKjJoUqmxbLz_HUMTJOs/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UyN8aYdMKjJoUqmxbLz_HUMTJOs/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UyN8aYdMKjJoUqmxbLz_HUMTJOs/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-4015789747008628407</guid>
         <pubDate>Thu, 21 Jun 2007 18:00:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnhYkm2rM3I/AAAAAAAAABU/a0bXGmiPmRI/s72-c/blog1-profwin.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LabVIEW Performance and Memory Management</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/Jbh7ERzcu64/labview-performance-and-memory.html</link>
         <description>&lt;p&gt;When I talk about performance optimization in LabVIEW, I pretty quickly focus on memory management issues. Memory isn't the only concern. It's just that memory issues are sometimes the hardest to understand. Plus, since LabVIEW is a dataflow language, we have a lot of emphasis on the data.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One way to monitor memory usage in LabVIEW is to use the profiler.&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnWZZW2rMzI/AAAAAAAAAA0/T8B0kUuAXRQ/s1600-h/profile-menu.PNG&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5077132815840785202&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnWZZW2rMzI/AAAAAAAAAA0/T8B0kUuAXRQ/s320/profile-menu.PNG&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;Select Profile Memory Usage to see how much memory each of your VIs is consuming.&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjG2rM0I/AAAAAAAAAA8/0S5lnPzg6Ik/s1600-h/profile-window1.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5077132983344509762&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjG2rM0I/AAAAAAAAAA8/0S5lnPzg6Ik/s320/profile-window1.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Here's a simple VI I wrote that contains an array control wired to an array indicator. I changed the data type of the array element to be a 1-byte integer. This makes it easy to see how much memory the array is taking--one million array elements equals one million bytes. (If we had an array of doubles, one million array elements equals eight million bytes.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I've initialized the control to have one million elements. (Actually, 1,000,001, but who's counting. ;-) Before I run the VI, it is using 1 million bytes for its data--the indicator is an empty array. The profiler won't show you this; it doesn't do its thing until you run the VI.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Okay, once I run the VI, how much memory do you think it takes? Let's see what the profiler says...&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjG2rM1I/AAAAAAAAABE/wvPrgESvF-w/s1600-h/profile-window2.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5077132983344509778&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjG2rM1I/AAAAAAAAABE/wvPrgESvF-w/s320/profile-window2.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Approximately 4 million bytes! What's going on?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In my last blog entry, I said I'd tell you about the three kinds of data in LabVIEW, and they're all showing up in this profile result. The three types of data are...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Operate Data&lt;/strong&gt;—Every front panel control and indicator keeps data that we call the &quot;operate data&quot;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Execute Data&lt;/strong&gt;—Every wire on the diagram represents a buffer of data. The data for the diagram is called &quot;execute data&quot; or &quot;execution data&quot;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Transfer Data&lt;/strong&gt;—Buffer used to isolate execution threads (which work with execution data) from the user interface thread (which works with operate data).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;So why do we need these three kinds of data? As we'll see in later postings, the diagram likes to share execution data buffers among parts of the diagram, so the data that originally came from a control can get overwritten with intermediate and final results as the VI executes. You don't want front panel control's data to be changing while the VI runs, though! This means that we have to have a separation between the diagram and the panel.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The transfer buffer is used as an optimization in LabVIEW's multithreaded execution system. When the diagram wants to send data to an indicator, it has to work with LabVIEW's user interface thread to draw the data. There can be many execution threads, but there's only one user interface (UI) thread. Thus, the UI thread can potentially be a big bottleneck if all those execution threads had to sit and wait for it. That's where the transfer buffer comes in. It's a buffer that both the UI thread and execution threads can quickly access without (usually) blocking.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So when a block diagram updates an indicator, the execution data is copied to the transfer buffer by an execution thread, and some time later, the UI thread reads the transfer buffer and copies the data to the operate data.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So back to our example. We have a million bytes in the control (operate data), a million bytes in the control's transfer buffer, a million bytes on the wire (execute data), a million bytes in the indicator's transfer buffer, and a million bytes in the indicator (operate data). That adds up to five million bytes, right?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But the profile window said four million. What's the deal? Recall that I said that the profiler does its thing while the VI is running. It turns out that in this simple diagram, the VI stops running before the UI thread has had a chance to make the last copy of the data (from the transfer buffer to the indicator's operate data).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When profiling, I tell people to run their VIs a few times to make sure that buffers are allocated. If I run the VI again, I'll now see five million bytes...&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjW2rM2I/AAAAAAAAABM/-_YssuKp0RQ/s1600-h/profile-window3.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5077132987639477090&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnWZjW2rM2I/AAAAAAAAABM/-_YssuKp0RQ/s320/profile-window3.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;If this were a more realistically complicated VI, there's a good chance that the profiler would have counted all the data the first time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Next up...&lt;/em&gt; I lied. There's a fourth kind of data that can show up in the profile window. What is it?&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1067448862412971553?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/H14RCDPZ1RsRUeBWzGwuPvuVa7Y/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/H14RCDPZ1RsRUeBWzGwuPvuVa7Y/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/H14RCDPZ1RsRUeBWzGwuPvuVa7Y/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/H14RCDPZ1RsRUeBWzGwuPvuVa7Y/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1067448862412971553</guid>
         <pubDate>Tue, 19 Jun 2007 15:30:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_3ziZaf8zuQ4/RnWZZW2rMzI/AAAAAAAAAA0/T8B0kUuAXRQ/s72-c/profile-menu.PNG" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LabVIEW Performance, The Early Years</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/W0Ur3a9RbX0/labview-performance-early-years.html</link>
         <description>&lt;p&gt;I started working at NI in 1988, when LabVIEW 1 was shipping. LabVIEW 1 was &lt;em&gt;so&lt;/em&gt; cool. But once you got past the awesome (for the 1980's) graphics and graphical programming paradigm and started to use it for real work, you noticed that it was a tad slow.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We learned a lot doing LabVIEW 1. So much so that we decided to throw away the source code and start over with LabVIEW 2. While LabVIEW 1 was an interpreted language, LabVIEW 2 was built from the ground up to be compiled. And when it came out in 1990, LabVIEW 2.0 demonstrated much better performance. For some applications, it was an order of magnitude or more faster. (So fast, in fact, that we ran into problems talking to many GPIB instruments that couldn't keep up with commands we were sending.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;LabVIEW 3 released in late 1993, and was the first version of LabVIEW that unified our original Macintosh codebase with our PC and Sun versions. Soon after, I created the first presentation to customers about LabVIEW performance...&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;In May 1994, I was invited to Sweden to present &quot;Tips &amp;amp; Techniques for Improving LabVIEW Performance&quot;. It discussed how to take advantage of the many performance optimizations available in LabVIEW, and also discussed patterns to avoid, such as local variables. (Don't worry, I'll cover these in subsequent postings.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;My presentation was based on some earlier technical notes, as well as an article by Monnie Anderson in the now defunct &lt;em&gt;LabVIEW Technical Resource&lt;/em&gt;. (&lt;em&gt;LabVIEW Memory Secrets&lt;/em&gt;, Volume 2, Number 1, Winter 1994)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Before I left for Stockholm, I practiced the presentation in front of the LabVIEW team. This turned out to be a great experience—I presented to the toughest audience first. It did yield one unexpected result: the LabVIEW development team did not agree on how LabVIEW worked!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;More precisely, I had found a common situation where LabVIEW made an extra copy of data that unexpected and unnecessary. Within a few days, our compiler expert had a fix that later came out in LabVIEW 3.1.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Why am I telling you these stories? Even though the latest LabVIEW is many orders of magnitude faster than LabVIEW 1, and even though we can handle much more complicated applications than we could a couple of decades ago, we're not resting. We're still working on performance issues today.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For example, we've seen much growth in the use of multi-core processors in affordable PCs. While LabVIEW has been ahead of this curve and able to take advantages of multiple processors and cores since our 1998 release of LabVIEW 5.0, we're continuing to look at new ways to leverage all this computing power.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Another reason for these stories is to make it clear that performance issues are sometimes difficult to understand. And I'm hoping that my future blog posts will help clarify these for you.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Next up...&lt;/em&gt; The three kinds of data in LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-5812312990790481661?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/trbinl3pwRLpjol9HlWAdJ09nJU/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/trbinl3pwRLpjol9HlWAdJ09nJU/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/trbinl3pwRLpjol9HlWAdJ09nJU/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/trbinl3pwRLpjol9HlWAdJ09nJU/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-5812312990790481661</guid>
         <pubDate>Wed, 13 Jun 2007 07:33:00 -0700</pubDate>
      </item>
      <item>
         <title>Expanding Scope</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/9_3W9qN-9yk/expanding-scope.html</link>
         <description>&lt;p&gt;I returned recently from a couple of trips lamenting that I haven't been keeping this blog current. I was visiting customers in Massachusetts, Connecticut, and Colorado, discussing topics ranging from &quot;performance optimization&quot; to &quot;software engineering&quot;. It occurred to me that my blog's current focus isn't keeping up with my everyday work life.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I spend a lot of my day at NI working on &quot;next year's LabVIEW&quot;. It's cool stuff. You'll like it. But it doesn't produce much fodder for my blog, because I can't talk about specifics yet. Also, my current project is pretty far-reaching, and doesn't fit neatly into just &quot;data acquisition and instrument control&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, I'm going to start expanding the scope of my blog a little to cover a few more topics that I care about—and that many of you have told me that you care about, too.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Coming soon...&lt;/em&gt; The first of several postings about performance issues. If you have other LabVIEW-related topics you'd like me to cover, please post a comment or send an email.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-2844083411914148842?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UeiGBGjdAkzZAjFswEEdS-RoWZc/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UeiGBGjdAkzZAjFswEEdS-RoWZc/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/UeiGBGjdAkzZAjFswEEdS-RoWZc/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/UeiGBGjdAkzZAjFswEEdS-RoWZc/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-2844083411914148842</guid>
         <pubDate>Tue, 12 Jun 2007 15:45:00 -0700</pubDate>
      </item>
      <item>
         <title>A Good Cause</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/ZnnrRbPdLFo/good-cause.html</link>
         <description>&lt;p&gt;Today's the day I leave for the MS-150, a two-day, 180-mile bike ride from Houston to Austin, Texas. I'll be riding along with 12,000 other friends and strangers to raise money for the National Multiple Sclerosis Society. This is my third year to do the ride.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Am I ready? Hmm. I'm not sure I can ever be &quot;ready&quot; for a 180-mile bike ride. It is definitely hard. It's also fun to be doing this with nearly a hundred of my co-workers. And I take pride in my own personal accomplishment, as well as being able to help the National MS Society.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;My goal is to raise $1500 for the society. The National MS Society is a 501(c)(3) organization, so your donation may be tax deductible. Your donation benefits thousands of people affected by multiple sclerosis. You can donate online here...&lt;br&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ms150.org/edon.cfm?id=190138&quot;&gt;http://ms150.org/edon.cfm?id=190138&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can learn more about the society, about multiple sclerosis, and about the bike ride here...&lt;br&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ms150.org/ms150/about_ms_society.cfm&quot;&gt;http://ms150.org/ms150/about_ms_society.cfm&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-9211336065419057634?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/INBkvfNc20dYgnMmSYvSBJ4hsG8/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/INBkvfNc20dYgnMmSYvSBJ4hsG8/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/INBkvfNc20dYgnMmSYvSBJ4hsG8/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/INBkvfNc20dYgnMmSYvSBJ4hsG8/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-9211336065419057634</guid>
         <pubDate>Fri, 20 Apr 2007 05:30:00 -0700</pubDate>
      </item>
      <item>
         <title>La Mort du Serpdrv</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/u_NZUWu6Es8/la-mort-du-serpdrv.html</link>
         <description>&lt;p&gt;A series of &quot;interesting&quot; events have conspired to keep me away from my blog lately, so I decided to write about something &quot;juicy&quot; to start things back up. (Where &quot;juicy&quot; means &quot;controversial for people who have been using LabVIEW for more than five or so years&quot;. ;-)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Today's topic is about an entity named &quot;serpdrv&quot;, mentioned in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/08/so-many-choices.html&quot;&gt;an earlier post&lt;/a&gt;. This entity provided serial (RS-232) support for LabVIEW 2.5 through LabVIEW 6.x. In LabVIEW 7, I arranged for its demise. This posting will talk a little about how it came into existence, and how it made its exit. You'll hopefully gain some insight into how we reach the decision to phase out aging features.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;In January of 2002, I posted a message to the Info-LabVIEW mailing list to help a LabVIEW user solve a problem with his serial I/O. Near the end of my posting, I inserted the following text...&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;I will again encourage people to use VISA for all future serial port development. At some point, I would like to see the &quot;serpdrv&quot; VIs go away. (And since I'm the decision-maker on this, it'll probably happen. :-)&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;And thus began an outpouring of support for this little thing we call &quot;serpdrv&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It's also the day that I started an internal document called &quot;La Mort du Serpdrv&quot;, to start my plan to remove &quot;serpdrv&quot; from LabVIEW. You can construe the existence of this document a couple of ways. Some might consider it our battle plan to kill off the feature. I personally considered it a place to gather user feedback, document shortcomings and features of serpdrv, and come up with a plan to strengthen our other options for serial I/O so that removing serpdrv would be easier.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;The Birth of Serpdrv&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;LabVIEW 1 and 2, as many of you recall, were only available on the Apple Macintosh. Macs had &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/EIA-422&quot;&gt;RS-422&lt;/a&gt; serial ports, disguised as the &quot;modem&quot; and &quot;printer&quot; ports. They were quirky not only from a hardware perspective, but also from software. On the old Macs, you used the &quot;Device Manager&quot; to talk to the serial drivers named &quot;.Ain&quot;, &quot;.Aout&quot;, &quot;.Bin&quot;, and &quot;.Bout&quot;. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Inside_Macintosh&quot;&gt;Inside Macintosh&lt;/a&gt; described the data structures for the driver and how to get the serial port to do all the right things.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In LabVIEW, we created some low-level primitives for this Macintosh Device Manager. We then built the serial VIs on top of the Device Manager primitives. (And as I recall, we built GPIB and DAQ VIs on top of those same Device Manager primitives to get to our own devices.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When we ported LabVIEW to Windows and SunOS, we needed to invent a cross-platform approach to serial I/O. Every platform did something completely different, so we made a decision not unlike many other decisions of the day: Let's make everything look like a Mac.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, we invented a Device Manager for LabVIEW for Windows and Sun that looked like the Apple Device Manager. Then we intented Macintosh-like &quot;drivers&quot; that plugged into our new proprietary device manager. Constrained by the Windows 8.3 filenaming conventions of the day, we used the names &quot;serpdrv&quot;, &quot;gpibdrv&quot;, and &quot;daqdrv&quot; for those low-level drivers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And that's how things stayed for the next several years. Our GPIB and DAQ support eventually switched to more modern technology. Serpdrv, however, remained. We'd fix the occasional bug, but the overall structure of serpdrv stayed the same.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;And Then There Was VISA...&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Around the time of LabVIEW 4.1 and 5.0, NI-VISA came into existence. Among other things, VISA could read and write to serial ports and the GPIB. At first, it wasn't as good at serial I/O as &quot;serpdrv&quot;, and it wasn't as good at GPIB as our NI-488.2 driver. What VISA had going for it is that it was a combined API layer that made serial and GPIB devices look nearly the same. Since many hardware devices had both GPIB and RS-232 options, we could write a single instrument driver with VISA, and it would work regardless of the I/O option in the device. (And the benefit continues to this day with USB- and LAN-based instruments.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Around the LabVIEW 5 and 6 timeframe, I became the manager of the part of LabVIEW that was responsible for all the forms of I/O. Among many other things, I was responsible for &quot;serpdrv&quot;, and I was responsible for ensuring that VISA worked well in LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Even then, &quot;serpdrv&quot; was legacy code that only one person (not me) really understood. I remember investigating a problem where hardware flow control didn't work. The code to handle flow control clearly didn't match what Microsoft said it should. So I changed it. But that broke something else. This is where I start to question whether we need two ways to do serial I/O in LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Making VISA better&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;So I put out a challenge to the VISA group... &quot;Remove the barriers that keep VISA from replacing serpdrv.&quot;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;VISA already had a lot of things going for it. It was a better API for LabVIEW. It had more features, such as control over individual hardware lines. It also had fewer bugs—for example, hardware flow control worked. On the other hand, it was slower and bigger.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The NI-VISA group responded to the challenge. The speed problems were caused by extra threading overhead in the driver. It didn't take long for VISA to be faster than &quot;serpdrv&quot; for serial I/O. They also created a small VISA serial runtime that the LabVIEW Application Builder could use for deployment. It wasn't as tiny as &quot;serpdrv&quot;, but it was a big improvement over the tens-of-megabytes for the full VISA driver. And then we had to work through some VISA licensing issues so that LabVIEW users could freely distribute applications that used the VISA serial runtime.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What our customers didn't see was a lot of internal discussion and &lt;em&gt;angst&lt;/em&gt;. Besides feedback from external customers, we also had feedback from our own FieldPoint group. They had industrial controllers with very limited processing and memory capability. Switching to VISA was a bigger deal for them than for most of our external customers.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;And &quot;serpdrv&quot; disappears...&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;By LabVIEW 7, VISA had improved and I decided that we could proclaim that it was good enough that we could deprecate &quot;serpdrv&quot;. We created a set of compatibility VIs that presented the old API, but it was built on top of the VISA functions. Many people did not notice. Some did, leading to another round of commentary on Info-LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It didn't take long for somebody to figure out that the old &quot;serpdrv&quot; VIs would still work in LabVIEW 7. This gives our customers an &quot;out&quot; if they absolutely don't want to use VISA for serial I/O. While not supported (or even tested), they should still work in LabVIEW 8.x, too. That's because the mysterious Device Manager primitives are still in LabVIEW. But that won't always be the case, and I can announce to you today that we'll remove the Device Manager interface in a future version of LabVIEW. I don't know when, but it's going to happen.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Moving on...&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;So I want you to realize that we do agonize over changes like this. Before we started, VISA was in many ways superior to the old serial VIs. Not satisfied, we put in a substantial amount of additional effort to make it better still. I still look back over my shoulder to see if I've missed something, but I'm confident that &quot;serpdrv&quot; won't be coming back.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-1117931635630752102?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vg8h-tlzvmNOIMBtWv9VEQHPVUs/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vg8h-tlzvmNOIMBtWv9VEQHPVUs/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vg8h-tlzvmNOIMBtWv9VEQHPVUs/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vg8h-tlzvmNOIMBtWv9VEQHPVUs/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-1117931635630752102</guid>
         <pubDate>Mon, 19 Feb 2007 16:07:00 -0800</pubDate>
      </item>
      <item>
         <title>Using IVI-C and VXIpnp Drivers in LabVIEW</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/dCREdQ1by5E/using-ivi-c-and-vxipnp-drivers-in.html</link>
         <description>&lt;p&gt;Happy end of 2006 to everybody out there.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In earlier &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/08/more-on-instrument-drivers.html&quot;&gt;posts&lt;/a&gt;, I've talked about the various kinds of instrument drivers. All of the modern types of instrument drivers work reasonably well in LabVIEW, but some work better than others. Specifically, LabVIEW Plug and Play instrument drivers (written in native LabVIEW source code) give LabVIEW users the best experience.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But not all instrument drivers are written in LabVIEW. This post talks about instrument drivers written in C, and how to bring them into the LabVIEW environment. C is considered a kind of &quot;universal language&quot;; C compilers are available for a huge number of platforms. So, vendors whose mission is to write a single driver that is usable on many platforms in many different environments often write a driver in C. (Though a reminder from an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/09/ivi-c-and-ivi-com.html&quot;&gt;earlier post&lt;/a&gt;, the one-size-fits-all instrument driver isn't a particularly good idea.)&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;The first step in using a C-based driver in LabVIEW is to turn the C code into a DLL or Shared Library. Often, the person who wrote the driver does this for you, at least for Microsoft Windows. How to compile the driver is left as an exercise for the reader. My focus is on making the resulting shared library usable in LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To use a shared library (DLL) in LabVIEW, you use the Call Library Node (CLN) function on the diagram. You configure a CLN for every function you want to call. Typically, you create a single VI for each C function, and then use these VIs in higher-level diagrams. (Click to enlarge)&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/RZV7Em3YHOI/AAAAAAAAAAM/EP1tgSpMlzo/s1600-h/cln.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5014049079229422818&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_3ziZaf8zuQ4/RZV7Em3YHOI/AAAAAAAAAAM/EP1tgSpMlzo/s320/cln.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;As you can imagine, if you have a shared library with dozens or hundreds of entry points, it can be tedious to make these VI wrappers. Fortunately, we have tools to make this easier.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Kinds of C-based Instrument Drivers&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Broadly speaking, there are three different kinds of C-based instrument drivers...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Drivers that do not conform to VXIpnp standards&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Drivers that conform only to VXIpnp standards&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Drivers that conform to both VXIpnp and IVI-C standards&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;The more standards a C-based driver conforms to, the more we know about how it is structured. The more we know about it, the better job we can do pulling the driver into the LabVIEW environment.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For drivers that don't conform to VXIpnp, we can't make any assumptions at all. We see this more often with somewhat esoteric instruments, or instruments from industries other than traditional test &amp;amp; measurement.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For VXIpnp drivers, we know they have an Initialize, a Close, a certain form of error checking, and a few other details. We don't know anything about instrument-specific functionality, such as whether a device is a DMM, a Scope, or something else.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;IVI-C drivers go a step further, and define more of the API, at least for certain classes of instruments (such as DMMs, Scopes, Switches, etc.). This lets us more intelligently bring these drivers into the LabVIEW environment.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Tools for Importing&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;There are two separate LabVIEW tools you can use to help import these drivers. The first is the &lt;strong&gt;DLL Import Wizard&lt;/strong&gt;, for importing generic (not VXIpnp or IVI-C) DLLs. The NI web site has a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/2818&quot;&gt;tutorial&lt;/a&gt; about this tool, so I won't go into much detail about it here.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you have a VXIpnp or IVI-C driver, you want to use a different tool—the &lt;strong&gt;LabVIEW Instrument Driver Import Wizard&lt;/strong&gt;, found on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/devzone/idnet/development.htm&quot;&gt;Instrument Driver Development Tools and Resources&lt;/a&gt; page on ni.com.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Unlike the generic DLL Import Wizard, the Instrument Driver Import Wizard is able to use its knowledge of the VXIpnp and IVI-C standards to create better wrapper VIs. It even makes an attempt to translate the C terminology in the help to LabVIEW terminology. Here's an example, showing the original C help and the translation into LabVIEW terminology...(Click to enlarge)&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RZWKU23YHQI/AAAAAAAAAAk/fbhfVVtT-pE/s1600-h/fl45-help.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5014065851076713730&quot; style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_3ziZaf8zuQ4/RZWKU23YHQI/AAAAAAAAAAk/fbhfVVtT-pE/s320/fl45-help.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;The Instrument Driver Import Wizard understands VISA and IVI refnum data types, it knows how the driver does error checking, and it creates better icons. It isn't perfect—there's a very good chance that you will want to tweak some of the resulting VIs to improve front panel layout, connector panes, and help. You may also want to clean up parameters to make them easier to use in LabVIEW—for example, integers that represent bitfields that you are supposed to &quot;OR&quot; together. But, the Instrument Driver Import Wizard handles a lot of the conversion for you.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If it isn't obvious... If you have a VXIpnp or IVI-C driver, you use the Import Instrument Driver Wizard, not the Generic DLL Import Wizard.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Final Caveats&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;The Instrument Driver Import Wizard used to be called the &quot;CVI Function Panel Converter&quot; and we shipped it with LabVIEW. Beginning with LabVIEW 8, we made it a web download. Some instrument vendors complained about this. They were claiming good LabVIEW support for their C-based drivers, but telling end users to go run the tool themselves to create the LabVIEW VIs.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;My philosophy is that most end users don't need to run this tool. &lt;em&gt;In an ideal world, the developer of the C instrument driver should be the one to run the LabVIEW Instrument Driver Import Wizard.&lt;/em&gt; Since the output of the tool often needs some tweaking (or even fixes to the C code), I'd prefer that only one person (the driver developer) create the wrapper. If every end user has to create the wrapper VIs, and then go hand-tweak them, it isn't very efficient. Many end users aren't going to understand the C driver well enough to make these changes easily.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Another caveat is that these tools only run on Windows. Fortunately, the resulting VIs can run on any LabVIEW platform (assuming you can recompile the DLL on the other platforms). Many VXIpnp drivers can run on multiple platforms. Interestingly, members of the IVI Foundation have told me that conformant IVI drivers can only run on Microsoft Windows. So even though we have &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://zone.ni.com/devzone/cda/tut/p/id/3809&quot;&gt;instructions for porting IVI-C drivers to Linux&lt;/a&gt;, the Linux driver may not officially be an IVI driver. Regardless, the wrappers you create for LabVIEW should work with such a driver.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-6712600960337180500?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vBvTRIv11eX749mevhLhQ_3ZZrQ/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vBvTRIv11eX749mevhLhQ_3ZZrQ/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/vBvTRIv11eX749mevhLhQ_3ZZrQ/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/vBvTRIv11eX749mevhLhQ_3ZZrQ/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-6712600960337180500</guid>
         <pubDate>Fri, 29 Dec 2006 15:00:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_3ziZaf8zuQ4/RZV7Em3YHOI/AAAAAAAAAAM/EP1tgSpMlzo/s72-c/cln.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LabVIEW API Design</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/oxuXW5VI7q0/labview-api-design.html</link>
         <description>&lt;blockquote&gt;Sorry it's been a while since my last post. I've been traveling, most recently to New Mexico and Colorado for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/techsym/&quot;&gt;National Instruments Technical Symposia&lt;/a&gt;, and a little bit of photography at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://southwest.fws.gov/refuges/newmex/bosque&quot;&gt;Bosque del Apache National Wildlife Refuge&lt;/a&gt;.&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;In my role at National Instruments, I work with many of the driver and toolkit groups that provide LabVIEW APIs for their products. We make decisions about how to best represent our products in easy to learn and easy to use ways.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We're often faced with difficult tradeoffs, and some decisions come down to a &quot;gut feel&quot; by those of us involved. I thought I'd share some of the thought process that goes into making a good API for LabVIEW.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;First, a little history. Many of you have attended, or at least heard of, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/niweek/&quot;&gt;NIWeek&lt;/a&gt;—Thousands of users, dozens of presentations, dozens of exhibitors. Did you know that we have a similar NI-only event called &quot;NITech&quot;? This is where NI R&amp;amp;D sets aside three days to have NI engineers present to other other NI engineers. We learn about the latest hardware and software technologies, ongoing research ideas, and good development practices. (And just as at NIWeek, we have fun, too.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At NITech 2001, I co-presented a session on &quot;Why Good Hardware APIs are Different in LabVIEW, CVI, VB, and VC&quot;. Each development environment is different. Some differences are radical, such as LabVIEW's data flow approach vs. text languages that are control flow. Some are as simple as the differences in the online help systems, or the fact that LabVIEW APIs have icons in addition to function names. One conclusion of the presentation is that it's worth it to fine-tune an API for the development environment your users are going to use.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For NITech 2002, I expanded the presentation and called it &quot;Good LabVIEW API Design&quot;. I moved it out into the open at NIWeek 2003, where I updated it and called it &quot;Developing High Quality LabVIEW Add-ons&quot;. For NIWeek 2004, I updated it once again, and put some spin on the name—&quot;Advanced LabVIEW Design—Usability, Reusability, and Maintainability&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Some of the ideas from those presentations have been incorporated into either the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/cgi-bin/redirect.cgi?dest=infcoprod&amp;amp;src=lvhelp&amp;amp;openagent&amp;amp;code=exk5vr&quot;&gt;LabVIEW Development Guidelines&lt;/a&gt; (available in the LabVIEW help), or the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/devzone/idnet/library/instrument_driver_guidelines.htm&quot;&gt;Instrument Driver Development Guidelines&lt;/a&gt;. I don't plan to rehash every guideline here, but there are a few ideas from the presentations I'd like to cover from time to time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At a recent LXI meeting, I was asked whether it made sense for IVI-COM drivers to have LabVIEW VI wrappers around them. That is, instead of having users use the IVI-COM drivers as COM objects directly in LabVIEW, should he create a VI for every property and method in the driver? As with so many things, the answer is, &quot;it depends&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When someone asks, &quot;should I do it this way?&quot;, you have to step back and consider the alternatives. There's not necesssarily one perfect way.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A few years ago, one of the well-known instrument vendors developed LabVIEW instrument drivers that consisted of hundreds of VIs. Basically, they had one VI per SCPI command. In a scope API, you called one VI to set coupling, and another to set vertical range, and another for vertical offset. In my book, this was pretty low-level tedious programming. It was also error-prone—some instruments, for example, have a particular order in which you need to send the commands.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I've argued that users really want a higher-level instrument driver—&quot;configure channel&quot; or &quot;configure vertical&quot;, not the lower-level components. Let the author of the instrument driver figure out the programming details once, instead of pushing that onto each user. Still, some vendors really like the low-level approach, since it's so powerful and so granular. I think users who want such a low-level approach can use VISA Write to send their own SCPI commands.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Let me restate this to make the tradeoffs clearer. Approach 1 is to have hundreds of simple VIs that consist mostly of VISA Write calls. The driver covers every command the instrument can handle. Approach 2 is to have only a few more complex, higher-level VIs that are commonly used. If you want something more granular, you either modify one of the existing VIs, or you create your own new VI with a VISA Write in it.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I generally lean towards approach 2. The first approach is often overwhelming, and users don't know where to start and how to put the pieces together.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The IVI APIs presented some new challenges. They're more complex, and it's not as simple to insert a VISA Write in your code to tweak a specific setting. So the IVI-C APIs have a few high-level methods, and hundreds of low-level properties. When we designed the first IVI-C APIs for the various instrument classes, we tried to make it so that 80% of typical user applications could be accomplished with only the higher-level methods.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The palette menus for an IVI-C driver in LabVIEW expose the high-level functions. We often also include a single property node to make it easy to get to the rest of the API. Thus, the palettes lead you to the right starting place for the API.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The same idea could map to IVI-COM. Unfortunately, IVI-COM drivers do not always expose a high-level approach in the specific driver interface. Recall from my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openmeas.blogspot.com/2006/09/ivi-c-and-ivi-com-part-2.html&quot;&gt;earlier post about IVI-C and IVI-COM&lt;/a&gt;, that the specific interface to an IVI-COM driver doesn't conform to any standard.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, since I don't know anything about the structure of the API, I can't recommend creating LabVIEW wrappers around it. And because I know that most IVI-COM specific interfaces use a low-level, property-centric approach, I usually actively discourage creating wrapper VIs. The end user is going to have to explore the entire API to figure out how to put it together in an application. Fortunately, the LabVIEW Class Browser (under the View menu, and new in 8.0, I think), makes it somewhat easier to explore IVI-COM drivers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;On the other hand, if you have a well-designed API that has easy-to-use high-level functions, it makes sense to highlight those in the palette menus and lead users to them.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;More on API design in future posts.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-8996019966954561620?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/FSK1MIlyqeQDAhfPaFDjwxe3-eU/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/FSK1MIlyqeQDAhfPaFDjwxe3-eU/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/FSK1MIlyqeQDAhfPaFDjwxe3-eU/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/FSK1MIlyqeQDAhfPaFDjwxe3-eU/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-8996019966954561620</guid>
         <pubDate>Tue, 05 Dec 2006 10:05:00 -0800</pubDate>
      </item>
      <item>
         <title>Emulating Legacy Instruments</title>
         <link>http://feedproxy.google.com/~r/OpenMeasurements/~3/iafzOR3s_4U/emulating-legacy-instruments.html</link>
         <description>&lt;p&gt;This is a story of one of the projects we have in the lab. It's an experiment and proof of concept. At this point, we aren't committed to creating a product out of this idea. I'm interested in hearing comments you have about it. We presented a paper about it at AutoTestCon a couple of years ago, and I've demo'd the system to a few key customers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We have customers who have aging test systems, often based on discontinued GPIB instrumentation. There's often no money to update the overall system. Changing out hardware usually implies modifying the software. The software has often gone through some sort of validation process, so any change to the software can become extremely expensive since it would have to be revalidated.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If an instrument fails, the engineers can either hope for vast amounts of money to rebuild the entire test system with modern hardware, or they can try to repair or replace the old equipment. eBay has become a useful tool for finding old instrumentation.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So our experiment was to take a modern PXI-based measurement system, and make it pretend to be a GPIB instrument. The PXI controller listens for commands on its built-in GPIB interface. We wrote software that parses those commands and maps them to specific LabVIEW VIs running on the controller. Responses are sent back out the GPIB interface.&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;p&gt;I imposed a couple of requirements to make things interesting...&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The system had to be as generic as possible. I didn't want to encode any traits of a DMM or Scope or Spectrum Analyzer into the system. For this, we created an XML schema to define the commands that the system understands, as well as how those commands map to VI calls.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The system had to be extensible by end users using LabVIEW. We aren't making turnkey instrument replacements; we're making a framework for end users. This lets end users (or system integrators) control the fidelity of their emulation. This might range from deriving custom measurements, to slowing down measurements to more accurately emulate legacy instrumentation.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;We came up with an editor to map commands to VIs. With this editor, you don't have to edit the XML directly. Here's a screenshot showing the &lt;tt&gt;CURVe?&lt;/tt&gt; command for a scope...&lt;/p&gt;&lt;br /&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger2/5670/521703985686975/1600/mapping-editor.png&quot;/&gt;&lt;br /&gt;&lt;p&gt;When the system is running, the display shows a log of all the commands and responses... (Click to enlarge.)&lt;/p&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://photos1.blogger.com/blogger2/5670/521703985686975/1600/emulator-log.png&quot;&gt;&lt;img style=&quot;DISPLAY:block;MARGIN:0px auto 10px;CURSOR:hand;TEXT-ALIGN:center;&quot; alt=&quot;&quot; src=&quot;http://photos1.blogger.com/blogger2/5670/521703985686975/320/emulator-log.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;So where are we now? The system works. It's got some rough edges—mostly things that could be easier. As a proof of concept, our engineers did a wonderful job. It's pretty cool to watch this system in action. But, we're waiting for customers to tell us whether and how we should take the idea further.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The biggest piece of feedback so far is that customers wish it were more &quot;turnkey&quot;. It's one thing to emulate the command set of an aging instrument. It's another to faithfully emulate measurements. Our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ni.com/digitalmultimeters/&quot;&gt;PXI-4070 6 1/2 digit DMM&lt;/a&gt; is faster and more accurate than many older box-based 6 1/2 digit DMMs. But you usually would rather have equivalent accuracy, not more accuracy. A faster and more accurate measurement could be a problem in some test systems.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I also want to point out that more turnkey solutions are available. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.winsoft.com/&quot;&gt;WinSoft&lt;/a&gt; (a National Instruments Alliance Partner and Agilent Channel Partner) has a product called &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.winsoft.com/html/wise.html&quot;&gt;WinSoft Instrument System Emulator (WISE)&lt;/a&gt;. I do not have experience with their products, but I know they have years of real-world experience.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you've got thoughts on our instrument emulation project, please let me know.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4273799050747704870-8284806386124452857?l=openmeas.blogspot.com' alt=''/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/H7yMDwRnGla2i0UCfHIGRZvG-58/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/H7yMDwRnGla2i0UCfHIGRZvG-58/0/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feedads.g.doubleclick.net/~a/H7yMDwRnGla2i0UCfHIGRZvG-58/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/H7yMDwRnGla2i0UCfHIGRZvG-58/1/di&quot; border=&quot;0&quot; ismap&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <author>brianhpowell@gmail.com (Brian Powell)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4273799050747704870.post-8284806386124452857</guid>
         <pubDate>Mon, 30 Oct 2006 09:18:00 -0800</pubDate>
      </item>
   </channel>
</rss>
<!-- fe13.pipes.sp1.yahoo.com uncompressed/chunked Sat Nov 21 04:56:43 PST 2009 -->
