what are some resources to learn about copyright law? [closed] - open-source

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I once heard a prominent scientist say, of global warming, that he didn't realize how much he would have to learn about politics.
I just read an excellent article in DDJ about the Jacobsen verus Katzer case. When in university, I didn't know how much I would have to learn about the law.
It seems to me that a big hole in the classic comp sci education is that of legal issues. Many of us talk about licenses, copyright, copyleft, prior art, etc, but our terms are often vague and probably inaccurate.
What are some resources where the average developer can learn about copyright law and become an informed citizen of IT?

groklaw would seem to be a good starting point for open source issues

1 A good overview of key intellectual property regimes (more geared to open source, US law) can be found here:
http://www.softwarefreedom.org/resources/2008/foss-primer.html
2 Here's also a collection of links to open educational materials on digital copyright:
https://sites.google.com/site/copyrightessentials/
I'd also recommend reading the materials on the Electronic Frontier Foundation's website, regularly updated and high quality.

The Nolo book Legal Guide to Web & Software Development discusses copyright and other issues as they pertain to software developers.
http://www.amazon.com/Legal-Guide-Software-Development-CD-Rom/dp/1413305326/

I really enjoyed these lectures from MIT Open Courseware.

I don't know any truly greate resource. I just know that most of what I've seen is missinformation, even by people who should know. So be very sceptical of anything you read.
If you just want to know the practical concrete law of things I suggest you speak to a lawyer and/or read some actual verdicts.
Then again most copyright issues aren't taken to court but affect you more directly in contracts, expectations and litigation threats. In this case the law won't help you, the cultural dealings with copyright will probably differ a great deal from the actual law, in this case it would be better to just study the people/companies and their actions. I recommend the course COMM 499: PWNED: Is everyone on this campus a copyright criminal? by Cory Doctorow. You can get recordings of the lectures at archive.org
If you are more interested in ideological issues I think Question Copyright has a few interesting articles. Specifically one about the history of copyright.

If you are in a company, ask management to have the company’s intellectual property lawyer come in and speak to the technical people. Although lawyers usually work on an hourly rate basis, the good ones love to come in and give little educational seminars to show their clients they care and, of course, to sensitize them to legal issues that they might call for more help on.

Related

What licenses are the best for open sourcing web applications? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
What licenses are the best for open sourcing web applications?
It depends on your licensing goals.
If you just want the code to be widely usable, MIT or 3-clause BSD work fine.
If you want to require redistributions of your code to be under the same license, GPL works.
If you want to require deployments of your web application to distribute its source code, with any modifications, then you'll need the AGPL.
If you are fine with your application being used as the basis for a proprietary web service, then just pick a standard license (BSD, GPL, MPL, whatever) using the same criteria as for other projects. If you want to prevent that, however, the only option I know of is AGPL, which requires that installations provide source to their users. Then BigBucksServiceVendor can set up an installation, tweak it, and charge users to use it, but they must provide their source code so that someone else can do the same as well.
The AGPL also, though, is not near as widely used as many of the other licenses. That may impact your decision.
The answer for the "best" depends too much what you hope to accomplish, so a concrete answer is impossible.
If you would like to know more about the types of open sources licenses and what they offer, Wikipedia is a great place to start.
http://en.wikipedia.org/wiki/Open_source_license
Despite the multitude of open-source licenses, there are probably only a few you can realistically choose from when it all boils down. As Mike was saying, it all really depends on what you're looking for.
Realize that open-sourcing is just another form of license protection, so deciding for yourself the terms under which you want it to be released will greatly affect which license you choose. Do you want to allow commercial endeavors to profit from your work? What if someone were to modify your code significantly into their own derivative product... can they distribute it (for free or not) without also distributing the original or at least linking back to you? Do you care if anyone gives you credit at all for your work? These are just a few questions that should probably be answered before you head too far down this road.
I'd recommend taking a look at a few wiki pages -- specifically, investigate the difference between permissive and non-permissive licenses, as these are the two major types of open-source license. When you get around to figuring out what exactly you want to protect and how you'd like to protect it, that's when I think the right decision will become clearer for you.
Pick a License, Any License
There are a variety of options depending on what you're looking for. There is a very good article on Wikipedia describing many of the licenses and what it means to use a specific license.

