Birth of a Feature: The improbable story of VI Snippet

July 31, 2009

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’ve been working on better ways to empower users to share their code with other users – 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 – it’s a kind of currency for LabVIEW. 

We have a few challenges in enabling users to share code:

  1. LabVIEW is graphical, so you really need to see the block diagram to understand what techniques you want to learn more about
  2. Seeing the diagram ins’t enough – 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. 

With these seemingly insurmountable hurdles in the way, enter the Hogg – 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&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 – called a VI Snippet – 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á! – the actual LabVIEW code is there, ready to explore, edit, or run.   Check out the video below to see it in action:

Once Simon created his prototype, it was quickly dubbed internally as “the Hogg Feature” or “the Hogg” for short.  We’ve even taken it to its verb form – similar to “googling” or “xeroxing” something, when you distribute a VI Snippet, you are “hogging it.” 

Naturally, there was the small step of actually designing, implementing, and testing the feature in R&D to make it work in the product for real – but having a working prototype was a great influencer.  If one of our product managers can prototype the feature, then certainly our R&D guys can develop it. 

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 “hogging” some VIs posted by the c0mmunity of LabVIEW users in the near future.


What do you want to see in a roadmap?

July 29, 2009

I’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 – 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. 

My goals for a roadmap presentation are:

1. Show your loyal users that you are hearing them and understand their concerns, and share our plans to address these concerns

2. Explain our higher-level strategy and investment directions (for example, if you aren’t considering the benefits of using LV FPGA with our RIO architecture, you need to)

3. Recap where we are today – most users can’t keep up with everything we are doing

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)

5. Capture reactions to our plans, questions, and open issues from the customers at hand.

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.


Building Amazing User Interfaces with LabVIEW

July 9, 2009

Back in the good old days (a phrase some of our younger product managers are tired of hearing me say), our sales guys had it easy.  Simply open a blank VI, drop down a knob or toggle switch, make it move, and wait for the oohs and aahs (and orders).  The user interface – how you develop it and how it interacts with your programs – is and will continue to be a key differentiator for LabVIEW.  In recent years, as iPhone apps and other hot new devices have become the talk of the tech world, people have begun to expect that UIs should look sexy, with glossy controls and color schemes. We’ve heard the low, rumbling feedback about  how LabVIEW UI elements could use an update, and believe me, we’re working it. In the interim a few employees and LabVIEW users have formed the UI Interest Group   to share best practices and templates for building modern, eye-catching controls for LabVIEW.  There is actually a lot you can do to create your own custom controls that look very modern, unique, or conform to some specific design themes.  Check out some of their work: Advanced LabVIEW UI Controls

Creating your own custom controls is fairly simple. Each control is made up of several elements that you can replace with your own images. For example, a LabVIEW gauge is made up of the following objects:

Gauge Before

To create your custom control you just replace each object with your custom design:

Gauge After

Now it does take a good eye for design and a decent image editing tool to make these, and I don’t have either. If you’re in my boat, join the UI Interest Group to download the controls they’ve built and learn more about making your own.


Now Taking Suggestions on the LabVIEW Idea Exchange

June 1, 2009

You may have seen this new feature on our Web site already, but we just rolled out the LabVIEW Idea Exchange where you can suggest ideas for us to implement in LabVIEW and, more importantly, you and your fellow LabVIEW users can vote on the ideas that you think are most worthy.  We’ve tried suggestion boxes in the past, but this more public approach where we not only get new ideas but also get a better notion of the priority based on the collective wisdom of the crowd has a much better chance of driving impact. 

A little background – our LabVIEW R&D managers are also excited about this feature on our Web site as well.  With the breadth and complexity of the LabVIEW platform, we struggle at times making tradeoffs about feature development.  With tools like Idea Exchange, we aren’t necessarily looking for MORE ideas, but we see it as a much better process to prioritize and improve our hit ratio for new feature development.  At certain times in the development cycle, we hope to populate the Idea Exchange with our list of features planned for development in an effort to make some late-in-the-game adjustments as we go.  We will also try to comment on the ideas coming from the community periodically to give our position on them.

So bring on your ideas, but be prepared for your cohorts in the LabVIEW user community to weigh in with their own opinions.


Big Ideas Matter – Graphical Programming and TED

May 12, 2009

A friend of mine recently sent me a link to a TED talk by Scott McCloud called Understanding Comics.  Scott is an evangelist for comic books as a valid literary form.  In his talk, he discusses how the limitations of presenting comics in print as a storyline broken up by snapshots go away as we move to new media.  I don’t read comics, so that’s not my point.  What’s interesting is to see how his description of the possibilities for comics are very similar to the possibilities of using graphical diagrams to represent programming on an infinite canvas.  Even though we are worlds apart, the basic idea of questioning established methods and suggesting a different approach might be better makes us kindred spirits.

The other point I wanted to bring up is that TED is cool – TED stands for Technology, Entertainment, and Design.  It started as a conference in 1984, and has been growing ever since.  TED speakers are asked to give their life talk in 18 minutes.  TED talks come from a wide range of speakers and are inspirational and thought-provoking.   At times, I need to force myself to step away from the daily grind of new versions, feature planning, and your favorite support issue and look at the big picture.  Particularly times like now, when the economic meltdown is bombarding us with bad news (in between bouts of flu hysteria).  TED talks tend to be good examples of people talking about really big ideas and showing steps they are taking to get there – and many times, these steps are driven by technology involving IO, real-time processing, and advanced software – something we engineer-geeks can appreciate. 

