1. Functions can't return multiple values, nor can they modify their arguments. If you want to write a function which returns two values (say), you need to use a magic string which you think will never occur in either of them as a separator, concatenate, return the result, and then split it apart again.
Thank $DEITY! Functions should never modify their arguments, no matter what language you're writing in. Just because C can't pass a structure right doesn't mean that's a legitimate programming technique. And functions that return multiple values aren't "functions".
2. Whitespace is significant--it's interpreted as concatenation. Hence mistyped or syntactically invalid statements are quite likely to be reinterpreted as some kind of concatenation of variables. (And I thought Python was bad.)
You've got a good point there, but it's a powerful technique nonetheless. In practice, "blank concatenation" rarely causes signficant problems.
3. Using an undefined variable is not considered an error. Instead, it just defaults to having a value that's the same as its name, only in upper case. Truly foul, especially when combined with misfeature #2 above.
So if (for example) you put whitespace between a function name and the brackets surrounding its arguments, it suddenly stops being a function call and becomes a concatenation of strings instead. Pass the barf bag.
Use Signal on NoValue if you want to catch undefined variables. Most professional Rexx coders do, it's a good standard. As to function names and non-adjacent parens, geez, you ever take a programming course?
4. REXX normally guesses continuations, by assuming the next line is a continuation of the current line if the current line doesn't look like a complete statement.
Generally not. There are some very specific cases where that is true, but they're actually rarities in the syntax. Specifically, you can have line-breaks before and after the keywords Then and Else in If and When statements. That's all.
5. Comma is used both to separate function arguments, and to indicate continuation. So in spite of #3, you can't just break a long list of function arguments across multiple lines--you have to turn the last comma on each line into double-comma, or you get something completely not what you intended. Ugh.
Yup, this is Rexx's largest wart. It's even worse that C's aggressive use of the backslash.
6. You're allowed to use variables that have the same names as words used in the language itself.
Hey - that's a good thing. Ever write any Java code? Ever have a variable name suddenly become a reserved word by a language upgrade? Rexx doesn't have "reservered words", so we Rexx coders never have that happen.
7. Scoping is dynamic. Functions and procedures are just a hack whereby the system temporarily hides all variables except the listed ones, until it next hits a return. Not that you have to; it's quite possible to write functions with overlapping scope.
Because scope is dynamic, it's always nested. There's no such thing as "overlapping scope".
8. Forget about associative storage, REXX doesn't even have arrays. You can simulate them with 'compound variables', but then there's no type checking or bounds checking. If you want any, you have to write it yourself.
"Compound variables" are associative arrays. So are traditional arrays, their numeric indices aren't different from any other kind of index. And there aren't any bounds to check against. Remember, it's a loosely-typed (and perhaps even type-free) language.
9. You can't pass arguments by reference. In fact, you can't pass them by value either. Instead, you have to pass constants, and have the function or procedure use those constants to calculate the name of the variables it should use.
Rexx is entirely call-by-value. Not call-by-reference (a la C structs) or call-by-name (a la Algol68). So what?
I think REXX is the ugliest hack I've seen since Perl 4 or Tcl.
The reason Rexx is easier to understand than Perl is that Mike Cowlishaw deliberately avoided notational syntax elements. With very few exceptions, the syntax is entirely constructed with Enlish-language words, not with special characters.
Yes, once you've memorized a given language's use of notation, you can read it, but that's not the point.
Rexx was added long after several other scripting languages existed on VM/CMS (where it originated). There were also very good compilers for FORTRAN, PL/I, COBOL, Pascal and C. Not to mention an APL system and the ever-present Assembler. On other systems where Rexx later became important (OS/2, AmigaOS, OS/390 TSO) the same was generally true.
Rexx is used because it's quick and easy to write reasonably complex programs correctly. In fact, most Rexx programmers I've met over the last 20 years always start a new program from scratch - it's so easy, why not?
I live in Reston, just a few miles from the imfamous "Monkey House". Or, at least, I did, up until a few years ago. It was fun to watch the construction folks in bunny suits through the windows as they removed everything in the place and did HAZMAT transport to who-knows-where. When they were done, they razed the building and took the top few feet of soil from the entire site with them.
Then they built a new building. It currently houses a printing shop (ala Kinko's but smaller), and a neo-fundamentalist Christian church. Said church, like many others, shares its facilities with a pre-school child care operation during the week.
And there's been another pre-school about 25 feet away from the site for as long as I can remember.
My son has some fine-motor-control problems. He *absolutely flunked* the Bender Figures test, and his handwriting has not improved at all in the 12-15 years since then. It has been a big problem for him. He's in college now, having taken a few years off, and the school accomodates him be requiring his instructors to allow him to type everything, etc. But some day he's going to exit into the Real World, and he won't get that kind of help.
So as the parent of someone whose problem seems incorrectable, I'm really interested in hearing what's worked for you, if anything, and how you've managed to adapt to what the world expects of you.
Indeed, and PHP users caring about GPL should worry about the tight coupling with a database server that has restrictions on binary distribution.
PHP users caring about GPL should worry about the fact that PHP is not licensed under the GPL. In fact, if it was, then MySQL AB wouldn't have had to grant an exception to allow use of MySQL with PHP.
GPL vs. Apache/MIT/whatever license wars aside, MySQL AB's license exception appears to be a Good Thing.
I wish this wasn't true, but if Microsoft implements some sort of spam-blocking in Exchange, that's all the critical mass you'll need. Especially if they turn it on by default.
One of the central parts of John Brunner's fabulous The Shockwave Rider was a help line that was 999-999-9999, or as it's known in the book, "the ten nines".
One hell of a prescient story - quite worth re-reading almost 30 years after it was originally published, having presaged all sorts of computing events.
Wanna know what's cool? Taking a group of people working on an unsuccessful project and helping them turn both themselves and it around. There's nothing quite so satisfying as helping someone put their career back on track and watching them become successful in their own right.
Some advice:
Take the job, but make sure they know that you know it's a tough row to hoe. They know it, that's why you've been offered it. If it's a particularly bad project, consider asking for an extension of the key deadline or deliverable that is hard-but-possible instead of the current impossible target. But expect to be held to the revised target, and to be judged on your success at motivating the team to achieve it.
If you don't have a mentor, find one ASAP. You need an experienced manager to help you learn some of the Secret Teachings. Don't approach someone in the chain of command above you - that way lies madness and back-stabbing. Ideally it should be someone in your company but far enough away from your arena to be dispationate about your responsibilities.
Don't read the team's personnel folders. If there's anything in them at all, it comes from the mind of some other manager. You need to form your own opinions. Nothing will stifle your attempt to turn Joe Slacker into U. Ber-Coder faster than finding out the last manager wanted to fire him.
Read Tracy Kidder's The Soul of a New Machine, the story of how the Data General MV/32 Eclipse was built. It should be required reading of any new manager in our business. Pay particular attention to the ideas of "signing up" and of not being the fair-haired project.
After you take the job, talk to each and every team member one-on-one. Let them know you're not just a retread of their previous boss. Likewise let them know that their complaints about him are yesterday's news and today's a different day.
Help them sign themselves up (again, read Kidder). You can run a project, even an important one, with people who aren't motivated to be part of it, but it's very hard to succeed that way.
You need to become their leader. That doesn't happen because someone annoints you "Boss". It happens because you do things that make them offer you their respect. Your goal should be that if you leave the team, some of them ask to come work for you at your next gig, inside or outside of this company.
If you must fire anybody, do it soon and do it all at once. Then with the dead men being politely escorted out of the building by another manager (not by Security!) and their blood still wet and warm on your hands, explain to the survivors that you did what had to be done and that this is the end of it. Don't discuss why it had to be done in any detail - ideally you shouldn't discuss it at all. Given time, the survivors will see why their coworkers had to go, and that nobody "was next".
Be as good as your word. Always. Don't promise something you can't deliver, and don't let yourself be percieved as promising something you didn't mean to promise.
Good luck and welcome to the team. Management can be very rewarding when done right.
This sounds very much like the scenario in S.M. Stirling's The Peshawar Lancers. Long story short, the British Raj takes on a completely different tone as the ruling classes of England move to India en masse, where it's no longer "beastly hot", while merry old England becomes an Arctic waste zone.
That doesn't make any sense. You still have every right to sue over your code, and will have to defend the ownership of your code.
Ownership when there's a long history and a lot of hands can be a very dicey matter. Here's an excercise to try. Randomly pick a source module in/usr/src/linux* (really randomly, not one you know anything about). Look at it and decide who "owns" it. Then go read the update history (this would be a lot easier if their was from-day-one kernel CVS repository). Who has contributed "enough" code to also have an ownership stake? With all that info in hand, try contacting the entire set of owners to report someone having misused the module's code, or claiming that their intellectual property is infringed by the module. Then post to the Linux Kernel list and see how many more "owners" come out of the woodwork.
I would never sign away my code to someone else, simply because the FSF could then do whatever they want with it, including selling it or releasing it under a licence I didn't like. Maybe you trust them but I don't,
I never said I trust the FSF - Stallman's a genuine nut case, he just happens to have a few good ideas. And besides - all it would take is one good copyright-infringement lawsuit loss and the FSF's property - www.fsf.org and all those copyrights we all assigned to it - get turned over to some Evil Proprietary Software Company. Think it couldn't happen? The Church of Scientology has taken over some of their critics exactly this way and replaced their anti-Scientology websites with pro-Scientology messages. What the CoS can do, Microsoft or Oracle or Computer Associates or... can do.
If you contribute code to a project, it is quite natural to assume that you the contributor has the right to do so, unless there's some obvious reason to be suspicious.
Sure, it's natural. But we're talking about the law here, not assumptions of good will.
Naturally a written guarantee is better, but for the majority of F/OSS projects out there, which are mostly small hobby-projects with little threat of being the target of litigation, it may be a waste of time to ironclad things out of a legal standpoint.
Quite correct. But the question was "What's to stop some other contributor from pulling a future SCO?". Torvalds never expected his little hobby project to turn into what Linux is today. Tommorow's world-buster is today's hobby. If you can at all manage it, keep your legal standing clean at all times.
You're right - the GPL does not require any kind of copyright assignment, but I never said it did. I said the FSF requires copyright assignment on contributions to GNU projects. Let me say that again: "GNU projects", not "GPL-licensed software" - there's a big difference. For example, GCC is a GNU project, and the Contributing to GCC page says:
Before we can incorporate significant contributions, certain legal requirements must be met.
The FSF prefers that a contributor files a
copyright assignment for large contributions. See some documentation by the FSF for details and contact us (either via the gcc@gcc.gnu.org list or the GCC maintainer that is taking care of your contributions) to obtain the relevant forms. It's a good idea to send assignments@gnu.org a copy of your request.
If a contributor is reluctant to sign a copyright assignment for a large change, a disclaimer is acceptable as well. However, a copyright assignment is more convenient if a contributor plans to make several separate contributions.
Small changes can be accepted without a copyright disclaimer or a copyright assignment on file.
And it's not just the GCC project. Check out http://www.gnu.org/prep/maintain_5.html#SEC5, where the FSF's "Information For Maintainers of GNU Software" explains the mechanics of copyright on GNU projects.
The FBI only announced launching a probe into Mydoom two days ago. Unless it's signed with SCO's PGP key (:-) ), they can't have done anything that quickly.
This is exactly the reason why the FSF requires you to assign your copyright to them when you contribute code to GNU projects. Likewise the Apache Software Foundation and their projects. Someone should always have clear legal title to the entire project. Otherwise nobody may have legal status to defend it in court or to file suit against infringers.
The other side of this is that the ownership of all contributions need to be vetted by the person/group that receives ownership. Some groups ask new contributors for a written document asserting that they own what they're contributing, especially if the contributor works for a software company. That changes the legal situation - if The TDP Group sues the XYZ Foundation for stealing their code, the XYZ Foundation has a clear defense:
"Your Honor, we were told by Joe Coder that he had legal ownership of the code in question and he assigned that ownership to us. Naturally, if you determine otherwise, we'll comply with your order to remove it. However we believe that any damages
etc. are a matter between the plaintiff and Mr. Coder"
Now the last thing I want is for The TDP Group to sue me for code I put into XYZ, but if they find out I did it what will likely happen anyway.
Even if for no other reason, you need to stand back and look at what you've done in the past. As a business providing a service for a fee, your company must treat this user's email the same as every other's. You're opening the company up for a justifiable lawsuit from the employer if you don't. Not only that, but you're establishing a precedent you'll have to follow in all future encounters with this employer and probably all others.
If you have no policies or past precedents to follow, you need to forget that this person is your relative and ask what you'd do with any other user. Then do the same. Your company may still get sued for making the wrong choice, but you'll eliminate the conflict of interest problem. Just make sure you immediate document this new policy, at least internally, and follow it in the future.
Even better, if you're not just a one-person company, recuse yourself. Give the employer's request to someone else to handle, and make it clear to that person that you have a conflict of interest and that they have the full authority to make whatever decision is consistent with past practice (and failing that, company philosophy and goals) without fear of reprisals. In writing, if possible.
I'm not going ethical into these things, I'm selling services...
If that's so, then you shouldn't be doing what you said you'd do. If your customer (the employer) tells you to delete the account, you delete it. But if they want the data, at least in the USA, it's theirs. And if you delete it, expect them to ask for the data to be restored from your backups.
Failing to turn it over to them or deleting it without their permission may get you sued, and rightly so. Unless your contract with the employer says you can... you do have a contract, right?
Eric Raymond has mentioned on a number of occasions, here and elsewhere, that he has legitimate copies of several historic Unix source trees and that he's compared them to Linux. He's also developed an automated comparison process for just such applications. See this NWFusion article for example.
If anyone knows what's in Linux, it's Linus Torvalds. He did the first work on the open-source operating system
My god, RMS will be breathing fire at this I bet.. but for god sakes can we just understand that the opensource movement was a derivative of the Freesource movement.. its not allot to ask really.. stop and learn the facts.
Yeah, it wouldn't surprise me at all if Stallman was breathing fire - after all, when he started the GNU project he intended to build a system, not just an editor and a compiler. It must really tick him off that Torvalds beat him to his primary target.
1, Linus developed a kernel, a good one.
Right, so the "first work on the open source operating system" statement is absolutely correct. Glad we all agree on that.
2, His followers use FREESOURCE apps to make it into what we know as "Linux" but really is GNU+Linux.
You can call it whatever you want. Both projects - Linux and GNU - are licensed under the GPL, and the GPL doesn't require you to give anybody else credit, just to keep their copyright and license notices intact. If Stallman wanted to force future re-distributors to credit him and his project, they should have released their programs under the BSD license.
3, MOD me down and you prove just how little you know;).
Yeah, I agree with you there too. Hey mods! Do what he asks!
You don't need to care about the LOCALE settings or other such things. Either something is the same as something else, or it is not. You don't need to care if the compiler actually accepts the source with the right character set.
You need more than case-sensitivity to achieve that without concern for character sets. For example, Spanish has a double-ell character ("ll"), which shouldn't be mistaken for the two ells in the classic English "Hello, world". And in just the opposite situation, in German "sz" and the sharp-ess (it looks like a Greek beta) are interchangable, and several other ligatures have equivalent accented characters.
The original poster doesn't believe that it's possible to detect steganographic content. There have been lots of technical follow-ups that suggest it might be possible, but almost nobody has mentioned the funding issue. The task is most likely possible simply because there's been an STTR solicitation published. Many of the STTR and SBIR solicitations are designed by their authors to fund existing projects known to the authors. These "solicitations" provoke very few proposal submissions, occasionally even just the one from the expected recipient of the funds.
Don't get me wrong - this isn't a scam. The funding groups are usually genuinely interested in having what they specify developed, sometimes wind up buying lots of it once the development is complete, and in most cases all qualified bidders are truly considered. It's just that the solicitations are often written so narrowly that only a select few bidders can qualify.
But hey, at least the bidders are required to be small businesses, not like those Halliburton contracts for Iraq!
Brewster Kahle and Alexa Internet are the real deal. This isn't some undergrad's CS-101 project, it's a tool designed from the very start to archive the entire web. And it does it on a regular basis. Even if there's a really good SourceForge project (you didn't cite any of them), Alexa's should be a first stop for anyone interested in the task.
They have never said that the original BSD license was non-free. If you look here, you'll see that it is listed in the section titled, "The following licenses are free software licenses, but are not compatible with the GNU GPL."
Yup, that's the FSF's position these days. And I was probably wrong to use the term "non-free" because it has a clear meaning these days, but if you go far enough back in time, the FSF position was very anti-BSD-license, and Stallman used to rail against it almost as often as against proprietary software.
Finally, the GPL does require that credit be given. Just not in advertising material. "You may copy and distribute...provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice..."
That's not "credit" as the original poster would have defined it. That's simply maintaining the copyrights. And the section you elided said " verbatim copies of the Program's source code as you receive it, in any medium", clearly implying that interpretation (and yes, I realize the requirement applies to modified copies too and that that's why you elided it).
1. Functions can't return multiple values, nor can they modify their arguments. If you want to write a function which returns two values (say), you need to use a magic string which you think will never occur in either of them as a separator, concatenate, return the result, and then split it apart again.
Thank $DEITY! Functions should never modify their arguments, no matter what language you're writing in. Just because C can't pass a structure right doesn't mean that's a legitimate programming technique. And functions that return multiple values aren't "functions".
2. Whitespace is significant--it's interpreted as concatenation. Hence mistyped or syntactically invalid statements are quite likely to be reinterpreted as some kind of concatenation of variables. (And I thought Python was bad.)
You've got a good point there, but it's a powerful technique nonetheless. In practice, "blank concatenation" rarely causes signficant problems.
3. Using an undefined variable is not considered an error. Instead, it just defaults to having a value that's the same as its name, only in upper case. Truly foul, especially when combined with misfeature #2 above.
So if (for example) you put whitespace between a function name and the brackets surrounding its arguments, it suddenly stops being a function call and becomes a concatenation of strings instead. Pass the barf bag.
Use Signal on NoValue if you want to catch undefined variables. Most professional Rexx coders do, it's a good standard. As to function names and non-adjacent parens, geez, you ever take a programming course?
4. REXX normally guesses continuations, by assuming the next line is a continuation of the current line if the current line doesn't look like a complete statement.
Generally not. There are some very specific cases where that is true, but they're actually rarities in the syntax. Specifically, you can have line-breaks before and after the keywords Then and Else in If and When statements. That's all.
5. Comma is used both to separate function arguments, and to indicate continuation. So in spite of #3, you can't just break a long list of function arguments across multiple lines--you have to turn the last comma on each line into double-comma, or you get something completely not what you intended. Ugh.
Yup, this is Rexx's largest wart. It's even worse that C's aggressive use of the backslash.
6. You're allowed to use variables that have the same names as words used in the language itself.
Hey - that's a good thing. Ever write any Java code? Ever have a variable name suddenly become a reserved word by a language upgrade? Rexx doesn't have "reservered words", so we Rexx coders never have that happen.
7. Scoping is dynamic. Functions and procedures are just a hack whereby the system temporarily hides all variables except the listed ones, until it next hits a return. Not that you have to; it's quite possible to write functions with overlapping scope.
Because scope is dynamic, it's always nested. There's no such thing as "overlapping scope".
8. Forget about associative storage, REXX doesn't even have arrays. You can simulate them with 'compound variables', but then there's no type checking or bounds checking. If you want any, you have to write it yourself.
"Compound variables" are associative arrays. So are traditional arrays, their numeric indices aren't different from any other kind of index. And there aren't any bounds to check against. Remember, it's a loosely-typed (and perhaps even type-free) language.
9. You can't pass arguments by reference. In fact, you can't pass them by value either. Instead, you have to pass constants, and have the function or procedure use those constants to calculate the name of the variables it should use.
Rexx is entirely call-by-value. Not call-by-reference (a la C structs) or call-by-name (a la Algol68). So what?
I think REXX is the ugliest hack I've seen since Perl 4 or Tcl.
Seen Perl 6 yet? :-)
The reason Rexx is easier to understand than Perl is that Mike Cowlishaw deliberately avoided notational syntax elements. With very few exceptions, the syntax is entirely constructed with Enlish-language words, not with special characters.
Yes, once you've memorized a given language's use of notation, you can read it, but that's not the point.
Rexx was added long after several other scripting languages existed on VM/CMS (where it originated). There were also very good compilers for FORTRAN, PL/I, COBOL, Pascal and C. Not to mention an APL system and the ever-present Assembler. On other systems where Rexx later became important (OS/2, AmigaOS, OS/390 TSO) the same was generally true.
Rexx is used because it's quick and easy to write reasonably complex programs correctly. In fact, most Rexx programmers I've met over the last 20 years always start a new program from scratch - it's so easy, why not?
I live in Reston, just a few miles from the imfamous "Monkey House". Or, at least, I did, up until a few years ago. It was fun to watch the construction folks in bunny suits through the windows as they removed everything in the place and did HAZMAT transport to who-knows-where. When they were done, they razed the building and took the top few feet of soil from the entire site with them.
Then they built a new building. It currently houses a printing shop (ala Kinko's but smaller), and a neo-fundamentalist Christian church. Said church, like many others, shares its facilities with a pre-school child care operation during the week.
And there's been another pre-school about 25 feet away from the site for as long as I can remember.
My son has some fine-motor-control problems. He *absolutely flunked* the Bender Figures test, and his handwriting has not improved at all in the 12-15 years since then. It has been a big problem for him. He's in college now, having taken a few years off, and the school accomodates him be requiring his instructors to allow him to type everything, etc. But some day he's going to exit into the Real World, and he won't get that kind of help.
So as the parent of someone whose problem seems incorrectable, I'm really interested in hearing what's worked for you, if anything, and how you've managed to adapt to what the world expects of you.
Thanks!
Indeed, and PHP users caring about GPL should worry about the tight coupling with a database server that has restrictions on binary distribution.
PHP users caring about GPL should worry about the fact that PHP is not licensed under the GPL. In fact, if it was, then MySQL AB wouldn't have had to grant an exception to allow use of MySQL with PHP.
GPL vs. Apache/MIT/whatever license wars aside, MySQL AB's license exception appears to be a Good Thing.
I wish this wasn't true, but if Microsoft implements some sort of spam-blocking in Exchange, that's all the critical mass you'll need. Especially if they turn it on by default.
Try 40 rods per hogshead in miles per gallon, and all you get are Simpsons references. Of course, one of the first is Shafe's Simpsons Stuff - Grandpa's Hogshead Converter, so it works. Sort of.
One of the central parts of John Brunner's fabulous The Shockwave Rider was a help line that was 999-999-9999, or as it's known in the book, "the ten nines".
One hell of a prescient story - quite worth re-reading almost 30 years after it was originally published, having presaged all sorts of computing events.
Wanna know what's cool? Taking a group of people working on an unsuccessful project and helping them turn both themselves and it around. There's nothing quite so satisfying as helping someone put their career back on track and watching them become successful in their own right.
Some advice:
Good luck and welcome to the team. Management can be very rewarding when done right.
This sounds very much like the scenario in S.M. Stirling's The Peshawar Lancers. Long story short, the British Raj takes on a completely different tone as the ruling classes of England move to India en masse, where it's no longer "beastly hot", while merry old England becomes an Arctic waste zone.
That doesn't make any sense. You still have every right to sue over your code, and will have to defend the ownership of your code.
Ownership when there's a long history and a lot of hands can be a very dicey matter. Here's an excercise to try. Randomly pick a source module in /usr/src/linux* (really randomly, not one you know anything about). Look at it and decide who "owns" it. Then go read the update history (this would be a lot easier if their was from-day-one kernel CVS repository). Who has contributed "enough" code to also have an ownership stake? With all that info in hand, try contacting the entire set of owners to report someone having misused the module's code, or claiming that their intellectual property is infringed by the module. Then post to the Linux Kernel list and see how many more "owners" come out of the woodwork.
I would never sign away my code to someone else, simply because the FSF could then do whatever they want with it, including selling it or releasing it under a licence I didn't like. Maybe you trust them but I don't,
I never said I trust the FSF - Stallman's a genuine nut case, he just happens to have a few good ideas. And besides - all it would take is one good copyright-infringement lawsuit loss and the FSF's property - www.fsf.org and all those copyrights we all assigned to it - get turned over to some Evil Proprietary Software Company. Think it couldn't happen? The Church of Scientology has taken over some of their critics exactly this way and replaced their anti-Scientology websites with pro-Scientology messages. What the CoS can do, Microsoft or Oracle or Computer Associates or ... can do.
If you contribute code to a project, it is quite natural to assume that you the contributor has the right to do so, unless there's some obvious reason to be suspicious.
Sure, it's natural. But we're talking about the law here, not assumptions of good will.
Naturally a written guarantee is better, but for the majority of F/OSS projects out there, which are mostly small hobby-projects with little threat of being the target of litigation, it may be a waste of time to ironclad things out of a legal standpoint.
Quite correct. But the question was "What's to stop some other contributor from pulling a future SCO?". Torvalds never expected his little hobby project to turn into what Linux is today. Tommorow's world-buster is today's hobby. If you can at all manage it, keep your legal standing clean at all times.
You're right - the GPL does not require any kind of copyright assignment, but I never said it did. I said the FSF requires copyright assignment on contributions to GNU projects. Let me say that again: "GNU projects", not "GPL-licensed software" - there's a big difference. For example, GCC is a GNU project, and the Contributing to GCC page says:
And it's not just the GCC project. Check out http://www.gnu.org/prep/maintain_5.html#SEC5, where the FSF's "Information For Maintainers of GNU Software" explains the mechanics of copyright on GNU projects.
The FBI only announced launching a probe into Mydoom two days ago. Unless it's signed with SCO's PGP key ( :-) ), they can't have done anything that quickly.
This is exactly the reason why the FSF requires you to assign your copyright to them when you contribute code to GNU projects. Likewise the Apache Software Foundation and their projects. Someone should always have clear legal title to the entire project. Otherwise nobody may have legal status to defend it in court or to file suit against infringers.
The other side of this is that the ownership of all contributions need to be vetted by the person/group that receives ownership. Some groups ask new contributors for a written document asserting that they own what they're contributing, especially if the contributor works for a software company. That changes the legal situation - if The TDP Group sues the XYZ Foundation for stealing their code, the XYZ Foundation has a clear defense:
Now the last thing I want is for The TDP Group to sue me for code I put into XYZ, but if they find out I did it what will likely happen anyway.Fourth, it's my relative's account.
Even if for no other reason, you need to stand back and look at what you've done in the past. As a business providing a service for a fee, your company must treat this user's email the same as every other's. You're opening the company up for a justifiable lawsuit from the employer if you don't. Not only that, but you're establishing a precedent you'll have to follow in all future encounters with this employer and probably all others.
If you have no policies or past precedents to follow, you need to forget that this person is your relative and ask what you'd do with any other user. Then do the same. Your company may still get sued for making the wrong choice, but you'll eliminate the conflict of interest problem. Just make sure you immediate document this new policy, at least internally, and follow it in the future.
Even better, if you're not just a one-person company, recuse yourself. Give the employer's request to someone else to handle, and make it clear to that person that you have a conflict of interest and that they have the full authority to make whatever decision is consistent with past practice (and failing that, company philosophy and goals) without fear of reprisals. In writing, if possible.
OK, now THAT'S unethical. You're outright lying to your customer. I sure hope my company never does business with yours.
I'm not going ethical into these things, I'm selling services...
If that's so, then you shouldn't be doing what you said you'd do. If your customer (the employer) tells you to delete the account, you delete it. But if they want the data, at least in the USA, it's theirs. And if you delete it, expect them to ask for the data to be restored from your backups.
Failing to turn it over to them or deleting it without their permission may get you sued, and rightly so. Unless your contract with the employer says you can ... you do have a contract, right?
Eric Raymond has mentioned on a number of occasions, here and elsewhere, that he has legitimate copies of several historic Unix source trees and that he's compared them to Linux. He's also developed an automated comparison process for just such applications. See this NWFusion article for example.
My god, RMS will be breathing fire at this I bet.. but for god sakes can we just understand that the opensource movement was a derivative of the Freesource movement.. its not allot to ask really.. stop and learn the facts.
Yeah, it wouldn't surprise me at all if Stallman was breathing fire - after all, when he started the GNU project he intended to build a system, not just an editor and a compiler. It must really tick him off that Torvalds beat him to his primary target.
1, Linus developed a kernel, a good one.
Right, so the "first work on the open source operating system" statement is absolutely correct. Glad we all agree on that.
2, His followers use FREESOURCE apps to make it into what we know as "Linux" but really is GNU+Linux.
You can call it whatever you want. Both projects - Linux and GNU - are licensed under the GPL, and the GPL doesn't require you to give anybody else credit, just to keep their copyright and license notices intact. If Stallman wanted to force future re-distributors to credit him and his project, they should have released their programs under the BSD license.
3, MOD me down and you prove just how little you know ;).
Yeah, I agree with you there too. Hey mods! Do what he asks!
You don't need to care about the LOCALE settings or other such things. Either something is the same as something else, or it is not. You don't need to care if the compiler actually accepts the source with the right character set.
You need more than case-sensitivity to achieve that without concern for character sets. For example, Spanish has a double-ell character ("ll"), which shouldn't be mistaken for the two ells in the classic English "Hello, world". And in just the opposite situation, in German "sz" and the sharp-ess (it looks like a Greek beta) are interchangable, and several other ligatures have equivalent accented characters.
So the short answer is: that does not compute.
The original poster doesn't believe that it's possible to detect steganographic content. There have been lots of technical follow-ups that suggest it might be possible, but almost nobody has mentioned the funding issue. The task is most likely possible simply because there's been an STTR solicitation published. Many of the STTR and SBIR solicitations are designed by their authors to fund existing projects known to the authors. These "solicitations" provoke very few proposal submissions, occasionally even just the one from the expected recipient of the funds.
Don't get me wrong - this isn't a scam. The funding groups are usually genuinely interested in having what they specify developed, sometimes wind up buying lots of it once the development is complete, and in most cases all qualified bidders are truly considered. It's just that the solicitations are often written so narrowly that only a select few bidders can qualify.
But hey, at least the bidders are required to be small businesses, not like those Halliburton contracts for Iraq!
Brewster Kahle and Alexa Internet are the real deal. This isn't some undergrad's CS-101 project, it's a tool designed from the very start to archive the entire web. And it does it on a regular basis. Even if there's a really good SourceForge project (you didn't cite any of them), Alexa's should be a first stop for anyone interested in the task.
They have never said that the original BSD license was non-free. If you look here, you'll see that it is listed in the section titled, "The following licenses are free software licenses, but are not compatible with the GNU GPL."
Yup, that's the FSF's position these days. And I was probably wrong to use the term "non-free" because it has a clear meaning these days, but if you go far enough back in time, the FSF position was very anti-BSD-license, and Stallman used to rail against it almost as often as against proprietary software.
Finally, the GPL does require that credit be given. Just not in advertising material. "You may copy and distribute...provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice..."
That's not "credit" as the original poster would have defined it. That's simply maintaining the copyrights. And the section you elided said " verbatim copies of the Program's source code as you receive it, in any medium", clearly implying that interpretation (and yes, I realize the requirement applies to modified copies too and that that's why you elided it).