<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DE8NRHo7fyp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-9246378</id><updated>2011-11-27T15:34:55.407-08:00</updated><category term="gadget" /><category term="finance" /><category term="programming" /><title>Journal of a Journeyman</title><subtitle type="html">Thoughts of a programmer, gadget freak and personal finance noob</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://journeymanjournal.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/cFEA" /><feedburner:info uri="blogspot/cfea" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEMDSHc-cSp7ImA9Wx5TFkQ.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-3436801712062031723</id><published>2010-08-01T12:47:00.000-07:00</published><updated>2010-08-01T12:54:39.959-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-01T12:54:39.959-07:00</app:edited><title>I fixed my PC</title><content type="html">I have a 3 years old PC that I am afraid to turn off because Vista boot would hang at loading bar every time it boots. I have developed a set of routine to get it to boot which involves repeatedly power it off and on, and select 'use last good configuration'. It becomes such a drag that I had to turn off auto windows update fully aware that it is a bad thing to do.

&lt;p&gt;
Today I finally found the solution - install latest motherboard drivers. I don't know why it takes me that long to think of that. Stupidity, I suppose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-3436801712062031723?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HX14X31vNozzCM9p0fultjTlpNM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HX14X31vNozzCM9p0fultjTlpNM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HX14X31vNozzCM9p0fultjTlpNM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HX14X31vNozzCM9p0fultjTlpNM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/eJzYlush9Ik" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/3436801712062031723/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=3436801712062031723" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/3436801712062031723?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/3436801712062031723?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/eJzYlush9Ik/i-fixed-my-pc.html" title="I fixed my PC" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2010/08/i-fixed-my-pc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ANQH8yeSp7ImA9Wx5TFEs.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-1223869432656473765</id><published>2010-07-29T23:01:00.000-07:00</published><updated>2010-07-29T23:03:11.191-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-29T23:03:11.191-07:00</app:edited><title>No to Kindle, Yes to Audible.com</title><content type="html">While Amazon's new Kindle is quite attractive at $189 price point, I simply don't have time to read books. Instead I am trying out &lt;a href="http://www.audible.com"&gt;Audible.com&lt;/a&gt;. 

Incidentally, Audible is also an Amazon company.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-1223869432656473765?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5Hjeb6Wl8CjcscKzqJA7js7J6ok/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5Hjeb6Wl8CjcscKzqJA7js7J6ok/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5Hjeb6Wl8CjcscKzqJA7js7J6ok/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5Hjeb6Wl8CjcscKzqJA7js7J6ok/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/gVOWfaiDtfI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/1223869432656473765/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=1223869432656473765" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/1223869432656473765?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/1223869432656473765?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/gVOWfaiDtfI/no-to-kindle-yes-to-audiblecom.html" title="No to Kindle, Yes to Audible.com" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2010/07/no-to-kindle-yes-to-audiblecom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUESH4zcSp7ImA9Wx5TFEo.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-2837029322064516669</id><published>2009-02-01T21:08:00.000-08:00</published><updated>2010-07-29T23:10:09.089-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-29T23:10:09.089-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="finance" /><title>Broken advice - buy and hold</title><content type="html">&lt;p&gt;One popular advice offered to small investors like you and me is buying mutual funds in small amount and never touch it till retirement. The theory is that stock prices go up in long term and market timing doesn't work out in long run.&lt;/p&gt;

&lt;p&gt;This advice clearly does not work to our advantage at a time like now. Take Vanguard 500 Index (VFINX) for example, &lt;a href="http://finance.google.com/finance?chdnp=1&amp;chdd=1&amp;chds=1&amp;chdv=1&amp;chvs=maximized&amp;chdeh=0&amp;chdet=1233551563804&amp;chddm=35972&amp;q=MUTF:VFINX&amp;"&gt;its value dropped more than 30% between 2008-09-19 and 2009-01-30&lt;/a&gt;. In other words, if you sold it in mid September last year and kept the money in a checking account, you would come out 30% richer than if you had not.&lt;/p&gt;

&lt;p&gt;It is a big difference between not sweat over normal market fluctuation and seeing a disaster coming and not get out of its way.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-2837029322064516669?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZLdETihGqVAvlylOIwHrD_VXQPs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLdETihGqVAvlylOIwHrD_VXQPs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZLdETihGqVAvlylOIwHrD_VXQPs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLdETihGqVAvlylOIwHrD_VXQPs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/F5nsA_8UvYI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/2837029322064516669/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=2837029322064516669" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/2837029322064516669?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/2837029322064516669?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/F5nsA_8UvYI/broken-advice-buy-and-hold.html" title="Broken advice - buy and hold" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2009/02/broken-advice-buy-and-hold.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYBQH44fip7ImA9WxVQFUg.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-1379314874746482699</id><published>2009-02-01T18:40:00.000-08:00</published><updated>2009-02-01T20:49:11.036-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-01T20:49:11.036-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><title>Best gadget 2008 - ooma</title><content type="html">&lt;p&gt;The best gadget I bought in 2008 is ooma.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/B001C1MGKI?ie=UTF8&amp;tag=www4techienet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001C1MGKI"&gt;Ooma&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=www4techienet-20&amp;l=as2&amp;o=1&amp;a=B001C1MGKI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;"/&gt; is a VoIP phone that doesn't charge monthly subscription fees. I used to pay $27.95 a month for a local only land line + caller id + other government fees and taxes. Now I pay zero and get unlimited domestic calls within US. I am looking to recoupe the cost in about 9 months.&lt;/p&gt;

