LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

NI Traffic Light CLD Soln vs mine

Altenbach,
excellent suggestion, I can't seem to remember it all...

Well here are the stats.

My Traffic Light 77.2k vs NI 91.0k
My Car Wash 67.7k vs 90k

after I removed my redundant boolean cluster mention above in the thread. I get this result...

My Car Wash 61.1k vs 90k.

Thus for the nhay sayers my VI are smaller. In fact I'm only 2/3rd (0.678) the size of NI Car Wash soln. Removing the redundant cluster shaved a mere 6k from memory.

Now go and read NI's block diagrams and judge for yourself if they follow their own method defined in the Style, Design handbook... at least give us a good example before going off grading in a subjective fashion, all the while concelling specifically how points are tallied...

Message Edited by richjoh on 04-21-2008 02:43 PM
0 Kudos
Message 61 of 85
(2,142 Views)
While we are so concerned with size of things, and to lighten up this discussion, and be amazed at what some people with too much spare time on their hands can create, please visit this URL

Download the zip file (nothing dodgy here, I promise), run the .com file in the zip (again nothing dodgy I promise again) and be astounded. (for those that dont get it, the entire program is 256 bytes!!!!)

Source code is included in the zip, but its all nonsense to me 🙂
0 Kudos
Message 62 of 85
(2,115 Views)


@richjoh wrote:
[...]
Let's clear up what I'm saying here... - NI solutions for the practice exams are not the best, in fact, I'll post a better one, explaining my steps. Sort of a tutorial... . I looked at NI solutions for guidance and was taken back by there complexity at solving the problem created probably by its author!!!
[...]


richjoh,

i still don't understand why you are complaining about the solutions in such an angry way. Take it like it is: NI creates a style guide, mostly from feedback from customers, who are creating very large applications with LabVIEW. Those style guides, as i already stated several times, it is your own business if you follow them or not in your daily work.
On the otherhand, the certification CLD shows the programmer: you are skilled in software engineering, implementation of algorithms in LV and, of course, knowledge and incorporation of the style guides. It does not matter if you like it or not, if you fail the last point, you will somehow most propably always fail the exam.

And as to many things: style of source code is like beauty; it's within the eye of the watcher.....

Just to clear up what "no silver bullet" means: Frederick Brooks wrote back in the 80's a paper with the same name beginning with a comparison to fantasy: a monster called "werewolf". The werewolf, normal disguised as a known person, suddenly turns into a monster, only killable by a bullet made of silver. In the next clause, he compares a software project with the werewolf and states that in software engineering, there is NO SILVER BULLET since software is not distinctive like a werewolf...... So software has no golden solution for everything. You have to find your own solution, choosing your own way to implement it. Each way is like a medal with a front and a back.

Now i am wondering, why you are so "hang up" upon the file size. Sure, file size CAN matter; in this case, i think not. On the other hand, maybe your solution is laking of any documentation leaving the code unreadable and therefore difficult to maintain and scale..... So is your solution better? I cannot judge that since i don't want to look into every peace of both solutions. And, it is not my job...

I am very sure that you can get full points in the exam even if your solution is very different to the sample solution if you incorporated every important point for the appraisal. And nobody said, that the NI sample solution is the one and only way how to do it. But keeping close to it will help you getting the CLD, regardless of your personal preferences on programming style.

So, from my side, you can post as many further examples on how you think it would be better solved, it will not change the fact that all other people out there, who took and got the CLD, incorporated at least some of the styles and are, surprise surprise, very happy and confident with that.

just my personal, subjective thinkings,
Norbert
Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
Message 63 of 85
(2,073 Views)


Ravens Fan wrote:


altenbach wrote:

 Have you ever seen a light where the red and green are on at the same time?


You know what? I have.  Some places in PA near where my in-laws live have these lights that have a solid red and a green left turn arrow on the same time.  Even though the green arrow comes on, the light stays red.  I don't know precisely what that means.  Does that mean you have to stop before you make a left? 
It may indicate that you may take a FREE-LEFT. Smiley Happy
- Partha ( CLD until Oct 2027 🙂 )
0 Kudos
Message 64 of 85
(2,057 Views)

Hmmm... Do I reply from the other side? Why not?

Norbert replied saying "i still don't understand why you are complaining about the solutions in such an angry way. "

Norbert,

