Click to See Complete Forum and Search --> : starting an open source project?


sneakyimp
10-10-2004, 03:56 PM
hi my smurflings:

I have considered starting some open source projects in the past but never got motivated enough. Obviously, Linux is the coolest thing ever. I've also seen cool ones like osCommerce, phpList, phpMyAdmin, etc.

How does one go about doing this? And is it possible to earn income from your open source project or is it really just for prestige?

I'm sure there are all kinds of variables involved. But any anecodotes, case studies, legal advice, financial tips, or whatever would be much encouraged.

I'm also curious about how the master source code is managed.

I hope this thread might become a pretty detailed one. Hope you guys are into it.

ahundiak
10-10-2004, 07:18 PM
Start by browsing through www.sourceforge.net
The 100,000 or so projects there should give you some idea of how to manage the code.

EDIT: Only 88,695 current projects.

planetsim
10-10-2004, 10:03 PM
I believe to success in anything you create requires a good solid foundation which only good planning can do. If you are creating a huge application delving into the code from the word go will ultimately doom your app.

Since Open Source is free unless your getting hosting, domain and advertisement the finical bit is not really required however buying a domain and getting hosting shows that your project is here to stay for the time being anyway which is why many companies that wish to look at Open Source use the ones that are well known and have some history as they seem solid.

The master code that depends on how you are going to be working. If you are in a group id firstly organise your coding standards so that the code will match up and doesn't look like spaghetti in one file and a work of art in another.

When working in a group CVS is a big thing and really should be used, if its 1 or 2 you can get away without but there will need to have some sort of central location or something organised.

Um. that's all i can think of at the moment I'm sure many well expand on what Ive said or criticise take your pick :p

vaaaska
10-11-2004, 04:25 AM
I am in the same boat as you Sneaky, except that I've already laid the ground work for my project - just needs lots of revision now. It's too much work for one person and needs a pretty solid programmer as well (something that I'm not).

I've been skeptical of SF so I decided to just jump right in and join some other peoples projects first. It's about what I was expecting already, but this does mean that there are some people who act professionally in there as well. You just have to hope that you come across their path.

I would suggest you do the same, with small projects, and then evaluate everything down the road before you launch your own projects.

Good luck...v

dalecosp
10-11-2004, 01:53 PM
I see some wisdom above, so decipher and make your plans accordingly.

On the subject of income and O.S., I guess no one has heard that Poul Henning-Kamp (or was it Dag Erling-Smograv?? ... one of those hyphenated guys) of the FreeBSD project has asked for and received enough donations for a year's salary (or more?) to continue select aspects of FreeBSD development without needing other income. In particular, Pair Networks contributed a chunk ... I guess there is something they want in the code they think he can do that will help them. Lord knows that they've probably saved a ton of cash by using *BSD instead of that Redmond stuff ... ;) I don't guess that Linus is in the poorhouse, either, but I don't know. Certainly he can pick up fees for speaking at every LinuxExpo in the world ...

Anyway, the thing I've noted from trying to be involved in a SF project is that you gain members by their interest in the "subject area" of your project many times, in contrast to gaining them because of their love for or knowledge of coding in whatever language. I mean, you'll get people who can code, but each in their own way, and without experience and excellent communication skills in the project leader or "core" seat, things can get pretty helter-skelter, quickly demoralizing the initial enthusiasm the recruits have for the project.

Unless the other members are known to you (not necessarily personally, but at least by reading their code), you can have no guarantee that anything you put "up for grabs" will be done in the way you expect, or sometimes even understood in the same manner as you understand them. As a less experienced member of one team, and less than even familiar with many aspects of OOP, this was a problem when I volunteered to help a project leader who could no longer speak procedurally; or, at least it seemed so to me.

If you are a project leader dealing with unknown factors (people), my advice would be that in coming up with the design documentation, be sure and clearly state the input and desired output of scripts/modules, and give concrete written and visual examples.

It might also be worth noting that a great many things (for example, C, Linux, PHP ... ) were invented by just one or two people at the outset, and *then* became more like "community property"....

sneakyimp
10-11-2004, 04:26 PM
I've been to Source Forge. I'll go back there and kick around.

