wood burning stoves 2.0*
The moose likes Cattle Drive and the fly likes Nitpicking the Cattle Drive Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » This Site » Cattle Drive
Bookmark "Nitpicking the Cattle Drive" Watch "Nitpicking the Cattle Drive" New topic
Author

Nitpicking the Cattle Drive

pete hesse
Ranch Hand

Joined: Aug 29, 2000
Posts: 44
Are you guys ready to get a dose of your own medicine???
Actually, I have just one nitpick. Some of the assignments are broken up into "a" and "b" parts. That's fine, but your instructions imply that you want to type the same class name for both of them (e.g. "I want to type 'java Hundred nitpick'...").
In order for me to save both parts of the assignment, I have to change the filename, or do some other maneuver (make another directory, change classname when submitting the assignment, etc.). Do you see where I'm going with this?
How about changing this, so we nitpickees can keep a convenient record of our trials and tribulations with the Cattle Drive in one simple location. (No offense intended.)
Your thoughts?
Richard Boren
Ranch Hand

Joined: Mar 01, 2001
Posts: 233
Good point Pete.
Here's my yea vote for making the change! Why not HundredA.java, HundredB.java...
It would be nice if the class name coincided with the assignment name.
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
I view this differently. If you were in the real world and creating a class you would name it Hundred. If you later needed to add some more functionality to it by making it format real nice, then you wouldn't change the name of the class to HundredPretty or something like that. You would take your currently working class and rename to Hundred_old (or something similar) just in case you really screwed up and need to go back and start again with the old version, and then you would make the changes to your Hundred class.
Also, many people I am guessing don't do assignment A and just jump right into the extra credit portion. Having the mulitple names I think is more confusing in the long run. While you can't go to assigment 2 until assignment 1 is done, you can go right for the extra credit the first time on assignments that have extra credit.
Just my opinion.
Bill
Marilyn de Queiroz
Sheriff

Joined: Jul 22, 2000
Posts: 9044
    
  10
I agree with Bill. Save your final Java-1a as HundredOld, and send the Hundred you're working on to the nitpicker.

JavaBeginnersFaq
"Yesterday is history, tomorrow is a mystery, and today is a gift; that's why they call it the present." Eleanor Roosevelt
Marilyn de Queiroz
Sheriff

Joined: Jul 22, 2000
Posts: 9044
    
  10

Also, many people I am guessing don't do assignment A and just jump right into the extra credit portion. Having the mulitple names I think is more confusing in the long run. While you can't go to assigment 2 until assignment 1 is done, you can go right for the extra credit the first time on assignments that have extra credit.


Actually, we had too many people doing that who ended up going through endless iterations of the assignment because they were trying to handle too many corrections at once. This is why NOW you must receive an ok from the nitpicker to go from Java-1a to Java-1b, and similarly from Java-4a to Java-4b. When you get to the servlet assignments, they build on each other like these particular assignments do.

You must complete each assignment before submitting the next one. Most nitpickers simply ignore assignments sent out of sequence, although we usually notify beginning students. We give them the benefit of the doubt and tell them to begin at the beginning.

As the number of students and nitpickers continues to grow, the rules have to be stricter to keep everything under control. Otherwise the volunteer nitpickers will end up without a life outside of their day job and nitpicking.

Some students only submit Java-1a one time and are immediately passed to Java-1b. However, this is rare.

pete hesse
Ranch Hand

Joined: Aug 29, 2000
Posts: 44

If you were in the real world and creating a class you would name it Hundred. If you later needed to add some more functionality to it by making it format real nice, then you wouldn't change the name of the class to HundredPretty or something like that.

Bill, I was not aware that the Cattle Drive mentors are serving as both technical and business mentors. Up to now I've been assuming this is a technical training ground. I've been in the IT business for 10 years, so I'd prefer to be spared the business portion, and be free to organize my work how I please.
If Cattle Drive is meant only for enhancing technical skills, then I suggest you ease up on these types of requirements, as they tend to validate that you guys are behaving as nitpickers. I personally would prefer that the term not be used in this forum, as it can be interpreted literally as negative (as most dictionaries define it). Up to now I've been using the term in jest, as that's how I've interpreted it as being used. If it is indeed nitpicking, then why should I subject myself to it?
I don't mean to offend you or anyone. Just my 2 cent's worth.
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070

