Articles by Jim Kring

You are currently browsing Jim Kring’s articles.

One of the downsides of using splitter bars (panes) is that, even when a VI’s main window is resizable, if you hide the scroll-bars of the bottom-right pane, the resize window image (Resize Handle) goes away (as shown below).

Hide Scrollbars Hides Resize Scrollbars Hidden

Sometimes, you might want to keep the resize window handle, such as cases where you use panes to create a status bar at the bottom of the window, as we do with VIPM (shown below).

VIPM Window

While there’s no obvious way to do this in LabVIEW, you can use an image decoration (an image of the resize window handle) to achieve the effect.

To see an example, download this VI (LabVIEW 8.2 or greater): Show Resize Window.vi (zipped)

Show Resize Handle

Tags:

In my last article, I talked about one of the major new features in VIPM 3.0: the ability to manage your own VI Package Repository.  Repository management is critical to JKI because we have one of the largest reusable LabVIEW code libraries in the world (hundreds of packages, thousands of VIs), and it’s all managed using VIPM.  That’s what we mean when we talk about eating our own dogfood.

Having the world’s largest VI Package repository means that we can identify scaling problems before they start to affect our customers.  That’s why we identified some key bottlenecks when using VIPM to manage large repositories, and fixed them in VIPM 3.0.  The result is that VIPM 3.0 is faster than VIPM 2.0, especially when dealing with large numbers of packages.  Here are a few of the benefits you’ll see as a VIPM user:

Faster initial setup time for new VIPM users

In VIPM 2.0, you might have noticed that it could take several minutes for VIPM to download information from the VI Package Network about all the packages available.  Now, in VIPM 3.0, we’ve implemented lazy downloading of package information (see the lazy acquisition design pattern [PDF] for more info), which means that VIPM downloads only the information it needs, right when it needs it.

Faster “Check Network for Package Updates”

Another effect of the lazy downloading of packages (described above) is a faster check for package updates.

Faster Installation and use of VI Packages and VI Package Configurations

We’ve optimized the zipping and unzipping of VI Packages and VI Package Configurations.  We found some areas where we were using high-level OpenG Zip Tools functions, but there were more optimal ways to use some of the lower-level functions.  This means that saving and loading of VI Packages & VI Package Configurations is now a lot faster.  You’ll notice a big difference especially when working with large VIPC files.

Faster Package Search and Column Sorting

We noticed that when there were a lot of packages in VIPM’s package list, the search and column sorting got a little slow.  So, we took a close look and found some ways to optimize this.  This wasn’t rocket science; VIPM mostly just caches certain data now, rather than recalculating it every time the search/sort operation is performed.  The result is that searching your package list for the package you want will be more responsive with larger numbers of packages in your library.

We hope you find VIPM 3.0’s performance to be better than ever.  If you haven’t downloaded it already, what are you waiting for?  Get it now!

And, stay tuned for more articles about “What’s new in VIPM 3.0?

Tags:

JKI has just released VIPM 3.0, and there are some great new features that I’d like to share with you.  So, I’m going to be blogging about them in a series called “What’s new in VIPM 3.0?”  (of course, you can check out the release notes for a quick overview).

One of the most important new features in VIPM 3.0 is the ability to create and manage your own VI Package Repository using VIPM Enterprise.  Now you can find, download, and install VI Packages of your team’s reusable code from a VI Package Repository located on your corporate network or the Internet.  Your developers will be able to install and use your VI Packages just as easily as they install and use packages from OpenG or JKI Software!

VIPM Enterprise Reuse System

How Does It Work?

Sharing VI Packages with VIPM Enterprise is easy.  VIPM provides a Repository Manager window that lets you create a VI Package Repository on any standard file or web server.  Using the Repository Manager window, you can see what’s in your repository, add or remove packages from the repository, and manage users’ access to the repository.  To publish a package, just drag & drop a package file from Windows Explorer into the Repository Manager window.

Publish a VI Package

Once the VI Package has been published to your VI Package Repository, VIPM users on your team will get a message from VIPM, telling them that the new package is available for download and installation into LabVIEW.

New Packages

VIPM is so “Web 2.0″

As an added bonus, VIPM allows you to publish an RSS feed of your package releases, so your team can also receive notifications of package releases in any RSS reader (Outlook, Google Reader, Thunderbird, etc.).  Now go tweet your coworkers, telling them that your LabVIEW code reuse system is Web 2.0 compatible! :)

RSS Feed

But that’s not all!  VIPM 3.0 includes other cool features, like:

  • User Management — VIPM lets you control which users are authorized to access your VI Package Repository.
  • VI Package Deprecation — VIPM lets you hide outdated packages from your users to discourage their use.
  • VI Package Validation — VIPM calculates a cryptographic hash for every package, which allows users to verify that they have the official released version of a package for traceability purposes.
  • much more…