&lt;p&gt;If you need to make oversea calls, you can purchase credit from ooma. The cost is comparable to skype.&lt;/p&gt;

&lt;p&gt;If 911 support is important to you. According to &lt;a href="http://www.ooma.com/learn/ooma_faq.php#q8"&gt;http://www.ooma.com/learn/ooma_faq.php#q8&lt;/a&gt;, ooma supports e911.&lt;/p&gt;

&lt;p&gt;I am very happy with ooma. Setup is straightforward; sound quality is great; and virtual voice mail allows me to listen to voice mails remotely.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-1379314874746482699?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rtgtxMPVspnSJ48_GLRvdJpi9mA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rtgtxMPVspnSJ48_GLRvdJpi9mA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rtgtxMPVspnSJ48_GLRvdJpi9mA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rtgtxMPVspnSJ48_GLRvdJpi9mA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/1YDk8Uf5sOM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/1379314874746482699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=1379314874746482699" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/1379314874746482699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/1379314874746482699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/1YDk8Uf5sOM/best-gadget-2008-ooma.html" title="Best gadget 2008 - ooma" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2009/02/best-gadget-2008-ooma.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMRH48fip7ImA9Wx5TFEo.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-7024244112677227213</id><published>2007-03-23T21:33:00.001-07:00</published><updated>2010-07-29T23:11:25.076-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-29T23:11:25.076-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Rule of Thumb: Unchecked Exception vs Checked Exception</title><content type="html">&lt;p&gt;If caller can not do anything to resolve the problem when exception happens, make the exception unchecked.&lt;/p&gt;

&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-7024244112677227213?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fp6qufgXM04TDGs-JI-q8HumqXY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fp6qufgXM04TDGs-JI-q8HumqXY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fp6qufgXM04TDGs-JI-q8HumqXY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fp6qufgXM04TDGs-JI-q8HumqXY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/OcwCDtTkqlw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/7024244112677227213/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=7024244112677227213" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/7024244112677227213?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/7024244112677227213?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/OcwCDtTkqlw/rule-of-thumb-unchecked-exception-vs.html" title="Rule of Thumb: Unchecked Exception vs Checked Exception" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2007/03/rule-of-thumb-unchecked-exception-vs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BQHY9fSp7ImA9WBBaFkg.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-4726223950693209245</id><published>2007-01-24T07:58:00.000-08:00</published><updated>2007-01-24T08:07:31.865-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-01-24T08:07:31.865-08:00</app:edited><title>JavaBlogs is broken</title><content type="html">&lt;p&gt;No entry for past two days. &lt;a href="http://www.javablogs.com/ViewDaysBlogs.action?date=23&amp;amp;month=0&amp;amp;year=2007"&gt;http://www.javablogs.com/ViewDaysBlogs.action?date=23&amp;month=0&amp;year=2007&lt;/a&gt; and &lt;a href="http://www.javablogs.com/ViewDaysBlogs.action?date=24&amp;amp;month=0&amp;amp;year=2007"&gt;http://www.javablogs.com/ViewDaysBlogs.action?date=24&amp;month=0&amp;year=2007&lt;/a&gt; turn up empty.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-4726223950693209245?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/K09XeAKlBA7XzvcqUQYqlSRzYCQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K09XeAKlBA7XzvcqUQYqlSRzYCQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/K09XeAKlBA7XzvcqUQYqlSRzYCQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K09XeAKlBA7XzvcqUQYqlSRzYCQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/FeMjoHgtT8Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/4726223950693209245/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=4726223950693209245" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/4726223950693209245?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/4726223950693209245?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/FeMjoHgtT8Q/javablogs-is-broken.html" title="JavaBlogs is broken" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2007/01/javablogs-is-broken.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcHRHo9fip7ImA9WBBVEkg.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-116625185204187761</id><published>2006-12-15T22:48:00.000-08:00</published><updated>2006-12-15T22:53:55.466-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-12-15T22:53:55.466-08:00</app:edited><title>Firefox, run!</title><content type="html">&lt;a href="https://launchpad.net/distros/ubuntu/+source/firefox/+bug/32561"&gt;Pango-enabled firefox is much slower&lt;/a&gt;

&lt;pre class="code"&gt;export MOZ_DISABLE_PANGO=1&lt;/pre&gt; 

