Hi Guillaume, Sorry for the delay in responding... On Thu, Apr 17, 2008 at 8:21 PM, Guillaume Ardaud - Haiku <haiku.poissonpilote@xxxxxxxxx> wrote: > > I've been meaning to contribute at my level to Haiku OS. > I read the "Getting Started" documents on the website, and I have installed > the required development tools as well as compiled the source code (I use > debian). Great, getting the code and compiling it is the important first step! > Now I would like to get into the Haiku project, so I hope some of you will > be able to give me a few pointers. > I'm a student in first year of software engineering in France (I speak > fluently both french and english). I can program in C and Ada fairly well (I > reckon), and I know a bit about 68k assembly and python. At the moment > however, I have no or very little knowledge of object oriented programming, > even though I'm willing to learn about that. Yes learning about object oriented code is definitely important, and there is plenty of that kind of code in Haiku. Though it would probably also be helpful for you to read some books or information on the internet about it too. Though in my experience you won't really learn it until you try to apply it :) > In general, I am interested about graphics programming (I know a bit about > the SDL) as well as Artificiall Intelligence. I also enjoy usability in > general (reading and implementing Human Interface Guidelines does not bother > me). However, I'd be fully willing to work on something else, and even > though these fields interest me, I am not an expert in these. In my opinion it is always good to work in areas you find interesting, especially for a volunteer open source project. Though after a while it is good to expand the areas you work to learn some new skills. > I hope you guys can tell me what I can do to help, which teams are needing > developers, etc. I can spend roughly 5-15 hours per week into development, > however that is a very broad estimation and is prone to fluctuate. At this point we are quite flexible and many of the major Haiku developers work in several areas of the code. For example Axel has been known to work on the kernel, the net stack, the app_server, drivers, and even small applications like the ActivityMonitor. He has even written a game for Haiku. Ingo is similar. So there aren't really "teams" anymore, though there are definitely certain people with certain skills and knowledge of the code. As for what you could work on, I will tell you how I figure out things to work on. Generally I just get the latest Haiku code, build it, and run it in VMware. I then mess around with it, trying different programs and looking for bugs. At this point in the project I can find quite a few bugs. I notice details a lot and also have an interest in User Interface Design, so sometimes the "bugs" I see are just small graphical glitches, or something about the interface I don't like. So I will then look at that part of the code and try to fix the bug. Sometimes doing that can find other problems in the code, and many times a simple fix will become more complicated. But in general I try not to go too complicated when making a fix, since at this point our main focus is trying to get Haiku ready for an alpha release. Another thing to do is look at the list of bugs others have reported on http://dev.haiku-os.org. Fixing these is always good. Also if you find a bug it is generally good to report it on the bug tracker, even if you are going to fix it yourself (though I will admit I do not do this very often.) But you should especially do this if you cannot see how to fix the bug. Just make sure there isn't already a similar bug posted. Another good area to work on is to convert some of Haiku's applications to use the GUI layout system. I will be posting some articles to the web-site about this soon. Once you have fixed a bug in the code, you can create a patch with svn diff, and then either attach that to a bug (preferred) or send it to this mailing list. > Thanks in advance for your answers :) No problem. One thing I definitely want to suggest is to start small. It is tempting to try to do something big right at the beginning, but sometimes that can be frustrating when you are starting out. So just fix a few small things and get some successes under your belt, then you can try harder things. I say this because I too frequently like to do things that are too hard at first :) Also if you submit a patch, there is a good chance we other developers will have some feedback. We try to be nice, but either way don't be offended if we suggest changes or improvements. That is a great way to learn how to write better code! Finally be very sure that you carefully follow our coding guidelines (http://haiku-os.org/documents/dev/haiku_coding_guidelines), as we are very picky about that. Regards, Ryan