Licensing and commercial use [closed] - windows

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 found a really cool piece of software under the AGPL license. I haven't heard of this before, so excuse the ignorance... But is it legal for me to simply bundle and use this product directly within my app (no modification) and resell for commercial use? Speaking of which, is there a simple table available that shows the implication of each open source license and whether or not it can be used by closed source, for-profit, $$$ type software?

It is unclear in your question how your program relates to this AGPL software. There are at least two possibilities:
If your software keeps the AGPL code as a clearly separated component that your code uses as an external program (e.g. in Java/GWT, Runtime.getRuntime().exec(params)), then your program does not need to be licenced as AGPL and you do not have to distribute the sources of your code, but you must make the sources of the AGPL software as easily available as your application (section 6d of AGPL v3).
If your software merges somehow with the AGPL software, even just creating a wrapper around it, in a way that the separation is not clear or they cannot "reasonably [be] considered independent and separate works in themselves", then your program can be considered a derivative work and therefore must be licenced as AGPL, and you must distribute the source code of both your program and of the original AGPL software.
I would like to stress that there is nothing wrong with charging for access / use of AGPL software. You only need to provide the source, nothing prevents you from charging a fee or earning money from advertising (like those websearch companies that run on modified linux kernels).

As per http://en.wikipedia.org/wiki/Affero_General_Public_License
Both versions of the AGPL were designed to close a perceived application service provider "loophole" (the "ASP loophole") in the ordinary GPL, whereby using but not distributing the software, the copyleft provisions are not triggered. Each version differs from the version of the GNU GPL on which it is based in having an additional provision addressing use of software over a computer network. The additional provision requires that the complete source code be made available to any network user of the AGPL-licensed work, typically a Web application.

In short, no. According to Wikipedia the AGPL license is just like the GPL license with added clauses for use over a network.
The long answer is yes, but you'd also have to publish your source. Some applications use this structure, for example the official XChat windows builds.

Related

