<?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-10064838</id><updated>2011-12-13T21:55:44.969-06:00</updated><category term='java'/><title type='text'>FutureTask</title><subtitle type='html'>A cancellable asynchronous computation</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Billy Bob Bain</name><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>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10064838.post-3445239484088205056</id><published>2010-08-11T09:13:00.001-05:00</published><updated>2010-08-11T09:13:59.337-05:00</updated><title type='text'>More Programming Posts Coming</title><summary type='text'>I'm resurrecting FutureTask, to discuss mainly java and android development.</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/3445239484088205056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=3445239484088205056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3445239484088205056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3445239484088205056'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2010/08/more-programming-posts-coming.html' title='More Programming Posts Coming'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-3041645160711570692</id><published>2008-01-05T12:07:00.000-06:00</published><updated>2008-01-05T12:09:19.333-06:00</updated><title type='text'>105,444 Reasons to Try Babbleknot</title><summary type='text'>Babbleknot reached 105,444 indexed message board forums this morning. The load process was paused to gather statistics.Some recent progressdefault landing page was redone to be simpler, load faster, and with more of an emphasis on searchsearch pagination implementedtotal search hits &amp; execution time added to resultsthread preview with hit highlighting courtesy of Compassfixed bug with incorrect </summary><link rel='related' href='http://www.babbleknot.com' title='105,444 Reasons to Try Babbleknot'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/3041645160711570692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=3041645160711570692' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3041645160711570692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3041645160711570692'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2008/01/105444-reasons-to-try-babbleknot.html' title='105,444 Reasons to Try Babbleknot'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-9064905685902167504</id><published>2007-12-03T00:26:00.001-06:00</published><updated>2007-12-03T00:39:51.248-06:00</updated><title type='text'>Babbleknot New Features</title><summary type='text'>This was originally posted on the babbleknot.com blog.The babbleknot.com team has been gulping diet rockstar &amp; busy adding new forums and features. Currently the board is loading at the rate of about 4,000 new forums per day, with a goal of 150,000 boards during the beta. Just now over half-way there with 78,184 forums loaded. I continue to be amazed at the variety of boards out there, and the </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/9064905685902167504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=9064905685902167504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/9064905685902167504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/9064905685902167504'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2007/12/babbleknot-new-features.html' title='Babbleknot New Features'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-8105296915139719696</id><published>2007-12-02T16:56:00.000-06:00</published><updated>2007-12-02T16:57:26.246-06:00</updated><title type='text'>Social Graph Visualization with Babbleknot.com</title><summary type='text'>This item originally ran on the babbleknot.com blog. Babbleknot.com is now open for a public beta.Babbleknot scans the index pages of over 70,000 message boards to generate thread / topic metrics. Things such as velocity, mass, acceleration to name a few. These metrics are used to generate input to a spider that indexes the content and generates graphs of the hot threads.Below is a sample graph </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/8105296915139719696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=8105296915139719696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/8105296915139719696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/8105296915139719696'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2007/12/social-graph-visualization-with.html' title='Social Graph Visualization with Babbleknot.com'/><author><name>Billy Bob Bain</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1221/1383975848_29df32617a_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-2815712525910627547</id><published>2007-06-19T10:32:00.000-05:00</published><updated>2007-06-19T10:33:45.186-05:00</updated><title type='text'>Java Powered Submarine</title><summary type='text'>From JavaOne 2007 in San Francisco.</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/2815712525910627547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=2815712525910627547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/2815712525910627547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/2815712525910627547'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2007/06/java-powered-submarine.html' title='Java Powered Submarine'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-3750851116657659969</id><published>2007-02-16T06:44:00.000-06:00</published><updated>2007-02-16T07:02:00.900-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Software Developer's Combat Manual</title><summary type='text'>I picked this up in 1997 at the Java Internet Business Expo. It was held at Javits in NY &amp; I remember McNealy spouting something about the 1st 100 days of Java. I know it was invented earlier... I am just telling you the marketing crap I heard that day. I looked on developer.com this morning &amp; couldn't find it. If anyone has better luck, please comment.Looks like I forgot to eat lunch one day. </summary><link rel='related' href='http://farm1.static.flickr.com/143/391989220_57fc588b81_o.jpg' title='Software Developer&apos;s Combat Manual'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/3750851116657659969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=3750851116657659969' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3750851116657659969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/3750851116657659969'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2007/02/software-developers-combat-manual.html' title='Software Developer&apos;s Combat Manual'/><author><name>Billy Bob Bain</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/143/391989220_57fc588b81_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-1631502634327751653</id><published>2007-02-11T22:19:00.000-06:00</published><updated>2007-02-11T22:49:07.693-06:00</updated><title type='text'>Youtube Responses Helped along by Greasemonkey</title><summary type='text'>I recently started playing with Greasemonkey under Firefox 2.0 &amp; wrote this youtube video response viewer today. It is floating to towards the right side in this screenshot.All responses in the chain are represented in a treeview. You can right-click launch the videos. Warning: It can be a pig on certain videos with lots of responses.The script is also available on Userscripts.org.The floating </summary><link rel='related' href='http://userscripts.org/scripts/show/7490' title='Youtube Responses Helped along by Greasemonkey'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/1631502634327751653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=1631502634327751653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/1631502634327751653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/1631502634327751653'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2007/02/youtube-responses-helped-along-by.html' title='Youtube Responses Helped along by Greasemonkey'/><author><name>Billy Bob Bain</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/130/387563677_d70f506def_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-116256230718474634</id><published>2006-11-03T07:41:00.000-06:00</published><updated>2006-11-03T07:58:27.223-06:00</updated><title type='text'>Java, Texas</title><summary type='text'>We recently rode a steam train from Palestine to Rusk on the Texas State Railroad. I enjoyed it almost as much as my 3 year old son.When we got close to Rusk, we passed through Java, Texas. The railroad sign is too small in this pic, but click on the image &amp; you'll get the original image.The following is from TexasEscapes.com.The settlement is said to have been named for a petticoat lost (and </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/116256230718474634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=116256230718474634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/116256230718474634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/116256230718474634'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/11/java-texas.html' title='Java, Texas'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-115702846125780498</id><published>2006-08-31T07:06:00.000-05:00</published><updated>2006-08-31T08:50:54.716-05:00</updated><title type='text'>Java Tip #11 - Beware the Fickle Session ID</title><summary type='text'>In March of 2005 I posted the article Performance 101 - Avoiding Work. In that tip I described a process where we store the users last jdbc connection in  a hashmap using the HTTP Session ID as the key. In the last few months, several of our customers had been experiencing random, unexplained connection leaks when under a heavy load.We were unable to duplicate this issue in house, even though we </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/115702846125780498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=115702846125780498' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/115702846125780498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/115702846125780498'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/08/java-tip-11-beware-fickle-session-id.html' title='Java Tip #11 - Beware the Fickle Session ID'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-114864459875235539</id><published>2006-05-26T06:14:00.000-05:00</published><updated>2006-05-26T06:58:34.446-05:00</updated><title type='text'>Java Tip #10 - Constructor Exceptions are Evil</title><summary type='text'>I saw this in the Secure Coding Antipatterns session at JavaOne 2006. It might scare the hell out of you.Suppose I have the following class Foo and the constructor of Foo throws an exception. This might be due to some kind of security constraint or an invalid state. Suppose we don't anyone unauthorized to call the doEvil() method.public class Foo {  public Foo() {  System.out.println("</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/114864459875235539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=114864459875235539' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114864459875235539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114864459875235539'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/05/java-tip-10-constructor-exceptions-are.html' title='Java Tip #10 - Constructor Exceptions are Evil'/><author><name>Billy Bob Bain</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-114744992818457105</id><published>2006-05-12T10:53:00.000-05:00</published><updated>2006-05-12T11:06:35.883-05:00</updated><title type='text'>Contributing Tapestry POC to Eclipse RSP-UI</title><summary type='text'>I spent some time developing a proof of concept for Tapestry and RSP-UI for others to review. I've forwarded the POC directly to Wolfgang Gehner at Infonoia for possible integration into the sample application.Information on RSP-UI can be found here.http://www.eclipse.org/proposals/rsp/The POC can be  downloaded from here.http://www.babbleknot.com/stuff/tapestry-rsp-workspaces.zipThe  zip file </summary><link rel='related' href='http://www.babbleknot.com/stuff/tapestry-rsp-workspaces.zip' title='Contributing Tapestry POC to Eclipse RSP-UI'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/114744992818457105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=114744992818457105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114744992818457105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114744992818457105'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/05/contributing-tapestry-poc-to-eclipse.html' title='Contributing Tapestry POC to Eclipse RSP-UI'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-114545327933981806</id><published>2006-04-19T08:24:00.000-05:00</published><updated>2006-04-19T08:29:07.970-05:00</updated><title type='text'>Salon Newsletter PHP errors</title><summary type='text'>Found this from Salon in my inbox this morning. Nice PHP errors there...</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/114545327933981806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=114545327933981806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114545327933981806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114545327933981806'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/04/salon-newsletter-php-errors.html' title='Salon Newsletter PHP errors'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-114527653801626227</id><published>2006-04-17T07:01:00.000-05:00</published><updated>2006-04-17T07:22:18.030-05:00</updated><title type='text'>Stored Procedures or Java?</title><summary type='text'>I found this thread on Artima forums discussing where logic should reside in database apps: stored procedures or java.We've had this discussion many times at my place of work &amp; I am currently on a project with zero stored procedures. But stored procedures are used heavily in our still strong legacy app &amp; they helped us achieve acceptable performance at the time. One of the issues I remember from </summary><link rel='related' href='http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=156318' title='Stored Procedures or Java?'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/114527653801626227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=114527653801626227' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114527653801626227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114527653801626227'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/04/stored-procedures-or-java.html' title='Stored Procedures or Java?'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-114320815015168916</id><published>2006-03-24T07:38:00.000-06:00</published><updated>2006-03-24T07:50:11.230-06:00</updated><title type='text'>Java Tip #9 - unboxing and the elusive npe</title><summary type='text'>Be aware that unboxing can cause a NullPointerException.Suppose I have this function.public void test(int a) {  ...}and I declare this variable  Integer x = null;then when I make this call  test(x)I get a NullPointerException as x is "unboxed" to an int.  A more specific exception such as "NullPointerExceptionDueToUnboxingYouMoron" would have helped.Enjoy.</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/114320815015168916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=114320815015168916' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114320815015168916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/114320815015168916'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/03/java-tip-9-unboxing-and-elusive-npe.html' title='Java Tip #9 - unboxing and the elusive npe'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-113648964844393404</id><published>2006-01-05T12:51:00.000-06:00</published><updated>2006-01-05T13:37:38.403-06:00</updated><title type='text'>switch labels and constant expressions</title><summary type='text'>Thomas writes that he is confused why this code won't compile when it satisfies the switch label requirements in the JLS specification. This snippet is cut from his site.1. public class Harbour {2.   static void foo(){}3.   public static void main(String[] args) {4.     int bootNumber = new Integer(2007);5.     final Integer year = 2007;6.     switch (bootNumber) {7.       case 10: foo();break;</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/113648964844393404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=113648964844393404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/113648964844393404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/113648964844393404'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2006/01/switch-labels-and-constant-expressions.html' title='switch labels and constant expressions'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-113355776286573367</id><published>2005-12-02T14:52:00.000-06:00</published><updated>2005-12-02T15:10:49.316-06:00</updated><title type='text'>Working Hard</title><summary type='text'>Been no tips cause there is too much work. Other than this one... recently had the need to match a java.sql.Connection to its Oracle counterpart. We did it with a SID &amp; Serial.If you execute this query as you take a connection from the pool, you can match them up. Not a good idea in production, but ok for test and debug. select sid, serial#, metauser from v$session where audsid = userenv('</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/113355776286573367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=113355776286573367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/113355776286573367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/113355776286573367'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/12/working-hard.html' title='Working Hard'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-111529650107524745</id><published>2005-05-05T08:51:00.000-05:00</published><updated>2005-05-05T08:58:18.903-05:00</updated><title type='text'>Gosling Interview</title><summary type='text'>Business Week has an interview with James Gosling. I like this response.Q: Many people have tried to take credit for Java's success over the years. At this 10-year anniversary, are there any unsung heroes?A: One of the things that has always kind of bugged me is everyone talks about me as the guy who created Java. That was true up until about 8 to 10 years ago. I wrote the first thing. But you </summary><link rel='related' href='http://www.businessweek.com/technology/content/may2005/tc2005054_3448_tc057.htm' title='Gosling Interview'/><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/111529650107524745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=111529650107524745' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111529650107524745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111529650107524745'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/05/gosling-interview.html' title='Gosling Interview'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-111054900733420097</id><published>2005-03-11T07:26:00.000-06:00</published><updated>2005-03-11T07:57:48.336-06:00</updated><title type='text'>Performance 101 - Avoid Work</title><summary type='text'>We have a "performance" team at my day job. I am often unofficially assigned to this team when we are benchmarking a new release. While this is important stuff, I think more needs to be done to train the developers on performance basics.First off, let me say that I do not consider myself an expert on performance. I do know how to analyze performance data and tune algorithms, but that's down in </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/111054900733420097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=111054900733420097' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111054900733420097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111054900733420097'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/03/performance-101-avoid-work.html' title='Performance 101 - Avoid Work'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-111011677737745280</id><published>2005-03-06T07:22:00.000-06:00</published><updated>2005-03-06T07:46:17.383-06:00</updated><title type='text'>MyEclipse has improved</title><summary type='text'>I bought a subscription to MyEclipse over a year ago, but let it expire. Recently I downloaded an update and after using it for a couple of weeks, I must renew my subscription. We use Struts Studio at the office. In fact, I helped select it. But this $30 / year package blows it away in many areas.  It goes beyond just doing struts development and gives you nice little tools for everything. If you</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/111011677737745280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=111011677737745280' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111011677737745280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/111011677737745280'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/03/myeclipse-has-improved.html' title='MyEclipse has improved'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110659457837864596</id><published>2005-02-01T15:00:00.000-06:00</published><updated>2005-02-01T15:35:46.673-06:00</updated><title type='text'>Java Tip #8 - Go to JavaOne</title><summary type='text'>Go to JavaOne. I have attended the San Franscisco summer JavaOne for the past few years. The 2004 event was a return to the glory days. The session quality continues to improve and the evening BOFs are great.Bring your laptop cause wi-fi abounds. In the evening BOFs, beer is acceptable everywhere. I've also seen folks buying beer during the day at the snack bars. That would just make me sleepy.</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110659457837864596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110659457837864596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110659457837864596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110659457837864596'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/02/java-tip-8-go-to-javaone.html' title='Java Tip #8 - Go to JavaOne'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110648824319073156</id><published>2005-01-24T07:19:00.000-06:00</published><updated>2005-01-24T07:59:56.466-06:00</updated><title type='text'>Java Tip #7 - Use .hotspot_compiler file to stop compilation</title><summary type='text'>The hotspot compiler has known bugs that can cause the compilation thread to go cpu bound. We had seen this behavior occasionally in production. A customer would call &amp; report that no one was logged into the system, but it was at 100% on one cpu. The instance would normally be restarted &amp; things would be fine. We couldn't figure out why &amp; of course the customer was frustrated at having to restart</summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110648824319073156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110648824319073156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110648824319073156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110648824319073156'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-7-use-hotspotcompiler-file-to.html' title='Java Tip #7 - Use .hotspot_compiler file to stop compilation'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110562622923791854</id><published>2005-01-13T07:45:00.000-06:00</published><updated>2005-01-13T08:23:49.236-06:00</updated><title type='text'>Java Tip #6 - Don't capitalize first two letters of a bean property name</title><summary type='text'>This is in our java standards. You should not create a java bean property name that begins with a capital letter in the 1st two places. It can lead to confusing results. We had this happen a few times &amp; finally added it to our standards &amp; enforce it in code reviews. One place we saw problems was in struts. The form bean properties are used in the JSP page, but the Struts framework has to use the </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110562622923791854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110562622923791854' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110562622923791854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110562622923791854'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-6-dont-capitalize-first-two.html' title='Java Tip #6 - Don&apos;t capitalize first two letters of a bean property name'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110548615015848424</id><published>2005-01-11T17:06:00.000-06:00</published><updated>2005-05-05T08:54:53.396-05:00</updated><title type='text'>Java Tip #5 - Avoid 64KB method limit on JSP</title><summary type='text'>Ok, this is hard to do on purpose with plain old java, but I've seen plenty of JSPs that when compiled had a method that exceeded the 64KB limit. Depending on the VM it may just barf and end with a hotspot error or it might give you some kind of useful message. I find it's just a hotspot error. Tomcat describes this problem in their release notes.The simplest way to fix this is to break the page </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110548615015848424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110548615015848424' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110548615015848424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110548615015848424'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-5-avoid-64kb-method-limit-on.html' title='Java Tip #5 - Avoid 64KB method limit on JSP'/><author><name>Billy Bob Bain</name><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>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110546212329051882</id><published>2005-01-11T10:37:00.000-06:00</published><updated>2005-01-11T10:58:22.466-06:00</updated><title type='text'>Java Tip #4 - Endorsed Standards Override Mechanism</title><summary type='text'>An endorsed standard is a Java(TM) API defined through a standards process other than the Java Community Process(SM). These standards might be revised between releases of the Java 2 platform. Sun defined the Endorsed Standards Override Mechanism (ESOM) to allow a developer to provide a newer version of an endorsed standard than those include in the Java 2 platform.The classes that need to be </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110546212329051882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110546212329051882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110546212329051882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110546212329051882'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-4-endorsed-standards-override.html' title='Java Tip #4 - Endorsed Standards Override Mechanism'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110544759251986704</id><published>2005-01-11T06:40:00.000-06:00</published><updated>2005-01-11T15:51:25.406-06:00</updated><title type='text'>Java Tip #3 - Don't use fields on Struts action classes</title><summary type='text'>This is very specific to the Struts web application framework. Don't use a field on a Struts action class. Struts caches action classes &amp; reuses them to call the execute() method. (perform() on 1.0) This can cause unexpected behavior &amp; performance issues under a load. Add a check for this to your code review process.Thanks to the anonymous person who pointed out even without the 'static' </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110544759251986704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110544759251986704' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110544759251986704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110544759251986704'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-3-dont-use-fields-on-struts.html' title='Java Tip #3 - Don&apos;t use fields on Struts action classes'/><author><name>Billy Bob Bain</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110536986101492452</id><published>2005-01-10T08:38:00.000-06:00</published><updated>2005-01-10T09:18:04.510-06:00</updated><title type='text'>Java Tip #2 - Contiguous Switches</title><summary type='text'>When coding a switch statement, use contiguous ranges even if they are dummies. The compiler can optimize switches that use contiguous ranges. If you decompile to bytecode using DeCafe or similar, you SHOULD see the "tableswitch" bytecode where this switch begins. If you see "lookupswitch", it will use a O(n) lookup instead of directly jumping to the statement. I've seen nice performance </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110536986101492452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110536986101492452' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110536986101492452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110536986101492452'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-2-contiguous-switches.html' title='Java Tip #2 - Contiguous Switches'/><author><name>Billy Bob Bain</name><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></entry><entry><id>tag:blogger.com,1999:blog-10064838.post-110536536748312855</id><published>2005-01-10T07:47:00.000-06:00</published><updated>2005-01-10T08:31:05.053-06:00</updated><title type='text'>Java Tip #1 - Constant Comparison</title><summary type='text'>I'm going to start writing down some of the java tidbits I've picked up over the years. I find I'm starting to forget some of them... so this serves as a permanent reminder for myself and possibly education for some. Many of these will seem trivial and I doubt any are original ideas.When comparing a constant to a variable, always put the constant on the left side of the expression. This will </summary><link rel='replies' type='application/atom+xml' href='http://futuretask.blogspot.com/feeds/110536536748312855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10064838&amp;postID=110536536748312855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110536536748312855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10064838/posts/default/110536536748312855'/><link rel='alternate' type='text/html' href='http://futuretask.blogspot.com/2005/01/java-tip-1-constant-comparison.html' title='Java Tip #1 - Constant Comparison'/><author><name>Billy Bob Bain</name><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></entry></feed>
