TeachMate.org goes opensource

Today I published TeachMate.org source code on github. You can download it, modify and contribute. I will review your code and, if it’s okay, there’s a high probability I’ll merge it with my repo and deploy to the server. There are few reasons why I decided to do so:

   1. I’ve got really nothing to hide in TeachMate (found a bug? don’t be evil - don’t hack it, mail it to me or fix it).    2. Community working on a project is more powerful than an individual.    3. I like opensource and I think more web-projects should do this (like Reddit did).    4. I’m looking for a partner to work on this and other projects. And because choosing a partner isn’t easy, I think this should help.    5. I’m not a ruby-ninja, but some of you probably are. So, if you ever find TeachMate idea cool enough to contribute code, I’d love to review it and, maybe, learn something from it.

Just to make it clear: currently, I don’t make any money on TeachMate (I actually only waste them), I started it as an educational project to teach myself Rails, so please don’t be too tough on me for the code. Getting project popular wasn’t the major issue, but I’d appreciate if you write a few words about it in your blog.

http://teachmate.org http://github.com/snitko/teachmate/tree/master

I think you should find another term than OpenSource since the website itself is OpenSource...

Its like an OpenWebsite

Jean-Marc http://m2i3.com/blog/jean-marc

As someone who is also working on an open source website, I'd love to hear your reasoning for suggesting a different term. Why does it matter if it's a website or code which runs locally?

Well the major distinction between a website and a local application is precisely that... where it runs.

Lets take OpenOffice...

You download a copy and run it on your machine. You can choose to alter your copy and be the sole user of those changes You can publish your changes and once approved/merged into the trunk version, other people can benefit from it. ** The benefit of the improvements made takes a longer time (if ever) to reach the potential users.

Lets take Joomla...

You download a copy and run it on your webserver You can choose to alter your copy You can publish your changes but there again people will need to update their own copy. ** The benefit of the improvements made still takes a longer time (if ever) to reach the potential users.

Lets take teachmate.org and reddit.com...

You don't download anything unless you want to change it (or branch and start your own) Whoever have their published changes approved updates the final website directly. ** The benefit of the improvements reaches all the users upon approval.

Lets imagine Google was doing it where you could download the source code of their website and suggest improvements to any aspect of it where the whole user base of Google would benefit from the changes.

The distinction is probably too thin to justify a new term... "Open Source Website" already says enough. But new terms also carry with them loads of meaning and in the case of Reddit and Teachmate the meaning is: "the website, it's behavior and all aspects of it belongs to the community an is actively maintained by the community".

Jean-Marc http://m2i3.com

I think the key takeaway is that the term "open source" has nothing to do with where the code actually runs (see disclaimer below). It has to do with who has access to the code and what they can do with the code. By opening up the source code according to most OSS licenses, it's perfectly valid to take the code, rebrand the site and start a competitor site- just like there have been forks of traditional software (Emacs vs. XEmacs for example).

* Disclaimer: Depending on the license used I may not even have to redistribute the changes I make to my competitor site (BSD, Artistic and GPLv2 for example). Of course some licenses have special clauses for "web delivered applications". So yes, where it runs is a factor in the "redistribution" clause, but most OSS licenses don't force you to share code changes for web applications.


Your last comment would seem to weight in the need to have a new term to describe what snitko wants to do.

I won't guess what snitko wants to do (his list of reasons may or may not be comprehensive), but I will say that snitko should choose a license which is appropriate for his goals. For better or worse his stated goals aren't really legally enforceable.

I see Teachmate.org is GPLv3 and know at one point in time RMS was complaining about websites using GPL'd code but since they weren't redistributing binaries they didn't have to share their improvements- I don't recall if/what changes were made in the GPLv3 to address this.

I won't guess what snitko wants to do (his list of reasons may or may not be comprehensive), but I will say that snitko should choose a license which is appropriate for his goals. For better or worse his stated goals aren't really legally enforceable.

Before publishing I talked to some guys and they said publish it under GPL. I looked through the license and it seemed good enough for it. Personally, I give a damn about licenses and stuff, they really make me bored. I don't think there's someone now willing to steal the code to make a competitor web-service, but I certainly would not like that to happen. So if you have any suggestions about the license to use, I'd be grateful.

I guess that's the fear with making any project opensource - competitors. But also bear in mind that that's one of the things that makes opensource so powerful, it's how we grow as a massive global community, living and learning from our mistakes and building off others' mistakes as well.

Think of it as giving back to a community that has given you so much :slight_smile:

Have linked to this article and your project snitko, at http://www.kirkbushell.com/ :slight_smile:

I don't know if I could recommend a license... I'm not a lawyer and all that. I will say that I don't believe there exists an OSS license which would prevent someone from starting a competitive site using your code. The only all the open source licenses I'm aware of would control is under what circumstances would they have to release their code changes back to you & the world.

I can say this from personal experience:

Making code open source (regardless of the license) doesn't magically cause people to contribute to your project. That takes a community of individuals who want to solve a shared problem.

IMHO, if you're looking for people to help you with the project, then your best bet is probably to seek out qualified developers (or people interested in learning) within your existing user base who already find it useful and would like to give back.

There are only two reasons I can think of that someone would download your code and do anything with it: 1) They want to help you out 2) They want to start their own site using your code

You could easily have people email you to get access to the code for #1 and filter out people interested in #2 all without releasing the code under the GPL, etc.

I will say this though. Either GPL your code or have people assign their copyright to you. I was involved in a web project where the main developer kept the copyright and didn't assign a license which allowed it to be redistributed other then the server. Then when the developer decided she didn't want to work on the site anymore she wouldn't allow us to give it to other developers- which basically meant we had to start over from scratch.

Good luck, Aaron