What I hear John (?) saying but not writting is one of my gripes.  The da@# test are being used to decide if people are qualified for LV dev jobs! Smiley Mad As mentioned earlier in this thread the guidelines used to judge the code are just suggestions but are used as criteria in the test grading. Since the guidelines are not directly associated with good code or bad (we have a different set of standard in my shop that we think are better than the public standards), using them to grade tests is not reflecting an individuals ability to code. So it seems to me that using the LV tests to judge if a person should be coding in LV is almost like givning someone a spanish test to decide if they would be a good french translater, after they are both languages. Smiley Surprised

The tests as I last took them, do not appear to give credit for the experience and the knowledge of the developers but (sadly Smiley Sad ) mainly test a persons ability to gooble-up a bunch of rules and regergitate them on demand.

What would change my opinion? Seeing or hearing feed-back on a test that read "Nice code!" "Novel approach." or "I learned something today!".

Clarification:

I am not knocking the graders. They are just doing their job. It is the test that bugs me.

That's just my 2 cents,

Ben

(still a hater of tests)

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 65 of 85
(2,043 Views)
Ben,

i like your open way to turn in "the other side" 😉

Well, just to "defend" NIs way of the tests, i want to explain the following:
There are so many developers out there claiming: "I am expert in LV!". Now there arises a problem: If such a developer creates a bad solution full of race conditions, unreadable and goldbergish code, whos fault is that?
Since the developer is most often the one and only talking to his customer, NI often faces the problem that such customers are told: "It is not my fault. LabVIEW is not able to solve the issue in a given way. I tried even support, but they just ignored me..." They wouldn't dare to tell their customers we NI would "ignore" them: Sending in the whole app with 100+ MBs of VIs containing nonsense codefragments and unreadable, erroneous algorithms. NI tells those customer: break your issue apart until you have a small example where the issue is reproducable. But sadly, often enough those "developers" are either not able to do that or they don't want to do that.......

The point of the certifications is not to determine "good developer <-> bad developer". There are many, many developers out there doing a very good job in LV without taking the exam. But the exam wants to guarantee a certain level of LV knowledge. Since the knowledge of a tool is not the only important thing for taking a project to success, NI tries to test that knowledge, too. The intension is, for endcustomers to ensure that they will roughly get what they want and what they are paying for.
This does not mean by any means that someone without CLD or CLA could solve a project faster/better/more intuitive! But the chances for failures are minimized if asking for someone who is certified. And that is the reason why certifications have to be refreshed. And this is why NI tries to standardize on certifications: To provide the endcustomers with working, nice and useful products written by people like everyone who is reading this posting.

So, we can discuss the content of the test and/or their purpose nearly endlessly 😉
But to address the original statement of this thread: The tests are designed and carried out by NI. NI creates a sample solution and the examinees solution could be compared to it. But there are other ways to look into someones work without comparing to an existing (perharps "bader") solution: For instance, you can use the VI Analyzer tool to check for the NI style guides. Or you can simply made a functional test. Whatever test you are doing, it is somehow subjective since the rules of appraisal are made by humans and humans are always subjective.
You just life with that and do what is neccessary to succeed or leave it.

just my 5 cents,
Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 66 of 85
(2,030 Views)

Hey, I have been following this for a while and just wanted to throw my two cents in...

I am what could be called a "classically" trained programmer. I started out in text based languages (and still work with them), such as C/C++, Java, and VB, and have now been working with LabVIEW as well for the past 4 years.

EVERY language has what could be called a "style guide" that programmers (good ones) follow, even if not so strictly. They follow these guidelines so that code is as consistent as possible, while not necessarily being implemented the same (everyone has their own "style" and solutions for a problem). It helps future developers working on the code, it helps others to understand what the code is doing. These style guidelines are a consensus of the population, including NI's 'style guides', its not the developer of language says "HEY!! This is how you do this, other ways are wrong!!!" The population gets together through trail and error and settles on these guidelines for the benefit of population...Whether you can see the reasoning behind these guidelines or not they are there to better serve the population, so follow them...even if loosly.

To reiterate: You can implement things as you see fit...however, the guidelines should always be followed when doing so.

Key guidelines are: DOCUMENT YOUR CODE (including good labels for controls/indicators), use a readable standardized design pattern with good dataflow (top-down, left-right, few or no local variables), and DOCUMENT YOUR CODE!!!!

________________________________________________________

