Slashdot Mirror


Good Ways To Join an Open Source Project?

Tathagata asks: "I'm a student, on my final year in a college in India, and I have been using GNU/Linux for quite sometime now. Though I'm from a Computer Science background, getting into a project that involves serious programming was not possible, as people (read teachers) run away if you utter the word 'Linux'. They are generally not bothered about mentoring someone on an exciting project, and they would suggest you to get settled with Visual Basic, .NET, — and would prefer a 24 hour solution when it comes to programming. So, my programming endeavors have remained limited to writing few lines of C/C++, or Java. For last few days, I've been googling, and trying to read how to join an existing Open Source project." What suggestions would you pass along to someone who is willing to join his first Open Source effort? Most of the things I've read suggest that a good place to start is by submitting patches, fixing bugs, becoming package maintainer — but most are overloaded with jargon like upstream/downstream, nightly builds, and so forth. Additionally, how does joining the mailing list, or the IRC channel help when you don't even understand the slang, not to mention the intricacies of the technical discussion? It 's quite an overwhelming world to step in. Could you suggest a road map, links to essential tools or a few projects, for people like me, who would want to improve their skills by contributing FOSS?"

282 comments

  1. Read the TODO list by Watson+Ladd · · Score: 5, Informative

    and do one of the items, test the patch, and submit it. Then repeat.

    --
    Inventions have long since reached their limit, and I see no hope for further development.-- Frontinus, 1st cent. AD
    1. Re:Read the TODO list by SQLGuru · · Score: 4, Insightful

      Mod parent to +5 (or +11, depending on how high your dial goes).

      The only thing left out was that joining the mailing list and discussion boards will help you learn the lingo fastest. The only way to learn how to talk like a 133t hax0r is to lurk among them for a while. Every group is going to have their own slang. There is no "master list". Your background in CS will help you piece things together (well, related to the CS stuff). A classic example? In X Windows, knowing that the server is your screen and the client is the processes (apps) isn't easy to figure out unless you hang around them long enough.

      But being a coder, like the parent post says, picking an item off of the TODO list and doing it will give you a good start. Pick an "easy" one. Read the code. Re-read the code. Make an attempt. Re-read the code. Redesign your solution to fit closer to how everything else works. Talk on the boards with people about how you have a mostly working solution. Then, you'll get a feel for their slang as they respond to something that you are pretty familar with.

      Layne

    2. Re:Read the TODO list by bfields · · Score: 4, Insightful

      That can be trickier than it'd seem at first. Sometimes stuff on the TODO list is straightforward. But sometimes the reason something's stuck on the TODO list is that people aren't really sure yet what exactly needs to be done. Without experience it may be difficult to sort out the doable stuff from the stuff that needs someone with a real breadth of knowledge about the project architecture, user requirements, etc. But, sure, ask around for advice about given projects, see what people tell you.

    3. Re:Read the TODO list by Anonymous Coward · · Score: 5, Insightful

      I believe you and most people are missing what this guy is asking for. Patches, and talking to the developers is the general advice given, but there is far more to it than just that. In my experience which is very limited, I've noticed most projects all have their own way of doing things, naming conventions, rules, ways to get around problems..Almost to the point that before you can submit patches, you need to know how the whole project fits together, and have an understanding of a lot of the underlying work.

      This person I reckon is asking for links, advice on places to go to learn some of the common conventions used in open source, as they're usually quite different to closed source systems.

      For example you can assume a nightly build is what it says in the name, but there is more to it.. Such as what does get included, what doesn't.. If you've been working on something all day but it still doesn't work, do you commit it for the nightly build knowing that it'll break but may be useful for others to see what's going on? You probably wouldn't commit it if you knew it wouldn't work..Which really puts it down to only making small changes which you've checked work(to the best of your ability) then commit. There is definitely an area of uncertainty surrounding these things.

      There's naturally the case of feeling intimidated talking to people who have been working on the project for ages, and a fear surrounding asking what they could consider stupid questions. Nobody likes being laughed at with intent to hurt.

      I think he's really looking for an 'entry point'.. As well as material to read (and where to read it) so he can feel more confident talking the lingo, and being able to ask more sensible questions, without as much fear from asking stupid ones.

    4. Re:Read the TODO list by badboy_tw2002 · · Score: 3, Informative

      In that case its best to email the project owner or the dev list announcing your intentions. If the people who run it are cool they'll take a little time to sketch out what needs to be done. If not, they're probably jerks and you might do well to find a better project to donate your time to.

    5. Re:Read the TODO list by protomala · · Score: 1

      hat's how I started. When compiling some open-source projects found bugs, fixed, sent the fix. Later started to help out stratagus (named freecraft at the time) and improved my skills a bit. Now I'm working on Stargus (starcraft support for stratagus on the weekends). It's very fun!

    6. Re:Read the TODO list by bfields · · Score: 4, Insightful

      In that case its best to email the project owner or the dev list announcing your intentions.

      Yep, definitely.

      If the people who run it are cool they'll take a little time to sketch out what needs to be done. If not, they're probably jerks and you might do well to find a better project to donate your time to.

      It's not necessarily that simple. I've got plenty of projects that need doing where it's exactly producing that sketch that would be the hardest part. It might be a solid week of work for me to to get the project broken down to the point where it'd be reasonable for somebody unfamiliar with the project to get a good start on it. And even then it might come down to "try doing x, y, and z, and then get back to me with what you've done so far, and *then* we'll be able to decide whether this is actually the right approach or whether we need to scrap it all and start over differently."

      And it's painful for somebody new to have to do a ton of work like that maybe just to prove that we're barking up the wrong tree. At least when they're starting out, I'd rather have people work on something that'll be more immediately rewarding for them.... But, anyway, the developer should be able to help you find the right project. Just keep in mind that sometimes finding the right project isn't always easy, and they don't yet know whether you're someone they can count on to follow through, so there's probably only so much that you're going to get from them at first.

    7. Re:Read the TODO list by Spazmania · · Score: 1

      Exactly; you don't join or leave an open source project. There are no membership rolls. You just write code and if other people like your code, they use it.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    8. Re:Read the TODO list by PitaBred · · Score: 1

      Looks interesting :) Just as an FYI, I read the front page of your project. Starcraft actually runs perfectly under Wine set to emulate Win2K actions in Ubuntu 7.04. I just double-clicked setup, and it installed and ran, everything as it's supposed to be. So, you can play Starcraft under Linux other than with your mod. But I'll definitely keep an eye on it.

    9. Re:Read the TODO list by zCyl · · Score: 2, Insightful

      Sometimes stuff on the TODO list is straightforward. But sometimes the reason something's stuck on the TODO list is that people aren't really sure yet what exactly needs to be done.

      For beginners to programming or just to a project, it may be wiser to start out fixing the more recent and less critical bugs. These are more likely to be straightforward, and are probably not done yet just because someone hasn't gotten around to it. After doing a few of these and becoming familiar with the code base, one can move up the chain to more difficult bugs.

      Regular developers will appreciate this contribution, because it will free up more of their time to focus on the bugs which require more experience with that particular project.

      Let me throw in one additional important point for the original question-asker: Be nice to people. Other developers will welcome you into the fold if in addition to your contributions you seem like a nice person. There are plenty of egos in the world, so leave yours at home and just contribute in a positive and friendly way.
    10. Re:Read the TODO list by Spy+Hunter · · Score: 1

      I'd add that it's important *you* find your patch useful. If you're writing a patch for someone else's problem just to "join the project", I don't think that's going to work well. You should be a user of the project first, then write a patch to scratch an itch that *you* have. Join the mailing list and submit the patch. For example, if you're a user of Firefox, I'm sure there's something that bugs you about it. Find the bug on bugzilla, then make the patch.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    11. Re:Read the TODO list by budgenator · · Score: 0

      Uh not quite, the server generates the screen image and sends the data over a TCP/IP link to the client that actually displays the video; normally it's on the same machine and sent through the loopback device, but it can also be sent over the network, the internet or even a dial-up connection.

      One thing that can endear you to the developers is to learn how to fix the newbie problems, the ones the the list tends to say "OMG I can't believe somebody is asking for the answer we've answered 10 thousand times" with patience and competence and no "did you RTFM" attitude.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    12. Re:Read the TODO list by jzeejunk · · Score: 0

      for the nth time, it's X Window not X Windows

      --
      sarchasm
    13. Re:Read the TODO list by belmolis · · Score: 1

      Actually, this is not necessarily true. There are some projects that solicit code from anyone and have mechanisms for dealing with that. There are other projects that want people to sign up and interact with the rest of the group in particular ways. There are also those that are in between. For example, Tcl is maintained by a self-perpetuating core team that has the decision-making power. Non-members can submit proposals and patches, and doing enough of this of high enough quality is the route to joining the core team, but you only actually get onto the core team by being invited.

      There are also a fair number of open source projects that are one or two person projects. They may be happy to receive bug reports, suggestions, and patches, but they aren't necessarily set up for significant contributions by others, and may not necessarily want them (if they enjoy coding and have their own vision for the project).

    14. Re:Read the TODO list by Anonymous Coward · · Score: 0

      My god man, you are in your senior year as a Comp Sci major and you've only done a few lines of C++ and Java? Remind me to never outsource my programming jobs to India.

    15. Re:Read the TODO list by Mr.Ned · · Score: 3, Interesting

      Some projects - the one that comes first to mind is the Glasgow Haskell Compiler (ghc) - have fields in their bug trackers that rate the anticipated difficulty to fix a particular bug. That's a great help in identifying what's doable right away and what's not.

    16. Re:Read the TODO list by Tathgata · · Score: 3, Informative

      Thanks to all of you, for such valuable suggestions [half-way through reading].
      But YOU, really understood where I'm getting stuck!
      Now making the choice amongst so many inetresting projects is undoubtedly difficult, everything(well, almost) seems interesting. But my main query is how do you get the entire picture of the whole project and locate the needle hiding itself in the haystack just looking at the bug report.
      Sounds silly, but from a bug report to submiting patches - how do you do it?
      I'm eager to RTFineM and goolge is my friend - but any links would be highly appreciate and thanked.

    17. Re:Read the TODO list by geniusj · · Score: 1

      who cares?

    18. Re:Read the TODO list by flotationIsGroovy · · Score: 1
    19. Re:Read the TODO list by defy+god · · Score: 1

      i clicked on "3 replies beneath your current threshold" just to see if someone would comment on that. thanks for not failing me slashdot =)

      --
      hackers of the world unite!
    20. Re:Read the TODO list by some+guy+I+know · · Score: 1

      for the nth time, it's X Window not X Windows
      Actually, it's the "X Window System".
      --
      Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
  2. try sourceforge... by froggero1 · · Score: 1

    there's plenty of positions for open source developers there...

    --
    ~/.sig: No such file or directory
    1. Re:try sourceforge... by froggero1 · · Score: 4, Insightful

      specifically, this link. You may need an account to view it, I don't know.

      --
      ~/.sig: No such file or directory
    2. Re:try sourceforge... by Taco+Meat · · Score: 0

      So *you* have a sourceforge account? I didn't know they gave away free gay-child-llama porn away there. I guess they do have something for everyone, even you, you abject pervert!

      --
      It's not narcissicism if it's true!
  3. you've already gotten good advise... by capsteve · · Score: 5, Informative

    i think the advise you've received so far is spot on. first pick a couple projects you're interested and have a vested interest (i.e. you actually use the software on a daily/semi-regular basis) and join the forums. i wouldn't worry about the slang right off the bat, most of that will come with time and participation. join the discussions with suggestions and help if you can provide it, or ask questions regarding configurations, installation, etc if you're a new comer.

    regarding posting in discussion groups:
    if your asking questions, be thorough in you description of problems you're experiencing, be ready to provide logs and details regarding your system and installation, and be courteous. nothing worse than a call for help on a forum: "i'n a new user, don't know what i'm doing, but i need help. and if you can't help me this software sucks!" i've seen many calls for help that go unanswered because of the issue listed above.

    if you are offering help and/or suggestions, be thorough in your answers, don't be insulting("RTFM newb!"), and give realistic options. i've seen responses that are overly terse in tone that makes the response seem like it's an annoyance or statements that have an air of arrogance that have turned users away from FOSS projects.

    the point of joining the discussion groups is to see if there is a fit for your skills. is the delevopment team in need of your abilities, or do they have too many contributors? is the process of contribution thru an individual or comittee? is the project in active development, or has it been obsfucated by another project? only way to answer some of these questions is to join and read the discussions. then you can make a better decision as to which project to join.

    figure out what you want to join first before deciding what you want to do with the project. if your commited to the project, theres a way to find your niche.

    --
    three can keep a secret, if two are dead - benjamin franklin
    1. Re:you've already gotten good advise... by drinkypoo · · Score: 2, Informative

      first pick a couple projects you're interested and have a vested interest (i.e. you actually use the software on a daily/semi-regular basis) and join the forums.

      I cannot agree with you enough. It is by far most sensible to start with a project you actually care about. Some of the first patches I ever submitted (not precisely the first but it's been a while) were for various Drupal modules. I made some mistakes, and some were not accepted, but most were and both I and the community got over the experience just fine :) But the point is that I was motivated to fix the problems because they affected me. Some are bugfixes and some feature enhancements, but all are patches I wrote that were accepted, and both fixed my problem and made me feel good.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:you've already gotten good advise... by mightybaldking · · Score: 1

      "if you are offering help and/or suggestions, be thorough in your answers, don't be insulting("RTFM newb!"), and give realistic options. i've seen responses that are overly terse in tone that makes the response seem like it's an annoyance or statements that have an air of arrogance that have turned users away from FOSS projects." This attitude sickens me. The reason why I'm on your group/list/forum/whatever is because I've already spent an hour on the googles looking for documentation/howto's. Normally I'll find a howto that applies to releases that are several years old. My advice to anyone who really wants to help - WPT&MTFM (Write, Publish, Translate & Maintain)

    3. Re:you've already gotten good advise... by bmsleight · · Score: 3, Informative

      I could not agree more. I start asking question about a project I was using. Then I answered other questions in the forums, for other users, based upon the knowledge I picked up.

      Next I submitted a one line patch. [Heck at that point I could not even use diff]

      Then I wrote a manual. I worked out how to use diff, subscribed to the developer mailing lists. More patch, modules written by me.

      I am now one of the administrators of the project.

      From small acorns, big trees grow.

    4. Re:you've already gotten good advise... by Simon80 · · Score: 1

      I also agree completely with this advice. I can recall being very eager but clueless a few years ago, and the only way to fix it is to spend a lot of time reading mailing lists, source code, documentation (man pages may seem terse, but they can be very valuable, and you should get comfortable with them, in my opinion), etc. until you have the background you need in order to be able to do something meaningful. I don't think there are any quick shortcuts to make it easier, but you shouldn't give up - if what you say about your teachers is any indication, you'll probably learn a lot of valuable skills that you did not get taught in school if you try to contribute to something.

      If you're looking at a project and you're not sure where to start figuring out how to make an improvement that you've decided to make, it probably means you need to learn more background knowledge. However, you can always ask the mailing list for advice, if you know what it is you want to improve. Nobody is going to hold your hand though, so you're eventually going to have to start reading through source code.

      If you're wondering how to start making debian packages, you should look at the Debian New Maintainers Guide, the manual for CDBS, and the documentation for make. "Upstream", in the context of packaging, are the original authors of the application being packaged - it's an analogy comparing code to water flowing down a stream

    5. Re:you've already gotten good advise... by Ornedan · · Score: 1

      Could be that you really have done your research before asking questions. Too bad some 10% - 20% of the other people asking questions haven't.
      RTFM is a valid response when it is clear the person asking the question hasn't even bothered taking a look at the manual. That they have not read the manual can be seen from, for example, the fact that the answer to the question of "How do I do X?" is in it's very own chapter of the manual, complete with screenshots of every step along the way.
      Of course, you can (and usually should) be polite when telling the losers to RTFM. But there does come a point where just telling them to RTFM is valid, because you know that the only reason they can be asking the question is that they couldn't be bothered to do any research at all before asking you (up to and including not reading the sticky topic titled "READ FIRST if you have questions about X" in the very same forum they are posting their question to).

  4. go look at some help wanteds by iHasaFlavour · · Score: 3, Informative

    Sourceforge has a help wanted page for project owners to advertise for additonal project members, or go to google code and browse there to see if anything catches your eye.

    --
    Reality is that which, when we cease to believe in it, still exists. - Philip K Dick
  5. Easy by SatanicPuppy · · Score: 4, Informative

    Two words: Source. Forge. As in Sourceforge.net, the birthplace of countless OSS projects.

    End of story. Go there, find something that's interesting, and if it's no longer in development, take it over or fork it, and if it's in development, see if you can join the team (if they need help, there is usually a "help wanted" link on the main project page). Most groups need help, and if you're competent, they'll be glad to have you.

    If you're moving into a big team, be polite. You're a young programmer, and lots of young programmers have a lot of hubris. If you can't work with the people there (and this happens a lot; I once took a Java project, and simply updated it as it stood to get rid of depricated functions, almost no other changes, and I got flamed like you can't even imagine by the lone devloper who hadn't even released an update for 2 years) move on and do something else. There are so many projects, there is bound to be something awesome out there that you want to be a part of.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    1. Re:Easy by marktoml · · Score: 1

      SourceForge also has a "Help Wanted" section where project folks post what skills they need.

      Good way to find something you are ready to tackle.

    2. Re:Easy by Anonymous Coward · · Score: 2, Funny

      End of story.

      Interesting that over 90% of your post occured after you said "End of story."

    3. Re:Easy by Anonymous Coward · · Score: 0

      I'll even get you started. Check out a java project named "JFileChecker". It's something I dabbled in years ago. I have a lot of ideas on how it could be improved, expanded, and made truly useful. The problem is I have a life now and have found more interesting things (to me) to work on so I've given up on it. If you are interested in taking it over or forking it, be my guest.

    4. Re:Easy by Anonymous Coward · · Score: 2, Funny

      Interesting that you know his penis size.

    5. Re:Easy by ClosedSource · · Score: 2, Insightful

      "You're a young programmer, and lots of young programmers have a lot of hubris."

      I'm an old programmer and I can tell you that hubris is not something that only young programmers are guilty of. It's just that people are more likely to put up with it if you're experienced.

    6. Re:Easy by Architect_sasyr · · Score: 1

      What about http://freshmeat.net/? Easier to track projects there IMHO... it's where I get some of my greatest tools. Sourceforge is good as well, just trying to spread the love

      --
      Me failed English...
      FreeBSD over Linux. If my comments seem odd, this may explain...
  6. Write some code. by dudeman2 · · Score: 0, Redundant

    Submit it. Read the feedback you get (if you get any). Write some more code. Repeat. That is all.

  7. join in IRC by wikinerd · · Score: 0, Redundant

    join an IRC channel and get to know the participants, state that you are a student and you wish to learn how to help. Browse the TODO list or the bug list and ask them how one could fix a particular bug, then try to do it.

  8. or fix the bugs :) by sofar · · Score: 5, Insightful


    Andrew Morton has said it before, and it holds best: "What do I do if I want to be a kernel hacker?". His answer: "fix bugs". This applies for all open source projects. If developers have established that their software has shortcomings, they are very likely to accept solutions. Fixing bugs is the best way to become part of an open source project.

    1. Re:or fix the bugs :) by Anonymous Coward · · Score: 5, Interesting

      Fixing bugs is the best way to become part of an open source project.

      Unless you fix a bug that nobody cares about or doesn't understand what the bug really is. For instance, for years ptrace() in Linux didn't behave like any other ptrace() in other commercial Unices. My colleague spent long hours analyzing the bug, creating a fix, and exhaustively testing the fix to ensure it didn't open up security holes (admittedly ptrace() is a touchy part of the kernel that is prone to security issues). Nonetheless, when he sent the patch to the Kernel mailing list, it was completely ignored. No discussion...not even to say "we are too afraid to accept a patch for ptrace() from someone we do not know". Another example involved an effort to get an interface into the kernel for virtualizing and accessing hardware performance counters (this is in the days before oprofile and something other Unices have long had). A dude submitted a very very nice kernel patch and user library for allowing virtualized access to hardware performance counters. The Linux kernel mailing list completely ignored it. No discussion whatsoever.

    2. Re:or fix the bugs :) by dup_account · · Score: 4, Insightful

      Ok, don't go for the gold right out of the box. Find a smaller/lesser know OSS project to work on. Ideally, find something you are interested in or are already using. Maybe you have something about an OSS project that bugs you... Try to go in and make it work like you want.

      Also, be patient. Unlike the parent, talk to the maintainer before making dangerous changes.

      Final note, Linux kernel list is notorious for ignoring patches... That's why it's good to read the mailing lists etc before trying to submit. Get a feel for the project.

    3. Re:or fix the bugs :) by fishbowl · · Score: 2, Interesting

      >Fixing bugs is the best way to become part of an open source project.

      Writing and translating documentation, testing, and doing sales (yes, I'm serious) will endear you
      to some project teams more than you probably imagine. My sister-in-law is doing sales and marketing
      for a GNU-licensed open source project and is getting paid rather respectably, and traveling the world.
      It's pretty cool, and it shocked the hell out of me that a person could make a living wage in *sales*
      in the open source world, but I've seen it. If I had time, I could plug into that same project as a
      developer and, apparently, could even be paid market wages if my contribution was sufficient.
      But I don't want to stop working in science, low pay and university "perks" nonetheless.

      --
      -fb Everything not expressly forbidden is now mandatory.
    4. Re:or fix the bugs :) by ninevoltz · · Score: 5, Insightful

      I can confirm that your work will be for nothing, if you are not well known. Even patches written by project members will be ignored if the rest of the members don't feel like addressing the bug. Andrew Morton wrote a patch for a kernel bug that I submitted relating to National Instruments Data Acquisition drivers not working with the Fedora kernels. The symbols in the NI drivers are too long for modpost to handle, so he created an expanding buffer patch. Then it went nowhere. This kind of pisses me off. I love Linux, but I fucking hate elitist nerds. This is why more people will not accept Linux when valid hardware drivers can't be properly supported because of personality problems.

      --
      Death is life's great reward. R. Hoek
    5. Re:or fix the bugs :) by ClosedSource · · Score: 1

      Well, this is one of the known flaws of the "many eyes" theory: it ignores politics and organizational scaling issues.

    6. Re:or fix the bugs :) by billcopc · · Score: 5, Insightful

      You hit the nail on the head: elitism is what kills our efficiency. We suffer from inflated head'ism, where any ideas that come from outside the clique are seen as threats. Just look at all the major open source projects, not just the kernel but Apache, Samba, Gnome and KDE... they all suffer from this bizarre "us vs them" attitude.

      I can certainly understand that there are a lot more dumb whiney people than clever ones, but an open-source project manager, like any other manager, needs to learn to maximize the resources available. If you have a half-brained monkey banging on your door, give up some boring job that no one else wants, that will keep them busy AND get your work done. Likewise if someone comes along with a bright idea, don't get jealous and vindictive, instead try to find ways to incorporate these new ideas and skills in your team.

      OSS projects should be run like any other project, with one extremely important advantage: there are no salaries to be paid, so you can get the right-sized team for the project. Too few people and things won't get done, people will tire and give up. Too many people and you spend all your time herding cattle, or hearing your lead developer bitch about how the new kid shat all over CVS.

      To the original poster: if you're a fresh coder and you want in on a project, you're going at it the wrong way. Don't shop around like it's a day job, rather find something you're good at and do it, then show off your work. If you're worth the bandwidth, someone will notice. There is so much fluff in the marketplace, kids who just want their name in Google so they can butter up their resume, that people begging for work don't even get the time of day, except from other newbies who don't know any better.

      --
      -Billco, Fnarg.com
    7. Re:or fix the bugs :) by Anonymous Coward · · Score: 0

      I'd actually disagree with that. If you want to sucessfully start writing open source software, start your own project that does something useful, or alternatively add some useful feature to an existing project. The sense of accomplishment is much greater than if you fix some bug and all the feedback you get is "Fixed in HEAD".

    8. Re:or fix the bugs :) by Anonymous Coward · · Score: 4, Informative

      Ok, don't go for the gold right out of the box. Find a smaller/lesser know OSS project to work on.

      Some projects are actively trying to get newbies involved. I've heard of GnomeLove (though I don't actually know much about it), and Subversion has a list of bite-sized tasks.

    9. Re:or fix the bugs :) by walmartshopper67 · · Score: 2, Informative

      Or join a smaller one, one that doesn't have a zillion developers. Know php? check out http://www.xoops.org/ - they'd be happy to have a developer I'm sure. Just surf around on sourceforge and find one you like and would be valuable to with not a whole lot of developers, and jump in. The worst that can happen is the project dies or it's dead and nobody responds. (I don't have anything to do with Xoops beyond being a user - although I do have some input at http://www.winpackman.org/ where I'm positive they would love to have you =) )

    10. Re:or fix the bugs :) by chip_0 · · Score: 1

      Thanks, the GnomeLove link is quite interesting. I am a long time XFCE user, and would love to work on any small ways to improve it, in any way that I can. Is there any similiar resource for XFCE?

    11. Re:or fix the bugs :) by Anonymous Coward · · Score: 0

      Just rebrand the project with your changes and release it on your own or as a new Sourceforge project. Even if the other developers don't appreciate your work, someone else might.

    12. Re:or fix the bugs :) by Wolfrider · · Score: 1

      --Look into virtualization. OpenVZ is doing some interesting things with Linux -> Linux VMs (or VE's, in their terminology.)

      http://wiki.openvz.org/Download_live_CD

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
    13. Re:or fix the bugs :) by v4vijayakumar · · Score: 2, Funny

      Andrew Morton has said it before, and it holds best: "What do I do if I want to be a kernel hacker?". His answer: "fix bugs". But wait, what if I want to create my own bugs?! :(
    14. Re:or fix the bugs :) by sofar · · Score: 1

      some hints:

      1) send it again, send it to the right people
      2) if you still think it's a bug that needs fixing, make a stink about it. *convince* people that they need the fix
      3) if you still don't get it merged, try posting it to Andrew Morton himself instead of a public ML. Use the To: and Cc: fields wisely

      don't fall over and cry. open source developers are really busy and often can't be bothered to read things (hey, 700 mails a day on lkml is surely not helping to get your patch attention!)

    15. Re:or fix the bugs :) by sofar · · Score: 1

      doing support is nice, but it's not code. I always feel sorry for project people who do nothing but support (translations, artwork etc). They never get a real say in the big project decisions, don't get listed as authors, etc...

      You really have to love a project a lot to do just that. It is the least-rewarding job.

  9. easy solution by Anonymous Coward · · Score: 0

    Just start your own! Then you can do whatever the hell you want!

  10. patches by ajole · · Score: 1

    submit patches! I fyou can do it, just do it!

    --
    -P ...and the boy pulled open his bleary eyes an discovered the python he always knew he was.
  11. We can use your help if you're interested... by Anonymous Coward · · Score: 2, Interesting

    http://halo.willisburg.org/

    Check out the project, and drop us a line if it interests you.... we can always use another hand or two on the project.

    -Willis

    1. Re:We can use your help if you're interested... by Anonymous Coward · · Score: 0

      "The Gnu-HALO Project is an experimental Linux distribution..."

      Another one? Why bother? Meh.

    2. Re:We can use your help if you're interested... by Anonymous Coward · · Score: 2, Informative

      Yeah, there are several "experimental distros" out there, but how many of them are actually truly experimental?

      This project is building off of a microkernel architecture, working to introduce portable applications and user profiles across all *nix platforms, improve and make the UI more consistent and user friendly, design a *nix environment that even if it can be breached cannot be altered past a reboot, and lower system overhead significantly. This is not just "another one" with a couple minor UI tweaks. Genuine effort to make major changes is being done, and with the number of coders we have, we're never going to get a proper alpha release out the door without more help.

      Pan it if you like, your attempt at a scathing comment to belittle this project has done nothing but reaffirm that it's being done for the right reasons and demonstrate that it's more than just another wannabe in the OSS landscape.

    3. Re:We can use your help if you're interested... by nonsequitor · · Score: 1

      While you may need more programmers, you desperately need a technical writer. Reading your project main page made my brain hurt. Its okay to end a sentence. One thing you may want to try is reading it aloud. If you need another breath before you finish the sentence, then the sentence is too probably too long.

    4. Re:We can use your help if you're interested... by Anonymous Coward · · Score: 0

      There are no "experimental" Linux distributions. Linux isn't experimental. There are lots of experimental Operating Systems though, such as Plan9, or HURD, or Coyotos. Another Linux distribution isn't one of them. I didn't "pan" it, I'm just totally underwhelmed by it.

      Oh and if I had "panned" it, how does that in any way "reaffirm that it's being done for the right reasons and demonstrate that it's more than just another wannabe in the OSS landscape."? I've never even heard of it until just then, and I can name more obscure operating systems than you could shake a stick at. If you're scouting for contributors on Slashdot, of all places, that sort of indicates it can't be that well known, or interesting.

  12. Jargon? by misleb · · Score: 4, Insightful

    "but most are overloaded with jargon like upstream/downstream, nightly builds, and so forth"

    Um, this is pretty basic language used on real-world projects. You need to learn the "jargon" as well as actual programming. That's just the way it is. If this scares you, you may want to consider another line of work.

    -matthew

    --
    "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    1. Re:Jargon? by drinkypoo · · Score: 4, Informative

      Um, this is pretty basic language used on real-world projects. You need to learn the "jargon" as well as actual programming. That's just the way it is. If this scares you, you may want to consider another line of work.

      Yeah, this kind of thinking just kills me. I was having a similar conversation with my girlfriend a week or two ago about all the jargon in tech. Then she went off about some gardening thing and I couldn't understand at least one word in every damned sentence. There's always a body of specialized knowledge, that's why they call them skills. You're skilled, or you're unskilled, in any particular area. Nobody knows everything, if they did they would be god and frankly I don't particularly believe in the guy :)

      But the thing is that people often think that the jargon is for no good reason, like people are trying to obfuscate their terminology to leave others in more awe. But since computing has so many concepts for which there are no good analogues or metaphors, there will necessarily be a ton of jargon. Each of those words means something, and usually it breaks down to an acronym or initialization which actually means something. Most long-lived trades (like, say, gardening) have all kinds of jargon based on various words that no one uses any more, and so there's little to connect them to! So there's a tradeoff.

      Anyway, point being, machinists know those curly metal thingies that come off the "stock" they're "turning" is called a "chip", and software developers had bloody well better know what a "nightly build" is. Especially since it's not exactly a fucking secret, the answer is in the name. (I realize that you might have trouble with that one if English is not your first language, but from the comment it's clear that they should know what both of these words mean.)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Jargon? by Rakishi · · Score: 1

      Let me add that with search engines and wikipedia there is no excuse for not knowing the terminology except laziness.

      If you can't be bothered to spend an hour reading up on things then please find another profession for everyone's sake.

    3. Re:Jargon? by Anonymous Coward · · Score: 0

      But *I* know everything....

      Signed
      Uber-geek-fanboy

    4. Re:Jargon? by Anonymous Coward · · Score: 1, Insightful

      "If this scares you, you may want to consider another line of work."

      "...had bloody well better know what a "nightly build" is. Especially since it's not exactly a fucking secret..."

      That's another thing to look out for: passive agression. There's quite a lot of it on the Internet. There's about ten times as much in the F/OSS world. I'm not really sure why. People seem to get more possessive about things that they're giving away.

      It's also a big problem. With all the jargon about, the rule is "don't be afraid to ask". With all the agression, that becomes "be afraid, be very afraid". Fortunately, you can just leave the angry people alone and move on to something more fun. Just remember, they're lucky to have you. Probably. Unless you're an idiot or something.

    5. Re:Jargon? by drinkypoo · · Score: 1

      It's also a big problem. With all the jargon about, the rule is "don't be afraid to ask". With all the agression, that becomes "be afraid, be very afraid". Fortunately, you can just leave the angry people alone and move on to something more fun. Just remember, they're lucky to have you. Probably. Unless you're an idiot or something.

      I have been known to answer questions, even ones I think are stupid. I've spent hours on various irc channels doing it, just to give something back (and while waiting for someone who knows something to potentially help with my problem - it's a continuum.) But what I cannot respect is someone who doesn't even fucking try to find out the answers before they come begging for you to explain everything in the world to them.

      Besides, if you simply ask google to define: nightly build then it will do so. The result (from wikipedia) highlights another place to go for help, and so on. Not only do I abhor this false laziness (it's actually easier to ask the computer because then you don't have to deal with humans) but someone who needs their hand held to that extent is probably going to need their hand held constantly.

      I don't have time to hold hands - I'm not a crossing guard.

      I help those who help themselves :)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:Jargon? by Anonymous Coward · · Score: 0

      [i]there are no good analogues or metaphors, [/i]

      yes there are. Upstream is mommy and downstream is the spoiled kid. When the boy shits his pants he cries and mommy changes his diaper. Unless mommy and said kid are both older in which case mommy shits her pants, says nothing and when the kid smells something he changes her diaper.

    7. Re:Jargon? by Anonymous Coward · · Score: 0

      Let me add that with search engines and wikipedia there is no excuse for not knowing the terminology except laziness.

      Ok smartass, please use search engines and wikipedia to give us a good definition of 'upstream build' and 'downstream build'. Make sure you filter out the non-programming usage of 'downstream build'. Pretend you're a second year college student trying to figure this stuff out.

      I've been a sysadmin for 7 years and a release engineer for 3 years. I have never heard anyone of merit use the terms 'upstream build' and 'downstream build'.

      I've heard non-technical people say 'upstream build', but they had no frinking idea what they were talking about--- it was like the word 'automagically'.

    8. Re:Jargon? by einhverfr · · Score: 1

      But the thing is that people often think that the jargon is for no good reason, like people are trying to obfuscate their terminology to leave others in more awe. But since computing has so many concepts for which there are no good analogues or metaphors, there will necessarily be a ton of jargon. Each of those words means something, and usually it breaks down to an acronym or initialization which actually means something. Most long-lived trades (like, say, gardening) have all kinds of jargon based on various words that no one uses any more, and so there's little to connect them to! So there's a tradeoff.

      Nah, the real problem is that people have forgotten what the analogies really mean. Bandwidth is a plumbing-related analogy (the wider the band of a pipe, the more you can fit through it). A heap or a stack are pretty much great descriptions in *plain english* of what is logically going on.

      Anyway, point being, machinists know those curly metal thingies that come off the "stock" they're "turning" is called a "chip", and software developers had bloody well better know what a "nightly build" is. Especially since it's not exactly a fucking secret, the answer is in the name. (I realize that you might have trouble with that one if English is not your first language, but from the comment it's clear that they should know what both of these words mean.)

      WHo doesn't understand what it means to "build software?" Who doesn't understand what the word "nightly" means? Why is "nightly build" so hard to understand?

      I would talk about your gardening knowledge but it seems you have a long row to hoe in that regard. ;-)

      My point is-- these are standard English words which are *good* analogies when properly understood. Sometimes we need to slow down and remember that this is English and that it is just a matter of good analogies. Listeners too need to understand that this is just a set of good metaphores using plain English.
      --

      LedgerSMB: Open source Accounting/ERP
    9. Re:Jargon? by drinkypoo · · Score: 1

      My point is-- these are standard English words which are *good* analogies when properly understood. Sometimes we need to slow down and remember that this is English and that it is just a matter of good analogies. Listeners too need to understand that this is just a set of good metaphores using plain English.

      I didn't mean to imply that none of them were good metaphors. But there is no good analogy to describe the difference between a IEEE-1284 (did I get it right? is that parallel port? stupid numbered standards) and a SCSI bus; both are parallel buses, but they are good for different things and have very different characteristics. It's easy enough to come up with a metaphor for a bus, but you have to talk about actual technical differences when you want to talk about different kinds of bus.

      And beyond that, what does "scuzzy" mean? Okay, so it's actually SCSI, and it's "Small Computer Systems Interface". Well, what does that mean? How about FireWire? Is that a piece of wire that sets things on fire? You get the idea. You throw around the lingo and people look at you like the language you're speaking is not of this earth.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Jargon? by misleb · · Score: 2, Interesting

      That's another thing to look out for: passive agression. There's quite a lot of it on the Internet. There's about ten times as much in the F/OSS world. I'm not really sure why. People seem to get more possessive about things that they're giving away.


      But that's just it, your not "giving it away" in the w/FOSS software world. You're sharing your work. With commercial software there's an understanding that you don't really own your work. You're selling your time to a company. So of course F/OSS developers take things more personally. It *is* personal. And that is why it is so great.

      It's also a big problem. With all the jargon about, the rule is "don't be afraid to ask". With all the agression, that becomes "be afraid, be very afraid". Fortunately, you can just leave the angry people alone and move on to something more fun. Just remember, they're lucky to have you. Probably. Unless you're an idiot or something.


      Don't be "afraid" to ask. Just be careful to do some leg work on your own. It is very easy to get used to having your questions answered that you don't stop and do some basic research on eyour onw. It happens to me every once in a while. You start asking question and then you realize (or have someone politly or not so politely point it out) tht you could have just googled the answer or tried it. For example, you might ask a group "What if I typed this, woudl I get the right result?" Well, the simple thing to do would just be to try it and find out. I don't think the agression is really as common ans you make it sound. Sometime people (even smart people) ask dumb questions and waste people's time. And sometimes these people need to be told "Hey! RTFM!"

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    11. Re:Jargon? by Rakishi · · Score: 1
      I was more complaining about asking for the term "nightly build" but anyway.

      Ok smartass, please use search engines and wikipedia to give us a good definition of 'upstream build' and 'downstream build'. Make sure you filter out the non-programming usage of 'downstream build'. Pretend you're a second year college student trying to figure this stuff out. Given that I have no idea what the terms mean it's not hard to pretend.

      It seems that Debian people apparently use the terms upstream and downstream quite often. That leads to among other things this:
      http://lists.osuosl.org/pipermail/darcs-users/2006 -June/010045.html

      There are a few other references to conflicts and angry rants.

      Upstream seems to refer to the packaged release type builds, with all the README files and so on (what apt-get would give you say). Downstream refers to what developers do and code, new features and so on that isn't (yet) packaged and releasable.
    12. Re:Jargon? by zCyl · · Score: 1

      That's another thing to look out for: passive agression. There's quite a lot of it on the Internet. There's about ten times as much in the F/OSS world. I'm not really sure why. People seem to get more possessive about things that they're giving away.

      Because most of them are not giving it away. They're trading it for respect and recognition. And for some reason there are many people who think that they have to act "superior" or arrogantly for people to respect them. This usually doesn't work, however, but people still think it.
    13. Re:Jargon? by MMC+Monster · · Score: 2, Informative

      Don't know the Jargon? Wikipedia is your friend. You are lucky to work in the CS field. That portion of wikipedia is actually full of good entries

      --
      Help! I'm a slashdot refugee.
    14. Re:Jargon? by Anonymous Coward · · Score: 0

      And yes, I agree with you about 'nightly build'. It's pretty easy to figure out what that means-- figuring out the purpose and hazards of a 'nightly build' is may be even more confusing to a student.

      But for Jargon like 'upstream build' and 'downstream build', it's harder to figure out. Someone's email rant on a mailinglist is hardly an encyclopedic definition. There are dozens of such posts, and none of them really explain what the heck an upstream build is.

    15. Re:Jargon? by Anonymous Coward · · Score: 0

      umm... actually sir, FireWire, stands for IEE-1394.

      So that should clear it up for you.

      I-E-E-E-One-Three-Nine-Four is what it means.

    16. Re:Jargon? by Anonymous Coward · · Score: 0

      you must be god!!

    17. Re:Jargon? by misleb · · Score: 3, Insightful

      Let me add that with search engines and wikipedia there is no excuse for not knowing the terminology except laziness.


      Well, i dunno about that. Lack of genuine interest could also account for it. That is part of the reason why I suggested the possibility of a new line of work. It wasn't an insult. I wasn't suggesting that he's necessarily lazy or dumb.

      Any time I meet a graduate of CS, or in this case in their final year, who hasn't already gotten involved in an OSS project or even some significant personal project, I can't help but question their level of interest in the subject. Especially if they are a Linux user already. I mean, how can you NOT already be familiar with things like "nightly builds" as a linux user? Never been on a mailing list for a project you're interested in?? Come on! Most good programmers I know were writing code before they even got to college... some of them didn't even bother with a CS degree.

      Of course, this could also be part of a culture diffeernce between India and the US that I am not aware of. I'm open to that possibility.
      -matthew
      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    18. Re:Jargon? by mollymoo · · Score: 1

      Bandwidth is a plumbing-related analogy (the wider the band of a pipe, the more you can fit through it).

      I thought the term came from the width of the frequency band you require to carry that much information; it's not an analogy. Wikipedia agrees.

      --
      Chernobyl 'not a wildlife haven' - BBC News
    19. Re:Jargon? by misleb · · Score: 1

      Actually, it is the other way around. From the post you linked to (a very good description):

      "...maintaining packages means that you deal with an
      upstream component (the software that you download from a web page) and
      the downstream component (additions made by the "package maintainer"
      that make the pile of files a Debian package)."

      The upstream is the original source. A downstream build is what you get from apt-get. It is the original source with distribution specific patches applied.

      Anyway, this particular bit of "jargon" is somewhat specific to distribution package management and not so much OSS development in general. If you're working on the "upstream" version of a program (where most developers are), you're not likely to hear the term unless some Debian package maintainer is on the list trying to get his distribution patch applied to the "upstream" version. The more changes/patches a package maintainer can push "upstream", the less he has to do to prepare the package for each new release.

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    20. Re:Jargon? by Anonymous Coward · · Score: 0

      There's always a body of specialized knowledge, that's why they call them skills.

      If you want to know gardening jargon, you go to the library and get a book on gardening. If you want to know machinist jargon, you take a class in machining. The person asking here wants to know the equivalent for open-source project jargon. As he's pointed out, there are no courses for it where he lives. Maybe there's a book. (The "jargon file" has some of it, but it has more historical and social jargon, not project administration jargon.)

      and software developers had bloody well better know what a "nightly build" is. Especially since it's not exactly a fucking secret, the answer is in the name.

      Except it's not. I've worked on many projects, and none of their "nightly builds" was actually at "night". And many were for interpreted languages, so even if you knew "build" meant "run the compiler on some source code", that wouldn't have been true, either.

    21. Re:Jargon? by Anonymous Coward · · Score: 0

      Keep in mind that this is most likely a young person, with not much experience in anything. It is no wonder if things seem intimidating. The first conference I attended, I could hardly understand any of the presentations because they were full of acronyms I was unfamiliar with.

      Now with 10+ years of experience I know what I can and can not (although I still tend to surprise myself) do. For example, I know I can plunge into totally new company, new people, new project, new product, new programming language, new tools, new processes, ... (you get the idea) and know that even though it all seems overwhelming at first I will be making good contributions just a few weeks down the line.

    22. Re:Jargon? by Anonymous Coward · · Score: 0

      Right, because it's completely obvious to the layman how they arrived at the name FireWire from IEEE-1394. That's what the parent was getting at.

    23. Re:Jargon? by earlymon · · Score: 2, Insightful

      Geez, could you guys be a little less brutal?

      For one thing, English is one of the official languages in India - many of their governmental offices were set up by the British (apologies for any inaccuracies in this, my Indian friends explained it to me this way).

      For another, the guy is getting trained as best he knows how and is already intimidated by the jargon - advice to seek work elsewhere isn't fair. It's about contributing, not power.

      You were green once too, you know.

      --
      Pathological kinda promises Path + Logical - but instead, you get stuck with pathetic.
    24. Re:Jargon? by anirudh+vij · · Score: 1

      Not all colleges are the same.I assume that holds true even in the US.Hence expecting the "same" from every final year CS graduate is not meaningful.There is no cultural difference.We understand the binary language as good as its creators.

    25. Re:Jargon? by ralphdaugherty · · Score: 1

      "but most are overloaded with jargon like upstream/downstream, nightly builds, and so forth"

            Actually, the answer is put quotes around the phrase and put into Google and click on Google Search. If enough doesn't jump out at you where it's obvious that you can click and read enough to explain it to you, try what is "nightly builds" or other question phrases with it.

            You won't stop seeing new jargon. I still do this on a regular basis.

            Also, beyond jargon, I do the same thing for how to questions. If I asked what is the best way to join an open source project, the results will include threads like this one from /.

            I have lots of how to questions. The more you do, the more questions you have.

            But someone has already asked, and the answers are on the internet, waiting.

        rd

    26. Re:Jargon? by einhverfr · · Score: 1

      Width of a Plumbing band -> Width of a Frequency band -> internet bandwidth

      I suppose it depends on what "originally" means...

      --

      LedgerSMB: Open source Accounting/ERP
    27. Re:Jargon? by misleb · · Score: 1

      Not all colleges are the same.I assume that holds true even in the US.Hence expecting the "same" from every final year CS graduate is not meaningful.


      It has nothing to do with the particular college. I thought I made that clear. A lot of programmers don't even go to college... or at least not for CS. It has to do with an individual's interest in CS/IT. And if you're not into it before college.. or at least before your final year, then something is probably not right and I question your level of interest and/or commitment.

      There is no cultural difference.We understand the binary language as good as its creators.


      Talk about meaningless statements... What is the "binary language" and who are its creators? Is there a decimal language? A hexidecimal language?

      -matthew
      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    28. Re:Jargon? by einhverfr · · Score: 1

      Discounting brand names like Firewire (and Kleenex, etc)....

      You do have a point about standards names, but I would be willing to bet that that is not where most of the confusion lies. I.e. do I need an IEEE-1284 or an IEEE-1394 cable? Yes that is confusing and I will grant you that.

      Granted a universal serial bus is not as universal as the name implies (I can't use it to send my lunch from one point to another), but the name is a good, standard english description of what it is supposed to do in the context of computers.

      My main point is that nearly all of the words people need help with are basic English concepts. Yet because it sounds like jargon, they turn it off in their mind. This is an attitude rather than a comprehension issue. And hence it is corrected by showing people that the words like stack, pipe, heap, and queue are just analogies to standard English uses of the words.

      I have in the past taught computer usage course to senior citizens and I do teach what a stack or a heap is primarily because these things come up in error messages. I encourage everyone to remember that these are analogies based on common English uses of the term, and I have received a lot of positive feedback on these things.

      I.e. the issue is that when people think they can't understand they stop trying. This can be fixed easily enough.

      --

      LedgerSMB: Open source Accounting/ERP
    29. Re:Jargon? by misleb · · Score: 1

      Keep in mind that this is most likely a young person, with not much experience in anything.


      Is it too much to expect a person who is interested in programming to be doing it before college... or at least before their final year of college?

      Maybe it is too much to expect. It is just that all the good programmers I know where doing it before college. Especially the ones using Linux. How can you be interested in programming as a Linux user and NOT have already have contributed to something? Or at least spent time on mailing lists, or have checked out source from CVS/SVN. I dunno, I guess there is always room in the world for people who just pick something to major in in college and decide that is what they're going to do... even if they weren't into it before college. It is just that, again, all the really good programmers I know were doing it before college. But I guess it goes for most lines of work... a great chef was probably cooking long before culinary school. A great businessman was probably tinkering with business before school (selling lemonade or whatever). But not everyone is like that. Maybe I identify too closely with my career choice.

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    30. Re:Jargon? by Tathgata · · Score: 1

      "Of course, this could also be part of a culture diffeernce between India and the US that I am not aware of. I'm open to that possibility." You are spot on. I'm replying to your comment not as a defense for being unaware of basic things ... but to state how the relative the term basic is (thanks Einstein!). Desktop pcs started becoming a household object for us, the middleclass Bengalis not until 1999-2000. They were shipped with pirated copies of Windows 98, and we thought it was such an integral part the computer, that there could be no other option. Internet access was available only in cybercafes, whose charges were enough to keep you away from them, unless you were that much addicted to porn. Then we started getting account free dial up access - at quite a high charge to the pathetic service. I have two ubergeek friends, who told me about GNU/Linux, and I was hooked. We got access to an adsl connection only one and a half years back, and the world has become a saner place to live in ever since. Now /., *igg, mailing lists, blogs, irc channels, are coming together to give a pciture like never before. :) But few things/people remains unchanged - I have mentioned the state in our college which is true for the so many engineering colleges here. Unless you are fortunate enough to get into an IIT, a programming culture is absolutely non-exisitent.

    31. Re:Jargon? by anirudh+vij · · Score: 1

      """Talk about meaningless statements... What is the "binary language" and who are its creators? Is there a decimal language? A hexidecimal language?""" There is certainly a hexadecimal language ,if you'd look that up on google :) I was basically a pit pissed off at some of the stupid and ignorant comments made by americans on the topic of Indians in IT.Maybe i was wrong to post a reply to you.Understanding the "binary language" refers to that context.

    32. Re:Jargon? by Anonymous Coward · · Score: 0

      WTF is a plumbing band?

      Bandwidth comes from the width of the frequency band needed to transmit information via radio, TV etc.

  13. Skool... by Nezer · · Score: 4, Informative

    Perhaps, when you are finished with your bachelors at this school, you should consider a school with better professors for your masters.

    This is such a shame when so-called "professors" actually hinder your learning experience. I'm sure they think they have your best interests in mind. Right NOW .net, VB, etc might be where all the paying jobs are but this isn't going to last. Eventually something else will come along (even from Microsoft) that will make these skills obsolete. Professors are, IMHO, under obligation to ensure you get an education, not training.

    1. Re:Skool... by twitter · · Score: 1

      This is such a shame when so-called "professors" actually hinder your learning experience.

      It's strange that they don't teach them on GCC. The easiest way to make sure your students spend their time learning programming is to set them up with shell accounts and let them log on. This is the way I've seen it done.

      --

      Friends don't help friends install M$ junk.

    2. Re:Skool... by xgr3gx · · Score: 0

      I don't think you can go wrong with a C style language that is cross platform. C, C++, Perl, PHP, Python. They're pretty similar, even Java too, and they all run on NIX and Win.
      If you learned Perl, than changed jobs to a company uses mostly C, the transition shouldn't be that hard.

      --
      Shameless plug alert: Game server control panel
    3. Re:Skool... by Compholio · · Score: 2, Informative

      Professors are, IMHO, under obligation to ensure you get an education, not training.
      Our department actually states that one of three "missions" is to educate students in how to go out and figure things out for themselves. Some of our professors even suggest that this mission is the fundamental difference between a community college and a university - that community colleges attempt to "train" you to do a particular task while universities attempt to "educate" you in figuring out how to learn on your own.
    4. Re:Skool... by Rakishi · · Score: 1

      Until they need to debug because their program seg faults (so printfs don't help) and promptly try to kill you.

    5. Re:Skool... by bfields · · Score: 3, Insightful

      Yeah, absolutely, consider a graduate degree, and make sure you do a lot of research on the schools you consider to make sure they have people whose interests are closer to your own. Google is your friend here.

      Might also be worth taking a harder look at your own school--are you sure there isn't an odd corner of some department someplace you hadn't previously noticed that's a hotbed of linux hackers? And if you're sure there's not, consider finding a meeting place, printing up some flyers, and starting something--maybe you'll be surprised by who comes out of the woodwork.

      Other advice:

      • Run linux, if you don't already! It's easier to understand and care about the software that you use daily.
      • Work on documentation for some project. Even a lot of the most succesful projects are desperately in need of better documentation, so they'll be really happy to have you. And it's an easy way to get to know the project--both the technical details and the various personalities and projects. You'll probably at least learn how to build it, contribute patches, etc.
      • Find a bug (if you've done the above, you've probably run across one or two). The ideal bug would be something easy to reproduce.
      • Or find some interesting new feature you really want, and work on that.
      • There's a lot of technical stuff to learn (C, bash, various other languages, autotools (yipes), gcc, the basic posix api's, etc., etc.)--don't try to figure it out all at once. Figure out what you need to for a given project.
      • Document what you learn as you go along, and spend some time helping out newbies--if nothing else, it's a good way to make sure you really understand things yourself.
    6. Re:Skool... by i.r.id10t · · Score: 3, Funny

      Crap, I'm doing it wrong! I teach hte only Linux class here at the Comm College I work at (in another department) as an adjunct, adn I spend time with my students showing them how to use man pages, search google effectively, read the "How to Ask Smart Questions" doc by ESR, etc.... Any other tips on how I can change my ways?

      --
      Don't blame me, I voted for Kodos
    7. Re:Skool... by CaymanIslandCarpedie · · Score: 1

      Any other tips on how I can change my ways?

      Yes, encourage your students to preview their comments before posting as to avoid lots of "hte" and "adn"s. ;-)

      --
      "reality has a well-known liberal bias" - Steven Colbert
    8. Re:Skool... by Anonymous Coward · · Score: 1, Insightful

      He was probably just typing too fast, because he was so irritated by the dumbass parent post.

    9. Re:Skool... by SatanicPuppy · · Score: 1

      Shrug. I learned on java, but it was java on the command line. Had to have a basic working knowledge of unix (Solaris) to do anything; the few projects I had in C used cc, rather than gcc, not that there is a whole lot of difference there.

      Having to work from the command line is something I think of as hugely valuable in programming...Helped me out a fricking ton with Java, I tell you, because working with java classpaths and such is weird enough that having to actually type it out will teach you so much more than having Eclipse or Studio One work them out for you automagically. Moving on later to work with apps like Tomcat...You've got to know how to manipulate the raw commands.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    10. Re:Skool... by Dan+Ost · · Score: 1

      Flush your buffers and it won't matter if the program seg faults.

      Alternatively, load the core dump into gdb (I prefer the printf's though).

      --

      *sigh* back to work...
    11. Re:Skool... by bfields · · Score: 2, Insightful

      Find a bug (if you've done the above, you've probably run across one or two). The ideal bug would be something easy to reproduce.

      Oh, and by the way, if you're not yet equipped to completely understand and fix the bug, you can still be extremely helpful (and learn a lot) just by reporting what you find out about the bug to the mailing list. Steps to reproduce it, partial results of any debugging, etc.--a lot of that grunt work can help you understand the project, and can provide just what the other developers need to finally nail the problem.

    12. Re:Skool... by twitter · · Score: 1

      Until they need to debug because their program seg faults (so printfs don't help) and promptly try to kill you.

      So they can use gdb or kgdb. The pain of not being able to x forward easily will drive them to a better platform, or to master gdb from the command line.

      --

      Friends don't help friends install M$ junk.

    13. Re:Skool... by PitaBred · · Score: 1

      Put an endline character on all your printf strings and it'll flush it. At least, it used to... I haven't needed it lately ;)

    14. Re:Skool... by Anonymous Coward · · Score: 0

      He's going to a school in India, not Amerika. They are primarily aimed at giving someone a basis in a trade. The most useful thing to know is VB, ASP, .net, et cetera over there. That, and how to fill out an H1-B application. Here in Amerika, you learn many things that employers believe cannot be applied to your job duties, that's why they don't want to hire you.

    15. Re:Skool... by Anonymous Coward · · Score: 0

      This is such a shame when so-called "professors" actually hinder your learning experience.
      There's a lot of ranting around here (and other places too) about how Indian programmers produce such dismal results. Well, here we see why -- schools like this.
    16. Re:Skool... by Anonymous Coward · · Score: 0

      He never got the training on how to do spell checking.

    17. Re:Skool... by Compholio · · Score: 1

      I apologize for having offending you, I have no experience with the community college experience and therefore am only able to relay what I have been told. In that vein, I did my best to convey a sense of skepticism by placing certain key words in quotations and making the statement in an incredulous manner ("Some of our professors even suggest..."). The point of the post was that some institutions, and departments, take educating their students in how to learn very seriously, sometimes codifying such intentions and making the policy well-known. Please forgive my inability to convey this message by way of an example.

    18. Re:Skool... by mokie01 · · Score: 1

      Two score and 4 years ago as an undergraduate EE at Drexel Inst of Tech (now Drexel U.)in my first ee course we had to take two exams and a final. Each exam consisted of 3 questions. If you had attended class and done the homework, the first question was easy or a least straight forward. The second was a bear. And the third was at best a bitch. Few garnered any points on it. In the class when the papers were handed back, one of the other students asked our instructor (later to become a dearly loved prof). "Mr Kaplan, why haven't we been taught to solve the third question?" His response, which has guided me for a long time now, was "you have been provided the tools to solve the problem, I just showed you that it could be done with your knowledge. You are not here to learn how to solve the known problems, you are here to learn how to solve the unknown." Again, thank you Mr. Kaplan!

    19. Re:Skool... by geniusj · · Score: 1

      Yes it would. Syntax would be a small part of the battle of jumping from any scripting language to C. Memory management, data structures, pointers, etc.

    20. Re:Skool... by GNUALMAFUERTE · · Score: 1

      Well, let me tell you, the US is the first country that turned education into a commerce, a service that creates good employees for fortune-500 companys.

      How much does a degree cost in the US? Really? Well, here in Argentina education is 100% FREE, the state gives Universities their own budget, and the University controlls it. They are Independent from the state, and from political or commercial influencies. They democractically choose their own authorities, and they are ruled by ex-students, students, and profesors. That's it, no government, private, or commercial intervention.

      There are also private Universities, lots, both cheap and very expensive ones, and you know what? The public University has a much higher level than any private one. Even when we have a limited budget, our Universities are something to be really proud off, they give everyone equal chances, and some of them are very recognized worldwide, for example, The UBA.

      About the H1B applications, let me tell you, I (And i'm not alone) would rather die than leave my country, and specially, I would never work in, live in , or do anything else that contributes with the USA.

      If people in certain countries find the need to leave the place they were born, to go to be treated like shit in the empire that fucked up their country, is because YOU don't leave them much choice. The economical and political situations that lead to cheap outsourcing and massive inmigration into the USA has been shaped by the USA and their allies over the course of the century, so stop complaining. You have the fault.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    21. Re:Skool... by Anonymous Coward · · Score: 0

      I think you're confusing the US for a former colonial power. Also I think you need to cut the caffeine down a bit.

    22. Re:Skool... by GNUALMAFUERTE · · Score: 1

      The US wasn't the first ... but i didn't had the wrong country. OTH, you did had the wrong alkaloid.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
  14. Step #1, become familiar with the software by pjwalen · · Score: 4, Informative

    The advice you have gotten thus far is good. To get your foot in the door, I would suggest you find a project you find personally appealing in the open-source community. Become familiar with its use and operation. The next step would be to become familiar with CVS or Subversion (SVN). Seeing as you are coming from a more Microsoft background you will be familiar with source safe (most likely), CVS and subversion are simply open source, source control system. You will want to become familiar with their basic use.

    Once you have accomplished those basic tasks, download the source of your new found project to your PC with your source control client (each project will have these procedures documented on their web pages, somewhere). Then become familiar with their architecture. Read through the routines, and their data structures. Once you have a basic understanding of the projects source, you will want to join mailing lists, look at their bug tracking software, and forums. Track down bugs in the projects software and solve them. Using your knowledge of CVS and/or SVN (and hopefully the diff command), you will be able to produce usable patches, or revisions to code that you can submit to primary developers.

    Once you become a valued member of the bug tracking and eliminating community, you may want to begin tackling the projects TODO list for new releases. Adding new features to the product. The rest of the terms you bring up (and many that you didn't) will become more familiar to you as you become more involved in a projects build process.

    1. Re:Step #1, become familiar with the software by bvankuik · · Score: 1

      Skip CVS and just start with Subversion. If only because of the jokes in the manual: 'with a little exercise, merging becomes as easy as falling of a bike.'

    2. Re:Step #1, become familiar with the software by yesudeep · · Score: 1

      I do agree with most of what you have written, but I would like to
      add my 2 cents to the picture.

      I wish we could simply ignore CVS and Subversion altogether.
      If you are learning about these tools, learn them only to check code
      out of repositories and to acquire a basic working knowledge,
      but avoid depending on centralized SCMs as much as possible.
      If you would like something that fits the human way of working,
      use a decentralized or distributed SCM like git, mercurial, or
      even bazaar-ng.

      A good side-effect of this is that you are then free to do whatever you
      wish to with the code you obtain. If what you do grows into something good
      you can easily ask people to pull/merge from you. This helps you get
      involved into FOSS development without the "elitist" politics to a
      certain extent while also giving you enough opportunity to learn
      and contribute.

      Be prepared to throw away code you think is excellent and also
      to face criticism and rejection. This is all a good learning experience.

      Communication is one important factor a good programmer never ignores.
      If you have a question to ask, *ask* it and be specific.
      Do not shy away even if the question sounds too simple or stupid.
      Before sending a patch or fix, always ask the developers for their
      opinions and whether they think a patch is really necessary.
      I have had my patches rejected even after communicating well.
      Some patches are too trivial to be accepted. Some are massive and
      unacceptable. Keep the right balance.

      How many times have you used or written software and wished there was some
      helpful documentation available for it? Read and write documentation
      so your code doesn't look like a big ball of spaghetti with no real purpose.

      Internationalization is another area you can contribute to.
      People like viewing their applications in their native languages,
      and trust me, there are far too many people that do not speak
      English than those that do. So "I will speak your native language as long
      as it is English" is definitely not the correct approach to writing
      software.

      Graphics are required everywhere. Without those little icons,
      you would find it difficult to identify your favorite applications,
      for instance. If you're good at creating them, share them!

      There are several areas of FOSS that you can contribute to, not
      just code. Be polite, helpful, keep your eyes and ears open,
      and don't be rigid with your opinions. Opinions can change
      unless ego comes into the picture--you just need to be convincing
      enough.

      Work with the team. And most importantly, be humble.
      We're all humans with a cause.

      Regards,
      Yesudeep.

  15. Scratch the itch by Anonymous Coward · · Score: 0

    That's it basically. There's always politics and in-fighting on larger teams so if you're looking to join a F/OSS project for the sake of it you risk disillusionment. If you narrow the field to fixing something that benefits you, you've narrowed the field and increased the chance your patch will be good.

    All said there's plenty of work that needs doing, if you take a bug from a project tracker the developers may guide you through the process. Some Mozilla maintainers can be really good at that.

    Good luck.

  16. 2 things, including: that's not computer science by Oo.et.oO · · Score: 1

    1: that's not computer science. that's software, software engineering (maybe), programming.
    computer science is the theory and history of computer programming from an unbiased (read: non-implementation point of view). so, objects, data structures, logic flow, operating system theory.

    2: you went to the wrong school. why did you stay there for so long?

    these two problems are easily corrected with time and effort. it sounds like you are interested, that is step one. step two would be jumping in. you use gnu/linux, so you know what has to be "fixed" from your point of view. find an easy one. get the code, fix it and ask for help if need be and you have exhausted all the effort in obtaining your own answers.

    good luck!

  17. Something that interests you by OriginalArlen · · Score: 2, Informative
    Find something that you find really interesting. That could be a specific kind of software (media players, CRM systems...), or particular functional areas - say, printing, bookmarks, inter-component messaging frameworks...) Or just a particular bit of software you get interested in because you find yourself using it a lot, and are *constantly* getting annoyed by that *one* missing option to use an LDAP backend, which would make it perfect for you... I've got involved (very very slightly) with a web browser, and some network security stuff, because I was using them anyway (or working in the general area in some way); I was also consciously looking out for some way to contribute something - you take the opportunities you find.

    Or some other type of abstract class of programming task. Writing documentation is also a good way to learn - there's always a need for good docs, and you have to get to know the software really well to write them.

    Pull the current source. Take a poke around. Grep for comments. Look at the changelogs. Look at what's being worked on, where the problems are, how much activity is going on, how many contributors there have been. Scratch your itch!

    And if you can't find anything you actually *want* to do, why, then you can't do better than get some good experience on the wonderful Mozilla projects! Head over to https://bugzilla.mozilla.org/, pick an interesting open bug, and go to it!

    Good luck, and have the appropriate amount of fun :)

    --

    Everything I needed to know about life, I learnt from Blake's Seven
    1. Re:Something that interests you by kie · · Score: 1

      For a small - medium size project here is one idea:

      The equivalent of DTXMania (a simulators to play Drummania) for Linux.
      http://www.gdamania.net/

      I don't think that there is any linux equivalent and I've been unable to get
      dtxmania or the other simulators to work with wine on debian etch.

      --
      living the dream
    2. Re:Something that interests you by drinkypoo · · Score: 3, Informative

      And if you can't find anything you actually *want* to do, why, then you can't do better than get some good experience on the wonderful Mozilla projects! Head over to https://bugzilla.mozilla.org/, pick an interesting open bug, and go to it!

      With Mozilla, or many other large projects, it's a better idea to go look at the build instructions, and once you can understand and follow them and get a working executable out, THEN try messing with the code. Mozilla projects can be very difficult to get compiled (there are lengthy guides on the subject) and being able to actually test your code is an important first step.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Something that interests you by Myen · · Score: 1

      With Mozilla, you might want to look at good first bugs for things that might be easier for someone just starting. As the sibling says though, you want to build first (which can be a challenge in itself in the Mozilla case, sadly).

      Mozilla-specific again - you might want to consider starting by writing an extension. Helps you learn the same things, but no build system hurdle and no need to wait for somebody for reviews before end-users can see it.

  18. Test it by Anonymous Coward · · Score: 0

    You could try testing the program. Then when you find a bug, try to figure out where in the code it is and then fix it. Then submit the fix. It's a great fast way to learn the program and to contribute something unique.

  19. Cisco by spungo · · Score: 0, Flamebait

    I hear there's plenty of positions for open-source development at firms like TiVo, Cisco, et al... but they mostly involve bending over.

  20. Start with documentation by Anonymous Coward · · Score: 1, Informative

    Find a project you want to help with, and believe you can learn enough to help with.

    Next teach yourself what things do, or get help from the devs, and take notes. Turn those notes into documentation, either as comments in the code, or readmes/howtos/etc. This has several advantages:

    #1 - Documentation in most cases (not just open source) tends to be shoddy, this helps out a lot for the end users and the other devs.
    #2 - You've learned a lot more about the project/software, and can be more help to the project at this point.

  21. Pick an interest and run with it by igotmybfg · · Score: 3, Insightful

    I find that I work best (hardest, smartest, and longest) on projects that are personally interesting to me; I suspect that you may find the same is true for you.

  22. find a project that you like by Comsn · · Score: 1

    look at the wishlist, read the code and implement the wish.

    then send patch.

    thats all there is to 'joining' an open source project.

  23. Just listen. by Anonymous Coward · · Score: 0

    Join a mailing list or IRC channel and just listen, and read everything posted, for as long as you need. Eventually you will start to understand how the development process works, how patches are reviewed, what sorts of things are recurring problems that might need to get fixed, who to talk to about various aspects of the project, etc.\

  24. Just Do It by Doc+Ruby · · Score: 1

    Pick one that looks worth completing, with people who look worth working with/for, and just contribute some code. Or test something and contribute your bug reports - or patches.

    If you don't like what happens, then pick another. You'll find one you like, maybe on the first try.

    There's no penalty for picking the wrong one. But there is a penalty for not picking any: missing the experience.

    --

    --
    make install -not war

  25. Skills first by Anonymous Coward · · Score: 4, Insightful

    If you want to advance your programming, joining an open source project is not a very good first step. You see, projects out there mostly are written to solve real-world problems. Real-world problems are not very interesting. The interesting ones are the hardest to contribute anyway, due to steep learning curves and huge code bases.

    I'd advise you to work on programming problems first. Things like combinatorial search, dynamic programming etc.. Once you master common algorithms, you can be an effective contributor. Open source project admins are probably not interested in teaching a newbie about programming. They just want someone to work with and get some job done.

    Once you're confident in your programming, you can learn any API or language easily. Trying to understand existing code is much harder than writing your own, especially if you lack experience. Contrary to popular advice I'd say, don't bother yourself wrestling with already poorly written code. Make yourself capable of writing the thing yourself thru problem solving and then contribute to a project if you feel like it.

    Good luck

    1. Re:Skills first by Anonymous Coward · · Score: 0

      It's true you have study the fundamentals, but I've always learned much faster when I have real-world problem to solve.

      I think it's like learning a game or sport; the fundamentals are boring until you need them to solve your problem.

  26. Start with documentation by Anonymous Coward · · Score: 1, Informative

    Find a project that needs developer documentation. That could include documenting build/test processes. That'll force you to read lots of code and get a feel for things. It sounds like you don't have much experience with the tools and processes that do the real work - if you've only worked with MS tools, much of that stuff is hidden behind pretty interfaces. Start by learning how makefiles work; learn a little bit of shell programming; try to learn a bit about the various tools commonly used in makefiles, e.g. sed, grep, etc. You should be able to pick up on a bunch of the jargon as you proceed; the Jargon File can be helpful.

    Caveat: Java projects tend to use different build techniques; Python has it's own secret handshakes, etc. So once you learn the basics you'll need to pick a path to follow.

    IOW, I wouldn't worry about making technical contributions until you've acquired a certain level of skill with the tools. Even bug-hunting can involve a lot of technical expertise.

  27. I did this. by Aladrin · · Score: 2, Insightful

    Not long ago, I did this. I didn't set out to 'join an open source project', but that's what ended up happening.

    I found a piece of software I was -very- interested in, felt I could help the team, and started talking to them. It wasn't long before I felt I had something to contribute, and they gave me SVN access. I did, they really liked it, and I was part of the team.

    The key is that you have to -really- want to be a part of -that project-. If the goal is simply 'join any project' then you are going to hate it and the team will probably get quite upset with you for either contributing crap or not contributing much at all, and simply causing ruckus on the forums.

    Again, don't join a project unless you really care about the project itself.

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  28. Join mine by Bluesman · · Score: 0

    Link's up above. We could use an Indian translation, and I'd be happy to help you along as time would allow, although my time is limited lately. You'd also have the opportunity to learn C++, C, BASIC, Lisp, Flex/Bison, and Qt, as we use them all, and you'd get pretty good at writing a compiler and interpreter.

    --
    If moderation could change anything, it would be illegal.
  29. Patches. by serviscope_minor · · Score: 1

    It depends on the projects. I have made significant contributions to one and not joined in any official capacity. I hand out on the mailing list and exchange patches with other users and the developers.

    Other projects, I have been invited to join based on my contributions (ie patches).

    Others, I submitted small patches and neither wanted to, nor was invited to join.

    So, yes. Submit patches.

    If you can find a piece of software that you like, but you want to improve, then you can make a more significant contribution, by coding up something big for the project.

    In the end, its hit and miss whether you join, and it often doesn't matter. You can still keep contributing either way.

    That said, since you have only limited experience with C and C++, you will have to improve your skills (by writing patches for instance), before you will be good enough to make a contribution which is big enough.

    In case you haven't realised my message yet, "patches" is the way to go.

    Finally, when I did start getting invitations to join, the developers were all helpful with my n00bishness about version control, regular builds and so on.

    --
    SJW n. One who posts facts.
  30. Find an itch by linuxwrangler · · Score: 4, Insightful

    First, find "an itch to scratch". What excites you? Databases? Web development? Audio processing? Image editing? The first step is to find a project that you would be interested in using.

    Second, read, read, read. Lurk in the mailing lists, IRC, etc. Get a feel for how the project is maintained and the tone of the developers and users. Don't be one of those who shows up new on the scene and suggests ideas that have been repeatedly rejected for the project or patches that break things or show no understanding of the project design and goals. Try to determine if you would "fit in" with the group.

    Third, use the program and dig through the code till you have a good understanding of it. You will learn a lot...including whether or not you want to find a different project. :)

    Fourth, if you have found that exciting project and the code or people haven't scared you away, find out where you can contribute. It's not just about coding. Large projects have people contributing to code, documentation, public-relations, mail-list management, answering questions on the mailing lists, and so on. If you are really focused on programming, peruse the bug list and find some solutions. You will build your reputation by repeated posting of quality patches.

    Fifth, be humble. There's nothing wrong with "I'm new to this project and have been digging through and learning the code. I think this patch might fix bug #1138? Is there something I have overlooked?". It's far better than "Hey guys - here's how to fix that dumb bug..." You could be right, but it's more likely you will find 15 developers jumping into the discussion to tell you what you forgot to take into account with your stupid suggestion. That will set your reputation way back.

    On the other hand, if you are just looking for something to jump into so it can go on your resume, forget it. You won't have the interest and passion to stick around long enough to be useful.

    --

    ~~~~~~~
    "You are not remembered for doing what is expected of you." - Atul Chitnis
    1. Re:Find an itch by Phil06 · · Score: 0

      Pick something with a cool name. Only look for cutting edge type projects, blow off the device driver and mundane bug fix stuff. Better yet, grab some random buzzwords and start you own project, like Ajax on Rails.

      --
      "...and yet, I blame society" Duke - Repo Man
    2. Re:Find an itch by Richard_J_N · · Score: 1

      One more thing: I suggest you aim for a small project. It tends to be easier to get involved, and since developers are more scarce, you'll be able to make more of a difference. Also, the source tends to be a bit smaller, so it's easier to understand. Big projects (eg kernel, kde, firefox, OOo) are still very welcoming to developers, but you may find it harder to get started.

      Also, consider a few other topics, eg: Distributions (interface stuff for Ubuntu, DSL enhancements), VoIP (linphone/ekiga), embedded (openzaurus), emulation (Qemu) or just write some useful shell-scripts. Documentation writing is good too!

    3. Re:Find an itch by Anonymous Coward · · Score: 0

      I'm not sure about this. I used to think that was the case until I did try my best to join a project like this. In my case, KDE was the project I was the most interested in. But KDE is abstract, it's actually a collection of hundreds of projects. The various linux/unix websites always talk about KDE (that could be gnome, oo.o, or the kernel, if you prefer, btw) as having HUNDREDS (if not thousands) of developers, being meritocracy-based and everything... Which is true. BUT, it can be broken down into very specific pieces. Some pieces you shouldn't touch as a newbie (the core/security stuff) but when you break stuff down, you realize that most apps are developped by very small teams, if not lone hackers. So even for the big big projects (KDE, ooo, firefox, kernel...) there are sub-projects you can take a part in. In the example of KDE, I was really surprised to find out so many of the "mission-critical" parts are done by one or two guys... and in most case they *will* welcome any help (but wont blindly accept patches...)

  31. Docs by Anonymous Coward · · Score: 0

    I know that there are a lot of projects that are lacking in documentation. If you're not ready to contribute code, contributing to the documentation efforts could still be a worthwhile endevour.

  32. passion and community by Anonymous Coward · · Score: 0

    I would suggest looking into how the community interacts, and also what you feel passionate about.

    For example, Joel de Guzman, of Spirit++/Boost fame, has engendered a community which is generally kind, considerate, helpful, *and* highly skilled programmers. In 4+ years of dealings with the Spirit++ community I think I've only seen one RTFM posts. There are other groups I have had the displeasure of reading those kinds of comments on a weekly basis, and they still do not answer the questions or give sufficient pointers...

    Last, follow your bliss. The only way you are really going to learn is to do. The more you do, the better you can become. When you love the programming it is not work but a joy, and you will have no regrets in the end.

  33. Find a project you're interested in by Dracos · · Score: 1

    Start by looking for a solution to a problem you have. Chances are, someone's already working on it. Install the code and evaluate it. Join their mail lists, hang out in IRC. Get to know the other developers as well as the code, and of course their tools and processes. Submit some patches. If your efforts have merit, eventually you'll be brought into the fold.

    Starting with a project you can personally use or have an interest in gives you a reason to participate. Picking a project at random won't end up being as rewarding.

    In short, all you have to do is participate.

    Also, almost all projects have staff needs beyond coders. If anyone reading this thread has ever hesitated to join a project because you don't write code, think again. Documentation, testing, interface design, infrastructure maintenance, graphics, even marketing, are all skills that get sidelined/minimalized sometimes. If you can do something, do it well, and make the project better, everyone benefits.

    (Shameless plug in sig)

  34. an easy place to start by Anonymous Coward · · Score: 2, Informative

    is a Best Buy or a Barnes 'n Noble. you're going to need to know the tools and procedures of open source development before you can get anything done or changes submitted.

    0. Install an Open Source operating system with development tools, such as [Net,Free,Open]BSD or Linux
    1. Learn CVS [http://cvsbook.red-bean.com/, http://www.cs.kent.ac.uk/systems/cvs-howto.html%5D .
    2. Learn the basics of the GNU C Compiler [http://www.faqs.org/docs/learnc/].
    3. Learn Automake, Autoconf and Libtool [http://sources.redhat.com/autobook/autobook/autob ook.html, http://autotoolset.sourceforge.net/tutorial.html, http://www.amazon.com/Autoconf-Automake-Libtool-Ga ry-Vaughan/dp/1578701902, http://www.st-andrews.ac.uk/~iam/docs/tutorial.htm l%5D.
    4. Download a tarball of some source code and compile it, learn how to edit Makefiles, etc.
    5. Check out the source code of the same application from CVS, mess around with it.

    1. Re:an easy place to start by brteag00 · · Score: 2, Insightful

      Meh ... I'm not so sure I agree. I don't think the best way to learn CVS is to read a book about CVS, but rather to puzzle through downloading a source tree, making a few changes, creating a diff, etc. There's no better incentive to learn how to use a tool than having a job you need to get done with it.

      I remember the first time I had to extract a .tar.gz archive ... the man page had me completely lost, and the GNU info pages weren't any better. But darn it, I had to get the archive open!

      Certainly, there are a few exceptions (sendmail? autoconf?) where a good reference text makes a huge difference. But for "getting involved in Open Source development", I don't think B&N is the place to start.

  35. Google Summer of Code by jestill · · Score: 3, Informative

    I am doing a Google Summer of Code project this summer. I have found it a really great way to join an existing Open Source project. This may be too late for you since you are in your last year of school, but other folks should check it out.

    --
    "Asleep at the switch? I wasn't asleep, I was drunk!" -- Homer
  36. Jargon by makapuf · · Score: 1

    Don't let this disturb you, the jargon is quite simple and you'll get accustomed to it. Besides, there's always google and let me point you to a famous site (mostly folklore/trivia, but it might light a bulb sometimes in reading mailing lists : the jargon file by eric s raymond : glossary is there : http://catb.org/esr/jargon/html/go01.html )

  37. Something that interests you by rlp · · Score: 1

    As a bunch of people said, create an account and get on source forge. You can work as part of a team OR you can develop your own project. If you choose the latter, pick something that interests you. Think of an application that you'd like to have. A tool that you could use. A software library that you wish was available. Then develop it and put it on source forge. You'll learn a lot and it will be a lot more enjoyable if it's something that you have a real interest in.

    --
    [Insert pithy quote here]
  38. Start at a Linux Forum by Anonymous Coward · · Score: 0

    Not all open source projects are Linux related, but I think some of the lowest learning curves to getting into open source development and learning the jargon are found on Linux forums such as the Gentoo Forums or the Ubuntu Forums. You don't have to deal with mailing list etiquitte and you don't have to learn how IRC works, but you can get exposed to a lot of open source projects, particularly the popular ones, which tend to have better documentation and are more newbie friendly.

  39. My jargon word by FuzzyDaddy · · Score: 1

    The liquid that comes out of a landfill is called leachate. Now that's a good word to know.

    --
    It's not wasting time, I'm educating myself.
    1. Re:My jargon word by Hoi+Polloi · · Score: 3, Funny

      And if you cook it down and carmelize it it becomes "dulce de leachate". Yum!

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
  40. Learning about OSS projects by twasserman · · Score: 2, Informative

    Lots of great suggestions already. You might also want to read a good book on best practices for open source development projects. Karl Fogel's "Producing Open Source Software" is excellent and available in print form or free online here.

  41. Start with what you know, and with what you like by j1mc · · Score: 2, Insightful
    If you're using a free or open source piece of software that's really the place to start - you shouldn't have to google very much to find out information about a project that you could join up with, just look at what you use. Look for something that wouldn't be too overwhelming for you to start out with.

    Once you have that, the best way to find out about what's going on from there is to join the developer mailing list for the project, and to check out their IRC channel. Usually it's best to lurk for a bit before just jumping in stating that you'll do X, Y, and Z for them - that way you get a sense for the current status of the project and what they need.

    A couple of other tips that might be helpful:
    - Take a look at the mailing list archives from the past few months and look for threads that interest you.
    - Take some time to report a few bugs in the program, or to try and triage a bug that someone else has reported. - Join an IRC "meeting" of a group that you're interested in to see what they are doing and what their goals are

    As a rule of thumb, most projects will be glad to have you if you're polite and actually do some work. If you are doing some work, and are polite, and they aren't happy to have you . . . Feel free to move elsewhere. :)

  42. Re:2 things, including: that's not computer scienc by vigmeister · · Score: 1

    From the perspective of an Indian student, Computer Science is often confused with Software Engineering.

    Computer Science is a B.Sc program that lasts 3 years in India. This encompasses roughly half of what they teach in BS programs in the US.

    The B.Tech in Comp Science program is a 4 year program and teaches you Software Engineering with a heavy focus on programming. This is usually what almost everyone who gets into an engineering program wants to do and if you are in the top 10% of the applicants who got in, you are considered a fool if you pick something 'lower' like Mech. Engg :)

    Cheers!

    --
    Atheist: Buddhist in a Prius
  43. Re:2 things, including: that's not computer scienc by Anonymous Coward · · Score: 0

    Computer Science is the Science of Computation.... We use computers and programming languge to experement in this science. You can be an expert Computer Sciencetist without programming (It does help though) Concepts such as Objects, Data Sctructures, Logic Flows, OS Therory... Are concepts learned from the science of computation.

    Secondly I am glad Indea is teaching bad computer science. I already make good money when companies realize they get a better job done from american workers.

  44. Sadly... by jd · · Score: 4, Informative
    I cannot recommend a good place for your lecturers and professors to undergo brain transplants. First off, any lecturer that recommends a specific language is violating the first rule of computing - EVERYTHING is transitory, nothing lasts forever. Their lecturers probably swore by Cobol or PL/I. Only a total idiot tells students that they should adhere to a solution rather than a methodology. Solutions come and go, but the same methodology will apply to them all and make learning the specifics a piece of cake.

    (Hell, anyone who lived through the .com fiasco saw what happened to Java programmers immediately before and immediately after. Java's a good solution to a number of problems, but the market became glutted when the bubble burst, making it a totally unmarketable language in the immediate aftermath.)

    People have noted Sourceforge, and that is definitely a good place to go. If you're only "allowed" to add a few lines, then I'd also recommend investigating Unmaintained Free Software for projects that probably need relatively little work but which aren't receiving any attention at all. One of the benefits of going for an orphaned project is that you have much more freedom on where to take things. You are also, by definition, not subject to jargon on chat groups or mailing lists as there aren't any. It also gives you a chance to test the full range of computer science skills - analyzing, designing, implementing and testing - in a way a current project generally doesn't allow for. You'd be exercising one whole revolution of the software lifecycle.

    The benefits of an existing project cannot be overstated, though. If there are existing coders, there are more pairs of eyes looking at what you're doing. There are people to ask for help/advice. You're less likely to be overwhelmed. There's also a touch more "street credibility" attached to being associated with a project that's better known, which won't hurt your employment prospects in the least.

    If this is a final-year project, they'd better damn well want something non-trivial or I will most certainly have stern words with them. Not that my words are worth anything, I just write a lot of them. A half-way point between the full lifecycle (which makes for a wonderful final-year project report, which is ultimately all that matters) and working on an existing project is to pick something that accepts plug-ins or modules of some kind. There may be abandoned projects of that kind you can borrow from, but it's also stuff that's just simple enough that writing from scratch isn't going to kill you.

    Hope that gives you some ideas.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Sadly... by Anonymous Coward · · Score: 0


            "first rule of computing - EVERYTHING is transitory, nothing lasts forever"

      Except Lisp ;-) Been around since almost the beginning, and is still waiting for everyone else to catch up. (Except in the graphical library department, admittedly.)

    2. Re:Sadly... by jd · · Score: 1

      Well, it's much harder to find LISP processors these days - early LISP implementations were hardware and the better historic designs would likely still be favourable against modern software versions. Having said that, LISP is an amazing language and is probably the closest to an exception to that rule that you are likely to encounter.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    3. Re:Sadly... by Anonymous Coward · · Score: 0

      Lisp processors were developed in the 1970's and commercialized in the 1980's. They disappeared because the market was too small for them to compete with mainstream computer & processor manufacturers - by the late 1980's, lisp systems on mainstream computers were much faster. Anyhow, at the hardware level their only difference to mainstream processors were native support for some garbage collector tricks, and type dispatching instructions. A good lisp compiler on mainstream hardware was already able to optimize away much of the overhead in the 1980's. The reason some people wax nostalgic about lisp machines is the integrated software environment, which was not only user friendly but could be dynamically modified at all levels.

  45. Find something that you'll ENJOY by MoxFulder · · Score: 5, Interesting

    And do it! For instance, improve a feature of a game that you like. Or implement a missing feature that you've been hankering after. I think this is a great way to get started, because it gives you the satisfaction of reward.

    For example, I like to use the free software Theora video codec to rip DVDs under Linux. It used to support SIMD-acceleration, making it encode movies about twice as fast... but only on 32-bit x86. Well, I had just gotten a new AMD64 box, and wanted it to rip movies faster. So I checked out the Theora code, refreshed my knowledge of assembly language, and within a couple days I had a working MMX/SSE-accelerated encoder. It was a very satisfying feeling!! And that code went into the mainline Theora release a couple months later (1.0alpha6).

    1. Re:Find something that you'll ENJOY by LiquidCoooled · · Score: 1

      I agree with this statement as much as the grandparents.

      Its no use trying to work on a project which you have no affinity for.

      My first public jump into Open Source was helping to fix the Flashblock addin on firefox.
      When flash 8 came out it stopped working, so I took the dive and started pottering about with the code.
      After a few inital stumbles I found the right balance and was able to code up a solution to the problem within the existing framework. (My initial codefix was OTT and essentially rebuilt the entire thing, my sig is appropriate...)

      --
      liqbase :: faster than paper
    2. Re:Find something that you'll ENJOY by Mathness · · Score: 4, Funny

      I like to use the free software Theora video codec to rip DVDs MoxFulder, dude! Run man, the mafiaa have you targeted now, and I think one of them is a chain smoker.

      - The Lone Punmen
      --
      Carbon based humanoid in training.
    3. Re:Find something that you'll ENJOY by davek · · Score: 1

      So I checked out the Theora code, refreshed my knowledge of assembly language, and within a couple days I had a working MMX/SSE-accelerated encoder. Wow.

      Muchos Kudos.

      Anyone who works on Theora - especially digging into ASM optimization and 64 bit processing - deserves a fat cuban cigar and a government grant. Vorbis and Theora are the only things keeping the world free these days, IMHO.
      --
      6th Street Radio @ddombrowsky
    4. Re:Find something that you'll ENJOY by MoxFulder · · Score: 1

      Eh... I'm pretty sure I'm not gonna get sued over taking copies of my DVDs along on vacation on my laptop :-) Is the chain smoker thing a reference to Cancer Man in the X-Files?

    5. Re:Find something that you'll ENJOY by Mathness · · Score: 1

      You never know with them, they are the kind of people that would play whack-a-mole with a lawn ornament, probably the gardengnome or the flamingo. :p

      Yes, the smoke was a reference to the Cancer man, one of the more interesting characters in that series I think (not that I am a big fan of the show).

      --
      Carbon based humanoid in training.
  46. Step-by-step guide by Anonymous Coward · · Score: 0

    Here are some steps you could take:

    1. decide what language(s) you want to use (C++, Ruby, etc.)
    2. decide what license you want to support (GPL, BSD, MIT, etc.)
    3. decide what platform you want to support (Linux Only, Windows Only, Cross-Platform, etc.)
    4. decide if you prefer server-side or client-side programming (web server vs GUI, for example)
    5. decide if you prefer working in large teams or small teams
    6. use the above criteria to filter out projects in places like sf.net, tigris.org, CPAN.org, etc.
    7. check the mailing lists of potential projects to see if the communication style (or maturity) of developers match yours
    8. initiate contact by letting them know your interest and how exactly you'd like to contribute

    There are numerous projects in need of help. Some of them, like wxRuby, are at the intersection of fast-rising language (Ruby) and fast-rising GUI (wxWidgets) but could use more help.

  47. Genezzo database project looking for Perl coders by andrewzx1 · · Score: 1

    www.genezzo.com

  48. I prefer working on the real problems. by John+Sokol · · Score: 1

    There are many sugestions posted, here. But I have always taken the approach that we don't need more of the same.
    We don't need more programming languages or librarys or classes.
    What we need is are fixes for the big broken problems.

    Electronic Voting is badly broken, I have mailclad, on sourceforge and web site mailclad.com
    using almost the same underly concepts and technology there is Decash, electronic cash and a new scheme for Anti-spam I will most likely put up at maildr.com or unmailable.com that I am planning to start working on in a serious way.

    Find a real problem that pushes the boundries of technology, or solves real world needs and work on it. It helps if it's something that interests you or directly effects you also.
    SPAM has been a irritation for me personally for many years.

    I was also thinking maybe someone could start a project to slowly replace each sub-components in Q-Mail one at a time until there would be an entirely new work alike package that would be under a much better software liscence(BSD/GPLx) and could be better maintained.

    I'd love it if someone would join my afterburner web server project also on sourceforge and update that code, and make it more Linux friendly.

    The single threaded server engine in there has made an excellent video server and chat server for me in the past. I'd like to make a simple yet fast mail server using it also. Or maybe some gaming servers. RTP/RTSP video server would also be a great addition, all the video on cell phone people would love something better then Darwin Streaming server that is resource heavy.

    I also have some New Operating system concepts I'd love to see coded up, but I had resigned myself to only work on profitable ventures since I an tired of being strapped for cash all the time. But if anyone want's to carry that torch, i'd be happy to point out some amazing ideas.

    Like Multitouch, multi HID/ Mice and users on one screen.
    No OS supports more then one focus and one pointing device at a time. Both Windows and X are very deeply hardwired internally for just one cursor/pointer. Why? Why can't I connect two keyboard and two mice and have color code each pair so two users share a desktop? Think about this one, there are some rather large ramifications for that.

    --
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    1. Re:I prefer working on the real problems. by alphamugwump · · Score: 1

      Why can't I connect two keyboard and two mice and have color code each pair so two users share a desktop?

      Why would you want to? I could see it being useful just to give yourself more input devices for gaming or 3D modeling, but what good would two mouse pointers be? Unless you're ambidexterous, of course. Sure, you could have a friend use the computer at the same time, but at that point, why not just set up a second terminal?
    2. Re:I prefer working on the real problems. by John+Sokol · · Score: 1


        Well there are several scenarios that had come across, 2 were under NDA's so I can't talk about those,
        But let's take the situation of Multiheaded displays.

        You can put 4 to even 16 screens on One PC. Or even one really massive high res big screen.
          Think ultimate extreme programming or gaming.

        One user has a screen, another user has their own, but either could just move the mouse off of one screen onto the others display and start using the apps there, Copy and paste, and come back to their screen. Or even grab a whole window and drag it back to his screen. Now take this to the next level and do this between separate networked PC's.....

        Lets say, I am working on a document, I can just drag it over to another screen right now just fine, but what if I wanted my friend to started editing on it.
        I'd have to save, quit, copy (or shared net drive), then they would have to re-open and find where I was in that document before they could resume edits in the same place. Usually it's much easier to just get up from you chair and let them take your keyboard and mouse.
        But with what I am proposing you could just drag it over to their side of the screen or over their screen and let them take over the focus on that app, then you could just go onto something else without giving up what else your doing.

        It would allow several people to collaborate very tightly.

        Since I have come up with this idea Microsoft did something a little similar, but far less ambitious. http://slashdot.org/article.pl?sid=07/05/06/166231 Microsoft Invents Split Screen PC

        Until you have worked in some similar situations it's hard to imaging it's value, but it's that multi-person interaction that I think makes things like second life so popular.

        With some hacking/coding with teams working very closely, ether in the same room, or remotely with skype and IM,
        Right now the closest I have come is with VNC or gotomypc where, I am helping another programmer, and can take over his editor, fix something and let him resume, all on the same desktop and window.

        Also another entirely different thing is look at Multitouch screen where they grab an object with to pointers in the video demo it was 2 finger and can rotate and scale an image at the same time, see advancedgui.com

        But having several people operating on one large virtual desktop would really increase productivity.
        http://www.panoramtech.com/ for an example. Large control center screens that look like Apollo Mission control.
      http://www.michaelp.org/photos/kennedy_space_cente r/apollo_mission_control_center_2.jpg with large screens that wrap around a whole room.

        Anyhow now that I have explained it here on slashdot, I wonder how long before it shows up on Ubuntu. I'd love to see it.

        I have this sort of whole Ted Nelson-ish vision I call Amorphous OS, http://www.dnull.com/os/ that would make Linux, Apple and Microsoft's current GUI implementations look as obsolete as the old DOS command lines.
        Sorry my online document doesn't go into nearly as clear and deep details as I'd like.

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
  49. ECK by Billly+Gates · · Score: 0, Troll

    No you can not write any reasonable piece of software for business in 24 hours??

    Are your lecturers or professors professional programmers? Don't they have any experience in the real world? Or did they learn how to teach by getting their cs degree in mathmatics and read one "learn vb.net in 24 hours!" books that somehow makes them an expert to teach it?

    3 months is what is used here in the US for quality projects written in C++ using business objects or vb.

    I learned java from an instructor who worked at Bell Labs during the 80's. He actually learned OOP from Bourne Strastop. Basically it takes awhile to do any real Object Oriented work and specifying requirements before any real code is written. Not bad from a community college.

    Any solution done in 24 hours is simplistic and very very poorly written and does not meet requirements for the project.

    1. Re:ECK by Anonymous Coward · · Score: 0

      Who is this Bourne Strastop chap then? He sounds quite the don.

  50. Documentation by halcyon1234 · · Score: 1
    One thing many open source projects are lacking is good, solid documentation. There's a thousand minds working on the code, but not all of them know what everything does. Documentation would help, especially when it comes to answering some of the more common questions.

    If you pick a project, but don't want to/don't know how to jump right into coding, download the code. Read it over. Document it (comments, docs, faqs, whatever). You'll get to know the code in and out, and in doing so, probably figure out some way to contribute.

    1. Re:Documentation by Intron · · Score: 1
      Not possible. The only useful documentation the intent of the code, which can't be learned from looking at the source. An example is this brilliant piece of software by Brian Kernighan. If you hadn't seen it before, how long would it take you to figure out what it does and why its better than the more obvious way to do it?

      unsigned int c;
      for (c=0; v; c++) {
      v &= v - 1;
      }
      return (c);
      --
      Intron: the portion of DNA which expresses nothing useful.
    2. Re:Documentation by geniusj · · Score: 1

      Very cool.. Hadn't seen this before. Less loop iterations than checking bit shifting/checking every bit. Thanks :)

    3. Re:Documentation by jgrahn · · Score: 1

      One thing many open source projects are lacking is good, solid documentation.

      Not in my experience. If there are man pages, they tend to be good. I tend to ignore flashy GUI things named {k,g}* though, so maybe it's worse there. In fact I know it is -- the RHEL5 server at work doesn't even have man pages for those funky things people overload it with; I have to google for the process name to find out what the heck "metacity" is and why everybody runs it.

      If you pick a project, but don't want to/don't know how to jump right into coding, download the code. Read it over. Document it (comments, docs, faqs, whatever). You'll get to know the code in and out, and in doing so, probably figure out some way to contribute.

      Fine, but if so, remember that this would be mostly a learning exercise. If you contribute patches which just add comments to the source code, you probably won't be popular. Removing or fixing incorrect comments should be accepted though, and so might documenting a block of very tricky code which noone dares to change.

  51. Or help here... by Anonymous Coward · · Score: 0
    ...if you'd also like a chance to get your name on some scientific publications. Check out QSIMS, a software package for doing high-precision quantum dynamics simulations for certain classes of quantum systems. QSIMS has applications in physics and chemistry, and was originally written to study quantum gate operations in optical lattice-based quantum computers.

    Project overview
    QSIMS is written in C++, and uses XML for input and output (as of version 0.5, which is in CVS but not yet available as a tarball).

    Project status
    Right now, the code has been developed to the point where it works and I can use it for my own research, but it still needs a lot of polishing, refinement, and optimization to be accessible for other researchers. I wrote docs for version 0.4, but haven't updated them for 0.5, which has a completely new input/output file format (XML-based). Nothing has happened with the project for about a year and a half because I've been working on a different project, but I'm about to start back into it as the other project is wrapping up.

    To do list
    • Further optimization, to speed up simulations
    • Update documentation
    • Add multi-processor and/or distributed computing support to allow for use on very large jobs


    Ideal "candidate"
    • Excited about being involved in physics / chemistry research
    • Knows C++
    • Interested and willing to learning some math and physics
    • Interested in optimization, distributed computing, and other aspects of scientific computing


    To learn more, contact the project admin listed here.
  52. Author already knows how to find a damn project! by Anonymous Coward · · Score: 0

    Almost everyone is telling the author WHERE to go and find a project to join but the author wants to know HOW to join a project. The author is wondering what (if any) barriers to entry there are, what assumed requirements typically exist, whether there is a formal structure for open source development teams, etc... Simply pointing the author to Sourceforge is about as useful as saying RTFM. By the way, if the answer is RTFM, at least point him or her to the damn manual. I think it's important to not brush off someone so eager to help with a mere URL and assume that they "obviously" know how an open source project is structured internally.

    I am also curious to know the answer to the author's question, so hopefully these questions will actually be addressed. I realize that in most cases, the answer to the above questions probably begin with "it depends" but those with experience can at the very least relate to us what they find to be typical or how they've organized their teams and recruited members in the past.

    I commend the author for being willing to contribute to the open source movement. Considering this topic has about 40 responses that don't even begin to address the actual questions, best of luck to the author in figuring out how to properly get started.

  53. Producing Open Source Software, by Karl Fogel by mmurphy000 · · Score: 1

    While the subtitle for Karl Fogel's _Producing Open Source Software_ is "How to Run a Successful Free Software Project", the reviews on Amazon suggest it is good for participants as well. It's available for free at http://producingoss.com/ and is fairly inexpensive if you want it in paper form. I worked with Mr. Fogel at CollabNet and he's first-rate at this, so while I haven't read the book (it's on my to-be-read pile...), I suspect it may prove useful to you.

  54. The Self-Support Mentality by cylence · · Score: 1

    A terrific way to get involved in the community is to simply take on the attitude that, whenever you encounter a problem or annoyance in software that you use and care about, you will take responsibility for fixing it. This is, in fact, how I have recently gotten involved in several FLOSS projects in the last year and a half.

    Every time you encounter a bug, feel free to report it, but also, investigate it. Is it crashing? Whip out the debugger (and recompile from source, if necessary, to get debugging symbols). Some annoyance? Look at the code logic, and write up a patch, including it with your report to the developers.

    This is not only a great way to get involved in FLOSS projects; it's also a terrific way to learn about the software you use, and further your education as a software developer.

  55. It's easy..... by Stumbles · · Score: 1

    Find a project you like, grab the source code, compile it, play with it, find bugs, report bugs, offer a patch if your capable, rinse and repeat. It's really that simple. And who knows, at some point the project leader might ask if you want to be a developer for them.

    --
    My karma is not a Chameleon.
  56. Ubuntu Open week by ramrom · · Score: 1

    Open source projects are always looking for help, this is from ubuntu open week IRC logs with explanation of various things Ubuntu does and how you can help,a lot of questions for beginners are answered https://wiki.ubuntu.com/UbuntuOpenWeek

  57. addendum to my post by iHasaFlavour · · Score: 1

    I m ean google code project hosting.

    Or, um, you could look at my project, I'm in need of the helps..

    http://code.google.com/p/nmod/

    --
    Reality is that which, when we cease to believe in it, still exists. - Philip K Dick
  58. webinject by mu51c10rd · · Score: 1

    The Webinject tool is popular among those using Nagios for testing web functionality. The owner has not done any upgrades in quite some time. Might be a worthwhile to look at working on.

  59. My advice as the head of two projects by laffer1 · · Score: 1

    The answer to your question depends on the project. Well established projects tend to have rules to gain access. FreeBSD developers often have to submit a few patches, get a mentor and go through two years of hell to get in. It really depends in that case on what you want to do. Joining ports is easier than working on the kernel. The Linux kernel development effort has a lot of structure so it will take time to get noticed.

    Smaller projects, new projects, or projects with few developers are much more likely to take you in right away. For instance, with MidnightBSD I usually just want to see 1 patch that looks reasonable. With Just Journal, I'd take anyone who wants to work on it just like that.

    Some projects require that you get friendly with other developers. I work on a gaming mod called FalkconET. I started by offering to host their website and moved up to working on the Mac port. I knew two of the guys from playing Enemy Territory.

    Just be nice and patient. With my projects, I like to get an email from interested developers. Also, be willing to learn the "jargon" and a version control system. Most projects use Subversion (SVN) or CVS.

    1. Re:My advice as the head of two projects by Kessler · · Score: 1

      FreeBSD developers often have to submit a few patches, get a mentor and go through two years of hell to get in.

      That "get a mentor" part is very very good advice for any project. Find a project you like and then politely ask the experienced devs if any are willing to mentor you. Think of a mentor as a guide on your first visit to a foreign country. He/she can tell you the easiest way to get started on that particular project (not all projects are alike).

      In addition, a mentor can field the inevitable barrage of newbie questions through private communication so you are not forced you to expose your ignorance to the entire project. Even the most patient old-timer can get a bit hostile when the project's communication channel gets flooded with the same batch of newbie questions that they've seen a thousand times before.

      Last but not least, keep in mind that the most experienced devs are often not the best mentors. They know too much and often have trouble remembering what it was like to be a beginner. Find someone who has been with the project long enough to know the "landscape" but not so long that they've forgotten the path they took to get there.

  60. Re:My suggesion ... by Anonymous Coward · · Score: 0

    Im sorry but are you kidding?

    Following my teachers suggestions would have never lead me anywhere close to where i am now.
    Not trying to offend anyone but 90% of the teachers i have ever met, didn't know much about what's happening in the real world reguarding what they teach.

    Iv always heard , and never liked the saying : "those who cant do, teach" but unfortunatly it has been my experience in too many cases.

    Get an education, not training. That means learn what things mean and not just how to reproduce them.

    good luck

  61. How to contribute as a non-hacker by houghi · · Score: 1

    Mny people are not hackers or programers and give as excuse that they are non-technical and thus can not contribute. However there are many ways to contribute.

    * Make a level for your favorite game and contribute it back to the maker
    * Make a skin for you favorite program that uses skins
    * Make Icons, wallpapers or any art for whatever you desire
    * Translate website and manuals to your language
    * Beta test software as a simple user
    * Burn distributions for those who can't
    * Have your bittorent upload your favorite distribution all the time
    * Tell the maker of smaller programs that you use it, or even a simple thank you

    The last will encourage the maker to keep maintining the program. Not all help needs to be directly, or even technical. Just telling people you use OSS is enough. If enough people tell this, at some point it will catch on. It is word of mouth.

    --
    Don't fight for your country, if your country does not fight for you.
  62. Choosing the right school by OhRock · · Score: 1

    I know this might not apply to the question's originator, but factoring the following in your school choice is not that difficult.

    Find out what is the CS department running in their servers and if the have a Unix/Linux lab, if they have subjects where gcc is used, what do the school do for the OS/Architecture classes.

    Also, visit the school's LUG's and/or ACM's website and mailing lists. See what they are doing, ask them about it.

    Find out if the professors are doing research on areas that overlap with FOSS, as they will be likely to use it then.

    Ultimately, enroll in a school that has a Unix tradition - out of Chicago UIC is the only one.

    I took some of this things in account when looking for school, and I end up enrolling in UIC as I also wanted to be close or in a big city. I could not be happier with my choice, all the development is done in python/java for 100 level classes, JAVA running in linux for the 200 levels, and then gcc for the anything that requieres C/C++. Most everything is done using UNIX/Linux. On top our ACM is very Linux friendly, and both LUG and ACM do lots of really interesting things in the FOSS area.

    Roberto "ohrock" Serrano

  63. Re:My suggesion ... by drinkypoo · · Score: 0

    ... believe your teachers.

    If you don't know the instructors in question, this is stunningly bad advice.

    I have had both good and bad teachers/instructors/professors from the beginning of my school career until the present day. Sometimes they are idiots. Sometimes they have gone senile! My lady had a prof once that would literally pause in the middle of a sentence for as long as fifteen minutes before picking up where he left off. Many complained, but he had tenure and nothing was done.

    Bottom line to me is that you should be learning a variety of languages. Learning one language prepares you to write programs in that language. Learning two languages prepares you to learn more languages. No one language will suit all needs or will be around for eternity.

    Unless you plan to be in the industry just long enough for one trend to rise and fall, learning just one language is limiting and foolish. Computer science isn't about learning languages - they are a means to an end, which is to say, learning the disciplines of computer science which include mathematics, data structures, algorithms, blah blah blah. Mostly stuff I am lame about :) But I've had these discussions several times with people who are not lame in these areas. I grew up around a bunch of CS and related majors, many of whom went on to be successful and make a lot more money than me (born too late, blah blah blah)

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  64. Start small. Ideas are cheap, so pay your dues. by Anonymous Coward · · Score: 0

    If you're moving into a big team, be polite. You're a young programmer, and lots of young programmers have a lot of hubris.

    Yes, and don't go proposing your great new idea until after you've paid some dues by bugfixing, maintenance, whatever. Because your idea will get blown off even if it's good unless you develop credibility with the team first.

    Also, don't get discouraged if your first attempts at finding a niche fail. Unfortunately, lots of people jockey for position and reject newcomers to protect themselves. Its lame, but its human nature. Politics is inevitable, and many excellent geeks aren't good at that part of the game -- especially at first.

    Finally, if at all possible, find a mentor. Find someone on the project with established seniority and develop a one-on-one relationship with that person. Take their advice until you can stand on your own two feet.
  65. Producing open source software by Anonymous Coward · · Score: 0

    This is worth reading:

    http://producingoss.com/

  66. Read a book and choose a problem or domain by synthespian · · Score: 1

    Hi --

      Read one of those books that introduce you to the toolsets and cycles in open source programming.
      Also, choose a domain you want to work in, or one in which you have some expertise. Is it user interfaces, graphics, mathematics, little enhancements to GNOME or KDE, etc?
      And remember that Linux is not your only choice: you also have OpenSolaris and the *BSDs (FreeBSD, OpenBSD, NetBSD and DragonflyBSD).

      HTH.

    --
    Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  67. Seconded by metamatic · · Score: 3, Informative

    Frankly, Google should scrap their Summer of Code and have a Summer of Documentation. There's already too much badly documented (or undocumented) code.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Seconded by einhverfr · · Score: 1

      Frankly, Google should scrap their Summer of Code and have a Summer of Documentation. There's already too much badly documented (or undocumented) code. You should see the code the LedgerSMB project inherited. No documentation, and the structure resembled either a big ball of mud or a plate of spaghetti depending on your viewpoint. (I meld these together and call it the big ball of worms architecture). While the program's use is documented, and while new code is documented, older code is rarely commented and those comments that exist are actually a part of the code (remove at your own risk!).

      Six months later, we are making a dent in the old code. In another year, we should have it all replaced. Yipee :-)
      --

      LedgerSMB: Open source Accounting/ERP
  68. Don't by Statecraftsman · · Score: 3, Funny

    Yes, I've seen all your supposed facts and evidence that open source software helps people learn to program and provides many more people with the tools they need. Unfortunately, I don't go by facts and evidence. I go by my gut.

    My gut tells me that free software is just wrong, and that if you don't get paid for your work, you just might be a communist. So please don't submit patches and support this drain on our economy. Go out and *buy* the software you need. That way you'll be able to support the country and economy again next time an upgrade or new version comes out. My gut and thousands of democracy-loving programmers thank you.

  69. How about... by DRAGONWEEZEL · · Score: 1

    Fixing some WoW mods?

    Tons of Lau, EASY programming, plenty of defineable todo's, and a comunity which will actually use your product!

    --
    How much is your data worth? Back it up now.
  70. You're welcome to give me a hand with one of mine. by Short+Circuit · · Score: 1

    Are ya interested in D&D?

  71. A chip? by Dr.+Evil · · Score: 1

    It's called "swarf!" http://en.wikipedia.org/wiki/Swarf

    Some jargon is BS though. Investing jargon drives me nuts "taxflation", "bear", "bull", "forex", "fundies"...

    Ugh. Don't get me wrong, the financial sector jargon is fine. It's very necessary and describes precise concepts. It's just this wishy-washy investing stuff.

    1. Re:A chip? by drinkypoo · · Score: 1

      It's called "swarf!" http://en.wikipedia.org/wiki/Swarf

      Uh, no. Swarf may be the name for a collection of chips, but a single piece of metal that has been cut off a piece of work (typ. on the lathe, but also the output from a milling operation) is called a chip (unless it's a whole block you cut off, I don't even know what that's called, because I'm not really a machinist.)

      Next time try wiktionary as well as wikipedia, it will tell you that a chip is "A small piece broken from a larger piece of solid material." ("From Old English cipp (small piece of wood)")

      I got the terminology from my instructor in my intro machining class, in which I got an A, whee. Mostly we did exercises on the lathe (like turning to a series of diameters, cutting threads, etc) and some of us, including myself, did some milling (I made a water block for socket 7 and similar and then never used it for anything. Bought the fittings, even.)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  72. But what about the basic knowledge by adeydas9 · · Score: 1

    All this is fine but I (BTech, CS student from India) hardly know about the Linux kernel or stuff like that. Those things are never taught in deep here. All we learn is basic languages and that too in the most bookish of all ways possible. Can you please suggest some way to learn more about the kernel, etc???

  73. Add local language support! by Mysticalfruit · · Score: 0

    One of my co-workers is Indian and he consently bitches about the lack of native language support in software. I'd say start by seeing if your favorite piece of software has support for your local native language. If not, go about modifying the software to properly use language tags so it does.

    --
    Yes Francis, the world has gone crazy.
  74. As a project maintainer, I would say... by einhverfr · · Score: 2, Informative

    The first step is to join an open source community. Lurk for a while, use the software, see what works and what doesn't.

    Then start getting active in the community. Give support, feedback, and the like.

    In the mean time, if you can fix bugs, great. If not, just getting involved may help you get a feel whether this is the right community and project for you.

    Oh, and decide what you want to accomplish. Do you want to get your name out there? Earn income by coding? Just have fun? This will determine what sorts of projects you want to get involved in. (I prefer to do all three.) If you want to earn income as a coder, and are willing to program in PL/PGSQL and Perl, I would recommend the LedgerSMB project primarily because we seem to have a chronic shortage of coders interested in doing commercial work. On the other hand, if business process problems aren't interesting and hard-core computer science is, maybe some of the compiler projects or kernels, or something new altogether.

    --

    LedgerSMB: Open source Accounting/ERP
  75. Work on a business app instead of a tool by almax · · Score: 1

    Most open source offerings are tools (ie. databases, operating systems, etc.) and there is room for only so many tools, but there is a need for as many specialized business applications as there are types of business and it is possible to make money on those because businesses will pay for solutions, not tools. The Apache Open for Business Project (http://ofbiz.apache.org/) is truly disruptive technology in this regard. It is a brilliantly designed framework for developing apps and it comes out-of-the-box with working enterprise level software. It takes a while to learn the environment, but it is so rich that it makes knocking off vertical apps a breeze once you know it. It is Java based, but also has a strong XML-based scripting environment that makes it possible for domain experts, not just Java gurus, to develop apps. Developing an application for a small business and making money on it helps both you and the small business. I think this model has the potential for delivering much more on the promise of open source than anything that is out there.

  76. Mod parent up by Skapare · · Score: 1

    Yes, the author is a newbie. Apparently he is not a newbie at development and programming, but is a newbie to the way open source is structured. Something that is specific-project-neutral but tells people about how open source is done would be very helpful. Beyond that, the best I can suggest is to hold your breath and dive in. Don't be afraid to ask question; just admit what you don't know and show you're willing to learn, and willing to do the work to learn, but just need to be pointed in the right direction. Different projects do things in different ways. Many use one of many different source version control systems. Some don't use any at all. Larger projects have dedicated servers and recompile everything from the latest check-ins (new source added in) every night or so. Some just do it all manually when someone feels like it. My own projects are written by myself and have none of that fancy stuff.

    --
    now we need to go OSS in diesel cars
  77. Vocabulary tips by rduke15 · · Score: 1

    For the problem of "geek slang" you mention, a few tips which can help:

    - Google define: Type "define:" followed by what you search in the Google search bar. For example: nightly build

    - Many of the above will lead to Wikipedia, which is a good resource for anything geeky (and other stuff also)

    - Sometimes, the Urban Dictionary can help

    - In forums or mailing lists, when you come across an unknown term, just ask.

    - Don't only read /. and forums, but also some literature...

  78. Gaming consoles by gatkinso · · Score: 1

    Already do this. Hell, the Atari 2600 did this 30 years ago.

    Next!

    --
    I am very small, utmostly microscopic.
  79. Who the fuck promoted this as insightful? by melted · · Score: 1

    Why would he need "dynamic programming" out here in the real world? Care to explain? Why does he even need to master common algorithms? Trees, sorting - all of this is already done twenty times over. This is not to say that strong background in algorithms doesn't help, it does. This is to say that 90% of programming has nothing to do with computer science, and as a beginner, that's the 90% he'll be doing.

  80. If your teachers are discouraging GNU/Linux... by v3xt0r · · Score: 1

    Then most of what you're learning in school, will probably be worthless in the real-world (as is a lot of the times the case), unless your idea of 'real world' involves working as a .NET developer, in which case, I feel for you. =p

    IRC, mailing lists, and LUG/SIGs are a great way to get familiar with things, especially IRC, since it's a real-time international discussion.

    Find some applications with bugs. Fix the bugs and submit them to the project's BDOL.

    If I may suggest, one project that I am particularly fond of, and would like to see it further developed, is multi-aterm.

    --
    the only permanence in existence, is the impermanence of existence.
  81. GUI / Front ends by dahl_ag · · Score: 1

    There are a number of programs and utilities out there that are currently command line only. I have been thinking about working on a GUI front end for one of these as one of my next projects. Seems to me that this could be easier than learning the internals of a given existing project. This way you can slowly implement functionality using the framework of your choice.

  82. My suggestions for new contributors by SL+Baur · · Score: 2, Insightful

    It's unfortunate you're in your last year. College students are typically the most valuable contributors to a project because they have fewer hard demands on their time like work, spouses, young children, etc. Also, upon graduation, you will often find that the leaders in the project are more than happy to write you references after you graduate - I did on a number of occasions.

    (In no particular order)

    DO pick a project that interests you.
    DO lurk for awhile on the relevant mailing lists so that you get an idea of who the leaders are, what the pressing issues are. You'll also be able to learn that way how contributions are expected to be made. It is also a good idea to read archives of older postings, understanding history is very important and often ignored.
    DO be aware of how the project is licensed. Some projects require copyright assignment and will not touch any work you do until you perform copyright assignment.
    DO consider doing documentation patches first. Bug fixes are cool, but it is only the very rare person who tackles documentation. There never tends to be an oversupply of people of doing documentation.
    DO get involved doing build testing especially if you have access to non-standard or rare hardware.
    DO learn what a .signature is before you start sending mail out. Be sure that you turn it off.
    DO read any relevant FAQs before offering any suggestions.
    DO NOT repeat a suggestion that has been turned down repeatedly (ex. why can't we replace the lisp engine with Perl?, why can't we have a stable Linux 3.0, etc.)
    DO NOT get angry at someone in public.
    DO NOT contribute to off-topic threads, you should know what these are, you've read the FAQ, right?
    DO practice your English writing skills, this will help you in your career too.
    DO NOT be disappointed when your patches get rejected, learn from your mistakes and keep trying.
    DO try to answer questions more than you ask them, when your answers are correct you will earn a lot of reputation.
    DO be sure that you're having fun.

    1. Re:My suggestions for new contributors by norkakn · · Score: 1

      > DO practice your English writing skills, this will help you in your career too.

      DO NOT take this as an insult at your nationality. The parents advice is universal; native speakers should heed this advice as well.

    2. Re:My suggestions for new contributors by SL+Baur · · Score: 1

      Yes, to both of those comments. I should have added DO have a thick skin, quite often an innocent comment can be interpreted as something other than what was intended (this is especially true between various English speaking countries - American English != British English != Australian English, etc.).

      If you're bilingual and want to start contributing immediately to the Linux kernel, they're starting a translation project of some of the developer documentation. I've seen Japanese and Chinese (Mandarin? I can't read any Chinese) translations of the HOWTO and stable-api-nonsense documents go by in the last few days.

  83. click below to join by hdparm · · Score: 1

    Fedora. Fast-paced perhaps but plenty to learn and contribute.

  84. Like the old joke about the French? by ClosedSource · · Score: 1

    Open source organizations don't care what you do as long as you use the right lingo and slang.

  85. You're in India? by Anonymous Coward · · Score: 0

    Give my regards to my job, asshole.

  86. Re:Bob Gotse is the future of Open Sores by HermMunster · · Score: 1

    What's amazing is that Linux is so much powerful than the toy OS one would have to classify say "Windows" as. Linux is much better designed, more secure, has faster development, and will give more knowledge to you than any other OS. Windows is sort of toyish. It has been that way from the first time I used it back in 1984 (I think that was when I saw it first). I ran it off one floppy drive and had to swap out floppies to use it as I went. It was incredibly slow, almost incompetently slow.

    I've watched Window from then and watched the industry leaders and trend setters. If you carefully follow what has happened in the industry you'll note that Windows really was quite rinky dink for a long time. Only under Windows 95 did it start to flesh out, but there was a lot of toyishness to it then too. Unfortunately that toyishness is still there.

    I've watched the Linux community now for the past 4 years and I have been very impressed at the speed of their advancement and the sheer quality of the work on the kernel and interface. Granted there are still some toyish aspects to it but my educated opinion tells me that it has exceeded that of Windows.

    Vista, today, isn't much more than a bigger pigish toy with a bit of lipstick. I have no desire to see anyone waste their time on a closed source environment that is only documented as well as Microsoft permits it to be, and only permits it to the extent that it doesn't allow another company to produce a product that competes with its own.

    I think generally, and mostly overall, few would consider Linux to be a toy, at least moreso than Windows is. Even the term Windows is toyish. Vista is just a theft term with misleading connotations. Heh, that's how I perceive it. I remember windows meant windows on the screen. Now Vista is supposed to mean expansive view but it has nothing to do with windows on the screen. On top of that it's not even expansive as Microsoft has done so much to inhibit our free and open use of our computers.

    --
    You can lead a man with reason but you can't make him think.
  87. not really by Anonymous Coward · · Score: 0

    It's his job now

  88. How about a plugin? by slapout · · Score: 1

    Some open source projects are created in such a way that you can add features to them by writting plugins (Rockbox, Media Portal, Mythtv, etc.) That might be a good way to get involved with the community.

    --
    Coder's Stone: The programming language quick ref for iPad
  89. My thoughts exactly by Anonymous Coward · · Score: 0

    Since I could only find Windows programmers at my university (the most recent C++ course wanted us to learn MFC, go Windows 3.1!!) I decided to go it my own. Now I work in the marketing/communications field and I plan IT projects with the knowledge of how software works. It is a very useful skill to have and you would not belive the sigh of relief when you show up at a new company and you explain to the IT group that you know what grep, sed and awk mean. They like projects where the planners actually have a grounding in writing software. Best of luck finding your path in the workforce!

  90. It's not about knowledge by Anonymous Coward · · Score: 1, Insightful

    it's about skills. You'll most likely never use dynamic programming to solve a business automation problem but studying such algorithms and solving hard problems gains you skills. Debugging skills, analysis skills, the self confidence, ability to read and interpret complicated texts.. When you study algorithms, you don't do it for the purpose of publishing a new STL. It's already been done "20 times over". You study them to improve your mind.

    If your dream job is being a code-monkey that converts design documents to code, then correct, you don't need to know computer science at all. You can just get the knowledge you need and start churning. This often gets people in trouble when they come across something slightly complicated. If you never coded anything more complicated than nested loops, what are you going to do when you need to debug some spaghetti coded by an idiot 10 years ago? I've known quite a number of people who had been doing exactly what you propose for 10+ years, just learning what's needed for the problem at hand. They used to come to me for advice even though I was fresh out of school. Just obtaining knowledge thru experience doesn't get you anywhere. Anywhere nice at least.

    I think having excess skill is a must for a developer, not an option.

  91. I am an Indian and I faced the same thing by baboonlogic · · Score: 1, Insightful

    ...three years ago. I decided to finish my education before getting involved in something real.

    Everything modded highly above so far is good and there's no point repeating it, so I will just mention the Indian stuff. :P

    Problems

    1. Indian institutes pick up developments like C++/STL etc a bit too slowly so you will have to work that out for yourself unless you are from a lucky place.
    2. We Indians typically don't learn any real world toolkit/framework/library. It is only very large projects like the kernel and subversion that don't rely on toolkits/frameworks etc. A smaller, entry level project, say like some small game or something will typically use a framework/toolkit of some sort. If you don't know even one of these then it is extremely difficult to get started. Though once you know one you can pick up on others over time.
    3. Too few mentors.

    Solutions

    1. Read wikipedia and its discussion pages on the language of your choice. You will know what you are missing. Learn that up. And if you were not taught STL, please pick it up if you want to proceed with C++. Ask your doubts on irc. IRc works once you figure out stuff like "Don't ask if I can ask", etc!
    2. Try one of these -
      • Pick up some toolkit of your choice for example, in C++, you could choose something from QT, GTK, ncurses, SDL, etc. Now find a project that uses these and is both small and interesting and follow the slashdot advice.
      • Find the project first and then learn the corresponding toolkit. This is slightly more difficult for things like C++ etc.
      1. NOSIP
      2. Join your local LUG and attend it's meetings.
      3. Redhat too has a summer internship program in India I think. At least they did 3 years ago.
    3. Perhaps I should add a proper detailed howto for Indians on my home page sometime. Anyway, good luck!

      Oh and also check out Sarovar along with sourceforge. (I am not affiliated with Sarovar or anything, btw.)

    1. Re:I am an Indian and I faced the same thing by anilg · · Score: 1

      Another Indian thing is open source equated to Linux. There is a very active OpenSolaris UG[1] in Bangalore and many other cities if you're interested in contributing to the many open projects here..

      [1]http://www.opensolaris.org/os/community/os_user _groups/bosug/

      --
      http://dilemma.gulecha.org - My philospohical short film.
  92. Start your own by TheoCryst · · Score: 1

    Do what I did: start your own project. Instead of wading through the poorly-written source code of others, generate your own code. Find a niche that has not yet been filled, and just start writing. For me, it was an equivalent to Microsoft Paint on the Mac: there are absolutely none. So I sat down with a good Cocoa programming book, and just did what I could. Fifteen thousand downloads later, and my project has exceeded my wildest expectations. (Shameless self-plug)

    --
    Warning: Contents May Be Flammable. Keep Out Of Reach Of Children.
  93. Structure guru? by gluechucker · · Score: 1

    I've submitted some patches for an OSS game at one point, and it was as simple as introducing myself to the team saying that I was interested, reading the code until I got it, while watching what kind of changes were being made lately by other people (through cvs), and learning to patch so I could submit mine where it was reviewed (I suppose, I don't know the process; it just took a while).
    ^^ Wow, that's a long sentence, but I'm no grammerologist.

    My reason for posting, though:

    This post made me have to ask, is it at all a common practice for an OSS team to have 'structure guru' type role where someone doesn't particularly have too much emphasis on the coding of new things as they do just knowledge of how it all fits together and works out? I'd imagine it to be beneficial, because while it is one less coder, it is a reference for anyone else who would like to fix/revise/add/whatever and are new to the project... like a team mentor that's there to bounce questions off of where documentation might not cut it (for instance, maybe a very broad view of how all the modules of an application fit together). Just curious, never heard of it happening.

  94. packing is a way of learning by belmolis · · Score: 1

    Another possibility to consider is to package an existing project. For example, if you like Debian, you could find a program that interests you that is not yet available in a Debian package and package it yourself. You'll have to learn your way around the code to some extent, learn how the build system works, etc. You may have to write some documentation. You'll also learn about a bug control system and patching. (Debian requires a man page, for example, which not all projects provide.) Initially you'll have to submit the package for someone else's approval, but in time you can become a full-fledged package maintainer in your own right if you want to.

  95. Step one by ceoyoyo · · Score: 1

    Get a better attitude.

    You spend half of your question whining (yes, whining) about your professors. Now, maybe you're at a really bad university, but it's more likely you've got an overdeveloped sense of entitlement.

    So take all the rest of the advice you got here and remember that an open source project maintainer, supervisor, whatever, probably won't hold your hand either.

  96. How I did it by CTho9305 · · Score: 2, Informative

    A few years ago, I wanted Mozilla to be able to play a sound when a download completes. I got on IRC and asked for help, and a couple very patient developers helped me understand where the code was that needed to be patched, and how to fix the issue. As I found other things that were missing, or things I didn't like, I wrote more and more patches, each time with less help - probably 99% of the lines of code in my early patches were written over IRC by more experienced devs, and pasted into a text editor by me :-).

    I started taking on code-cleanup-type bugs, and eventually, as I became more familiar with the codebase, more visible bugs (and even ones that didn't affect me personally). I've fixed quite a few bugs now, and have quite a bit of responsibility.

    I don't know how well it'll go if you don't have a vested interest in your contributions - it's incredibly difficult to get into a huge codebase like Mozilla. I had written programs of up to a few thousand lines of code before, but working in a multi-million-line project is very different. Start with small changes, and don't feel bad when your patches have to go through many revisions before being accepted.

  97. What? by Ayanami+Rei · · Score: 1

    I think you're confused. Every X "server" is a framebuffer or framebuffer emulator and input device nexus. It also houses a clipboard, font resources, and some other less used facilities.

    No client to receive the video is required unless the XServer is actually a proxy (i.e. Xnest, XVnc, or whatever).

    Now what you're thinking about with Unix sockets is when X clients (like firefox or konqueror or the display manager) which are running local to the machine that is running the XServer on the console; these connect via a local socket or shared memory for fast graphic display.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  98. Reading between the lines by justfred · · Score: 1

    The good news is that (if you believe the OP) the Indian software developer community is concentrating all its efforts on Windows. Which means, plenty of open source work left for us here in the western hemisphere. Besides which, they're digging themselves into a trench. Windows development is so ten years ago; open source and web-platform development (mutter mutter iphone mutter mutter) is the future. That being said, perhaps the poster's best path would be open source software evangelism in his local area?

  99. Don't ask to join if you won't contribute by Anonymous Coward · · Score: 0

    Follow the advise above, and don't be like some guys who ask to join and then never contribute a single line of code. It's like they ask to join just so that their name is in the list of developers.

  100. Start your own by Anonymous Coward · · Score: 0

    The world needs more regular end-user software. We are awash in duplicate open source programmer/library projects however there is always room for more common sense simple APIs. You no doubt suck and your chances of figuring out CVS sytems and programming languages at the same time sounds like an excruciating endevor.

  101. what to do if no replies? by Anonymous Coward · · Score: 0

    I've also been trying to start doing open-source projects. I've added a couple new features (no svn access, so emailed the sole developer with the diff) to one project I found very interesting, but after my first email, the developer has stopped replying. What should I do? Continue to submit new features/fix bugs (maybe he's been busy?) or stop (for whatever reason, he doesn't want my help?)? Thanks.

  102. Consider a cross platform project by Bunyip+Redgum · · Score: 1

    Since you want to code on a free operating system and your professors are still tied to One Microsoft Way, why not pick a project which runs in both environments?

    There are lots of cross platform development environments - anything from a plugin for Firefox to applications that run in mono and .Net!

    That way you can develop under your OS of choice and your professors might learn something from you...

  103. re by JohnVanVliet · · Score: 0

    just my 2 cents but start by getting active on the programs ( web site,forum,mailing list) for example i have been doing maps for Celestia for 3+ years and some minor debuging find a program you use and LIKE and go from there

    --
    "I don't pitch OpenSUSE Linux to my friends, i let Microsoft do it for me
  104. Start slow, start small, stick with it by ardran · · Score: 3, Insightful

    I was in a similar situation when I got out of college. I had a lot of theoretical training in college and wanted to get my hands bloody. I was coding at work, but it was odd embedded stuff and I wanted some different experiences to "cleanse the palate". I ended up doing work for two projects: Vim and Mozilla. I chose these projects for two reasons: I liked what they did, and they had lots of room for additional coders.

    Vim was sort of a dive-right-in situation. Bram maintains a vast TODO list that ships with every version of the product. I spent a while reading it, picked out a couple things that seemed like they ought to be easy, and got to work. I joined vim-dev and mailed out patches. I didn't do a ton for the app, but I got a few things in.

    Mozilla was a different beast in many ways. It was a much more structured environment due to the review process and the presence of Netscape. Also, it was in C++ (which I barely even knew, thanks to some shoddy university training), and not just any C++, but XPCOM. At first I was intimidated by the size of the code and not knowing where to start, so I didn't even touch the code. I spent several months just sitting in #mozillazine and triaging bugs. I dup'd, I closed, I changed to NEW, all that good stuff. Through this, I achieved two important things: I got a much better sense of how the product worked, and I met some of the players involved through IRC contact. By this time I was sitting on #mozilla as well, but I never said a word.

    Eventually, I downloaded the code and bought a copy of Don Box's "Understanding COM" for background reading (that book is amazing). From all the time spent triaging, I knew some of the areas where bugs were piling up and nobody was looking at them, so I started there. I submitted a few small patches, had them reviewed, had people check them in for me. The reviews were harsh sometimes, but I was learning a lot. Eventually I moved around a bit and took on larger fixes.

    I did this for a year or so before I got too busy with work and dropped out of sight. To this day it was some of the most fun I've had as a coder. For all its flaws (in those days, Firefox was still "m/b", and Netscape ran the show), it was a great project, and some of the people who worked on it were the best programmers I've ever worked with.

    So, my advice: start slow, start small. Figure out who you can ask for advice about something. Look for other (non-coding) ways you can help out that will help you get familiar with what's going on. It's worth it.

    1. Re:Start slow, start small, stick with it by DonBueck · · Score: 1

      My experience is similar. I was using CakePHP at work and needed to enhance some features. One great way to get started was to help other users with their problems, use the message boards and dev. channels to ask questions/offer ideas, and just get to know the community.

  105. JKH (Junior Kernel Hacker) TODO List by Anonymous Coward · · Score: 1, Interesting
  106. KDE Project by mp3phish · · Score: 1

    My suggestion?

    Join the KDE Project. Just monkey around in some smaller projects inside there. They have IRC Chat discussions, forums, mailing lists, the works. And I don't know a single person in there who doesn't have their arms open to new motivated developers.

    You won't find all the anger and aggression in the KDE project like you do in other projects like the Kernel, or others.

    --
    Your ignorance is infinitely greater than you realize.
  107. Join the mailing list by GringoCroco · · Score: 0

    Join the mailing list! this is the most important thing to do if you don't have experience with the project.
    Listen for a while about what is being done. Then get involved (ask beforehand if what you'd like to do is desirable from the point of view of the community).
    One thing to remember: don't be a bone head! If they tell you a few times your approaches are wrong for such and so reasons don't fight it very much, you'll just reduce the signal/noise ratio.

  108. Sounds like the wrong solution by Rix · · Score: 1

    Why should the kernel adapt to a misbehaving module? Wouldn't it make *far* more sense to shorten the symbols in the NI module to something sensible?

    1. Re:Sounds like the wrong solution by ninevoltz · · Score: 1

      Why should the kernel adapt to a misbehaving module? Wouldn't it make *far* more sense to shorten the symbols in the NI module to something sensible? This was the exact argument that killed the patch. I made sure that NI knows about the problem, and they made some noises that they would take care of it in future releases. But wait a minute, what defines a "misbehaving" module anyway? How about when you have hundreds of entry points in your modules and you try to give them all unique, sensible, and human readable names? You end up with symbols 1000 characters long. Does it break anything else? No. That argument is exactly elitist. Shouldn't the kernel be about working for the users, not making convenient coding for the developers? Things should just work, No one should care who has to bend for who to make it happen.
      --
      Death is life's great reward. R. Hoek
  109. Go read the mythical man month by Rix · · Score: 3, Insightful

    You're far better off shooing the sub par off than giving them even a small job.

  110. Go to a real school by Rix · · Score: 1

    Or suck it up and deal with the fact that you've been trained for call centre work.

  111. Learn from the best by Anonymous Coward · · Score: 0

    I think you always need to be in that special inspired state in order to produce quality work and advance. I get a kick from reading about the superstars, such as Rob Pike (http://interviews.slashdot.org/article.pl?sid=04/ 10/18/1153211&tid=189), Brian Kernighan, Dennis Ritchie, etc. Also, check out David Wheeler's page and read some stuff from Larry Wall, the outspoken creator of Perl.

    Definitely read good books - Bruce Eckel's Thinking in * are fabulous. Also see Martin Fowler's collection and may others.

    And, oh yea - write code no matter what!

  112. Translations by Anonymous Coward · · Score: 0

    You can try todo Translations for languages that you know, such as India language.
    Translations are generally very easy todo...

  113. Shameless Advertising: by udippel · · Score: 1

    In case you are interested, here we do welcome Final Year Projects and MSc candidates who are keen on joining or starting or writing a FOSS project or thesis.
    And I am sure there are many other universities out there who do likewise.

  114. The New User Interface Group by ifakemyadd · · Score: 1

    I ran across this open source group via the fancy Jeff Han stuff. www.nuigroup.com. They're taking images from a webcam, and doing fancy blob detection for a multi-input touch interface kind of thing. They work in windows mostly, with a c++ lib, porting into other windows-y programming environments. Open sound control (a lightweight protocol) VVVV (I'm still not sure what this is), DirectX layers, and more.

    It would work great to try and integrate as a lower level windows driver. Right now only applications work with a library. But perhaps a driver, working with a webcam driver, presenting itself as an input device? Eh? Well its certainly got potential to consider.

    Ironically I got interested in the project from the perspective as a linux project. It would work very well on an embedded linux system, passing information on the pci or usb bus to any which os. But embedded programming is a whole different ballpark from the rest of the programming world.

  115. Re:Skills first...What!?! by Anonymous Coward · · Score: 0

    This is the worst possible advice that I could possibly imagine. Real World Problems are the one problem where you can be ultimately effective. On the job training is the most effective training ever.

    You are advocating mental masturbation, you insensitive clod!

  116. Well get the name right to start with: Linux by r00t · · Score: 1

    It's only Debian that caved into Stallman's desire to rename Linux for his own glory.

    Lots of us Linux hackers are more or less peeved at the situation, especially Stallman's abuse of his control over the GPL preamble and the uname command to force the issue.

  117. school's OS of choice by tflaco65534 · · Score: 1

    I cannot believe that linux is frowned upon at this college. Funny, where I go, WINDOWS is frowned upon and all student projects and coding has to be done on linux or any other unix variety.

  118. Open source is cool, but... by Anonymous Coward · · Score: 0

    Instead of joining an open source project, why not talk to people, understand what they do, understand their needs, find out what their problems are, and then try to devise ways to help them solve their problems (assuming that the problem can be solved through automation).

    Then, once you have identified a problem, you interview them (your customers) as to how they solve the problem manually, then through your knowledge, experience, and willingness to try new things, you should be able to develop a program to fulfill their needs. Once you have developed (road-mapped, if you will) the solution, then coding it is simply a matter of choosing a relatively efficient language to code to(it doesn't really matter which, as long as the language is capable of supporting the task in a logical manner), and transferring the logical manual steps to computer code.

    The coding part is easy (relatively speaking), the hard part is designing what needs to happen, what order things need to happen in, what could go wrong, accounting for them, and then implementing your solution.

    If you are like me, that means that once you have found the logical steps to solve the problem, you then find/search for the best language that you can learn/experiment with, to eventually solve the problem. The learning curve can be excessively steep, but the rewards tend to match the effort put forth.

    I have found that while I am not formally educated in computer science, I can do what needs to be done, as the situation calls for it. It is most rewarding!

  119. Just do it. Simple as that. by fzammett · · Score: 1

    Speaking as someone who runs a couple of open-source projects (Java Web Parts - javawebparts.sourceforge.net, DataVision - datavision.sourceforge.net, as well as some smaller ones), and as someone who has contributed to a number of open-source projects, my advice is simply to get out there do do something.

    Submitting patches is indeed the first usual step. The existing team members need to see (and have a responsible to see) that you know what your doing. This means different things to different people, but at a minimum it means that you have enough competency to not break anything. Being on the mailing list is indeed the other logical first step. Don't be afraid to jump in to conversations (once you have a clue), just do so politely and which as much forethought as you can muster. If anyone involved in the project attacks you if you've done both of those things, than you don't want to be involved with that project anyway.

    Something else that a lot of people don't consider is you don't necessarily have to be directly involved with the project. In fact, that's how the most popular component in Java Web Parts (AjaxParts Taglib) came into existence: it was originally an extended Struts HTML taglib, but the Struts team didn't have any interest in it. So, originally I release it as part of the Struts SourceForge project, and then later spun it off into its own thing (completely independant of Struts now). So, don't be afraid to fork code, or start your own project on SourceForge or Google Code or somewhere like that.

    The other key point to remember is that any open-source work you do should be for YOU first and foremost. Don't just do something for the sake of being involved, do it because it interests you, because it "scratches an itch" for you. If something if useful to you, it tends to be useful to others.

    At the end of the day though, don't be shy! Ask questions, submit patches, take some baby steps and get your feet wet. Yes, there's a lot to learn, and yes it can seem overwhelming at first, but I guarantee you'll pick things up pretty quickly once you get into it. The two projects I mentioned are always accepting contributions, so feel free to stop by, join the mailing lists and get rolling!

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
  120. God? by Anonymous Coward · · Score: 0

    "and frankly I don't particularly believe in the guy"

    even if he came and said "hi"?

  121. NO! DON'T DO THAT! by Anonymous Coward · · Score: 0

    This is the lackey approach.

    The same fellows who were lucky to write a small program in the 90s are now big time maintainers of mainstream projects. And they say "duh! we gaveth yuo this software for free, which yuo would have otherwise paid for! now, yuo owe us and yuo must contribute back by cleaning our toilet!"

    But they're forgetting that back then they were little students who wouldn't put up with existing crapware that did not allow them to do interesting things!

    Screw them. Write your OWN project and release it to freshmeat/newgroups. Of course it's going to be burried by the noise of mainstream software. But releasing on freshmeat is the first step to understanding oss.

    Then, you can hack on projects, but ONLY when this is FUN or you have direct interests in the features you're hacking about. Even then, your patches may be dropped by asshat maintainers.

    1. Re:NO! DON'T DO THAT! by capsteve · · Score: 1

      note: the parent sage advice comes from AC.

        pick a project you can appreciate; one that will you use regularly, here's a few suggestion: network filesharing, content management system, firewall, i.e. samba, netatalk, geeklog, joomla, smoothwall, m0n0wall. if you don't have coding skills, but you have writing skills, help out with documentation. or grpahics. you're a coder? maybe you can help in the code auditing process. there are plenty of good existing projects out there, you don't need to reinvent the wheel. by the way, expect that as a new comer to any project, just volunteering will not be recieved with a standing ovation: prove you worth first by fixing/contributing even if it's answering forum questions. you're actions will get noticed. good luck m8.

      --
      three can keep a secret, if two are dead - benjamin franklin
  122. Document by xenocide2 · · Score: 1

    It's probably too late for my comment to be highly moderated, but really, if you want to be involved in a large and existing project, you have two choices. The first one is to fix bugs. The second way is to write documentation. Some people suggest TODO lists, but those are usually the hard parts that developers intentionally put off until there's nothing else they can feasibly do. What you really want is experience going through the motions of finding code, reading it, evaluating it, suggesting an improvement and following through.

    If you're a linux user for some time, I hope you've become accustomed to the practice of filing bugs with your distribution. Pick one that annoys you and decide to fix it. This is a very common way for a user to become a developer: fixing the problems that are important to them. That you haven't done this yet suggests you don't have such a pet bug. Trying to fix someone else's bug is usually painful. First you have to be able to duplicate the problem, then make sure it's a problem with the code, that it's not fixed in CVS, etc.

    This is why I suggest that you write or verify documentation, especially man pages. There's numerous advantages to this approach:
    * man pages have a standard format that you can learn and follow to guide you
    * man pages are a standard tool everyone else uses to find information
    * it demonstrates your ability to communicate eloquently in written language
    * it requires you to read source code and become familiar with a lot of the body of the code
    * your contribution will not be limited by your ability to understand obscure coding mistakes or hardware interactions you can't reproduce
    * there are far fewer people writing documentation than fixing bugs
    * using the revision history to determine when a feature was added is far simpler than determining when a bug was introduced
    * if there's a crazy build system, you won't be required to figure it out, though it would make sense to so you can write about it ;)

    Because you've taking a holistic approach to contributing, you'll be one of the few contributers who knows the whole source code. And you'll know so much of functionality that determining which reported bugs are configuration errors versus genuine bugs in code will be easier.

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

  123. you're going about this wrong by sentientbrendan · · Score: 1

    if you want to work on a c++ project, you need to sit down and learn c++ first. You've said you've only written a few lines of code. You just aren't ready to work on a large project right now in c or c++, or java. You could work on a smaller project maybe, but you might be best off writing tools and going through the learning process first.

    First, I'd look for projects that use skills you already have, and build on those. There are open source projects in c# if that's one of the .NET languages you've used. There's probably even open source projects in visual basic .NET, although I suspect a lot fewer.

    Also, generally, as a developer you should have a number of tools available to you. At some point you should probably learn c, as a ridiculous number of projects use that language (even many projects where it is arguably not the best choice). Don't bother learning c++ until you've mastered ANSI c unless you need c++ for a job or something. C projects are far more common in the open source world than c++ projects.

    Also, if you're more comfortable in higher level languages, you might consider java or python. Both are widely used in open source and commercial settings. Python especially is easy to learn quickly and use to produce something.

    It sucks not having any mentors around, but remember that many people teach themselves most of this stuff, and that books and the internet are good resources. If you have difficult technical questions, the best place to ask them is probably a mailing list (for libraries) or usenet group (for languages).

    The main thing to remember is to keep learning stuff and not to be satisfied with whatever training your college gave you. It sounds like your particular college was training people to use a specific tool chain to do a job, but as a developer you need to be able to learn how to use whatever tools are available. It's more valuable to just have really good problem solving skills, and a good understanding of computers.

  124. mailing lists by earlymon · · Score: 1

    Perhaps you've partially answered your own question -

    Try putting in your sig the following (as you see fit) for anyplace you care to participate:

    "I'm an Indian grad student whose CS teachers run away at the mention of Linux. Any assistance or advice on how to mesh with this group is most appreciated. I want to contribute and need help getting started."

    Ignore anyone who criticizes you for this - anyone who can't recall their beginnings is a lost cause, and to be avoided.

    It's about contributing, not power or prestige. You'll find your home. Best luck, and hope this helps!

    --
    Pathological kinda promises Path + Logical - but instead, you get stuck with pathetic.
  125. Start Your Own by Bigg+Matt · · Score: 1

    If you want to improve your skills, just start writing small programs that do the things you want them too. Put them up on a page, doesn't have to be fancy. To a business person, and even some IT, it looks amazing that your even doing it.

  126. Re:Well get the name right to start with: GNU by julipan · · Score: 1

    It's only Debian that caved into Stallman's desire to rename Linux for his own glory. Like most Free Software advocates, Stallman asks that the operating system is called by its technically correct name, GNU (or rather GNU/Linux for the added benefit of general familiarity with the Linux trademark). This is not for RMS' own glory (after all he didn't call it Stallmanix), but to lead the curious to the GNU philosophy instead of websites promoting "Linux" for its technical superiority. It is a matter of association; the GNU project was initiated to ensure anyone could use a computer without resorting to proprietary software, while the Linux kernel was made for fun and experimentation and just happened to fill the remaining major gap in an otherwise complete operating system by the name of GNU.

    Insisting people use the name GNU/Linux is what best serves Stallmans cause; promoting the idea that Free Software is benefitial to society, whereas proprietary software is not.

    A lot of books on GNU/Linux acknowledge that GNU is the technically correct name for the operating system, but that they choose to use the more known term "Linux" to avoid confusion. I'm all for avoiding confusion, but believe this is a simplification that only makes things more confusing for the uninitiated. While "what is GNU?" is easy to answer, "what is Linux?" will bring a multitude of more or less contradicting answers because the term is being used so generally.
    --
    I'm not like other individualists.
  127. Projects are worked on, not joined by Havoc+Pennington · · Score: 1

    My standard advice: http://ometer.com/hacking.html

    Anyway, you don't join a project - there's no membership list, and there's nobody who will tell you do this or do that or whatever.

    What you do is get on the forums (usually mailing lists, IRC, and bug tracker), start following the discussions, and help out where help appears to be needed. That's it.

    If you wait for hand-holding or permission you won't get anything done. You have to be persistent and just start doing stuff.

    1. Re:Projects are worked on, not joined by laejoh · · Score: 0

      I for one do not want to join a project that will accept me as a member!

  128. Re:Bob Gotse is the future of Open Sores by Anonymous Coward · · Score: 0
    I'm afraid you've gone beyond your level of knowledge here. Windows 2000/XP/Vista isn't even the same operating system as Windows 3.x/9x/Me. If you think the NT kernel is a toy, it just shows you don't really know anything about it.

    Development on Windows NT and Linux started about the same time, and in a technical sense Linux has always been behind in nearly every respect. NT had symmetric multiprocessing first, kernel threads first, file system journalling first, non-x86 ports first, a preemptable kernel first, asynchronous I/O first and the list goes on. A lot of features designed into NT from day one took literally more than a decade to be implemented on Linux, and some still aren't there at all.

    Linux isn't a bad system. It's a good Unix clone, and goes well beyond the classic Unix kernel, but it's always been a technological laggard compared to systems like NT or Solaris. That's simply the reality, and if you insist on calling one of the three systems (Unix, NT or Linux) a toy, I'm afraid Linux is by far the best candidate for the label. However, even if Linux was a toy in the 90s, and realistically it was, it isn't any longer. That doesn't mean it's caught up with NT and Solaris, but it's become a respectable system.

  129. Developers *are* the users by Rix · · Score: 1

    Non developers never use kernel interfaces. You have an API, work within it unless you absolutely can't. Simple coding style is not justification to make changes in the kernel which may silently cause bugs for thousands or millions of people.

    Elitism is not always a bad thing.

  130. clisp threads by jeffbopp · · Score: 0

    Impliment threads in Clisp. Everyone would cheer you. Seriously.

  131. Indictrans group by kanhaiya · · Score: 1

    Hi, We group of 7-8 graduates working on FOSS(Free and Open source) from last 3 years. We mainly work for spreading digital divide. we had done many e-gov projects freely. if you want to work on free and open source projects and live projects, you can join us. we love FOSS things.If you want to work with us, then you can contact us on my email-id i.e kanhaiya.kale@gmail.com or you can give me ring on 09970059663. Best Regards,

  132. Re:Bob Gotse is the future of Open Sores by lordtoran · · Score: 1

    I'm afraid I have to throw some actual facts into this perky troll-vs-troll thread: Kernel Comparison: Linux (2.6.21) versus Windows (Vista)

    --
    Want to hear the voice of GOD? cat /boot/vmlinuz > /dev/dsp
  133. that's not the technically correct name by r00t · · Score: 1

    Says who? Linus himself has said that the whole GNU/Linux thing is stupid, and the Lignux thing before that.

    People gathered around Linus to make an OS. An FTP admin in Finland chose the name.

    I guess it was a mistake to use Stallman's trivial little tools. (and they really were trivial, even gcc, until the Linux people started supplying fixes) Who'd have thought back in 1991 that he'd try to take over, crowning himself King?

    The kernel is the central part of the OS. Everything else just got dragged in bit by bit, most of it NOT from Stallman's gang.

  134. Become a TiddlyWiki programmer by randomibis · · Score: 1

    It's a very nice opensource project. It's easy to get started. You can write code in javascript. The community is friendly and small. There are many areas needing work. Check out: http://groups.google.com/groups/TiddlyWiki http://groups.google.com/groups/TiddlyWikiDev http://trac.tiddlywiki.org/

  135. Use Force::Luke by LightDruid · · Score: 1
    Check http://dice.com/ enter your favorite (desired) language and skills and take a look at the trends, use http://www.indeed.com/jobtrends to analyze this trends in depth (well, in ``depth'').

    Go to berlios.de, sf.net and check "Help wanted" section. Find an correlation between trends at job market, your goals and project which are currently looking for developers, choose right one.

    Enjoy.

  136. Re:Read the TODO list - then build a sample app by twoeggs · · Score: 1

    Many projects suffer more from lack of good sample or reference applications than good features. If you want to get attention, show people how to use a technology in a way they haven't thought of before. For example, one of the real accelerators for Ruby on Rails has been the success of BaseCamp, which is a really good sample application for RoR. In our project http://sourceforge.net/projects/activegrid/, we have posted a number of ToDos related not just to features but to providing examples of how to use the features http://dev.activegrid.com/community/?q=node/179 To misquote, a sample is worth a thousand features ;-)