<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8689425</id><updated>2011-05-01T21:15:03.813-07:00</updated><title type='text'>code</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8689425.post-114295628214073713</id><published>2006-03-21T07:51:00.000-08:00</published><updated>2006-03-21T07:51:22.183-08:00</updated><title type='text'>Deltek WelcomRisk Benefits</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Project Managment Risk Analysis software&lt;/span&gt;...Jolt Winner. :) &lt;br /&gt;&lt;a href="http://www.welcom.com/content.cfm?page=493"&gt;Deltek WelcomRisk Benefits&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-114295628214073713?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/114295628214073713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=114295628214073713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/114295628214073713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/114295628214073713'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2006/03/deltek-welcomrisk-benefits.html' title='Deltek WelcomRisk Benefits'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-114295475330892485</id><published>2006-03-21T07:25:00.000-08:00</published><updated>2006-03-21T07:25:53.353-08:00</updated><title type='text'>SortedTable example</title><content type='html'>&lt;a href="http://friedcellcollective.net/js/SortedTable/"&gt;SortedTable example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-114295475330892485?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/114295475330892485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=114295475330892485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/114295475330892485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/114295475330892485'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2006/03/sortedtable-example.html' title='SortedTable example'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-112597369851486110</id><published>2005-09-05T19:28:00.000-07:00</published><updated>2005-09-05T19:28:18.536-07:00</updated><title type='text'>Guide to Using XMLHttpRequest (with Baby Steps) from WebPasties</title><content type='html'>Another nice AJAX tutorial.  The momentum is getting so strong.  Next, the tools will catch up. &lt;br /&gt;&lt;br /&gt;Eventually does anyone doubt that the tools will do everything for us? &lt;br /&gt;&lt;br /&gt;http://www.webpasties.com/xmlHttpRequest/&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-112597369851486110?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/112597369851486110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=112597369851486110' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112597369851486110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112597369851486110'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/09/guide-to-using-xmlhttprequest-with.html' title='Guide to Using XMLHttpRequest (with Baby Steps) from WebPasties'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-112413484604359679</id><published>2005-08-15T12:40:00.000-07:00</published><updated>2005-08-15T12:40:46.066-07:00</updated><title type='text'>Concatenation Operators in SQL</title><content type='html'>I always forget this one.....&lt;br /&gt;&lt;br /&gt;SELECT TEAM || ',' FROM dfc_team;   would put a comma after every result. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.csee.umbc.edu/help/oracle8/server.815/a67779/operator.htm#997790"&gt;Operators&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-112413484604359679?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/112413484604359679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=112413484604359679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112413484604359679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112413484604359679'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/08/concatenation-operators-in-sql.html' title='Concatenation Operators in SQL'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-112378991266819584</id><published>2005-08-11T12:51:00.000-07:00</published><updated>2005-08-11T12:51:52.716-07:00</updated><title type='text'>Enums</title><content type='html'>&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html"&gt;Enums&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-112378991266819584?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/112378991266819584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=112378991266819584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112378991266819584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/112378991266819584'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/08/enums.html' title='Enums'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111875823666962919</id><published>2005-06-14T07:10:00.000-07:00</published><updated>2005-06-14T07:10:36.726-07:00</updated><title type='text'>Oracle Substring &amp; Instring Functions Substr Instr</title><content type='html'>&lt;a href="http://www.psoug.org/reference/substr_instr.html"&gt;Oracle Substring &amp; Instring Functions Substr Instr&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Substring Beginning Of String   	 &lt;br /&gt;SELECT SUBSTR(&lt;value&gt;, 1, &lt;number_of_characters&gt;)&lt;br /&gt;FROM dual;&lt;br /&gt;&lt;br /&gt;SELECT SUBSTR('Take the first four characters', 1, 4) FIRST_FOUR&lt;br /&gt;FROM dual;&lt;br /&gt;&lt;br /&gt;Substring Middle Of String 	&lt;br /&gt;SELECT SUBSTR(&lt;value&gt;, &lt;starting_position&gt;, &lt;number_of_characters&gt;)&lt;br /&gt;FROM dual.&lt;br /&gt;&lt;br /&gt;SELECT SUBSTR('Take the first four characters', 16, 4) MIDDLE_FOUR&lt;br /&gt;FROM dual;&lt;br /&gt;&lt;br /&gt;Substring End of String 	&lt;br /&gt;SELECT SUBSTR(&lt;value&gt;, &lt;starting_position&gt;)&lt;br /&gt;FROM dual.&lt;br /&gt;SELECT SUBSTR('Take the first four characters', 16, 15) SIXTEEN_TO_END&lt;br /&gt;FROM dual;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111875823666962919?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111875823666962919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111875823666962919' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111875823666962919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111875823666962919'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/06/oracle-substring-instring-functions.html' title='Oracle Substring &amp; Instring Functions Substr Instr'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111818453535844882</id><published>2005-06-07T15:48:00.000-07:00</published><updated>2005-06-07T15:48:55.363-07:00</updated><title type='text'>Java Examples: Convert double to string</title><content type='html'>How many times do I have to do this? &lt;br /&gt;&lt;br /&gt;:) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.java2s.com/ExampleCode/Language-Basics/Convertdoubletostring.htm"&gt;Java Examples: Convert double to string&lt;/a&gt;: "public class ConvertDoubleToString {&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    double aDouble = 0.11;&lt;br /&gt;    String aString = Double.toString(aDouble);&lt;br /&gt;  }&lt;br /&gt;}"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111818453535844882?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111818453535844882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111818453535844882' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111818453535844882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111818453535844882'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/06/java-examples-convert-double-to-string.html' title='Java Examples: Convert double to string'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111818338626611065</id><published>2005-06-07T15:29:00.000-07:00</published><updated>2005-06-07T15:29:46.293-07:00</updated><title type='text'>test</title><content type='html'>&lt;a href="http://joefeclinks.blogspot.com/"&gt;!Links&lt;/a&gt;: "code"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111818338626611065?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111818338626611065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111818338626611065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111818338626611065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111818338626611065'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/06/test.html' title='test'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111713297019185646</id><published>2005-05-26T11:42:00.000-07:00</published><updated>2005-05-26T11:42:50.236-07:00</updated><title type='text'>Cenqua Clover Code Coverage for Java</title><content type='html'>&lt;a href="http://www.cenqua.com/clover/"&gt;Cenqua Clover Code Coverage for Java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111713297019185646?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111713297019185646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111713297019185646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111713297019185646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111713297019185646'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/05/cenqua-clover-code-coverage-for-java.html' title='Cenqua Clover Code Coverage for Java'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111582834360015579</id><published>2005-05-11T09:19:00.000-07:00</published><updated>2005-05-11T09:19:03.643-07:00</updated><title type='text'>Some examples of using Unix find command.</title><content type='html'>This seems to work better than the grep -H -r &lt;string&gt; *  technique. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm"&gt;Some examples of using Unix find command.&lt;/a&gt;: "find . -exec grep 'www.athabasca' '{}' \; -print"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111582834360015579?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111582834360015579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111582834360015579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111582834360015579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111582834360015579'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/05/some-examples-of-using-unix-find.html' title='Some examples of using Unix find command.'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111560798750846155</id><published>2005-05-08T20:06:00.000-07:00</published><updated>2005-05-08T20:06:27.550-07:00</updated><title type='text'>Tip #26 - Getting rid of ^M - mixing dos and unix : vim online</title><content type='html'>&lt;a href="http://www.vim.org/tips/tip.php?tip_id=26&amp;amp;rating=life_changing"&gt;Tip #26 - Getting rid of ^M - mixing dos and unix : vim online&lt;/a&gt;: "If you work in a mixed environment you will often open files that have ^M's in them. An example would be this:&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;import java.util.Hashtable; ^M&lt;br /&gt;import java.util.Properties; ^Mimport java.io.IOException;&lt;br /&gt;import org.xml.sax.AttributeList; ^M&lt;br /&gt;import org.xml.sax.HandlerBase; ^Mimport org.xml.sax.SAXException;&lt;br /&gt;&lt;br /&gt;/**^M&lt;br /&gt;  * XMLHandler: This class parses the elements contained^M&lt;br /&gt;  * within a XML message and builds a Hashtable^M&lt;br /&gt;&lt;br /&gt;[snip]&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Notice that some programs are not consistent in the way they insert the line breaks so you end up with some lines that have both a carrage return and a ^M and some lines that have a ^M and no carrage return (and so blend into one). There are two steps to clean this up.&lt;br /&gt;&lt;br /&gt;1. replace all extraneous ^M:&lt;br /&gt;&lt;br /&gt;:%s/^M$//g&lt;br /&gt;&lt;br /&gt;BE SURE YOU MAKE the ^M USING 'CTRL-V CTRL-M' NOT BY TYPING 'CARROT M'! This expression will replace all the ^M's that have carriage returns after them with nothing. (The dollar ties the search to the end of a line)&lt;br /&gt;&lt;br /&gt;2. replace all ^M's that need to have carriage returns:&lt;br /&gt;&lt;br /&gt;:%s/^M/ /g&lt;br /&gt;&lt;br /&gt;Once again: BE SURE YOU MAKE the ^M USING 'CTRL-V CTRL-M' NOT BY TYPING 'CARROT M'! This expression will replace all the ^M's that didn't have carriage returns after them with a carriage return.&lt;br /&gt;&lt;br /&gt;Voila! Clean file. Map this to something if you do it frequently.&lt;br /&gt;&lt;br /&gt;:help ffs - for more info on file formats&lt;br /&gt;&lt;br /&gt;thanks to jonathan merz, douglas potts, and benji fisher&lt;br /&gt;&lt;&lt;color highlighting on telnet (esp w/ SecureCRT) | Convert hex to dec &gt;&gt; "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111560798750846155?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111560798750846155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111560798750846155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111560798750846155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111560798750846155'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/05/tip-26-getting-rid-of-m-mixing-dos-and.html' title='Tip #26 - Getting rid of ^M - mixing dos and unix : vim online'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111523965338644436</id><published>2005-05-04T13:47:00.000-07:00</published><updated>2005-05-04T13:47:33.440-07:00</updated><title type='text'>Case Insensitive Queries</title><content type='html'>Some databases have an "ignore case" flag that can be set for the entire database. Oracle does not, and thus case-insensitive queries have long caused problems, not with coding them, but with their performance (since indexes are typically not used to determine the result).&lt;br /&gt;&lt;br /&gt;Its relatively straightforward to create a case-insensitive query:&lt;br /&gt;&lt;br /&gt;SQL&gt; select *&lt;br /&gt;  2  from EMP&lt;br /&gt;  3  where upper(ENAME) = upper(:b1)&lt;br /&gt;&lt;br /&gt;but of course (by default) the "UPPER(ENAME)" cannot take advantage of an index that may have been defined on the ENAME column.&lt;br /&gt;&lt;br /&gt;Enter 8i, where the concept of a function-based index is now possible. Before you rush off and try to create them, take note of the following:&lt;br /&gt;&lt;br /&gt;    * You must have the system privelege query rewrite to create function based indexes on tables in your own schema.&lt;br /&gt;    * You must have the system privelege global query rewrite to create function based indexes on tables in other schemas&lt;br /&gt;    * For the optimizer to use function based indexes, the following session or system variables must be set:&lt;br /&gt;      QUERY_REWRITE_ENABLED=TRUE&lt;br /&gt;      QUERY_REWRITE_INTEGRITY=TRUSTED&lt;br /&gt;    * You must be using the Cost Based Optimiser (which means analyzing your tables/indexes)&lt;br /&gt;&lt;br /&gt;and then its just a case of creating the index in the conventional way:&lt;br /&gt;&lt;br /&gt;create index UPPER_ENAME_IX on ENAME ( UPPER(ENAME) ) ;&lt;br /&gt;&lt;br /&gt;Note that this index will NOT be used for case-SENSITIVE queries. You could always have two indexes, one on ENAME and one on UPPER(ENAME), but it would probably be more efficient to just have the function-based one and code:&lt;br /&gt;&lt;br /&gt;SQL&gt; select *&lt;br /&gt;  2  from EMP&lt;br /&gt;  3  where upper(ENAME) = upper(:b1)&lt;br /&gt;  4  and ENAME = :b1&lt;br /&gt;&lt;br /&gt;for the times where you do not want case-insenstivity. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks to (http://www.jlcomp.demon.co.uk/faq/case_insensitive_query.html) &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111523965338644436?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111523965338644436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111523965338644436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111523965338644436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111523965338644436'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/05/case-insensitive-queries.html' title='Case Insensitive Queries'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111351539856671423</id><published>2005-04-14T14:49:00.000-07:00</published><updated>2005-04-14T14:49:58.566-07:00</updated><title type='text'>Application Environment Setup Using /etc/profile.d/*</title><content type='html'>When I learned Unix, there was /etc/profile. Then you had your own .profile script.  But since then, we've got profile.d directory.  Its cool.  Evyerhting in there is run upon a new shell.  &lt;br /&gt;&lt;br /&gt;Rock and roll. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://rimuhosting.com/howto/profile.jsp"&gt;Application Environment Setup Using /etc/profile.d/*&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111351539856671423?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111351539856671423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111351539856671423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111351539856671423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111351539856671423'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/04/application-environment-setup-using.html' title='Application Environment Setup Using /etc/profile.d/*'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-111349448849847997</id><published>2005-04-14T09:01:00.000-07:00</published><updated>2005-04-14T09:01:28.496-07:00</updated><title type='text'>Listutorial: Step by step CSS list tutorial</title><content type='html'>Nice!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://css.maxdesign.com.au/listutorial/"&gt;Listutorial: Step by step CSS list tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-111349448849847997?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/111349448849847997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=111349448849847997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111349448849847997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/111349448849847997'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/04/listutorial-step-by-step-css-list.html' title='Listutorial: Step by step CSS list tutorial'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-110928406816795171</id><published>2005-02-24T14:27:00.000-08:00</published><updated>2005-02-24T14:27:48.166-08:00</updated><title type='text'>Welcome to MSN.com</title><content type='html'>	&lt;code&gt;&lt;br /&gt;         private void printAllParameters(HttpServletRequest request){&lt;br /&gt;			Enumeration paramNames = request.getParameterNames();&lt;br /&gt;			while(paramNames.hasMoreElements()) {&lt;br /&gt;			  String paramName = (String)paramNames.nextElement();&lt;br /&gt;			  System.out.println(paramName + "\n");&lt;br /&gt;			  String[] paramValues = request.getParameterValues(paramName);&lt;br /&gt;			  if (paramValues.length == 1) {&lt;br /&gt;				String paramValue = paramValues[0];&lt;br /&gt;				if (paramValue.length() == 0)&lt;br /&gt;				  System.out.print("&lt;I&gt;No Value&lt;/I&gt;");&lt;br /&gt;				else&lt;br /&gt;				System.out.print(paramValue);&lt;br /&gt;			  } else {&lt;br /&gt;				&lt;br /&gt;				for(int i=0; i&lt;paramValues.length; i++) {&lt;br /&gt;					System.out.println("*" + paramValues[i]);&lt;br /&gt;				}&lt;br /&gt;				System.out.println("-");&lt;br /&gt;			  }&lt;br /&gt;			}&lt;br /&gt;		System.out.println("\n");&lt;br /&gt;		  }		&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-110928406816795171?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/110928406816795171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=110928406816795171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/110928406816795171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/110928406816795171'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2005/02/welcome-to-msncom.html' title='Welcome to MSN.com'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-110090549575346851</id><published>2004-11-19T15:04:00.000-08:00</published><updated>2004-11-19T15:04:55.753-08:00</updated><title type='text'>Introduction To Pivot Tables</title><content type='html'>Man I've always hated getting bested by some excel wonk about Pivot Tables....ooooh.  Now i have this.  Watch out wannabes. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cpearson.com/excel/pivots.htm"&gt;Introduction To Pivot Tables&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-110090549575346851?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/110090549575346851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=110090549575346851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/110090549575346851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/110090549575346851'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/11/introduction-to-pivot-tables.html' title='Introduction To Pivot Tables'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109960251976362031</id><published>2004-11-04T13:08:00.000-08:00</published><updated>2004-11-04T13:08:39.763-08:00</updated><title type='text'>Singletons with needles and thread</title><content type='html'>Some more....&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/javaqa/2002-01/02-qa-0125-singleton4.html"&gt;Singletons with needles and thread&lt;/a&gt;: "The singleton factory&lt;br /&gt;The singleton factory creates the singleton instance and guarantees that there will be only one instance in the system at any given time.&lt;br /&gt;&lt;br /&gt;Here's an implementation of a factory that will return the LogImpl:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public abstract class AbstractLogFactory {&lt;br /&gt;&lt;br /&gt;    private static AbstractLogFactory factory = new SystemLogFactory();&lt;br /&gt;    &lt;br /&gt;    public static AbstractLogFactory getFactory() {&lt;br /&gt;        return factory;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public abstract LogSingleton log();&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class SystemLogFactory extends AbstractLogFactory {&lt;br /&gt;&lt;br /&gt;    private static LogSingleton log = new LogImpl();&lt;br /&gt;&lt;br /&gt;    public LogSingleton log() {&lt;br /&gt;        return log;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If you program your objects to retrieve a factory only from the AbstractLogFactory, you can switch logs without changing the classes that use the factory. When a new log you wish to use comes along, simply create a subclass of AbstractLogFactory that instantiates the proper type of log and update AbstractLogFactory to return the proper factory type.&lt;br /&gt;&lt;br /&gt;Thus, if you would rather return a FileLog, you could make the following changes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public abstract class AbstractLogFactory {&lt;br /&gt;&lt;br /&gt;    private static AbstractLogFactory factory = new FileLogFactory();&lt;br /&gt;    &lt;br /&gt;    public static AbstractLogFactory getFactory() {&lt;br /&gt;        return factory;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public abstract LogSingleton log();&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class FileLogFactory extends AbstractLogFactory {&lt;br /&gt;&lt;br /&gt;    private static LogSingleton log = new FactoryLog ();&lt;br /&gt;    &lt;br /&gt;    public LogSingleton log() {&lt;br /&gt;        return log;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;This alternate approach to singleton creation proves more flexible than other approaches because you move the Singleton-pattern enforcement responsibility from the implementation and to another object. In fact, this approach's flexibility lets you change from returning a singleton to creating and returning multiple instances -- all without the rest of your program knowing."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109960251976362031?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109960251976362031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109960251976362031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109960251976362031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109960251976362031'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/11/singletons-with-needles-and-thread.html' title='Singletons with needles and thread'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109960237930262887</id><published>2004-11-04T13:06:00.000-08:00</published><updated>2004-11-04T13:06:19.303-08:00</updated><title type='text'>Singleton</title><content type='html'>Small review on singletons.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/javaqa/2002-01/02-qa-0125-singleton4.html"&gt;Singletons with needles and thread&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; public class Singleton {&lt;br /&gt;&lt;br /&gt;    private static Singleton instance;&lt;br /&gt;    &lt;br /&gt;    public static Singleton getInstance() {&lt;br /&gt;        if( instance == null ) {&lt;br /&gt;            instance = new Singleton();&lt;br /&gt;        }&lt;br /&gt;        return instance;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    private Singleton() {}&lt;br /&gt;&lt;br /&gt;    public static void main( String [] args ) {&lt;br /&gt;        Singleton instance = Singleton.getInstance();&lt;br /&gt;        // ... manipulate instance&lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Unfortunately, in the example above, a thread may at any time pre-empt the call to getInstance(). For example, a thread may pre-empt a running thread at instance = new Singleton. If that were to happen, multiple Singleton instances might instantiate, thus defeating the purpose of a singleton.&lt;br /&gt;&lt;br /&gt;To make a singleton thread safe, you have two choices. The first simply synchronizes the getInstance() method:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class Singleton {&lt;br /&gt;&lt;br /&gt;    private static Singleton instance;&lt;br /&gt;    &lt;br /&gt;    public synchronized static Singleton getInstance() {&lt;br /&gt;        if( instance == null ) {&lt;br /&gt;            instance = new Singleton();&lt;br /&gt;        }&lt;br /&gt;        return instance;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    private Singleton() {}&lt;br /&gt;&lt;br /&gt;    public static void main( String [] args ) {&lt;br /&gt;        Singleton instance = Singleton.getInstance();&lt;br /&gt;        // ...&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Synchronizing the method guarantees that a call to the method cannot be interrupted.&lt;br /&gt;&lt;br /&gt;The second approach to thread safety declares a constant Singleton attribute on the Singleton class itself:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class Singleton {&lt;br /&gt;&lt;br /&gt;    public final static Singleton instance = new Singleton();&lt;br /&gt;    &lt;br /&gt;    private Singleton() {}&lt;br /&gt;&lt;br /&gt;    public static void main( String [] args ) {&lt;br /&gt;        Singleton instance = Singleton.instance;&lt;br /&gt;        // ...&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;instance will initialize when the class loades. Both solutions guarantee only one Singleton will exist.&lt;br /&gt;&lt;br /&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109960237930262887?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109960237930262887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109960237930262887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109960237930262887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109960237930262887'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/11/singleton.html' title='Singleton'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109934610145123572</id><published>2004-11-01T13:55:00.000-08:00</published><updated>2004-11-01T13:55:01.450-08:00</updated><title type='text'>TWiki . People . SmellsToRefactorings</title><content type='html'>My newest happy place is Refactoring to Patterns.  There are some good books on it, well, one.  Here's a web resource. &lt;br /&gt;&lt;br /&gt;Patterns are good, but since most of us inherit designs rather than creating new ones, Refactoring to patterns has helped me grok the patterns value more quickly. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.java.net/bin/view/People/SmellsToRefactorings?skin=print"&gt;TWiki . People . SmellsToRefactorings&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109934610145123572?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109934610145123572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109934610145123572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109934610145123572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109934610145123572'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/11/twiki-people-smellstorefactorings.html' title='TWiki . People . SmellsToRefactorings'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109880802764839311</id><published>2004-10-26T09:26:00.001-07:00</published><updated>2004-10-26T09:27:07.646-07:00</updated><title type='text'>hash map iteration</title><content type='html'>code snippet for iterating over a hash:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	HashMap map = new HashMap();&lt;br /&gt;		map.put("key1", "value1");&lt;br /&gt;		map.put("key2", "value2");&lt;br /&gt;		// the only method of iterating over a list       &lt;br /&gt;		for (Iterator i = map.keySet().iterator(); i.hasNext();) {&lt;br /&gt;			String key2 = (String) i.next();&lt;br /&gt;			String value2 = (String) map.get(key2);&lt;br /&gt;			System.out.println(key2 + value2);&lt;br /&gt;&lt;br /&gt;		}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109880802764839311?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880802764839311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880802764839311'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/hash-map-iteration.html' title='hash map iteration'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109880799279881127</id><published>2004-10-26T09:26:00.000-07:00</published><updated>2004-10-26T09:26:32.796-07:00</updated><title type='text'>regex</title><content type='html'>Regular expressions are a new passion of mine. You have to use them until you can speak them. &lt;a href="http://www.javaworld.com/javaworld/jw-07-2001/jw-0713-regex.html"&gt;Matchmaking with regular expressions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109880799279881127?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109880799279881127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109880799279881127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880799279881127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880799279881127'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/regex.html' title='regex'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109880794883119284</id><published>2004-10-26T09:24:00.000-07:00</published><updated>2004-10-26T09:25:48.833-07:00</updated><title type='text'>Here is a nice statement to generate sql to do an update. </title><content type='html'>Here is a nice statement to generate sql to do an update. &lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT 'UPDATE COOKIE_TABLE SET cookiecost = ''' || cost || ''' WHERE userid = ' || userid || ';'&lt;br /&gt;FROM cookie_table WHERE category = 'sugar cookies'&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note the use of the triple single quotes to do this.  Another way is to do a select into, but often companies want to have a script that is repeatable, and this generates such a script.  You run it, and in toad save the results in a text file. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109880794883119284?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109880794883119284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109880794883119284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880794883119284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880794883119284'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/here-is-nice-statement-to-generate-sql.html' title='Here is a nice statement to generate sql to do an update. '/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109880762612625756</id><published>2004-10-26T09:20:00.000-07:00</published><updated>2004-10-26T09:20:26.126-07:00</updated><title type='text'>XA and NonXA datasource</title><content type='html'>&lt;a href="http://www.theserverside.com/discussions/thread.tss?thread_id=21385"&gt;XA and NonXA datasource&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; XA and NonXA datasource&lt;br /&gt;Posted by: Mike Spille on September 11, 2003 in response to Message #95297 1 replies in this thread&lt;br /&gt;An XA transaction, in the most general terms, is a "global transaction" that may span multiple resources. A non-XA transaction always involves just one resource.&lt;br /&gt;&lt;br /&gt;An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions).&lt;br /&gt;&lt;br /&gt;XA transactions come from the X/Open group specification on distributed, global transactions. JTA includes the X/Open XA spec, in modified form.&lt;br /&gt;&lt;br /&gt;Most stuff in the world is non-XA - a Servlet or EJB or plain old JDBC in a Java application talking to a single database. XA gets involved when you want to work with multiple resources - 2 or more databases, a database and a JMS connection, all of those plus maybe a JCA resource - all in a single transaction. In this scenario, you'll have an app server like Websphere or Weblogic or JBoss acting as the Transaction Manager, and your various resources (Oracle, Sybase, IBM MQ JMS, SAP, whatever) acting as transaction resources. Your code can then update/delete/publish/whatever across the many resources. When you say "commit", the results are commited across all of the resources. When you say "rollback", _everything_ is rolled back across all resources.&lt;br /&gt;&lt;br /&gt;The Transaction Manager coordinates all of this through a protocol called Two Phase Commit (2PC). This protocol also has to be supported by the individual resources.&lt;br /&gt;&lt;br /&gt;In terms of datasources, an XA datasource is a data source that can participate in an XA global transaction. A non-XA datasource generally can't participate in a global transaction (sort of - some people implement what's called a "last participant" optimization that can let you do this for exactly one non-XA item).&lt;br /&gt;&lt;br /&gt;For more details - see the JTA pages on java.sun.com. Look at the XAResource and Xid interfaces in JTA. See the X/Open XA Distributed Transaction specification. Do a google source on "Java JTA XA transaction".&lt;br /&gt;&lt;br /&gt;    -Mike&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109880762612625756?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109880762612625756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109880762612625756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880762612625756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109880762612625756'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/xa-and-nonxa-datasource.html' title='XA and NonXA datasource'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109776698001738848</id><published>2004-10-14T08:16:00.000-07:00</published><updated>2004-10-14T08:16:20.016-07:00</updated><title type='text'>quote</title><content type='html'>"Before the beginning of great brilliance, there must be chaos. Before a brilliant person begins something great, they must look foolish in the crowd." --  I Ching&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109776698001738848?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109776698001738848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109776698001738848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109776698001738848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109776698001738848'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/quote.html' title='quote'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8689425.post-109759166910110191</id><published>2004-10-12T07:32:00.000-07:00</published><updated>2004-10-12T07:34:29.103-07:00</updated><title type='text'>A Cup of Joe</title><content type='html'>This is where I'll blog snippets of code that I learn, or need to repeat. I'll be adding lots.  &lt;br /&gt;&lt;br /&gt;First, basic number translations.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;    &lt;br /&gt;long yyy = 3849L;&lt;br /&gt;String xxx = Long.toString(yyy);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8689425-109759166910110191?l=joecode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joecode.blogspot.com/feeds/109759166910110191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8689425&amp;postID=109759166910110191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109759166910110191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8689425/posts/default/109759166910110191'/><link rel='alternate' type='text/html' href='http://joecode.blogspot.com/2004/10/cup-of-joe.html' title='A Cup of Joe'/><author><name>joefec</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_AbJkAnv1E88/SkTyL8tuntI/AAAAAAAAAK4/BgZBBgBLlBY/S220/PICT0123.JPG'/></author><thr:total>0</thr:total></entry></feed>