License requirements for rubygems redistribution [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 8 years ago.
Improve this question
Does anyone know the license under which rubygems (http://production.cf.rubygems.org/rubygems/rubygems-2.0.4.tgz) itself can be redistributed? The rubygem.org seems to have no mention of this...
Thanks Rags
The RubyGems license:
RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
Weirich and others. You can redistribute it and/or modify it under
either the terms of the MIT license (see the file MIT.txt), or the
conditions below:
1. You may make and give away verbatim copies of the source form of the
software without restriction, provided that you duplicate all of the
original copyright notices and associated disclaimers.
2. You may modify your copy of the software in any way, provided that
you do at least ONE of the following:
a. place your modifications in the Public Domain or otherwise
make them Freely Available, such as by posting said
modifications to Usenet or an equivalent medium, or by allowing
the author to include your modifications in the software.
b. use the modified software only within your corporation or
organization.
c. give non-standard executables non-standard names, with
instructions on where to get the original software distribution.
d. make other distribution arrangements with the author.
3. You may distribute the software in object code or executable
form, provided that you do at least ONE of the following:
a. distribute the executables and library files of the software,
together with instructions (in the manual page or equivalent)
on where to get the original distribution.
b. accompany the distribution with the machine-readable source of
the software.
c. give non-standard executables non-standard names, with
instructions on where to get the original software distribution.
d. make other distribution arrangements with the author.
4. You may modify and include the part of the software into any other
software (possibly commercial).
5. The scripts and library files supplied as input to or produced as
output from the software do not automatically fall under the
copyright of the software, but belong to whomever generated them,
and may be sold commercially, and may be aggregated with this
software.
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
(It's in the LICENSE.txt file in the tarball you linked.)
It is distributed under the MIT license according to the git repo: https://github.com/rubygems/rubygems/blob/master/LICENSE.txt

Applications included as part of operating system or not - what's the difference? [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 9 years ago.
Improve this question
A question I've been given to study with is this:
Q: Should an operating system include common applications such as web browsers and mail programs or not?
The answer I was given to this question is: Pros: better performance and integration if it is included as part of the OS. Cons: The OS is burdened with additional functionality.
I am clearly lacking understanding of something here, because I don't see what the difference would be. In the end, I don't see what the difference is between making a browser "part of the operating system", or making is separate. I suppose I don't really understand what it means to be "part of the operating system". I don't understand why an OS would be burdened more in one situation that the other.
Any help would be greatly appreciated.
Thanks
If an application is included in an OS it
is convenient for the average user who doesn't have to choose and install software
is sometimes inconvenient to remove (like system apps in some mobile OS which you can't unistall easily)
can be tightly coupled with other application that are included (like browser + pdf viewer or media player) that wouldn't necessarily be available on other systems, increasing its functionality
probably doesn't need to support other OS and development is concentrated on integration with the OS it is bundled with
takes up disc/disk space - which was more a problem when OS used to be delivered on floppy disks or CDs and hard disk space was expensive
The main reason to include software probably is to tie the customers to the product. The application maybe is developed by the OS manufacturer or they got paid to include it. There have been lawsuits because of this, which resulted for example in the Windows N editions (without the windows media player) or the web browser choice screen in european versions of the Internet Explorer.
I'm not sure this is the correct stackexchange for this question, perhaps http://programmers.stackexchange.com
First off, what makes up an "Operating System" is a little bit nebulous, one might argue that the Browser is not "part of" the OS, but merely bundled with it.
For the purposes of this question, I think part of the operating system means it comes out of the box with that app installed (regardless of whether the app is "part of the operating system" in a deeper sense).
The automatic update mechanism, for example, might treat the app as seperate and update it separate from the OS, or even allow it to be uninstalled from the system, but that doesn't change the fact that the machine came with that app.

Windows Programming Languages (GUI) that doesn't require installing any framework/dependency [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 5 years ago.
Improve this question
I use C#/VB.NET most of the time to write windows applications.
But this happens when my customers need an app that doesn't require a framework (e.g .Net 4) to be installed on destination system . So the exe file can run without installing any dependency.
I know about C/C++ but writing GUI applications in them is so hard.
I heard about D language, but it seems to be very fresh and there is no (not enough) documentation at all.
Also there is Delphi but it's so expensive.
Is there anything else out there ?
note: I prefer compiled languages over interpreted ones.
If cost is a factor, since you reject Delphi, how about FreePascal with the Lazarus IDE. It's just hit version 1.0 and is of a very high standard.
Yes.
Understand the point of the libraries (DLLs): to avoid you having to bundle the common functions/methods/classes into your application every time. With that in mind, I would ask why the requirement to not install libraries on the destination?
Is it disk space? Required effort? Fear/Paranoia? (Lack of) expertise?
I would look to address the root cause of this "requirement" rather than try to work around it.
There are ways to statically link whatever functions/methods/classes/etc. your code needs directly into your binary.
If you go away from .NET and wander into the wonderful world of Windows assembly programming (warning: near-vertical learning curve), you can write tiny, tiny apps (we're talking a few K) that require nothing external.
If you want a GUI compiler for Windows that uses no framework, then you want Visual Basic Version 6, which hasn't been updated since 1998.
If you want a web scripting language for Windows that uses no framework, then you want Classic ASP, which sadly hasn't been updated since 2000.
Classic ASP rocked. It was miles better than the .NET framework. Microsoft is run by idiots. Perl and PHP are just stepchildren of Classic ASP. Classic ASP was the last good development tool that Microsoft ever made. What kind of idiots would assume that an overbearing framework would be suitable for all software development? The .NET framework is an ugly, bloated circus of auto-generated code that pours ice down the pants of real developers.

Are there any good open source smalltalk implementations? [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
Do you know any good smalltalk implementations which meet the following criteria:
are open source (and free)
are enterprise ready - I can do commercial apps into it
works on os x
I'm asking this because I heard a lot about smalltalk, and I want to learn it - just for fun. But it seems to be hard to find the right tools and books for this language.
I am happy developing commercial web applications on a Mac in Pharo. Cross-platform development is easy and painless. I work together with a Windows-based developer and we deploy on Ubuntu. There we use the commercial Gemstone system (OODB) in its free version. We use Monticello as a distributed version control system. I've taught a student the basics of smalltallk and Seaside with James Foster's tutorial. A more in-depth explanation is in the Seaside book
When creating domain models, Glamour is a fantastic toolkit to create browsers, allowing the navigation and visualization of the model. It is part of Moose, a software reengineering system, also based on Pharo.
There are of course also weaknesses: Pharo changes a lot. Track the changes that are going on on the issue tracker and the mailing list. Staying about a month behind the bleeding edge is about right for us. Integration with legacy systems is easiest with REST web services or files. Smalltalk tends to use a lot less XML (SOAP) than .NET and java. There is no good 64 bit support. There are 64 bit images, but they have not been tested enough and are known to have problems.
Pharo meets all your criteria. It is open source and free, it was forked from Squeak specially to be for professional development and because Squeak was actually born under the Apple umbrella, it supports OS X perfectly.
Squeak. As Janko mentioned, Squeak spawned Pharo. Since the fork, Squeak has undergone a number of significant changes and is (in my opinion at least) as enterprise-ready as Pharo.
(There is a large amount of cross-pollination between the Squeak and Pharo communities. They even share the same virtual machine.)
I forgot...fore even more books, check
http://stephane.ducasse.free.fr/FreeBooks.html
and for web development you can check
http://book.seaside.st/
Gnu smalltalk
I would go by Pharo. Check:
http://www.pharo-project.org/
http://pharobyexample.org/
http://book.pharo-project.org/
Pharo if your focus is web development only.
Squeak if you want more stuff to play with and don't care if you're a bit behind with the latest web development stuff using Seaside and don't mind if there are libraries that people haven't tested in a while.
Cobalt (based on squeak) or OpenQwaq if you want to have a robust 3D mutli-user distributed 3D world available.
Scratch if you want to have a kids-ready programming environment out of the box.
All of these are based off squeak.
You have several flavors of VM available with each of the above. Cog and CogMT are designed to be accelerated VMs that use a just in time compiler for extra speed.
There are also experimental GUIs, such as Cuis and there's a standalone VM called "SqueakNOS" to be used in place of a host OS such as Mac OS or Linux.
In a few months, there should be a massively scalable multi-core system available called SiliconSqueak that implements the Squeak VM in hardware.
I've no doubt missed a few things. Squeak is a research tool for many people in the computer world and some implement commercial products using it.
I do use #Pharo for commercial development.
Application space: dashboard and networking equipment.
Very solid tool, executes fast.
Now on Pharo 3.0.
Command line tools created using CommandLineHandlers.
Web apps with Seaside and fronted with Apache.
VMs monitored with monit.
CI with Jenkins.
All source Smalltalk code managed in git.
The best thing is the speed of development and ease of debugging.
Never had such a good experience. Coming from Java, PHP, and some C.

How can I track and synchronize releases between products and components [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 3 years ago.
Improve this question
I found an odd situation at work and I'm trying to figure out where to start with a solution.
We have a custom hardware/software device which contains multiple boards, each with their own function and flavor of software (CPLD, bootloader, application, etc). Additionally, the device interacts with a specific web app and a PC application.
Each one of these components has a revision history, tracked individually. Particular devices (which of course are all featureless black boxes) potentially have different versions of any and all components, hardware and software- we're still in the prototype and test stages.
What I'd like is some kind of unified version tracking, where I can trace software builds against bugs and feature requests, have a history/schematics for the boards, and- most importantly- what versions of components were tested against which other versions of components. In other words, I know that bootloader version 1 passed test in conjunction with board version A, but was not necessarily tested against version B of the same board, even though it was extant at the time.
Individual rev tracking is relatively easy; we have a handful of developers working different software components. It's tying them together and being able to say that "PRODUCT VERSION 1.0" consists of this bag of components, tested against each other and not much else. That way, when we update, say, the bootloader, I can have it regression tested against the current versions of all other components, label the whole "PRODUCT VERSION 1.1", and know what that snapshot is, even though someone comes out with version 1.4 of the application code the same day.
Ideally I'd like to track revision history separately across all components, along with users being able to log bugs against specific components or against the product as a whole, after which developers can re-assign the bugs to whichever subsystem is appropriate.
Something web-based would be ideal as developers aren't physically colocated.
We're currently using Bugzilla, which is nowhere near up to the task. I'm looking at Trac, but I'm not sure it's the right tool from the job. It seems like there are a lot of source control systems, a lot of revision history systems, and a few project management systems out there, but I haven't found anything that handles everything I need.
It may sound more complicated that it is, but it's pretty complicated when we're down in the trenches with it. There has to be a solution to this!
Any ideas?
Have you tried quickbase by intuit? It does a great job at consolidated version tracking and you can add functionality for separate revision history. Trac is good, but lacks the robustness of quickbase (IMHO).

Resources