&lt;p&gt;Add above to .bashrc. Make sure to log out to let it take effect. Now only if I can figure out how to get it run faster on OSX.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-116625185204187761?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NkUEQTfHoR9xoT6DXrFdqn72VTw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NkUEQTfHoR9xoT6DXrFdqn72VTw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NkUEQTfHoR9xoT6DXrFdqn72VTw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NkUEQTfHoR9xoT6DXrFdqn72VTw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/TSW__rim4Is" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/116625185204187761/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=116625185204187761" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/116625185204187761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/116625185204187761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/TSW__rim4Is/firefox-run.html" title="Firefox, run!" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2006/12/firefox-run.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQHQn88eyp7ImA9WBNTE0k.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-114698213818937994</id><published>2006-05-06T23:06:00.000-07:00</published><updated>2006-06-14T21:55:33.173-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-06-14T21:55:33.173-07:00</app:edited><title>Exception Breakpoint and Field Watchpoint in Intellij   </title><content type="html">&lt;p&gt;
&lt;a href="http://www.jetbrains.com/idea/docs/help/debugging/exceptionbreakpoint.html"&gt;Exception breakpoint&lt;/a&gt; and &lt;a href="http://www.jetbrains.com/idea/docs/help/debugging/fieldwatchpoint.html"&gt;Field Watchpoint&lt;/a&gt; are great timesavers when troubleshooting bugs that result in exception. No more staring at the code; sprinkling line breakpoints everywhere. Simply set up the exception breakpoint, reproduce the exception according to the bug description. Volia, Intellij suspends the program when it hits the exception and now it is easy to go through the stack and pinpoint what the problem is. 
&lt;/p&gt;


&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/intellij" rel="tag"&gt;intellij&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-114698213818937994?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RJgFpR7OA10vjjBB-3LsY4em-dA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RJgFpR7OA10vjjBB-3LsY4em-dA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RJgFpR7OA10vjjBB-3LsY4em-dA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RJgFpR7OA10vjjBB-3LsY4em-dA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/7cgCreX_ucI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/114698213818937994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=114698213818937994" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/114698213818937994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/114698213818937994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/7cgCreX_ucI/exception-breakpoint-and-field.html" title="Exception Breakpoint and Field Watchpoint in Intellij   " /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2006/05/exception-breakpoint-and-field.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFQ3Y9eyp7ImA9WBJTFEQ.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-114049101280074727</id><published>2006-02-20T18:58:00.000-08:00</published><updated>2006-02-20T19:03:32.863-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-02-20T19:03:32.863-08:00</app:edited><title>TDD Infected</title><content type="html">&lt;p&gt;In the past, I did not get what is the big deal about the whole TDD (Test Driven Development) thing. When I previously skimmed Kent Beck's &lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=www4techienet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321146530%2526tag=www4techienet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321146530%25253FSubscriptionId=02ZH6J1W0649DTNS6002"&gt;"Test Driven Development&lt;/a&gt; book, I found the example in the book to be ridiculously simple or even dumb sometimes.&lt;/p&gt;

&lt;p&gt;That is until I had chance to pair with Edward and watch the TDD in action.&lt;/p&gt;

&lt;p&gt;We had a bug to fix and Edward had a hunch about where the bug is. But instead of going straight to fix it, he insisted on writing a test to reproduce the bug first. Unexpectedly, the first version of bug reproducing test didn't turn red. This lead us to fire up debugger and started tracing the code. Along the way, we discovered that our hunch was in fact wrong. When the test finally turn red, we knew exactly how to fix the bug. And sure enough, it took us no time to make the test green and we were confident that we indeed fixed the bug.&lt;/p&gt;

&lt;p&gt;It is truly an "Aha!" moment for me.&lt;/p&gt;

&lt;p&gt;So I revisited Kent Beck's TDD book afterwards. The book's example still read as ridiculous. But as I can relate to my personal TDD experience, the messages in the book begin to resonate with me.&lt;/p&gt;

&lt;p&gt;Since I started to practice TDD couple weeks ago,  the most important change is that I no longer try to "over-apply" patterns up front. I am able to delay that decision till the needs arise knowing comfortably that I can always refactor to pattern without fear of breaking anything. A big plus in my book.&lt;/p&gt;






&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-114049101280074727?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yEEArpKGFErrLJcz9Uoxa5jNSD4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yEEArpKGFErrLJcz9Uoxa5jNSD4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yEEArpKGFErrLJcz9Uoxa5jNSD4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yEEArpKGFErrLJcz9Uoxa5jNSD4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/yC1ssJLnhlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/114049101280074727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=114049101280074727" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/114049101280074727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/114049101280074727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/yC1ssJLnhlQ/tdd-infected.html" title="TDD Infected" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2006/02/tdd-infected.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UFRXg6eCp7ImA9WBVbFE4.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-113679032754648594</id><published>2006-01-08T23:04:00.000-08:00</published><updated>2006-01-27T22:53:34.610-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-01-27T22:53:34.610-08:00</app:edited><title>Kinesis Advantage and TypeMatrix 2030</title><content type="html">&lt;p&gt;My wrist starts to bother me. To avoid RSI, I researched on ergonomic keyboard and narrowed my choices down to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.typematrix.com/ezr2030/index.html"&gt;TypeMatrix 2030&lt;/a&gt;, $100 from ebay. 
&lt;li&gt;&lt;a href="http://www.kinesis-ergo.com/"&gt;Kinesis Advantage&lt;/a&gt;, $250 ordered through &lt;a href="http:/www.fentek-ind.com"&gt;fentek-ind&lt;/a&gt;.
&lt;/ol&gt;

