-
Posts
161 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by SteveChandler
-
-
I am just now seeing this today. Congratulations!
-
-
Do you ever find yourself doing a whole bunch of extra programming just to avoid an "ugly solution" that was robust and really had nothing wrong with it, but it just bothered you so much you put in the extra work for something "cleaner"?
Am I even making any sense?
A whole bunch of extra programming IS an ugly solution
Less is more.
But I know what you are asking and am guilty. I can't really give any specific examples right now.
-
I still can't find my battery but I will admit that I didn't really look very hard. It isn't under the hood.
But I mostly that is an excuse to post this other Prius video.
<iframe width="420" height="315" src="http://www.youtube.com/embed/loJ60LOCZaw" frameborder="0" allowfullscreen></iframe>
-
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
It only costs $99 for a CLAD exam through Pearson VUE and I don't know if NI gets any of that. It costs $299 for a CLD or CLA exam which lasts four hours. Then there is the time for two engineers to review and grade it. And don't forget the administration. I don't think there is a lot of money to be made in certifications. Maybe there is some profit from the courses to prepare for these exams but I am guessing it is not a whole lot compared to NIs core products.
-
I thought the CLA was one of the hardest tests I've ever taken, mostly due to the 4 hour requirement.
And for what it's worth, I got my results yesterday and I passed!
Congratulations!
-
A developer should be reasonably fast and so should an architect. But coding speed should not be an overly strong indicator of effectiveness. It can take a reasonably skilled programmer 20 minutes to create a moderately complex front panel. That is a big chunk of the four hours and it does not indicate any insight or skill - the "answer" is right on the exam and you only have to copy it.
I took the old format exam and thought the complexity was very reasonable but I that NI should add an hour to complete it. With the new format four hours is probably perfect. Having to create everything from scratch (even though the answers were given) put too much emphasis on speed. Looking at the four examples the front panels are somewhat similar in complexity. Now NI can create exams with a wider range of front panel complexity without being unfair.
-
I don't want to change the subject since I am enjoying this very insightful debate. There are times when a global the perfect solution. I am sure most of you have seen this but for those who may not have.
Modified version of this image from Broken Arrow.
-
It seems that NI has changed the format for the CLD exam. They give you a USB stick with some VIs and controls to get you started. Nice time saver! Saw here. Does anybody know if the CLA exam format has changed? I saw something in the prep guide about classifying requirements which is something I did not have to do on my failed attempt.
-
Wait. Are you saying the DETT software that I just bought for LV2010 is now included with LV2011?
-
This image from from my Design Albumn on the Dark-Side
Hey Ben, what do you use to create your sequence diagrams?
-
-
Thanks James for the excellent writeup on units. I will definitely consider using them more after reading that. It seems like a pretty powerful thing that I have not been taking advantage of but probably should.
BTW: the link to the prior conversation is actually here.
Copy and paste error. I fixed the link at the top.
-
Just a quick response... I'm short on time.
I wasn't aware different units were considered separate types. To be honest I've always thought the units were more trouble than they were worth. I'll have to think about that for a while before deciding whether or not to add a variant message.
I have not used units much but I see why they are different types. You get a broken wire if you try to multiply volts and temperature but you can multiply volts and amps. Pretty cool stuff for preventing bugs.
[Edit: Hah. I told you I have not used units much. I just tried and indeed you can multiply volts and temperature. You end up with a new unit entirely s^-3 m^2 kg A^-1 K. It turns out that 5 degrees Celsius times 6 volts is 1668.9 of whatever those things are. Yea more trouble than they are worth )
-
I could post an example later, this is from memory. Better learning experience recreating it yourself. I have added other features like finding the segment closest to a given point, and double checking that the selection process does not add other objects. It is easy to get the terminals selected on shorter segments which are hidden.
I think I can figure out most of it. An example would be helpful especially with the check for add other objects. I will try creating it myself before looking at the example though. I just started playing around with scripting and really want to learn about it. I have had lots of fun writing code that writes code but only with, eh.., scripting languages. It really is too bad that LabVIEW scripting requires the development environment but it is understandable and I gather that this will not change.
My other point is that you are usually a much, much happier scripter if you let LV deal with the wiring (BD cleanup, Clean Wire method, autowire). Futzing with wiring in scripting is a spaghetti factory, this simple task is already a screen wide on a BD.
Yes I am starting to see that. But it is good that there is flexibility in case you want to do something crazy like weird wires. That still blows me away especially with highlight execution.
-
This discussion about using variants vs. the native datatypes for messaging is continued from the LapDog Messaging Library v2 announcement thread here.
-
A DBL with an attached unit is a different type than a DBL (no unit). The wire will break if you wire them together (or if the units are incompatible). So to use units with messages you need separate message types for each base unit. Or use a variant.
You could just not use units, sending raw DBL messages and relying on the receiver to know what the unit is, but united numbers are useful for preventing bugs.
Yes when you start to take into account units there really are a lot of datatypes. But as I said if I need one that is not in my polymorphic VI I just create a new one. I can see how this can end up with many entries over time. But with autoselection I don't think it is a problem. Anybody know the limit to the number of polymorphic entries? I think the select node in scripting is an I32 so there probably is no practical limit.
Probably, is there a LapDog discussion group?
-- James
There is one on NI but it is pretty low volume. I was thinking maybe the Object Oriented board here on Lava or something else. [Edit: I created a new thread. I hope this is OK]
-
Thanks everyone. I can not figure out is how to move a wire segment.
I looked at the Joints[] property. It returns an array of clusters containing info on all the segments but it is read only. Is there a way to identify a segment in order to move it, like when you single click on a wire and use the arrow keys?
-
That is an interesting idea - registering all controls. I use a lot of latching boolean controls so I would have to put all the terminals in one event case to make sure they all got reset. It is interesting and I will keep that in mind. It seems like it could get confusing though. If I have an event for the individual control then there is a frame with the terminal and any code specific to the event. But I can see that for some applications this is useful. I would have never realized you could register all events like that.Here, I'm directly connecting to LabVIEW's ability to handle multiple control types in a single event frame, via variants. If I want to add a control, I just drop it on the front panel and give it the right name and it's done.
I would not create a polymorphic instance for temperature and for pressure. I only have the generic types that were not included in the native types library. Since both of those are DBL and I already have that I do not need a new entry. I might have a set pressure and set temperature vi in some module library that use the DBL message and set the name with a constant. But no additional polymorphic instances are necessary. The list is kind of big. I think I have about a dozen or so. But I have it set to automatically adapt so there is no need to worry about a big selection list. If I see a cohersion dot then I know I might need another instance.To do this UI without variants, I would have to stop and create new message types for the pressure and temperature unit DBLs (it's going to be a big polymorphic VI, Steve, once you get to all the different possible units!), then configure an event frame for each control.Edit: Maybe we should move this off of the announcements board
-
Forgive me but I am just starting to learn about scripting today. I can open a VI, get a reference to the block diagram and to a VI or terminal and move it to a new location. Woo hoo!
My question is that when I move a node the wire will bend in the middle. Can I specify where to bend the wire? A picture is worth a thousand words. (One of the best features of LabVIEW)
-
I have created a bunch of datatypes as I needed them and put them into my own library. I gave up on adding them all to the palette and now my create and get messages are all in polymorphic VIs. Variant is one of them. But I don't like that one because I have to convert the message to the variant subclass then to the datatype. I would rather just add a new entry to my polymorphic VI whenever I need something not already there.
-
Lava: Where hot ideas flow and solidify into rock solid development practices.
I never knew this before but there is something called "Lava Flow Programming" Or rather it is something that I know very well but did not realize there was a name for.
-
Sitting here on the pile of coal in my backyard I have to ask...
Where do we get the energy required to produce the hydrogen used by the fuel cell if not fossil fuel ?
Hydrogen fuel cells are great for situation where hydrogen is a by-product of some other process.
Ben
If I knew I wouldn't tell you until after I took over the world.
But I would probably use a nuclear reactor to do it. Fortunately for you and the world I would probably just blow myself up trying without achieving any sort of nuclear reaction or catastrophe that the local fire department could not easily deal with. So I will just fork over the $3.75 per gallon and deal with it.
-
I'm not as interested in the cost of a new battery as I am in the disposal (expense & GREEN impact ) of the old one.
The price I quoted was high anyway. They are closer to $2K. Too cheap means more environmental impact.
That's why I said that Toyota pays a bounty for them. They buy back even the dead ones. There is a sticker on every battery that says you can take it to any Toyota dealer for a $150.00 reward (source). You will not find many in the scrapyard. I don't know where the battery is but I will look for the sticker and try to verify this myself. In Oregon you hardly see any beverage bottles in the trash because of only a $.05 bounty. Also the warranty is 100K miles but the Prius is used by a lot of taxi companies and municipalities. Many of them have over 300,000 miles on the original battery. Of all the Prius' sold since 2000, 97% on the road. (source)
Yes the battery is nasty stuff but it is just a NiCad. If you stuck all the cell phone batteries in a pile and all the Prius batteries in a pile I don't know which would be higher. Not that any of this means they don't have an impact. Maybe it is a step in the right direction but maybe not. The best way would be hydrogen fuel cells but they are not there yet. But at least things other than fossil fuel are being experimented with.
- 1
LapDog Messaging and Actor Framework
in Application Design & Architecture
Posted
I have been using the LapDogAPI Messaging library along with the Slave Loop pattern posted by Daklu. Recently I have been looking into the Actor Framework and do not yet completely understand it.
Conceptually what is the difference? I know there are significant differences in how they are implemented and that the Actor Framwork dynamically launches a reentrant VI. But could the slave loop pattern be considered kind of like an actor framework?
The thing I really appreciate about the LDM is it's simplicity. What are the main benefits of the Actor Framework? At the highest level aren't they both just loops with input and output queues with an object as the datatype?