Open Source Project

Okay, so I've been thinking about beginning a project that may be a bit too large for one or two developers to engage with, so I was thinking about creating an open source project. So I have a few questions about making an open source project that I've listed below.

  1. How would you guys go about making an open source project?
  2. How would you guys get other people to be interested in the open source project?
  3. How would you go about making a bit of money from the project? - PLEASE note, I'm not looking to make a quick buck or two, I'm just thinking that it WOULD be nice if I could make a little bit of money from the project, and hopefully, everyone who engages into developing the project could also make a bit of money. Just so that we could all have something to show for it, I know that this one may be a bit difficult to answer, considering that some people may contribute more than others, etc.
  4. How can I find out if other people are already working on a project similar to my project idea? - I wouldn't be amazed if someone has actually gone and made something similar to this.
  5. Finally, possibly the most important question of all, what are the legal implications that could occur? AND what legal facts should I be aware of before considering in making something open source?

well for 1. github is a great place to put it ive used it in the past for a website that my mate at college was helping me get working and it works pretty well. As for 2. I would post your project here and see if anyone would like to give a hand since there are quite a few devs on these forums. As for 3. I would get a site and put a description of what it is and what it does and put a bit to support you I'm not sure how to get it to different people who help.

1 Like

There are a number of decisions to make when starting an open-source project:

The License

There are a number of OSI approved licenses. You'll want to pick an applicable license for your project. For example the GPL means any software using yours also has to be GPL and you can't use it with proprietary software (see the Bukkit fiasco for an example). GitHub's choosealicense.com is a good brief overview of a few popular licenses.

Source Control Management

This decision will also go hand-in-hand with your decision of how to distribute the code. Again you are spoilt for choice here with: Git, Mercurial and Subversion, for example. GitLab recently did a survey where they found 92% of developers prefered Git.

Distributing the code

Once more you are really spoilt for choice (unless you opt for Mercurial :p), but if you want people to find your project you'll want to be using GitHub. However there is also GitLab and Bitbucket.

Conclusion

To conclude, I would recommend a not-so restrictive license (such as the MIT License or the BSD 3-Clause License), Git and GitHub.

MIT vs BSD 3-Clause

Since I mentioned the two I figured I should briefly explain the differences between them.
In short the MIT License expressly states that you can sublicense the software and the BSD License prevents the name of original copyright holder or contributors be uses to endorse or promote forks.

1 Like

What are you planning on working on? I would be interested, as long as there is no java involved...

1 Like

God no, I was planning on using something faster than Java, I mean the closest I'd go to Java would be C#. If you look at my profile on here, you may see a bunch of stuff about Java, but that's only due to the fact that I'm being made to learn and use Java in university, not my first choice of languages tbh, I'd much rather learn C++, as it has lower level access.

I've been learning C#, PHP and some other funky languages in my own time, although I don't have a great deal of spare time. But what language would you recommend for this project? FYI I'll state my idea below.

I thought it would be really fun to delve into something like voice recognition software, where you can basically talk to the computer, and the computer in turn will do certain things. However, I was thinking about making it a little bit more advanced than just, "Hey computer, Google 'The News'", as I've already done an implementation similar enough to do that. I've done an implementation where you can essentially use the computer hands free, and I found it amazingly simple to actually make. A lot easier than what I had initially thought, however, I want to take this a step further, I want this program to be able to communicate with anything that can connect to the LAN or the computer that's running this piece of software.

I.E. I was thinking you could even have some sort of detection mechanism where the computer will even pick up when you enter the house, and then it could greet you. I was thinking you could ask the computer to turn the TV on or a CD player or one of those robotic hoovers and it would do so. I was thinking as a further implementation, you could phone the computer and ask it to do this, that or the other. I was thinking that maybe you could even implement a way where the user can add their own commands to the system.

This is why I was thinking about making it open source, I'm not exactly confident enough to say I could do all of that pretty easily and quickly. I also now this sounds like that computer thing off of Iron Man ("Jarvis", or something like that), the major difference is that the user wouldn't so much be able to chat to the system, like Iron Man can, I mean that would be a bit more advanced again. Who knows, that could even be an idea for further implementation.

But at the moment, I'd like to make an application similar enough to Siri, but it allows you to interact with an entire house or building, or office. I THINK it's also worth noting that I made this application in C#, where the functionality is pretty much already built for you, you just have to learn how to use it really.

I mean obviously you'd also need certain devices for this to work, I'd be beyond amazed if you managed to get the likes of a CD player to turn on, from the computer's command, just via a 3.5mm jack or something like that. I mean obviously you have to be realistic enough about this idea, it's not going to be some sort of almost wizardry like system where it can interact with anything that uses electricity.

1 Like

I'd just like to say a big thank you for very neatly summarising the likes of the different licensing options I'd have available to me, if I do proceed with this project being open source.

I would've thought the hardest part would either be phoning the system, or getting the system to interact with pretty much any other device that's connected to the LAN.

https://savannah.gnu.org/maintenance/HowToBecomeASavannahHacker/
https://www.gnu.org/server/takeaction.html#unmaint
if you want to work on opensource projects as in Free software

But if you are up to the challenge every open source project on the web can use some help.
Just reading the open source package and find a plain text document (readme).

Also open source project like siri = http://lucida.ai/

There are a lot of open source projects out there.

1 Like

Okay, so I'm just messing around with this project at the moment, and I seem to have a minor issue, I've hit the problem where I'm not sure how to write data to a text file, via Notepad++. Any ideas? I know how to open and run notepad++, but I don't know how to get the input to go directly to Notepad++, if that makes sense.

I doubt it's majorly complex to do this? I mean I've got the input to output correctly, I've tested it in a textbox on the Windows Form, just to make sure that it was working as expected. But I just want to be able to actually output the data into a text editor, it doesn't have to be Notepad++, but I just thought what the hell, may as well, right?

Did you set up a public github or similar repository for this? I'm always keen to check out other people's work, especially if it's in C# the language I've become most comfortable with. automation is always an interesting topic.

This video of (recently deceased, RIP :( ) Pieter Hintjens is very educational about building open source communities - the most important part about open source projects:

  1. Learn to use git and upload to GitHub or run your own server

  2. Talk to people on forums or in real life to try and get them interested thats the same way the Linux kernel started out. But don't become dependent upon other people try and make your project as modular as possible so its easy to fix problems.

  3. You should have a genuine interest in your project just like with YouTube as for making money there are a few ways like charging for support or assistance, having ads in the precomplied versions, donations etc

  4. Google what your project is about for example searching for image compression projects

  5. As long as you use a suitable license like GNU GPL v3 and it is up to the users what they use your code for.

1 Like