&lt;p&gt;I ordered both keyboards to try out and hope they will save my wrist.&lt;/p&gt;

&lt;p&gt;&lt;ins class="diff"&gt;UPDATE: Verdict is out. Kinesis Advantage is an instant love and TypeMatrix went straight back to ebay.&lt;/ins&gt;
&lt;/p&gt;



&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/ergonomic" rel="tag"&gt;ergonomic&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/gadget" rel="tag"&gt;gadget&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-113679032754648594?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mkBC-r0e7e98V5i_Q_z9GhPfSZk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mkBC-r0e7e98V5i_Q_z9GhPfSZk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mkBC-r0e7e98V5i_Q_z9GhPfSZk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mkBC-r0e7e98V5i_Q_z9GhPfSZk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/oOsgk2SRl4E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/113679032754648594/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=113679032754648594" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113679032754648594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113679032754648594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/oOsgk2SRl4E/kinesis-advantage-and-typematrix-2030.html" title="Kinesis Advantage and TypeMatrix 2030" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2006/01/kinesis-advantage-and-typematrix-2030.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEARXc6eCp7ImA9WBVVFkg.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-113653339272837437</id><published>2006-01-05T23:41:00.000-08:00</published><updated>2006-01-07T10:30:44.910-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-01-07T10:30:44.910-08:00</app:edited><title>Sony eBook Reader</title><content type="html">&lt;img alt="Cessonyreader2" border="1" height="478" hspace="4" src="http://us.gizmodo.com/gadgets/images/cessonyreader2.jpg" vspace="4" width="520"/&gt;
&lt;p&gt;
&lt;a href="http://us.gizmodo.com/gadgets/ces/live-from-ces-hands-on-with-the-sony-reader-146864.php"&gt;This&lt;/a&gt; is the &lt;del class="diff"&gt;widget&lt;/del&gt; &lt;ins class="diff"&gt;gadget&lt;/ins&gt; I am going to get in year 2006.
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/gadget" rel="tag"&gt;gadget&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-113653339272837437?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Krc-hKHsXGlIu0Os5LrPu6YI3oc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Krc-hKHsXGlIu0Os5LrPu6YI3oc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Krc-hKHsXGlIu0Os5LrPu6YI3oc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Krc-hKHsXGlIu0Os5LrPu6YI3oc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/F3S5qtqVBlg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/113653339272837437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=113653339272837437" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113653339272837437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113653339272837437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/F3S5qtqVBlg/sony-ebook-reader.html" title="Sony eBook Reader" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2006/01/sony-ebook-reader.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRHs4fCp7ImA9WxVQFUg.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-113298866650217516</id><published>2005-11-25T23:04:00.000-08:00</published><updated>2009-02-01T20:51:15.534-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-01T20:51:15.534-08:00</app:edited><title>Relocation</title><content type="html">&lt;p&gt;
Packing, now. Hate it!
&lt;/p&gt;

