<p>An introduction to free software development, for those
interested in participating.</p>
- <p><tt><a href="free-sw-devel.html">http://www.hungry.com/~pere/mypapers/free-sw-devel/free-sw-devel.html</a></tt></p>
+ <p><tt><a href="http://www.hungry.com/~pere/mypapers/free-sw-devel/free-sw-devel.html">http://www.hungry.com/~pere/mypapers/free-sw-devel/free-sw-devel.html</a></tt></p>
<div class="presenter">Petter Reinholdtsen
<br>pere@hungry.com
<li>debian developer</li>
- <li>initiater and current tech coordinator in skolelinux</li>
+ <li>initiator and current tech coordinator in skolelinux</li>
<li>currently employed at USIT, UiO</li>
<h2>Getting involved and helping out</h2>
- <p>So, you found a nice project on Freshmeat, and want to help
+ <p>So, you found a nice project on
+ <a href="http://freshmeat.net/">Freshmeat</a>, and want to help
improve it...</p>
<ul>
<li>read the project documentation
<li>join the relevant mailing list, IRC channels, etc
<li>use mailing lists
- <li>irc, wiki
+ <li>update the wiki
<li>get to know the source
<li>understand licensing issues
<li>learn to use the bug tracking system (bts)
<ul>
<li>if you can fix the problem you are facing, remember to let
the package author know about this.
- <li>make a patch! (<tt>patch -u file.orig file.new >
+ <li>make a patch! (<tt>diff -u file.orig file.new >
myfix.diff</tt>)
<li>send the patch to the developer list, or possibly into the
bts (learn how the developers want it)
<h2>Joining a free software project</h2>
<ul>
- <li>start by checking out the bugs in the btw
+ <li>start by checking out the bugs in the bts
<li>try to fix them
<li>give feedback into the bts on the reported bugs, after trying
<li>consider sourceforge
- <li>
-
</ul>
<p>This software suck. A lot! - Do not take it personally.</p>
<h2>Use the best free development tools available</h2>
- - compiler
- - libraries
- - debugging utilities (gdb, ddd, dmalloc, valgrind, strace, ltrace,
- electric fence, fncchk, etc)
+ <ul>
+ <li>compile with lots of warnings
+ <li>use existing libraries, but avoid to many dependencies
+ <li>learn to use debugging utilities (gdb, ddd, dmalloc,
+ valgrind, strace, ltrace, electric fence, fncchk, etc)
+ <li>learn to use profiling tools (kprof, gprof, etc)
+ <li>write automatic self testing
+ <li>do automatic coverage testing to check the quality of the
+ self test
+
+ </ul>
-
- <h2>Running a successful free software project</h2>
+ <h2>Running a successful free software project I</h2>
<ul>
+ <li>be responsive to comments and suggestions
<li>write down where you want the project to go
<li>do not accept every change. make sure you like it first
<li>let everyone work on the things that interests them, use the
carrot, as you have no whip
<li>set up and use a bts
+
+ </ul>
+
+ <h2>Running a successful free software project II</h2>
+
+ <ul>
+
<li>create web pages for your project, include screen shots, a
short summary and who to contact for more info
<p>Leading by example is your only option.</p>
- - hold oversikt over hvem som gjør hva
- - kommuniser prosjektplanen til alle prosjektdeltagerne
- - reduce friction and avoid hard language
+ <ul>
+
+ <li>communicate the project plan to all project members
+ <li>try to reduce friction and avoid hard language
+ <li>keep track of what everyone is working on
+ </ul>
<h2>Conclusion</h2>
<li>working on free software is very rewarding and challenging
- <li>nobody owns you a fawour
+ <li>nobody owns you a favour, get used to it
- <li>
+ <li>do it for your own gain, not to get rewards from others
</ul>
<h2>References</h2>
+ <ul>
+
+ <li>"The Practice of Programming" by Kernighan and Pike.
+
+ <li>"<a href="http://opensource.mit.edu/online_paper">Free /
+ Open Source Research Community - online papers</a>,
+ <tt>http://opensource.mit.edu/online_paper</tt></li>
+
+ </ul>
+
<h2>Thank you very much</h2>
<h3>Questions?</h3>