Software Development - Gaining mastery - books or "mentors" or other? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
To me it seems that classroom training gives us building blocks of technique, but rarely covers actually building anything large or complex, and even when classroom training covers "large projects" you are still just graded on getting the correct end result.
Where should people turn to learn the larger aspects of software design? Specifically where can people go to learn actual "best practices" when starting to work on mid size to large projects/systems? (With less theory and more application)
(My focus would be on .NET and C#, but the question is valid for any technology)
Code complete - by Steve McConnell
Pragmatic programmer - by Andy Hunt and Dave Thomas
Facts and Fallacies of Software Engineering - by Robert Glass
In my experience, the only way to learn how to design and develop large projects is to work on such a project. This is inevitable when you consider that most large project problems are to do with communication - between team members and between code modules. This is something that is almost impossible to simulate in the classroom (I've tried).
One place: industry. This could be as an internship if you're still in college, or as a job if you're out of college. There's no place for you to learn the standard practices like at a company full of people developing software.
Code code code
Make mistakes, fix them
Ask for help - SO is great for that!
even when classroom training covers "large projects" you are still just graded on getting the correct end result.
You seem to be awfully concerned about how projects are graded. You shouldn't be.
Your grades are of course important, but they shouldn't be the end-all be-all of your university experience. You are there (presubably paying tens of thousands of dollars) to learn. Get your money's worth. Good grades should be a by product of the fact that you are learning the material well, not the other way around.
Your large projects in school will probably be your most important learning experience. Mine was where I first really came face to face with issues like:
The importance of design before coding
Communications between developers working the same project
Dealing with the very real differences in capabilities between developers
Dealing with the differences in motivation between developers
The nessecity of using revision control
Software integration
The whole experience ended up being a major topic in the job interview for the job I finally got after graduation.
I think we got a B on our project, but that was totally beside the point.

Addressing concerns over using open-source libraries in closed-source projects [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
Background: There are a couple of concerns that are not core business for us. They are essential to our core business, but we have no business writing on our own, in terms of manpower, time, and expertise. I am familiar and very comfortable with some open-source implementations, using closed-source-friendly licenses, that could fill these gaps. Closed-source alternatives I either could not find, or were crap.
I put together an informal proposal to show my boss, including the original licenses for each project for legal review. Being a business owner that knows little about the world of open-source, he was initially hesitant when he realized some of these libraries were. I tried to educate him to the best of my abilities (I'm no open-source warrior myself), but he did bring up some valid questions that, in some cases, I don't feel I answered as well as I could have.
Concerns (worded from my boss's prospective)
How do we know and ensure there is no malicious code in an open-source project? Read and understand every line? At that point we could have just written it ourselves!
Who do we blame when things go wrong? With support licenses and a responsible party, we can get things fixed. And if they fail to come through, well... you know.
How do we establish or measure that an approach or implementation in an open-source project is sound, efficient, or good quality?
What sort of liability do we open ourselves up to, in terms of licensing [granted, this is more a question for lawyers and an issue of RFTL].
Question: How have or would you have addressed these concerns?
How do we know and ensure there is no malicious code in an open-source project? Read and understand every line? At that point we could have just written it ourselves!
Same problem with closed source. Actually worse with closed source. With open source at least you CAN review it yourself, or you can take someone else's word for it. With closed source, taking someone's word for it is your only option.
Who do we blame when things go wrong? With support licenses and a responsible party, we can get things fixed. And if they fail to come through, well... you know.
Probably the biggest issue. This depends on which particular solutions you're using. Some things are backed by a reputable vendor (e.g. Red Hat) whereas others have virtually no support. But that "you know" is critical here: ultimately there is no way to guarantee that someone will fix bugs that you encounter when you are using closed source. At least with open source you can hire a 3rd party consultant to do the job, for the right price, because you have the source.
How do we establish or measure that an approach or implementation in an open-source project is sound, efficient, or good quality?
The same way you would with any other code? I don't have any better answers for this one.
What sort of liability do we open ourselves up to, in terms of licensing [granted, this is more a question for lawyers and an issue of RFTL].
Yep, have a lawyer advise you on this. Every tech business should employ a lawyer anyway. The answer will depend on the specific licenses you're dealing with and what exactly you plan to do with the software you develop.

Any source of good object-oriented design practices? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
Is there any website where people share and discuss good examples of object-oriented design?
Ideally such website should be populated with posts of the following structure:
Concise description of the problem, including definitions, links, etc.
Several attempts of OO design, diagrams, pseudocode listings (voted up/down by users)
Comments (also voted by users)
Currently I'm looking for a source of inspiration.
Ward Cunningham's wiki (he invented wikis -- the c2.com one was the first one and is still active) has a lot of discussion, especially but not exclusively about patterns (Ward was very involved in the start of the whole idea of design patterns, as well as agile programming and quite a few more things;-). You can start here for example. It's not as coordinated and structured as you desire (actually pretty chaotic at times;-) but it can be really instructive to follow all the back-and-forth debates.
i dont know if this site has any discussions, but very good articles:
object mentor (archive)
http://www.amazon.com/Object-Oriented-Software-Construction-Prentice-Hall-International/dp/0136291554
Object Oriented Software Construction - Betrand Mayer
He's the man that originated the Eiffel language, the most complete analysis of OO software construction I've read.
Object Thinking - David West.
Some books that have not been mentioned:
Larry Constantine's Structured Design
Grady Booch's Object-Oriented Analysis and Design with Applications
Rebecca Wirfs-Brock's Designing Object-Oriented Software
Ivar Jacobson's Object-Oriented Software Engineering: A Use Case Driven Approach
Kent Beck's Implementation Patterns
Steve McConnell's Code Complete
Joshua Kerievsky's Refactoring To Patterns
Well I can't point you to web sites, but I can refer you to some great books :
Effective C++
More effective C++
Design Patterns: Elements of Reusable Object-Oriented Software
Exceptional C++
More exceptional C++
Of course, those are C++ books, but a lot of concepts in them applies to much more than just C++

Brownfield vs Greenfield development? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
This is not a question with a precise answer (strictly speaking the answer would be best captured by a poll, but that functionality is not available), but I am genuinely interested in the answer, so I will ask it anyway.
Over the course of your career, how much time have you spent on greenfield development compared with brownfield?
Over the last 10 years I would estimate that I have spent 20% on greenfield and 80% on brownfield. Is this typical?
I think it's typical for professionals who deal with customers to spend more time in brownfield development. The reason is that customers typically aren't willing to throw out their existing software to adopt the "latest and greatest" (green) software.
Developers in research or academics, however, may be more likely to do greenfield development. Start-ups as well.
I think that your ratio 20:80 is representative of many/most developers. As to new development: if you are building software incrementally (Scrum, XP, etc) then one could argue that you spend almost all of your time in brownfield development. Except for the initial iteration/exploratory work, prototyping, even when you are building something new, you are already working on an established code base, refactoring and extending. So how much greenfield development is actually green?
Often the problem doesn't just boil down to brownfield vs greenfield. In some cases there is a valid opportunity for a hybrid greenfield/brownfield approach.
I have written an article called "Classic software mistakes: To Greenfield or Refactor Legacy Code" which discusses this exact subject and outlines a range of possible combinations then evaluates the consequences of each.
http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html
What may surprise some people is that a non technical attribute, company size, will be a big determinant in the choice of strategy and the likelihood of success of that strategy.
Over the past decade or so, I've always worked on software that was used as the center of my company's business. (Both SaaS and a software product.) And while I've always come into the with an existing system (so brownfield), we've usually put out a ground-up redesign/rewrite (so greenfield.) So, to break to down:
about 60/40 brown/green for the big projects, in number
about 20/80 brown/green for the big projects, in time spent on them
and nearly 0/100 brown green for little side projects
So, that is seems to be the opposite of you. It is the nature of the companies I've sought out, and hence the projects. My software is our company's main product, and that means I work on the same code base for years, usually after having created it from scratch myself/ourselves.
And I like it that way.