<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>ProGuard Acknowledgements</title>
<script type="text/javascript" language="JavaScript">
<!--
if (window.self==window.top)
  window.top.location.replace("index.html#"+window.location.pathname+window.location.hash);
else {
  var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
  if (window.top.location.hash!=hash)
    window.top.location.hash=hash;
}
//-->
</script>
</head>
<body>

<h2>Acknowledgements</h2>

The first versions of <b>ProGuard</b> grew out of <b>RetroGuard</b>, which its
author Mark Welsh kindly made available under the GNU Lesser General Public
License. <b>RetroGuard</b> is a very nice piece of code, but it only performed
obfuscation. I started from the class file parsing code and wrote my own
shrinker, optimizer, obfuscator, and preverifier. As of version 4.0, all of the
original code has been rewritten, so the most obvious remaining similarity are
the program names.
<p>

Dirk Schnelle has contributed and maintained the first versions of the Ant
task. I have rewritten the implementation for version 3.0, but the XML schema
is still based on his work.
<p>

Since its first public release, many people have expressed their enthusiasm and
have chimed in with interesting ideas, bug reports, and bug fixes: Thorsten
Heit, Oliver Retzl, Jonathan Knudsen, Tarcisio Camara, Bob Drury, Dave Jarvis,
Marc Chapman, Dave Morehouse, Richard Osbaldeston, Peter Hawkins, Mark
Sherington, David Sitsky, James Manning, Ptolemy Oberin, Frank-Michael Moser,
QZ Shines, Thomas Singer, Michele Puccini, Roman Bednarek, Natalia Pujol,
Daniel Sj&ouml;blom, Jan Filipsky, Charles Smith, Gerrit Telkamp, Noel
Grandin, Torbj&ouml;rn S&ouml;derstedt, Clemens Eisserer, Clark Bassett,
Eduard Welch, Dawid Weiss, Andrew Wilson, Sean Owen, Niels Gron, Ishan Mehta,
Steven Adams, Xavier Kral, Stefan Martin, Toby Reyelts,
and many others. Thanks! Your feedback has been invaluable.
<p>

<a href="http://www.saikoa.com/" target="_top">Saikoa</a> is providing the
financial resources for this project.
<p>

<a href="http://sourceforge.net/projects/proguard/"
target="other">SourceForge</a> is providing the resources for hosting this
project and many other projects.
<p>

The code and these web pages were written using Oracle/Sun's JDKs, Linux,
IntelliJ IDEA, GNU emacs, bash, sed, awk, and a whole host of other tools that
continue to make programming interesting.
<p>

And finally, I'm a great fan of Sanaware's <a
href="http://www.javadocking.com/" target="other">Java Docking Library</a>.

<hr />
<noscript><div><a target="_top" href="index.html" class="button">Show menu</a></div></noscript>
<address>
Copyright &copy; 2002-2011
<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
</address>

</body>
</html>