Bill, I was not aware that the Cattle Drive mentors are serving as both technical and business mentors. Up to now I've been assuming this is a technical training ground. I've been in the IT business for 10 years, so I'd prefer to be spared the business portion, and be free to organize my work how I please.

So you are telling me that everytime you make a change to a file or a class to add some functionality, you change the file or class name? I have a business degree and was once the Controller of a company and this is FAR from a business suggestion. It is a matter of practicality. If you had 100 other classes relying on the name Hundred and then you changed it to Hundredb, all of your other classes would need to be recompiled with the new name. That is a technical fact, not a business assumption.
But the truth of it is this: This is a free service that many users would be willing to pay hundreds of dollars to get, but we offer it free. The nitpickers here spend hours of there time every week answering your emails. If you want to participate, the only rule is that you follow our style guide and conventions and contribute to our site. If you don't want to follow it, you are more than welcome not to do the assignments.
Sorry if I sound frustrated, but it just surprises me that people can take a free service that you are free to take or leave and then complain about it.
Bill
pete hesse
Ranch Hand

Joined: Aug 29, 2000
Posts: 44
I guess I struck a nerve.
I was only trying to offer some constructive criticism. Sorry I upset you. Why don't you state it on your front page: "You have to submit to our truly nitpicking criticisms, but don't you dare criticize this site."
"JavaRanch, a friendly place for Java greenhorns"
Really?
Carl Trusiak
Sheriff

Joined: Jun 13, 2000
Posts: 3340
Originally posted by pete hesse:

If Cattle Drive is meant only for enhancing technical skills, then I suggest you ease up on these types of requirements, as they tend to validate that you guys are behaving as nitpickers. I personally would prefer that the term not be used in this forum, as it can be interpreted literally as negative (as most dictionaries define it). Up to now I've been using the term in jest, as that's how I've interpreted it as being used. If it is indeed nitpicking, then why should I subject myself to it?
I don't mean to offend you or anyone. Just my 2 cent's worth.

What you need to realize is we are trying to help beginners develop good habits that can aid them throughout their careers. IMHO, it's not good in any way to have the same file laying aroung in different directories all with the same name but, with different implementations. I had a co-worker do this with her sql scripts, then one day she was gone and didn't come back. What a nightmare tring to determine which script was the current one in production. Finally just deleted them all and used Oracle to Revise engineer what was stored and start all over on the project she was on.

I Hope This Helps
Carl Trusiak, SCJP2, SCWCD
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
You are free to criticize the site. I am guessing that much of the site has been constructed from constructive criticism. What I didn't find to be constructive criticism, or any kind of comment of the site was the statement:

I've been in the IT business for 10 years, so I'd prefer to be spared the business portion, and be free to organize my work how I please.

I encourage everyone to make suggestions about how the site can be improved. We have had some great discussions in many of the forums. But from the above comment I take it that you are saying that I can't make my suggestions or my criticisms of your work.
I normally don't try to read between the lines with these postings because someone can't inflect tone into the written word and two people can easily read one message totally differently. So maybe here, I read too much into your posts.
Bill

[This message has been edited by bill bozeman (edited March 07, 2001).]
John Wetherbie
Rancher

Joined: Apr 05, 2000
Posts: 1449
I would think that changing the name of a class would be a technical issue since you would probably be breaking your projects build.
There is also a mechanical reason for naming the projects the same thing. The reviewers are running the programs and it is nice to have a script which runs Hundred vs having to type a lot of different program names in to run them.
I got my knuckles rapped by Marilyn on my first assignment for changing the name of the program (among other things)!
John


The only reason for time is so that everything doesn't happen all at once.
- Buckaroo Banzai
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20542
    ∞