&lt;p&gt;
New job, next month. Love it!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-113298866650217516?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dtLNp5hl-lVfsAmRPSzpDXxtTfQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dtLNp5hl-lVfsAmRPSzpDXxtTfQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dtLNp5hl-lVfsAmRPSzpDXxtTfQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dtLNp5hl-lVfsAmRPSzpDXxtTfQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/9BgDaNJHFRg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/113298866650217516/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=113298866650217516" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113298866650217516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113298866650217516?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/9BgDaNJHFRg/relocation.html" title="Relocation" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/11/relocation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8CQ347fip7ImA9WBVRE08.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-113232778473487342</id><published>2005-11-18T07:28:00.000-08:00</published><updated>2005-11-18T07:31:02.006-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-11-18T07:31:02.006-08:00</app:edited><title>Running SQL script from Ant</title><content type="html">&lt;p&gt;An alternative to &lt;a href="http://jroller.com/page/dgolla?entry=running_sql_script_from_java"&gt;shelling out to SQLPlus&lt;/a&gt; is to use Ant's task - Sql.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-113232778473487342?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JDNAw_MTHQUeBh-ZqmB4L_gF-cM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JDNAw_MTHQUeBh-ZqmB4L_gF-cM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JDNAw_MTHQUeBh-ZqmB4L_gF-cM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JDNAw_MTHQUeBh-ZqmB4L_gF-cM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/XoTFJwbvevU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/113232778473487342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=113232778473487342" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113232778473487342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113232778473487342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/XoTFJwbvevU/running-sql-script-from-ant.html" title="Running SQL script from Ant" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/11/running-sql-script-from-ant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYDSXc7fip7ImA9WBVREkQ.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-113229155724828792</id><published>2005-11-17T21:25:00.000-08:00</published><updated>2005-11-17T21:36:18.906-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-11-17T21:36:18.906-08:00</app:edited><title>SICP Lecture Video</title><content type="html">&lt;p&gt;
&lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=www4techienet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0262011530%2526tag=www4techienet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0262011530%25253FSubscriptionId=02ZH6J1W0649DTNS6002"&gt;&lt;img src="http://images.amazon.com/images/P/0262011530.01._SCTHUMBZZZ_.jpg" /&gt;&lt;/a&gt; &lt;a href="http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/"&gt;MIT lecture video&lt;/a&gt;. Great stuff!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-113229155724828792?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bxve_k1n2nA7n4P1hd8H9ZLjiyE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bxve_k1n2nA7n4P1hd8H9ZLjiyE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bxve_k1n2nA7n4P1hd8H9ZLjiyE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bxve_k1n2nA7n4P1hd8H9ZLjiyE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/NJJChGLF3Mo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/113229155724828792/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=113229155724828792" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113229155724828792?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/113229155724828792?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/NJJChGLF3Mo/sicp-lecture-video.html" title="SICP Lecture Video" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/11/sicp-lecture-video.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YDSHsyfip7ImA9WBRbF0g.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112875517956047364</id><published>2005-10-08T00:05:00.000-07:00</published><updated>2005-10-08T00:06:19.596-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-08T00:06:19.596-07:00</app:edited><title>Looking for programmer heaven</title><content type="html">&lt;p&gt;Besides the obvious candidates such as Google, Yahoo or Amazon, where else? Where can I find this kind of information?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112875517956047364?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BpLX0P-IF2qKnLv74GGIpRs66lo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BpLX0P-IF2qKnLv74GGIpRs66lo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BpLX0P-IF2qKnLv74GGIpRs66lo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BpLX0P-IF2qKnLv74GGIpRs66lo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/-5qwIQP42Mw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112875517956047364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112875517956047364" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112875517956047364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112875517956047364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/-5qwIQP42Mw/looking-for-programmer-heaven.html" title="Looking for programmer heaven" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/looking-for-programmer-heaven.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFRHw-fip7ImA9WBRbF08.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112872731520710951</id><published>2005-10-07T16:21:00.000-07:00</published><updated>2005-10-07T16:21:55.256-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-07T16:21:55.256-07:00</app:edited><title>No management material</title><content type="html">&lt;p&gt;You know you are no management material when you prefer &lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=www4techienet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0387948600%2526tag=www4techienet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0387948600%25253FSubscriptionId=02ZH6J1W0649DTNS6002"&gt;"The Algorithm Design Manual" (Steve S. Skiena)&lt;/a&gt; to &lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=www4techienet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0596007868%2526tag=www4techienet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0596007868%25253FSubscriptionId=02ZH6J1W0649DTNS6002"&gt;"The Art of Project Management" (Scott Berkun)&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112872731520710951?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-rvGiRWtwuFO71RSW3lx5Rphx4I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-rvGiRWtwuFO71RSW3lx5Rphx4I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-rvGiRWtwuFO71RSW3lx5Rphx4I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-rvGiRWtwuFO71RSW3lx5Rphx4I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/MJVJYwDJf0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112872731520710951/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112872731520710951" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112872731520710951?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112872731520710951?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/MJVJYwDJf0Q/no-management-material.html" title="No management material" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/no-management-material.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAESXk7fip7ImA9WBRbFEk.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112844202343479585</id><published>2005-10-04T09:05:00.000-07:00</published><updated>2005-10-04T10:25:08.706-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-04T10:25:08.706-07:00</app:edited><title>Max method size breached</title><content type="html">&lt;p&gt;I have to admit that I only learnt the existence of the 64KB size cap for a java method last night.&lt;/p&gt;

&lt;p&gt;Thanks to someone who managed to write a &lt;a href="http://thedailywtf.com/"&gt;WTF&lt;/a&gt; worthy JSP with a whopping 8000 plus lines.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112844202343479585?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k-BB0vyWrGLzzvsrGKhEOlQNgwk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k-BB0vyWrGLzzvsrGKhEOlQNgwk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k-BB0vyWrGLzzvsrGKhEOlQNgwk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k-BB0vyWrGLzzvsrGKhEOlQNgwk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/6Q93Q3yA4hE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112844202343479585/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112844202343479585" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112844202343479585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112844202343479585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/6Q93Q3yA4hE/max-method-size-breached.html" title="Max method size breached" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/max-method-size-breached.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGQXY4fip7ImA9WBRbFEk.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112844022078007792</id><published>2005-10-04T08:34:00.000-07:00</published><updated>2005-10-04T08:37:00.836-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-04T08:37:00.836-07:00</app:edited><title>enum</title><content type="html">&lt;p&gt;If you know javac turns enum declaration into a subclass of Enum, and understand what the heck is &lt;font color="#2040a0"&gt;Enum&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;E&lt;/font&gt; &lt;strong&gt;extends&lt;/strong&gt; &lt;font color="#2040a0"&gt;Enum&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;E&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;, my hat off to you and please stop reading.&lt;/p&gt;

