|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools |
Rating:
|
Display Modes |
|
#61
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
I can see how this would help enforce the rule, but the outcome isn't fair to the programmers that spend 14-hour days writing code for their robot only to have a team that is too lazy or too inexperienced come and just copy it all. Moreover, how is that helping to teach students how to program if they know that pre-written, working code is out there for them to just download? I know you can all sit there and say "Well, they would do the right thing...they would be GP and not steal it...blah, blah, blah." But honestly, if you know you could skip those hours upon hours of coding and spend 2 minutes downloading someone else's code, you know you'd be typing in the URL to that site. Don't get me wrong-I'm entirely open to helping other teams with programming help if they PM/email/IM/approach me at a competition asking for it. I'm more than willing to let people look at our code to get an idea of how it works. But this brings to a new level. At least when they talk to me directly, I know what their problem, unlike the people that would be downloading code from this "central location." |
|
#62
|
||||
|
||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
Quote:
Quote:
The teams that want to make themselves better will seek out the assistance of the teams that they want to learn from. The teams that want to make others better will seek out teams to teach what they've accomplished. I can't tell you how many requests we received in 2003 about how our autonomous worked. We gave explanations both at competitions and remotely to anybody that requested it. I have seen many teams behave in the same way in all aspects of the competition. Want to know how 71 dragged everybody around the field in 2002? Want to know how 33 automated their arm in 2005? Want to know how team X did Y? Just ask. That's one of the foundations of this program that makes it so great. I can't think of another program in which participants share their secrets. I really don't intend my involvement in this thread to be an argument. I just think that if we are going to have rules intended to level the playing field, they shouldn't hurt teams that put the effort in to go the extra mile. |
|
#63
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Let me start off by making a bad analogy to hardware. In the past 5 years the hardware guys have made a significant improvement in the FIRST program by encouraging the spread of designs. From multiple speed transmissions to omni-wheels to some craziness called swerve drive- they are sharing everything! Yet, on the software side we want to keep our code hidden. Teams put their electronics in black boxes. It's getting bad. Maybe we should take a play out of the hardware guys book?
Here's my 10 cents... Teams have a 1 season monopoly on their software. If a veteran team wants to re-use code from a previous year they should be required to post it in a "Software Portfolio" hosted by FIRST. The portfolio is publicly available to everyone. A new regional award can be created for veteran teams who share code, "The Software Award." An award that celebrates a teams generosity and their ability to write good software with even better documentation. |
|
#64
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
|
#65
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
With software, someone has to simply quickly download the files or do a quick copypasta. Maybe they have to go as far as to declare a few variables. As Bharat as repeatedly said, you cannot compare hardware and software. |
|
#66
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
|
#67
|
||||
|
||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
In your second example, you seem to be out of touch with the way that the camera code was implemented last year. I'm sure some teams last year wrote their own camera code, but the vast majority of teams (including mine) took advantage of the code graciously provided by Mr. Kevin Watson. So in effect you have the mentor saying this: "Sorry guys, we have code already for the camera. Just copy and paste it and call it a day." Maybe you would argue that such code should not be provided? Paul |
|
#68
|
||||
|
||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
My favorite language of all time (so far) is Java. For those who don't know, Java is a language that has huge libraries of pre-written code. People from all over the world submit their code to Sun so that it will be included in the next Java version. What's the point? I would say that it's rather like building a pyramid. You can't start with the top layer. You must start at the bottom and build up. Before you can write a game with orcs that attack humans (à la Warcraft) you must first know how to display an orc on the screen, how to get information from the user, and about 1000 other pieces of information. If every time someone wrote a computer game they had to come up with new code to read data from the keyboard, complex games would never evolve because everyone would be too busy building the bottom layer of the pyramid over and over again. The other point is that no-one is forcing teams to post their code. I myself would have no problem posting my code online for others to use. In fact, if I knew I were doing this, it might go a long way towards encouraging me to better document my code. Paul |
|
#69
|
||||
|
||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Paul |
|
#70
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
p.s. 25 doesn't have any flourishing software engineers so I am not standing up for my team by any means. |
|
#71
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
Now by no means am I against sharing designs. Anyone who wants to know anything about our drivetrain, for example, can feel free to ask me or any other student/mentor about it. I'm sure 968 feels the same way. We'll gladly share pictures, theory on how it works, why we did what we did, what we might change and do differently. However, we are not going to handout blueprints. What's the point of that? What is any student going to learn by handing a sheaf of CAD drawings to a machinist and then receiving a nice shiny transmission back? The answer is nothing. You would be cheating yourself. FIRST is about learning, and nobody learns anything if teams are forced to share code, mechanical systems, or anything else just to use them again. All that would happen is the original teams efforts are completely ignored and everyone reaps the benefits without any of the work. So much more could be learned by simply approaching a team with a innovative and successful idea and learning about how it works from them, and then implement it yourself. |
|
#72
|
|||
|
|||
|
Re: Ethics 101: To re-use or not to re-use?
<R71> Unaltered software modules developed during prior competitions may not be directly re-used. Just as designs for hardware COMPONENTS may be reused from one year to the next, software algorithms and designs may be reused. However, the specific lines of code must be customized for each robot each year.
The plain English of R71 is clear. It disallows the reuse of unaltered software modules, allows the reuse of software algorithms and designs, and requires that modules be customized for the robot each year. The rule was clear and easy to satisfy, hence no Q&A activity regarding it. The business of retyping code developed outside of the allowed work periods in order to make it legal is a red herring from a prior season. It did not apply this past season, probably because more than one person saw teams busily retyping their entire robot program in order to legalize it in a prior season, while the "illegal copy" ran the robot during practice matches, and realized the foolishness of this rule. Retyping modules, verbatim, did not satisfy the plain English of R71. Sharing is one of the key principles of the FIRST community. Sharing has been encouraged and has been expressed in many ways: design ideas, actual parts, actual software, etc..., have all been shared. From the point of view of the FIRST community, there is everything to gain and nothing to lose by sharing at any level that you are comfortable with. If someone walked up to me at a competition and asked for a copy of the source code for our robot I would hand it to them without a second thought. I would like to think that the recipient would learn something from it. The same goes for any of the mechanical aspects and wiring aspects of our robot, in any level of detail. I would encourage every team to share at any level of detail that they are comfortable with as nothing but good can come of it. I am not one to think, however, that we should have rules that force sharing. Forcing sharing is as much an anathema to FIRST principles as is the notion of seeing a robot covered by a black shroud to conceal "trade secrets" while it is in the pits. There are so many teams eager to share that we need not make teams uncomfortable by forcing sharing upon them. If the past experience is our guide, the rules for software development will change again this year. The notion of treating the software like hardware misses some of the fundamental aspects of software development. Suppose we were to place the same "customize modules" requirement on CNC software used to turn out identical parts that are used in a team's robot year to year. Just what purpose would customizing the CNC program have, only to have it turn out exactly the same part. A module that implements interrupt driven wheel counters is exactly the same. The end result is the count, no more or less than that. The role of customization here is exactly the same as a rule of customization for the CNC program that turns out exactly the same axle as last year. I would hope that the rules for software development get changed so that they reflect the nature of the software development process. There isn't any need to customize a software module that provides wheel counters, and that the program for the robot will be customized given that each game is entirely new, is a given. Lacking that, it is best to follow a reasonable interpretation of whatever the rules may turn out to be. Eugene Last edited by eugenebrooks : 06-12-2006 at 02:18. |
|
#73
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
Their is a significant difference in the ability to reverse engineer hardware over software. Many people can look at an assembly and then create a design from it. Thereby duplicating that assembly without mechanical drawings. The same can not be said about the software. Sure, you can guess as to how the code is implemented. However, you still don't know the design or the implementation.
I think it would be a step forward for teams to share their code. It's against my perception of FIRST to allow veteran teams to dominate autonomous by leveraging years of software development. It might be a good solution in the private sector but not in FIRST. |
|
#74
|
|||
|
|||
|
Re: Ethics 101: To re-use or not to re-use?
I don’t know what the big deal is. Many of you have typed more characters here than it would take to program the robot – autonomous mode included. So, your displeasure with the rule can’t be about wasted typing effort. Many have pointed out that the requirements change enough from year to year so that not much, if anything, from the code can escape customization. Since the rule, as all <R> rules, must only apply to what goes in the crate on ship day, then go ahead and start with the old code. By ship day it’ll be tweaked up beyond all recognition – TUBAR.
Any code that hasn’t been touched, you can rewrite. You’ll probably find you’ve improved it, if not in function, then in the appearance.There’s been a lot of discussion about the difference between hardware and software, especially as to why we can’t equate the two. Well, the main difference I see is that with software the raw material is infinite. We can create and destroy it with the press of a button. If we can live with leaving perfectly good hardware behind each year, then having to recreate software shouldn’t faze us a bit. There are times when I wish the DoD had an <R71>. I often write CAE software to facilitate signature research and analysis. There are a number of dinosaurs from the eighties, usually written in Fortran, that try to predict atmospherics, bi-directional reflection, thermodynamics, and etc. I don’t know how many times management wants us to incorporate this chunk of code from the Air Force, or that from the Navy, into something we can use to predict the performance of future combat systems. They all have this joint meeting of planners, each wanting to leverage their programs, so they conclude we can just write a wrapper around stuff that may, or may not, have worked all that well to begin with. My group prefers to start from scratch with the code, to take the essence of what has been done and bring it into line with the 21st. century. So, there may be some method to the madness of <R71>. It forces us to revisit and perhaps improve upon what was done, instead of dragging along dinosaurs year after year. |
|
#75
|
|||||
|
|||||
|
Re: Ethics 101: To re-use or not to re-use?
As i said in my last post and like alot of other people have said, FIRST is about learning. This rule is simply a big sign saying "learn from your code and know how it works" and so no one blindly copies things that they dont really know about (I know Kevin's code is hard to understand but an attempt can be made). Sharing your code is a great idea but in no means should it be the loophole for this rule. Yes teams that put in the hard work should reap the rewards but, these teams should be able to teach new programmers, robot designers, or someone with a question year to year about their code or part. I see copying and pasting code to be the same as sending a coppied CAD drawing of a mechanical component to a machinest. no one learns from anything. If some one learns from part of the robot in any way it is a whole of a lot better. FIRST is about teaching the students and simply copying and pasting or stealing designs is neither a goal of FIRST nor in the spirit of FIRST.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Robot Ethics? | negfrequency | General Forum | 33 | 01-06-2006 18:55 |
| Does anyone else NOT use a long arm to place a tetra on top of the Goal? | mad_cloversc | General Forum | 29 | 08-03-2005 00:44 |
| Accelerometer Use | Doug G | Programming | 2 | 15-12-2004 09:06 |
| can we use? | Allie | Kit & Additional Hardware | 5 | 13-02-2002 15:54 |