New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to make this project open source? #2

Open
jtsay362 opened this Issue Jan 7, 2016 · 3 comments

Comments

Projects
None yet
2 participants
@jtsay362
Owner

jtsay362 commented Jan 7, 2016

I think that making Solve for All open source would encourage contributions that would take the answer engine to the next level. Also it would be great to have an open source search engine that has been audited to ensure it is secure, and respecting the privacy of its users.

However, I don't want my hard work to be used to enrich bad people or companies that don't contribute back. What I am afraid of is some mega-corp forking the project, taking it closed source, putting a horde of engineers/designers to work on improving it, then making profits without compensating me or other contributors. After reading Bradley Kuhn's thoughts on proprietary re-licensing, I'm leaning towards releasing the project under the AGPL license, but retaining copyright so I can sell exceptions to entities that want to use it in proprietary software. So that I can re-license contributions from the community, I would need contributors to assign copyright to my company (sounds greedy, I know). However, in accordance with RMS's recommendations for assigning copyright I am happy to accept this condition:

Any program based on (as defined in Affero GNU General Public License version 3) Contributor's
code that Machine Intelligence Service, Inc. (MIS) distributes shall be made available by MIS under
the Affero GNU General Public License (AGPL), version 3. Provided MIS makes the program
available as source code gratis to the public in this way, it may also distribute, or deploy on a server
accessible to users other than MIS, the same version of Contributor's code in other programs
released under other licenses of its own choosing.

That way contributors get assurance that their code will always be available under the AGPL license, if is included in proprietary products.
Problems I see with the APGL / proprietary re-licensing scheme:

  • Bad actors would be able to copy the code and do whatever they want if they do not follow the rules (rogue nations, companies in untouchable jurisdictions with protectionist governments, anonymous bad guys, etc.) This puts entities that follow the rules at a disadvantage. Maybe this is non-issue as these bad actors can already hack GitHub to get my code.
  • I don't have the resources to enforce the AGPL even if infringement is by an entity in a law-abiding country. Maybe the FSF/EFF could help here?

Why I don't go for an Apache/MIT/BSD license:

  • I would like some return on investment of my time making the product, but with Apache license, anyone can just copy and forget about me. This might also fragment the community of plugin developers I'm trying to build, if they launch an alternative site.
  • Many of the ways of making money from open source software involve a conflict of interest. For example:
    ** Consulting revenue may come if you haven't made your product good/flexible/understandable enough, so you might be tempted to hold back features or skip documentation
    ** Writing books and giving speeches also encourages weak documentation, and also don't sound like fun to me
    ** Proprietary add-ons/extensions encourage you to water down your open source product
  • Another alternative is to make my company a non-profit entity, but I hate the idea of begging for donations

I realize this discussion may be premature, as I haven't even publicly launched the product and don't know if people actually want to use it. Even if there is demand for the product, I don't know if anyone wants to run a proprietary licensed version of it, but it could be useful in company intranets, for example. But if the project becomes open source, I believe that will help drive adoption.

I'm also open to profit sharing schemes in which contributors get compensated for their contributions, if/when Solve for All become profitable. This might offend contributors that contribute out of principle, and it will be hard to manage all the envy/resentment that results when people start making money.

I'd be grateful for your thoughts/advice/feedback on how to make this project open source!

@sahal2080

This comment has been minimized.

sahal2080 commented Oct 2, 2016

First of all, thanks for a needed project as I certainly belong to the group of search power-users, in addition to valuing privacy as you might've deduced from other issues I raised. It's understandably rough around the edges and I'm still wrapping my head around it. Honestly though, I wouldn't spend time on it if I didn't read:

While I am open to outside investment, I am committed to retaining majority control over Solve for All and keeping it running, without selling you out.

After being sold out by the so-called startups like kifi, this sure is refreshing to read. Knowing also that I'm not the only principled/crazy entrepreneur in CA is nice to know 😉

Your intent to open source this is laudable. No silver bullet here but a couple of thoughts which I preface all with 'IMHO':

  • I don't know how your code is structured, but it shouldn't be an either-or:
    • Many companies, good or bad, selectively open source their code. The good ones do it to benefit the community (which includes them), while the others just hope to squeeze more than the minimum that they contributed
    • Even with the best of intentions, I'm of the school of teach a man to fish as a better alternative than mindlessly handing the keys to the kingdom
  • Live open-source web search engines, aside from being a mouthful, are a peculiar software breed in that.. they're almost non-existent!(Wikia Search should be a good case study. YaCy is why I said 'almost'). Among the reasons for this I believe is majority of people would happily take better search results for lesser privacy with large, reputable corporations
  • Regardless, open sourcing anything becomes either a responsibility or yet another haystack in a public repo; giant projects were open sourced with small to no benefit while small ones which were catered to (organization, documentation, support, community building...) had far more effect.
@jtsay362

This comment has been minimized.

Owner

jtsay362 commented Oct 3, 2016

Great points. I'll think about how to open source only parts of the code, that is indeed a possibility. However, I didn't quite understand your "teach a man too fish" option. Does that mean I should offer consulting instead of open sourcing everything?

@sahal2080

This comment has been minimized.

sahal2080 commented Oct 12, 2016

Sorry for a late response but had to clear up my mind first.

Does that mean I should offer consulting instead of open sourcing everything?

If you meant consulting pro bono with whomever you deem worthy then that's certainly a way to personally do it. What I meant, however and based on your initial comment, is more a matter of building an organization that is able to pioneer and be a benevolent guardian of complex, multi-purpose or platform-like, open source projects. These projects are rather difficult to propel properly by open-source enthusiasts on their own. In the long run, this attitude becomes the ethos of the organization, and may even start to replicate around it.

Google, to illustrate, is pretty good at the pioneering part. Nevertheless, they're notorious for holding deep control of their projects with various techniques. That type of guardianship is certainly not what I redeem as benevolent as it far favors them over the project and community's interests.

How does any of this teach a man to fish? Well, I'm sure you know people, or at least of people, who only got into programming through Ruby on Rails!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment