Using open source code/software in web apps [closed] - ruby-on-rails

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm having some trouble recently with the open source licenses. I started to feel like if they are somehow tricky! So, I'm just asking about the rights, attribution and so on..
Know, if I for example used a Ruby Gem, licensed under GPL, I install the gem, use it, my web app works! But there is no referring to the Gem, how is behind it, its license. I can't just believe that I have to include those for every gem I'm using. Do I have to? Or can I just use it silently?
So, a website with Rails (MIT), some GPL ruby gems, and so on, what should I include publicly? I think I'm not going to modify the source code of any of those gems.. Yeah, and if I have to attribute in my web pages, do I have to link to the licenses or even worse distribute my source code under the same license?
Also, if I found a tutorial or something like that that is licensed under Creative Commons BY-NC, should I distribute my whole work or put it under the same license, if I wasn't going to run them outside my own server? What if I wanted to distribute my software, which used ideas (and modified code) from the tutorial?
What about using formulas, which are more general than being owned? One-liner commands from stackoverflow when a gem doesn't install - Should I attribute that I used that to install the gem?! I think of course not, but just asking to make sure of the whole thing..

A website is normally the output of a program. Like you save a text-document with your word processor in disk, the document itself does not fall under the reciprocal license of the proprietary word processor (MS Word) or the reciprocal and permissive licenses of the free software word processor (Open or Libre Office Writer).
Only in case you create and distribute derivative or combined works (e.g. packaging multiple programs together in one package) you need to care about the licenses.
That for sure always depends on the concrete things you do. You need to document these concrete things, then go to your lawyer and then find out for the stuff you exactly do if and how copyright is in effect and based on the licenses used and if in effect, which steps you need to do.
Here on SO we are all only software developers (or if lawyers, not your lawyer) so we can not give you any legal support.

Usually stuff about licences can be a little confusing with open source software being released under different licences and usually the license documentation is usually written in lawyer jargon which proves difficult to understand for a lot of people.
Luckily this kind of question has been asked alot of times in SO. Just look at the licensing tag and order the questions by votes and you should find a few questions that pretty much answer your questions. In particular look at this question.

Related

Online SDK / IDE for Open-Source Projects [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Is there any online, editable, code base that can also compile the code?
This is more of an "I wish" than a question, since I've tried to find one with no success. It seems to me that there are a number of open-source, very popular systems which could be integrated for a great benefit to the open-source community.
An online collaborative tool, basically a wiki. Needs to have some versioning.
An IDE/SDK type tool - at a minimum just a syntax checker and compiler
If these two are combined, you would have an open source project that anyone contribute to. The way I see it working is like this:
Every wiki page is a single class
To update a class you must pass a syntax check, including not breaking any other classes that depend on this class
There are two kinds of users - administrators and contributors (who can be anonymous).
Administrators have to approve updates to classes before they can be included in a compile-able release. They also rate the changes that they "approve", which is a sort-of ranking system for the contributors. If security is a concern, you could say that every approved change is randomly assigned to another admin for approval, and if that person detects malicious code then the first approver is now suspect and may be removed from being an admin.
Contributors can download any approved release, and can optionally download a version that includes all of their own revisions that have not been approved yet. This is normally for their own testing, but maybe they just want to change a behavior, even if no one else likes that change.
Any class (that meets certain requirements) can be marked as a "root" class, which means it can be compiled with its dependencies.
The advantages with this system seem huge to me!
Participation with almost no effort. The work of joining an open-source project is normally at a minimum an hour or more. That is in addition to initially downloading and installing a compatible SDK tool.
Learning about open-source with much reduced effort. I see many more people joining in with a friendly, wikipedia style site that they can just browse through as a way of learning the code base
Better code base (refactoring) All those people who tweak wikipedia will be free to tweak source code too. Cleaner code will in turn be easier to read and maintain.
Easy customization If I want to add a feature to my favorite open-source software, I can just make a change and download the compiled version. No need to
This could be a build process for web servers. Plug this into updating a web-site, and it can replace your current build server. When a version is approved, it just deploys the update (presumably on a schedule so it is during low-usage hours)
I see a few down-sides, the same as those that already exist in wiki sites and open-source projects, somewhat amplified. But I think these all have somewhat standard
Public/anonymous contributions could be bad or malicious
Blocking "spam" contributions
Bandwidth of downloads (all those executable files)
CPU to compile all the versions
Does any such thing exists? If not, how feasible would it be for a team to put this together? Are there any other major problems that could kill this idea?
This idea just occurred to me one day, and I can't find it. I'm putting this "out there" partially to "establish prior art". This idea is free to be taken and used, just not free to be patented :p.
Perhaps you're looking for Cloud9 IDE?
From their website:
Cloud9 IDE is an online development environment for Javascript and Node.js applications as well as HTML, CSS, PHP, Java, Ruby and 23 other languages... Teams can collaborate on projects and run them within the browser. When you're finished, deploy it—and you're done!

Can I use Grails in proprietary software? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm trying to figure out the licensing consequences of using Grails as the base for closed-source non-free software. This would be a server product that is downloaded and installed. Users would not have the right to redistribute it or run it as a hosted service.
Grails and Groovy themselves are cool: they're licensed under ASF 2.0 which is great. However, Grails has a billion dependencies and I'm going crazy tracking them all down.
Grails can generate a list of software that your project depends on by running grails dependency-report. I'm going through that list of dependencies, BUT:
Many of the libraries do not list their licenses. So I'm going to each and every library and figuring out its license.
I'm guessing dependency-report doesn't list all the transitive dependencies (libraries that THOSE libraries include, and so on) because they aren't fully specified in Ivy.
Has anyone gone through this exercise before? Just knowing the end result would be a HUGE help. Actually having a list of all the dependencies and their licenses would be a MASSIVE help.
Thanks!
I spent a day tracking down all the Grails 1.3.7 dependencies. Here's the gist:
Grails itself has the nice friendly ASF license
Some subcomponents use more restrictive licenses
However, none of the subcomponents use what I'd call a "showstopper" license like GPL
However, some people WOULD consider a few of the licenses to be showstoppers, most notably the LGPL used by Hibernate.
Lawyers are scared to death of LGPL because it's easy for developers to make a mistake that forces the entire system to become open source. Things that would trigger this are: modifying any little bit of the LGPL source code, copying any little bit of the source code into your product, or linked to the GPL software "statically" rather than "dynamically" (that's a long discussion).
Because of this, some software companies and purchasing departments have rules forbidding its use.
Here's the subcomponents with more restrictive licensing than ASF. LGPL's the worst:
Hibernate (LGPL)
A bunch of javax stuff (like activation and mail) under CDDL 1.0
org.beanshell BSH is SPL
javassist is MPL
Everything else is licensed BSD, MIT or ASF. Those are fine.
I should think that all of the Grails dependencies will be fine for use with commercial software since SpringSource sells commercial support for it. You could try asking them about licensing issues as they probably have it all figured out.
Can I use Grails in proprietary software?
Ask Oracle, Grails is running on Java. It might be restricted through higher rights so you might need to get a license from Oracle first to create your specific software with it. Better ask the vendor of the platform first.
[...] Java specifications are proprietary technology that must be licensed directly from the spec lead under whatever terms the spec lead chooses.
See Apache foundation resigns from Java community
Next to that it depends on the license of the Grails package. It's released under ASF 2.0 as you write. I would furthermost assume that this license applies to the whole package as the website suggest, but you must check the whole source code on your own if you really want to rely on this, because the software comes with no warranty. In case the Grails folks made a mistake in licensing it falls back to you in a larger share if the information they provided was wrong.
Keep in mind that you are asking about creating your own proprietary software. That's a job on it's own, your business, and you need to take care for anything legal then on your very own.
You can never rely to any comment unless it's one of a lawyer that is acting behalf of yourself for real.
There is one plugin that might be helpful to check upfront visible licensing terms: http://www.grails.org/License+Plugin
The ASF 2.0 license is a free software license, so even if you consider it "friendly" with all the attitude you show, keep in mind that it has termination clauses as well as the GPL / LGPL. Those are to protect the freedom of the software.
The license at the Grails web site will surely have an answer.

How to share software built with Ruby on Rails without revealing code

I had a question with regards to software built on Ruby on Rails. I'm on the business end of an incubation team that has a few projects in the works, all built on Ruby on Rails. The goal from the investor was to sell the software out to third parties and have them use the platforms to their liking. From what I can tell though, there is no way to compile Ruby code and send it off to a third party, hiding the actual code from them.
We do not want our clients being able to copy our code and take it from us. Is there any actual solution to this problem, or are we screwed because they already decided to develop on Ruby? We wanted to be able to sell software as a service, but that's not going to work out if a client can sign up for a month, copy our code, and then build their own solution.
Thanks for any help in advance.
Ruby code obfuscators do exist, but that's of little real help IMO. But even if Ruby was compiled, chances are good it would get compiled into a format that is easily decompiled. Languages like C# and Java are both easily decompiled and thus source code is easy to get at these days.
Your real protection should probably come from a license. You may need to work with a lawyer or someone versed in software licenses. But if they violate your license, you have legal ground to take action.

