Log in

No account? Create an account
Previous Entry Share Next Entry
Open Source
From Neil:

WMI is evil: The snap to border behavior of evilwm and its fast window moving through mouse grabbing can be emulated with floating clients too (just try Alt + mouse move over floating clients).
WMI Overview

(I wrote the snap to border behavior in EvilWM) [Delocalized Ham - Neil's Website]

I remember watching Neil as he hacked apart the window manager we both used to write the window snapping code. Something I'm still relatively impressed by is that someone I was living with could write such cool code. It was a really tiny little addition to the code, but just to watch him crank out something so clean was very impressive.

I love open source, and moving to OS X has come to remind me that not all code is open and free like it tends to be on Linux. From the FTP client I use to the very newsreader I'm using to both read and post this, the code just isn't available to make changes you might want to to a program. I'm starting to wonder if it would be possible to create a license that would allow distribution of source code - with a license of the program - without allowing the re-distribution of either source code or binaries based on that source code. It's not the same as the GNU GPL, as far as I know, since GPL requires the allowance of free redistribution.

Is there a commonly used software license like this? Perhaps designed for shareware: You can use this program for 30 days. After that, you should pay us - if you do pay us, you get the code. Does this even make sense? I know that I want to negotiate something along those lines, not for redistribution purposes, but to build upon the work of others, for a program for my cell phone. MiniGPS is a wonderful program, but it's very much limited in what it can do. I would like to take the program as it stands and expand upon it. However, so far as I can tell, they do not offer any way to get their source.

I know that I'd be a lot more willing to partake of a purchase if I could get the source code with it, even if it wasn't for redistribution. I understand the problems involved in this type of distribution: what's to stop me from removing all the shareware nags and just distributing that copy? On the other hand, what's to stop people from redistributing license keys as they often do?

I don't know about everyone - I know that I'm odd in wanting the source code, as most people couldn't care less. However, I would find myself a lot more willing to support programmers if I knew that I could change their program to do what I wanted rather than having to wait for them to do it. I know where feature requests go: right into the circular `rm` file. Being able to hack the code apart and work on it myself would mean I'd never have to worry about that kind of problem -- I could fix it myself if I felt properly motivated.

I suppose that most people think I'm being unreasonable, but I like the thought of having control over my programs, what they're doing, and if need be, having the ability to change the way they behave to suit my needs.

  • 1
You've described a source license, that's all. You can get them from pretty much anyone if you can afford it, including Sun and Microsoft, and they usually come with an NDA.

For small-beans software it's probably not worth the author's effort given that he's decided to not give the source away, though.

Does breaking a software license have the same legal reprecussions as breaking an NDA? They're both contractual agreements, so far as I understand it, although I've never seen or signed an NDA. Does an NDA provide more ability for prosecution in case of breaking of it?

I don't particularly enjoy paying for software I can't modify. I think it's my hippie-programmer streak coming through, but it still bothers me to pay for a program I can't make work how I want it to.

Perhaps I'm just whining, but it seems like a reasonable request to me to get access to the source for an application I'm purchasing. I don't see how it provides a whole lot more risk than it does to pass out license keys. (Does it somehow?)

Both are just classes of contracts, really. An NDA will be more likely to have penalty clauses, I suppose, but it's all about the terms in the specific NDA at hand, which might not be general.

As for risk, some restaurant's chefs will provide recipes when asked, and others won't.

Restaurants'! Others'! Gah.

You've never seen an NDA? Lucky. I've signed a couple. My current company won't even let me say who our customers are.

It's basically a contract, the same as the IP agreement you have to sign when you start working for a company. (You did sign an IP agreement, right?) Yes, you can be sued for breaking an NDA. You can be sued for breaking a software license too, but unless you're a big corporation you probably won't be. It doesn't make economic sense to go after the college student pirating Office, because they have no money anyway. It potentially makes sense to go after an NDA violator because the harm they can do the company is significantly worse.

Source licenses are common. Probably a majority of programs written in scripting languages use them, because it's not feasible to distribute them as binaries. FictionAlley has one for vBulletin - we've made extensive modifications but can't distribute them except through authorized channels (the company hosts a system where various hacks are distributed). Corman Common Lisp comes with one - you can view the complete source for the compiler, and can modify it if you wish, but can't redistribute it. I seem to recall JBuilder coming with source - at least, you could browse & debug into the core Java libraries. A lot of software that businesses buy comes with source code. It can be customized, but can't be resold.

Probably the reason it hasn't caught on for shrink wrap software is that a) it's written in C/C++ and b) most customers have no interest in modifying it. C/C++ provides an easy way to make binaries; in fact, the standalone binary is the primary delivery mechanism and what most people are accustomed to. And the number of additional customers that say, Microsoft would get by opening its source is negligible, and nowhere near the risk it's taking.

B2B software usually comes with source because the economic forces are quite different. You're selling to programmers, who have the need, desire, and ability to modify the source. You have fewer customers, which makes enforcement of NDAs easier. And your customers are willing and able to pay much more money to be able to customize the product to their needs.

Economics is everything for software. Chances are, if nifty feature X is missing from your software, it's because a) not enough other people want X or b) vendors haven't realized it yet and you can make a lot of money by providing nifty feature X.

  • 1