&lt;p&gt;For the rest of us, there is &lt;a href="http://madbean.com/2004/mb2004-3/"&gt;a through explanation of enum&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112844022078007792?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YL4hrC4EOnAvULnX-vbrpKA-qbs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YL4hrC4EOnAvULnX-vbrpKA-qbs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YL4hrC4EOnAvULnX-vbrpKA-qbs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YL4hrC4EOnAvULnX-vbrpKA-qbs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/FNt9CGfcfFc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112844022078007792/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112844022078007792" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112844022078007792?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112844022078007792?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/FNt9CGfcfFc/enum.html" title="enum" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/enum.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCRHc-eCp7ImA9WBRbEkw.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112818777195287250</id><published>2005-10-01T10:28:00.000-07:00</published><updated>2005-10-01T16:46:05.950-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-01T16:46:05.950-07:00</app:edited><title>What servers Google uses?</title><content type="html">&lt;p&gt;Ever wondered what servers Google uses to serve up gmail page?&lt;/p&gt;

&lt;pre class="code"&gt;
Server: GFE/1.3

Server: GWS/2.1
&lt;/pre&gt;

&lt;p&gt;GWS must be acronym for Google Web Server. Anybody knows what GFE stands for?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112818777195287250?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1YY44qrrNYyPdM_ul16-Lywpjqo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1YY44qrrNYyPdM_ul16-Lywpjqo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1YY44qrrNYyPdM_ul16-Lywpjqo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1YY44qrrNYyPdM_ul16-Lywpjqo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/SdAx-zD86V8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112818777195287250/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112818777195287250" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112818777195287250?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112818777195287250?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/SdAx-zD86V8/what-servers-google-use.html" title="What servers Google uses?" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/what-servers-google-use.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcGRnc6fip7ImA9WBRbEkw.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112818682089694632</id><published>2005-10-01T10:13:00.000-07:00</published><updated>2005-10-01T17:47:07.916-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-01T17:47:07.916-07:00</app:edited><title>Servlet Forward vs Redirect</title><content type="html">&lt;p&gt;To do redirect, server sends back a HTTP response status 302. Upon receiving such response, browser is obligated to request page from the new location, hence redirect happens.&lt;p&gt; 

&lt;pre class="code"&gt;
HTTP/1.1 302 Object moved
Location: somewhere/newlocation.jsp
&lt;/pre&gt;

&lt;p&gt;Forward, on the other hand, happens internally on the server, and browser is not aware of it at all.&lt;/p&gt;

&lt;p&gt;That explains why we need to encodeURL before redirect but not before forward; why states are kept when forward but not when redirect; why redirect method is on Response object but forward is on RequestDispatcher object.&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112818682089694632?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qT29oWkxnFMubhGGMTzEatFPn1M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qT29oWkxnFMubhGGMTzEatFPn1M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qT29oWkxnFMubhGGMTzEatFPn1M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qT29oWkxnFMubhGGMTzEatFPn1M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/ZYuiXuVfVzk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112818682089694632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112818682089694632" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112818682089694632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112818682089694632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/ZYuiXuVfVzk/servlet-forward-vs-redirect.html" title="Servlet Forward vs Redirect" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/10/servlet-forward-vs-redirect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCR3w6fip7ImA9WBRbEkw.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112821403676557067</id><published>2005-08-26T11:20:00.001-07:00</published><updated>2005-10-01T17:51:06.216-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-01T17:51:06.216-07:00</app:edited><title>Hit by Lucene Hits</title><content type="html">&lt;p&gt;
&lt;pre class="code"&gt;
java.io.IOException: Bad file descriptor
 	at java.io.RandomAccessFile.seek(Native Method)
 	at org.apache.lucene.store.FSInputStream.readInternal(FSDirectory.java:415)
 	at org.apache.lucene.store.InputStream.refill(InputStream.java:158)
 	at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
 	at org.apache.lucene.store.InputStream.readBytes(InputStream.java:57)
 	at org.apache.lucene.index.CompoundFileReader$CSInputStream.readInternal(CompoundFileReader.java:220)
 	at org.apache.lucene.store.InputStream.refill(InputStream.java:158)
 	at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
 	at org.apache.lucene.store.InputStream.readInt(InputStream.java:73)
 	at org.apache.lucene.store.InputStream.readLong(InputStream.java:96)
 	at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:59)
 	at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:237)
 	at org.apache.lucene.search.IndexSearcher.doc(IndexSearcher.java:74)
 	at org.apache.lucene.search.Hits.doc(Hits.java:101)
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;The Hits should only be accessed when its corresponding IndexSearcher is open. Attempting to access the Hits after the searcher is closed may result in above exception.&lt;/p&gt;