Using copyrighted code [closed]

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
What is the guideline on creating a program or part of a program based on a non-free code, for example from codes Microsoft's sample code for .net or code found in someone's blog? The codes are there to help a programmer's work right? If one feels that part of such code is helpful in his work, does he have to reimplement them from scratch, or is it okay to copy and paste some codes? What is the limit?
In addition to the general advice of "go ask a lawyer," here are some other thoughts.
I am not a lawyer, but I am responsible, as a senior product line manager, for making the decision of when to discuss something with a lawyer.
If you work at a company that has staff lawyers, then it is always a fine idea to go talk to them. Usually you'll want to discuss with your manager first. If you're in a product development group then you should also talk with your product manager.
Generally speaking, there is no such thing as public domain code. Rather, every bit of code should have an license.
Re: can I use Microsoft sample code? Yes, as their web page says: The .NET Framework documentation includes code examples that you can copy directly from topics and paste into your own projects. -- Quoted from their web page that you referenced in your original question.
Added: The one liner from the MS site is a summary of their license. The actual license is longer and refuses responsibility for what the code may or may not do, suitability, etc etc. But the one line summary, especially for sample code, is clear enough.
Re: can I use code samples from blogs Yes and no. Blogs should include a license for their software postings. Some do, many do not. If they don't, consider writing to the blogger and asking something like Which license covers your software examples from your blog? The BSD license (example from Yahoo: http://developer.yahoo.com/yui/license.html) or similar?
The reason you'd suggest that the blogger consider the BSD license is that it is very open. But, for example, the blogger could come back and say, "My examples are licensed under GPL 3."
In that case, you'd be bound by GPL 3 if you use the blogger's code.
Added: Can I use software examples from StackOverflow? Per the above, you should look for a software license from the blogger. And guess what? There is one for Stack Overflow. See the Legal link at the bottom of each SO page. On the Legal page, see section 3, "Subscriber content." That section gives you the license for all code samples on SO.
Conclusion If you want to be living within the licenses from the sw writers, then you need to know what those licenses are. If you don't know, then you run the risk of not actually having the right to use/re-license the software.
A different question, is "must I always have a proper license for software that I'm using?" The answer to that question depends on many things. The simple answer, especially if you work for any government, public or private institution is "yes." And, of course, as a proper member of society, you should also only use licensed software, for the obvious reasons.
Suppose, for instance, you see some sample code on a blog. The code is very useful to you. You want to use it. But there is no license for the code on the blog. You write the blogger, but get no reply. Can you use it? You could, but there is a risk (probably small), that the software's owner (the blogger) could decide to sue you. So then the real question is, should I assume the business risk? That's a business decision, not a technical decision. A reasonable business decision might then be, "Yes, let's use the software and take the risk of a problem."
Added: Microsoft Public license-- Microsoft (MS) licenses its sample code via its "Microsoft Public License." Also known as the Ms-PL. The license. Example of a .Net sample referring to the Ms-PL. Another example of Microsoft sample code.
I doubt copying somebody's "Hello World" or "How to connect to a database" code would be much of a copyright issue, and example code usually gives the basics. The issue here is that there are only so many ways to do something in a programming language, as long as you're not directly copying significant portions of code you should be fine.

