Anyone involved in any opensource projects? Or have been?
Moderator: General Moderators
Anyone involved in any opensource projects? Or have been?
First off, sorry if this is in the wrong forum, but I thought the general section might be a little uhh, too general. This question pertains primarly to php projects. Anyway, I'd be interested in knowing if anyone reading this is involved or has been involved in any opensource projects, and if so, which. If not, have you ever considered it?
I have been working on a project for a while now and I'm getting to the point where I'd like to opensource it (gpl) and get together a team of contributors. Any advice is welcome from people who've done it before. Also if anyone's interested, I can give a detailed writeup of the project.
I have been working on a project for a while now and I'm getting to the point where I'd like to opensource it (gpl) and get together a team of contributors. Any advice is welcome from people who've done it before. Also if anyone's interested, I can give a detailed writeup of the project.
- MrPotatoes
- Forum Regular
- Posts: 617
- Joined: Wed May 24, 2006 6:42 am
actually no. not yet. i am making a closed source proprietary CMS currently but i was going to add thing in there where it calls EXEs and after i get alof of that functionality in i'd like to opensource the actual PHP. the only thing is that i still want to make money off of it. so i'd sell tech support and installations and other things of that nature. i'd like to do what firefox did. still be able to make cash even tho it's open source.
i'm a little money grubby like that but when you make as little as i as a developer you end up wanting the cash. wishes and hopes don't pay rent
i'm a little money grubby like that but when you make as little as i as a developer you end up wanting the cash. wishes and hopes don't pay rent
- AKA Panama Jack
- Forum Regular
- Posts: 878
- Joined: Mon Nov 14, 2005 4:21 pm
Points to signature. 
Pcreating open source modules for various online games over the years like Tribes and Unreal Tournament.
Pcreating open source modules for various online games over the years like Tribes and Unreal Tournament.
Last edited by AKA Panama Jack on Thu Jun 08, 2006 10:40 pm, edited 1 time in total.
Re: Anyone involved in any opensource projects? Or have been
I've been involved in The Kabal Invasion, Blacknova Traders, CompWebChess, CSS Grapher, WorDog, JOMPT, adodb, Smarty, and Next Forum.bgzee wrote:Anyway, I'd be interested in knowing if anyone reading this is involved or has been involved in any opensource projects, and if so, which.
1. Have *one* form of communication. Having forums, and mailing lists, and IRC chats, and other forms *seems* like a welcoming gesture, but it results in no central location to keep up to date on development. Worse, you'll end up with some developers on one, but not another, discussing the same thing, but not with each other.bgzee wrote:I have been working on a project for a while now and I'm getting to the point where I'd like to opensource it (gpl) and get together a team of contributors. Any advice is welcome from people who've done it before.
2. Have a clear method for submitting bugs, and resolving them.
3. Have published coding guidelines so people can interoperate without arguing about tabs v. spaces (and yes, it matters quite a bit).
4. Release early, release often, but better yet, keep a functional SVN/CVS tree as much of the time as you can. It encourages you to make your changes atomically (keep most of the code working), and allows new developers to jump right in.
5. Have a clear method for voting/deciding issues. Whether its "benevolent dictator" style like Linux, or by committee by Debian doesn't matter. Just have a method, and be consistent in using it.
Always interested in new opensource projects. Spill the beans!bgzee wrote:Also if anyone's interested, I can give a detailed writeup of the project.
- Maugrim_The_Reaper
- DevNet Master
- Posts: 2704
- Joined: Tue Nov 02, 2004 5:43 am
- Location: Ireland
I work on two open source games: Quantum Star SE (which is undergoing a rewrite), and Protoshell. QS is in PHP, Protoshell is leaning towards Java. I've been on the open source circuit for 3 years, but most of real effort I put in in the last year since I've had more time. I hope to get involved in at least one other project before the end of year - either PHP or Java.
User Communications is more difficult. I'd recommend a few lines of communications, at a minimum a public forum (not a mailing list which is perceived as old fashioned by the younger crowd), a bug tracker (Mantis is a nice simple PHP bug tracker), and several mailing lists specifically for accepting patches or private bug reports (usually security issues). Also nice is having a nightly CVS/SVN build of your app (users often dislike learning a versioning system and client when all they want is your cutting edge code). Heavily disclaim such builds as unstable and possibly unworkable - some users don't mind a little leg work to patch it up and test it out. News is essential - make regular news updates for those not regularly visiting the forums. I suck at that, and rely on my blog far more...#
On the above - set them up early. As in before you do anything else. There is nothing more sad then a project with a bunch of code in a CVS repository and no website/forums to visit. Personal email will only get you so far.
I'd qualify that into two sections - Developer Communications and User Communications. Developer need one central forum (whether a BBS or mailing list) which should be public. In an open source project it usually pays not to keep communications private - if they're private people will simply assume the project is dead, or too secretive to bother with, or worse, you don't want their input. It discourages user participation.1. Have *one* form of communication. Having forums, and mailing lists, and IRC chats, and other forms *seems* like a welcoming gesture, but it results in no central location to keep up to date on development. Worse, you'll end up with some developers on one, but not another, discussing the same thing, but not with each other.
User Communications is more difficult. I'd recommend a few lines of communications, at a minimum a public forum (not a mailing list which is perceived as old fashioned by the younger crowd), a bug tracker (Mantis is a nice simple PHP bug tracker), and several mailing lists specifically for accepting patches or private bug reports (usually security issues). Also nice is having a nightly CVS/SVN build of your app (users often dislike learning a versioning system and client when all they want is your cutting edge code). Heavily disclaim such builds as unstable and possibly unworkable - some users don't mind a little leg work to patch it up and test it out. News is essential - make regular news updates for those not regularly visiting the forums. I suck at that, and rely on my blog far more...#
On the above - set them up early. As in before you do anything else. There is nothing more sad then a project with a bunch of code in a CVS repository and no website/forums to visit. Personal email will only get you so far.
If you're looking for some quality advice about running an OSS project, I recommend you read this online book. It covers many topics that'll appear as you start your project, and as it begins to grow.
Sphenn
Sphenn
Thank you for the advice, all very good and will definatly keep in mind. Especially the communication thing. Now for a description of the project.
It is an ajax OS. It is nothing like the other ajax OS's out there, in that it tries to replace or mimic a desktop OS. It's goal is to act like a platform or framework for programmers to create ajax applications in a neat, clean package (think of it as an executable). It is actually put together in several different layers, entirely object oriented, and easily extendable. At it's base is the kernel layer, which it completely independent of any ajax functionality, and which can be implemented in any form, whether its on the web or the CLI. The kernel's primary responsibility is loading and managing drivers. A driver, for example, could add database functionality. It is a driver in which the server side ajax functionality is placed. Each ajax application would be packaged neatly as follows:
An ajax application object (inhereted from the ajax_application abstract class)
a web visible folder, containing any supporting css and javascript, so that it could be cached by the browser (more on this later)
On the client side, we have a base js script which is responsible for facilitating asyncronous communication with the server, as well as to dynamically loading javascript and css as it is instructed to by the server, in a way that it is still cacheable by the browser. It is very important to me that the client remain as bare bones as possible and grows as needed. The server would feed the client css and javascript as required by whichever application it was running. Keep in mind, a single web page could run multiple ajax applications. A web page running more than one of these applications would essentially be a mash up, which i hear are all the rave these days.
Some people may think that using OS terminology is overkill for a PHP project. What I realized, however, was that since ajax changes the way we think of the web page, in that it is more of a desktop application, we need to think of the server differently as well, in that it is more of an operating system, and that it should be designed and modeled more like one.
For those interested in seeing the source code, I will open up my SVN server to the world within the next week or two and let you go at it. The timeframe will be short as I am on a humble DSL line and I dont have a static IP addy. But we'll get around to that when its time.
Please, post any questions. I'm sure I was not thorough enough and there is plenty of room for clarification.
It is an ajax OS. It is nothing like the other ajax OS's out there, in that it tries to replace or mimic a desktop OS. It's goal is to act like a platform or framework for programmers to create ajax applications in a neat, clean package (think of it as an executable). It is actually put together in several different layers, entirely object oriented, and easily extendable. At it's base is the kernel layer, which it completely independent of any ajax functionality, and which can be implemented in any form, whether its on the web or the CLI. The kernel's primary responsibility is loading and managing drivers. A driver, for example, could add database functionality. It is a driver in which the server side ajax functionality is placed. Each ajax application would be packaged neatly as follows:
An ajax application object (inhereted from the ajax_application abstract class)
a web visible folder, containing any supporting css and javascript, so that it could be cached by the browser (more on this later)
On the client side, we have a base js script which is responsible for facilitating asyncronous communication with the server, as well as to dynamically loading javascript and css as it is instructed to by the server, in a way that it is still cacheable by the browser. It is very important to me that the client remain as bare bones as possible and grows as needed. The server would feed the client css and javascript as required by whichever application it was running. Keep in mind, a single web page could run multiple ajax applications. A web page running more than one of these applications would essentially be a mash up, which i hear are all the rave these days.
Some people may think that using OS terminology is overkill for a PHP project. What I realized, however, was that since ajax changes the way we think of the web page, in that it is more of a desktop application, we need to think of the server differently as well, in that it is more of an operating system, and that it should be designed and modeled more like one.
For those interested in seeing the source code, I will open up my SVN server to the world within the next week or two and let you go at it. The timeframe will be short as I am on a humble DSL line and I dont have a static IP addy. But we'll get around to that when its time.
Please, post any questions. I'm sure I was not thorough enough and there is plenty of room for clarification.
One quick clarification: An ajax application built on this OS could be easily integrated into any ol' static web page. Essentially it would just include the base js and have a way to contact the server, whether through an onClick or onLoad method somewhere on the web page. Simplification on the client end is very important. Anyone with very basic html knowledge should be able to "install" an application on their website.