&lt;p&gt;The most disturbing thing is that this is not mentioned in the Lucene Javadoc, nor in the "Lucene In Action" book. Thus guarantee any newcomer will be hit by the hits issue! (pun intended)&lt;/p&gt;


&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/debug" rel="tag"&gt;debug&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112821403676557067?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CEJMHlPzLDcr5xhoxDMj69MhDhs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CEJMHlPzLDcr5xhoxDMj69MhDhs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CEJMHlPzLDcr5xhoxDMj69MhDhs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CEJMHlPzLDcr5xhoxDMj69MhDhs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/S4mHEqrOs-8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112821403676557067/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112821403676557067" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821403676557067?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821403676557067?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/S4mHEqrOs-8/hit-by-lucene-hits_26.html" title="Hit by Lucene Hits" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/08/hit-by-lucene-hits_26.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUBQ389eyp7ImA9WBRbEkw.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112821412593624252</id><published>2005-08-24T16:03:00.001-07:00</published><updated>2005-10-01T17:50:52.163-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-01T17:50:52.163-07:00</app:edited><title>Why using Boolean to represent ternary states is a bad idea</title><content type="html">&lt;p&gt;
The intention of my previous entry is not to advocate the usage of Boolean to represent ternary state but to document a usage I found while reading some open source code.
&lt;/p&gt;

&lt;p&gt;
Use NULL to represent state is technically valid and common practice. Nullable column is often used in database design and many APIs return NULL.
&lt;/p&gt;

&lt;p&gt;However, people seem to really hate this idea. Why?&lt;/p&gt;

&lt;p&gt;I believe the reason is that the usage violates the "least surprise" principle. As programmers, we are hardwired to think of boolean as binary state. The usage in this case, although valid, is against human psychology.&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112821412593624252?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Tw2LaSY86yAueq3IqRymRaQGuY0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Tw2LaSY86yAueq3IqRymRaQGuY0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Tw2LaSY86yAueq3IqRymRaQGuY0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Tw2LaSY86yAueq3IqRymRaQGuY0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/4paHT8mzBmI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112821412593624252/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112821412593624252" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821412593624252?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821412593624252?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/4paHT8mzBmI/why-using-boolean-to-represent-ternary_24.html" title="Why using Boolean to represent ternary states is a bad idea" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/08/why-using-boolean-to-represent-ternary_24.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQNRXs-fip7ImA9WBRXGEQ.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112489691149135783</id><published>2005-08-24T08:20:00.000-07:00</published><updated>2005-08-24T08:29:54.556-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-08-24T08:29:54.556-07:00</app:edited><title>Use Boolean to return ternary state</title><content type="html">&lt;p&gt;By using Boolean as return value, it is possible to represent ternary state by - Boolean.TRUE, Boolean.FALSE and null.&lt;/p&gt;

&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112489691149135783?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XxQIBfF4YL91UI4li8jMDzC_2HE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XxQIBfF4YL91UI4li8jMDzC_2HE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XxQIBfF4YL91UI4li8jMDzC_2HE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XxQIBfF4YL91UI4li8jMDzC_2HE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/z9zOOVlHfvE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112489691149135783/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112489691149135783" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112489691149135783?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112489691149135783?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/z9zOOVlHfvE/use-boolean-to-return-ternary-state.html" title="Use Boolean to return ternary state" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/08/use-boolean-to-return-ternary-state.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYNQH85eCp7ImA9WBRbEkw.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112821416204213000</id><published>2005-08-22T00:25:00.001-07:00</published><updated>2005-10-01T17:49:51.120-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-10-01T17:49:51.120-07:00</app:edited><title>Be wary of "IN" clause</title><content type="html">&lt;p&gt;In my current project, some queries share a pattern of "where category.id in (:categoryids)". To be "DRY", I implemented a routine to extract a set of category ids; then use Hibernate's setParameterList(). Nice and clean... and WRONG.&lt;/p&gt;

&lt;p&gt;The problem is that database has limited buffer for parsing sql query so that there is a limitation on the length of the "IN" clause.  The above approach works with small set of data but bombs out when data gets larger.&lt;/p&gt; 
 
&lt;p&gt;The solution is to place the query for extracting category ids directly in the "IN" clause as subquery. The result is messy with lots of string concatenation, special case handling. But CORRECT.&lt;/p&gt;

&lt;p&gt;An example of leaky abstraction and a reminder to test with large data set early on.&lt;/p&gt;