Tool for licensing and protect my Delphi Win32 apps [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
I am looking a tool for protect and licensing my commercial software, Ideally must provide an SDK compatible with Delphi 7-2010, support AES encryption, Keys generator and capacity to create trial editions of my application.
I am currently evaluating ICE License. Someone has experience with this software?
Here's my list of software protection solutions. I'm looking at switching from ASProtect to another protection so I'm also in the process of analyzing most of these programs:
Themida (Oreans)
http://www.oreans.com/products.php
There are unpacking tutorials for all the versions of Themida. There is however the possibility of requesting "custom" builds which might help avoid this.
Code Virtualizer (Oreans)
http://www.oreans.com/products.php
Allows to protect specific parts of the application with a Virtual Machine. A cracker on a forum said he "made a CodeUnvirtualizer to fully convert Virtual Opcodes to Assembler Language".
EXECryptor
Very difficult to unpack. GUI does not work under Vista. Appears to no longer be developed.
ASProtect
Small protection overhead. Appears to no longer be developed.
TTProtect - $179 / $259
13 MB download. Chinese developer. Adds about xxx overhead to the exe.
http://www.ttprotect.com/en/index.htm
VMProtect - $159 / $319 (now $199/$399)
http://www.vmprotect.ru/
10 MB download. Russian developer. Seems to be updated frequently. Supports 32 and 64-bit. Uncrackable according with one exetools post, but there seems to be an unpacking tutorial already.
Enigma Protect - $149
http://enigmaprotector.com/en/home.html
7 MB download. Russian developer. Regarded as very difficult to crack. Adds about xxx overhead to the exe.
NoobyProtect - $289
http://www.safengine.com/
10.5 MB download. Chinese developer. Regarded as very difficult to crack. Adds about 1.5 MB overhead to the exe.
ZProtect - $179
http://www.peguard.com
RLPack
http://www.reversinglabs.com/products/RLPack.php
KeyGen already available.
One thing to note is that the more protection options you enable on the software protector, the bigger the possibility of the protected file being flagged by an anti-virus as a false-positive. For example, on Themida, checking the option to encrypt the file, will most likely create a few false-positives by a few anti-virus programs.
I'll update this answer once I get more replies from a hackers forum where I asked some questions about these tools.
And finally, don't use the build-in serial number/license management of these tools. Although they might be more secure than using your own, you will be tied up to that specific tool. If you decide to change software protection in the future, you will also have to manage all the customer keys transfer to a new system.
Don't bother. It's not worth the hassle. Only a perfect licensing system would actually do you any good, and there's no such thing. And in the age of the Internet, if your system isn't perfect, all it takes is for one person anywhere in the world to produce a crack and upload it somewhere, and anyone who wants a free copy of your program can get it. (And using a pre-existing library just gives them a head start on cracking it.)
If you want people to pay for your software instead of just downloading it, the one and only way to do so is to make your software good enough that people are willing to pay money for it. Anyone who tells you otherwise is lying.
I have used OnGuard (using the Delphi 2009/2010 source from SongBeamer) along with Lockbox to handle encryption with success. Both are commercial quality libraries and are free to use with full source.
I did once also use IceLicense, but switched to OnGuard/Lockbox which allowed me greater control over the key generation process which we embedded directly into our CRM system.
Of course there is no %100 bullet-proof protection suite, but having some type of protection is better than having nothing.
I worked with WinLicense in Delphi 2009 and Delphi 2010 on Windows XP and Vista. It is a good product with lots of protection options, and customizations. It provides a SDK for developers, and has nice documentation and samples. It also provides a license manager for you. They provide trial download too.
As far as I remember, they offer some customer specific versions too; that means they are willing to provide a custom-built product which is customized according to your needs, but of course that will cost more.
Since WinLicense is a well-known and popular protection suit, many crackers are after it. As you know, the more famous a tool is, the more appealing it is to crackers. But the good thing about Oreans is that they actively monitor underground forums, and provide frequent updates to their products.
So IMHO, if you are supposed to buy a prebuilt protection suite, then you'd better go for WinLicense.
A little late to the post, but check out Marx Software Security (http://www.cryptotech.com) they have a USB device with RSA & AES on chip, with network based license management.
I bought a license for ICE License in 2007. Unfortunatly (as far as I know) the component haven't been updated since June 2007. Back then a Vista compatible version was in the work but never came out of beta. I don't think they updated the component for Delphi 2009 and 2010 yet.
Ionworx is an one man company which might explain the lack of updates and lack of answer to support questions (emailed them 2-3 times since 2007 and never got back to me). They also removed their support forum from their site.
ICE License is better than nothing but I would stay away from this product because the lack of updates & support.
I investigated this a few years ago, and came to the following conclusions:
All copy protection can be broken
Nag screens on load irritate people to the point where they may stop using the product
Random nag screens can interrupt the users work flow to the point where they perceive it to be a reduction in the speed of the application
Set up compiler options, so that you have a version as a demo (perhaps with save functions removed), reduce multi user versions so that only one client can connect at a time (not using, for ex:
if connection=1 then reject
but reducing the viability for multiple connections in code)
Themida has good protection, and I think it built with Delphi too ;-)
if you have a better budget, you can look at winLicense and other tools from same company.
Have a look at this question which is pretty similar, and includes many of the tools.
Take a look at InstallShield. We've been using it for a while ourselves, and it has a lot of capabilities for trial support, licensing, and others. I don't know about key generation off the top of my head as our use doesn't require keys, but there's a lot available to you from them.
AppProtect wraps an EXE or APP file with computer unique password or Serial Number based online activation. QuickLicense is a more comprehensive tool that support all license types (trial, product, subscription, floating, etc.) and support both a wrapping approach or API to apply the license to any kind of software. Both are available from Excel Software at www.excelsoftware.com.

Resources