As for Linux, it started as Linus Torvald's own personal version of Minix which he modified for 386/486 chips. more info here:

http://en.wikipedia.org/wiki/Linux

I think I saw it estimated somewhere that Linus' original version accounts for maybe 1 or 2 percent of linux's millions of lines of code....still a substantial accomplishment.

At any rate, a successful open source project probably doesn't need a gigantic contribution already in place to get started, but in order to avoid competition from other similar projects, you probably need a minimum base of code or design effort in place to avoid someone pirating your idea and racing ahead of you.

Sounds to me like a good open source manager will provide a few critical things:
1) a clear goal and clear scope for the project...it's raison d'etre. This is they key to attracting quality developers.

2) a good core architecture of some kind...the conceptual skeleton which will support any additional code that is developed. If this is developed properly, the code can be developed and extended in modular fashion without too much redundancy or confusion.

3) a coding style guide and guidelines. this will also help maintain consistency and reduce confusion. simple instructions like "all undercase function names, use underscores for spaces to improve readability" or "if you write a general-use string-parsing routine, put it in string_utils.php".

Once you have your idea down and some modicum of advanced planning, style guides, etc. then you can introduce your project to the world and start soliciting contributions.

At least that's my understanding anyway.

Nice posts, guys. Additional anecodotes are welcome here. Anybody who's got experience, please share your story.

Weedpacket
10-12-2004, 04:23 AM
Originally posted by dalecosp
I don't guess that Linus is in the poorhouse, either, but I don't know. He's on Debian's payroll, as I recall (did he ever get his engineering degree?). Larry Wall, meanwhile, gets a full-time salary (on top of talk and seminar fees) from O'Reilly to develop Perl - who makes the most money out of selling books about Perl?

dalecosp
10-12-2004, 02:32 PM
Originally posted by Weedpacket
He's on Debian's payroll, as I recall (did he ever get his engineering degree?).
According to the Free Dictionary (http://encyclopedia.thefreedictionary.com/Linus%20Torvalds): He attended the University of Helsinki from 1988 to 1996, graduating with a masters degree in computer science.

Larry Wall, meanwhile, gets a full-time salary (on top of talk and seminar fees) from O'Reilly to develop Perl - who makes the most money out of selling books about Perl? Heh, I wonder ... it's probably not Larry, though, eh?

Thanks for the info :)

sneakyimp
10-13-2004, 05:11 PM
in addition to SF, there's

http://freshmeat.net


Anyone know of a good place to learn about CVS? Or other source code management systems?

Also, if anyone has any first-hand knowledge of how code is examined/approved/incorporated, I would be very pleased to hear about the story. In other words

* you were involved in an open source project
* the admin said some work needed to be done OR someone volunteered to add some kind of functionality
* some code was altered or added
* admin (and other important honcho types) looked at the code and were right pleased.
* said code became part of official distribution.

war stories, anyone?

bubblenut
10-13-2004, 07:23 PM
https://www.cvshome.org/docs/manual/cvs-1.11.17/cvs.html
It's "official"!

Sxooter
10-17-2004, 06:47 PM
Lots of folks make a living writing free software. The top 8 or 10 developers of PostgreSQL are all employed by one company or another as full time developers on that project (fujitsu, RedHat, SRA, Command Prompt, and another half dozen or so companies pay those salaries.)

And that's just one OS project.

csn
10-20-2004, 06:16 PM
Well, they don't really make their living from the free software - those companies subsidize them. But then the companies may make money by offering support services, utilizing the free software in ways that do make money, and so on.

Sxooter
10-20-2004, 06:44 PM
I meant the developers make their living off of those projects. The big companies, like you said, make money offering consulting services. But it's easier to get your foot in the door consulting on PostgreSQL as a company when you pay the salary of one of the core developers, and hence have a valuable resource for answering questions and fixing bugs should they get in the way.

csn
10-20-2004, 07:15 PM
Plus Redhat bundles up Postgres as their own database.

I think Bruce Momjian has a pretty good job - he always seems to be traveling all over the world evangelizing Postgres.

csn
10-20-2004, 07:17 PM
Hey Sxooter-

Any idea when PG 8 Final will be out? :)

Sxooter
10-20-2004, 09:21 PM
It's looking like late November or so right now.