Fairly recently I went through the process of being allowed to participate in an open source project 'Navit'Working for a big company I have to just make sure there are no potential contamination issues. Very boring, but done now.
Anyhow as it happens I've not done much more than look at the source and realise I don't know enough about C to be able to do much. Particulalry given the code has basically no comments. However I was able to figure out how to do the main thing I wanted, which was to set up the On-Screen-Display settings to be appropriate to the n810. That involved figuring out how to set position, width and heigh of the box and the font size to use. Having figured out that much I decided the most helpful thing I could do for the project, or at least for the n810 community, was to add the information to the project Wiki.
In doing this I found a couple of the OSD items were not working, and quickly after I posted about it to Internet tablet talk, Gerrit provided a fix. He obviously understands the code way better than I and it feels like maybe I'm better off trying to help by trying to document things and help others get going. Rather than attempting to get good enough to contribute code.
That said there are things I'm still tempted to change. At the moment all config comes from a single xml config file. And everyone needs to edit this file to even get things working. I'd be tempted to split things up a little to allow people to get going and updating with community contribution easier. So I'd have map location in the main file, but all the graphic config in another. That way the community could create various pre-canned layouts that could be dropped in place with no hand editing required.
Likewise for vehicle schemas, that dictate what is drawn on the map at what scale. And what colour. Whilst the ability to modify these things is cool, it would be nice to have an eaiser time of sharing created profiles without having to hand merge files.
However I'm not sure where I'd start in terms of altering the code to allow for split up config. And even if I knew how to code it, I don't know anyone would agree it's the right thing to do.
Since starting to play with navit its already come on a long way. I can now have a 3d view whilst driving. It looks very cool. BUT... It's still too slow to keep up when driving. And has a tendancy to crash if it has to recalculate a long route. And, for the moment at least, the routing does a poor job compared to a comercial solution. However, it's FREE! It's improving fast, and it is the most promising option to be able to ditch proprietary maps. My main concern is that maybe the n810 simply isn't fast enough to do a good job. Of course that can soon be remedied when Nokia launch the next generation internet tablet. But it would be nice to think that maybe some tweaks can be applied, some optimizations made, that would give it that boost required to really replace my old tom-tom.
Of course all this is competing for my hobby time with my main hobby of wood turning, and I get much more joy from that than I get from feeling stupid looking at C. But maybe in time I'll gain enough understanding to contribute in more meaningful ways. Until then I'll enjoy keeping up with the latest and seeing it improve.