I don't like the GPL anymore after the WordPress Theme fiasco. I don't like the idea that a theme, plugin, addon, extension, whatever is 'derived' from the thing it's adding on to and thus must also be GPL.
If I build a deck onto the back of my house is that deck derived from my house? No! if I take the blueprints of my house and build another one that's 80% like it is that house derived from my house? yes. If I offer a painting service to paint houses and I offer people preexisting color schemes are those schemes derived from their house? should the manufacturer/contractor (whatever) be able to tell me I can't do that, or that I have to share my colorschemes (and how I mix my paint) with him? How STUPID, IMO. But that's what the GPL does, you can't help other people addon to their house without sharing it with the house builder.
Now I'm all for sharing source code back, and I think if you modify OSS you should have to give your source back. But if you don't modify it and you are just using the the public API, why should you have to give all of your code up for that? or more importantly why shouldn't be you be able to choose your own OSI approved license? I mean what if I have a GPL library, a Artistic Library and a BSD library I want to use to build an application, which has an API, must be GPL and so must everyone's apps that add to it. No you may not make a DWTFYWWI plugin, no you may not make a BSD plugin, no you may not release that code into the public domain, because the GPL says so, and I used a library that made me use it.
Well ya know what? I'm not going to use the GPL from now on. I need to find a new license that fits my needs (and will not be toxic to others).
Desire #1. He who modifies my code, and distributes it, must share his code (with me).
Desire #2. He who wants to use my API may do so (so long as he doesn't modify it)
Desire #3. He who wants to copy my code must share it, and any changes.
Desire #4. Some patent protection would be nice
Desire #5. letting users outside your organization utilize it counts as distribution (a'la AGPL)
I think the LGPL fits this bill, except for #5.
seriously why is it that you could optimize the internals of wordpress and make your own hosted blogging platform and you wouldn't have to share the changes at all... but with a theme you do...
Are there any other licenses I should consider or considerations I should make?
(honestly you don't have to agree with me about not liking the GPL here, this is just me)
Showing posts with label Open Source. Show all posts
Showing posts with label Open Source. Show all posts
Aug 6, 2010
Jul 2, 2010
git workflows
Jun 13, 2010
Selling Open Source Software (specifically games)
This is a pseudo reply to Jason Calacanis for what he said about using an Open Source game engine to build a game in This Week in Startups #54, Ask Jason segment. For more shows ThisWeekIn.com.
I believe Jason is implying that you can't make money with open source software(that's not a support contract variant) directly, but it's a good resume builder. True there aren't any big billion dollar open source companies, and companies like Red Hat make money off support, but I don't believe he's correct. But there are 100 million dollar open source companies (Red Hat), and companies that make billions, and have a successful open source strategy, not all of which is support.
For starters I am not a lawyer, successful entrepreneur or venture capitalist, I am a student about to start ~ his last year of his CS bachelors. I will mostly be referring to the GPL family of open source licenses, as a generalization on open source, so if what I say doesn't match your specific OSI approved license that's why.
Seem's the GPL FAQ clarifies all various circumstances in the next few sections. I certainly wouldn't want to be a python programmer... I do believes this means you can't make any python code that uses a core python library proprietary.
One way around it may be how NVidia releases their drivers when the Kernel is GPL2. They create a small wrapper module in kernel and release a binary blob outside.
Another way is if your program is served by a server, technically under the GPL this is NOT considered derived as the program runs on YOUR server, thus you don't have to share the changes. A webapp based on GPL software can be as proprietary as you want it to so long as you aren't distributing it (Not sure about the legal case on software hosted by a hosting company). It also means if it's your companies hardware, you don't have to open source it (this has been pulled on 'rented routers').
There are 2 types of game(er)s... casual like Farmville, and Bejeweled... and hardcore games like Half-Life, StarCraft, Neverwinter Nights, to name a few. Casual gamers are usually not sophisticated computer users. "I should update my antivirus? what's a browser?", are not things I would be surprised to here them say. Hardcore gamers are however, and most can probably rattle of their system specs and know not only to update their AV but how to disable while gaming, many even know how to overclock their system.
Casual gamers won't be able to figure out how to assemble your source to even begin to consider pirating it. Many Hardcore gamers could, and might just to try to get more performance out of it. Most would still pay for it though, because your code doesn't include any DRM, which is becoming more annoying to them (and of course you made a great game worth buying right?).
Building software binaries isn't easy, I don't think that any license in open source requires that you include documentation on how to do so. Although you might be seen in a negative light for doing this and someone else will figure it out and publish it. This will require your users to download a toolchain of software and use it. This is not corporate IT, most of them haven't done this and it'd be too intimidating for all but the most determined (for novice software builders).
My conclusion is that I don't know really understand why a company that's big enough doesn't try it. EA and Activision both release enough crap to try it with one game. I honestly think you can make money on any quality Open Source software that you could make money on if it were proprietary. If you do it though, much like Red Hat, you may not be able to expect to be a leader financially, but that doesn't mean your revenue's will be anything to sniff at.
I believe Jason is implying that you can't make money with open source software(that's not a support contract variant) directly, but it's a good resume builder. True there aren't any big billion dollar open source companies, and companies like Red Hat make money off support, but I don't believe he's correct. But there are 100 million dollar open source companies (Red Hat), and companies that make billions, and have a successful open source strategy, not all of which is support.
For starters I am not a lawyer, successful entrepreneur or venture capitalist, I am a student about to start ~ his last year of his CS bachelors. I will mostly be referring to the GPL family of open source licenses, as a generalization on open source, so if what I say doesn't match your specific OSI approved license that's why.
Piracy
Probably the biggest concern you have with open sourcing your software is that people will be able to use it for free. Guess what? almost all software worth using is available for free if you know where to look. Those that aren't are usually web only or have there distribution channel well locked (e.g. like apple store not available on cd). All this DRM-ed software out there has people distributing it and making cracks and keys available for it. So even if you built everything and locked it all up with DRM people would still find a way to not pay for it.Licensing
Selling
Absolutely nothing in Open Source says that you can't sell your product or your source code. In fact the GPLs explicitly allow it. Not only can you sell the resulting binary and medium that it's distributed on, but you can sell the source too, you just have to make it available.Using
All versions of the GPL allow you to modify the code for the use of the entity (business or personal) so long as you do not redistribute that code (meaning you can modify gpl to your hearts content inside of a business and not have to give anything back).LGPL
The LGPL specifically allows you to call their API in a proprietary piece of software, and only if you modify the LGPL software itself do you have to share that code.GPL
Mandates that you share any code that is a derived work of the GPL work under a GPL Compatible License. In the specific case of wordpress themes, what derived means is contested. I particularly like this:The alleged derivative must “physically incorporate a portion of a copyrighted work… [or] supplant demand for a component of that work.” -- Lewis Galoob Toys, Inc. v. Nintendo of America, Inc
Seem's the GPL FAQ clarifies all various circumstances in the next few sections. I certainly wouldn't want to be a python programmer... I do believes this means you can't make any python code that uses a core python library proprietary.
One way around it may be how NVidia releases their drivers when the Kernel is GPL2. They create a small wrapper module in kernel and release a binary blob outside.
Another way is if your program is served by a server, technically under the GPL this is NOT considered derived as the program runs on YOUR server, thus you don't have to share the changes. A webapp based on GPL software can be as proprietary as you want it to so long as you aren't distributing it (Not sure about the legal case on software hosted by a hosting company). It also means if it's your companies hardware, you don't have to open source it (this has been pulled on 'rented routers').
AGPL
This is the strictest of licenses, and is meant to insure open code in the event of the final paragraph of the last section. You must share code if anyone outside of your entitity is using the software.Binaries
Nothing says you have to release the source of your games with your binaries. If your game hits the shelves of best buy and works.. most people will never bother to look see that the source is available, and that is completely legal.There are 2 types of game(er)s... casual like Farmville, and Bejeweled... and hardcore games like Half-Life, StarCraft, Neverwinter Nights, to name a few. Casual gamers are usually not sophisticated computer users. "I should update my antivirus? what's a browser?", are not things I would be surprised to here them say. Hardcore gamers are however, and most can probably rattle of their system specs and know not only to update their AV but how to disable while gaming, many even know how to overclock their system.
Casual gamers won't be able to figure out how to assemble your source to even begin to consider pirating it. Many Hardcore gamers could, and might just to try to get more performance out of it. Most would still pay for it though, because your code doesn't include any DRM, which is becoming more annoying to them (and of course you made a great game worth buying right?).
Building software binaries isn't easy, I don't think that any license in open source requires that you include documentation on how to do so. Although you might be seen in a negative light for doing this and someone else will figure it out and publish it. This will require your users to download a toolchain of software and use it. This is not corporate IT, most of them haven't done this and it'd be too intimidating for all but the most determined (for novice software builders).
Contributers
Almost all of the Really long lived games such as Half-Life, and StarCraft had the ability to be modded, sure the source code for the engine wasn't available, but you could make your own 'mini games'. That couldn't be played with out the original. If people had the source for your game engine too they could do even more than standard modding to make your game better. Heck, they might even port your game to a new operating system where you could make money on it from the game. As your company grows you could recruit these contributors to your company.Marketplace
Or should I say Mod Store, why not create a marketplace for gamers to sell or give away their modules. They can pay you a percentage of royalties.MMO
Did I mention that whatever is on your servers doesn't have to be Open Source? what good is World of Warcraft without the servers? and how much is it really hindered by a free competitors on their software like The Spirit Realm. Which just to clarify is a free version of World of Warcraft built on proprietary WoW run on their own servers. I don't see Blizzard bleeding money over it, or suing.Giving your competitor an advantage
This is the main reason that games don't open source their engines, they are afraid the competition will steal it. I don't really get that, you're a gamer, you play good games, and you play and buy more than one. Most of the time you only buy one copy so it's not like they'll make more money convincing you their product is the best. But you can charge to license your engine. What'd be wrong with that?My conclusion is that I don't know really understand why a company that's big enough doesn't try it. EA and Activision both release enough crap to try it with one game. I honestly think you can make money on any quality Open Source software that you could make money on if it were proprietary. If you do it though, much like Red Hat, you may not be able to expect to be a leader financially, but that doesn't mean your revenue's will be anything to sniff at.
Labels:
entrepreneurship,
ironman,
Open Source,
unpopular opinion
May 5, 2010
Don't Say "Patches Welcome"
Don't say "patches welcome" it does more harm to your community than good. Why? It's a polite way of saying "I don't care. Fuck you. Fix it yourself. End of discussion".
I was once told that I should be able to fix a bug in git (msysgit technically) because git is a developer tool. At that time I couldn't code at all but was using git to store homework or something...
Stop acting as though everyone can or should write you a patch. Most of you don't agree that you have a responsibility to the free software you create. No one else has a responsibility to contribute to the software. They aren't leeching if they don't give back, you gave it away. Don't ask them to, don't tell them to. They don't want to hear it anymore than you want to fix their problem. Definitely do NOT "volunteer them" to get something done, that's just plain rude.
Pretty much everyone you've ever told this too already knew that patches were welcome, so there's some other reason they weren't writing one.
Exception: If someone asks you if you mind if they work on your code. You can of course answer them "patches welcome" this is because they asked, as opposed to you volunteering that info.
1.) Not a Developer
The person you are saying this to is not developer. They don't know how to do it. PERIOD. At this point you are refusing to help them. This person may now have the opinion that your community isn't helpful. Don't ever for any reason assume someone is a developer, assume they are not. I would wager only 1 person in 10,000 is a developer.I was once told that I should be able to fix a bug in git (msysgit technically) because git is a developer tool. At that time I couldn't code at all but was using git to store homework or something...
2.) Novice Developer
Some how you know the person can code through some method other than assumption. They aren't as smart as you are, there code is so amateurish that it wouldn't be worthy of inclusion, even if they could figure out how to fix the problem. They can't get that far, they've no idea where to begin. You're probably just frustrating them instead of helping the problem. All people that you know are developers fall into this category (unless they fall into the next), either be willing to help this person patch your code or just give them the real reason (e.g. I've no interest in this problem) for not helping. These people know they could be helping, they may even want to be helping, but you telling them that they could be is not helping. They need guidance, not an invitation.3.) Doesn't Care
So the person doesn't fall into any of the 2 above categories. Guess what? they don't care about it enough. They don't need you to tell them "patches welcome", they know what open source is. They know they could send you a patch, and that you might accept it. They know all that, but there's some reason they don't want to. You aren't telling them anything they don't know. Again just tell them the truth of why you don't want to work on it. Maybe ask them why they don't. Maybe it's a silly little barrier that you can help with. But only bring that up if you know they are competent enough to do it.Just Stop
Just stop, after years of hearing this when I couldn't do it. All I hear is "fuck you I don't want to take the time to help you". Why would I want to help if that's what I hear? Don't tell me it's not what you mean. Because I've had that said directly.Stop acting as though everyone can or should write you a patch. Most of you don't agree that you have a responsibility to the free software you create. No one else has a responsibility to contribute to the software. They aren't leeching if they don't give back, you gave it away. Don't ask them to, don't tell them to. They don't want to hear it anymore than you want to fix their problem. Definitely do NOT "volunteer them" to get something done, that's just plain rude.
Pretty much everyone you've ever told this too already knew that patches were welcome, so there's some other reason they weren't writing one.
Exception: If someone asks you if you mind if they work on your code. You can of course answer them "patches welcome" this is because they asked, as opposed to you volunteering that info.
Mar 30, 2010
Unpaid volunteer work is a job
So the common misconception in the open source community is, "I don't get paid, I don't have to do it". Actually, it's not a misconception, you're absolutely right, you don't have to, you can stop, leave, go away. It's also well know that FOSS software is without warranty or guaranteed support. But by the vary nature of being a volunteer you are offering to do a job for free. No? have you tried working for a volunteer organization and telling your boss there "I don't have to do it because I'm not paid". I highly suspect this attitude will get you a 'then we don't need you'. I also suspect if you're say, working a food drive, and someone asks you something and you say "I'm not paid to explain it to you" what do you think that would look like? Basically when you volunteer to do something you're volunteering to do a job. If you are unwilling to perform all parts of that job should you be there?
With open source software you're volunteering to support the entire software life cycle. This means design, development, documentation, and maintenance. Most open source developers love doing the first two, but abhor the last. It's a job, some parts of it suck, if you can't be bothered to document your stuff or find someone who will, don't show up. You know what else? you're not perfect so people are going to have problems, it's your job to support them as part of your 'best effort' support. Best effort support doesn't mean bitching when someone asks you to improve something. If you reason for saying no is, "I'm a volunteer so I don't have to" come up with a better reason, there are better reasons.
If you tell people, hey I'm really swamped at the day job, they'll probably understand if this is something more than a 2 line of code fix. My wife is ill, just recently on ironman one of the dev's (sorry I'm not looking it up and I don't remember the name, condolences all the same) is taking a leave of absence due to his wife having cancer, we get that. I'm on vacation, no computer access right now. All this stuff is saying is, "now is not a good time for me", and that's ok. But saying using "I'm a volunteer" ever is not acceptable. This gives FOSS software the ugly taste that some people complain about.
Before anyone else calls me an "entitled piece of shit" (yes a FOSS developer said that to me today after calling me a "fucking asshole" for filing a bug that he didn't understand what I'd said ). I'm sorry? I just wrote a patch to help fix this problem elsewhere, is my asking you to fix your own a problem? I maintain 250+ packages in the Arch User Repository, including yours. I help people use your software, and I'm not the first one to complain. How does me telling you I'm having difficulty with your software and asking you to fix it make me entitled? do you take no pride in your work? seriously, if your responses are going to be no patch from you know fix, and fuck you because I didn't understand what you were saying... I'd rather you deleted your modules and went away.
I had a project that I didn't want to take the time for anymore, and no one was helping, but I was getting bug requests. So after asking for help, I put sign up that said, "project is dead because I couldn't do it by myself", or some such. I ceased work, and left the code up. This isn't wrong because at some point everyone moves on. You don't have to maintain your work, but you should at least let the world know that not maintaining it is your intent, and that you've quit. 150-200 of the modules I maintain on AUR were from someone who went from Arch to OS X and is no longer around, and although it took him longer than it should have, IMO. He did eventually say, "I'm not doing this anymore, relinquishing control", essentially, which was acceptable and I took over.
I couldn't always do what I could now, but wonderful communities like Gentoo, and Postgres have made me a better person, now to where I contribute where I can. I'd also like to note that Linus (and others?) have, and do, turn down patches and remove kernel code if the developers are unwilling to maintain, and support them, I endorse support concept.
You may disagree if you'd like, but this is my opinion. Just let me know if you feel this way before I do something for you so I don't waste my time. I don't want to do your job for you, and I did not volunteer to do your job.
I'm going to cover the horrible response that equates to "fix it yourself" in another post.
With open source software you're volunteering to support the entire software life cycle. This means design, development, documentation, and maintenance. Most open source developers love doing the first two, but abhor the last. It's a job, some parts of it suck, if you can't be bothered to document your stuff or find someone who will, don't show up. You know what else? you're not perfect so people are going to have problems, it's your job to support them as part of your 'best effort' support. Best effort support doesn't mean bitching when someone asks you to improve something. If you reason for saying no is, "I'm a volunteer so I don't have to" come up with a better reason, there are better reasons.
If you tell people, hey I'm really swamped at the day job, they'll probably understand if this is something more than a 2 line of code fix. My wife is ill, just recently on ironman one of the dev's (sorry I'm not looking it up and I don't remember the name, condolences all the same) is taking a leave of absence due to his wife having cancer, we get that. I'm on vacation, no computer access right now. All this stuff is saying is, "now is not a good time for me", and that's ok. But saying using "I'm a volunteer" ever is not acceptable. This gives FOSS software the ugly taste that some people complain about.
Before anyone else calls me an "entitled piece of shit" (yes a FOSS developer said that to me today after calling me a "fucking asshole" for filing a bug that he didn't understand what I'd said ). I'm sorry? I just wrote a patch to help fix this problem elsewhere, is my asking you to fix your own a problem? I maintain 250+ packages in the Arch User Repository, including yours. I help people use your software, and I'm not the first one to complain. How does me telling you I'm having difficulty with your software and asking you to fix it make me entitled? do you take no pride in your work? seriously, if your responses are going to be no patch from you know fix, and fuck you because I didn't understand what you were saying... I'd rather you deleted your modules and went away.
I had a project that I didn't want to take the time for anymore, and no one was helping, but I was getting bug requests. So after asking for help, I put sign up that said, "project is dead because I couldn't do it by myself", or some such. I ceased work, and left the code up. This isn't wrong because at some point everyone moves on. You don't have to maintain your work, but you should at least let the world know that not maintaining it is your intent, and that you've quit. 150-200 of the modules I maintain on AUR were from someone who went from Arch to OS X and is no longer around, and although it took him longer than it should have, IMO. He did eventually say, "I'm not doing this anymore, relinquishing control", essentially, which was acceptable and I took over.
I couldn't always do what I could now, but wonderful communities like Gentoo, and Postgres have made me a better person, now to where I contribute where I can. I'd also like to note that Linus (and others?) have, and do, turn down patches and remove kernel code if the developers are unwilling to maintain, and support them, I endorse support concept.
You may disagree if you'd like, but this is my opinion. Just let me know if you feel this way before I do something for you so I don't waste my time. I don't want to do your job for you, and I did not volunteer to do your job.
I'm going to cover the horrible response that equates to "fix it yourself" in another post.
Apr 18, 2008
Open Source it or not?
When building a new web service should you open source it or not? if you do open source it, it may make it harder to have a revenue.
I am of course building my product on a LAMP stack, and I'm a huge open source proponent. But if the majority of the revenue model is based around people using my site, wouldn't it hurt me to allow others to basically rebuild my site on there own?
I am thinking that a dual license (like Trolltech's qt licensing) may be best in this case, preventing people to use the code commercially without paying for a license. But even then I wonder... part of the idea is that the product will help generate a community that will then be interested in buying 'dead tree (books)' products.
I'm going to stop 'beating around the bush' on what the proposed product is now (even though this hypothetical question applies to other products as well).
I'm building a 3 part product, first is a character database for PnP(like World of Darkness, and Dungeons and Dragons) RPG games, people will be able to use it to store/share there characters and NPC's. Second, will be a chat system allowing Storytellers/Game/Dungeon Masters to play online. Third is an O'Reilly Safari Clone that will allow people to read the books (and get definitions in game) online.
I see my possible revenue's as Advertising, Library Subscription, Reselling, Support.
What do people think? How should I license the product(s) (I may build it as 3 ultimately)?
(Note: I am looking for partners)
I am of course building my
I am thinking that a dual license (like Trolltech's qt licensing) may be best in this case, preventing people to use the code commercially without paying for a license. But even then I wonder... part of the idea is that the product will help generate a community that will then be interested in buying 'dead tree (books)' products.
I'm going to stop 'beating around the bush' on what the proposed product is now (even though this hypothetical question applies to other products as well).
I'm building a 3 part product, first is a character database for PnP(like World of Darkness, and Dungeons and Dragons) RPG games, people will be able to use it to store/share there characters and NPC's. Second, will be a chat system allowing Storytellers/Game/Dungeon Masters to play online. Third is an O'Reilly Safari Clone that will allow people to read the books (and get definitions in game) online.
I see my possible revenue's as Advertising, Library Subscription, Reselling, Support.
What do people think? How should I license the product(s) (I may build it as 3 ultimately)?
(Note: I am looking for partners)
Apr 11, 2008
msysgit shouldn't be used
Unfortunately the developers of this project are the kind that I don't want to deal with. Their documentation is below average, and the average documentation is already sad. Instead of plugging in to msys, they require you to use their fork of msys. I call it a fork because it isn't a 1:1 copy, they add and removing things as they see fit. Their primary installer doesn't include msys.bat (apparently other installers do) this makes launching the msys bash environment easy. They don't explain why you should pick one installer over another. I asked how I should add the git programs to an existing msys install and never got an answer. I complained that git didn't work with the msys vim-7.1 port, ultimately the response I got was git is a developer tool and as a developer I should be able to help myself, and I was ruining there fun coding (I'm sorry even if I am a developer what makes your think I have time to fix YOUR project and MINE.
I'm sorry that they don't want to support their product, make it better, or work with the parent projects (msys)
On their site it says that eventually they are planned to become an officially supported git method. I hope this isn't true, as user support will be horrible.
This unfortunately means I can't use msys as part of the reason I was going to use it was for git. I will have to switch to cygwin instead.
I'm sorry that they don't want to support their product, make it better, or work with the parent projects (msys)
On their site it says that eventually they are planned to become an officially supported git method. I hope this isn't true, as user support will be horrible.
This unfortunately means I can't use msys as part of the reason I was going to use it was for git. I will have to switch to cygwin instead.
Mar 26, 2008
Mar 25, 2008
New version of SELinux released
also see the selinux home/news page http://www.nsa.gov/selinux/news.cfm
Labels:
Linux,
Open Source,
security,
selinux
Mar 24, 2008
Unix Toolbox
Found this Unix Toolbox on Digg today. Most complete list of commands for Linux/BSD/UNIX that I've ever seen. I could only think of one missing off the top of my head. ionice.
Subscribe to:
Posts (Atom)