dxinteractive / xenpaper

Repo for xenpaper.com

Home Page:https://xenpaper.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Open the code?

wolftune opened this issue · comments

Is there a good reason not to put the code up publicly and under an appropriate license like AGPL?

I'd love to, but it's using some stuff that I'd like to keep closed source. Xenpaper is half of an offshoot from an app that I eventually want to release and I don't want any of that to be open source. But as progress on this other app continues it'll become clearer as to what parts I can open up from this. I hope that's ok.

Thanks for your consideration and thoughtful reply.

There's a strong case behind the software-freedom movement overall which argues for the ethical issues around who controls the technology people use. As an analogy, I suspect you would not think it okay for a guitar company to disallow me to hack on a guitar and change the fretting system. There's also a strong case for the collaborative benefits of open-source development. Those two concerns are somewhat distinct.

Anyway, I also very much understand the concerns about wanting practical ways to get support for your work. Keeping things secret and proprietary can indeed be an effective method despite the other issues with it.

Are you aware of the license options? The one I suggested, the AGPL, is a license that does not allow anyone to use the code in proprietary projects. It is a license that mandates that the freedoms be passed on if anyone distributes the software in any way. That approach (called "copyleft") might work for you, depending on your goals. It addresses the concern that some others might exploit your work by using it in separate proprietary products.

One important note: making an app open source does not mean you can't sell it through app stores, and there are ways to otherwise get funding also.

If/when you're open to discussing the issues further, I'm happy to offer advice or answer any questions. I have some expertise on the issues and challenges with free/libre/open software.

In harmony, Aaron

That's fair. Yeah I've released the majority of my stuff as open source in the past - this the first in a long time that I haven't. My issue isn't so much the license types, it's that the same repo contains other things that I don't want to make public whatsoever, it's not just xenpaper on its own in there. I would need to put the work in to extract the parts that I want to make public, but have not put that time into it yet. I would like to do that someday.

Perhaps thats the actionable work that can come from this ticket. But thank you for the offer of discussing this kind of thing further! As I make a little more progress I might just take you up on that offer.

If you're open to clarifying why you want the other code not public at all, I'm curious, but I hear you. I'm not going to pressure you about it or anything. Thanks for your open mind in hearing my suggestions.

Ah sure, yeah it's because it's not just code in there. It's a monorepo that contains many sites, including password protected sites whose content I have to keep private, it contains discussions about project planning other unrelated projects that I'd prefer not be public, even a few art and sound assets whose licenses forbid me providing open access to the world. It may not be wise to keep so much in the same place, but it does make development so much faster, and xenpaper was a bit of a surprise project so I thought I'd build it first and split it out after.

Wow, okay, that is not the explanation I expected! Makes total sense! I thought it might be the all-too-common "I'm embarrassed about my imperfect code and want to make it amazing first" or "I think my little weekend project will eventually make my a billionaire if I keep it secret". Nope HAHA

@wolftune no worries! Yeah I've got lots of embarrassing code in archived public repos on this github account :) But yes, AGPL does seem like a good idea for future.

The only thing I'm unsure about is how to actually enforce licenses like that. At least with MIT I don't have to worry about it. I used to develop Flash games and even though those were closed source I found it impossible to keep sites from illegally hosting them, cloning them outright, or decompiling them and rebranding them - there's even a Ben 10 rebranded version of one of my games out there somewhere! Even going through correct avenues like Google Play or the apple store was impossible in most cases to convince them that the person who uploaded the game wasn't me, they'd just taken my code and change some parts, and that I was the IP owner of the original. I do somewhat fear that kind of thing happening again, but perhaps there are better ways of keeping that under control compared to 14 years ago? I don't have that concern with xenpaper of course :)

Obviously, malicious actors won't respect the terms of any license. Like with scam phone calls, you might decide to spend your time actively toying with the scammers and trying to screw them up or get their info or waste their time, but that takes your own time and energy. More sensible to just try to block them and accept that the problem is bigger than you.

What we don't want is a situation where nobody ever accepts an email or phone call from an unknown number just because scammers are out there. That's tragic. Similarly, it would be tragic to decide overall that because scammers will exploit some software, we should shut off all the pro-social collaboration and open sharing that is otherwise possible. It would be great for others to contribute to xenpaper and adapt it constructively etc.

To your exact question: the strongest way to enforce AGPL (and other licenses like it) involves actually doing all the diligence of registering the copyright, putting the license mention in every file, perhaps assigning the copyright to an entity that handles enforcement, and being willing to sue violators. But in practice, that's not how it almost ever works.

In practice, most entities (including corporations as well as individuals) respect license terms because they don't want the risk and hassle of any conflict or even because they just honor the concept. Today's software companies have people trained in handling license issues and avoiding the use of software they do not agree to the terms of.

There are social reinforcements too. If someone ran a copy of xenpaper on another site and didn't publish the corresponding source code under AGPL, the community could send them messages urging them to come into compliance, and most people would then do so.

The store examples are interesting. Apple has such restrictive terms that they don't allow any (A)GPL software to be published through the App Store. For example, a whole community of people have made Audacity, and that's GPL. I would wish that Audacity could be used by people on mobile devices, but even if the work was done to make it function there, Apple would not allow it in the App Store. The GPL says that users must be given the freedoms under GPL to share, use as they wish, and modify the software. The App Store terms says that users may never share or modify any software, so Apple doesn't allow users to even run software that would give them those freedoms!

As a simple analogy, I license my own music under CC-BY-SA, and of course it is trivial for someone to ignore it and put the music into some video without those terms or to even plagiarize and claim that they made the music. But I've never seen that happen. However, because I used that license, someone in Brazil went and took a recording of mine and used it in a wonderful short little free online documentary about permaculture there, and they followed the license and bothered contacting me to tell me about the use, and this isn't something where they would have paid me otherwise, this is where my music just wouldn't have been used if it had been All Rights Reserved.

@wolftune thanks heaps for the reply and your perspective, I thought I might as well ask because you seem to know this stuff! Yeah it definitely isn't the licenses fault that people do bad things. I didn't realise that about GPL and the Apple App Store, thats disappointing. And fully agree about creative commons for music, thats really nice.

I've made some progress with splitting things out of that monorepo so shouldn't be too long before some parts of xenpaper can be opened up too. I'll do a couple of small refactors first that will allow for some of the shared parts to be more easily libraryized.

To be clear, the copyright holder isn't limited to following a license themselves, so people can release an App in the App Store while releasing the code under GPL otherwise. It would just then effectively block anyone else from publishing a derivative to the App Store, and it would be an issue of the original author accepted contributions under GPL so that there were multiple copyright holders who only license their contributions GPL to others. So, this is a pragmatic argument for more "permissive" licenses like MIT for certain cases.

On another note, AGPL is effectively banned within Google as a company. They have an anti-AGPL policy. It amounts to Google exploiting Open Source work for their internal use, and they might "publish" derivatives as web services. That is exactly what the AGPL addresses. It says that if you publish a web service that counts as distribution, so the pass-on-the-freedoms requirement of including the source and license applies. Google doesn't want that, they want to keep their proprietary control over their services even as they use all these community-built resources. AGPL is therefore usable by others in the community who are fine with passing on the freedoms and not by any entity that wants to use it but make their version proprietary. But as for Apps, there are more normally supported ways to get apps outside of Google Play, such as https://f-droid.org/ so it's easier to pass on the freedoms within Android than within Apple's iOS.

Hey @wolftune , the code is now open source, MIT license, in this repo if you wanna look! No dev instructions yet though.

Awesome, thanks so much!