When I wrote the first version of the cattle drive, I was thinking that the best way for folks to learn any programming language is to spend a bit of time struggling with it. Not too much and not too little. But some.
As programmers we're trained to find points of struggle and efficiently eliminate struggle. We know that if we can eliminate some tiny struggle and the software is used by a million people, we actually start to save people hundreds of hours out of their lives.
So, the folks that are participating in the Cattle Drive have a natural tendancy to try and streamline the process. Especially anything that runs contrary to what they are used to.
We have been persuaded to change many things in many parts of JavaRanch. But for every gentle persuasion, there are a hundred arrogant whines. So it can be tough to seperate the wheat from the chaff.
The 100:1 ratio has been more like 1000:1 the last few weeks on the cattle drive. And the whining can be accidentally interpretted as complaints to people who volunteer their time in an effort to help the java community as a whole. The nitpickers start to get the idea that there are other things they could be doing that might be more rewarding.
Ever hear of the gift horse?
As to the point in question: We keep copies of the 1a and 1b solutions to send to folks when they've completed an assignment. We think that this way is the best. In fact, let me say that I think it is the best. I am something of a Java expert. And I would guess that anybody working on assignment 1 of the cattle drive probably isn't. That doesn't make what I think right, but it does give me some pretty good odds!
My thinking runs along with what Bill is saying. What would you do in the real world?
I never thought about business implications vs. engineering implications. As for the direction or intent of the overall cattle drive... I would have to say it tries to teach things that I think are important in an engineer - not just absolute technical stuff. In fact, one of the biggest parts of the cattle drive is readability. This is important cuz the nitpickers have to actually read every line of code!
Finally, some nitpicking on the nitpicking of the nitpickers: I've been using on-line sites 16 years, and running on-line sites for almost as long. I love getting criticism because it shows that you have created a site that somebody likes so much that they want to help improve it cuz they plan on coming back a lot. But when I offer criticism, I have learned to start with a paragraph about how cool the site it, and then start with the words "I would like to humbly suggest ...." - sure, it takes longer to type and, therefore, definitely isn't efficient, and I'm in no way humble, but it does seem to work better.
A great deal of the commentary we get seems to imply that we are ignorant clods because we don't do things some other way. Whether this is true or not is beside the point. The implication puts us instantly on the defense: "We're not ignorant clods! You are! Yeah! And anything you say is just stupid because you're an ignorant clod! Yeah! And come over here so I can kick your ass! Yeah! Yer ugly and yer mother dresses ya funny! Yeah!" Or maybe this is just me. And there's always the chance that the nipicker will decide that rather than go on a tirade, they'll go to the movies. And we'll never see them at the ranch again. After all, this is strictly a volunteer thing. Why hang out somewhere to have somebody imply that you're an ignorant clod? At the movies, nobody implies that you're an ignorant clod.
Bottom line: I'm not convinced. Things will stay the way they are.

permaculture Wood Burning Stoves 2.0 - 4-DVD set
pete hesse
Ranch Hand

Joined: Aug 29, 2000
Posts: 44
I regret ever bringing this up.
It's been said that disagreements take about 100 times longer to resolve when done via email or forums, rather than face to face, due to the fact that people take much more latitude in interpreting the words. And at the risk of offending someone out there, let me follow up on that by saying I'm NOT implying that I don't do this and everyone else does. I'm just as guilty as the next person.
Bill and the other ranchhands, bartenders, sheriffs, etc.: I do appreciate the hard work you do to maintain this site and help newbies to Java like me. I regret not having stated this from the start. I admit that I did somewhat take your services for granted, and for that I apologize.
From now on, I don't think I will use the discussion boards for anything other then strictly technical questions. When I do, I end up expendng lots of energy organizing my thoughts and figuring out how minimize misinterpretation and offense, and they still get misinterpreted. And the harder I try, the longer it takes to resolve. Again, I'm not implying that I don't misinterpret other's posts.
(and I feel myself getting worked up with stress and anger as I type this.)
Rather than go on like this, I'm going to stop. Life's too short.
Let's just agree to disagree. I will comply with the rules of the Cattle Drive.
JC Cook
Ranch Hand

Joined: Nov 13, 2000
Posts: 32
An assignment came in tonight to be nitpicked once again, and it began with this statement:
ok...hopefully your tips are starting to soak in..... I appreciate the fact that your comments are making me think about not just 'will it work' but also 'is this the best way of making it work'. Thanks

I gratefully wrote back
Thanks. That's all the pay we get, and all the pay we ask.

Peter Gragert
Ranch Hand

Joined: Jan 16, 2001
Posts: 424
This is a reply on replies further up with respect to
Same content, several version changing class names filnames
to e.g. Hunderdb.java ....
You can overcome such problems by using a CVS system(Concurrente Version System or RCS with ci and co etc., I think).
You save your version and you go on with the next. And eventually you go back to an earlier one. Always staying with
your first name e.g. Hundred.java.
Does this help?
David Junta
Ranch Hand

