Jump to content

Black Pearl

  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by Black Pearl

  1. I would like to see an error handling for multiloop architectures with a dedicated error handling loop. The overall idea is presented in the 'LabVIEW Style book' by P. Blume. But there are no details on the error handling specifically.

    One really important thing is how to report errors to users. Using the normal error dialog works nice for me, but users click it away most of the time and then give me a call 'your software is not working'. This is more about psychology than SE.


  2. My planning before the posts about of NDA and such stuff was joking around:

    That's the newly recruited service staff of NI, which are here to get the answers they should give on the offical forum... (o.k., they arn't that bad, but sometimes...)


  3. Actually, it is the default selector value (I just recently made this account). Furthermore, it is fun to assign oneself a Version that does not officially exist.


    Edit: It make sense to have it listed, as those persons woul be able to read 8.6 code, though they propably need to post in the version they have as non-beta license. So you could spare yourself a downgrade to something like 7.1 (I heared that downgrading is easily possible inside the 8.x familiy.

  4. QUOTE (jgcode @ May 13 2009, 08:10 AM)

    Dude I don't even think its out yet.

    Major release are done at NI WEEK.

    This is a major release.

    The only place I have seen its name is on Darren's Blog.

    Unless I, like you, have been left behind!! :o

    People were invited to apply for the beta testing on NI forum.


  5. QUOTE (Darren @ May 11 2009, 09:41 PM)

    I don't consider it a blind spot. My http://forums.ni.com/ni/board/message?board.id=170&thread.id=380412' target="_blank">favorite feature of LabVIEW 8.5 was the For Loop with Break. I've probably used it hundreds, if not thousands, of times in code I've written in the past 2 years. And the few times I've needed the index of the For Loop when it stopped, I just used the iteration count within the loop. If I ever needed to know how many times the loop ran, I would just drop an increment in the loop and wire it to the iteration count. I never would have considered it a shortcoming of the For Loop that I had to do this.


    Ah, yes, that works perfectly. 0 iterations, defaults to 0. 1 iteration is 0+1=1.


  6. Just to add, in 7.1 we have external nodes, not XNodes. External nodes are said to be even more problematic than XNodes and will not be supported by some version of LV (I don't know if it is already discontinued or when it might happen). This prevented me from looking deeper into that issue, as I have some ideas to use them. But having 'rusty nails' code that breaks and no one except you has any clue on how this was done, I think of it as a really bad idea.

    On the other hand, in the informal documentation on external Nodes, there is a merge error VI, with the same behaviour as the build array function. So if you really, really want to do it, this way already was gone once...

    But again, be warned to explore those fields. You'll be a lone wolf on death march and no one will come to rescue you if you're lost in the mystical woods of intangible wires.


  7. QUOTE (Justin Goeres @ May 8 2009, 02:40 PM)

    I agree that it's sort of counterintuitive at first, but what would you expect the result to be instead? Even though the For Loop executes zero times, there has to be a data value on the I wire coming out -- that's the nature of dataflow. In this case, what's happening is that wire is taking the default value of its datatype (I32), and that value is 0.

    Not correct, as the 0 isn't coming out of the I when the loop executes 0 times, the tunnel is giving the default value of 0, which is the same as the I terminal output on first execution.

    My only 'wish' would be, that executing a loop 0 times would resulat in a different value as executiong it 1 time (be it -1 as default value or start counting at 1). But I'm sure it won't be implemented, as it would certainly break a lot of existing code.

    To push that point a bit further, I think that for loops of iteration 0 are potential troublemakers. If you don't use a shift register, you might end up with default data instead of the real data (happend once to me with a reference). It is neigther issueing a broken error nor throwing an error 'by wire', and can't be figured out after the loop has executed (actually not executed).

    Another thing is, that the while loop isn't called 'repeat until' loop. In the text based languages I know, the difference is that the stop condition is evaluated before (unlike in LV) loop execution on a while statement. You can't run into that issue in LV-while loops (repeat until statements).

    To summarize: you will seldom step on that trap so don't learn it by painful experience and difficutl to debug (and we all fear race conditions, don't we, and that's just because they are difficult to debug, ever had a 'Heisenbug'?).

    One way to avoid that issue would be to have a required error in/out terminal on the for loops (with shift register behaviour) and an optional terminal 'allowed to execute 0 times'. But that would make such a basic concept a bit too feature-rich for standard users.


  8. QUOTE (jdunham @ May 7 2009, 08:19 AM)

    You may be right that you don't need to build your labview nightly, since it compiles all the time. But the underlying tenet is that you try to make sure your code (at least the trunk version) is nearly always in a state where it could be released, perhaps with many features missing, rather than getting into a pit where it is broken for weeks at a time. On our project we build an EXE, so we do have a nightly process to build it if there have been any SVN checkins. Ideally you will have automated tests running against the nightly version while you sleep. (Still working on that!)

    Can you hint me how to automate these nightly builds (and tests).

    And furthermore, isn't that an option to just buy one single license ($$) of the application builder for the whole team, as only the developer 'responsible' for the nightly builds will need to install it?

    @Joe Z: I'm mainly searching for software/tools, as we are settings up a network based development enviornment. Later on it will be moved in the grip of the IT-gods. But for now we are free to experiment around and and choose the software.

    The books are meant to get some ideas of what we might need and for what purposes we could use the tools.

    And I found a nice new wave for surfing the web, as book sometimes link to blogs covering similar topics...


  9. Thanks for all that info so far, feel free to add more...

    One question:

    QUOTE (Dan DeFriese @ May 7 2009, 03:08 PM)

    Though, I assume you meant requirements specification. Nobody, will ever hand you a complete set of requirements. You'll have to dig for them...then YOU put them in writing and review with the customer. Yes, things will change...but any changes after the initial commitment should be tracked using a defect tracking tool:

    Do I read correctly between the lines, that these tracking tools go further than just bug fixing?


  10. QUOTE (PaulG. @ May 6 2009, 09:19 PM)

    The VI Analyzer? I don't know about that but I don't know how you can be invisible to the View>VI Hierarchy window.

    I havn't tested, but if you can mimik the VI that passes all VI references (by loading a vi with the same name in the same context/namespace before the user launches the analyzer), and then you can filter. Just name the original file something else, and you don't loose the original functionality. Including it in your distribution will be illagal, but you can load a copy into memory, rename it, and discard it when done.

    As said, I can't promis that it works. I hav tried (unsucessfully) to hack the 'New...' dialog to get access to control templates (*.ctt) there, but they used a reference to a tree control (only way to deal with trees, so no intention I guess), otherwise I would just have renamed the original Vi and addded the ctt.*'s to the dialog.


  11. Ok, now it's more going to be fun in hacking than real work (*).

    Some more specs on that point:

    - No SubVis, because it is the absolute easy hacker's trick to exploit the SubVi boundary in pre LV8 code. The Inlining VI (with some messing up and removing documentation) is already done, but not polished yet.

    - I want to inform the (informed) developer (via placed icon) that security Vi is in place.

    Furthermore, I'm pretty sure I can even fool VI analyzer, just by using the boundary trick and loading a Filter VI of the same name in the Analyzer context, that just skips the VI where that code resides.

    * So why I would say it's more on the fun side now, is that the skills you need to hack that would easily allow you to write the code on your own in less time.


  12. QUOTE (i2dx @ Oct 1 2006, 09:26 AM)

    I don't use gmail, too - just because of the reason that I'm paranoid and do not want my personal information stored on the servers of a company which is famous for collecting information and make them availiable for everyone!?

    or FreeBSD on a PDA :)

    Nested Virtual machines on a computer cluster. So you have a dedicated sandbox for each beta testing software... Of course you should back up the feed by some SCC repository running as beta on a VM ...

    Ok, we are nerds, aren't we?

    I actually never tried LAVA with scotch and cigar, I prefer wine or beer and electronic beats... (Would be a nice poll to go for: whoch drinks do you like to be served with lava: Coffee/caffeine, Scotch/Alcohol, LAVA is addictive enough).


  13. Here the idea:

    Code is placed inside structure (sequence or other); auto grow of; sized to Icon size

    VI is placed on top of structure to hide the code

    Both are grouped or locked, so moving the Vi don't reveal the code below.

    Problem 1:

    I can't size any structure small enough to fit behind a standard icon. Not even with private properties.

    Workaround: Place it behind an express VI (ha, finally found out what they are good for!).

    Problem 2:

    I can't lock or group the elements. A private property (write only) exists, though.

    I don't want to dig into (use) external nodes (I use LV 7!), because of upward compatibility issues. But they hide behind icons (though unlocking with the ini keys shows larger sequences). Even more, they are protected from resizing and grouped with the loop (using private properties I see the timed loop having to structures beside, can't resize these with private properties though).

    Any ideas?


  14. Thanks, keep the posts comin'. I'm still missing the big guys....

    As a general note: we as developers are pretty much free to go with any method we like, so to say I don't need a book to convince management to any method. But on the other hand, this means we software engineers will have to negotiate a 'common practice' among ourselfes. Always implying that someone isn't ok with it and any method will not be followed literally/in detail (one of the reasons to go with agile instead of formal methods).

    So I really need a book that is written for engineers that do a lot of LV programming (and maybe never have heard of OOP!).

    Any of us is in charge of some projects and pulling others in on demand for support, and the unifying conceopt is best described by 'autonomy'.

    Books in general: Give some more review please. It is a good starting point to look for readers reviews and the authors blog, but I would like a LV'er statement on the books (otherwise I could just hit a amazon search, and other forum users will benefit as well...).

    @Several Posters: OpenG and SVN rocks!

    @Chris Davis: VIPM: Community or Pro? If Pro isn't an option, can we go with SVN for that?

    @Paul: Enterprise Architect looks good. Any experience to share about uml and LV (propably we'd go for a new thread for this, but I'm eager on that one)? I'll sign up for a trial as time will permit.

    To go further: After some reading, I see that there are several ways to 'do agile developement'. Can you share any experience of which concepts work well with LV and which don't? (so I don't see any reason to do 'nightly builts').


  15. I'm looking into some general aspects of software developement 'best practices'. So I would like to get some recommendations on books covering that topic which are useful for LV developers. We are already 'fluent' in LV, so we don't need (or have already) books on LV. But having pictures/drawings would be gentle for our minds and having cryptic C# class hierarchies would bore us to death.

    We don't have any formal method yet for our design process. A good overview of concepts would be nice to have to narrow down the choices. But also I will go a bit more into detail, so you could hopefully hint us on a set of methods to look at.

    We are the software guys in a scientific environment. So it is all a bit chaotic with ever changing requirenments. And we never ever get any specs on how to design our software. This leads to feature creep/scope creep both by internal featureitis and customers new ideas (they are scientists!). The later we are on schedule, to longer the list of features to implement.

    I feel that we can't escape that scenario, so we need to go for some 'agile software developement' (what are similar concepts that might fit?). It is obvious that we need to educate us as well as the customer on that design process to get things done faster (which might be the main obstacle for too formal methods). But we also want to keep the line that we design/own the software and they don't.

    Another issue might be our internal developements of reusable VIs/libraries. In that case it's all software guys that want to get things done, with at least some idea of what we want to have. Propably we could use a more formal approach there.

    Apart from books, having software tools to help us in the design process/project management would be an issue, preferrable open source/free of charge (we use SVN already).


  16. Cross-post from http://forums.ni.com/ni/board/message?boar...hread.id=405018

    resonance wasn't to greate there.

    I'm planning an application with a plugin architecture, that will look up a directory during runtime for available plugins. I know I could do it using .llb Top-Level VIs. But I would prefere to have the plugins 'compiled', so as exe or dll. Is that a straight foreward build of those plugins or do we need to take care of some things? And how about compatibility when we use plugins of a newer LabVIEW version?


  17. Thanks to all for your help.

    From the discussion so far, on the server side we can't work with encryption but rely on access permissions. The other points (https, client side encryption) are clear.

    We will discuss the issues today and I might come back with some more questions.


  18. At first many thanks for your fast response on easter sunday.

    Our main issue is the security on the server side. Only those developers that are on a certain project should have access to the source code. And we would like not to completley relay on the OS permissions.

    QUOTE (Justin Goeres @ Apr 12 2009, 03:43 PM)

    If you're worried about the SVN repository itself being secure, it depends a lot on what type of machine you're hosting the repository on. That having been said, the repository is just a database that's made up of lots of files, so I would think that whatever standard security measures you normally use on the host OS (permissions, good passwords, turning off unnecessary services, etc.) would be steps in the right direction.

    Since you mentioned that you haven't worked with the SVN process yet, I'll also point out that the folder structure of your repository is defined inside the repository. The host computer knows nothing about what's in there. As far as the host is concerned, the repository is just a big collection of semi-random-looking data.

    Can you clarify that last sentence a bit? I understand it from a technical viewpoint, as the SVN keeps track of the changes in the directory structure and works incremental on binary level. But could not any one with a SVN client (given that the server is open to them) check out all files, or is the repository password protected?


  19. Until now, every developer has his code secured by using cryptographic containers (TrueCrypt).

    We now want to use the advantages of a small network including SCC (Subversion).

    What we could do, is check in/check out of the complete crypto-container. But that would not allow to have each single VI put under revision control individually.

    What other options do we have? We have not yet any experience with the SVN process, but are planning the network structure including folder structure of the central server. Is there any encryption support by SVN? Does passwort protected VIs work with SVN (using Tags?)? How secure are password protected VIs anyhow?


  • Create New...

Important Information

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