<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Shlrm.org Blag &#187; Java</title>
	<atom:link href="http://shlrm.org/wordpress/category/coding/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://shlrm.org/wordpress</link>
	<description>Linux, Java, Ruby, and Politics.</description>
	<lastBuildDate>Mon, 10 Oct 2011 18:50:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hibernate 3 Maven Plugin hbm2ddl Goal and Hate</title>
		<link>http://shlrm.org/wordpress/2011/10/10/hibernate-3-maven-plugin-hbm2ddl-goal-and-hate/</link>
		<comments>http://shlrm.org/wordpress/2011/10/10/hibernate-3-maven-plugin-hbm2ddl-goal-and-hate/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 18:50:48 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Coding!]]></category>
		<category><![CDATA[Gripes]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=492</guid>
		<description><![CDATA[What happens when your build fails because it cannot talk to the internet anymore? You have DTD issues. I detail a solution specifically for the hibernate3-maven-plugin and it's hbm2ddl goal.]]></description>
			<content:encoded><![CDATA[<p>Over the weekend the Jenkins build started failing. The error leads me to believe that someone didn&#8217;t verify their build before committing code, and that the configuration file now has a problem:</p>
<pre class="brush: text; gutter: false; first-line: 1">org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl (create-schema) on project incident-service:
   Execution create-schema of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed:
    Could not parse configuration: file:/var/lib/jenkins/jobs/IncidentService/workspace/target/classes/hibernate.cfg.xml</pre>
<p>Except, there were no changes to the code; nothing changed in this file, and it&#8217;s been working fine for about a month or two. The environment the build server is on changed however. It cannot get to certain parts of the internet:</p>
<pre class="brush: text; gutter: false; first-line: 1"></pre>
<pre class="brush: text; gutter: false; first-line: 1">jenkins@hudson1:~$ wget http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
--2011-10-10 10:48:06--  http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
Resolving www.hibernate.org... 209.132.182.21
Connecting to www.hibernate.org|209.132.182.21|:80... failed: Connection timed out.
Retrying.</pre>
<p>It&#8217;s not actually able to get to the internet to validate the DTD within that hibernate.cfg.xml file. This should not break our build. It was a source of much frustration for about 4 hours of the day. Various <a href="https://forum.hibernate.org/viewtopic.php?f=1&amp;t=949031">hibernate forums</a> were of limited help.</p>
<p>Apparently it should get it from the jar, rather than the internet, if the jar is available on the class path and the DTD matches. First our DTD was incorrect. Rectified that, and yet it still tried to get it off the internet. WTF?</p>
<p>Turns out the hibernate3-maven-plugin doesn&#8217;t include any hibernate jars when it executes.</p>
<p><a href="http://shlrm.org/wordpress/wp-content/uploads/2011/10/le-sigh.jpg"><img class="size-medium wp-image-495 alignnone" title="le sigh" src="http://shlrm.org/wordpress/wp-content/uploads/2011/10/le-sigh-300x207.jpg" alt="*le sigh*" width="300" height="207" /></a></p>
<p>Solution is to duplicate the necessary hibernate dependencies for the plugin to have the necessary DTD data available:</p>
<pre class="brush: xml; gutter: true; first-line: 1">&lt;dependencies&gt;
  &lt;!--
    Need to include the following hibernate dependencies so that it can find the DTD
    without having to get it off the internet.
  --&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
    &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt;
    &lt;version&gt;${hibernate.version}&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
    &lt;artifactId&gt;hibernate-validator&lt;/artifactId&gt;
    &lt;version&gt;4.0.0.GA&lt;/version&gt;
    &lt;exclusions&gt;
      &lt;exclusion&gt;
        &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
        &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
      &lt;/exclusion&gt;
    &lt;/exclusions&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
     &lt;groupId&gt;org.hibernate.javax.persistence&lt;/groupId&gt;
     &lt;artifactId&gt;hibernate-jpa-2.0-api&lt;/artifactId&gt;
     &lt;version&gt;1.0.0.Final&lt;/version&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;</pre>
<p>So some context: This is to support preventing the hibernate3-maven-plugin from going to the internet to get the DTD every time it parses that hibernate.cfg.xml file. There&#8217;s no data in this file, only a shell of a hibernate.cfg.xml; just enough of a placeholder to keep the hbm2ddl Goal from failing, as we&#8217;ll eventually have it build DDL for us.</p>
<p>Content:</p>
<pre class="brush: xml; gutter: true; first-line: 1">&lt;?xml version='1.0' encoding='utf-8'?&gt;
&lt;!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&gt;

&lt;hibernate-configuration&gt;

    &lt;session-factory&gt;
        &lt;!-- specify annotated classes here, because the hbm2ddl plugin isn't capable of searching for them :( --&gt;
    &lt;/session-factory&gt;

&lt;/hibernate-configuration&gt;</pre>
<p>Quite an irritating error for something that seems to actually do nothing. Apparently it does. Stupid XML</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2011/10/10/hibernate-3-maven-plugin-hbm2ddl-goal-and-hate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using cuke4duke and working around rubygems issues</title>
		<link>http://shlrm.org/wordpress/2011/09/13/using-cuke4duke-and-working-around-rubygems-issues/</link>
		<comments>http://shlrm.org/wordpress/2011/09/13/using-cuke4duke-and-working-around-rubygems-issues/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 21:05:13 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[jruby]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=471</guid>
		<description><![CDATA[Getting gems installed for use with cuke4duke.]]></description>
			<content:encoded><![CDATA[<p><a href="https://groups.google.com/d/msg/cukes/KZ2U04UA6MM/JEZ58kBtkcgJ">cuke4duke support has been dropped in favor of work on cucumber-jvm.</a> Which is all well and good, except that cucumber-jvm isn&#8217;t fully baked yet. It&#8217;s not quite there regarding features, but it&#8217;s getting there fast.</p>
<p>Unfortunately, that means for those that are still using cuke4duke, you&#8217;ve got problems to deal with. The voodoo magic that is cuke4duke does not install gems very well. I don&#8217;t know precisely why this is, but it ends up with many problems. Things that will install just fine using a jruby command line, or in native ruby barf a horrible death. Often regarding some YAML::Syck thing.</p>
<pre class="brush: text; gutter: false; first-line: 1">ERROR:  While executing gem ... (ArgumentError)
      undefined class/module YAML::Syck::DefaultKey</pre>
<p>Really sucks and makes it difficult to actually use cuke4duke unless you&#8217;ve already got all the gems you need installed.</p>
<p>After much investigation, I discovered that cuke4duke uses a GEM_HOME of ~/.m2/repository/.jruby . So a simple command can get the gems you want installed into that folder:</p>
<pre class="brush: text; gutter: false; first-line: 1">java -jar jruby-complete-1.6.4.jar -S gem install json --version=1.5.4 --no-rdoc --no-ri -i /home/dkowis/.m2/repository/.jruby</pre>
<p>Unfortunately, if there&#8217;s another &#8220;gem&#8221; command in your path, it will use that instead of the one in your jar file, so you have to munge your path as well to prevent it from doing so.</p>
<p>Finally, I needed a way to get this into our project&#8217;s Maven POM so that we could easily set up other peoples boxes and the configuration isn&#8217;t lost in some terribly manual process of running that command over and over.</p>
<p>This is the solution I came up with:</p>
<pre class="brush:xml wp_syntax">        &lt;profile&gt;
            &lt;id&gt;install-gems&lt;/id&gt;
            &lt;build&gt;
                &lt;plugins&gt;
                    &lt;plugin&gt;
                        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                        &lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;
                        &lt;version&gt;1.6&lt;/version&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;phase&gt;generate-test-resources&lt;/phase&gt;
                                &lt;configuration&gt;
                                    &lt;target&gt;
                                        &lt;property file="gems.properties"/&gt;
                                        &lt;macrodef name="install-gem"&gt;
                                            &lt;attribute name="gem"/&gt;
                                            &lt;attribute name="version"/&gt;
                                            &lt;sequential&gt;
                                                &lt;java jar="${maven.dependency.org.jruby.jruby-complete.jar.path}"
                                                      fork="true"
                                                      failonerror="true"
                                                      maxmemory="64m"
                                                      newenvironment="true"&gt;
                                                    &lt;arg value="-S"/&gt;
                                                    &lt;arg value="gem"/&gt;
                                                    &lt;arg value="install"/&gt;
                                                    &lt;arg value="@{gem}"/&gt;
                                                    &lt;arg value="--version=@{version}"/&gt;
                                                    &lt;arg value="-i"/&gt;
                                                    &lt;arg value="${user.home}/.m2/repository/.jruby"/&gt;
                                                    &lt;env key="PATH" path="${java.home}/bin"/&gt;
                                                &lt;/java&gt;
                                            &lt;/sequential&gt;
                                        &lt;/macrodef&gt;
                                        &lt;install-gem gem="json" version="1.5.4"/&gt; &lt;!-- needed to get json to behave with jruby --&gt;
                                        &lt;install-gem gem="cucumber" version="1.0.3"/&gt;
                                        &lt;install-gem gem="cuke4duke" version="${gem.cuke4duke.version}"/&gt;
                                        &lt;install-gem gem="nokogiri" version="${gem.nokogiri.version}"/&gt;
                                        &lt;install-gem gem="rspec" version="${gem.rspec.version}"/&gt;
                                        &lt;install-gem gem="rest-client" version="${gem.restclient.version}"/&gt;
                                        &lt;install-gem gem="jruby-openssl" version="${gem.jrubyopenssl.version}"/&gt;
                                    &lt;/target&gt;
                                &lt;/configuration&gt;
                                &lt;goals&gt;
                                    &lt;goal&gt;run&lt;/goal&gt;
                                &lt;/goals&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                    &lt;/plugin&gt;
                &lt;/plugins&gt;
            &lt;/build&gt;
        &lt;/profile&gt;</pre>
<p>One can then run the command &#8216;mvn test -Pinstall-gems&#8217; and the gems will be installed as part of the test-resource-generation phase. This only has to be done once whenever new gems are added, or on initial setup. Once it&#8217;s done, you&#8217;re good to go with the normal cuke4duke workflow.</p>
<p>Hopefully this will save other people some time :)</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2011/09/13/using-cuke4duke-and-working-around-rubygems-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minecraft Server Modification Project</title>
		<link>http://shlrm.org/wordpress/2010/10/14/minecraft-server-modification-project/</link>
		<comments>http://shlrm.org/wordpress/2010/10/14/minecraft-server-modification-project/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 20:01:46 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[W00t!]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=397</guid>
		<description><![CDATA[MINECRAFT! Someone has done no small amount of determining what the code within the minecraft_server.jar does and how you can inject hooks into it. I have forked that git repository and am trying to organize it a bit better. Possibly make it truly into just a plugin framework and nothing else. I&#8217;m hoping that this <a href='http://shlrm.org/wordpress/2010/10/14/minecraft-server-modification-project/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.minecraft.net">MINECRAFT</a>!</p>
<p>Someone <a href="Someone has done no small amount of determining what the code within the minecraft_server.jar does">has done no small amount of determining</a> what the code within the minecraft_server.jar does and how you can inject hooks into it. <a href="http://github.com/dkowis/Minecraft-Server-Mod">I have forked that git repository</a> and am trying to organize it a bit better. Possibly make it truly into just a plugin framework and nothing else.</p>
<p>I&#8217;m hoping that this will be useful to others and that it all won&#8217;t horribly break when the server is changed on the 31st. Otherwise, all the really awesome administrative abilities will be horribly broken. Another really awesome thing would be if Notch were to have a plugin API ready to go. Perhaps based on the work that the community is doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2010/10/14/minecraft-server-modification-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails-maven integration fix</title>
		<link>http://shlrm.org/wordpress/2010/04/13/grails-maven-integration-fix/</link>
		<comments>http://shlrm.org/wordpress/2010/04/13/grails-maven-integration-fix/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 12:36:21 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Coding!]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=335</guid>
		<description><![CDATA[Well, not really a fix. More like an enhancement. Currently the only available grails-maven-archetype will generate a grails 1.2.0 project. There have been several fixes applied to Grails 1.2.2 and I wanted to take advantage of these. I have commented on the issue requesting a grails 1.2.1 archetype, but I updated it all the way <a href='http://shlrm.org/wordpress/2010/04/13/grails-maven-integration-fix/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div>
<p>Well, not really a fix. More like an  enhancement.</p>
<p>Currently the only available grails-maven-archetype will generate a  grails 1.2.0 project. There have been several fixes applied to Grails  1.2.2 and I wanted to take advantage of these. I have commented on the  issue requesting a grails 1.2.1 archetype, but <a href="http://jira.codehaus.org/browse/GRAILS-5896?focusedCommentId=217826&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_217826">I  updated it all the way to Grails 1.2.2</a> (The attachment is at the  top of the bug, and the comments don’t reference the attachment at all,  silly Jira.)</p>
<p>Maybe this will help someone else out there find this information and  continue to build their project using <a href="http://maven.apache.org/">maven</a> and <a href="http://grails.org/">grails</a> :)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2010/04/13/grails-maven-integration-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic Web</title>
		<link>http://shlrm.org/wordpress/2010/02/03/semantic-web/</link>
		<comments>http://shlrm.org/wordpress/2010/02/03/semantic-web/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 03:49:56 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Coding!]]></category>
		<category><![CDATA[Gripes]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=331</guid>
		<description><![CDATA[At work I&#8217;m dealing with this &#8220;Semantic Web&#8221; concept thingy. &#8220;Web 3.0&#8243; it is called. Frankly I don&#8217;t see the point in it yet. The goal is to have the internet also contain data to ensure that computers can find relations in the data and such, not just pages with links that people can browse. <a href='http://shlrm.org/wordpress/2010/02/03/semantic-web/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>At work I&#8217;m dealing with this &#8220;Semantic Web&#8221; concept thingy. &#8220;Web 3.0&#8243; it is called. Frankly I don&#8217;t see the point in it yet. The goal is to have the internet also contain data to ensure that computers can find relations in the data and such, not just pages with links that people can browse. One of our projects involves taking unstructured data and mining entities and relationships from it. I&#8217;ve picked up a book, the only book, on programming software to (ab)use the semantic web. So far, I am unimpressed. The source code in the book does not match the source code that you can download from the books website. And, the two different packages on the books website (one is just Chapter 2&#8242;s code, the other is all the code for the whole book) also had different code, and the &#8220;all encompassing&#8221; one was even missing the right files needed to run the code!</p>
<p>So yeah, unimpressed.</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2010/02/03/semantic-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Groovy!</title>
		<link>http://shlrm.org/wordpress/2009/01/12/groovy/</link>
		<comments>http://shlrm.org/wordpress/2009/01/12/groovy/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:09:36 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=175</guid>
		<description><![CDATA[Reading about groovy. It&#8217;s got some really interesting things. It brings the magic of dynamic typing and such (like ruby and python have) to java. But it doesn&#8217;t replace java, it simply adds it to java. So when you&#8217;re writing a groovy script, you can actually just write pure java and it&#8217;ll still work. That&#8217;s <a href='http://shlrm.org/wordpress/2009/01/12/groovy/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Reading about groovy. It&#8217;s got some really interesting things. It brings the magic of dynamic typing and such (like ruby and python have) to java. But it doesn&#8217;t replace java, it simply adds it to java. So when you&#8217;re writing a groovy script, you can actually just write pure java and it&#8217;ll still work. That&#8217;s a very interesting (and potentially evil) feature. Imagine code with groovy and java intermingled. Yikes.</p>
<p>Anyway, there&#8217;s also something called grails. It&#8217;s groovy&#8217;s rails application framework. I&#8217;m hoping that it&#8217;ll be more useful to me than ruby on rails was. Whilst I was able to get some stuff done in rails, I wasn&#8217;t able to do quite what I wanted to do. Things didn&#8217;t interoperate the way I wanted them to. Building things to be completely REST-ful was a pain. It may simply be that I don&#8217;t know enough to do fully RESTful applications.</p>
<p>Also, testing was a pain in rails. I found several testing frameworks, but none quite fit what I wanted to do. That may have had something to do with my insistence upon using constraints in my database. Rails isn&#8217;t built to handle constraints, it wants your database to be dumb. I don&#8217;t really think that&#8217;s a good thing; having constraints in your database allows the database to make more intelligent optimizations regarding the data. Since rails assumes there aren&#8217;t any constraints on the database, it generates tests that break databases that use constraints. There are a few work-arounds, but none that exist well enough to actually run all my tests at once. I can piecemeal them and if I do them in the correct order, everything works just fine.</p>
<p>Regarding ruby itself, I miss the ability to create threads. I&#8217;ve finally understood threading in java, and how to efficiently and effectively use threads to handle things. Lacking a similar threading operation in ruby (at least an obvious one) I had a lot of trouble trying to implement some of the things I wanted to do. I love the dynamic-ness of ruby, and I like the ability to just write code and it does mostly what I think it should. There is probably a good way to do threading in ruby, I mean, people have written webservers entirely in ruby, I just haven&#8217;t figured it out. I&#8217;ll probably still use ruby for things, I&#8217;ve got a project or two churning around in the back of my mind to use ruby on, but for now, I think I&#8217;ll stick with Java.</p>
<p>This has turned more into a rant about what I don&#8217;t like about ruby and rails. I guess I&#8217;m hoping that grails will live up to my expectations more than rails did, and that groovy will give me the dynamic fun that I enjoyed with ruby.</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2009/01/12/groovy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pragmatic Groovy and Thinking and Learning, Oh My!</title>
		<link>http://shlrm.org/wordpress/2008/12/18/pragmatic-groovy-and-thinking-and-learning-oh-my/</link>
		<comments>http://shlrm.org/wordpress/2008/12/18/pragmatic-groovy-and-thinking-and-learning-oh-my/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 04:15:12 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Coding!]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[pragmatic programmer]]></category>
		<category><![CDATA[wetware]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/?p=145</guid>
		<description><![CDATA[I haven&#8217;t yet completed an entire application in ruby (well that&#8217;s not completly true) and I&#8217;m already off on something different. Groovy feels like Ruby (the name even sounds like it!) but it&#8217;s closer to java than Ruby is. That&#8217;s good for me to rapidly do stuff. I&#8217;ve found that whilst I do enjoy learning <a href='http://shlrm.org/wordpress/2008/12/18/pragmatic-groovy-and-thinking-and-learning-oh-my/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t yet completed an entire application in ruby (well that&#8217;s not completly true) and I&#8217;m already off on something different.</p>
<p>Groovy feels like Ruby (the name even sounds like it!) but it&#8217;s closer to java than Ruby is. That&#8217;s good for me to rapidly do stuff. I&#8217;ve found that whilst I do enjoy learning new languages and new frameworks, when I want to get stuff done learning the stuff is somewhat of a hindrance for me. Groovy, and it&#8217;s framework Grails, shows promise to be the best of both worlds. I (possibly foolishly) purchased the PDF and the Paper copy of <a href="http://www.pragprog.com/titles/vslg/programming-groovy">Programming Groovy</a> from the Pragmatic Programmers.</p>
<p>I think that if I were to have a favorite publisher, it&#8217;d be them. They&#8217;re fairly new, about <a href="http://www.pragprog.com/happy-fifth-anniversary">five years old</a>, and located in Texas. I&#8217;ve spent more on books through them than just about anywhere else. And I haven&#8217;t been dissappointed yet. I also purchased <a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">Pragmatic Thinking and Learning</a>. I&#8217;m hoping this will help me become more proficient in learning things. It also is somewhat of an interesting subject to me; mastering the mind to further enhance my ability to learn and become an expert in my field.</p>
<p>If you&#8217;re looking for some good programming books, I can highly reccomend <a href="http://www.pragprog.com/">The Pragmatic Bookstore</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2008/12/18/pragmatic-groovy-and-thinking-and-learning-oh-my/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jaimlib-2.0</title>
		<link>http://shlrm.org/wordpress/2008/02/10/jaimlib-20/</link>
		<comments>http://shlrm.org/wordpress/2008/02/10/jaimlib-20/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 15:59:50 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Coding!]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[W00t!]]></category>
		<category><![CDATA[aim]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/2008/02/10/jaimlib-20/</guid>
		<description><![CDATA[Well, after lots of work I&#8217;ve finally managed to successfully (I&#8217;m pretty sure) rewrite the existing jaimlib code base into a more object oriented, and hopefully easier to follow, code base. Ive decided to call it 2.0 because it&#8217;s substantially different than the old one. Not really adding more functionality, but the code is substantially <a href='http://shlrm.org/wordpress/2008/02/10/jaimlib-20/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Well, after lots of work I&#8217;ve finally managed to successfully (I&#8217;m pretty sure) rewrite the existing jaimlib code base into a more object oriented, and hopefully easier to follow, code base.</p>
<p>Ive decided to call it 2.0 because it&#8217;s substantially different than the old one. Not really adding more functionality, but the code is substantially improved. It&#8217;s also been updated to use generics and needs at least jdk 1.5.</p>
<p>I&#8217;m going to attach the tarball to the <a href="http://sourceforge.net/projects/jaimlib/">existing jaimlib site</a>. It&#8217;s attached in a <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1890651&amp;group_id=52820&amp;atid=468145">Patch Submission bug</a>. It will also be <a href="http://shlrm.org/wordpress/wp-content/uploads/2008/02/jaimlib-20tar.bz2">available here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2008/02/10/jaimlib-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful java Logging link</title>
		<link>http://shlrm.org/wordpress/2007/11/25/useful-java-logging-link/</link>
		<comments>http://shlrm.org/wordpress/2007/11/25/useful-java-logging-link/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 23:54:07 +0000</pubDate>
		<dc:creator>David Kowis</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://shlrm.org/wordpress/2007/11/25/useful-java-logging-link/</guid>
		<description><![CDATA[http://www.crazysquirrel.com/computing/java/logging.jspx I&#8217;ve found this link to actually explain how to use the Java Logging apis. It&#8217;s quite good. The API&#8217;s are missing a few convience methods that I liked from log4j, but they&#8217;re not that difficult to migrate. The Logging framework is quite robust and it&#8217;s easy to apply run time configuration stuffs. So you <a href='http://shlrm.org/wordpress/2007/11/25/useful-java-logging-link/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.crazysquirrel.com/computing/java/logging.jspx">http://www.crazysquirrel.com/computing/java/logging.jspx</a></p>
<p>I&#8217;ve found this link to actually explain how to use the Java Logging apis. It&#8217;s quite good.</p>
<p>The API&#8217;s are missing a few convience methods that I liked from log4j, but they&#8217;re not that difficult to migrate. The Logging framework is quite robust and it&#8217;s easy to apply run time configuration stuffs. So you can code up the junk and deploy it, tweak a configuration file, viola, no more FINEST logging messages. Yeah, FINEST is something different. There&#8217;s FINE, FINER, and FINEST. Those are like what you&#8217;d use for DEBUG. Beyond that you can decide what you want to show the users and such. Anyways, this article actually explained the thing to me to the extent that I was able to figure it out :)</p>
]]></content:encoded>
			<wfw:commentRss>http://shlrm.org/wordpress/2007/11/25/useful-java-logging-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

