<?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-7221201774185365982</id><updated>2011-07-30T20:13:50.916-05:00</updated><category term='ruby'/><category term='capacity'/><category term='SQL'/><category term='JavaMUG'/><category term='Spring Framework'/><category term='Dallas Techfest'/><category term='PL/SQL'/><category term='nfjs'/><category term='JavaRebel'/><category term='conference'/><category term='Oracle'/><category term='Java'/><category term='Spring Source Tool Suite'/><category term='houston'/><category term='Groovy'/><category term='Programming'/><category term='Product Reviews'/><category term='static imports'/><category term='dtf09'/><category term='relational integrity'/><category term='Scala'/><category term='TDD'/><category term='JRuby'/><category term='FTC'/><category term='Apress'/><category term='drools'/><category term='business rules'/><category term='Eclipse'/><category term='bigdesign'/><category term='SpEL'/><category term='random thoughts'/><category term='Web Flow'/><category term='design'/><category term='Grails'/><category term='project management'/><category term='User Group'/><category term='Spring'/><category term='testing'/><category term='techfest'/><category term='object oriented design'/><category term='database'/><title type='text'>Brian Hurley - Blog</title><subtitle type='html'>Java and Oracle architect</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-7889536294908020391</id><published>2010-03-26T15:41:00.006-05:00</published><updated>2010-03-26T16:14:53.847-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='SpEL'/><title type='text'></title><content type='html'>I was playing around with Spring 3.0 and the new Spring Expression Language SpEL the last couple of days and ran across a few issues.   First the Spring documentation is a little lacking in this area so I am going to share what I have found.&lt;br /&gt;&lt;br /&gt;The problem that I was working to solve was that we store our properties files outside of the War file and use a context property to point to the directory where the file is located.  In Spring 2.5.6 this was a little complicated but with Spring 3.x it’s much easier when you use SpEL.&lt;br /&gt;&lt;br /&gt;With SpEL you can access several types of properties right out of the box.  Here is a list of the ones that I know about.  (systemProperties, systemEnvironment, contextAttributes, contextParameters)&lt;br /&gt;&lt;br /&gt;The key one for my use was finding the contextParameters.  What I do is to setup a parameter name in my context xml file for Tomcat.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" &lt;br /&gt;    charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="true" debug="0" &lt;br /&gt;    docBase="C:\Data\etc\eclipse\projectName1\web" mapperClass="org.apache.catalina.core.StandardContextMapper" &lt;br /&gt;    path="/projectName1" privileged="false" reloadable="false" swallowOutput="false" useNaming="true" &lt;br /&gt;    workDir="work\Standalone\localhost\projectName1" wrapperClass="org.apache.catalina.core.StandardWrapper"&amp;gt;&lt;br /&gt;  &lt;span style="color:red;"&gt;&amp;lt;Parameter name="config.home" override="true" value="C:\Data\etc\eclipse\projectName1\properties"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/Context&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now in my application context xml file I can access this parameter with the SpEL command.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#{contextParameters['config.home']}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So to load up my application’s properties file it’s as easy as using the property loader like this…&lt;br&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;util:properties id="appProperties" location="file:#{contextParameters['config.home']}/myApplication.properties"&amp;gt;&lt;br /&gt;&amp;lt;/util:properties&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now the properties can be used anywhere in your application as necessary. This seems fairly simple but I searched the web and the latest Spring docs without success to find this information.  I dug into the Spring source last night to location exactly what I needed to make this work like I wanted.  I hope that this helps someone else and yes I’m going to put in a Jira to get the Spring docs updated to include the values list above.&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-7889536294908020391?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/7889536294908020391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=7889536294908020391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/7889536294908020391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/7889536294908020391'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2010/03/i-was-playing-around-with-spring-3.html' title=''/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-285562413916150901</id><published>2010-01-26T10:30:00.000-06:00</published><updated>2010-01-26T10:30:00.192-06:00</updated><title type='text'>Book Review: Oracle SQL Recipes - A Problem Solution Approach</title><content type='html'>Book Review: Oracle SQL Recipes - A Problem Solution Approach &lt;br /&gt;Author: Grant Allen, Bob Bryla, Darl Kuhn&lt;br /&gt;Publisher: Apress Inc&lt;br /&gt;ISBN: 978-1-4302-2509-6 &lt;br /&gt;&lt;br /&gt;I haven’t been reviewing Oracle SQL books since for the last several years my primary focus has been in the Java realm.  However, I still love working directly with databases especially Oracle so I was looking forward to when this book was release and I had high hopes.  Luckily the book delivers in fact I wish that I had a book just like this when I started to work with Oracle 12 years ago.  It would have made the learning curve much smaller.  &lt;br /&gt;&lt;br /&gt;As most books about any technical subject they start out with the simple and head toward the more advanced.  This book uses the same approach so if you’re already knowledgeable about SQL you can probably skip the first 2-3 chapters.  From there the book ramps up the complexity.  This is where SQL starts to get really fun.  The book covers many aspects of SQL programming that I have encountered over the years.  Validating data between tables, dealing with NULLs, manipulating data in and between types, REGEX are just part of what this book covers.  In fact I was working today and ran across a problem where I was developing new Java loaders for some large data sets.  I need to compare both tables that are located on different databases to make sure that my code is working the same as the old code.  I remembered a section from the book (3-9) that shows how to compare two tables and find the differences quickly.  This allowed me to implement a check on several tables in just a few minutes.  Otherwise I was going to write a Java program to check and compare the data in the objects which would have taken hours to write.  This is a good reminder that we should all use the right tool for the job and in many cases dealing with data using SQL is much simpler than other approaches.  &lt;br /&gt;&lt;br /&gt;I’m not saying that this book has everything that you would ever need in a SQL book but it’s a great place to start.  I would highly recommend this book to add to your library of must have SQL books along with about anything from Joe Celko.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-285562413916150901?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/285562413916150901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=285562413916150901' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/285562413916150901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/285562413916150901'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2010/01/book-review-oracle-sql-recipes-problem.html' title='Book Review: Oracle SQL Recipes - A Problem Solution Approach'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8200538251582352838</id><published>2009-12-23T01:49:00.002-06:00</published><updated>2009-12-23T01:51:37.986-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apress'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Book Review: Beginning Groovy And Grails</title><content type='html'>Book Review: Beginning Groovy And Grails &lt;br /&gt;Author: Christopher M Judd, Joseph Faisal Nusairat and James Shingler&lt;br /&gt;Publisher: Apress Inc&lt;br /&gt;ISBN: 978-1-4302-1045-0&lt;br /&gt;&lt;br /&gt;What I was looking for was a good beginning Groovy book.  What I found was a good beginning Grails book.  I know that the book covers Groovy in the first three chapters but I was wanting a little more. Anyway, the book does cover Grails fairly well over the next 10 chapters albeit a little dated.  The Groovy chapters covers just enough to get someone setup and starting to program in Groovy.  But what I want to use Groovy for initially testing and mocking my Java code.  Unfortunately this book really didn’t cover any advanced Groovy based topics.  Oh, well I’m sure that it’s available in other books.  &lt;br /&gt;&lt;br /&gt;The Grails sections are far more complete.  This book really takes you from creating a web app from scratch using Grails. From the initial configuration to security, restful web services and implementing a reporting system the book covers many of the important areas of creating a web application with Grails. It takes a good approach at explaining the basics and gives enough information in most cases to get to on the right track in more advanced development.  You will probably want to reference other texts after this one to bring you more up to date with the latest versions of Groovy and Grails and to cover specialized issues.   &lt;br /&gt;&lt;br /&gt;I liked the book but in the few areas where it was lacking like more Groovy support it made it a harder read than I expected. In all fairness I cannot really recommend this book as there are others that may be better suited for a beginning Groovy and Grails introduction.  It’s not that this book is terrible it just that others are better and this one is a little dated.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8200538251582352838?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8200538251582352838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8200538251582352838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8200538251582352838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8200538251582352838'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/12/book-review-beginning-groovy-and-grails.html' title='Book Review: Beginning Groovy And Grails'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-6446385895160592639</id><published>2009-12-08T09:44:00.001-06:00</published><updated>2009-12-08T09:44:00.198-06:00</updated><title type='text'>Book Review: Spring Persistence: A Running Start</title><content type='html'>Book Review: Spring Persistence: A Running Start&lt;br /&gt;Author: Paul Tepper Fisher and Solomon Duskis&lt;br /&gt;Publisher: Apress Inc&lt;br /&gt;ISBN: 978-1-4302-1878-4&lt;br /&gt;&lt;br /&gt;Persistence is a necessary evil in creating applications that enable user interaction.  Using Spring makes dealing with persistence much easier but there is the configurations that get everything starting which confuses some new to the framework.  The book Spring Persistence: A Running Start is a quick overview on how to get the most common persistence types setup and running with a minimal effort.  I liked the breakout by chapter for each persistence style.  The book covers the basics of why to separate your application into layers to break the dependencies, JDBC, Hibernate and JPA, IBatis then some transaction and testing.  Lastly it covers a little of Groovy and Grails.  This book which is aptly named gives a person with little or no experience integrating persistence into a Spring application a Running Start with good examples of configurations to get the basics going.  From there the user needs to work on their own, or consult with a more advanced reference or find the information on the web.  I would have liked to see a more in depth coverage about the various types of persistence technologies and more advanced examples.  Not all the time do we get to deal with easy database scenarios as in the provided examples.  Many times we need to work with legacy databases that were not built with ORM friendly tables.  This book does what it comes to do but I feel that there is an audience for more advanced but just as focused books on the Spring layers.  I come away from reading this book with a since of knowing more about some of the persistence types that I have not dealt with yet but I feel that I want more.  I recommend this book for anyone new to Spring or someone that needs to start using another ORM type like Hibernate or IBatis.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-6446385895160592639?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/6446385895160592639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=6446385895160592639' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6446385895160592639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6446385895160592639'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/12/book-review-spring-persistence-running.html' title='Book Review: Spring Persistence: A Running Start'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-1360801233720943924</id><published>2009-11-23T08:57:00.000-06:00</published><updated>2009-11-23T08:57:00.844-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Source Tool Suite'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Plugins that I use.</title><content type='html'>I’ve been using the Spring Source Tool Suite (STS) every since they released it to open source.  STS is a very good version of Eclipse with many cool Spring tools rolled into it.  However, there are some plugins that I like to add to make my development a little easier.&lt;br /&gt;&lt;br /&gt;The first one that I load is the Infinitest plugin (&lt;a href="http://eclipse.infinitest.org"&gt;http://eclipse.infinitest.org&lt;/a&gt;) .  This plugin used to be free but they made it free for only non-commercial development however, it is the single biggest development booster when it comes to TDD development.  I could argue for a while about the pricing model that they adopted for commercial development but if you can get your company to flip for the high cost it is a great plugin.&lt;br /&gt;&lt;br /&gt;Next I usually load in a few bug detectors.  Findbugs (&lt;a href="http://findbugs.cs.umd.edu/eclipse"&gt;http://findbugs.cs.umd.edu/eclipse&lt;/a&gt;) and checkstyle (&lt;a href="http://eclipse-cs.sf.net/update"&gt;http://eclipse-cs.sf.net/update&lt;/a&gt;) .  Eventually I’ll end up using just one of these type of detectors but both are good for certain type of issues.  Checkstyle is highly configurable and can enforce a coding style and findbugs can locate more issues than the internal Java code checker.  STS already has PMD loaded by default which I also use at times.  Now if I could just get my co-workers to start using them…&lt;br /&gt;&lt;br /&gt;Now I load up some persistence plugins.  IBator (&lt;a href="http://ibatis.apache.org/tools/ibator"&gt;http://ibatis.apache.org/tools/ibator&lt;/a&gt;)  is nice sometimes when working with IBatis development to generate some code and Hibernate Tools (&lt;a href="http://download.jboss.org/jbosstools/updates/stable"&gt;http://download.jboss.org/jbosstools/updates/stable&lt;/a&gt;) I sometimes use for some hibernate development.  However, I think that Spring Roo will take over for most of the work that I do with Hibernate Tool very soon.  If you haven’t really looked at Spring Roo yet you should.  In fact stop reading this right now and go do it! But don’t forget to come back and finish reading my blog… :)&lt;br /&gt;&lt;br /&gt;Lastly, I usually load up Subeclipse (&lt;a href="http://subclipse.tigris.org/update_1.6.x"&gt;http://subclipse.tigris.org/update_1.6.x&lt;/a&gt;)  I like Subeclipse for SVN maintenance more than Subversion so far.  They both look good but I started out using Subeclipse and haven’t had any problems so far.&lt;br /&gt;&lt;br /&gt;Well that’s about it.  Any plugins that you load that I don’t?  Let me know why you use them.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-1360801233720943924?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/1360801233720943924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=1360801233720943924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1360801233720943924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1360801233720943924'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/11/eclipse-plugins-that-i-use.html' title='Eclipse Plugins that I use.'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-6828483316223950069</id><published>2009-10-09T14:18:00.000-05:00</published><updated>2009-10-09T14:19:46.527-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Product Reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='FTC'/><title type='text'>New FTC Guidlines for posting reviews or products</title><content type='html'>The FTC posted new &lt;a href="http://www.ftc.gov/os/2009/10/091005endorsementguidesfnnotice.pdf"&gt;guidelines&lt;/a&gt; about doing reviews of products in blogging posts as I read on the &lt;a href="http://www.pcmag.com/article2/0,2817,2353969,00.asp"&gt;PC Mag post&lt;/a&gt; by Editor Dan Costa today.  I agree with Dan that the way this is wording is not enforceable being that there are thousands or millions of blog posts each day.  I post reviews of books at times.  Most of the time I get the book for free for writing up the review and posting to my blog and to Amazon reviews.  However, some of the time I post the review for a book that I purchased.  I assure you ALL of the time it is a fair review and will not be swayed by any fact about how or where I got the book.  This is how I see the book and or product that I’m reviewing.  I don’t hold any punches; if the book is crap I’m going to say its crap.  If the book is great and the best thing since the dawn of mankind, I’ll say so.  &lt;br /&gt;Read my reviews and post any comments of your own.  I’m open to any debate on any book or product that I post a review.   However, I don’t see the need to add a disclaimer on each posting that I did or did not receive the product for free.  I’m not a lawyer but this should be challenged by the freedom of speech act or something.&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-6828483316223950069?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/6828483316223950069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=6828483316223950069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6828483316223950069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6828483316223950069'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/10/new-ftc-guidlines-for-posting-reviews.html' title='New FTC Guidlines for posting reviews or products'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-3246861208633376829</id><published>2009-09-28T15:45:00.001-05:00</published><updated>2009-09-28T15:45:00.221-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apress'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Flow'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>Book Review: The Definitive Guide to Spring Web Flow</title><content type='html'>Book Review: The Definitive Guide to Spring Web Flow &lt;br /&gt;Author: Erwin Vervaet &lt;br /&gt;Publisher: Apress Inc&lt;br /&gt;ISBN: 978-1-4302-1624-7 &lt;br /&gt;&lt;br /&gt;The first thing about The Definitive Guide to Spring Web Flow that I noticed, and the book was very up front about, it only covers Spring Web Flow v1.0.  In the introduction it states that this book only intends to cover the core concepts about Spring Web Flow and the details about v1.0.  It states that v2.0 is dramatically different and is a subject for another book.  If you’re starting out in Spring Web Flow then you might want to pass on this book and look for another book that specifically focuses on the Web Flow v2.0.  However, if you have a need to learn v1.0 this may be a book for you. &lt;br /&gt;&lt;br /&gt;The book starts out with an introduction to what Web Flow is and how to get it setup.  It then proceeds to explain the basics of web flow and how to get the jars and setup an IDE.  I think that this part is a little overkill since anyone with enough Java knowledge should know how to add the dependencies through Maven, Ivy or to manually copy of few jars and add them to your classpath.  From there it takes you through the background of what is a web flow and how to plan a web flow in the code.  From entry points to exceptions it covers the necessary points to get going with Spring Web Flow v1.0.  Chapter 8 gets into the testing of a web flow and how to mock out the flow objects. This takes the unit testing to a new level in my case since in our traditional web applications that I have worked on we have not come close to testing the flows of a page with unit tests.  At best we have only tested the individual pages in isolation. The next chapter walks you through an example application.  Where other chapters may have left you wondering how to do something with minimal examples this is a full detailed application to get you started with Spring Web Flow. I wish more books would take this concept of using one full chapter and go through a application from start to finish like this.  &lt;br /&gt;&lt;br /&gt;The book continues on with some real world use cases and a short piece about how to extend web flow to meet any special needs that you may have.  The real world cases was nice but I didn’t get much from that as I know where web flow will fit into the tools that I need it to and where I’m going to use it. The extending web flow chapter was a good quick coverage of how to manipulate the web flow for you unique cases.  Maybe I read this part too quick, too late at night or the editors got to it and remove too much but I thought that it was lacking some of the good detail that was presented in the other chapters.&lt;br /&gt;&lt;br /&gt;Overall, I do recommend this book with the caveats that you understand that this is about Spring Web Flow v1.0.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-3246861208633376829?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/3246861208633376829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=3246861208633376829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3246861208633376829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3246861208633376829'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/09/book-review-definitive-guide-to-spring.html' title='Book Review: The Definitive Guide to Spring Web Flow'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-665581218987705719</id><published>2009-09-22T08:57:00.003-05:00</published><updated>2009-09-22T08:57:00.813-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Apress'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Book Review: Beginning Scala</title><content type='html'>Book Review: Beginning Scala &lt;br /&gt;Author: David Pollock &lt;br /&gt;Publisher: Apress Inc&lt;br /&gt;ISBN: 978-1-4302-1989-7 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I’ve been hearing about various other languages that are available for the JVM for a while.  I’ve seen presentations at my local Java user group and at conferences like NFJS and TechFest however, until now I have not really checked into what all of the excitement is about.  I just received the book Beginning Scala by David Pollak and read the first 4 chapters the first night.  Over the next few days I finished out the rest of the book.  I like the idea of a better than Java language as I will admit Java is not perfect.  It takes more code than it should to accomplish some tasks.  However, is Scala the best alternative to languages for the JVM, I think that the jury is still out.  Scala brings to the table a more simple construct but does have a learning curve from Java. Scala is much more functional than Ruby, has better synchronization than Groovy and includes immutability which Java should have had in the first place.  The only downside that I can see (and this is just from reading the book without experience in Scala) it may be a little too terse.&lt;br /&gt;&lt;br /&gt;The book itself is a great introduction to Scala and if you have not used a dynamic language and want to start with Scala you need this book.  It takes you through, rather quickly, the installation and basic syntax of the language.  I wish that this part was explained a little more but it does get its point across.  I would also like to see more comparisons against Java.  Since most people that would be using this book would probably know Java it would be helpful to have more comparisons especially in the syntax area.  The rest of the book walks you through using collections, JDBC and Scala’s strong suit concurrency plus a few other items.  I also think that the author’s writing style and grammar was excellent for this type of book.  Many times you read a book in the information technology field and there is poor sentence structure and spelling mistakes.  I did not see any blatant issues at least in my first pass through the book.&lt;br /&gt;&lt;br /&gt;The last chapter (9) gives you a compelling reason to start using Scala and introduce it into your corporate culture.  Working at a large company that has known to not live on the technological edge, language wise, I know what kind of uphill battle it may be to bring a new language into a company.  However, this language may be on my list to work with over the next year.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-665581218987705719?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/665581218987705719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=665581218987705719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/665581218987705719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/665581218987705719'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/09/book-review-beginning-scala.html' title='Book Review: Beginning Scala'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-5513266616897971852</id><published>2009-06-20T01:01:00.002-05:00</published><updated>2009-06-20T01:07:34.626-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Dallas Techfest'/><title type='text'>Dallas Techfest 2009 review</title><content type='html'>Arrived at Dallas TechFest 2009 this morning.  Found the place just fine but it may have been a little better if there was some signage at the doors to show people where the check in desk was.  I had to walk around for a while to find it.  Check in was a breeze but that might be because there wasn't many people here yet or just couldn't find the desk. Hmmm.&lt;br /&gt;&lt;br /&gt;After check in I walked around to the vendors or at least the 3 that I saw so far.  There may be others, I'll look later. I went to find the room for the first event.  After arriving at the room I was disappointed to see just chairs in the middle of the room.  Clearly the room was big enough to utilize a classroom style seating with tables to facilitate note taking, beverages and laptops!  Yes, people like taking notes with laptops, this is a techfest, go figure...  (Think NoFluff)&lt;br /&gt;&lt;br /&gt;I started to get setup in the conference room got my laptop out and started to connect to the internet.  Wait!  What is the code? WTF No free internet access! Ok let me get my CC out and buy some.  OK...  Looking... Looking... WTF  No place to purchase it on the site that I can see.  I can't fully ding Dallas Techfest for this since Westin has a crappy site but next year lets hope for a location like No Fluff (Wait my Power cord just got kicked out by someone tripping over it. Now what was I saying? Oh ya.. )  I think that every tech conference should measure itself to the No Fluff style of setup.  It works, it's efficient, and they don't charge for the internet.  Ok, conf #1 is about to start.&lt;br /&gt;&lt;br /&gt;First presentation complete on closures.  From the examples it looks like a lot less code that is less complex visually.  I think that I'll wait for the final proposal and it gets accepted into the core Java before I really start to investigate using this in any production work.  Either that or when I work with Groovy.&lt;br /&gt;&lt;br /&gt;Next I attended the TDD talk by Ben Rady.  I saw a simular talk last year at JavaMUG and attended TDD talks from Neal Ford.  Ben's talk was much more code example focused.  I would love to see more of a persistence level TDD example at some point but it is a good discussion about TDD and why we all should be writing tests.  Even if we don't write the tests first we need to be at least writing them.  Tests create the confidence that your code works and other changes, enhancements or refactors do not affect the code under test control.  I think that key to starting on this especially with a existing project is to just take pieces like Ben and Neal also mentioned, and refactor the code so some can be tested.  Then repeat as necessary until you have effective code coverage.&lt;br /&gt;&lt;br /&gt;After purchasing own lunch at Westin Grill.  (Houston Techfest, and Dallas BigDesign Conf both provided box lunches for less conf cost, Hmmm)  I headed back to the conf rooms.  I joined Ben Rady for the 2nd part of his presentation on testing.  This one was Continuous Testing using Infinitest.  I have been using Infinitest since the last time that I saw this presentation at JavaMUG.org.  Basically the same presentation but very effective.  This really shows WHY we need to test and the benefits of continuous testing and how that affects the quality of code.&lt;br /&gt;&lt;br /&gt;I attended Craig Walls' talk about what is new in Spring 3.0. Great talk as always Craig and I can't wait to start working with Spring 3 and try out some of the new features.  It looks cool.  Before attending this talk I was a little worried about the MVC changes and how that will affect legacy Spring code but per Craig it sounds like it will be a good change.  I'm looking forward to using some of the new @Cookie, @RequestHeader annotations also.&lt;br /&gt;&lt;br /&gt;Next I went to the Maven 2 talk from Ryan Breidenbach.  Fabulous job Ryan.  I attending the same talk at No Fluff a few weeks ago and it had most of the same content. This talk was so much better.  Better speaker, maybe?  Whatever the deal is I got a lot more out of this presentation than I did at No Fluff.  (In fact that No Fluff session was the only session that I rated very poor)&lt;br /&gt;&lt;br /&gt;All things considered this was a good conference and I would attend next year.  I'm still a little confused over the whole pricing structure. First I heard that it was one price, then they gave out discounts, then they raised the price, then a different discount.  Next year I just hope that everything is posted up front where we know when the early bird discount expires, when the discounts for user groups expires, etc. Also next year I hope they don't use the Westin Stonebriar.  Nice place but it did not have enough parking and I hate the seating style.  Rows of chairs for a tech conference?  Who thought of that!   Why not classroom style with thin long tables so we could take notes on a table, put our laptops on a table rather then holding them for the entire day. Think ergonomic!  If anyone has any questions about how to put on a great conference they should attend a No Fluff event!  We don't have to have the full buffet but a box lunch would be nice.  Also don't forget the WIRELESS access!&lt;br /&gt;&lt;br /&gt;I know that a lot of hard work went into this and I don't want to take away from any of that. They did a great job expecially with the speakers.&lt;br /&gt;&lt;br /&gt;So what is next hmmmm...  Spring One?&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-5513266616897971852?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/5513266616897971852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=5513266616897971852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5513266616897971852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5513266616897971852'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/06/dallas-techfest-2009-review.html' title='Dallas Techfest 2009 review'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8286655515779316347</id><published>2009-06-20T00:53:00.002-05:00</published><updated>2009-06-20T01:00:02.204-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Dallas Techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='dtf09'/><title type='text'>Today's tweets since no WIFI at Dallas Tech Fest</title><content type='html'>Here is the tweets that I would have done today if we had Free WIFI access at the Frisco Westin Stonebriar Resort.  I've never heard of a Tech conference (and have never attending one until now) that didn't have free WIFI...  Westin /dtf09 = #fail.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#dtf09 08:00 No WIFI access dtf09=#fail&lt;br /&gt;&lt;br /&gt;#dtf09 08:15 2nd #fail No classroom style seating with tables? WTF!  Not starting off well...&lt;br /&gt;&lt;br /&gt;#dtf09 08:30 No internet access at Westin Stonebriar.  Cost $10 per day but you can't sign up online? WTF #fail&lt;br /&gt;&lt;br /&gt;#dtf09 09:00 Attending Closures talk by Paul Holser&lt;br /&gt;&lt;br /&gt;#dtf09 09:36 my leg is already getting warm from my laptop.  I'm sure that I'll have 3rd degree burns by the end of the day...&lt;br /&gt;&lt;br /&gt;#dtf09 10:09 Closures almost over.  Wish there was more business like examples. Overall good presentation.&lt;br /&gt;&lt;br /&gt;#dtf09 10:15 TDD talk by @benready starting&lt;br /&gt;&lt;br /&gt;#dtf09 11:30 TDD or variations is the way to create software.  Much better than hacking at code.&lt;br /&gt;&lt;br /&gt;#dtf09 11:35 So were at a hotel and we have to go out for lunch?  WTF&lt;br /&gt;&lt;br /&gt;#dtf09 13:00 Finished lunch at Westin grill.  Good lunch but Houston Techfest provided a box lunch&lt;br /&gt;&lt;br /&gt;#dtf09 13:30 Starting @benrady talk about continuous testing. &lt;br /&gt;&lt;br /&gt;#dtf09 14:20 Infinitest @benrady love the talk 2nd time seen it really shows WHY we need to be testing&lt;br /&gt;&lt;br /&gt;#dtf09 14:45 Wishing I had a iPhone for email and twitter access today.&lt;br /&gt;&lt;br /&gt;#dtf09 15:00 Next is the one that I came for (mostly) What's new in Spring 3 by Craig Walls&lt;br /&gt;&lt;br /&gt;#dtf09 16:30 About to start the last session of the day.  I'm going to hang with Ryan and learn a little about Maven2&lt;br /&gt;&lt;br /&gt;#dtf09 17:05 Good presentation but Ryan is also missing wireless and may have to cut it short because of it.&lt;br /&gt;&lt;br /&gt;#dtf09 18:00 Dallas Techfest is over.  Now I get to go home and send all my tweets?  WTF&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8286655515779316347?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8286655515779316347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8286655515779316347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8286655515779316347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8286655515779316347'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/06/todays-tweets-since-no-wifi-at-dallas.html' title='Today&apos;s tweets since no WIFI at Dallas Tech Fest'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8461953025324005150</id><published>2009-06-14T17:15:00.003-05:00</published><updated>2009-06-14T17:41:49.829-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaMUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaRebel'/><title type='text'>Using JavaRebel to speed up development</title><content type='html'>I was at the last &lt;a href="http://javamug.org"&gt;JavaMUG.org&lt;/a&gt; meeting where the creators of &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;JavaRebel &lt;/a&gt;demonstrated how this software helps out by eliminating the need to restart Tomcat or the JVM while changing classes.  The presentation was very compelling but I don't just jump to every piece of software that comes along which promises to help out development speed.  However, I went ahead and tried it out the day after the meeting while I needed to make some changes to some code.  It really worked.  After a little configuration change to my development setup to put the classes in the WEB-INF/classes directory instead of a jar file in the WEB-INF/lib it was working.  I made several changes to the classes and refreshed the browser, BINGO, changes were recognized. This must have saved me a few minutes of development time already in the short amount of time that I have been using it.  It should save hours in the next year.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8461953025324005150?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8461953025324005150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8461953025324005150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8461953025324005150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8461953025324005150'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/06/using-javarebel-to-speed-up-development.html' title='Using JavaRebel to speed up development'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-4974879831971077815</id><published>2009-06-03T09:38:00.001-05:00</published><updated>2009-06-03T09:38:00.419-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='nfjs'/><title type='text'>NFJS 2009 This weekend!</title><content type='html'>Two more days until the &lt;a href="http://www.nofluffjuststuff.com/conference/dallas/2009/06/index.html"&gt;NFJS conference &lt;/a&gt;!!!!!!!!!!!&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-4974879831971077815?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/4974879831971077815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=4974879831971077815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4974879831971077815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4974879831971077815'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/06/nfjs-2009-this-weekend.html' title='NFJS 2009 This weekend!'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8821711711813092593</id><published>2009-06-01T08:48:00.000-05:00</published><updated>2009-06-01T08:48:00.851-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='bigdesign'/><title type='text'>Big(D) Design conference reflection</title><content type='html'>I attended the first Big D Design conference this Saturday.  Overall I was impressed about the structure of the conference and how well it seemed to flow in spite of the lack of time between sessions.   It did feel rushed and I was extremely tired at the end of the day after trying to take in 9, YES --&gt; NINE &lt;--, one hour sessions in one day.  That is a lot of conference sessions to take in for one day and retain the disparate information.&lt;br /&gt;&lt;br /&gt;Some things that I liked about the conference.  Good quality of speakers for a low cost conference.  This does show how much good talent that we have in Dallas.  Good central location for most people.  At least it was easy access off Hwy 75.   The meeting facility was in good condition and had enough room for most of the events/sessions.  No problem with the food.  It was a great little box lunch with sandwich, chips and cookie.&lt;br /&gt;&lt;br /&gt;Some things that I did not like as much:  Parking was not great but was acceptable.  This may be attributed to not knowing much about the SMU campus.  The only issue about the facility is it didn't have enough power outlets to charge up the laptop.  I was out of power by the 3rd session until I was in a room that had more outlets.  One conference room had classroom stadium seating but not all outlets under the desks were working.  The last thing is the initial wait to check into the conference.  I think that it took about 30 minutes to get checked in.  I would have loved to use that time to walk around the sponsors tables or even get a little breakfast or coffee.  However, by the time that I got in to the conference area the first session was about to start and I wanted to get a seat and make sure that we had wireless access.&lt;br /&gt;&lt;br /&gt;Overall I am glad that I attended and will probably attend next year.  However, that may depend on the content and speakers.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8821711711813092593?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8821711711813092593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8821711711813092593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8821711711813092593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8821711711813092593'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/06/bigd-design-conference-reflection.html' title='Big(D) Design conference reflection'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-4996498505465692432</id><published>2009-04-30T13:43:00.000-05:00</published><updated>2009-04-30T13:43:00.514-05:00</updated><title type='text'>Big (D)esign conference</title><content type='html'>I signed up for the &lt;a href="http://bigdesignconference.com/"&gt;Big (D)esign conference&lt;/a&gt; that will be held May 30th at SMU.   It looks like betwen this conference and the ones that I'm attending in June it's going to be a great next few months.   First is this Big (D)esign conference then NFJS Dallas June 5-7, then Dallas Techfest June 19th in Frisco...  &lt;br /&gt;&lt;br /&gt;I've ready been to the Houston techfest this year so what other conferences can I attend in 2009 that don't break the bank?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-4996498505465692432?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/4996498505465692432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=4996498505465692432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4996498505465692432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4996498505465692432'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/04/big-design-conference.html' title='Big (D)esign conference'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-2727125296036634996</id><published>2009-04-28T13:58:00.005-05:00</published><updated>2009-04-28T14:42:07.429-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='relational integrity'/><title type='text'>I just read....</title><content type='html'>I was just reading Chris' &lt;a href="http://elegantcode.com/2009/04/26/there-is-no-right-way/"&gt;blog &lt;/a&gt;about the right way and the wrong was to do things.  We read many posts every day about the "best" way to write java, or the best way to use ORM or the best way to design a database schema.  However, not all co-workers are always in agreement with anything that has the word "best" in the sentence.&lt;br /&gt;&lt;br /&gt;Let me highlight a discussion that I had yesterday about a database schema design.  (names have been changes to protect their stupidity).&lt;br /&gt;&lt;br /&gt;Overview:  I found that during the initial database design that I was not involved with some items was left out.  For instance foreign keys, check constraints, First normal form, etc.  (Small things...) &lt;--- scarsam...   During the meeting where I found that a table is not available to hold the attachments for some data since the data relates to another part of the application.  I suggested that we create another table and tie in the FK back to the original table that this data will be attached.  However, the conversation when a little like this...   Person 1 = Boss Person 2 = project owner and BA Person 3 = business expert and technicial architect Person 4 = team member, (Java Programmer) Me = Me, team member, (Java programmer and 12 years experience in Database design)  &amp;lt;Me&gt; I'd like to add in this table and then relate it back to the master table with a FK&lt;br /&gt;&amp;lt;Person 4&gt; We don't need FK's since the application takes care of it.&lt;br /&gt;&amp;lt;Me&gt; We had this conversation before and we agreed that FK's are good for the relational integrity of the data.  Are you saying that we should use the current table that relates to (this other table).&lt;br /&gt;&amp;lt;Person 4&gt; Yes, because why have another table to store the attachments?&lt;br /&gt;&amp;lt;Me&gt; Because of data integrity...&lt;br /&gt;&amp;lt;Person 2&gt; We could create the table that links the current attachment table to the master data table.&lt;br /&gt;&amp;lt;Me&gt; But we cannot enforce the integrity of the attachments that way because two link tables would be related to the attachment table.&lt;br /&gt;&amp;lt;Person 4&gt; (calls person 3 name) what to you think?&lt;br /&gt;&amp;lt;Person 3&gt; I don't know about databases so it's up to you.&lt;br /&gt;&amp;lt;Me&gt; So we are not going to worry about data integrity on this project?&lt;br /&gt;&amp;lt;Person 4&gt; The application will take care of it.&lt;br /&gt;&amp;lt;Person 2&gt; (referring to me), can you create the table like I showed and let the rest of the team know?&lt;br /&gt;&amp;lt;Me&gt; Are you sure?&lt;br /&gt;&amp;lt;Person 2&gt; Yes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok, I'm sure that someone will point out that maybe I caved in too soon.  However, this is not the first time that I've had this conversation about database integrity with someone.  Most of the time I do convence the other side that we should use the relational database (Oracle in this case) to manage the integrity of the data.  Some of the checks can be in the application but it is my belief that the database should be the last line of defense for the data.  If there is something that the database can make sure is related or helps to keep the data clean why not do it.  In this case there is no concern about space differences.  We are adding a table either way so why not do it where the database can make sure that the data from one table can relate to the other table.&lt;br /&gt;&lt;br /&gt;I could go on and on about this but I'll start to ramble at some point if I haven't already.   I guess my question is how do you convince people to use the best practices when it seems like they are not willing to accept suggestions to make current designs better?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-2727125296036634996?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/2727125296036634996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=2727125296036634996' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2727125296036634996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2727125296036634996'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/04/i-just-read.html' title='I just read....'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-4621554467511468360</id><published>2009-04-23T15:00:00.000-05:00</published><updated>2009-04-23T15:00:01.098-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='nfjs'/><category scheme='http://www.blogger.com/atom/ns#' term='Dallas Techfest'/><title type='text'>Comming this June!</title><content type='html'>It looks like June is going to be an incredible month in Dallas for Java.  First we have the &lt;a href="http://www.nofluffjuststuff.com/conference/dallas/2009/06/index.html"&gt;NFJS conference&lt;/a&gt; coming June 5th - 7th.  Then just a few weeks later we have the &lt;a href="http://www.dallastechfest.com/"&gt;Dallas TechFest &lt;/a&gt;conference on June 19th.&lt;br /&gt;&lt;br /&gt;I'm counting the days!&lt;br /&gt;&lt;br /&gt;Brian&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-4621554467511468360?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/4621554467511468360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=4621554467511468360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4621554467511468360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4621554467511468360'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/04/comming-this-june.html' title='Comming this June!'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-2915598503388234246</id><published>2009-04-22T17:08:00.004-05:00</published><updated>2009-04-22T17:21:14.862-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random thoughts'/><title type='text'>Time for a Post</title><content type='html'>I've been thinking about what to post about for a while now.  I have come up with an answer.  Since I'm now heavily involved in &lt;a href="http://www.javamug.org/"&gt;JavaMUG.org&lt;/a&gt; and have attended several conferences about java related issues I think that it's about time that I start to post about Java?  Hmmm sound good? &lt;br /&gt;&lt;br /&gt;Ok keep looking here over the next few weeks and you will start to see posts about my idea of best practices for developing Java, Spring, IBatis, apps.&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-2915598503388234246?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/2915598503388234246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=2915598503388234246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2915598503388234246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2915598503388234246'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/04/time-for-post.html' title='Time for a Post'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-522579113651392855</id><published>2009-01-30T15:10:00.003-06:00</published><updated>2009-01-30T15:25:43.212-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Dynamic PL/SQL and Bulk Collect</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Today was the first time that I needed to use dynamic sql with BULK COLLECT.  It was due to a distributed database system that used dblinks from a master reporting database.  I programmed this on Oracle 10g but it should work on 9i or later.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;pre&gt;&lt;br /&gt;declare&lt;br /&gt;&lt;br /&gt;  TYPE table1Type is TABLE OF table1%ROWTYPE&lt;br /&gt;        index by binary_integer;&lt;br /&gt;   v_results      table1Type ;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;  v_sql := 'SELECT *&lt;br /&gt;             FROM  table1@' || v_dblink || '&lt;br /&gt;             WHERE  mydate_dttm &gt; sysdate - 1';&lt;br /&gt;     &lt;br /&gt;    EXECUTE IMMEDIATE v_sql BULK COLLECT INTO v_results;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;That's it...   This loaded all of the records into the v_results PL/SQL table and you can loop through the results like a array.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-522579113651392855?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/522579113651392855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=522579113651392855' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/522579113651392855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/522579113651392855'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/dynamic-plsql-and-bulk-collect.html' title='Dynamic PL/SQL and Bulk Collect'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-4294795572157140257</id><published>2009-01-24T23:37:00.002-06:00</published><updated>2009-01-24T23:48:00.819-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='capacity'/><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='object oriented design'/><category scheme='http://www.blogger.com/atom/ns#' term='houston'/><title type='text'>Notes from Houston Techfest, Part 2</title><content type='html'>After lunch we had three more sessions.&lt;br /&gt;&lt;br /&gt;Darin Marple&lt;br /&gt;Topic: Using java to solve capacity issues&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What can we do from a design perspective to identify or prevent capacity issues.&lt;br /&gt;&lt;br /&gt;Transaction Model: Move transactions to as low of level as possible.  Avoid two phase commits. Consolidate transactions at the db layer with stored procedures or DAO patterns.&lt;br /&gt;&lt;br /&gt;Dependency Management: primary concern is dependency is not available at the time its needed Solutions  caching dependency using any of the caching methods  Workflow management: Provide alternative business path to using the data using possible older data.&lt;br /&gt;&lt;br /&gt;Application Metrics:&lt;br /&gt;    Metrics via JMX: Monitoring with logging, JMX can publish metrics for mbeans&lt;br /&gt;&lt;br /&gt;    Persisting Metrics: Save metrics for analysis over time.  Preferably to a database for persistence. Watch for extra load on database. Can output logs to file then batch load them into the database.&lt;br /&gt;&lt;br /&gt;Validation: Load testing with LoadRunner: Validates application will work on a test system. Allows capture of true SLA and ability to tune and retest.  Try to simulate real load as close as possible.&lt;br /&gt;&lt;br /&gt;Deployment&lt;br /&gt;    Horizontal Scalability. Use JMS Distributed Batch.  Use singleton at low level and workers at a higher level to pass information to the lower level.&lt;br /&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;David Neal &lt;br /&gt;Topic: Coding Considerations for Production Support: Instrumenting your code to reduce your support headaches&lt;br /&gt;&lt;br /&gt;Carnegie Mellon University's Software Engineering Institute&lt;br /&gt;Capacity Maturity Model&lt;br /&gt;&lt;br /&gt;Avoid the standalone application mindset.  Use useful error message. Dynamic adjusted diagnostic levels, Use progressive level of detail. If your using threading applications make sure that you include a key to be able to get the output back out of the logs for that one.  Check log4j to output thread information. Log4j can also watch the logging level and if it changes in the properties it will update.&lt;br /&gt;&lt;br /&gt;Aggregate the data from the method level to the caller level. Make sure that the context of the work is logged. If you return 100 records or 1M records put that in the logging so another user will know what the context of the results are.&lt;br /&gt;&lt;br /&gt;Recoverable: Make sure the processing has the ability to recover preferably in stages especially for the larger jobs that need to be completed. Fuego is used for common recovery procedures.&lt;br /&gt;&lt;br /&gt;JP Morgan uses a dashboard system to aggregate the data from the monitoring systems and that needs to demonstrate SLA.  That also gives the ability to drill down into various problems.&lt;br /&gt;&lt;br /&gt;--------------------------&lt;br /&gt;John Teague&lt;br /&gt;Topic: Principals of Object Oriented Design&lt;br /&gt;&lt;br /&gt;Principals based on Robert's Martin's book.&lt;br /&gt;&lt;br /&gt;High Cohesion and Low Coupling helps to make a solid OO design.&lt;br /&gt;&lt;br /&gt;Makes code: Maintainable, Easier to test, Less resistant to change, reduce repetition, allows for continuous improvement, allows for agile development with vertical design.&lt;br /&gt;&lt;br /&gt;If your going to mock it put an interface around it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SOLID&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-4294795572157140257?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/4294795572157140257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=4294795572157140257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4294795572157140257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/4294795572157140257'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/notes-from-houston-techfest-part-2.html' title='Notes from Houston Techfest, Part 2'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-2947196128084208005</id><published>2009-01-24T22:46:00.005-06:00</published><updated>2009-01-24T23:50:18.405-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='static imports'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='houston'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Notes from Houston Techfest, Part 1</title><content type='html'>Notes from Houston Techfest:&lt;br /&gt;&lt;br /&gt;Keynote Sang Shin from Sun Microsystems&lt;br /&gt;Topic: Having fun in building Web applications with Ruby/JRuby/Rails&lt;br /&gt;&lt;br /&gt;Notes:  Not real instested in Ruby or JRuby.  My Personal feelings is this is a fad language and will disappear the way of cobol in a few years.  However, Sang gave a good presentation about the Ruby basics and how to get started doing web development.  His web site &lt;a href="http://www.javapassion.com/"&gt;http://www.javapassion.com/&lt;/a&gt; looks like it has jump start guide.  I just don't see this as mature a development framework as Spring or other DI design patterns.&lt;br /&gt;&lt;br /&gt;--------------------------------------------&lt;br /&gt;The next session that I attended was by Brian K Oxley from JP Morgan&lt;br /&gt;&lt;a href="http://binkley.blogspot.com/"&gt;http://binkley.blogspot.com/&lt;/a&gt;&lt;br /&gt;Topic: Fluent Interfaces for testing in Java&lt;br /&gt;&lt;br /&gt;Basically this shows how to add testing to Java code using code that look like english sentences.  Proponent of static imports.&lt;br /&gt;&lt;br /&gt;org.hamcrest.matchers testing library looks promising.  Need to check into that library more.&lt;br /&gt;&lt;br /&gt;Building fluent interfaces promotes the Builder Pattern to implement a testing interface for the code.  So this creates an additional layer between the use case test and the code to be tested.  This layer abstracts the test building so more syntactically correct English can be used to create the tests.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Even though I can understand the benefits for creating a more English like structure to create the tests it looks like with this additional layer of code that there is more code to test.  What tests the test interface and what if the test interface is wrong or introduces a new bug that hides a bug in the code.  This can happen in single level testing also but I'm not convinced that adding an additional layer to the testing will streamline code testing.&lt;br /&gt;&lt;br /&gt;Brian also plugged Ron Coffin from Improving Enterprises&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;&lt;br /&gt;William J Ferris&lt;br /&gt;Topic: Topics in ava Concurrency&lt;br /&gt;&lt;br /&gt;Recommended:&lt;br /&gt;Brian Goetz, Java Concurrency in Practice&lt;br /&gt;Herb Sutter, DDJ March 05: Free Lunch is Over&lt;br /&gt;&lt;br /&gt;Why do we need to work on concurrency.  Increasing need for threading because of multiple cores. Biggest threat to programming concurrency race condition when you expect one thread to finish first all the time or one thread accesses a object after another thread read it but before it writes to it.  Other threats are deadlock and starvation.  Deadlock is when two or more resources are waiting on resources.  Starvation is when a thread cannot get cpu time.&lt;br /&gt;&lt;br /&gt;To fix race condition: Concurrent Solutons&lt;br /&gt;1. Elimination: Don't share the object if possible&lt;br /&gt;2. Dynamic Exclusion: Use locks and barriers&lt;br /&gt;3. Structural Exclusion: Code with immutable objects and confinement,isolate variables to specific threads&lt;br /&gt;&lt;br /&gt;#2 Locks Intrinsic use synchronized keyword,  Synchronized locks on getter and setters doesn't work!&lt;br /&gt;&lt;br /&gt;Explicit locks java.util.concurrency.locks&lt;br /&gt;&lt;br /&gt;Atomic new in java.  Creates thread safe objects.  Uses new methods to access the object.&lt;br /&gt;&lt;br /&gt;Atomic best preforming, then explicit locks.  Synchronized and fair share model are the slowest when more threads are added.&lt;br /&gt;&lt;br /&gt;Maps are not thread safe, ConcurrentMap is threadsafe.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;Next was lunch -&gt; See part 2....&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-2947196128084208005?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/2947196128084208005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=2947196128084208005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2947196128084208005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2947196128084208005'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/notes-from-houston-techfest-part-1.html' title='Notes from Houston Techfest, Part 1'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-5393317904615987782</id><published>2009-01-21T15:34:00.003-06:00</published><updated>2009-01-21T15:37:02.164-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='houston'/><title type='text'>Houston Tech Fest this weekend!</title><content type='html'>Looking forward to the Houston Tech Fest this weekend.  It will be good to see some friends again and learn some new stuff.   I noticed on the agenda that some spots are still open. I guess that some presenters backed out. Hope they get some more to fill in the spots.&lt;br /&gt;&lt;br /&gt;Anyone else going?  Let me know so we can meet up at the event.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-5393317904615987782?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/5393317904615987782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=5393317904615987782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5393317904615987782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5393317904615987782'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/houston-tech-fest-this-weekend.html' title='Houston Tech Fest this weekend!'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8074971209369352712</id><published>2009-01-11T13:59:00.002-06:00</published><updated>2009-01-11T14:04:42.723-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='Dallas Techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Dallas Techfest 2009 Postponed</title><content type='html'>I just read in &lt;a href="http://timrayburn.net"&gt;Tim's Blog&lt;/a&gt; that the &lt;a href="http://dallastechfest.com/"&gt;Dallas Techfest 2009&lt;/a&gt; has been postponed and will not happen by March as originally planned.  This is due to the last of sponsors for the event.  If anyone has additional contacts to get support let Tim know or contact me and I'll pass the information on.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8074971209369352712?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8074971209369352712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8074971209369352712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8074971209369352712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8074971209369352712'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/dallas-techfest-2009-postponed.html' title='Dallas Techfest 2009 Postponed'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-5168805181655466958</id><published>2009-01-10T13:07:00.005-06:00</published><updated>2009-01-11T14:05:16.148-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><title type='text'>Houston Tech Fest</title><content type='html'>Houston tech fest is only two week away now.  I'll be blogging about it that night or when I get back to Dallas.   Check out the tech fest lineup at &lt;a href="http://www.houstontechfest.com/"&gt;http://www.houstontechfest.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can also find links to all of the techfests at &lt;a href="http://techfests.com/"&gt;http://techfests.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-5168805181655466958?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/5168805181655466958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=5168805181655466958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5168805181655466958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5168805181655466958'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2009/01/houston-tech-fest.html' title='Houston Tech Fest'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-1316797467843863254</id><published>2008-11-12T18:41:00.002-06:00</published><updated>2008-11-12T18:47:04.148-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='techfest'/><category scheme='http://www.blogger.com/atom/ns#' term='houston'/><title type='text'>Houston Tech Fest</title><content type='html'>I just signed up for the Houston Tech Fest &lt;a href="http://www.houstontechfest.com/"&gt;http://www.houstontechfest.com&lt;/a&gt;.   They opened the registration yesterday I guess.   This is the conference that was postponed because of huricane Ike in September.  The new date is January 24th 2009...&lt;br /&gt;&lt;br /&gt;My personal friend Paul Roest is planning on giving one session about Java Exceptions so I have to go down there to listen to him talk.  &lt;br /&gt;&lt;br /&gt;See you there...&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-1316797467843863254?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/1316797467843863254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=1316797467843863254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1316797467843863254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1316797467843863254'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/11/houston-tech-fest.html' title='Houston Tech Fest'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-3262388179406806802</id><published>2008-08-06T00:42:00.002-05:00</published><updated>2008-08-06T00:45:04.520-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='nfjs'/><title type='text'>NFJS Alumni</title><content type='html'>I was reading the Agile Artisans Blog today and saw that they created a new NFJS Alumni Google group.  If you have attended a NFJS conference concider signing up for this group and discuss past conferences and probably some future ones as well.&lt;br /&gt;&lt;br /&gt; &lt;a href="http://groups.google.com/group/nfjs-alumni"&gt;http://groups.google.com/group/nfjs-alumni&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-3262388179406806802?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/3262388179406806802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=3262388179406806802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3262388179406806802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3262388179406806802'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/08/nfjs-alumni.html' title='NFJS Alumni'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-343639725386192747</id><published>2008-07-18T15:26:00.003-05:00</published><updated>2008-07-18T15:34:08.938-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drools'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='business rules'/><title type='text'>Java Mug July Meeting</title><content type='html'>It's been a little while since I've blogged but here I am.  I attended the July JavaMug.org meeting to listen about the Business Rules talk by Lawrence Terrill.  I was expecting the same thing as I attended at the Java No Fluff Just Stuff conference on Drools.  Yes, it covered the same basic information but the javaMug talk explained what Business Rules was and how to use them much better (Sorry Brian).  I can really see where this could come in handy on a couple of projects that I have encountered.  It would have make the solutions much easier to maintain.  For example one of the projects that I worked on uses the same type of rules execution system.  However, we designed everything in the database using PL/SQL.  I think that we could have run the same process in Java using a rule processor like Drools and it would have cut months off of the project.&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-343639725386192747?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/343639725386192747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=343639725386192747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/343639725386192747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/343639725386192747'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/07/java-mug-july-meeting.html' title='Java Mug July Meeting'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-1068717876502080124</id><published>2008-06-20T23:40:00.003-05:00</published><updated>2008-06-21T00:14:25.701-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JRuby'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='User Group'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Java User Group Meetings in June</title><content type='html'>This month I made a attempt to make several user group meetings in the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Dallas&lt;/span&gt; area.  The first one was the Java-Mug meeting last week.  This month topic was Groovy.  I like the concepts of Groovy that allows it to integrate with Java so well.  I don't know how much I'll use it in project yet but I will keep it in mind.&lt;br /&gt;&lt;br /&gt;The next one that I went to was the Grails talk at the Spring Users group.  Grails seems a little like what we did in another project with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt;.  It was never published and wasn't as complete as Grails but the same ideas.  I might use Grails if I use Groovy for some quick prototyping.  I'll just have to see...&lt;br /&gt;&lt;br /&gt;The next day I went to the Next Big &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JDK&lt;/span&gt; Thing.  They are starting a multi-month discussion on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;JRuby&lt;/span&gt;. My goal was to find out about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;JRuby&lt;/span&gt; and how it fits into Java.  However, for what I saw it looks a little &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;hacky&lt;/span&gt;.  The Java connects are cumbersome and just doesn't visually fit in my opinion.  The odds of me using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;JRuby&lt;/span&gt; is very slim.  However, I can't wait for the November meeting on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;JavaFX&lt;/span&gt;... &lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-1068717876502080124?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/1068717876502080124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=1068717876502080124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1068717876502080124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1068717876502080124'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/06/java-user-group-meetings-in-june.html' title='Java User Group Meetings in June'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-1116240034700314593</id><published>2008-06-09T16:21:00.000-05:00</published><updated>2008-06-09T16:23:02.982-05:00</updated><title type='text'>Lone Star NFJS Conference Day 3</title><content type='html'>Day 3 of the Lone Star conference.  I started out yesterday attending Brian Sam-Bodden two lectures about Hibernate.  I wanted to look at using Hibernate and learn about the concepts.  Brian did not let me down. This is exactly what I needed.  I was able to learn about Hibernate and some of the basic techniques.  He also gave examples of when to use the different configurations.  During his second lecture he gave 10 ways to use hibernate more effectively. Hibernate is not a solution for every case but I fully understand when and where this product would be of value.  If I am going to build a OLTP site I will probably use Hibernate.  If I am building a site that is more reporting based or will be handling larger datasets then I will probably use iBatis or another solution.&lt;br /&gt;&lt;br /&gt;After lunch I wasn’t sure which one to attend.  After talking with other attendees I decided to go with Mark Richards talk about Java Persistence – Approaching the Silver Bullet.  Yes, I know that this makes my third persistence lecture in one day but this is an area that I’m focused on at the moment in my career. &lt;br /&gt;&lt;br /&gt;Mark’s talk further examined the differences between iBatis and JPA (Hibernate).  He showed examples why to use one or the other in a very clear format.  This drove home the point that Brian Sam-Bodden had this morning and also highlighted some of the deficiencies of each type of solution.  Mark also pointed out that these may not be the only solution you may need and gave a list of the top 25 persistence frameworks that should be investigated. &lt;br /&gt;&lt;br /&gt;Since I was on the java persistence bandwagon today I just decided to stay in the same room and listen to Mark’s second lecture about Transactional Design Patterns.  This was a good discussion about the right way to implement a transaction.  Did you know there are 3 transaction design patterns to implement a transaction correctly.  All that I really considered before was the one (start trans) do something (complete trans) else (rollback).  Ask me about this if you want to know more or get Mark’s book  &lt;a href="http://www.infoq.com/minibooks/JTDS"&gt;http://www.infoq.com/minibooks/JTDS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This was a long weekend and my brain is hurting with all of the knowledge it tried to soak up in a short period.  However, I feel that this was a fantastic event and I can’t wait for next year.  I know that I’ll be a better programmer because of it.&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-1116240034700314593?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/1116240034700314593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=1116240034700314593' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1116240034700314593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/1116240034700314593'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/06/lone-star-nfjs-conference-day-3.html' title='Lone Star NFJS Conference Day 3'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-6170843155522536234</id><published>2008-06-08T10:49:00.006-05:00</published><updated>2008-06-09T15:58:44.278-05:00</updated><title type='text'>Lone Star NFJS Conference Day 2</title><content type='html'>Day 2 started out with a little drooling... I'm mean Drools rules engine. I wanted to attend this talk by Brian Sam-Bodden to evaluate it's possible use with the business rules that tends to be wrote over and over in most programs. I think that it is possible but I don't really have a warm fuzzy about using Drools yet as I don't know if this is a technology to stay long term. Side note: What is long term in this business? Who knows.&lt;br /&gt;&lt;br /&gt;The next conference was the one that I was waiting for the Spring Security talk. Looking back I wish that I attended more of the Spring conferences (the other two) but it's ok. I learned a lot from the ones that I attended. Anyway, Craig Walls discussion on the spring security helped me to understand from a high level view how to implement the security models around my code. Thanks Craig for you dedication to Spring. I will be using this in some not so future projects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The last two talks that I attended were by Neal Ford. Neal is a fabulous speaker. He keeps your attention with examples and illustrations. Neal talked about test driven design and then code metrics. Both discussions were very enlightening. This may be the session that will have the biggest impact on my coding. I have been thinking that there is a better way to develop, test at the same time and regression test. This is it! I can’t wait to start my new future of coding. Thanks Neal!&lt;br /&gt;&lt;br /&gt;Lastly, we had the Birds of the Feather meeting. This is where we sit down with some of the speakers and talk one-on-one. They had the sessions Architecture, Dynamic languages and Spring/Hibernate. I went with the one for Spring. Not because of Craig Walls but because this gave me a little more in depth look into Spring. A good side effect of this is that I was able to meet Brian Sam-Bodden and get to know him a little more. It may not have been as beneficial as the classes themselves but I still enjoyed it.&lt;br /&gt;&lt;br /&gt;Keep posted for tomorrows update.&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-6170843155522536234?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/6170843155522536234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=6170843155522536234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6170843155522536234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/6170843155522536234'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/06/lone-star-nfjs-conference-day-2.html' title='Lone Star NFJS Conference Day 2'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-5773109678339855013</id><published>2008-06-07T10:49:00.006-05:00</published><updated>2008-06-09T15:50:52.437-05:00</updated><title type='text'>Lone Star NFJS Conference</title><content type='html'>Today is the second day of the java No Fluff Just Stuff conference. I have to complement Jay for putting on a good conference so far. Right now I'm waiting for the second session to start with Craig Walls talk on the Spring Security. This is the topic that I have been waiting for.&lt;br /&gt;&lt;br /&gt;Yesterday I went to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;JSF&lt;/span&gt; talk by David &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Geary&lt;/span&gt;. I liked that presentation and it gave a good overview of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JSF&lt;/span&gt;. I don't know If I subscribe to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;JSF&lt;/span&gt; yet but at least I know more about it then I did a week ago. The next session that attended was the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;RIA&lt;/span&gt; talk from Richard &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Moson&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Haefel&lt;/span&gt;. I commend Richard for being very enthusiastic about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;RIA&lt;/span&gt; concepts but I just &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;don't&lt;/span&gt; agree with some of his theories about pushing most of the computation to the client side because the industry will move back to client only apps. I think that some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;RIA&lt;/span&gt; is a good idea but just us it in the right place.&lt;br /&gt;&lt;br /&gt;The last presentation that I attended yesterday was the talk from Craig Walls on Spring Web Services. I don't have any current plans to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;WS&lt;/span&gt; yet but I love the ideas in Spring and if I need to implement &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WS&lt;/span&gt; I'll look at Spring &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WS&lt;/span&gt; in more detail. Thanks again Craig.&lt;br /&gt;&lt;br /&gt;After that we had dinner and then the Keynote from Neal Ford: Ancient Philosophers &amp;amp; Blowhard Jamborees. This was truly the best of the day. Definitely a wake up call for all US programmers, developers and architects. The talk had humor, history and a look at what is going on in our industry.&lt;br /&gt;&lt;br /&gt;I can't wait for the rest of this weekend. Keep posted for my next entry&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-5773109678339855013?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/5773109678339855013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=5773109678339855013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5773109678339855013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/5773109678339855013'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/06/lone-star-nfjs-conference.html' title='Lone Star NFJS Conference'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-442663615905454525</id><published>2008-06-05T14:02:00.002-05:00</published><updated>2008-06-05T14:05:21.560-05:00</updated><title type='text'>One day away from Lone Star Java Conference</title><content type='html'>One day away from the Lone Star Java conference here in Dallas, TX.   I'm looking forward to it.  I have picked out my classes and will be ready to attend tomorrow at 12:00.   I'll update the blog about each conference and the speakers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-442663615905454525?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/442663615905454525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=442663615905454525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/442663615905454525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/442663615905454525'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/06/one-day-away-from-lone-star-java.html' title='One day away from Lone Star Java Conference'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-3364264827557275335</id><published>2008-05-27T11:04:00.002-05:00</published><updated>2008-05-27T11:12:43.824-05:00</updated><title type='text'>Java No Fluff Just Stuff Conference</title><content type='html'>I just signed up for the 3 day No Fluff Just Stuff - Lone Star Software Symposium Java Conference in Dallas.  I'm excited about attend this as this is my first full weekend conference.&lt;br /&gt;&lt;br /&gt;Check out the details of this conference at &lt;a href="http://www.nofluffjuststuff.com/conference/dallas/2008/06/index.html"&gt;http://www.nofluffjuststuff.com/conference/dallas/2008/06/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It looks like several notiable people in java are going to be there including Brian Bodden, Craig Walls, Scott Davis, and Mark Richards.  I'm looking forward to listen to Craig's talks about Spring especially the Security modules.&lt;br /&gt;&lt;br /&gt;I'll give a review of each session that I attend. &lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-3364264827557275335?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/3364264827557275335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=3364264827557275335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3364264827557275335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/3364264827557275335'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/05/java-no-fluff-just-stuff-conference.html' title='Java No Fluff Just Stuff Conference'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-2604372401788783298</id><published>2008-05-23T14:26:00.002-05:00</published><updated>2008-05-23T14:32:42.038-05:00</updated><title type='text'>Spring user group meeting dallas</title><content type='html'>Last Wednesday I attend the Spring users group meeting in Dallas.  Keith Donald from &lt;a href="http://springsource.com/"&gt;http://springsource.com&lt;/a&gt; presented on the Spring MVC 2.5 changes.  This was very informative and I appreciate Keith flying in to talk to us.   Thanks also goes to Erik and Andy for setting this up.  I plan to be more engaged in the Spring Dallas users group in the future to learn even more about Spring and it's modules. If you are interested in checking out the Spring Dallas Users group then check out their site at: &lt;a href="http://www.springdallasug.org/"&gt;http://www.springdallasug.org/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-2604372401788783298?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/2604372401788783298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=2604372401788783298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2604372401788783298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/2604372401788783298'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/05/spring-user-group-meeting-dallas.html' title='Spring user group meeting dallas'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry><entry><id>tag:blogger.com,1999:blog-7221201774185365982.post-8074818663750396476</id><published>2008-05-23T13:27:00.000-05:00</published><updated>2008-05-23T13:29:51.247-05:00</updated><title type='text'>My First Blog Post</title><content type='html'>Here is my first blog post.  The reason why I created this blog to is personally reflect on what happens in my life and how I think about certain things.&lt;br /&gt;&lt;br /&gt;Let me know what you think?&lt;br /&gt;&lt;br /&gt;Brian&lt;div class="blogger-post-footer"&gt;http://infinitedata.blogspot.com/&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7221201774185365982-8074818663750396476?l=infinitedata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infinitedata.blogspot.com/feeds/8074818663750396476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7221201774185365982&amp;postID=8074818663750396476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8074818663750396476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7221201774185365982/posts/default/8074818663750396476'/><link rel='alternate' type='text/html' href='http://infinitedata.blogspot.com/2008/05/my-first-blog-post.html' title='My First Blog Post'/><author><name>Brian Hurley</name><uri>http://www.blogger.com/profile/16542424025948944947</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></entry></feed>
