Code Copying Survey for Developers
Struan Robertson writes "With all the controversy surrounding SCO's allegations that its Unix code was copied into Linux, we're running a survey with ZD Net to gauge industry practice on code copying. Do you keep a code library? Do you take it from one employer to another? These are the questions we're asking. All answers will be anonymous. The results - with expert legal analysis - will be published free - we're not doing this to sell reports etc. If you're a developer and happy to help, see our
questions on SurveyMonkey.com."
I think the first person to write a loop should complain a lot!
.. if all code was "free", then this wouldn't be an issue.
...right here. And here, too.
And lots of other folks contribute too. Good times!
The Army reading list
Hell no, I like rewriting conversion and formatting routines. That's like a paid vacation!
This is one reason that software patents are just silly. At some point, virtually every technique will have been written, then software companies will indeed all become like SCO: A few developers and a fucking platoon of IP lawyers.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I don't think so.
"All answers will be anonymous."
riiiiiigggggggghhhhhttttt...
...you can build on view source followed by a cut-and-paste. I beg, borrow, or steal from wherever I can and I expect you to do the same from me. I am open to learning new techniques, code structure, and excellent documentation from the code I read and steal. I have never taken a core money making idea and used it as the central core of my own money making idea, but everything else is fair game as far as I am concerned.
we're not doing this to sell reports etc.
Not to troll, but why are so many people here opposed to business and money? The submitter probably knows (from experience) someone here will accuse him/her of greed in the first five posts if they didn't add that discaimer.
Its technically the same code, but I remove the the parts that are not used.
Besides, even if I didn't have the database. I will write a function to do something very close to the exact same way 90% of the time. Most of the developers I know have very reconizable styles. I can usually tell who on my team wrote what parts by the code alone.
Sorry for my spelling errors, I dont have time to spellcheck.
Besides, the parts of a code library that are most likely to be reusable are also most likely to be publically known algorithms (B-Tree, MD5 hash, etc.) and therefore published in some form already. It's probably wrong to take something that you were specifically paid to produce for one company along with you to another, so don't do it.
I never vote for anyone. I always vote against.
-- W.C. Fields
Well said, Mr. McBride!
Is unreasonable. You are assuming I would reuse code but not saying if its in house or between companies. In my stats class this question would be deemed unethical and slanted. Thus, the results of the survey would be thrown out.
It asks
3. By law, who do you think owns the rights in a piece of software that you develop or in code that you write?
Me
My employer
The client who commissioned and is paying for the development
But never asks where I developed it, nor what legal documents exist to protect various parties.
Obviously, if I'm working on code under a work for hire agreement, it belongs to the guy with the cash. If not, It's copyright me. If it's OSS code that I need to improve for a client's benefit, of course it doesn't belong to either of us - it belongs to the original author.
Did I do it at home? Did I start it before or after getting involved with the company or client? Does the client mind freeing the source? Does it contain proprietary information?
This survey is worthless so far, except to publish articles.
After fifteen years of C/C++ coding, I'm pretty sure the answer to life, the universe, and everything is in there somewhere.
its in many products. and since the IP history is so insanely tainted, no one can really complain, because they themselves aren't really allowed to use it.
there are other ways to subvert the nonsense..feed it back on itself
Emmm. Just got this question in the survey:
6. Would you re-use blocks of code written elsewhere
a) ( ) Only if you were confident that nobody would find out
b) ( ) Whether it would be found out or not
Where is 'c) I won't'?
"All your OS are belong to us" - D.M.
Sounds like you don't really understand much of the code you put out . . . I just hope you're not "writing" anything critical.
Every collection of people has its underground economies. They often perform an important function so long as:
- The consumers don't abuse the system
- busybodies don't start poking around and trying to hold people accountable for what everybody is doing.
Balance the two and nobody really gets hurt.Four fifths of all our troubles in this life would disappear if we would just sit down and keep still. -C. Coolidge
On a personal level, I use code I've written on multiple websites, such as a simple popup script for images, though I'm sure this isn't what this article is asking, and probably isn't talking about interpreted languages, either.
Alot of these questions are very badly written. First off, I'm wandering through it, and I'm wondering if this question is referring to code that I have written, or is it code that I've just found along the way. This "survey" really needed to be beta tested (even in an irc forum or something) before being posted to slashdot. Heck, the mods coulda helped out a little and looked at the survey first...
Unless you specifically sign an NDA or it's in your contract that you are not allowed to do this, I don't see what the problem is. Writing everything from scratch every time you go onto a new project at a new company when you have code snippets that could be used would be ridiculous - it would be a waste of time and money for your employer. On the other hand, taking work that was done by you (and probably other programmers) and using it at another employer is certainly underhanded, especially if you've signed an NDA stating that you will not do it. If you haven't signed an NDA, check your contract. If nothing about code is mentioned, you are probably safe. Even a lot of "intellectual property" paragraphs can be invalid - people falsely assume that if the y have "intellectual property" protection, they are safe. Actually, the terms have to be very verbose and descriptive, incorporating either copyright rules or patent rules. A lot of NDA contracts that I've seen from prospective employees from their former companies (in the gaming arena, where NDAs are almost universal) were invalid!
Let's take a look at the game industry, the same code is often used over and over, or at least the same algorithms because you can't afford to loose efficiency in your engine. Especially with modern game engines where the best cards on the market still choke... FarCry? Doom3?. Sharing of code in games is not required, but as an earlier post said, why reinvent the wheel?
... I make sure that I write in a different programming language every time I change jobs.
Sriously though, the problem with coding, is that it is still more of an art than a science, and therefore the endproduct tends to reflect the style of the developers. It creates legal issues, but it's like asking Da Vinci to paint in a different style for a patron, "because we don't want those Sistine fellas complaining on infringement of copyright"- Ridiculous yes, but very real (IMHO).
Why would I keep a library of code to help me get the job done faster and for less money?
1.Are you
Freelance / independent developer
Corporate / in-house developer
Software house developer
Other (please specify)
2.Where are you based?
UK
Rest of EU
USA
Elsewhere
3.By law, who do you think owns the rights in a piece of software that you develop or in code that you write?
Me
My employer
The client who commissioned and is paying for the development
4.How often do you or would you re-use blocks of code that you wrote when working elsewhere?
Regularly
Sometimes
Never
5.Whether you do or do not re-use blocks of code written elsewhere, do you think it is OK to do so?
Yes
No
Don't know
6.Would you re-use blocks of code written elsewhere
Only if you were confident that nobody would find out
Whether it would be found out or not
7.If you ever use blocks of code in your development that were written by someone else, do you check that you have permission?
Always
Usually
Rarely
Never
8.Do you think you need permission to use code that was written outside your company?
Yes, always
Not always
Never
9.Which if any of the following statements is true
It's standard practice to use another's code without permission - and it's usually lawful
It's standard practice to use another's code without permission - but it's usually unlawful
It's not standard practice to use another's code without permission
11.Do you have your own code library?
Yes
No
12.Did you write all the code in that library?
Yes
No
13.Would you take your code library with you, if switching from one employer to another?
Yes
No
14.Do you ever try to reproduce the way another piece of software functions, but without copying any code?
Yes
No
15.Have you or would you ever reverse-engineer an application and then reuse that code?
Yes
No
16.Do you have any other comments?
And you REuse the code. If I had to I'd reimplement it but in the end it would be the same way. (How many ways can you think to write a parser?)
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
This question:
3. By law, who do you think owns the rights in a piece of software that you develop or in code that you write?
Me
My employer
The client who commissioned and is paying for the development
Is missing: Me AND My employer - as I share the ownership 50/50 due to our inhouse rules.
I do not fear computers. I fear the lack of them. Isaac Asimov (1920 - 1992)
Patenting or copyrighting an individual block of code is like patenting or copyrighting the color red. A painter would never be able to patent or copyright the color red and demand a royalty for all artists who use red. Painters copyright their entire image -- even a large enough sub section is copyrightable.
Coding should be the same. How many ways can somebody write a decimal to currency string formatting routine? How many ways can somebody write an RGP go greyscale conversion routine?
note: for those who say "what about Pantone?". Pantone does not copyright the color itself only the name and the Pantone color number is copyrightable. You are always free to use any RGB combination you want but Pantone will guarantee that their color system will always generate the same color on any printer that supports Pantone -- this is the value of Pantone.
The survey is ill-written. The questions are too shallow to answer.
The question that asks whether or not you think it is legal to re-use code for different employers needs another option: "it depends". For instance, code released under the GPL with a former employer's permission is free to be used elsewhere. However, the survey doesn't ask whether or not the code was supposed to be kept confidential.
flossie
Write now. Defend liberty
...you can build on view source followed by a cut-and-paste.
Wowzerz!!!! A web career! How nineties.
I'd recommend you be careful with "beg, borrow, or steal" mentalities, sooner than later you may find yourself in a legal quandary, when you use some code that someone published academically, but is patented and protected against commercial use-
Such as:
1. Lempel-Ziv
2. RSA (in the past)
3. Need I really list more...?
In college in one class they taught you how to do this well. The thought was that if someone else wrote it well then use that instead of rewriting your own. There was a project where you had to do the whole thing from "borrowed" code.
Evolution or ID?
It's pretty ridiculous to lament the current state of average software quality and then require developers to reinvent the wheel every time they're on a new job or working for a new client. It may not be lawful, in all instances, to copy code between projects and clients, but in order to meet requirements, especially time requirments, while ensuring a quality project that's as bug free as possible, copying is not only a necessity but a common practice.
...
Besides, what are we really talking about most of the time? Code libraries? What's the difference, really, if I copy code from my library or use routines from memory, things that I've been required to code over and over again, like validation routines, or basic algorithms?
No one is going to say that they go from client to client and write brand new code each time. Furthermore, if I were a client I would have to seriously question whether I'd even want that. If I were on a tight time constraint I wouldn't get it even if I did want it.
It would be like commissioning someone to build a bridge and then requiring that they only use brand new formulas anc techniques. Okay, but I'm not gonna be the first guy to test it
Chr0m0Dr0m!C
What would make sense would be an Open Porn movement. All porn generated by the FPF would be free, but you would have to pay for actual sex with the depicted individuals.
In other news, parent gets modded -1 Imbecile, this post modded +5 Fricken' Accurate!
Film at 11.
Untree? ogilopoly?
I've never seen a Scottish accent in print before...
If I write a program that performs a particular function, and then later want to write a program to do the same thing, I end up producing an almost exact replica of what I coded previously. Maybe it's just me, but my coding style is basically set in stone.
So, in that key, I'm not physically keeping a code library, but I am reproducing code that may have become the property of another party.
...unless you really know what you're in for, and are ready to talk about reforming our laws.
Our intellectual property laws, when interpreted strictly, are a bit of a farce. Especially when it comes to thinks like patents, work for hire, the nebulous concept of derived works, "clean rooms..." all the way down to the embattled idea of fair use, backups, lending versus copying, onerous and unenforcable NDAs and employment contracts, and the end fact that, as a society, we have never ever, even for a day, played by the basic copyright rules "100%."
Our whole industry functions by ignoring the rules most of the time. I have never worked anyplace where all the rules (licenses, for instance) were followed. I always follow them myself to the best of my abilities - but it's impossible. I've probably unintentionally violated a license by now, and I've almost certainly infringed thousands of patents. I have never brought code from one client to another without permission or license, not even once, not even when it would have saved untold time and money and was simply the most obvious, easy thing to do... but over the years I received quite a bit of pressure under various circumstances to do it, and I'm certain that quite a few other people do.
That said, because the SCO issue (or non-issue, to be frank) is raised, let me say that it's a different thought process when you're going between the commercial and the free software world - both because the pressures to cheat don't exist (or hardly to any similar extent) in OSS, and because it is almost certain in OSS you'll be caught out. It's like parking a stolen car on the street in front of your house.
But commercial project to commercial project, yes, I bet it happens quite often. And also from OSS to commercial - I would be shocked if there were many large commercial projects that don't have stolen OSS code in them...
Want to Know How to Cheat the GPL? Read On!
Sounds like you don't really understand much of the code you put out . . . I just hope you're not "writing" anything critical.
I've done my share of business critical production manufacturing systems, with a predominate number of positive outcomes. I don't confine myself exclusively to ripping off code, but in times of tight economics and small budgets, a little theft can save the day and the project plan.
On understanding: We learn from what we read and what we code ourselves. We all steal code, if only from the textbooks we read. I use other's code as a learning experience. It is one level of experience to passively understand code by reading vs. decomposing and integrating into a production system. For me that is an active form of learning that is more likely to lead to understanding. You can learn and gain understanding from your thievery. I can at least.
Don't you need to understand the topic of the story before going around marking posts "offtopic"?
...not to document your own code?
Sorry, but a hack != programmer. You can toss together a bunch of stuff other people have written, but when it breaks you'll need to be able to fix it. If you never learn how to do that, you'll never be more than a cut-and-paste drone.
It's great to be able to use resources like View Source to learn new stuff, see new techniques, even find quick examples of how something's done. But if you can't understand how to do it on your own (which may take much longer, granted) then you're not going to last.
...in my brain.
typical government worker mentality
If you maintain a library that you take from job to job just make sure that your core code is under a BSD-style license (and that your employer is aware of this). That way, a few jobs down the line your past employers can't come screaming that you or your present employer are using "stolen" code.
I use code which is written by others and distributed for use ALL THE TIME. Things on news groups "here's how you ..." things on web-pages and in books which are done as tutorials. Furthermore you have the issue of fair use -- if you use three lines of a 200 lines program, and even those you adapt to your environment, do you answer on this survey "I never copy code" even though you do, or "I do copy code without the author's permission" when you'r not copying from a legal standpoint?
Virtually all questions in this survey have a resemblance to a "Have you stopped beating your wife?"-style trap.
If it's unintentional, they're pretty crappy survey writers, and should withdraw this and rewrite it. If it's not unintentional, then they're weasles.
myself and every other developer I know it's common to build up an arsenal of code (written or otherwise collected/customized) for various things. more importantly there's the problems and how you solved them that you'll never forget but the problem may come up frequently regardless of where you work.
it's pretty rare that you find code that you can copy paste and compile. usually you need to read the code to understand the algorithm, then rewrite it to suite your application/variable names/coding style.
one-off hacks and throw away code probably all looks the same company to company programmer to programmer. it's the overall system design and high level architecture that I would consider the meat of the IP anyways.. and it would typically take more than a single developer to pickup and rebuild it somewhere else
bite my glorious golden ass.
Actually Smalltalk and Java ARE their libraries. Just try doing something without them. The harder part I've found is of course library managment once you get beyound a certain point (The Large HD effect). Maybe a source control that has the code, the documentation (Text and UML), and the ability to pull out what exactly's needed (Now which kind of parser did you need?)
Yes I keep a code Library, and yes I do re-use it
Yes I have had several employers since I started the library.
It is I I is it is it I?
all of these sentences have appeared in books, since I just typed them am I now guilty of copyright infringement?
And whose gonna reign in those infinite monkeys on infinite typewriters?
Maybe we should create a program to generate all possible combinations of the ascii code symbols then copyright anything that could possibly be written either as an e-mail address, webpage, novel, etc. Then patent each one and get royalties from anyone who ever uses ascii...
How much would it be for us to put up our own satellite communications netork?
It's written by someone who either doesn't understand the issues involved, or is interested in 'interesting news' not a legitimate survey.
Most questions don't take into account the varying ways that code gets licensed and work gets done. They assume you're either giving the code to your employer or stealing it, when there is a whole universe of licensing paths in between those two nodes.
Congress is only authorized to grant monopolies in form of copyright and patents for things that give progress to sciences and useful arts.
Most written code does neither, therefore shouldn't it be free (as speech) ?
However, I am still waiting to see a business model that allows me to be as free as the code ... That would be nice, wouldn't it?
I completely agree with you that the parts of a code library that are most likely to be reusable are known and published algorithms. That and other trivial things is pretty much all I have in my code library.
Then you went and drew two conclusions that were completely different from the ones I drew out of the same facts we both agree with.
First you say "code libraries aren't that helpful" in the title. No, they won't be a significant portion of the code you right for the new company, but they're helpful enough in preventing you from reinventing the wheel every single time. Do I really want to rewrite everything I use again and again everytime I need it? Heck, I find them very helpful in preventing me from doing that.
Second, you say "it's probably wrong to take something you were specifically paid to produce for one company along with you to another, so don't do it." It's not that black and white, and it really depends on what exactly is in that code library (ethically at least. IANAL so I couldn't tell you legally). Without question, only code you wrote yourself is ethical for you to take with you. Other than that, in my opinion anything not directly related to the project you were working on is fair game. How likely is it that you're not going to be using certain primitives in your new job? How likely is it that if you write it again from scratch it will be different? You're just saving time, not giving away company secrets (which would be unethical)
Warning: Opinions known to be heavily biased.
.... but the comments are all mine! HAHAHAHA!
#include "humorous_pop_culture_reference.h"
For example:
In most large companies with their own programmers, when a program is needed to do a specific funtion, they look at their old code to see if something comes close and then modify it as needed. This saves much time and $. If something is already there just use it if it works, save debugging and writing time.
But this is pre-existing company code, not from a personel library. Many do keep a personel library of generic modules that can be assembled to do many things in many ways. None of this would be considered proprietery IP by anyone. Although I'm sure some companies and Universities would try. There are only x number of ways to do any function in any language. Similarities will abound between programs that do the same thing, written in the same language. You can't avoid it.
Professional Politicians are not the solution, they ARE the problem.
Interesting pice on ms os release. Read it
here
I reached a question with no possible answer that would fit my situation. It wanted to know how much code I would steal from someone else's code without permission, and the answer is NONE. I'd reuse small chunks of my own code, but never anyone else's without clear permission.
Well, looks like there's no need to bother checking out the results once they're done since they're going to be seriously skewed.
You never ask whether the person wrote the code in their code library on their own time. It seems like you assume that it is all written on someone's dime and then reused in someone else's project.
If the program were 5 lines long you could safely use 5 or 10 percent I think :) Below a certain threshold you can't own a copyright. For example I may own the copyright for this post but not for the word "copyright". Similarly very small or unexpressive parts of a program can be used safely.
These questions were written by someone who doesn't understand copyright and/or has an agenda.
It does. Stupid questions of the type "have you stopped drinking whiskey in the morning?". I got really aggravated after answering 5 questions.
I have a "code library" (whatever they mean by that) which I wrote in my spare time. It is released under GPL. I'm the copyright holder. I can assign any other license to that code. Therefore I can embed parts of this library in any proprietary code I write for my employer.
I also reuse other people's code released under BSD, MPL etc. This is all legal, but the survey doesn't know about this stuff.
I passed the Turing test.
Not only do I have a personal library, I have an extensive library of "Learn by Example Books". Perl Cookbook etc. Why would someone create the same function, over and over again? What would it accomplish if I did? Chances are I would do it almost exactly the same way each time. And the more times I did it the more uniform (structure, variable names etc.) it would become. The main thing I think it would accomplish is less comments. Why document what I've written many times before, I certainly know what it does.
Breakfast served all day!
I am perfectly okay with the idea that my employer owns the former and that I can't treat that as a portable code library, and they're perfectly okay with me including my code library's code in their products, as long as my license (the BSD license, as it turns out) allows it with minimal encumberance.
It can complicated to decide which base I'm writing the code for, but I typically use the rule that if I'm in the office it's theirs, and if I'm at home it's mine. I write in Java, so I use package names to further delineate which is which.
Everybody wins this way : they get more code, I get code that makes my life easier throughout my career.
Script kiddies who copy HTML by the use of "view source" rarely ever write anything even remotely "critical".
Reusing your own code is stealing? You'd freak if you saw someone reusing their own code? You can be truly glad I don't work for you, as I can assure I wouldn't put up with your tantrums, and if you called me a theif for reusing my own code you'd be soon know the error of your ways.
So ZDNet is now gathering data so that they can ask: "When did you stop copying code ?"
What people do regarding copying code from one employer to another has nothing to do with Linux and for ZDnet to try and survey copde copying and then make a tenuous association with Linux is disingenuous at best.
There is no SCO IP in Linux because SCO have not sent a single patch or email to a single maintainer asking for lines to be patched out. This is any SCO code is present then its present because SCO want it there for a reason and thus they accept the curent Linux licensing for that module.
I maintain at home a library of code under an open source (BSD style) license. Once an employer has given me permission to use and contribute back into that library, THEN I use it at work, and I take it with me when I go. If they want to pay me to reinvent the wheel, its on their dime, no problem! If they want the advantages my existing code, then they have to let me keep improvements. Sort of an informal LGPL license, without the "lesser" wording that smacks of posturing.
To the point - This survey did not allow me to clarify that my code library brought between jobs was legal, and it bugs me that it may be used to support the position that more people ignore the law than may actually do so.
Your one of those people who tries to get all coworkers fired on a weekly basis aren't you?
What is wrong with using code from a personal code library? I write a lot of code on my own time that I own, and no one else. If instead of re-writing that code for my company (which would pretty much be identical to how I did it before) I want to save time (and therefore the company money) what is wrong with me contributing that code?
If I ever saw in a code review or evaluation what looked like code that can from a personal code library I'd freak and ask management to let the person go.
This is serious stuff. Copying code without permission is stealing. Period.
If I'm re-using code from my personal code library, how:
1) Can I be copying it without permission? I gave myself permission when I copied it.
2) Can I be stealing? After all, I'd be stealing from myself.
Some of us do work on our own not-work-related projects after work, you know. And those of us who do so often find that the people at work appreciate it when something we were playing with "just because" turns out to be useful later, shaving weeks off the development time because we can take that code right out of the library we developed for ourselves.
All I really want now is a better way of storing code in my own personal library. But I've not figured out the best way to do that yet.
Coming soon - pyrogyra
code-monkey != computer scientist
Previous message brought to you by the RIAA with joint recognition from the MPAA.
Uh, how is taking code from your personal code library copying code without permission? Where do you work? Do you actually work in the industry?
Just my handy-dandy SCO code library. You'd be absolutely astonished at the number of places I've found to use all that SCO-IP code.
In all seriousness, however, I do keep a small library of Java code for my personal use. If I were to change jobs, and that new employment didn't already have code to perform functions contained in my personal library, well, depending on the professional climate of the organization I would consider passing some of my personal classes along.
Not sure if that's classified as "stealing" I belive it's some sort of "CopyRight Infringement".
I HAVEN'T OWNED A TELEVISION SINCE 1967 AND ONLY WATCH MOVIES ABOUT LEFT-HANDED ALEUT LESBIAN PIPEWELDERS! FUCK HOLLYWOO
I refactor my code regularily, it is rare that code would go unchanged even from one project to the next.
love is just extroverted narcissism
The questions are incredibly vague and guide the survey-taker enough that absolutely no assumptions should be gleaned from the results of this survey.
Given you have email address which reads codemonkey, I guess you attitude isn't too surprising. Let me guess, do you also insist on canning a person who doesn't work 70 hours a week, too?
Say that I write some code on my own time, perhaps as part of a F/OSS project. At some later time, I am being paid by Employer A to code a commercial product, and incorporate *my own* OSS code into it. This is legal; since I clearly own the copyright, I can do whatever I want with it, including license my employer to use it in a commercial product. Then, later still, I incorporate the same code into a different commercial product for a different employer B. Employer A sues employer B for copyright infringement. What happens?
Worse yet, employer A tries to patent the code you incorporated. What happens then?
Can employer A force you, through contract or lawsuit, to give up copyright of the code to them if you use it in their products? If so, what happens to the F/OSS product that you previously wrote that includes the code?
--------
Create a WAP server
> The results - with expert legal analysis - will be published free - we're not doing this to sell reports etc.
if you go to the site, you'll notice that on their front page they're advertizing Microsoft FUD by way of the Yankee Group.
what sort of analysis will the results of this survey be subjected to? I fear a slant....
I keep a code library, including source code written while working at my current company, at the behest of my current employers. If I were to leave this company, I would take it with me. And it would be OK, because I have the explicit permission of my employer to do so.
Why? Because the Open Source code I wrote on my own time is now being used here internally, and making the company money. Oddly enough, they like that sort of thing. So when they need an enhancement, they are delighted to allow me to keep it Open Source.
(I'm posting anonymously because I don't have explicit permission from my employer to talk about their views on Open Source)
Don't forget to look at this demo of things to come w/ software patents:
http://webshop.ffii.org/
And if you're an European citizen, please sign the petition:
http://petition.eurolinux.org/
1) ZDNet can pay for its own damned research.
2) SCO and copying were mentioned -- making the conclusion almost predictable, especially since ZDNet is involved.
3) Why would any right-thinking person answer a survey with vague questions meant to self-incriminate (even if nothing was done wrong legally or ethically)?
4) Anonymity is never a guarantee in journalism. There is little incentive to not reveal a source, and there's no recourse once revealed.
Take your slanted survey and shove it.
7. If you ever use blocks of code in your development that were written by someone else, do you check that you have permission?
A: Always
10. How much code would you take from the source of a single program without permission?
Blocks of code comprising up to 5% of the program
Blocks of code comprising up to 10% of the program
Blocks of code comprising up to 25% of the program
Blocks of code comprising up to 50% of the program
Blocks of code comprising more than 50% of the program
Duh?
The main reason this survey is so poorly designed is that it ends up directing you to fill 'marketroid' information, which is the only way you will get to see the end results of the survey.
Nice marketing ploy.
6. Would you re-use blocks of code written elsewhere
a) ( ) Only if you were confident that nobody would find out
b) ( ) Whether it would be found out or not
This one stymied me for a moment too, but the correct answer is 'b'. Basically it's saying, "if you do re-use code, would you attempt to hide it?" I reuse code frequently, and always with the explicit permission of the copyright holder, and according to the conditions they have set forth. Therefore, whenever I do re-use blocks of code, it is completely irrelevant whether anyone knows.
Stop-Prism.org: Opt Out of Surveillance
... the matter is interesting enough to discuss!
I once heard that there was a case in the UK where one was successfully sued for subconscious copyright infringement(*) for a piece of music.
Now this raises several questions for me (not asking for legal advice here, only informed opinions):
- Does this apply at all to the software world?
If it does:
- If one codes similar things for different employers - would that constitute a copyright violation if there is even subconscious violation?
- Is it possible to do FOSS work and being an employee at the same time?
(*) - It's somwhere on the web - I can't find it now but google should show it up.
I'm amazed. Unless a programmer is writing a new algorithm or method, do you think that user is writing unique code. If he has done something before ie: open a socket, resolve hostnames, open a file read data parse it, sort a list, use a link list. Do you really think he is going to re-invent the way he knows how to do it. Whether he writes it from his head or copies from his personal lib, it will be the same code. It's how all these bits and pieces are put together that make the overall program and functionality unique not the snippits, unless truely doing a unique and revolutionary thing. In fact I would venture that after a person had more than 5 or 6 jobs by your rules a coder would no longer be able to work because he would start running out of ways to reinvent the wheel.
I've found that every time I rewrite a piece of code, it gets better and better. Why would I want to copy the old junk that was written by a dumber me two years ago?
These comments do express the opinions of my employers, and, personally, I think they're complete rubbish.
I'd think pretty long and hard before answering these questions. This group appears to be a MS astroturf (false grassroots) organization, going as far as quoting that shill Didio from the Yankee Group.
The survey is full of misleading questions and will *force* you to admit you steal. Watch out.
...are those really nice checkbox images. I'm going to steal them.
Uhh... wait... that statement kinda infers about 90% of my answers to the survey now, doesn't it?!?
Then again, looking at them again, I'm kinda confused by the pock marks that you seem to have to "pop" to put your checkbox there. A couple of times I wasn't sure which option I was actually voting for.
That's a survey form from a Florida-based company, isn't it?!?
If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
question "Have you stopped beating your wife yet?". Assuming
that you have no wife or you have never beaten your wife, the
answer "yes" is wrong because it implies that you used to beat
your wife and then stopped, but "no" is worse because it
suggests that you have one and are still beating her.
According to various Discordians and Douglas Hofstadter the
correct answer is usually "mu", a Japanese word alleged to
mean "Your question cannot be answered because it depends on
incorrect assumptions".
Hackers tend to be sensitive to logical inadequacies in
language, and many have adopted this suggestion with
enthusiasm. The word "mu" is actually from Chinese, meaning
"nothing"; it is used in mainstream Japanese in that sense,
but native speakers do not recognise the Discordian
question-denying use. It almost certainly derives from
overgeneralisation of the answer in the following well-known
Rinzei Zen teaching riddle:
A monk asked Joshu, "Does a dog have the Buddha nature?"
Joshu retorted, "Mu!"
George Harrison, "My Sweet Lord".
Also Richard Ashcroft of Verve had unfortunate experience, with Bittersweet Symphony, getting screwed by the Rolling Stones for smpling four bars.
Not sure whether latter got to court.
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
you can surf slashdot while pretending to be working, and still have results to show at the end of the day.
You should have made reasonable efforts to
a) let employer A and B know you were using code you developed for yourself earlier
b) taken practical steps to ensure that both A and B have no claim on your software i.e not producing it on their time/ employment contract clauses.
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
I've implemented generic linked list libraries in C on so many jobs now that I could do it in my sleep. It looks a lot like the one in glib except that it has a few more routines for walking around the list. Yes that library ends up looking almost exactly the same everywhere I've ever implemented it (Incuding the comment about how I feel about having to implement the same linked list over and over again.) Is that stealing? I think not.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
This survey is worthless so far, except to publish articles.
... once a minute ... all weekend ... randomly.
I presume that we will all be responding to it, won't we? In fact, it seems that an appropriate response would be to dig through our code libraries for a perl script that can fill it out for us
> Can I be copying it without permission? I gave myself permission when I copied it.
Did you grant written permission to the company to use your library code? In the US, you can't implicitly assign copyright -- it has to be in black-and-white.
This is serious business -- I used to work with a guy who was threatening to sue a previous employer because they (really he) used a bunch of his personal library code. Even though nothing came of that, it had to be a pain in their asses.
Alos, a few years back, I got hired onto a consultancy and was asked to review their code library. Almost of all of it had comments saying (C) Guy Who Recently Quit. We basically had to toss it because the idiots didn't have rights for their own library (and it was buggy spaghetti code).
At my very first programming job, I had the opportunity to work with a few very skilled developers, and I held on to the code they used to to prototype a data management system. Is it illegal for me to have it? I'm guessing, strictly, yes. But I'll never implement that code elsewhere, because it was a very specialized client/server application for a very specialized client. I couldn't use it elsewhere, even if I wanted to...and quite honestly, most people code for applications and clients that are so specialized, that in most cases, it would be illogical to try and carry that over to another company (or even project). On the otherhand, it's useful for me to hold on to examples of "good" code and object architecture. And as far as the code I write for a particular company, it's useful for me to hang on to so that I can see what I'm now doing intelligently and what I'm still doing stupidly.
That's a hoot. That should make a rather nice demographic IP database for tons of people. No thanks. I'm not participating in any information-gathering system like that which is running on a Microsoft product regardless of how innocuous the questionnaire may be.
My Emacs directory will follow me from job to job. It's a 1.5M gzipped tarball of lisp code and settings that's evolved over 14 years and I'm not parting with it.
the good ground has been paved over by suicidal maniacs
Good coders just use "design patterns" ;)
I can say that as a Sun Certified Java Instructor one of the most common questions I see from entry level developers is "are there any gode sites I can copy and paste from?". I usually point these type of people to JavaAlmanac. In more advanced classes we end up spending more and more time talking about design patterns because there really is no point to reinventing the wheel. A this level most developers treat design patterns as more of a framework then anything else, mantaining a code library for examples but writing new code to tailor to the need at hand. After all the end job of most developers is to implement business logic and since business processes always change you're never going to be able to copy and paste for any decent sized business app.
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
I swear, I wrote that hello world! app in total isolation from other sources.
True genius is grasping a situation like a peice of fruit, and peircing it just right so that it drains dry.
I really want to haul the same old bloated and broken code that I wrote 5 years ago from job to job, like an albatross around my neck. That would really make me happy.
The biggest tempatation in looking for new jobs is being able to forget the current code base forever, and never have to add YET ANOTHER feature onto already-baroque code that nobody wants to take the time to rewrite.
That's "Mr. Soulless Automaton" to you, Bub.
Did anyone say "legacy code"? I think we're talking about a code lib of more or less standard routines. Besides, what if you're working on a "legacy" system and need "legacy" code? Pal, if you want to spend twice or three times the time required to get the job done, knock yourself out, just don't come to my shop and ask for a job.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
Either you are a new programmer, a shitty programmer, or management. 'Nuf said.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I think the parent comment is a lot more accurate than you might first think, for people with both good AND bad memories. My memory sucks - as is true of all good C++ coders - wrap and forget. :> I often search for instances of variables with names I can't remember using the name that seems most reasonable, and I'm constantly surprised by my success.
Then again, now that I think about it, maybe I'm just the type that's constantly surprised, period. Ha!
You've just summed up a major point that Lawrence Lessig makes in his new book, Free Culture.
For those who don't know, Dr. Lessig argued "our side" before the Supreme Court in Eldred v. Ashcroft.
In his new book Dr. Lessig discusses that case, how every new content industry (radio, film, cable, etc..) has "pirated" an existing industry, how our government willingly allowed this to happen, and many other excellent points.
The entire book is available for FREE (as in speech) as a PDF here.
Those who want to buy a hard copy and have the referrer commission go to Creative Commons can do so here.
- Neil Wehneman
My legal education, in nifty podcast format
Did you grant written permission to the company to use your library code? In the US, you can't implicitly assign copyright -- it has to be in black-and-white.
Yes, it's in the header file.
This is serious business -- I used to work with a guy who was threatening to sue a previous employer because they (really he) used a bunch of his personal library code. Even though nothing came of that, it had to be a pain in their asses.
There are assholes everywhere.
Alos, a few years back, I got hired onto a consultancy and was asked to review their code library. Almost of all of it had comments saying (C) Guy Who Recently Quit. We basically had to toss it because the idiots didn't have rights for their own library (and it was buggy spaghetti code).
Mine says: Copyright (C) 2003 Simon Cooke - Licensed for free and in perpetuity to $COMPANYNAME Inc.
Coming soon - pyrogyra
I think about this a lot actually. What constitutes code that doesn't belong to YOU? Well if you write a full piece of software and you just blatantly copy it over to your next employer, I definitely think that's wrong. But where is the line between your "working knowledge" of code, and the code itself?
Personally, when I've coded, I've always done all the research, done all the work, come up with all the code by myself. If I came up with a great loop for file I/O that I really like to use, to use with a file format I think is convenient and I use it for my employer, do I have to make sure I "forget" it? In this case everyone SHOULD keep a code library to make sure they don't ever re-use code.
Furthermore, when I start working at a company I bring to the company MY knowledge and experience. Do they suddenly own that knowledge and experience simply because I used it on their project? 90% of the time I'm using pieces of code I wrote for myself long ago for my employer's software.
"he drew his sword Ringil that glittered like ice... and he wounded Morgoth with seven wounds..."
For writing applications, I've taken to following a coding standard. Class names begin with an uppercase C (eg. CString, CList). Members of a class are prefixed with 'm_'. Base list classes end with List (similarly for trees). Nearly every class has an Init function, along with either an Allocate or Deallocate functions, so an object can be reused without being completely destroyed. Pointers are prefixed with 'p' Functions are prefixed with the class name, so that there isn't confusion when using inheritance or base clases.
. For lists, I have the standard, Add, Delete, Append, Duplicate functions. After doing all of this, practically every application wherever I've worked will look identical. How do you go about proving that this code is original, apart from using file logging, a personal log, or some other technique.
You may think it is.
I can definately state that code stealing is FAR, FAR worse in commercial software than in OSS, for exactly the reason you state (that it is too easy to detect in OSS).
I know this because I am guilty of this.
I write both commercial and GPL code (a large SourceForge-hosted project). Yes, I have stolen several large blocks of code donated to that GPL project and put it into my commercial work. I have also inserted blocks of code I wrote at or for other companies, and a little bit of stuff that was written by other employees at my previous job.
However all code I put into the GPL release is entirely my own work. Now a little of this could be explained by the different goals of the project, but it definately the majority of the reason is that it would be so easy to detect.
Definatly OSS (or even copyrighted-but-viewable source) is far more observant of IP rights than any other software development. But convincing the average PHB of this is probably futile. Direct proof would get me fired, so they will continue to believe what they do, even though I know it is wrong.
I wonder if they got buried in a deluge of complaints about the "have you quit beating your wife" nature of some of the questions? Anyway, I took a look around the "out-law" site (what a cheesy name!), and I am definitely not impressed. Their uncritical reporting of McBride crony Laura Didio's claims about Linux's costs was pathetic. There doesn't seem to be anything here I can't find on more reputable newsites. My suspicion is that this whole thing was an attempt to drum up some publicity and more hits, and frankly, I'm now sorry I gave them any. I won't be going back.
Since most projects are different from one another I mainly use it as a guide or reference. But there are some function's that I've written that I use consistently. Mostly date/time functions.
I see several responses above claiming it to be 'illegal' to transport code from job to job. I find that silly. Sure I keep a code library - but even if I didn't, I still have everything locked up inside my head. Christ, pretty soon even this knowledge will be deemed 'illegal'.
A code library is just a short cut. Nothing more.
And I was mildly surprised when it allowed me to continue without having checked something.
Then, later, I got
11. Do you have your own code library?
To which my answer was no. This was followed by
12. Did you write all the code in that library?
and
13. Would you take your code library with you, if switching from one employer to another?
To which I can't give meaningful answers. But now, it won't let me continue without giving responses!
So the only option left for me was
Exit this survey >>
What a crock.
Accountability on the heads of the powerful.
Power in the hands of the accountable.
My point is, there are millions of lines of code that we all use every day without a clear understanding of all of their inner workings. As long as a programmer knows what goes in, what comes out and what it's side effects are as well as execution speed and a few other things then they are perfectly safe using library or template code. Who here knows how the GUID generation routines for Windows are coded and what level of entropy they guarantee? On second thought, don't answer that since it probably means you have the stolen Windows source code (a google didn't help me find the chances of a key being re-used by the GUID routines, any hints appreciated).
All those moments will be lost in time, like tears in rain.
I fully admit to using knowledge from previous employers (be it a script, program, or documentation) to recreate something for someone else. That being said, I keep the direct cut and paste to a minimum and stay quiet about the whole thing.
On the other hand, every US government employee is happy to announce that they share things explicitly all over to other parts, devisions, or branches. In their own mind, once it's labeled as government property, it's free to give away. Now this sounds pretty reasonable at first, until you consider the consultant who is paid to do a small project for a single branch. Once finished, they can now go and try to make some money doing the same thing for the other branches, and even reference the other branch that they did this for. At which point, the client picks up the phone, calls the reference, and has a copy of everything you've done sent to them. They see that they have everything they need, and tell you to have a nice day, since it's their property.
Before we start running around on a big witch hunt, let's have the US Government take a look at their own practices.
It is if ONLY you've signed an NDA. I did not sign an NDA at my current employer. I explained to my employer (developing web apps) that 1/3 of the code is freely viewable anyway (right-click view source in the brower), 1/3 is the database stuff which is obvious and the 1/3 that's "business logic" is not that much of a secret anyway. What counted most (in our case anyway) is support. We support what we sell. My PHB was fine with this argument. Maybe I was just lucky.
This survey is biased -- it assume defacto that there there is no "line in the sand" about whether code is proprietary or not when it is repurposed, or copied for use from another client or employer, or any other purpose.
It also makes no distinction between coding to sell software to a client, or being paid as a consultant to develop an application for a client, which are very different things. The later assume the codebase is written for developing a software product -- the product itself will be sold, not the cost of creating the product for a specific purpose. Think Microsoft Office - a develper writes code for Microsoft to include in a project which will be sold. The developer is paid to write code for the product, which is proprietary to Microsoft. A Developer re-using any or all of this proprietary code is harmfully wrong, in my opinion.
However, In my trade, we are often paid to fuse original code and free code libraries with custom development for a client, for a specific application. The client is paying us for the service of assembling and customizing an application for their specific needs, not to resell to someone else (ala Microsoft Office). In this case, the client does own the code we wrote in the sense that it is theirs to use, but if open source libraries were used or other generic/free code snippets and routines were deployed, it is understood that they do not own this code, but they can use and modify it (And pay for us to modify it more!) at will.
In this latter case, copying code is a non-issue. The code is not what is being bought, the labor and expertise of the consultantancy in assembling an application is.
Here's a slightly mischievous, perhaps sleazy, method of avoiding out-and-out copying of proprietary commercial code from one company to another: Make as much of it as open source as possible.
For example, say you're developing a set of components that will call each other using SOAP. You know that the components will be implemented in different languages, so you'll need to perform an interoperability study to make sure that everything works properly. There certainly isn't anything proprietary, or commercially viable from an exercise such as this. So talk to your boss about doing it as an open source experiment.
Set up a project somewhere, and try to dump as much "study work" (these can be stubbed out prototypes) into it as possible. Then, being open source, you can use the prototypes as reference material when you move on to another company.
In our project I was able to perform all of our interop work (e.g. Can perl call python services? Can java call perl services?) in an open source project. There was tremendous knowledge gain as a result, and the results are portable across employers. The only thing you have to make sure you do is not violate any company rules for release of source code. Make a point to say that you're not releasing any existing source code, you're writing *new* prototype source code in an open manner and that nothing proprietary or secret exists in said prototype code.
Doing so allows both parties to achieve their goals: you get to keep a reference guide for future projects, and your company gets to keep it's secret code secret.
Do it for da shorties
believe it or not, india has a *lot* of very, very intelligent folks (hey they're 1 billion people there). and some of these are scientists. and there are already operations being outsourced there for scientific research or applications thereof.
anyway, personally i consider all those titles (computer scientist, app developer, etc.) to be very artificial in nature. the real question is, can you produce something that works and works well, and do so in a timely manner? that's all that matters in the end.
If you sell your coding skills as a service and insist on FOSS licenses on the resulting work, this survey is a trap. It assumes that reusing code you wrote and licensed for reuse is wrong. An interesting result to know would be how many people stopped at question 6.
I'm sure this will show up as more evidence that IBM should be concerned in the SCO case. It appears to be leading that direction. I didnt look beyond q 6.
For a while, I was Neptune, god of the sea; I sank ships and conjured up storms. I reused code all of the time!
6. Would you re-use blocks of code written elsewhere
Only if you were confident that nobody would find out
Whether it would be found out or not
So where is the 'only if it were legal' option ?
The questions in the survey seem designed to prove a point rather than gather useful information.
There needs to be a lot more context.
Under what contract was the code written? Ownership is not just some nebulous attribute of code; it's something that is negotiated and licensed and written into licenses and contracts.
For example, nothing stops you from bringing your own code library from company to company if you have the ownership of that code written unambiguously into all applicable contracts, and all of the copyright licenses tolerate it. You'd be wise to heavily document that you're doing it as well, and that you have the agreement of all involved parties.
Similarly, reverse engineering an application is only illegal when the license forbids it. Using code from other sources depends on its license: you can't just copy GPL code into a project, for example, without complying with all terms of the license. With some licenses, however, you are free to use the code however you see fit.
The survey needs to be a lot more specific if they want to get information that's actually useful.
Eloi, Eloi, lema sabachtani?
www.fogbound.net
I think there should be a code search engine set up so that javadocs can be enriched by seeing where the methods are called in code. How much can I take from studing GPL or BSD license code, or am I tainted by looking at it. And then there is ideas from magazines (and) web sites. If I actually did get around to doing coding it would be a quagmire. :)
Be Free: Free Software Tuition
6. Would you re-use blocks of code written elsewhere
1. Only if you were confident that nobody would find out
2. Whether it would be found out or not
Somehow I find the idea revolting to answer this question, when I answered the previous question similar to "Do you find it legal to reuse your own code" with no. There is not just a lack of options here, but the questionaire seems somewhat tendentious.
Slashdot polls are much better that way, they even provide options nobody in the right mind would come up with (CowboyNeal).
I strongly urge you to consider not taking the survey.
Maybe if you did a better job, since it is YOUR CODE, you wouldn't have this problem.
It's funny that not only did you have write such poor code, you were so inconvenienced by it that you decided to whine about it on slashot.
you know what's funny ?
why should you copy at all ?
is everybody developing the same software all over the place ? or what ?
i mean, when i need a hint, i'm looking into open source; but i know that i can never copy a line of code !
not because it is not allowed; but because i'm working on a different problem !
if it would be the same problem, then it would be already solved !
if some looks at my code, has an idea, and then implements it, it is ok
if someone tries to steal my code and tries to sell the same product as my company does, he is a thief
i would say: shoot him
but if you want to know how it works, you have a questions; come to my place and have a drink with me, and we can talk about these things
you know, as long as you are a visitor, i like you
but if you want to use ME to make your bloody money, then be aware, that i'm not scare of having blooded hands
Every AC but one so far has either been passed up on moderation or moderated negatively.
While any member who just mentions how skewed the survey is without cursing seems to get modded to at least +2.
Is this slashdot article just a karmafest in disguise?
It fails to distinguish what the code they're asking about does. If a developer copies snippets of mundane code like sorts, that's one thing. If they're copying in-house developed algorithms specific to the client/employer, that's a whole other ball of wax.
but understand the algorithm to redo over
and over again from job to job from contract
to contract, picking up here and there
a better and cleaner solution
Actually, I now have over 8,393,224 different methods of adding 1 to a number, all of them unique and not infringing on other people's rights. In fact, adding 1 to a number is about the only thing I can do anymore, since everything else *is* owned by someone else, since (at some point in time) it's probably already been done, so it'd be an infringement.
Luckily, there's a huge market out there where people need something incremented. They hire me because their million dollar project is stalled (due to rights infringement if they steal copywritten techniques like "x++" or "y+=1"). I show up, invent a new, unique, non-infringing method of incrementation, plug it in and walk away with a large check after signing an NDA... and the client's happy, because now they can work on finding a non-infringing solution to their next line of code. Sure, their program takes a small speed hit for my increment routines (it's up to a little over 48,000 clock cycles per increment, after pipelining), and it adds about 4kb of code to the binary for each instance, but each one is unique, and non-infringing. It's also interesting to note that by 2006, at my current rate of generating unique, non-infringing incrementation techniques, the average incrementation will probably take over 2 trilion clock ticks, and add over 1 meg to the binary, per instance. [By the way - If you've ever wondered how MS Word went from fitting on a floppy, and running on a 386 with 1 meg of ram... to now needing 3 CDs, a 2+GHz chip and half a gig of ram... I'm only allowed to say that you can rest in confidence that the routine that increments the cursor position after each keyhit is safe from infringement for at least half a decade :) ]
Some day, I hope to be able to diversify. I've got a line on a kid who thinks he can do the same thing, but with for() loops. Or, simulated for() loops... that'd be safer. The downside is, though, he uses whitespace as a delimiter between keywords, and newlines between instructions. I think that's been down before, so it might be too risky. I've also got some people who need new, non-infringing methods of using printf(), if anyone needs a gig... but you have to be fully bonded, otherwise don't apply.
</sarcasm>
help me i've cloned myself and can't remember which one I am
The code a programmer writes, is like the music a composer writes, or the poem a writer creates. It's mine, it's my creation.
If a company wants me to write code that I will not be able to use elsewhere, I simply wouldn't work for that company, that simple.
What many people don't seem to understand is that code is creativity, and "creativity always builds on the past" (who said that originally?, I just know it's from creativecommons.org).
If people couldn't reuse code, we wouldn't have todays software. We would be always reinventing everything. It's really absurd that many companies try to totally avoid what would be otherwise a social common sense duty of sharing ideas and work with other people for the benefit of all.
That's what RMS saw many many years ago, and that's why he started the GNU project.
Did anyone try taking the survey?
I gave up. It was impossible for me to answer most of the questions.
I work independantly, currently. I have developed projects for clients that I released as open source, and I've done plenty of very closed-source development.
Who owns the code, legally? Duh - depends on the contract. I am not a lawyer, but I AM a fine-print-reader. Often it's not a matter of opinion; it's in there in the text above your signature. If you are working for a company as an employee, I guarantee there were clauses in your NDA and non-compete agreement.
If they're looking to see how we feel about "cheating" a little, they need to ask questions about that - would you copy and reuse a low-level generic utility method that you didn't technically own (or would you just reimplement it), would you copy a whole library of generic utility code, would you copy the bulk of the code from an application you developed on contract, slap on a new GUI and sell it as a competing product (as one Indian outsourcing firm did, according to a recent Salon.com article)?
Instead they have questions like this:
6. Would you re-use blocks of code written elsewhere
* Only if you were confident that nobody would find out
* Whether it would be found out or not
WTF is that? Suppose my answer was "NO", or "only if it's legal"?
Sorry, guys, but writing survey questions is *hard*. You cannot simply throw a bunch of questions out there and think you're going to get useful data in return. I just quit after that one -- other people will choose randomly when there is no answer that is even remotely close.
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
At my last company (software and internet dev) we used our internal code libraries as a big selling point, and included it in contracts that we kept copyright of the internal libs, but granted clients an eternal license to use (but not redistribute, obviously) the binary and source code.
Trust me, clients don't object when you point to a whole chunk of the development in the spec and say "this will add no time to the schedule at all, since it's already coded, tested, and actively deployed in similar projects".
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
I agree, the survey was terribly designed. I gave up even earlier, I didn't even get to question 6. Who owns the code I write? -- well, which code?! Code I developed during work hours on my work computer at the office? Code I developed at home on my own time and hardware? (I made sure when I started the job that there was no fine print that would allow them to claim my after-hours development work, because I was running a small business on the side at the time and didn't want to have any code ownership conflicts.)
There are so many "it depends" type of answers, and the survey was obviously not designed to handle those. All they needed to do was add a "depends on situation" response to the questions to make it more useful (although better questions and options would be preferred). Otherwise, the assumptions of those taking the survey won't necessarily match the assumptions of those who designed it, making the results meaningless. As you said, making a survey isn't trivial, and this one was clearly thrown together trivially.
And, there's apparently nothing preventing me from answering the survey multiple times, perhaps in an automated way, to throw off the results. And even without intentional tampering, their self-selected survey population isn't going to provide any results worth extrapolating to a broader population.
The worst part is when the worthless "statistics" from the survey are then used to try to prove some point, convince people of something, etc. I'd be surprised if this wasn't just a ruse to give them some so-called evidence of a trend, and those receiving their misguided results won't know that their methodology was a joke.
No Laughing Allowed!
The code should be the property of the one who wrote it (the developer), with a "any-use" license given to the employer to use it if it has been written during working hours.
Because we can't forget any good piece of software we have previously written. Erasing our memory after every project is not possible and is not what the next employer usually expects.
Plagiarizing ourself should not be punishable.
Getting all interesting subroutines written for my current customer an put them into the common firm-wide pool for reuse is even something that my boss asked for.
From an engineer POV, this is good practice, and there is no damage for my current customer (these are purely technical libraries aimed at speeding development), but as a principle I asked my boss who theoretically owned all this code. No answer.
BTW, all my questions about what we should do when patents will apply in Europe were unanswered too - including from our lawyers.
This is only a top-10 worlwide IT service company...
Christophe (Don't hesitate to point out my spelling and grammar mistakes, I want to learn - Thanks).
When I was working for the world's largest software company (I've left, and no, it's not Microsoft, despite what most prople think), I developed a tool during the Y2K bizzo, that saved their spotty white arse, internationally, big-time.
I know for certain they don't have the source code (I made sure). I can neither confirm nor deny whether I have the source code, but I feel, in my bones, that I could probably re-create the source code (PL/I, by the way) in about 5 minutes. Maybe I'm a fast typer with a good memory.
Unfortunately, now that Y2K is dead and buried, nobody cares. D'oh!
I can see a few comments on the survey itself, but less than I expected. So I think most people here are missing a crucial point. The survey design is no good! Surveys have to be constructed very carefully, or they can give useless or misleading results. As this one will.
Some of the problems are: Not enough options in the answers. Biased questions. Questions that are meaningless except in a specific but unspecified context. Inconsistency in the depth of questions. Etc.
An example of a bad question:
To misquote Meatloaf, What's it gonna be boy, black, or white? You have to chose one, but neither are correct.
Or to refer specifically to the survey:
Perhaps some people will say that we should choose the best answer. Well, you can only do that if there is a best answer. And for some of these questions, there just isn't. What's best? Black? Or white?
So, folks. Please don't respond to the survey! Because if you do, it will very possibly be quoted as evidence for one thing or another, but actually the results will have very limited value. However if nobody responds, perhaps a better survey might get developed. Yeah, OK, I know. Not much chance of this is there? So lets all wait for the results to be quoted as proof of [whatever], and then lets all suffer the consequences.
I think the Slashdot surveys have more validity and integrity than this one does. I'm serious!
The survey will tell you nothing. It makes no distinction with respect to software licensing or employment contracts. The questions have an underlying assumption that all code is closed source and all programmers work as employees in a closed source shop.
I found that for almost every question there was no accurate choice present (not even close).
Feh.
--
“Doh!”
you have a questions [sic]
I have a question: Do you know how to use your SHIFT key?
I've been [coincidentally] giving this quite a bit of thought recently -- not so much the survey in the story, natch, but the concept of having legal to reuse code shared between work, home, and your next job.
Your best bet seems to be to start a project at home in a few hours of your spare time with something that's as close to what you do at work as possible *without actually overlapping*, and license that under LGPL (is there a better or just another license? You need something that *forces* user to check changes back in, yet doesn't require you to open source the whole smear). Slap it up on Sourceforge (or something similar).
Now go to work the next week and search Sourceforge for the library that comes the closest to what you need to get done. Hrm, whaddya know? It's [the name of your own LGPL'd library]. Certainly your employeer wouldn't mind you impressing those free hours into service for your company's project.
What's more, now you're all but required to check in your changes to the library (and have to if the work's released with the lib). Perfect! Not only that, you can happily "take" the library with improvements from job to job, or even bundle with your own code later to sell for "money-as-in-real-money". Voila. Legally laundered code.
Obviously you likely won't be able to get your entire application LGPL'd, and some companies might be totally against using open source code (don't ask permission; ask forgiveness folks). But most every coder has a few homespun tools/utilities/libraries they either reuse on the sly or rewrite with each new job. Make it legal, and feel good about releasing the code into the wild, legally, as well.
(It's that or get a very favorable IP agreement. After your first few jobs, however, a favorable IP agreement certainly seems easy to get done, in my experience, as long as you broach the issue right after the job offer and before signing on.)
It's all 0s and 1s. Or it's not.
One thing that came to my mind when I was reading the comments and thinking about a code library was Electrical Engineers... They don't go and work out all the details for a power supply every time they need to build one... they usually take a known good design and change the max tolerances of parts too get what they need. A code library (IMHO) is similar to this, in that it consists of generic algorithms that get changed to meet the specific requirements that I am working with. Mine has, for example, All Pairs Shortest Path, Some Sorting, etc - mainly used for programming contests..
And as for the patents comments, just imagine if K&R thought it wise to patent a template class or the like (or whoever came up with it).. we wouldn't have the STL for sure.
Also with a lot of job related things, the tasks at hand are usually very specific to the project and having a library of code would make no sense because it would never get used. And if a job isn't like that - I don't want it.. too boring to do the same thing that has been done 1000's of times..
Kenny
I lot of companies fear having developers work on opensource projects not because of the GPL license per se but their fear that you will look at the source code...then remember one of the algorithm you've seen in that code and implement it into a proprietary product (even if you didn't explicitly or intentionally copy the code)--thus requiring that if the algorithm is similar enough--your company to open source their product. SO, in many respects..I'd beware of looking in open-source for examples of how to code unless you employer is aware of your choice. 'This is the world we live in / (oh-oh-wo)'
I need a TiVo for my car. Pause live traffic now.
Part of this is that the transistor is a physical thing, not easily made without a large investment in equipment. If I am a little guy, I just buy transistors and I am free and clear. If I am a big enough guy to make my own transistors, I pay whatever tribute money to the transistor patent holder to set up my transistor fabrication plant.
You could say that a compiler, while not a physical thing is not an easy to make thing, so if compilers were patented, I would just pay the license holder for the use of compiler just as I do now. But a linked list is not a tangible thing -- I don't buy a supply of linked lists to incorporate into customer products. A linked list simply comes into being when I order instructions in a special way.
The hardware store sells an apple picker that is a basket with prongs on the end of a stick. I suppose that device is patented -- if I want to build my own stick with a basket on the end, I suppose I could and just not tell anyone about it, or I could buy the patented gadget from the hardware store and pick without recrimination.
Suppose the patent wasn't for "basket with prongs on end of stick that proves useful for harvesting fruit" but on the "process of removing apples from high branches by using a mechanical device to make contact with the apples" and someone went around sending cease and desist orders to people picking fruit.
Or how about if someone discovered that digging holes in your lawn on a three foot grid prevented weeds. I wouldn't have any problem with someone patenting a "lawn rejuvenator device" for sale at the hardware store, but suppose I heard of this idea and started digging those holes with an ordinary shovel (which I had already paid for) and someone sent me a letter that I couldn't do that without paying a fee?
I say that there is a difference in kind between hardware and software patents and that software patents stink.
I know a lot of people hate job interview exams, but those are perfectly legal, ethical, reasonable assessments of fitness for a job. But asking to see already-written code is just asking for trouble -- how do you know they even wrote it?
Good point, but it is not okay to copy code from O'Reilly however you want. It is NOT in the public domain. While they may let you, they may also sue you. So even copying code snippets from technical books can be infringing on copyright (or rather IS infringing on copy right).