<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>MyThinkPond</title>
	<atom:link href="http://mythinkpond.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mythinkpond.wordpress.com</link>
	<description>Random Thoughts on Java, Scala, J2EE, JVM, Linux and Computer Technology</description>
	<lastBuildDate>Thu, 29 Dec 2011 03:47:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mythinkpond.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/aa62afd089d17146656225bd9367cc6c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>MyThinkPond</title>
		<link>http://mythinkpond.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mythinkpond.wordpress.com/osd.xml" title="MyThinkPond" />
	<atom:link rel='hub' href='http://mythinkpond.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How-To Install mod_python and the compile error &#8211; apxs:Error: Command failed with rc=65536</title>
		<link>http://mythinkpond.wordpress.com/2011/12/28/installing-mod_python-compile-error-apxserror-command-failed-with-rc65536/</link>
		<comments>http://mythinkpond.wordpress.com/2011/12/28/installing-mod_python-compile-error-apxserror-command-failed-with-rc65536/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 03:09:12 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[mod_python]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[mod_python setup]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=312</guid>
		<description><![CDATA[Below are my steps to installing mod_python under Apache HTTPD in CentOS 6.2. Download mod_python-3.3.1.tgz or a later version of mod_python available here: http://archive.apache.org/dist/httpd/modpython/ You may encounter the following error at this point: apxs:Error: Command failed with rc=65536 If so&#8230; no worries&#8230; This bug has been addressed here: https://bugzilla.redhat.com/show_bug.cgi?id=465246 Download the patch and (if you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=312&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Below are my steps to installing mod_python under Apache HTTPD in CentOS 6.2.</p>
<p>Download mod_python-3.3.1.tgz or a later version of mod_python available here: </p>
<p>http://archive.apache.org/dist/httpd/modpython/</p>
<p><pre class="brush: plain;">
curl -O http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
tar zxvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure
make
</pre></p>
<p>You may encounter the following error at this point:<br />
<code>apxs:Error: Command failed with rc=65536</code></p>
<p>If so&#8230; no worries&#8230;</p>
<p>This bug has been addressed here:</p>
<p>https://bugzilla.redhat.com/show_bug.cgi?id=465246</p>
<p>Download the patch and (if you can figure out how to patch like I did, I manually opened the file and examined the contents:<br />
<code><br />
diff -rNu mod_python-3.3.1/src/connobject.c mod_python-3.3.1-atomix/src/connobject.c<br />
--- mod_python-3.3.1/src/connobject.c	2006-12-03 05:36:37.000000000 +0100<br />
+++ mod_python-3.3.1-atomix/src/connobject.c	2008-10-02 14:10:02.000000000 +0200<br />
@@ -139,7 +139,7 @@<br />
     bytes_read = 0;</p>
<p>     while ((bytes_read &lt; len || len == 0) &amp;&amp;<br />
-           !(b == APR_BRIGADE_SENTINEL(b) ||<br />
+           !(b == APR_BRIGADE_SENTINEL(bb) ||<br />
              APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {</p>
<p>         const char *data;<br />
</code></p>
<p>Based on the file contents&#8230; Edit the following file below the unzipped folder (/mod_python-3.3.1/src/connobject.c)</p>
<p>Change line 142 from<br />
<code>!(b == APR_BRIGADE_SENTINEL(b) ||</code><br />
to<br />
<code>!(b == APR_BRIGADE_SENTINEL(bb) ||</code> </p>
<p>Save the file. And then run &#8220;make&#8221; again.</p>
<p>This time you should see no errors. The last step is to run &#8220;make install&#8221; and you&#8217;re all set.</p>
<blockquote><p>
Now don&#8217;t forget to edit your main config and add<br />
    LoadModule python_module /usr/lib64/httpd/modules/mod_python.so<br />
and if your configuration uses ClearModuleList, then also<br />
    AddModule mod_python.c
</p></blockquote>
<p>Next, Configure mod_python to work with Apache</p>
<p>Edit your httpd.conf (/etc/httpd/conf/httpd.conf), add:</p>
<p><pre class="brush: plain;">

LoadModule python_module /usr/lib64/httpd/modules/mod_python.so

#Under the AddHandler section

&lt;Directory /var/www/html&gt;
    AddHandler mod_python .py
    PythonHandler myscript
    PythonDebug On
&lt;/Directory&gt;

</pre></p>
<p>To learn what the &#8220;AddHandler&#8221; does go here:</p>
<p>http://www.modpython.org/live/mod_python-3.2.8/doc-html/tut-what-it-do.html</p>
<p>Stop and Start Apache HTTPD (/etc/init.d/httpd restart)</p>
<p>You&#8217;re all set.</p>
<p>To verify, create a file in your DocumentRoot (/var/www/html)</p>
<p>&lt;myscript.py&gt;<br />
<pre class="brush: plain;">
#!/usr/bin/python
from mod_python import apache

def handler(req):

    req.content_type = &quot;text/plain&quot;
    req.write(&quot;Hello World from Apache HTTPD!&quot;)

    return apache.OK
</pre></p>
<p>As a last step, goto http://&lt;your_ip&gt;:&lt;your_port_80&gt;/abc.py</p>
<p>You should see, &#8220;Hello World from Apache HTTPD!&#8221;. Notice that I didn&#8217;t goto &#8220;myscript.py&#8221;. And I have pointed to &#8220;myscript&#8221; in the AddHandler parameter. This &#8220;myscript.py&#8221; acts like the Controller in a MVC framework. So if you were installing an application like Django&#8230; then Django will act as the gatekeeper passing requests back and forth.</p>
<p>To learn more about the handler, go here:</p>
<p>http://www.modpython.org/live/current/doc-html/inst-testing.html</p>
<p>or here&#8217;s an excerpt from that site:</p>
<blockquote><p>
Note that according to the configuration written above, you can also point your browser to any URL ending in .py in the test directory. You can for example point your browser to /test/foobar.py and it will be handled by mptest.py. That&#8217;s because you explicitely set the handler to always be mptest, whatever the requested file was. If you want to have many handler files named handler1.py, handler2.py and so on, and have them accessible on /test/handler1.py, /test/handler2.py, etc., then you have to use a higher level handler system such as the mod_python publisher (see 3.1), mpservlets or Vampire. Those are just special mod_python handler that know how to map requests to a dynamically loaded handler.
</p></blockquote>
<p>After writing this blog, I noticed that some users may prefer a PHP like feel. This can be done by adding a &#8220;Publisher Handler&#8221; (PSP).</p>
<p>Edit your httpd.conf (/etc/httpd/conf/httpd.conf), add:</p>
<p><pre class="brush: plain;">

LoadModule python_module /usr/lib64/httpd/modules/mod_python.so

#Change AddHandler to the following

&lt;Directory /var/www/html&gt;
   AddHandler mod_python .psp .psp_
   PythonHandler mod_python.psp
   PythonDebug On
&lt;/Directory&gt;

</pre></p>
<p>Stop and start httpd (/etc/init.d/httpd restart).</p>
<p>Now create a file &#8220;test.psp&#8221; under DocumentRoot (/var/www/html)</p>
<p><pre class="brush: plain;">

&lt;%
import time
weekday = time.strftime('%A', time.localtime(time.time()))
message = 'Today is %s.' % weekday
%&gt;
&lt;html&gt;&lt;body&gt;
&lt;h2&gt;&lt;%= message %&gt;&lt;/h2&gt;
&lt;/html&gt;&lt;/body&gt;

</pre></p>
<p>When you visit http://&lt;your_ip&gt;:&lt;your_port_80&gt;/test.psp</p>
<p>You should see &#8220;Today is &#8212;&#8221; message.</p>
<p>You can learn more about the PSP handler here:</p>
<p>http://webpython.codepoint.net/mod_python_tutorial</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=312&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/12/28/installing-mod_python-compile-error-apxserror-command-failed-with-rc65536/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>How to upgrade to Python 2.7 on CentOS</title>
		<link>http://mythinkpond.wordpress.com/2011/12/28/how-to-upgrade-to-python-2-7-on-centos/</link>
		<comments>http://mythinkpond.wordpress.com/2011/12/28/how-to-upgrade-to-python-2-7-on-centos/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 17:58:32 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[python 2.7]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=302</guid>
		<description><![CDATA[If you tried upgrading to Python 2.7 on CentOS, you will quickly find out that the RPM&#8217;s don&#8217;t exist for this in the repos. So here&#8217;s a short summary of what I did to upgrade my Python to 2.7 on CentOS. Based on a few Google searches&#8230; I discovered that a few dependent packages are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=302&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you tried upgrading to Python 2.7 on CentOS, you will quickly find out that the RPM&#8217;s don&#8217;t exist for this in the repos. So here&#8217;s a short summary of what I did to upgrade my Python to 2.7 on CentOS.</p>
<p>Based on a few Google searches&#8230; I discovered that a few dependent packages are required before you try upgrading to Python 2.7.</p>
<p><pre class="brush: plain;">

yum -y groupinstall 'Development Tools'
yum -y install openssl-devel* ncurses-devel* zlib*.x86_64&lt;/pre&gt;
yum -y install bzip2 bzip2-devel bzip2-libs

</pre></p>
<p>Next download the latest tar/gzip/tgz available here:<br />
<a href="http://python.org/ftp/python/2.7/" target="_blank">http://python.org/ftp/python/2.7/</a></p>
<p><pre class="brush: plain;">

#Download the latest available at this time
curl -O http://python.org/ftp/python/2.7/Python-2.7.tgz
#Unzip/expand file
tar xfz Python-2.7.tgz
#Change Directory to the unzipped folder
cd Python-2.7
#read README file or you can follow the lines below
./configure
#you could also run configure with threads and shared enabled
#./configure --prefix=/opt/python2.7 --with-threads --enable-shared
#Compile
make
#Install
make install
#To verify if the install succeeded
python -V
#Use UPPERCASE 'V' - not lower-case.
#Output will be &quot;Python 2.7&quot;
#Sometimes you may need to exit out of your shell
#and them come back in to see the version changes.
#So best exit your current shell prompt and reopen
#a new before checking the version.

</pre></p>
<p>You&#8217;re all set. You&#8217;ve just upgraded to Python 2.7.</p>
<p>The next logical step that you need to perform is to install the setup tools that allows you to install modules. (Please note that setuptools is not available for Python 3.0+, instead use Distrubute available here &#8211; http://pypi.python.org/pypi/distribute)</p>
<p>Download the latest setuptools for your version of Python (2.7 in this case) from here:</p>
<p>http://pypi.python.org/pypi/setuptools#downloads</p>
<p><pre class="brush: plain;">

curl -O http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

chmod 775 setuptools-0.6c11-py2.7.egg

sh setuptools-0.6c11-py2.7.egg

#This should install the egg here: /usr/local/lib/python2.7/site-packages/

</pre></p>
<p>Next you want to install &#8220;PIP&#8221;, this enables the download and install of modules in Python:</p>
<p><pre class="brush: plain;">
&lt;pre&gt;$ curl -O http://pypi.python.org/packages/source/p/pip/pip-1.0.tar.gz
$ tar xvfz pip-1.0.tar.gz
$ cd pip-1.0
$ python setup.py install # may need to be root&lt;/pre&gt;
</pre></p>
<p>Now you&#8217;re all set. Suppose you wanted to install a module called &#8216;simplejson&#8217;.</p>
<p>You can now do this using command syntax like this:</p>
<pre>pip install simplejson</pre>
<p>Cheers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/302/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=302&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/12/28/how-to-upgrade-to-python-2-7-on-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>How to list the package contents of a yum install?</title>
		<link>http://mythinkpond.wordpress.com/2011/12/25/how-to-list-the-package-contents-of-a-yum-install/</link>
		<comments>http://mythinkpond.wordpress.com/2011/12/25/how-to-list-the-package-contents-of-a-yum-install/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 16:43:03 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=296</guid>
		<description><![CDATA[Sometimes you need to see what&#8217;s installed as part of a package via yum. To see the package contents you can use a utility that&#8217;s available on the RHEL/CentOS. If you do not have this utility available, you can install it by using this command Here is a sample output from looking at the package [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=296&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes you need to see what&#8217;s installed as part of a package via yum. To see the package contents you can use a utility that&#8217;s available on the RHEL/CentOS.</p>
<p><pre class="brush: jscript;">

$repoquery --list **packagename**

</pre></p>
<p>If you do not have this utility available, you can install it by using this command</p>
<p><pre class="brush: plain;">

$yum install yum-utils

</pre></p>
<p>Here is a sample output from looking at the package contents of Apache httpd.</p>
<p><pre class="brush: plain;">

$repoquery --list httpd

/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/logs
/etc/httpd/modules
/etc/httpd/run
/etc/logrotate.d/httpd
/etc/rc.d/init.d/httpd
/etc/sysconfig/httpd
/usr/lib64/httpd
/usr/lib64/httpd/modules
/usr/lib64/httpd/modules/mod_actions.so
/usr/lib64/httpd/modules/mod_alias.so
/usr/lib64/httpd/modules/mod_asis.so
/usr/lib64/httpd/modules/mod_auth_basic.so
/usr/lib64/httpd/modules/mod_auth_digest.so
/usr/lib64/httpd/modules/mod_authn_alias.so
/usr/lib64/httpd/modules/mod_authn_anon.so
/usr/lib64/httpd/modules/mod_authn_dbd.so
/usr/lib64/httpd/modules/mod_authn_dbm.so
/usr/lib64/httpd/modules/mod_authn_default.so
/usr/lib64/httpd/modules/mod_authn_file.so
/usr/lib64/httpd/modules/mod_authnz_ldap.so
/usr/lib64/httpd/modules/mod_authz_dbm.so
/usr/lib64/httpd/modules/mod_authz_default.so
/usr/lib64/httpd/modules/mod_authz_groupfile.so
/usr/lib64/httpd/modules/mod_authz_host.so
/usr/lib64/httpd/modules/mod_authz_owner.so
/usr/lib64/httpd/modules/mod_authz_user.so
/usr/lib64/httpd/modules/mod_autoindex.so
/usr/lib64/httpd/modules/mod_cache.so
/usr/lib64/httpd/modules/mod_cern_meta.so
/usr/lib64/httpd/modules/mod_cgi.so
/usr/lib64/httpd/modules/mod_cgid.so
/usr/lib64/httpd/modules/mod_dav.so
/usr/lib64/httpd/modules/mod_dav_fs.so
/usr/lib64/httpd/modules/mod_dbd.so
/usr/lib64/httpd/modules/mod_deflate.so
/usr/lib64/httpd/modules/mod_dir.so
/usr/lib64/httpd/modules/mod_disk_cache.so
/usr/lib64/httpd/modules/mod_dumpio.so
/usr/lib64/httpd/modules/mod_env.so
/usr/lib64/httpd/modules/mod_expires.so
/usr/lib64/httpd/modules/mod_ext_filter.so
/usr/lib64/httpd/modules/mod_filter.so
/usr/lib64/httpd/modules/mod_headers.so
/usr/lib64/httpd/modules/mod_ident.so
/usr/lib64/httpd/modules/mod_include.so
/usr/lib64/httpd/modules/mod_info.so
/usr/lib64/httpd/modules/mod_ldap.so
/usr/lib64/httpd/modules/mod_log_config.so
/usr/lib64/httpd/modules/mod_log_forensic.so
/usr/lib64/httpd/modules/mod_logio.so
/usr/lib64/httpd/modules/mod_mime.so
/usr/lib64/httpd/modules/mod_mime_magic.so
/usr/lib64/httpd/modules/mod_negotiation.so
/usr/lib64/httpd/modules/mod_proxy.so
/usr/lib64/httpd/modules/mod_proxy_ajp.so
/usr/lib64/httpd/modules/mod_proxy_balancer.so
/usr/lib64/httpd/modules/mod_proxy_connect.so
/usr/lib64/httpd/modules/mod_proxy_ftp.so
/usr/lib64/httpd/modules/mod_proxy_http.so
/usr/lib64/httpd/modules/mod_proxy_scgi.so
/usr/lib64/httpd/modules/mod_reqtimeout.so
/usr/lib64/httpd/modules/mod_rewrite.so
/usr/lib64/httpd/modules/mod_setenvif.so
/usr/lib64/httpd/modules/mod_speling.so
/usr/lib64/httpd/modules/mod_status.so
/usr/lib64/httpd/modules/mod_substitute.so
/usr/lib64/httpd/modules/mod_suexec.so
/usr/lib64/httpd/modules/mod_unique_id.so
/usr/lib64/httpd/modules/mod_userdir.so
/usr/lib64/httpd/modules/mod_usertrack.so
/usr/lib64/httpd/modules/mod_version.so
/usr/lib64/httpd/modules/mod_vhost_alias.so
/usr/sbin/apachectl
/usr/sbin/htcacheclean
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
/usr/sbin/httxt2dbm
/usr/sbin/rotatelogs
/usr/sbin/suexec
/usr/share/doc/httpd-2.2.15
/usr/share/doc/httpd-2.2.15/ABOUT_APACHE
/usr/share/doc/httpd-2.2.15/CHANGES
/usr/share/doc/httpd-2.2.15/LICENSE
/usr/share/doc/httpd-2.2.15/NOTICE
/usr/share/doc/httpd-2.2.15/README
/usr/share/doc/httpd-2.2.15/VERSIONING
/usr/share/man/man8/apachectl.8.gz
/usr/share/man/man8/htcacheclean.8.gz
/usr/share/man/man8/httpd.8.gz
/usr/share/man/man8/rotatelogs.8.gz
/usr/share/man/man8/suexec.8.gz
/var/cache/mod_proxy
/var/lib/dav
/var/log/httpd
/var/run/httpd
/var/www
/var/www/cgi-bin
/var/www/error
/var/www/error/HTTP_BAD_GATEWAY.html.var
/var/www/error/HTTP_BAD_REQUEST.html.var
/var/www/error/HTTP_FORBIDDEN.html.var
/var/www/error/HTTP_GONE.html.var
/var/www/error/HTTP_INTERNAL_SERVER_ERROR.html.var
/var/www/error/HTTP_LENGTH_REQUIRED.html.var
/var/www/error/HTTP_METHOD_NOT_ALLOWED.html.var
/var/www/error/HTTP_NOT_FOUND.html.var
/var/www/error/HTTP_NOT_IMPLEMENTED.html.var
/var/www/error/HTTP_PRECONDITION_FAILED.html.var
/var/www/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
/var/www/error/HTTP_REQUEST_TIME_OUT.html.var
/var/www/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
/var/www/error/HTTP_SERVICE_UNAVAILABLE.html.var
/var/www/error/HTTP_UNAUTHORIZED.html.var
/var/www/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
/var/www/error/HTTP_VARIANT_ALSO_VARIES.html.var
/var/www/error/README
/var/www/error/contact.html.var
/var/www/error/include
/var/www/error/include/bottom.html
/var/www/error/include/spacer.html
/var/www/error/include/top.html
/var/www/error/noindex.html
/var/www/html
/var/www/icons
/var/www/icons/README
/var/www/icons/README.html
/var/www/icons/a.gif
/var/www/icons/a.png
/var/www/icons/alert.black.gif
/var/www/icons/alert.black.png
/var/www/icons/alert.red.gif
/var/www/icons/alert.red.png
/var/www/icons/apache_pb.gif
/var/www/icons/apache_pb.png
/var/www/icons/apache_pb2.gif
/var/www/icons/apache_pb2.png
/var/www/icons/apache_pb2_ani.gif
/var/www/icons/back.gif
/var/www/icons/back.png
/var/www/icons/ball.gray.gif
/var/www/icons/ball.gray.png
/var/www/icons/ball.red.gif
/var/www/icons/ball.red.png
/var/www/icons/binary.gif
/var/www/icons/binary.png
/var/www/icons/binhex.gif
/var/www/icons/binhex.png
/var/www/icons/blank.gif
/var/www/icons/blank.png
/var/www/icons/bomb.gif
/var/www/icons/bomb.png
/var/www/icons/box1.gif
/var/www/icons/box1.png
/var/www/icons/box2.gif
/var/www/icons/box2.png
/var/www/icons/broken.gif
/var/www/icons/broken.png
/var/www/icons/burst.gif
/var/www/icons/burst.png
/var/www/icons/c.gif
/var/www/icons/c.png
/var/www/icons/comp.blue.gif
/var/www/icons/comp.blue.png
/var/www/icons/comp.gray.gif
/var/www/icons/comp.gray.png
/var/www/icons/compressed.gif
/var/www/icons/compressed.png
/var/www/icons/continued.gif
/var/www/icons/continued.png
/var/www/icons/dir.gif
/var/www/icons/dir.png
/var/www/icons/diskimg.gif
/var/www/icons/diskimg.png
/var/www/icons/down.gif
/var/www/icons/down.png
/var/www/icons/dvi.gif
/var/www/icons/dvi.png
/var/www/icons/f.gif
/var/www/icons/f.png
/var/www/icons/folder.gif
/var/www/icons/folder.open.gif
/var/www/icons/folder.open.png
/var/www/icons/folder.png
/var/www/icons/folder.sec.gif
/var/www/icons/folder.sec.png
/var/www/icons/forward.gif
/var/www/icons/forward.png
/var/www/icons/generic.gif
/var/www/icons/generic.png
/var/www/icons/generic.red.gif
/var/www/icons/generic.red.png
/var/www/icons/generic.sec.gif
/var/www/icons/generic.sec.png
/var/www/icons/hand.right.gif
/var/www/icons/hand.right.png
/var/www/icons/hand.up.gif
/var/www/icons/hand.up.png
/var/www/icons/icon.sheet.gif
/var/www/icons/icon.sheet.png
/var/www/icons/image1.gif
/var/www/icons/image1.png
/var/www/icons/image2.gif
/var/www/icons/image2.png
/var/www/icons/image3.gif
/var/www/icons/image3.png
/var/www/icons/index.gif
/var/www/icons/index.png
/var/www/icons/layout.gif
/var/www/icons/layout.png
/var/www/icons/left.gif
/var/www/icons/left.png
/var/www/icons/link.gif
/var/www/icons/link.png
/var/www/icons/movie.gif
/var/www/icons/movie.png
/var/www/icons/p.gif
/var/www/icons/p.png
/var/www/icons/patch.gif
/var/www/icons/patch.png
/var/www/icons/pdf.gif
/var/www/icons/pdf.png
/var/www/icons/pie0.gif
/var/www/icons/pie0.png
/var/www/icons/pie1.gif
/var/www/icons/pie1.png
/var/www/icons/pie2.gif
/var/www/icons/pie2.png
/var/www/icons/pie3.gif
/var/www/icons/pie3.png
/var/www/icons/pie4.gif
/var/www/icons/pie4.png
/var/www/icons/pie5.gif
/var/www/icons/pie5.png
/var/www/icons/pie6.gif
/var/www/icons/pie6.png
/var/www/icons/pie7.gif
/var/www/icons/pie7.png
/var/www/icons/pie8.gif
/var/www/icons/pie8.png
/var/www/icons/portal.gif
/var/www/icons/portal.png
/var/www/icons/poweredby.png
/var/www/icons/ps.gif
/var/www/icons/ps.png
/var/www/icons/quill.gif
/var/www/icons/quill.png
/var/www/icons/right.gif
/var/www/icons/right.png
/var/www/icons/screw1.gif
/var/www/icons/screw1.png
/var/www/icons/screw2.gif
/var/www/icons/screw2.png
/var/www/icons/script.gif
/var/www/icons/script.png
/var/www/icons/small
/var/www/icons/small/back.gif
/var/www/icons/small/back.png
/var/www/icons/small/binary.gif
/var/www/icons/small/binary.png
/var/www/icons/small/binhex.gif
/var/www/icons/small/binhex.png
/var/www/icons/small/blank.gif
/var/www/icons/small/blank.png
/var/www/icons/small/broken.gif
/var/www/icons/small/broken.png
/var/www/icons/small/burst.gif
/var/www/icons/small/burst.png
/var/www/icons/small/comp1.gif
/var/www/icons/small/comp1.png
/var/www/icons/small/comp2.gif
/var/www/icons/small/comp2.png
/var/www/icons/small/compressed.gif
/var/www/icons/small/compressed.png
/var/www/icons/small/continued.gif
/var/www/icons/small/continued.png
/var/www/icons/small/dir.gif
/var/www/icons/small/dir.png
/var/www/icons/small/dir2.gif
/var/www/icons/small/dir2.png
/var/www/icons/small/doc.gif
/var/www/icons/small/doc.png
/var/www/icons/small/forward.gif
/var/www/icons/small/forward.png
/var/www/icons/small/generic.gif
/var/www/icons/small/generic.png
/var/www/icons/small/generic2.gif
/var/www/icons/small/generic2.png
/var/www/icons/small/generic3.gif
/var/www/icons/small/generic3.png
/var/www/icons/small/image.gif
/var/www/icons/small/image.png
/var/www/icons/small/image2.gif
/var/www/icons/small/image2.png
/var/www/icons/small/index.gif
/var/www/icons/small/index.png
/var/www/icons/small/key.gif
/var/www/icons/small/key.png
/var/www/icons/small/movie.gif
/var/www/icons/small/movie.png
/var/www/icons/small/patch.gif
/var/www/icons/small/patch.png
/var/www/icons/small/ps.gif
/var/www/icons/small/ps.png
/var/www/icons/small/rainbow.gif
/var/www/icons/small/rainbow.png
/var/www/icons/small/sound.gif
/var/www/icons/small/sound.png
/var/www/icons/small/sound2.gif
/var/www/icons/small/sound2.png
/var/www/icons/small/tar.gif
/var/www/icons/small/tar.png
/var/www/icons/small/text.gif
/var/www/icons/small/text.png
/var/www/icons/small/transfer.gif
/var/www/icons/small/transfer.png
/var/www/icons/small/unknown.gif
/var/www/icons/small/unknown.png
/var/www/icons/small/uu.gif
/var/www/icons/small/uu.png
/var/www/icons/sound1.gif
/var/www/icons/sound1.png
/var/www/icons/sound2.gif
/var/www/icons/sound2.png
/var/www/icons/sphere1.gif
/var/www/icons/sphere1.png
/var/www/icons/sphere2.gif
/var/www/icons/sphere2.png
/var/www/icons/tar.gif
/var/www/icons/tar.png
/var/www/icons/tex.gif
/var/www/icons/tex.png
/var/www/icons/text.gif
/var/www/icons/text.png
/var/www/icons/transfer.gif
/var/www/icons/transfer.png
/var/www/icons/unknown.gif
/var/www/icons/unknown.png
/var/www/icons/up.gif
/var/www/icons/up.png
/var/www/icons/uu.gif
/var/www/icons/uu.png
/var/www/icons/uuencoded.gif
/var/www/icons/uuencoded.png
/var/www/icons/world1.gif
/var/www/icons/world1.png
/var/www/icons/world2.gif
/var/www/icons/world2.png

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/296/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=296&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/12/25/how-to-list-the-package-contents-of-a-yum-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Copy to Clipboard &#8211; a browser agnostic way to script this functionality</title>
		<link>http://mythinkpond.wordpress.com/2011/10/31/copy-to-clipboard-a-browser-agnostic-way-to-script-this-functionality/</link>
		<comments>http://mythinkpond.wordpress.com/2011/10/31/copy-to-clipboard-a-browser-agnostic-way-to-script-this-functionality/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 23:52:28 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[copy to clipboard]]></category>
		<category><![CDATA[zClip]]></category>
		<category><![CDATA[zeroClipboard]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=263</guid>
		<description><![CDATA[Have you tried to present some code or sample content for the end-user that you wanted to allow them to easily copy to their clip-board? If you use the JQuery Javascript library then you can use the plugin called zClip available here &#8211; zClip Using zclip you can attach an event to a button or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=263&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Have you tried to present some code or sample content for the end-user that you wanted to allow them to easily copy to their clip-board?</p>
<p>If you use the JQuery Javascript library then you can use the plugin called zClip available here &#8211; <a href="http://www.steamdev.com/zclip/">zClip</a></p>
<p>Using zclip you can attach an event to a button or a text-area such that when the event occurs, the content is copied to the clipboard.</p>
<p>Well, if you are not using JQuery as the swiss-army knife for your Javascript toolkit, then here is an alternative that can come in handy:</p>
<p>It&#8217;s called &#8220;<a href="http://code.google.com/p/zeroclipboard/">ZeroClipboard</a>&#8221; and it&#8217;s available from code.google.com</p>
<p>Both tools do the following, they replace or overlay a flash plugin on top which then passes the needed content to the native clipboard. Both solutions do not have a graceful way to do copy to clipboard especially if you do not have flash enabled or installed for your platform &#8211; browser.</p>
<p>As the browser matures, maybe this functionality might be allowed natively from a Javascript code but until then, the ZeroClipboard and zClip are the best ways to implement a &#8220;copy-to-clipboard&#8221;.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=263&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/10/31/copy-to-clipboard-a-browser-agnostic-way-to-script-this-functionality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Grails &#8211; Groovy &#8211; Alternative to HttpBuilder &#8211; adding headers to your HTTP request</title>
		<link>http://mythinkpond.wordpress.com/2011/10/24/grails-groovy-alternative-to-httpbuilder-adding-headers-to-your-http-request/</link>
		<comments>http://mythinkpond.wordpress.com/2011/10/24/grails-groovy-alternative-to-httpbuilder-adding-headers-to-your-http-request/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 16:37:56 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[set headers]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=258</guid>
		<description><![CDATA[Developing with Grails and Groovy can be a blessing and and pain all at the same time. The development moves at a rapid rate but when you decide to include libraries that depend on other libraries, your pain starts to build up. For example, when you include the module &#8220;HttpBuilder&#8221;in your project you may run [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=258&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Developing with Grails and Groovy can be a blessing and and pain all at the same time. The development moves at a rapid rate but when you decide to include libraries that depend on other libraries, your pain starts to build up. For example, when you include the module &#8220;HttpBuilder&#8221;in your project you may run into issues with Xerces and xml-apis, especially when you attempt to deploy the WAR file under Tomcat. These libraries are included as part of Tomcat and so an older version of those classes may give you a heartburn.</p>
<p>If your objective is to use some raw HTTP classes to create your requests and responses, then you can use the basic URL class to do most of the raw connection options. Although using HttpBuilder makes it a clean implementation, the URL class gives you very similar power without all the overhead of including the dependency classes.</p>
<p><pre class="brush: jscript;">

def urlConnect = new URL(url)
def connection = urlConnect.openConnection()
//Set all of your needed headers
connection.setRequestProperty(&quot;X-Forwarded-For&quot;, &quot;&lt;your ip address&gt;&quot;)

if(connection.responseCode == 200){
responseText = connection.content.text
}
else{
println &quot;An error occurred:&quot;
println connection.responseCode
println connection.responseMessage
}
</pre></p>
<p>So the trick to the Groovy URL class is to use the &#8220;openConnection()&#8221; method and then gain access to some of the raw functionality.</p>
<p>Cheers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/258/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/258/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=258&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/10/24/grails-groovy-alternative-to-httpbuilder-adding-headers-to-your-http-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Grails H2 Database 1.4.M1 Issue</title>
		<link>http://mythinkpond.wordpress.com/2011/08/28/grails-h2-database-1-4-m1-issue/</link>
		<comments>http://mythinkpond.wordpress.com/2011/08/28/grails-h2-database-1-4-m1-issue/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 22:14:37 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[H2]]></category>
		<category><![CDATA[H2 Database]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=256</guid>
		<description><![CDATA[I&#8217;ve noticed a peculiar behavior that I&#8217;m documenting here for others. I&#8217;m using Grails 1.4.M1 and it bundles with it H2 database version [H2 1.2.147 (2010-11-21)] If you decide to run H2 in a server mode, you would most likely download the latest version of H2 Database from the website. As of writing this article, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=256&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve noticed a peculiar behavior that I&#8217;m documenting here for others. I&#8217;m using Grails 1.4.M1 and it bundles with it H2 database version [H2 1.2.147 (2010-11-21)]</p>
<p>If you decide to run H2 in a server mode, you would most likely download the latest version of H2 Database from the website. As of writing this article, the stable version of H2 is [H2 1.3.158 (2011-07-17)].</p>
<p><strong>Issue:</strong> If you run your Grails application using 1.2.147 and your external H2 database happens to be 1.3.158, then the SELECT&#8217;s work fine but when you run INSERT or UPDATE statements, they are not committed.</p>
<p>When I switched the H2 version to 1.2.147, then the &lt;DOMAIN&gt;.save() worked fine.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=256&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/08/28/grails-h2-database-1-4-m1-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop timer for Pomodoro Technique users</title>
		<link>http://mythinkpond.wordpress.com/2011/07/14/desktop-timer-for-pomodoro-technique-users/</link>
		<comments>http://mythinkpond.wordpress.com/2011/07/14/desktop-timer-for-pomodoro-technique-users/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 12:43:51 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Pomodoro]]></category>
		<category><![CDATA[Pomodoro Technique]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=251</guid>
		<description><![CDATA[If you are looking to improve your productivity when you are working on a mindful task then Pomodoro Technique is the way. It&#8217;s a technique where you sit for twenty-five minutes at a time focused on one task. At the end of the cycle, you take a &#8220;required&#8221; short break and then start on your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=251&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you are looking to improve your productivity when you are working on a mindful task then<a href="http://www.pomodorotechnique.com/" target="_blank"> Pomodoro Technique</a> is the way.</p>
<p>It&#8217;s a technique where you sit for twenty-five minutes at a time focused on one task. At the end of the cycle, you take a &#8220;required&#8221; short break and then start on your next cycle.</p>
<p>Why twenty-five minutes and not thirty? If you find out why, let me know.</p>
<p>Well, Célio Cidral Junior at <a href="http://www.tomighty.org/" target="_blank">http://www.tomighty.org/ </a>has created a desktop timer that helps you organize and execute your tasks using the Pomodoro technique.</p>
<p>Give it a try, you won&#8217;t be disappointed.</p>
<p>Cheers</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/251/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=251&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/07/14/desktop-timer-for-pomodoro-technique-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Tools for Source Code Optimization and Analysis</title>
		<link>http://mythinkpond.wordpress.com/2011/07/14/java-tools-for-source-code-optimization-and-analysis/</link>
		<comments>http://mythinkpond.wordpress.com/2011/07/14/java-tools-for-source-code-optimization-and-analysis/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 11:50:57 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Code Analysis]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Source Code Analysis]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=246</guid>
		<description><![CDATA[Below is a list of some tools that can help you examine your Java source code for potential problems: 1. PMD from http://pmd.sourceforge.net/ License: PMD is licensed under a &#8220;BSD-style&#8221; license PMD scans Java source code and looks for potential problems like: * Possible bugs &#8211; empty try/catch/finally/switch statements * Dead code &#8211; unused local [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=246&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Below is a list of some tools that can help you examine your Java source code for potential problems:</p>
<p><strong>1. PMD from <a title="http://pmd.sourceforge.net/" href="http://pmd.sourceforge.net/" target="_blank">http://pmd.sourceforge.net/</a></strong><br />
<em>License:</em> PMD is licensed under a &#8220;BSD-style&#8221; license</p>
<p>PMD scans Java source code and looks for potential problems like:</p>
<p>* Possible bugs &#8211; empty try/catch/finally/switch statements<br />
* Dead code &#8211; unused local variables, parameters and private methods<br />
* Suboptimal code &#8211; wasteful String/StringBuffer usage<br />
* Overcomplicated expressions &#8211; unnecessary if statements, for loops that could be while loops<br />
* Duplicate code &#8211; copied/pasted code means copied/pasted bugs</p>
<p>You can download everything from here, and you can get an overview of all the rules at the rulesets index page.</p>
<p>PMD is integrated with JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs.</p>
<p><strong>2. FindBug from <a title="http://findbugs.sourceforge.net" href="http://findbugs.sourceforge.net" target="_blank">http://findbugs.sourceforge.net</a></strong><br />
<em>License:</em> L-GPL</p>
<p>FindBugs, a program which uses static analysis to look for bugs in Java code. And since this is a project from my alumni university (IEEE &#8211; University of Maryland, College Park &#8211; Bill Pugh) , I have to definitely add this contribution to this list.</p>
<p><strong>3. Clover from <a title="http://www.cenqua.com/clover/" href="http://www.cenqua.com/clover/" target="_blank">http://www.cenqua.com/clover/</a></strong><br />
<em>License:</em> Free for Open Source (more like a GPL)</p>
<p>Measures statement, method, and branch coverage and has XML, HTML, and GUI reporting. and comprehensive plug-ins for major IDEs.</p>
<p>* Improve Test Quality<br />
* Increase Testing Productivity<br />
* Keep Team on Track</p>
<p>Fully integrated plugins for NetBeans, Eclipse , IntelliJ IDEA, JBuilder and JDeveloper. These plugins allow you to measure and inspect coverage results without leaving the IDE.<br />
Seamless Integration with projects using Apache Ant and Maven. * Easy integration into legacy build systems with command line interface and API.<br />
Fast, accurate, configurable, detailed coverage reporting of Method, Statement, and Branch coverage.<br />
Rich reporting in HTML, PDF, XML or a Swing GUI<br />
Precise control over the coverage gathering with source-level filtering.<br />
Historical charting of code coverage and other metrics.<br />
Fully compatible with JUnit 3.x &amp; 4.x, TestNG, JTiger and other testing frameworks. Can also be used with manual, functional or integration testing.</p>
<p><strong>4. Macker from <a title="http://innig.net/macker/" href="http://innig.net/macker/" target="_blank">http://innig.net/macker/</a></strong><br />
<em>License:</em> GPL</p>
<p>Macker is a build-time architectural rule checking utility for Java developers. It&#8217;s meant to model the architectural ideals programmers always dream up for their projects, and then break &#8212; it helps keep code clean and consistent. You can tailor a rules file to suit a specific project&#8217;s structure, or write some general &#8220;good practice&#8221; rules for your code. Macker doesn&#8217;t try to shove anybody else&#8217;s rules down your throat; it&#8217;s flexible, and writing a rules file is part of the development process for each unique project.</p>
<p><strong>5 EMMA from <a title="http://emma.sourceforge.net/" href="http://emma.sourceforge.net/" target="_blank">http://emma.sourceforge.net/</a></strong><br />
<em>License:</em> EMMA is distributed under the terms of Common Public License v1.0 and is thus free for both open-source and commercial development.</p>
<p>Reports on class, method, basic block, and line coverage (text, HTML, and XML).</p>
<p>EMMA can instrument classes for coverage either offline (before they are loaded) or on the fly (using an instrumenting application classloader).</p>
<p>Supported coverage types: class, method, line, basic block. EMMA can detect when a single source code line is covered only partially.</p>
<p>Coverage stats are aggregated at method, class, package, and &#8220;all classes&#8221; levels.</p>
<p>Output report types: plain text, HTML, XML. All report types support drill-down, to a user-controlled detail depth. The HTML report supports source code linking.</p>
<p>Output reports can highlight items with coverage levels below user-provided thresholds.</p>
<p>Coverage data obtained in different instrumentation or test runs can be merged together.</p>
<p>EMMA does not require access to the source code and degrades gracefully with decreasing amount of debug information available in the input classes.</p>
<p>EMMA can instrument individial .class files or entire .jars (in place, if desired). Efficient coverage subset filtering is possible, too.</p>
<p>Makefile and ANT build integration are supported on equal footing.</p>
<p>EMMA is quite fast: the runtime overhead of added instrumentation is small (5-20%) and the bytecode instrumentor itself is very fast (mostly limited by file I/O speed). Memory overhead is a few hundred bytes per Java class.</p>
<p>EMMA is 100% pure Java, has no external library dependencies, and works in any Java 2 JVM (even 1.2.x).</p>
<p><strong>6. XRadar from <a title="http://xradar.sourceforge.net/" href="http://xradar.sourceforge.net/" target="_blank">http://xradar.sourceforge.net/</a></strong><br />
<em>License:</em> BSD (me thinks)</p>
<p>The XRadar is an open extensible code report tool currently supporting all Java based systems. The batch-processing framework produces HTML/SVG reports of the systems current state and the development over time &#8211; all presented in sexy tables and graphs.</p>
<p>The XRadar gives measurements on standard software metrics such as package metrics and dependencies, code size and complexity, code duplications, coding violations and code-style violations.</p>
<p><strong>7. Hammurapi from Hammurapi Group</strong><br />
<em>License:</em> (if anyone knows the license for this email me Venkatt.Guhesan at Y! dot com)</p>
<p>Hammurapi is a tool for execution of automated inspection of Java program code. Following the example of 282 rules of Hammurabi&#8217;s code, we are offered over 120 Java classes, the so-called inspectors, which can, at three levels (source code, packages, repository of Java files), state whether the analysed source code contains violations of commonly accepted standards of coding.</p>
<p>Relevant Links:</p>
<p>http://en.sdjournal.org/products/articleInfo/93</p>
<p>http://wiki.hammurapi.biz/index.php?title=Hammurapi_4_Quick_Start</p>
<p><strong>8. Relief from <a title="http://www.workingfrog.org/" href="http://www.workingfrog.org/" target="_blank">http://www.workingfrog.org/</a></strong><br />
<em>License:</em> GPL</p>
<p>Relief is a design tool providing a new look on Java projects. Relying on our ability to deal with real objects by examining their shape, size or relative place in space it gives a &#8220;physical&#8221; view on java packages, types and fields and their relationships, making them easier to handle.</p>
<p><strong>9. Hudson from <a title="http://hudson-ci.org/" href="http://hudson-ci.org/" target="_blank">http://hudson-ci.org/</a></strong><br />
License: MIT</p>
<p>Hudson is a continuous integration (CI) tool written in Java, which runs in a servlet container, such as Apache Tomcat or the GlassFish application server. It supports SCM tools including CVS, Subversion, Git and Clearcase and can execute Apache Ant and Apache Maven based projects, as well as arbitrary shell scripts and Windows batch commands.</p>
<p><strong>10. Cobertura from <a title="http://cobertura.sourceforge.net/" href="http://cobertura.sourceforge.net/" target="_blank">http://cobertura.sourceforge.net/</a></strong><br />
License: GNU GPL</p>
<p>Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.</p>
<p><strong>11. SonarSource from <a title="http://www.sonarsource.org/" href="http://www.sonarsource.org/">http://www.sonarsource.org/</a></strong> (recommended by Vishwanath Krishnamurthi &#8211; thanks)<br />
License: LGPL</p>
<p>Sonar is an open platform to manage code quality. As such, it covers the 7 axes of code quality:</p>
<p>Architecture &amp; Design, Duplications, Unit Tests, Complexity, Potential bugs, Coding rules, Comments.</p>
<p>(Article was originally published on my first blog at blogspot.com)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=246&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/07/14/java-tools-for-source-code-optimization-and-analysis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Not all Tomcat 6 classloaders must be equal</title>
		<link>http://mythinkpond.wordpress.com/2011/07/01/not-all-tomcat-6-classloaders-must-be-equal/</link>
		<comments>http://mythinkpond.wordpress.com/2011/07/01/not-all-tomcat-6-classloaders-must-be-equal/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:34:46 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[class loader]]></category>
		<category><![CDATA[class loading]]></category>
		<category><![CDATA[ClassNotFoundException]]></category>
		<category><![CDATA[Log4jConfigListener]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=240</guid>
		<description><![CDATA[Today, while doing some Grails development I came across a peculiar issue that perplexed me and I&#8217;m documenting it for all others to benefit. (Also see my other blog from today for the issue that started this journey). Here are my specifications: Development Machine Windows-7, 64-bit java version &#8220;1.6.0_24&#8243; Java(TM) SE Runtime Environment (build 1.6.0_24-b07) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=240&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, while doing some Grails development I came across a peculiar issue that perplexed me and I&#8217;m documenting it for all others to benefit. (Also see my other blog from today for the issue that started this journey).</p>
<p>Here are my specifications:</p>
<p><strong>Development Machine</strong></p>
<ul>
<li>Windows-7, 64-bit</li>
<li>java version &#8220;1.6.0_24&#8243;<br />
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)<br />
Java HotSpot(TM) <strong>64-Bit Server VM</strong> (build 19.1-b02, mixed mode)</li>
<li>Grails 1.4.0.M1</li>
<li>Tomcat &#8211; apache-tomcat64-6.0.32</li>
</ul>
<p><strong>Local Deployment Server</strong></p>
<ul>
<li>Windows Vista, 32-bit</li>
<li>java version &#8220;1.6.0_26&#8243;<br />
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)<br />
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)</li>
<li>Grails (does not matter since I&#8217;ll be deploying a WAR)</li>
<li>Tomcat &#8211; apache-tomcat-6.0.32 (32-bit version of Tomcat)</li>
</ul>
<p>Since the issue we are taking about deals with Grails, let&#8217;s get into he details of how I ended up with the WAR. In Grails, I issued the following command:</p>
<pre>&gt;grails war abcdefg.war</pre>
<p>This creates a war file. When deployed under the 64-bit Tomcat, no issues. But when deployed under the 32-bit Tomcat. I was getting the</p>
<p>Jul 1, 2011 10:08:25 AM org.apache.catalina.core.StandardContext start<br />
SEVERE: Error listenerStart</p>
<p>(See my <a href="http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/" target="_blank">previous article</a> on how I enabled debugging to get to the root cause of the issue.)</p>
<p>But after some debugging, what it boiled down to was a &#8220;Class Cannot Be Found&#8221; error:</p>
<p><pre class="brush: jscript;">


Jul 1, 2011 11:29:25 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.codehaus.groovy.grails.web.util.Log4jConfigListener
java.lang.ClassNotFoundException: org.codehaus.groovy.grails.web.util.Log4jConfigListener

</pre></p>
<p>In examining the war file, the JAR file named &#8220;grails-web-1.4.0.M1.jar&#8221; under the &#8220;/WEB-INF/lib&#8221; does not contain the needed &#8220;Log4jConfigListener&#8221; class under &#8220;grails-web-1.4.0.M1.jar\org\codehaus\groovy\grails\web\util\&#8221;</p>
<p>But clearly this class is inside this other JAR file named &#8220;grails-plugin-logging-1.4.0.M1.jar&#8221; under &#8220;\org\codehaus\groovy\grails\web\util\&#8221;.</p>
<p>And this identical war file works under the 64-bit Tomcat but not under the 32-bit Tomcat.</p>
<p>So how did I resolve the issue? I upgraded my 32-bit box to Tomcat 7.0 and this made it work. But clearly, there is an underlying issue with the class-loader under the 32-bit Tomcat 6.0.32.</p>
<p>Maybe someone reading this will have the answer to this issue.</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=240&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/07/01/not-all-tomcat-6-classloaders-must-be-equal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
		<item>
		<title>Tomcat 6+: Infamous &#8220;SEVERE: Error listenerStart&#8221; message &#8211; How-To debug this error?</title>
		<link>http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/</link>
		<comments>http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:10:55 +0000</pubDate>
		<dc:creator>Venkatt Guhesan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Framework]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[severe]]></category>
		<category><![CDATA[Error listnerStart]]></category>
		<category><![CDATA[listenerStart]]></category>
		<category><![CDATA[exception]]></category>

		<guid isPermaLink="false">http://mythinkpond.wordpress.com/?p=237</guid>
		<description><![CDATA[I&#8217;m sure if you have been developing with Java and Tomcat for sometime, you are likely to run into the infamous debug error. SEVERE: Error listenerStart You will most likely start Googling it trying to find out what the heck is going on. And in trying to see the extended logging on what that &#8220;listenerStart&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=237&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure if you have been developing with Java and Tomcat for sometime, you are likely to run into the infamous debug error.</p>
<p><strong>SEVERE: Error listenerStart</strong></p>
<p>You will most likely start Googling it trying to find out what the heck is going on. And in trying to see the extended logging on what that &#8220;listenerStart&#8221; error means. After some lucky searches, you will see links asking you to drop a &#8220;log4j.properties&#8221; file under &#8216;/WEB-INF/classes&#8217; directory inside your WAR to help debug which one of the listeners is throwing this crazy error.</p>
<p>Well, this advise will most likely work for you if you are developing under an earlier version of Tomcat. If you are using versions 6.0 or above then continue to read on&#8230;</p>
<p>In Tomcat 6 or above, the default logger is the&#8221;java.util.logging&#8221; logger and not Log4J. So if you are trying to add a &#8220;log4j.properties&#8221; file &#8211; <strong>this will NOT work</strong>. The Java utils logger looks for a file called &#8220;logging.properties&#8221; as stated here:<br />
<a title="Tomcat 6 Logging (Default)" href="http://tomcat.apache.org/tomcat-6.0-doc/logging.html">http://tomcat.apache.org/tomcat-6.0-doc/logging.html</a></p>
<p>So to get to the debugging details create a &#8220;logging.properties&#8221; file under your&#8221;/WEB-INF/classes&#8221; folder of your WAR and you&#8217;re all set.</p>
<p>And now when you restart your Tomcat, you will see all of your debugging in it&#8217;s full glory!!!</p>
<p>Sample <strong>logging.properties</strong> file:</p>
<p><pre class="brush: jscript;">
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

</pre></p>
<p>and you will most likely see a &#8220;class-not-found&#8221; exception. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Look at the bright side, you&#8217;re now one step closer to the solution.</p>
<p>Happy coding!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mythinkpond.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mythinkpond.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mythinkpond.wordpress.com/237/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mythinkpond.wordpress.com&amp;blog=7844457&amp;post=237&amp;subd=mythinkpond&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ff277095a552f6f254ea34c940eac5f9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">vguhesan</media:title>
		</media:content>
	</item>
	</channel>
</rss>
