<latemp_subject "Contributions Made to external Open-Source Projects" />
<b>Last Updated:</b> 4-October-2004.
<h2 id="toc">Table of Contents</h2>
<h2 id="gimp"><a href="http://www.gimp.org/">GIMP - The GNU Image
I wrote the so-called gradient-fu patch, which adds Procedural Database (or
PDB) handlers to manipulate gradients. This patch was written and re-written
for several versions of the GIMP, and was finally integrated in the 2.1.x
branch (which has lead to GIMP 2.2.0), with some help by Michael Natterer.
Afterwards, I added a rudimentary PDB entry to gimpressionist. Seeing its
code could use a lot of refactoring, I started a heavy refactoring of the
gimpressionist code, and am now its maintainer. This was followed by a small
amount of bug squashing and cleanups.
<h2 id="subversion"><a href="http://subversion.tigris.org/">Subversion - A Compelling Version
I started out by bug-squashing some bugs I found in the
<a href="http://subversion.tigris.org/project_issues.html">Issue Tracker</a>.
The largest contribution I did was adding a <tt>--config-dir</tt> directive
to the Subversion clients, to specify a different directory where the
configuration files reside. The original motive for this, was to fix the
test suite when ran using a configuration that breaks it.
After some break, I
on the get_locations() patch</a> which enabled tracing the past locations
of nodes in the Subversion repository. (which is useful for performing some
operations). This patch took a lot of research, a lot work, and I received a
lot of help from different people. Eventually, a reworked version of the
Patch, was applied by Peter N. Lundblad.
<h2 id="perl5"><a href="http://www.perl.org/">Perl 5 Core</a></h2>
I contributed some patches to
<a href="http://www.perldoc.com/perl5.8.4/pod.html">the perl 5 core
documentation</a> to make it clearer and easier to understand.
<h2 id="syscalltrack"><a href="http://syscalltrack.sourceforge.net/">Syscalltrack - A Framework
for Tracking System Calls</a></h2>
I contributed many cleanups and refactorings to a Perl 5 script that generated
code out of system calls definitions. As an appreciation of my work, I and
all the other contributors got a T-shirt with the Syscalltrack logo.
Later on, I did some work on the project's web-site.
<h2 id="www-form"><a href="http://web-cpan.berlios.de/modules/WWW-Form/">WWW::Form - a Perl Module
for Web Forms Managament</a></h2>
I encountered WWW::Form because I looked for an easy way to handle Web forms
in Perl. After experimenting with it a bit I discovered that there were more
stuff there that I needed (and added it to my copy), so I contacted the author,
<a href="http://www.benschmaus.com/">Benjamin Schmaus</a> and he was quite
cooperative. Eventually, I also discovered some
<a href="http://www.securiteam.com/unixfocus/5IP0L2KBPM.html">Cross Site
Scripting bugs</a> there, which were also fixed. Other than that, the module
was extended, improved, and a rudimentary test suite was written for it.
Ben and I have since been chatting using Instant Messaging.
<h2 id="freecell-pro"><a href="http://www.rrhistorical.com/rrdata/Fcpro65/">Freecell
Freecell Pro is a feature-ful implementation of the solitaire card game
<a href="http://en.wikipedia.org/wiki/Freecell">Freecell</a> for Win32. Being
the author of
Solver</a>, I wanted to integrate it into Freecell Pro. Thus, I reached
one of the Freecell Pro core developers and current maintainer,
Ettlinger</a>. Adrian was eager to incorporate my solver as well, and we
cooperated on incoroporating it.
The two programs had some incompatibility problems, which had to be
resolved by Adrian and me. Eventually, however, the integration was performed
successfully. Adrian and I became friends, and we have been talking by
E-mail since then.
<h2 id="error.pm"><a href="http://search.cpan.org/dist/Error/">The
Error.pm CPAN distribution</a></h2>
After a long time of neglect by its contemporary maintainer, I adopted this
module, and fixed the pending bugs in it. After the originator (Graham Barr)
made me a CPAN maintainer, I uploaded several corrected versions to CPAN.
Further work and maintenance of this module was performed by
<a href="http://www.leonerd.org.uk/">Paul Evans</a> .
<a href="http://use.perl.org/~Shlomi+Fish/journal/29151">"Maintenance of
Error.pm"</a> - the blog entry that started it all.
<a href="http://use.perl.org/~Shlomi+Fish/journal/29210">"Error.pm - the
Conclusion"</a> - what happened afterwards.
<h2 id="xml-rss"><a href="http://search.cpan.org/dist/XML-RSS/">XML::RSS - a
CPAN Module for Processing RSS</a></h2>
After running into an XML::RSS bug, I submitted a patch for it, which was
eventually integrated. I noticed the module had many open tickets, so I
submitted patches to fix bugs (while adding regression tests to make sure
they wouldn't be re-introduced). When I started contributing, the module in
general suffered from poor code quality and a low test coverage. Together
with the maintainer, I have gradually remedied the issues from which the
In 4 January 2007, I received
grant from The Perl Foundation to continue working on XML::RSS</a>. In
accordance with the grant, I increased the test coverage of XML::RSS to 100%
and then heavily refactored and cleaned up the module's code. As a result, the
code quality of the module has heavily increased and it was made safer and more
amenable for future changes.