<!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>ProGuard Feedback</title>
</head>
<body>

<h2>Feedback</h2>

By now, I've invested a fair amount of time in <b>ProGuard</b>. You can help
by providing feedback! If you have problems, bugs, bug fixes, ideas,
encouragements, etc., please let me know:
<p>
<ul>
<li>The <a href="http://sourceforge.net/forum/forum.php?forum_id=182456"
    target="other">help forum</a> (at SourceForge) is the right place to ask
    questions about any problems you might have configuring and running
    <b>ProGuard</b>.
    <p>

<li>The <a href="http://sourceforge.net/forum/forum.php?forum_id=182455"
    target="other">open discussion forum</a> (at SourceForge) offers a place
    to share your thoughts and discuss new ideas.
    <p>

<li>The <a

    href="http://sourceforge.net/tracker/?atid=474704&group_id=54750&func=browse"
    target="other">bug tracking page</a> (at SourceForge) allows you to submit
    and consult bug reports. Please make sure the reports are complete and
    concise. If I can't reproduce the problem, I most likely can't fix it
    either.
    <p>

<li>The <a

    href="http://sourceforge.net/tracker/?atid=474707&group_id=54750&func=browse"
    target="other">feature request page</a> (at SourceForge) allows you to
    submit and consult feature requests. I generally have my own road map in
    mind, but this is the place express your interest in new and existing
    ideas.
    <p>

<li>The <a href="http://sourceforge.net/project/showfiles.php?group_id=54750"
    target="other">download section</a> at SourceForge and the <a
    href="http://software.freshmeat.net/projects/proguard/"
    target="other">project page</a> at FreshMeat offer the possibility to
    subscribe to the announcements of new releases. They are the most
    efficient way to stay abreast of the latest developments.
    <p>

<li>For anything that doesn't fall in the above categories, you can mail me
    directly at

<script type="text/javascript" language="JavaScript">
<!--
document.write("<a href=\"ma");
document.write("ilto:");
document.write("lafortune");
document.write("&#64;");
document.write("users.sourceforge.net\">");
document.write("lafortune");
document.write("&#64;");
document.write("users.sourceforge.net");
document.write("</a>");
document.write(" <em>or</em> at ");
document.write("<a href=\"ma");
document.write("ilto:");
document.write("eric");
document.write("&#64;");
document.write("graphics.cornell.edu\">");
document.write("eric");
document.write("&#64;");
document.write("graphics.cornell.edu");
document.write("</a>");
//-->
</script>
<noscript>
&lt;&nbsp;lafortune&nbsp;&#64;&nbsp;users&nbsp;.&nbsp;sourceforge&nbsp;.&nbsp;net&nbsp;&gt;
<em>or</em> at
&lt;&nbsp;eric&nbsp;&#64;&nbsp;graphics&nbsp;.&nbsp;cornell&nbsp;.&nbsp;edu&nbsp;&gt; (please remove the spaces)
</noscript>
.
</ul>
<p>
I can't promise a swift answer, or any answer at all, for that matter, but I
like seeing any constructive comments.
<p>

<b>ProGuard</b> isn't a typical open source project, in the sense that I am
<em>not</em> looking for code contributions. Developing on my own allows me to
do things my way, without the overhead and compromises associated with larger
projects.

<hr>
<address>
Copyright &copy; 2002-2009
<a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>.
</address>

</body>
</html>