Use the rating system, otherwise its useless; and please don't forget to tip your waiters!
using LV 2010 SP 1, Windows 7
________________________________________________________
0 Kudos
Message 67 of 85
(2,024 Views)

Ben replies (still wearing the other hat, just for fun Smiley Wink ) to Norbert who wrote


The point of the certifications is not to determine "good developer <-> bad developer". There are many, many developers out there doing a very good job in LV without taking the exam. But the exam wants to guarantee a certain level of LV knowledge. Since the knowledge of a tool is not the only important thing for taking a project to success, NI tries to test that knowledge, too. The intension is, for endcustomers to ensure that they will roughly get what they want and what they are paying for.


 

But it still strikes me as analogous to "measuring the temperature to asses to  'comfort-index' without taking into concideration the humidity". The tests are NOT a way "to determine "good developer <-> bad developer". ". I can not find the thread (without a lot of looking) but there was a very nice example posted by Christian that illustrated how to very quickly "find and remove all zros from an array" where he did something very clever and elegant. He slipped a wire BEHIND an "index array" function (that also used the value in the wire) to drive a subsequent ooperation. The code was very neat and clean and ran like a blizard, BUT technically he would have lost points because he ran wires behind an object (NOTE: I remember this example because it was the first time I said to myself "Now there is a good example of bending the rules!"). That same code, with the wires routed around the index would have had four wire bends.

Another example that makes me question the ability of the exam to asses a developer. I know of a developer that had passed the CLD and contiued to work with LV every day until it was time to re-certify. It turns out he did not paas the re-cert test. This baffles my mind how someone could be judged certifiable, continue to work and learn for two years and then end up not being a "good developer".

CONFESION TIME!

Failing the CLA exam the next time I have to re-cert is one of my great fears. Smiley Sad

So returning to my main theme;

The tests are measuring weight when the real property we are after is mass.

Sharing my thoughts (and fears),

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 68 of 85
(2,005 Views)
Ben,

i completly understand your point of view and i am not eager (just like you) to take any tests except the daily ones at work 🙂

Nevertheless, let's compare the CL's with tests back at school. Where all tests objective there? NO. Have all teachers used prewritten tests which were 1:1 comparable to previous ones? Hopefully NOT. Have all teachers used simple "templates" to determine which student is "good", which is "bad"? Hopefully NOT.

Now, the last question is, as it seems to me, the point of discussion now. NI is just as a teacher back in school; the tests have to be prepared, a project has to be planned, "tested" and written down in a way that it could be used in the test. During this work, maybe different people work on the same thing, so the solution, the comparable piece of work to the "students one", is maybe not consistant in every part. So, just as back in school, we all hope that the grader takes a look into our work without using the premade solution as a template and decrementing points for all differences.

I cannot and, to be honest, don't want to defend anyone who appraised a CL-test and failed to reward creative solutions if they were funcational, looking good and having a good documentation. Just as you all, i hope that those graders will die out sooner than later. But the major problem for graders ever was, nowadays is and ever will be that you have go the small ridge between appraising fast and fair. The fastest appraising method is template, the fairest would be going in depth to every bit and byte of your work. You will not have the time for fairest.

Using tools as VI Analyzer for appraising is ok for me, if the grader takes a look into the issues the tool finds and deciding right on view if there are points off or not. But sadly, this is something, we can't influence much.....So we can only hope for the lords merci. But this is the nature of a test, taking place in a very short amount of time for testing something with a high duration. Maybe the best comparable test would be the test for the driver's license.... there are so many thing which can go wrong and they even wouldn't be your fault.... so why do you care about things you cannot influence much? Is someone who fails the drivers license on the first try a bad driver? Hopefully NOT. I know some people who are very good in things; but they are afraid of test-situations and because of this fear, they often fail. Due to the failurerate, the fear grows each new try. A visious circle.
So its all about knowledge, preparation, mental strenght and, yes, luck.
You can train mental strenght, you can prepare yourself as best you can and can build up as much knowledge as possible. But you cannot enforce luck.
BUT: does this make tests "evil"? Is it better to grade everyone "passed"?

Norbert



Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 69 of 85
(1,990 Views)

Hi Norbert,

Thanks for your replies and thoughts. I did not expect when relying to change the world or the format and contents of the certificaiton tests. I think we agree that (at their best) the tests "are shadows on the wall" (Plato's Republic).

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 70 of 85
(1,977 Views)