I’ll be going over these features (and other VIPM 3.0 features) in future articles, so stay tuned.

If you haven’t downloaded VIPM 3.0 already, what are you waiting for?  Get it now!

Tags:

We’ve created a new video (below) for the VIPM product homepage to help explain the features and concepts behind VIPM, including the Professional and Enterprise (coming soon) editions of the product.  We’re really happy with how it came out and hope you like it, too.

Tags: ,

It goes without saying that VI Package Manager is JKI’s tool of choice for managing our reusable code and library dependencies in LabVIEW.  But even though VIPM makes it easy to build your own packages, it’s still kind of hard to share those packages among your team members.

That’s why the next release, which we’re calling VIPM Enterprise Edition, is going to focus on features that will enable a team of LabVIEW developers to share packages easily.

Here’s a sneak peak at the VI Package Repository Manager

Note: Please, keep in mind that this is under active development and might change significantly before release.

Toolbar button for opening the Repository Manager

A new toolbar button opens the VI Package Repository Manager window

VI Package Repository Manager window

Managing the repository in the new VI Package Repository Manager window

VIPM Enterprise Edition will enable you to:

  • Publish VI Packages to your team
  • Manage an Enterprise VI Package Repository
    • Release packages (so they will automatically appear in your team’s package list)
    • Deprecate old packages (so obsolete packages will no longer appear in your team’s package list)
    • Control client access (so only the people you want to have access will have access)
  • Make OpenG packages available to a team on on a restricted internal network (networks with no Internet access, due to firewalls or proxies)
  • and much more…

In the coming weeks, we’ll be doing a series of articles about VIPM Enterprise Edition.  We’ll start by taking a brief look at the big pieces of VIPM Enterprise Edition.

VIPM Enterprise System Components

VIPM Enterprise Edition will consist of three main parts:

1. VI Package Repository – a collection of VI Packages (and other related information) that will be accessible over a corporate network or the Internet

2. VIPM Clients – VIPM (Community, Professional, or Enterprise) installations that will access the VI Package Repository (e.g. over the network), in order to download VI Packages

3. VI Package Repository Manager – a special window in VI Package Manager Enterprise Edition that allows you to create/manage your VI Package Repository and the packages it contains

More Articles on the Way…

We’re working hard on VIPM Enterprise Edition, and will have more to say as time goes on.  Soon, we’ll be posting articles about other VIPM Enterprise concepts, such as:

  • Package Deprecation – for marking packages as obsolete
  • Package MD5 Checksums – for ensuring that you’re using “official” versions of packages
  • and more…

JKI is pleased to announce the release of the new Wire-Nut Toolkit for LabVIEW,  a revolutionary new addition to the LabVIEW dataflow programming language, available now!

A Tool You Never Knew You Needed

The JKI Wire-Nut Toolkit for LabVIEW is a collection of dataflow Wire-Nuts that you can use to terminate wires in many different ways.

With the JKI Wire-Nut Toolkit, you never have to leave another output terminal unwired!

Wire Nut Example

The JKI Wire-Nut Toolkit Will Improve Your Code

Here are just a few of the innovative features of the JKI Wire-Nut:

  • Eliminates memory leaks caused by data flowing out of exposed wire ends!
  • Helps keep abstractions from leaking out of LVOOP wires!
  • Protects your coworkers from the shock of finding unwired terminals in your application!
  • Works with all LabVIEW wire gauges, from the tiniest booleans to the largest super-clusters!
  • Never wears out!  Disconnect and reconnect hundreds of trillions of times!
  • Unit tested with VI Tester!
  • Works with your existing LabVIEW wiring tools, like Connect Wire, Probe Data, and Set/Clear Breakpoint!
  • Multiple colors for easy identification!
  • Supersedes JKI Electrical Tape!
  • Safe for use by children and pets!

Act Now!  Download and Install the JKI Wire-Nut Toolkit!

The JKI Wire-Nut Toolkit is available as a VI Package.  If you already have VI Package Manager, just download the JKI Wire-Nut Toolkit here:

Downloadjki_lib_wire_nut-1.0.0-1.vip

After you’ve downloaded the package, double-click the .vip file and VI Package Manager will guide you through the installation process.

How To Get VI Package Manager

If you’re not already a VI Package Manager user, what are you waiting for?  VI Package Manager lets you take control of your reusable VIs, and is also the best way to put all the great tools from JKI Labs, OpenG.org, and the whole VI Package Network into your palettes!

Join The Discussion

What will you do with the JKI Wire-Nut Toolkit?  Will it save your project?  Your job?  Your life? Tell us in the comments below! (Also, there’s a lively discussion at LAVA, too.)

Wire-Nut is a registered trademark of Ideal Industries.  LabVIEW is a registered trademark of National Instruments.

