VirtualUniverse

Marvin:

I took a look at your changes to VirtualUniverse:
https://xith3d.dev.java.net/source/browse/xith3d/src/com/xith3d/scenegraph/VirtualUniverse.java?r1=1.7&r2=1.8

First, I think you should add your @author javadoc tag when you make changes to a class. If I were David Yazel, I would be upset that someone was passing their code off as my own. When you do not add your @author tag, it looks like the original author wrote your code. Generally, people only want praise or blame for the code they actually wrote. If you do not want to add your own name, at least insert an @author tag of “Unattributed”.

Second, I don’t use VirtualUniverse so this does not really affect my code here but don’t you think your non-standard changes deviate too much from the VirtualUniverse in the Java3D API?

Third, why use the custom class ROList as a return value? If you are going to deviate from the standard Enumeration return value, why not use an Iterator, an array of View (View [ ]), or an unmodifiable List instead?

Fourth, did this change really need to be made?

I didn’t want to post as an author of this class when I just made code cleaning. How is this “Unattributed” thing meant. It sounds like a weaker version of @author.

You don’t use VirtualUniverse? Don’t you have to use it, what writing a visualizing Xith application? Strange.
ROList (deprecatedly) implements Enumeration. So any code will be compatible. And the benefit is, that you can use java 5 loops, save code in an implementing class, since you don’t need to write all these getBla(int) / geBlatIndex(Obj) / getBlaCount() etc. But the most important benefit is that with the loops it is quite laborious to loop through an Enumeration and basically there is only one way (the same for Iterator). It results in much cleaner and nicer code when you have an Iterable implementing List or Collection.

For Enumeration / Iterator look above, for unmodifiableList look into the other thread and for Array I would say, pushing all the items into an Array each time calling the getAllBla() method is not very high-performance.

Because using an Enumeration is not very comfortable. So I wanted to plain the way to use a normal list for looping while keeping the advantage of a read-only object. So Collections.unmofifiable… is the best way, I think. But there’s still this thing with the Enumeration compatiblity.

Instead of providing your name, you write “@author Unattributed”. More on this here:
http://www.java-gaming.org/forums/index.php?topic=11069.msg92579#msg92579

This webpage recommends using “unascribed”:
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#tag

If you don’t add your @author tag or at least “@author unascribed”, any changes you make to the code, including “code cleaning”, will be attributed to the original author. This is not fair to the original author.

I was incorrect. I do use it. I just don’t call the getViews() method.

If you are going to make a change, I lean toward arrays for their simplicity, e.g., a View [ ] return value. Are you sure arrays hurt instead of help performance?

Marvin:

I see that you just modified one of the classes I authored without adding your @author tag. It makes it look like I wrote the code that you wrote since my @author tag is the only one in the file. This is a form of forgery/plagiarism and it must be fixed at once.

I reverted your changes. I practice “code ownership”. The “code owner” is the original author of the code. You should get permission from the code owner before you make any changes. Most likely the code owner will want to make the changes himself. The only exception to this is when an emergency change needs to be made because the build is broken.

Once I am no longer active in the project, you can assume code ownership of my code or let anyone make changes. Until then, however, I will perform any “code cleaning” that needs to be done.

David Wallace Croft:

I said I didn’t want to pose as an author. So with other words, I wanted to avoid plagiarism. Plagiarism is when you pose as the original author of something that is not produced by yourself. You call it plagiarism, if I didn’t add my @author tag to something, that I modified (only very slightly), but didn’t author? So, please be careful in your word choice. (Yes I know, you chose it with intent.) How have we come on that level ???

But I took your advice lately and added my @author tag to each and every class I modified, well it seems like I forgot one, sorry.

Hey, I don’t want to overtake your classes. I just added generics to one of your classes, which doesn’t hurt anyone writing java 1.4 coding with your class (I assume you were talking about org.xith3d.behaviors.impl.BehaviorSchedulerImpl) and will help someone writing java 5 coding a lot, because he doesn’t need casts i that place.

So please, great code owner, could you modify your class to support generics, since I, as not the code author, am not allowed and don’t want to change it?

Is this ok?

It is fine as it is for now.

I hope we have reached an understanding of how we can cooperate on this Open Source project without stepping on each other’s toes.

Well, in a way, yes. But actually this no collaboration on an Open Source project. What you want is to commit a piece of Public Source to an Open Source project. And you will hate everyone especially me when one dares to change something in your holy code. Cooperation is something else.

