<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3.3" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SoCo LoCo</title>
	<link>http://blog.socotech.com</link>
	<description>Observations from a Java Programmer and Entrepreneur in Dallas</description>
	<pubDate>Thu, 17 Apr 2008 11:16:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SoCoLoCo" type="application/rss+xml" /><item>
		<title>ListIterator for…well, iterating lists, of course</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/272102691/</link>
		<comments>http://blog.socotech.com/2008/04/17/listiterator-forwell-iterating-lists-of-course/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 11:16:55 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[iterator]]></category>

		<category><![CDATA[list]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/2008/04/17/listiterator-forwell-iterating-lists-of-course/</guid>
		<description><![CDATA[When programming, it&#8217;s easy to mindlessly reach for the same tool repeatedly.  The tool is well known and has worked in the past.  Ole reliable.  But there comes a time when looking beyond the familiar in favor of something more effective can pay big dividends.  Maybe something that&#8217;s been overlooked simply [...]]]></description>
			<content:encoded><![CDATA[<p>When programming, it&#8217;s easy to mindlessly reach for the same tool repeatedly.  The tool is well known and has worked in the past.  Ole reliable.  But there comes a time when looking beyond the familiar in favor of something more effective can pay big dividends.  Maybe something that&#8217;s been overlooked simply out of habit.</p>
<p>Until recently, I used an <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html">Iterator</a> to traverse Lists.  But when a requirement to traverse a list backwards crossed my desk, I (finally) went looking for something better.  I suppose it took a new requirement for me to open my eyes wider because right there, in the same package, is <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ListIterator.html">ListIterator</a>.  A ListIterator allows you to:</p>
<ol>
<li>traverse a list in either direction</li>
<li>modify   the list during iteration</li>
<li>obtain the iterator&#8217;s   current position in the list</li>
</ol>
<p>IMO, the best feature of ListIterator is modifying the list <em>during iteration</em>.  For example:<br />
<code><br />
ListIterator&lt;BizItem&gt; iter = mylist.listIterator();<br />
</code></p>
<p><code> while (iter.hasNext()) {<br />
</code></p>
<blockquote><p><code> BizItem next = iter.next();</code><br />
<code></code></p></blockquote>
<blockquote><p><code> if (next.isTooOld()) {</code><br />
<code></code></p></blockquote>
<blockquote>
<blockquote><p><code> iter.remove();</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote>
<blockquote><p><code> // or iter.set(new BizItem());</code></p></blockquote>
<p><code></code></p></blockquote>
<blockquote><p><code> }</code><br />
<code></code></p></blockquote>
<p><code> }<br />
</code></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=3HMxedG"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=3HMxedG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=9se4rOg"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=9se4rOg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=LnEPZZg"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=LnEPZZg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=ECnnk3G"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=ECnnk3G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=xMfN0IG"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=xMfN0IG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=e61UxUG"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=e61UxUG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/272102691" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2008/04/17/listiterator-forwell-iterating-lists-of-course/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2008/04/17/listiterator-forwell-iterating-lists-of-course/</feedburner:origLink></item>
		<item>
		<title>Tame Web URLs with JSTL and Enums</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/212533899/</link>
		<comments>http://blog.socotech.com/2008/01/07/tame-web-urls-with-jstl-and-enums/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 11:59:11 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[enum]]></category>

		<category><![CDATA[jstl]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/2008/01/07/tame-web-urls-with-jstl-and-enums/</guid>
		<description><![CDATA[I discovered Java Enums last year.  My favorite usage thus far is using them in conjunction with JSTL to construct web URLs:
&#60;c:url value='/myapp/JustDoIt.htm' var='myHref'&#62;
&#60;c:param name='&#60;%=WebParam.foo.name()%&#62;' value='1' /&#62;
&#60;c:param name='&#60;%=WebParam.bar.name()%&#62;' value='2' /&#62;
&#60;/c:url&#62;
&#60;a href="${myHref}&#62;Just Do It&#60;/a&#62;
&#8230;which results in the following HTML:
&#60;a href="/myapp/JustDoIt.htm?foo=1&#38;bar=2"&#62;Just Do It&#60;/a&#62;
To retrieve the parameter values from within the controller, simply use the enum:
String foo [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered Java Enums last year.  My favorite usage thus far is using them in conjunction with JSTL to construct web URLs:</p>
<p><code>&lt;c:url value='/myapp/JustDoIt.htm' var='myHref'&gt;<br />
&lt;c:param name='&lt;%=WebParam.foo.name()%&gt;' value='1' /&gt;<br />
&lt;c:param name='&lt;%=WebParam.bar.name()%&gt;' value='2' /&gt;<br />
&lt;/c:url&gt;<br />
&lt;a href="${myHref}&gt;Just Do It&lt;/a&gt;</code></p>
<p>&#8230;which results in the following HTML:</p>
<p><code>&lt;a href="/myapp/</code><code>JustDoIt</code><code>.htm?foo=1&amp;bar=2"&gt;Just Do It&lt;/a&gt;</code></p>
<p>To retrieve the parameter values from within the controller, simply use the enum:</p>
<p><code>String foo = request.getParameter(WebParam.foo.name());<br />
String bar = request.getParameter(WebParam.bar.name());</code></p>
<p>The best part is compliance with <a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">the DRY principle</a>.  The parameter names are uniform and not duplicated through out the web application making it easy to both search for usage and rename parameters.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=ODuRNcD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=ODuRNcD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=a9jQ7Ad"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=a9jQ7Ad" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=SbS1Z7d"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=SbS1Z7d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=krEhX9D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=krEhX9D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=4m08ljD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=4m08ljD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=YheHnyD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=YheHnyD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/212533899" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2008/01/07/tame-web-urls-with-jstl-and-enums/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2008/01/07/tame-web-urls-with-jstl-and-enums/</feedburner:origLink></item>
		<item>
		<title>Got a NoSuchMethodError? Check Your Classpath for Duplicate Classes and/or Interfaces.</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/211371399/</link>
		<comments>http://blog.socotech.com/2008/01/04/got-a-nosuchmethoderror-check-your-classpath-for-duplicate-classes-andor-interfaces/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 23:50:58 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[nosuchmethoderror]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/2008/01/04/got-a-nosuchmethoderror-check-your-classpath-for-duplicate-classes-andor-interfaces/</guid>
		<description><![CDATA[Java documentation explains NoSuchMethodError like so:
Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.
So, you&#8217;ll appreciate how surprised I was to receive such an error when I modified the signature on a service method and clearly [...]]]></description>
			<content:encoded><![CDATA[<p>Java documentation explains NoSuchMethodError like so:</p>
<blockquote><p>Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.</p></blockquote>
<p>So, you&#8217;ll appreciate how surprised I was to receive such an error when I modified the signature on a service method and clearly was using the new method appropriately in my webapp.  Service module compiled cleanly?  Check.  Service module installed in the Maven repo?  Check.  Webapp picking up newly installed service module from Maven repo?  Check.  WTF!?</p>
<p>And then, Eureka!  I had split a bigger module containing transactional and data access objects into respective &#8220;service&#8221; and &#8220;DAO&#8221; modules in the past.  Like any divorce, it got messy when the &#8220;assets&#8221; were divided between the two.  An interface was moved to &#8220;service&#8221; <em>but also remained behind in &#8220;DAO&#8221;</em>.  The webapp was compiled against a newer &#8220;service&#8221; interface, but at runtime the legacy &#8220;DAO&#8221; was resolved by the webapp via the classpath resulting in a mid-air collision.  BAM!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=jb4yxlD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=jb4yxlD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=HGgflGd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=HGgflGd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=893uF8d"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=893uF8d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=6hkPVMD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=6hkPVMD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=wtjmAqD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=wtjmAqD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=dBc8qzD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=dBc8qzD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/211371399" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2008/01/04/got-a-nosuchmethoderror-check-your-classpath-for-duplicate-classes-andor-interfaces/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2008/01/04/got-a-nosuchmethoderror-check-your-classpath-for-duplicate-classes-andor-interfaces/</feedburner:origLink></item>
		<item>
		<title>How Many Classes are in that JAR?</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113678/</link>
		<comments>http://blog.socotech.com/2006/01/04/how-many-classes-are-in-that-jar/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 21:53:00 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=4</guid>
		<description><![CDATA[A nifty way to count how many classes are inside a .jar file:&#xD;
&#xD;
jar tvf yourfile.jar &#124; grep &#8216;\.class&#8217; &#124; wc -l&#xD;
&#xD;
Of course, using any file extension in lieu of .class will do the same for others!
]]></description>
			<content:encoded><![CDATA[<p>A nifty way to count how many classes are inside a .jar file:<br />&#xD;<br />
<br />&#xD;<br />
<code>jar tvf <i>yourfile</i>.jar | grep &#8216;\.class&#8217; | wc -l</code>&#xD;<br />
<br />&#xD;<br />
<br />Of course, using any file extension in lieu of <i>.class</i> will do the same for others!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=bfBvNWD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=bfBvNWD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=NFI6jWd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=NFI6jWd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=KRVyrcd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=KRVyrcd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=nybuxwD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=nybuxwD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=0ILUx6D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=0ILUx6D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=c1mFK1D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=c1mFK1D" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113678" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2006/01/04/how-many-classes-are-in-that-jar/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2006/01/04/how-many-classes-are-in-that-jar/</feedburner:origLink></item>
		<item>
		<title>AspectJ’s Moving Parts</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113679/</link>
		<comments>http://blog.socotech.com/2005/10/28/aspectjs-moving-parts/#comments</comments>
		<pubDate>Fri, 28 Oct 2005 15:57:00 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=5</guid>
		<description><![CDATA[Definitions


 Join Point - A well-defined point in the program flow; a specific line of code in a specific class file.
 Pointcut - Picks out certain join points and values at those points; A collection of join points across classes that meet similar criteria.
 Advice - Code that is executed when a join point is [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic">Definitions</p>
<p></span></p>
<ul>
<li> <span style="font-weight: bold">Join Point</span> - A well-defined point in the program flow; a <span style="font-style: italic">specific </span>line of code in a <span style="font-style: italic">specific </span>class file.</li>
<li> <span style="font-weight: bold">Pointcut</span> - Picks out certain join points and values at those points; A <span style="font-style: italic">collection</span> of join points <span style="font-style: italic">across</span> classes that meet similar criteria.</li>
<li> <span style="font-weight: bold">Advice</span> - Code that is executed when a join point is reached; brings together a pointcut (to pick out join points) and a body of code (to run at each of those join points).</li>
<li> <span style="font-weight: bold">Aspect</span> - The unit of modularity for crosscutting concerns. They behave somewhat like Java classes, but may also include pointcuts, advice and inter-type declarations.</li>
<li> <span style="font-weight: bold">Inter-type Declarations</span> - declarations that cut across classes and their hierarchies; may declare members that cut across multiple classes, or change the inheritance relationship between classes.</li>
</ul>
<p><span style="font-style: italic">General Goodies</p>
<p></span></p>
<ol>
<li>Pointcuts and advice dynamically affect program flow, inter-type declarations statically affects a program&#8217;s class hierarchy, and aspects encapsulate these new constructs.</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=SwQuuND"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=SwQuuND" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=o4qICcd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=o4qICcd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=4oGqD4d"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=4oGqD4d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=3qdDjHD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=3qdDjHD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=Na05XYD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=Na05XYD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=AmTZ4xD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=AmTZ4xD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113679" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2005/10/28/aspectjs-moving-parts/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2005/10/28/aspectjs-moving-parts/</feedburner:origLink></item>
		<item>
		<title>Kill ‘Em All</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113680/</link>
		<comments>http://blog.socotech.com/2005/10/13/kill-em-all/#comments</comments>
		<pubDate>Fri, 14 Oct 2005 03:51:00 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=6</guid>
		<description><![CDATA[A very handy Linux/Unix command:  killall -9 your binary&#xD;
&#xD;
Example:&#xD;
killall -9 java&#xD;
&#8230;kills all java JVM processes for..say..a runaway servlet container like Tomcat.
]]></description>
			<content:encoded><![CDATA[<p>A very handy Linux/Unix command:  killall -9 <i>your binary</i>&#xD;<br />
<br />&#xD;<br />
<br />Example:<br />&#xD;<br />
<code>killall -9 java</code>&#xD;<br />
<br />&#8230;kills all java JVM processes for..say..a runaway servlet container like Tomcat.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=jenxA0D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=jenxA0D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=Jiq5eTd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=Jiq5eTd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=VhMnzhd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=VhMnzhd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=OSc7jRD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=OSc7jRD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=qCl2HzD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=qCl2HzD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=fAuDXKD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=fAuDXKD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113680" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2005/10/13/kill-em-all/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2005/10/13/kill-em-all/</feedburner:origLink></item>
		<item>
		<title>Handling the Server Response with AJAX</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113681/</link>
		<comments>http://blog.socotech.com/2005/09/23/handling-the-server-response-with-ajax/#comments</comments>
		<pubDate>Fri, 23 Sep 2005 16:29:00 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=7</guid>
		<description><![CDATA[A seemingly standard way to handle the server response when using AJAX:
http_request.onreadystatechange = nameOfTheFunction;
where nameOfTheFunction is an anonymous function that should look something like this:

if (http_request.readyState == 4) {
// good to go!
} else {
// still waiting...
}

The different types of states include:

 0 (uninitialized)
 1 (loading)
 2 (loaded)
 3 (interactive)
 4 (complete)

]]></description>
			<content:encoded><![CDATA[<p>A seemingly standard way to handle the server response when using AJAX:</p>
<p><code>http_request.onreadystatechange = nameOfTheFunction;</code></p>
<p>where <code>nameOfTheFunction</code> is an anonymous function that should look something like this:<br />
<code><br />
if (http_request.readyState == 4) {<br />
// good to go!<br />
} else {<br />
// still waiting...<br />
}<br />
</code></p>
<p>The different types of states include:</p>
<ul>
<li> 0 (uninitialized)</li>
<li> 1 (loading)</li>
<li> 2 (loaded)</li>
<li> 3 (interactive)</li>
<li> 4 (complete)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=vUDJlSD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=vUDJlSD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=7IUeIed"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=7IUeIed" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=2R5cTEd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=2R5cTEd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=OOYecLD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=OOYecLD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=Joo9HpD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=Joo9HpD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=Fcab8pD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=Fcab8pD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113681" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2005/09/23/handling-the-server-response-with-ajax/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2005/09/23/handling-the-server-response-with-ajax/</feedburner:origLink></item>
		<item>
		<title>Mounting C: for Cygwin</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113682/</link>
		<comments>http://blog.socotech.com/2005/01/05/mounting-c-for-cygwin/#comments</comments>
		<pubDate>Wed, 05 Jan 2005 17:42:14 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=8</guid>
		<description><![CDATA[&#xD;
The Cygwin FAQ - Question and Answers&#xD;
&#xD;
&#xD;
]]></description>
			<content:encoded><![CDATA[<p>&#xD;<br />
<a href="http://cygwin.com/faq/faq_3.html#SEC51">The Cygwin FAQ - Question and Answers</a>&#xD;<br />
<br />&#xD;<br />
<br />&#xD;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=jIhjGuD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=jIhjGuD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=hvdWwzd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=hvdWwzd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=a0XerUd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=a0XerUd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=fHLUY1D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=fHLUY1D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=CDmUNTD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=CDmUNTD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=6jNkDWD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=6jNkDWD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113682" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2005/01/05/mounting-c-for-cygwin/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2005/01/05/mounting-c-for-cygwin/</feedburner:origLink></item>
		<item>
		<title>Understanding Classloaders: log4j in a J2EE Environment</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113683/</link>
		<comments>http://blog.socotech.com/2004/08/19/understanding-classloaders-log4j-in-a-j2ee-environment/#comments</comments>
		<pubDate>Thu, 19 Aug 2004 23:09:00 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=9</guid>
		<description><![CDATA[&#xD;
ONJava.com: Understanding Classloaders: log4j in a J2EE Environment&#xD;
&#xD;
Excellent article!  Saved me from impending doom with Weblogic.
]]></description>
			<content:encoded><![CDATA[<p>&#xD;<br />
<a href="http://www.onjava.com/pub/a/onjava/2003/04/02/log4j_ejb.html">ONJava.com: Understanding Classloaders: log4j in a J2EE Environment</a>&#xD;<br />
<br />&#xD;<br />
<br />Excellent article!  Saved me from impending doom with Weblogic.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=rTdBt3D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=rTdBt3D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=RgBLw1d"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=RgBLw1d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=m5IpRKd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=m5IpRKd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=TdCUrxD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=TdCUrxD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=RlxW0WD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=RlxW0WD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=t7cCLbD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=t7cCLbD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113683" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2004/08/19/understanding-classloaders-log4j-in-a-j2ee-environment/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2004/08/19/understanding-classloaders-log4j-in-a-j2ee-environment/</feedburner:origLink></item>
		<item>
		<title>Running a CVS server</title>
		<link>http://feeds.feedburner.com/~r/SoCoLoCo/~3/152113684/</link>
		<comments>http://blog.socotech.com/2004/08/10/running-a-cvs-server/#comments</comments>
		<pubDate>Tue, 10 Aug 2004 19:19:13 +0000</pubDate>
		<dc:creator>socotech</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.socotech.com/?p=10</guid>
		<description><![CDATA[&#xD;
Running a CVS server&#xD;
&#xD;
Instructions on how to set up anonymous, read-only access to CVS
]]></description>
			<content:encoded><![CDATA[<p>&#xD;<br />
<a href="http://www.linuxfromscratch.org/blfs/view/cvs/server/cvsserver.html">Running a CVS server</a>&#xD;<br />
<br />&#xD;<br />
<br />Instructions on how to set up anonymous, read-only access to CVS</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=nUPtXrD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=nUPtXrD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=XZ8zcFd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=XZ8zcFd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=AXQUfLd"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=AXQUfLd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=Rldm86D"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=Rldm86D" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=2iWG7dD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=2iWG7dD" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SoCoLoCo?a=7bKSTJD"><img src="http://feeds.feedburner.com/~f/SoCoLoCo?i=7bKSTJD" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoCoLoCo/~4/152113684" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.socotech.com/2004/08/10/running-a-cvs-server/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.socotech.com/2004/08/10/running-a-cvs-server/</feedburner:origLink></item>
	</channel>
</rss>