Have you ever set a reentrant VI to non-reentrant in order to facilitate debugging, only to forget to set the VI back to reentrant when you’re done?  This mistake can be very tough to debug, as the difference in behavior (between reentrancy and non-reentrancy) can be very subtle.  The same is true for other VI Settings (e.g. the subroutine Execution Priority setting).  The point is, during development you may change some VI Properties in ways that make sense for debugging, but will cause bugs in your application if left that way.  Forgetting to reset them to their correct values can cause huge headaches when your software is delivered (or worse, long after it’s delivered).

How can you ensure that important VI Settings are correct for specific VIs, prior to deployment?

That’s easy, just create a unit test (using VI Tester) that validates the required setting, as shown below:

Unit Test for Required Reentrancy

Unit Test for Required Reentrancy

The VI that performs the reentrancy check, passIfReentrant.vi (shown below), is one that you probably haven’t seen before, since it’s not delivered as part of VI Tester.

passIfReentrant.vi

passIfReentrant.vi

If we look at the block diagram, shown below, we’ll see that it’s not very complicated:

passIfReentrant.vi Block Diagram

passIfReentrant.vi Block Diagram

This VI simply checks the reentrancy and outputs a descriptive test failure message explaining the details of the failure.  When we run our unit tests, prior to building and deploying our application, VI Tester catches the problem and shows us exactly where to look.

VI Tester showing failure

VI Tester showing failure

If you’d like to add reentrancy tests to your LabVIEW application’s unit test suite, you can download passIfReentrant.vi here:

If you have ideas for other common, reusable VI Settings (or other) tests, please share your ideas by leaving us a comment below.

How to get VI Tester

VI Tester is available on the VI Package Network. If you’re already a VI Package Manager user, just click the “Check the VI Package Network for Available Packages” button in the VIPM window. VIPM will notify you that VI Tester is available, and you can simply tell VIPM to download & install it for you.

check-network-for-pkgs

Check the VI Package Network for Available Packages

If you’re not already a VI Package Manager user, what are you waiting for? VI Package Manager lets you take control of your reusable VIs, and is also the best way to put all the great tools from JKI Labs, OpenG.org, and the whole VI Package Network into your palettes!

For more information about VI Tester, visit jkisoft.com/vi-tester.

It is now possible to upload VI Packages (and other VIPM file types) to the NI forums.

VI Packages are a great way to share your reusable VIs with other LabVIEW developers, allowing you to get your reusable LabVIEW VIs into the palettes, organized the way you want, in just minutes.

NI has helped make sharing reusable VIs even easier by allowing packages to be attached to forum posts – Thanks, NI!

In the last couple weeks, we have received several support inquiries from people who can’t get VIPM to connect to LabVIEW 8.6.1 (immediately after upgrading from 8.6).

In each case the user’s “VI Server: Exported VIs” settings (in the Tools>>Options dialog) had been changed, somehow.

This setting should have a value of “*” set to “Allow access”, as shown below:

configure_exported_vis

We’ve created a special FAQ entry for this issue, here:

We’re not really sure why this is happening and it doesn’t seem to happen to everyone — it appears to be something in the LabVIEW 8.6.1 installer.  We’ll keep looking into it.

Meanwhile, if you’re having trouble getting VIPM to work with LabVIEW 8.6.1, please let us know in our forums.

Recently, National Instruments has been vocal about wanting to provide better support for third-party LabVIEW add-ons.  A huge demonstration of this commitment, recently, was allowing JKI to integrate VI Tester into the LabVIEW project environment.  In fact, it might seem surprising or even foolish for NI to do this, considering that it just released a competing product, the NI LabVIEW Unit Test Framework Toolkit.  But, if you look deeper, you’ll see that NI’s support of a competing third-party add-on for LabVIEW is a very smart, mature, and strategic move.

For a long time, I have had concerns about whether NI would be able to nurture a viable market and ecosystem for third-party add-ons for LabVIEW, because of the fact that NI sells its own add-ons for LabVIEW.  This creates a huge, short-term incentive for NI to compete directly against third-parties (like JKI).

But also, NI has a huge incentive to encourage third parties to innovate on its platform.  The more tools and solutions that exist on the LabVIEW platform to help users efficiently create working systems, the better it is for NI.  If NI were to compete aggressively against third-party LabVIEW add-on providers, it would starve the ecosystem and send third-parties running for the hills.  Small companies simply cannot compete against NI head-to-head.

At JKI, we are very excited about LabVIEW becoming an even more powerful, open platform for 3rd party tools.   As you might know, we love to create toolkits for LabVIEW, and our flagship product, VI Package Manager, is a powerful tool for packaging, distributing, and installing add-ons for LabVIEW.  We hope that NI continues to open up LabVIEW and we’ll try hard to provide them with both our feedback and support.  And, of course we’ll work hard to create more great add-ons for LabVIEW.

« Older entries