Joined: Dec 10, 2000
Posts: 86
I must admit that I mumbled a few expletives (hope you didn't hear them, Marilyn ) the first few times I got back Assignment #1 full of nitpicks (not all of them) that I thought were petty and unnecessary. But I saw the value of the Cattle Drive and bit my tongue, and as I continued on through later ones (not that I'm all that far down the road ) there were numerous instances where I realized why the nitpicks that I had previously thought were petty could in fact be pretty important.
Part of this thread reminds me of something that happened in a company I worked for. There was a new (new to the company but an experienced engineer) java programmer who joined the developer team. He was a bit of an odd bird, but in our resource-constrained environment they were just glad to have one more coder. But from the first week, he pointed out all the code (and business practices and just about EVERYTHING!) that he thought was "illogical" and he refused to work within the same framework. He had his own coding conventions and refused to use the company's conventions even after being asked/told to do so. His ability to get along and work with others was marked by the same "I'm right/you're wrong" attitude and he really pissed off a lot of people, not to mention the fact that several senior developers said this guy's code was impossible to follow, not because he was so advanced but because, although he was very intelligent, he didn't think like anyone else. Like everyone else, he was sometimes wrong but was so closed-minded that he wouldn't listen to anyone else's views.
What I'm saying is that even if the intention of the Cattle Drive staff is not to try to push their "business practices" on us but rather to streamline their process, learning to adapt to different conventions (even if you're still 100% convinced that yours are much better) is a good exercise for the real world.
Nobody codes alone...well, perhaps some people do code alone, but their code isn't isolated so it HAS to work with the code of others. Sometimes that means doing things differently than you'd like.
I can't say that the nitpicks don't frustrate me anymore, but I appreciate them more and more as I progress. Usually, I have to admit that the reason they piss me off is because if I had looked a little closer I would have caught them myself. So please stick around, Marilyn (and others). Your task is thankless but you are much appreciated.
p.s. That guy is no longer employed there
[This message has been edited by David Junta (edited March 10, 2001).]
Michael Pearson
Ranch Hand

Joined: Mar 11, 2001
Posts: 351
Hmmm...
I just organized my files in separate folders.
D:\Java Practice\Ranch\1a and D:\Java Practice\Ranch\1b.
I do this all the time because that's how I've learned to code in other languages. Do the same task a zillion ways to figure out what works best and is most acceptable.
This is the greatest code forum on the web, Java or otherwise!
Matthew Phillips
Ranch Hand

Joined: Mar 09, 2001
Posts: 2676
I generally like to name mine HundredA, HundredB, etc. for each variation until I get the final working version. I then change it to the appropriate name for submission.
Matthew Phillips


Matthew Phillips
Pete Pan
Ranch Hand

Joined: Mar 14, 2001
Posts: 44
So after a few versions you have
Hundred_Old
Hundred_Old_Old
Hundred_Old_Older_than_Old__Old
can I say version control?
Originally posted by bill bozeman:
I view this differently. If you were in the real world and creating a class you would name it Hundred. If you later needed to add some more functionality to it by making it format real nice, then you wouldn't change the name of the class to HundredPretty or something like that. You would take your currently working class and rename to Hundred_old (or something similar) just in case you really screwed up and need to go back and start again with the old version, and then you would make the changes to your Hundred class.
Also, many people I am guessing don't do assignment A and just jump right into the extra credit portion. Having the mulitple names I think is more confusing in the long run. While you can't go to assigment 2 until assignment 1 is done, you can go right for the extra credit the first time on assignments that have extra credit.
Just my opinion.
Bill

bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
Peter,
We have a naming policy here at the ranch where nick names or made up names are not permited. Check out this link for more info: www.javaranch.com/name.jsp
Please re-register with a more appropriate name.
Bill
PS. If Peter Pan happens to be your real name, I apoligize
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
Now, another post to offer my theory on your post Peter.
I am not a versioning expert and everyone has there own methods. But for me, if I have a class that I need to add some functionality, then after I get the code to work, I rename the current class to Hundred_old and name the new one Hundred. That way all of my other classes will continue to work (as long as I didn't change any interfaces). If I need to change it again, then I will delete Hundred_old and go from there. That way I have one old copy that I know works, and then one current or new copy. This way if something unexpected happens that I didn't anticipate, I can go back to Hundred_old. If I needed a version even before then, then I am out of luck, but I have never needed a version older than that. If I was working on something that it was critical that I kept older versions, I would then have archive files.
As I have said, I am not a versioning expert, and if there was something critical, I would probably use software that does my backups, but for me usually the new working copy and one prior version has been enough.
Bill
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Nitpicking the Cattle Drive