Jump to content

Val Brown

Members
  • Posts

    754
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Val Brown

  1. My opinion: 1984 > Animal Farm > Brave New World

    I haven't read Catch-22.

    Interesting, because (I believe that) all three were written in Great Britian. The human condition is universal, I guess.

    Yes they were, as was Lord of the Rings and the Hobbit, to name another few popular titles. Notes From the Underground is quite stark -- but a classic -- and I think the "easy read" that really got to me recently, it would be: "The War After Armageddon".

  2. One interesting aspect of hygiene is it is not necessarily a compounded property. In other words, it is entirely possible for me to construct a hygienic code block in G using parts that are not hygienic. I'm not yet sure how useful that is... it's another way to look at programming I'll have to think about.

    And vice versa so I think this is really a question of scope or scale of definition. Seems kind of like counting dancing angels on pinheads.... ;)

  3. Not really the modern NI template for M/S, but completely reasonable. I don't go back to LV5 so I'll presume that releasing the queue did not interrupt the dequeue/preview in those days with an error.

    I've done this, and I hate dislike it. It effectively takes an event based processing node and turns it into a polling mechanism. Why have two asynchronous operators in one loop? One of them is necessarily polled to keep the loop going (either by the master to notify "run" or timed out to indicate "don't stop.) This is debatable, but I've taken to releasing the queue to destroy loops. I feel like it offers a more efficient operation. I usually toss a comment in the loop that the error is the exit condition.

    Sorry I did the quote then somehow didn't quite add the comment.....maybe somebody can clean it up. I can't seem to find the edit option.

    In any event, you have the history reversed -- and it IS about history. The point is that was the ONLY way to do it way back when (at least AFAIK) and so it remains in some legacy code but another reason is that one just might want to trap "error" -- even if it's because of releasing the queue -- and not exit all of the parallel loops but perform some other kind of "recovery" operation.

  4. Definitions:

    Master/slave - NI's template implementation.

    Incorrect. This only works if you have ONE dequeue place. If you were to try this with multiple "slave" loops it would immediately break down. A queue (even size one) will not perform identically to a notifier.

    So I'll ask my original question again:

    Does anyone use the master/slave template pattern? You MUST use a notifier as the transport. You MUST have atleast 2 slave loops. You must RELY on lossy transmission (ie its a better solution than a lossless transport.) If that's not the case I won't be satisfied as it is just a different way to solve a problem that could be done using a different, better, pattern.

    ~Jon

    I have used that exact template to terminate parallel loops. In the past -- before Event Structures (and some other tricks...) that was the only way to guarantee shut down of parallel loops that received inputs from queues as well. It's a solution that goes WAY BACK to LV5 or so...

    • Like 1
  5. So, if I've followed ALL of this, what we come down to is:

    LV is a pure dataflow language with an implementation of references that is inherently dataflow and not raw pointers. :thumbup1:

    Obvious when you "read the manual" and such but that option is TRAINED OUT by traditional CS approaches based on text-based "jump anywhere" languages that allow for raw pointers and, thereby, leave the programmer with the mess of memory management, ah, I MEANT to say: with all of the options of deciding how to manage memory everywhere still available to you, along with the responsibility for actually doing ALL of that. In other words, coming from a traditional "jump anywhere" architecture being ASSUMED, LV can seem quite "limited". Recognizing what it actually IS, LV is an inherently elegant implementation of dataflow.

    Hmmmm, maybe I should ask Evil AQ about all of that...... :yes:

  6. dont agree, what if you have already passed CLAD before, however it is expired. Do you need to do it again before taking the CLD? Considering you are still active in the field and using LabVIEW everyday. I think it is just Money craving

    I don't LIKE it -- being in the same situation -- but it makes perfect sense to me and, as has been pointed out, there isn't a whole lot of money involved for NI in the process. Certifying others is a very time-staff expense operation, esp to set up initially but also to maintain, let alone extend, over time.

  7. Val Brown

    I'm really surprised that you were able to use the CIN in 2010. When I open it, I get a broken error with the reason that CIN is no longer valid.

    Not only in 2010, but also in 2011. I suspect that, if you had migrated the code version by version as I suggested, then you wouldn't have gotten the broken arrow but I guess it probably also does depend on the particular CIN. In any event it was good that you got ahold of the original developer(s) and they were able to resolve the issue for you.

  8. I'm unaware of any specific, inherent limitation in either 2010 or 2011 re: the use of CINs. In fact, I have a legacy project that uses one CIN and I've had no problems at all with it in 2010 and 2011. I suspect that the problem is more connected to how you are referencing the resources needed by the CIN.

    FWIW, if you can, I'd suggest migrating that CIN -- called in some test program -- through each of the intervening LV releases. Perhaps that might help resolve the problem or, at least, highlight more clearly where the error is really coming from.

  9. Just wanted to chime in that I support the move. It should be all at once with a bump in the version number. Given the nature of the change, does it justify a "major" version increment?

    I would think most definitely.

    Yes definitely it's a major release with a significant change like this -- which is being handled very well IMHO given all that you've said.

  10. Sure, you can't see it update in this case, but is still allocated memory e.g. to give you the option to cut and paste the data etc... post-10325-0-29094700-1296170819_thumb.p
    Yes, but Why? I mean, I can see why FP controls that change their appearance need a copy of their data, but if the control doesn't change appearance why does the FP control need any data at all (other than type information obviously !) ? Actually that might be an interesting idea for debugging dynamic dispatch calls - if the FP controls and inducators changed appearance depending on the runtime type of object they were being passed. Then there'd be a good reason to pay for getting a copy of the data....

    And I suspect -- but COULD be wrong -- that this is because iLV is "really" byval (meaning dataflow optimized) and not byref, so inplaceness counts in many, many ways...

  11. Yes, please, move it. IMHO, user.lib should be for *user* developed code, not add-ons, which is what OpenG really is.

    ...If OpenG were in the add-ons directory, I wouldn't have to touch it except when an actual update was available.

    Precisely so. And then, if for some reason you (a user) did make a "local" modification to some underlying OpenG VI, you would put the modified code into user.lib, leaving the original OpenG untouched in vi.lib.

  12. I'm currently trying to upload binary data from LabVIEW into a Filemaker 11 Container field via ODBC and I'm getting nowhere. I wondered if you were able to do this? I can upload non-binary fields fine.

    In the past I was never able to get it to function correctly via ODBC to serve as a replacement for MS Access so I'm very interested to hear how this turns out.

×
×
  • Create New...

Important Information

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