Jump to content

Jim Kring

Members
  • Posts

    3,905
  • Joined

  • Last visited

  • Days Won

    34

Posts posted by Jim Kring

  1. 4 hours ago, Michael Aivaliotis said:

    I'm glad to hear that you are welcoming to this. I think this initiative and the positive response shows that the community is willing to take on some of these tasks and responsibilities as long as there's an open and inclusive process in place.

    As a starter, it would be great to revive the openg.org domain which has been dead for many years and at least point it to the LAVA OpenG root forums,. That's where it was pointing to before as indicated by this post. In the future, it could point to a GitHub landing page.

    I'll try not to repeat myself too much here, since I've already posted a response here. I do welcome participation in making OpenG better and the current repositories are open to issues/pull-requests/etc. I'm not in favor of a new GitHub repository at this moment, since there are several things I've had on the roadmap, including fixing the website issues.

  2. I'm still confused by all this, Michael.

    You created a fork of OpenG on GCentral without their permission and so they asked you to remove it?  And, now, you've created a new "dedicated OpenG organization" on GitHub?

    It seems like this is just moving/stiring lots of things around and nobody who has a vested interest in the ramifications of those actions, is being consulted about it, first.

    If the aim is to promote better code and collaboration in OpenG, then what would help is to contribute/propose some ideas, especially around processes and structure for contribution.

    A haphazard approach won't work well for building community -- simply creating new GitHub pages/repos and starting forum discussions about forking OpenG will only create confusion.

    That all said, I'm happy to have your participation and enthusiasm in making OpenG better.  There are several efforts on the roadmap for OpenG, and we can certainly use some helpful participation.

  3. Hi All.

    The OpenG wiki had several technical problems, so we dropped it -- I agree that we need a new landing page for OpenG with information and docs (and we can redirect old links).

    I've been working with others over the past several years maintaining the OpenG packages on GitHub (e.g. OpenG-Variant-Configuration-File-Library), providing bug-fixes and upgrading the OpenG libraries to NXG (despite the fact nobody was really using NXG for real work -- that'll be changing the the next couple years).

    I'm aware that people are becoming very interested in collaborating more on OpenG, especially with the enthusiasm around the upcoming LabVIEW Community Edition release (I am super excited about LV Community Edition, too). I'm really happy to see this renewed interest in LabVIEW and OpenG, since I've been doing a lot of the maintenance work, myself, and would love more participation in both development/testing and documentation/examples.

    LAVA isn't generally the best way to reach me, but I'm available at jim.kring@jki.net or @jimkring.

  4. On 10/3/2019 at 1:23 AM, Michael Aivaliotis said:

    I've exported the OpenG sources from Sourceforge SVN to Github.

    I'm hoping this will encourage collaboration and modernization of the OpenG project. Pull requests are a thing with Git, so contributions can be encouraged and actually used instead of dying on the vine.

     

     

    Michael, can you clarify this?

    Most of the key OpenG libraries have been migrated to GitHub over the last couple of years (e.g. OpenG-Variant-Configuration-File-Library), and there has already been a lot of work done to migrate OpenG to NXG.

    Is the intent to fork the OpenG libraries?

    Thanks,

    -Jim

  5. Has anyone noticed that if a window (A) has no titlebar AND (B) is resizable, then it will have a white stripe at the top of it? (see screenshot below, and note that the big titlebar is not actually a titlebar, but a styled button, and the actual titlebar is hidden)

    Has anyone figured out how to get rid of this white strip (perhaps with Windows API calls)? I know I can get it to go away if I make the window NOT resizable, but I don't want that -- I need to be able to resize.

    image.png.bd936c04d46ca3e76353ea97f548c1b0.png

    I've done a little googling and the only thing I can really find how to set up WPF properties for the windows, and I can't seem to find any magic user32.dll calls or anything like that.

    Here's an example: white strip at top of window.vi

    Thanks for any help or ideas.

     

    • Thanks 1
  6. I'm looking for a way to change a visible state of a Case Structure, and (A) not have this show up in the Undo Transaction history and also (B) not wipe out the undo history. Right now, if I don't create an undo transaction (and simply call the scripting function) for the visible frame change, then it wipes out the entire undo transaction history :-(

    Since a user can click on a Case Structure in the IDE to change the visible frames of a Case Structure and it doesn't show up as an Undo-able action, I would assume that I should be able to call the corresponding scripting function to change the visible frame of the Case Structure and have it not wipe out the undo history.

    Note: From reading this post by Darren it seems that many/some of the scripting functions will wipe out the undo history if they are not wrapped in an undo transaction. I'm not sure why setting the VisibleFrame property would do this since it's not actually change the code.

  7. I'm trying to read the icon of an xnode by reading the NI.Lib.Icon property, which is encoded zipped binary data of the image.

    This code generally works for reading any LVLib icon (note dependency on OpenG Zip Library).

    Get Library Icon.png

    I've noticed that for many XNodes, the icon data looks very weird, almost scrunched up. Any ideas why this would be the case?

    2017-01-20_09-56-02.png

    2017-01-20_09-54-17.png

    And others look fine:

    2017-01-20_09-55-05.png 

    2017-01-20_09-58-07.png

  8. I'm curious about the best practices and caveats others have discovered related to using LabVIEW's built-in installer builder for distributing apps efficiently.

    Note: I saw an old post by crelf here where there was some discussion of approach #1, below, and a follow up by Tonn Plomp about that mentioned the problem I've sited below.

    Problem

    Application installers that include dependencies (e.g. LabVIEW Run-Time Engine, IMAQdx, DAQmx, VISA, etc.) can be quite large. When users are upgrading to new versions of your application, it would be nice if they could just download the new application, and not have to download the dependencies, if they have not changed.

    Solution (over-simplified)

    Separate the installation of the application from the dependencies, and manage this all somehow.

    More details on approaches...

    = Approach #1 / Have two installers: "Full" (App + Dependencies) & "Upgrade" (App only)  =

    How: Copy the installer rules and delete the dependencies. Call this the "Lite" or "Upgrade" installer.

    Problem: The full installer and lite installer will likely have different product guids (component codes / installer IDs), so Windows will treat them as two different applications. And, since they are installing your application into the same location, there will be a conflict. The installer will not actually uninstall the old files first (maybe, or other bad things will happen that we can't predict).

    = Approach #2 / Have two installers: "Application" & "Dependencies" =

    How: Create an installer that includes the application and the dependencies. Then, make a copy of this and remove the app, so that only dependencies are installed -- call this "Dependencies". In the original installer build spec remove the dependencies -- call this "Application"

    Problem 1: The first time the software is installed, the user has to install two separate things: Dependencies and then Application.

    • Solution: In the "Dependencies" installer, include the installer for Application as additional support files, as well as a batch file that gets called as a post build spec to install the Application, after the Dependencies get installed.
      • Bonus: call this installer "Full Install" since it now includes the Dependencies AND the Application -- but, note that it's structurally different than the Full version in Approach #1, above.

    Problem 2: What happens when the dependencies for your application change? (e.g. if it requires a new version of the run-time engine or if you start using some other LabVIEW feature that requires an additional support installer)

    • Solution: Use some kind of versioning scheme where users understand that major releases of the Application will require upgrading the "Dependencies" installer to the same major version, too.  

    = Approach #3 / Use a package manager with dynamic download and dependency management capabilities =

    OK, we know this is the best solution, but let's explore what folks are doing with the above two approaches, for now...

     

    Looking forward to hearing what people are doing and what your thoughts are on these approaches I've outlined.

  9. Thanks for the info, everyone!

     

    My takeaways are:

     

    - NI is eating its own dogfood and using this feature internally to a very great extent (I'll see if I can verify this and learn more).

     

    - For projects that do not have multiple targets (e.g. Windows desktop only, and no Real-Time targets in the same project) this seems to work very well in 2013 and 2014 (but, there were lots of problems in 2012 and earlier)

     

    - For simple projects that have multiple targets (e.g. Desktop and Real-Time targets in the same project) this seems to cause issues ("small hiccups" and "odd things") that can usually be resolved by clearing the object cache.

     

    - For larger and more complicated projects with multiple deployment targets there can be (A) deployment errors when running in interactive mode on remote target, as well as (B) build problems. Unfortunately, forcing recompile and clearing the object cache doesn't always work to resolve the issues. For some users, this is too big of a pain and they have abandoned the use of Separate Compiled Code from Source on these projects.

     

    Did I get that right?

     

    Anyone else have good/bad experiences or input to the topic?

     

    Thanks,

  10. Back in the early days of LabVIEW, the Separate Compiled Code From Source feature had a lot of quirks (and we discussed them in this old thread). I'm wondering what are people's current feelings and practical experiences with this useful feature. Do you trust it (e.g. to not corrupt your code)? What are the current issues/quirks (e.g. occasional broken VIs)? How do you work around them (e.g. object cache flushing)?

     

    Thanks for sharing. I'm working to put together a set of best practices for using this feature and I'd like to know everyone's... well... best practices :)

    • Like 1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.