Jump to content

John Lokanis

Members
  • Posts

    797
  • Joined

  • Last visited

  • Days Won

    14

Posts posted by John Lokanis

  1. I used to respect Joel, but if there was a way to comment on that article, I would simply tell him:

    'you are an idiot'.

    The line that really got me was: "If there’s no unit test the customer isn’t going to complain about that.”".

    Sure, that is what Microsoft has been thinking and doing all along. The world is their beta (and often alpha) tester! Who cares if it is good, as long as it ships.

    Well, I have spend MANY hours of mine and my employer's time dealing with the bugs that these 'duct tape' programmers leave in the code because they are too lazy or stupid to come up with a decent set of requirements, design and test plan and then take the time to actually implement it!

    Wiz-bang features for the sake of elegance may be a waste of time, but careful planning, execution and testing of ANY code is CRITICAL. I don't care if it is going in a 747, a desktop OS or an mp3 player. Just because it ships doesn't mean it is good.

    /rant

    -John

  2. Why? You just use the SEQ directly to store the data itself. DVRs don't offer anything you couldn't do with a SEQ. They do offer better guarantee of inplaceness and less chances of causing deadlocks, but the functionality is the same as you would get with a SEQ (except you can obtain a SEQ by name and preview its data, which you can't with a DVR).

    What I meant is if you wish to 'hide' the SEQ implementation in a generic set of VIs that can be reused and simulate dynamic memory access, then you must use a variant as the queue data type. This is because you do not know the data type of the element you wish to store until you use these VIs in a program. And you cannot make this polymorphic because you will likely want to use a complex typedef'ed data type. Therefore you must cast the data you get from the SEQ to the specific datatype for you implementation.

    As for your other question, DVRs are also typed, just like queues and notifiers.

    If this is true, then yes, DVR offer no advantage since their reference carries the specific datatype of the data stored within the DVR reference wire. This is too bad because it means they really are not pointers. A pointer does not (and should not) know what it points to!

    At least they are a bit cleaner than SEQs but I guess they offer no new functionality after all. Bummer. :(

  3. But if I'm going to put the DVR in the SEQ, then I will just bypass the DVR and just use the SEQ

    Yes, you could certainly do this, but then you must store the queue data in a variant and cast it back to it's native type after accessing it. (assuming you want to build a set of generic helper VIs to do this and want to be able to pass 'any' datatype using these functions.)

    I don't have LV2009 installed yet, but my understanding is the DVR reference is a single static datatype but it knows what it is storing. So, you would be replacing the variant in the queue with the DVR datatype and then when you need to access the data, you would use the inplace structure that could decode the data in the DVR into its native type without having to do a cast. It's a minor savings but let's you skip the typedef for the data you are passing as well as leading to cleaner diagrams.

    Of course I could be wrong... Anyone want to test this? Does the DVR carry it's datatype on the wire or is it stored in the memory where it points to?

    -John

    ps. sorry about your lack of TIVOness. Honestly don't think I could live without a DVR anymore (the original kind, not the LV data type). ;)

  4. If you really want named DVRs, just store your DVR in a single element queue and then use preview queue to retrieve it. You could put together a very simple set of VIs to implement this. I used to do something similar with single element queues and variants.

    Be sure not to destroy your DVR without freeing the queue or you might end up with Totally Invalid Value Objects, or TIVOs. :P

  5. Many of the presenters at NI Week promoted the LabVIEW Idea Exchange here.

    I have been reading, voting and posting to the idea exchange for awhile and just posted several new ideas/complaints that I thought of while attending NI Week. I challenge all LAVA members to visit the exchange and vote for the ideas you agree with (especially mine ;) ). And if you don't agree, post a comment and tell me why!

    Then post your own ideas so we can all vote of them too.

    The more feedback we give, the better LabVIEW will be in the future.

    -John

  6. I agree. I use Darren's "Abort" quite often. It sits on my desktop.

    I didn't know about that one. I like it. I just threw mine together in a few minutes after this screwed me up one time too many. I should have searched for an existing solution. Oh well, there is always more than one way to skin a VI, I guess...

    Why not post an idea to the idea exchange yourself?

    Done! Go vote for it if you like the idea!

    :thumbup1:

  7. am i missing something??

    Well, yes. What you describe is not the point of web services in LabVIEW. If you want to understand the basics, NI has several help articles on their site to get you started. What I am trying to do with this project is help an advanced developer take their web services and deploy them to a run time target. This was a bit of an after thought on NI's part and is therefore not straight forward. Since I suffered through the issues, I am trying to share that knowledge here to help others avoid the same pitfalls.

    In addition, I am providing some interesting uses of web services that are non-traditional but make them valuable to LabVIEW developers.

    -John

    • Like 1
  8. As promised, here are the slides from the presentation. I think the topic was a bit advanced for some attendees, however. I got a lot of glazed looks when I tried to explain how important it was to understand application instances when using web services.

    Maybe I will get to present this or an updated version at NI Week 2010.

    Unfortunately, the slides don't have a lot of details and are more of an outline of my presentation, but maybe you can get something useful from them anyways.

    -John

    Web Services in LabVIEW.pdf

×
×
  • Create New...

Important Information

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