&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/sql" rel="tag"&gt;sql&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112821416204213000?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hFe4S0xHxz5HWRWJ2ptl3s4X_6s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hFe4S0xHxz5HWRWJ2ptl3s4X_6s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hFe4S0xHxz5HWRWJ2ptl3s4X_6s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hFe4S0xHxz5HWRWJ2ptl3s4X_6s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/cOtbrqC7uUY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112821416204213000/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112821416204213000" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821416204213000?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112821416204213000?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/cOtbrqC7uUY/be-wary-of-in-clause_22.html" title="Be wary of &quot;IN&quot; clause" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/08/be-wary-of-in-clause_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNQn47eCp7ImA9WBRXE00.&quot;"><id>tag:blogger.com,1999:blog-9246378.post-112430829295780030</id><published>2005-08-17T12:42:00.000-07:00</published><updated>2005-08-17T12:51:33.000-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2005-08-17T12:51:33.000-07:00</app:edited><title>com.octo.captcha.service.CaptchaServiceException: no captcha for specified id is found</title><content type="html">&lt;pre class="code"&gt;
&lt;font color="#2040a0"&gt;com&lt;/font&gt;.&lt;font color="#2040a0"&gt;octo&lt;/font&gt;.&lt;font color="#2040a0"&gt;captcha&lt;/font&gt;.&lt;font color="#2040a0"&gt;service&lt;/font&gt;.&lt;font color="#2040a0"&gt;CaptchaServiceException&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt; &lt;font color="#2040a0"&gt;no captcha for specified id is found&lt;/font&gt;
  &lt;font color="#2040a0"&gt;at&lt;/font&gt; &lt;font color="#2040a0"&gt;com&lt;/font&gt;.&lt;font color="#2040a0"&gt;octo&lt;/font&gt;.&lt;font color="#2040a0"&gt;captcha&lt;/font&gt;.&lt;font color="#2040a0"&gt;service&lt;/font&gt;.&lt;font color="#2040a0"&gt;EhcacheManageableCaptchaService&lt;/font&gt;$&lt;font color="#2040a0"&gt;EhcacheStore&lt;/font&gt;.&lt;font color="#2040a0"&gt;getCaptcha&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;
    &lt;font color="#2040a0"&gt;EhcacheManageableCaptchaService&lt;/font&gt;.&lt;font color="#2040a0"&gt;java&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#FF0000"&gt;909&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;at&lt;/font&gt; &lt;font color="#2040a0"&gt;com&lt;/font&gt;.&lt;font color="#2040a0"&gt;octo&lt;/font&gt;.&lt;font color="#2040a0"&gt;captcha&lt;/font&gt;.&lt;font color="#2040a0"&gt;service&lt;/font&gt;.&lt;font color="#2040a0"&gt;AbstractCaptchaService&lt;/font&gt;.&lt;font color="#2040a0"&gt;getChallengeForID&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;
    &lt;font color="#2040a0"&gt;AbstractCaptchaService&lt;/font&gt;.&lt;font color="#2040a0"&gt;java&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#FF0000"&gt;534&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;at&lt;/font&gt; &lt;font color="#2040a0"&gt;com&lt;/font&gt;.&lt;font color="#2040a0"&gt;octo&lt;/font&gt;.&lt;font color="#2040a0"&gt;captcha&lt;/font&gt;.&lt;font color="#2040a0"&gt;service&lt;/font&gt;.&lt;font color="#2040a0"&gt;image&lt;/font&gt;.&lt;font color="#2040a0"&gt;EhcacheManageableImageCaptchaService&lt;/font&gt;.&lt;font color="#2040a0"&gt;getImageChallengeForID&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;
    &lt;font color="#2040a0"&gt;EhcacheManageableImageCaptchaService&lt;/font&gt;.&lt;font color="#2040a0"&gt;java&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#FF0000"&gt;505&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;/pre&gt;

&lt;p&gt;
This is due to a bug in &lt;a href="http://jcaptcha.sourceforge.net/"&gt;jcaptcha&lt;/a&gt; implementation, as detailed in &lt;a href="http://luminal.gotdns.com/jira/browse/FWK-21"&gt;here&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;To spend 1 hour to get Maven running so that I can build from source to fix a bug known since June is not exactly fun for me at midnight running in "death march" mode. &lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/debug" rel="tag"&gt;debug&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9246378-112430829295780030?l=journeymanjournal.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SzulxPTLE9TDIDR1aI6GbRT2_k4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SzulxPTLE9TDIDR1aI6GbRT2_k4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SzulxPTLE9TDIDR1aI6GbRT2_k4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SzulxPTLE9TDIDR1aI6GbRT2_k4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/cFEA/~4/6NoFnyEql3o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://journeymanjournal.blogspot.com/feeds/112430829295780030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9246378&amp;postID=112430829295780030" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112430829295780030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9246378/posts/default/112430829295780030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/cFEA/~3/6NoFnyEql3o/comoctocaptchaservicecaptchaserviceexc.html" title="com.octo.captcha.service.CaptchaServiceException: no captcha for specified id is found" /><author><name>Anthony</name><uri>http://www.blogger.com/profile/14091179204316586820</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://journeymanjournal.blogspot.com/2005/08/comoctocaptchaservicecaptchaserviceexc.html</feedburner:origLink></entry></feed>