You can’t deny that this little change I made to your code actually made sense. It was just three lines or so of a change making it java 5 aware. That really doesn’t hurt or offend anyone, but helps and makes the code better. I think, it’s just riding of priciples, what you are doing and has nothing to do with cooperation.

I would always ask before I make real changes to someone’s code especially when he is actively developing and active on the forum. Or I will make the changes and ask afterwards and accept the reverting (or do it on my own), when it was wrong. I just couldn’t know, that you’re so pissed when I make a so small change like this one. And reverting this change was just kid’s behaviour (sorry, but it’s the trouth).

I really think you’re doing great efforts to the project and will always honor them. And you should do this to me. When I make a change, it is absolutely predictable, that next hours you will open a new thread on the forum to blame me for this change and to tell that it was absolute nosense. I really have good reasons for my doings and I watch out, not to break the API or compromise someone, but It can happen and I will always be ready to talk about it on a good level. If you have good reasons, why a specific change shouldn’t be, just tell me and we can discuss, like you did sometimes. But don’t ever say just “I object (with no reason)”. This wouldn’t be collaboration, but rivalry and is not in any sense of cooperating on an Open Source project.

For the future I wish to have real cooperation with you like I have had with everyone else on this project. I will try to avoid your code as far as possible and will most always ask for a change. You are free to change my coding, if you have good reasons, since it is Open Source, but do it in my coding style. One should always stay in the style that’s found, and I’ve tried to do so.

I really hope we can reach a better level of communication, since it was not beneficial for the project.

Please accept my changes to the BehaviorSchedulerImpl class or redo them on your own. You’re coding in Java 6, so why leave this class in Java 1.4 style? There’s no real reason except for offending me. If we are clear now and can make peace, we could stop offending each others and you were free to change this class.

Marvin

Yes please, it really makes me sad to see rivalry on these boards. I’d be pleased if a good compromise would be reached on majors issues.

Here my 2cents :

@Croft : one more time, great work but don’t forget readability is a must. If you just delete all your “///////////////////////////////” lines and refactor with Eclipse to conform to the standard java coding practices applied everywhere else in Xith. I don’t think you should be so sensible about your code : nobody’s gonna rant at you because it uses generics… Your attitude means that nobody else can ensure “tech support” about Xith-Collada. That’s not good.

@Qudus : maybe it’s possible to be even more careful (you and me) about not breaking API compatibility. I wonder how I didn’t thought before about making a wrapper of the TextureLoader2 class with the OldTextureLoader API. It’s so easy to do, and yet so convenient. Oh, and also great work. I think if you had put your “@author” tag it wouldn’t have been a problem for croft cause he just wanted to make sure your changes weren’t attributed to him. Anyway that’s alright now.

@Me : hey stupid one just stop giving advice to others and begin working on yourself. How can you possibly say that when you have that many shortcomings. :wink:

[quote="<MagicSpark.org [ BlueSky ]>,post:9,topic:27901"]
Yes please, it really makes me sad to see rivalry on these boards. I’d be pleased if a good compromise would be reached on majors issues.

Here my 2cents :

@Croft : one more time, great work but don’t forget readability is a must. If you just delete all your “///////////////////////////////” lines and refactor with Eclipse to conform to the standard java coding practices applied everywhere else in Xith. I don’t think you should be so sensible about your code : nobody’s gonna rant at you because it uses generics… Your attitude means that nobody else can ensure “tech support” about Xith-Collada. That’s not good.

@Qudus : maybe it’s possible to be even more careful (you and me) about not breaking API compatibility. I wonder how I didn’t thought before about making a wrapper of the TextureLoader2 class with the OldTextureLoader API. It’s so easy to do, and yet so convenient. Oh, and also great work. I think if you had put your “@author” tag it wouldn’t have been a problem for croft cause he just wanted to make sure your changes weren’t attributed to him. Anyway that’s alright now.

@Me : hey stupid one just stop giving advice to others and begin working on yourself. How can you possibly say that when you have that many shortcomings. :wink:
[/quote]
Agreed in all points.

And let me say, it is a great way, how you said it.

Marvin

Well pleased to hear that, it’s really not easy to find the good words, you know.

[quote="<MagicSpark.org [ BlueSky ]>,post:11,topic:27901"]
Well pleased to hear that, it’s really not easy to find the good words, you know.
[/quote]
Yes, I know exactly what you mean. I was in this situation some times the last days :slight_smile: And I couldn’t find a good way like you did. Let’s see what Croft is gonna say…