We’ve often mused that representing timing in your program is a key concept that has to get more and more intuitive within LabVIEW.  As a graphical programming language, LabVIEW is our best shot to figure that out – kind of like how music scores are represented on paper.  Following this thought, there is another TED talk from Tod Mackover from the MIT Media Lab discussing how they are trying to extend musical expression to everyone.  They are big LabVIEW fans there (we’ve had Media Lab representatives give NIWeek keynotes in the past).  I am not sure if they are using LabVIEW in the software they show in this video, but its another example of an inspirational topic that combines art and cool software programs to make the world a better place.  You’ll see its core is built around Vision and advanced IO as well.

Take some time out and check out TED.  It will make you feel better about where we are going and hopefully take your mind of where we’ve been over the past 6 months.


What do you want to see at NIWeek?

May 5, 2009

We are deep in the planning stages of NIWeek. Rather than guess about what you might want to see, hear, and learn about at NIWeek, I thought I’d open up to the community. Personally, I have a number of specific things I would like to communicate at NIWeek – so I’ll ask for feedback on these ideas and then open the discussion to any new ideas as well:

1. Developer Conference – Because LabVIEW is reaching into so many applications now, NIWeek has shifted to be more application focused (RF/Wireless, Sound & Vibration, Robotics, etc). These application summits are great for people in those areas, but we may have taken the focus off of hardcore LabVIEW programming techniques and tactics. I want to get back to the deeply technical “LabVIEW Developer Conference” idea. With that in mind, what would you like to learn more about?

2. Roadmaps – We have big plans for LabVIEW, in a lot of different dimensions. Most of you are not aware of these plans. I think if you were, you would be excited and appreciate where we are going. I would like to share some of these plans with you at NIWeek (assuming I can fend off our legal and communications teams that wourld try to block me). One small example just went live on our website regarding our OS support plans. Let me know what specific questions you have about our future plans.

3. Extending/Plugging into LabVIEW – We are working on ways to open up LabVIEW for partners and customers to more easily integrate with the platform (to connect with other tools, share data, or create addon products). I hope to unveil some of our ideas on this topic at NIWeek.

Please comment with other ideas that you’d like to see more about at NIWeek.


New OS Roadmap Now Live

May 1, 2009

In an effort to be more clear about our support policies and our future plans for OS support, we recently published two documents on ni.com:

OS Support Plans – Our plans for ongoing support on different OSes. Our goal is to review and update this every six months, and provide at least 2 years before we end support for a given OS. “Support” in this case means continuing to add features and testing the development environment on that version of the OS. Applications written in LV will obviously run on these OSes for many years after.

LabVIEW Support Lifecycle Roadmap – This document clarifies how we’ve been operating for many years, describing how long you can expect to get phone support, new hardware support, and maintenance updates for your version of LabVIEW.

I am sure this might bring up more questions for some of you.  However, as stated earlier, this does not represent a new policy or strategy on our part – it is simply communicating how we’ve been operating for many years in a more clear, direct way.  Feel free to reply if anything is confusing to you.


LabVIEW Testing Part 2 – Reliability Lab

April 25, 2009

In our second video interview installment about how we test LabVIEW and our driver software, Byron Radle takes us through our internal Reliability Lab.  When you watch it, the background noise is coming from 20 fully-loaded PXI chassis and 40 fully-loaded CompactRIO systems all running at once in our lab – raw (loud) power!  You can tell from the freeze frame below that Byron is excited about this lab. 


 

Once again, if you can think of specific scenarios that we need to add to our testing matrix, please respond.


The LabVIEW Beta is Back

April 23, 2009

This year, we decided to beef up the LabVIEW beta program with more users and more involvement.  For those of you who were not aware, we are now in beta 2 for LabVIEW Orion – you can register for the program here.  (Even though we operate using cool project code names like “Saturn” and “Orion”, every year R&D lets the cat out of the bag when the beta goes out.  Apparently the feature that has the longest lead time and must be nailed down first is changing the version from the code name to a number.  When you sign up for the beta this year, you want to look for “LabVIEW 2009″).

We are also getting more hands on with our beta users.  Rather than just have you download the beta version and figure things out on your own, we have recorded some videos showing the new features so you can get a quick overview of what we’ve added.  We also have a beta forum where you can ask questions or comment on the new features – each feature area has a dedicated forum thread where they are discussed directly with the developers of that feature.

Even if you are not interested in banging on the new features in the beta, we recommend you download the new version and load up your current application to see if it runs.  We’ve been focusing more on making the upgrade process more smooth over the past few years, hopefully you’ll be pleasantly surprised.

With our elevated focus on the beta this year, we’ve increased the number of beta users this year by more than 40%.


LabVIEW on Television

April 20, 2009

For years, we have periodically been excited and surprised about our products showing up on TV shows.  However, recently it seems to be a happening more often.  For your viewing pleasure, go check out LabVIEW on the small screen:

  • CBS 60 Minutes ran a story last night entitled “Cold Fusion is Hot Again” in which researcher Michael McKubre makes the case for a bright future involving cold fusion.  You will notice a bunch of LabVIEW measurement and control applications shown during the interview.
  • Spike TV has a new show called the Deadliest Warrior in which the pit two famous warriors against each other and try to measure which one is the deadliest.  They are using DIAdem extensively to analyze the measurement results to determine the deadliest.  It’s a cool show with lots of gory details attempting to simulate real-life impact of these deadly weapons (in one episode, they attempt to slice through 4 huge pigs with one fell swoop of a samarai sword – the pigs simulating humans.  I’ll let you watch the episode to see how far they get).l
  • And finally, one of my kids’ favorites is Discovery Channel’s MythBusters.  In an upcoming episode, the MythBusters team uses LabVIEW to control and measure one of the experiments – I’ll have to update this link once the episode goes live.