<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.vitarara.org/cms" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Vita Rara: A Life Uncommon - </title>
 <link>http://www.vitarara.org/cms</link>
 <description></description>
 <language>en</language>
<item>
 <title>Mark&#039;s [J]Ruby on Rails Notes</title>
 <link>http://www.vitarara.org/cms/marks_jruby_notes</link>
 <description>&lt;h1&gt;Using GoldSpike to run Ruby on Rails in Standalone Mode&lt;/h1&gt;
&lt;p&gt;When running Ruby on Rails in a war using the GoldSpike servlets and context-param jruby.standalone is set to true you will need to use the jruby-complete jar file. Rails requires Gems in order to boot strap. I found that using the jruby jar file caused Rails to fail in initializer.rb when it tried to require &#039;logger&#039; which is included in the ActiveSupport gem.&lt;/p&gt;
&lt;p&gt;Also be sure to copy your required gems into WEB-INF/gems.&lt;/p&gt;
&lt;p&gt;[EDIT: Better yet use ruby gem install --install-dir WEB-INF/gems. ]&lt;/p&gt;
&lt;h1&gt;Model Auto Completer&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/marks_jruby_notes&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/marks_jruby_notes#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/93">JRuby</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/82">Ruby</category>
 <pubDate>Wed, 20 Aug 2008 10:43:17 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">168 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Twitter: You&#039;ve Added Meaning to My Life and Changed Me</title>
 <link>http://www.vitarara.org/cms/twitter_youve_added_meaning</link>
 <description>&lt;p&gt;This past weekend was an emotional roller coaster. It all started with a post on Twitter from &lt;a href=&quot;http://twitter.com/veronica&quot;&gt;Veronica&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;vrBlockQuote&quot;&gt;Pass this around, if there&#039;s anyone you know that could be a liver donor to this little guy &lt;a href=&quot;http://tinyurl.com/5zbtfu&quot;&gt;http://tinyurl.com/5zbtfu&lt;/a&gt; So sad.&lt;/div&gt;
&lt;p&gt;I was checking  my Twitter feed on my iPhone just before going to bed Friday night, after a long day of work and family. I read that tweet, followed the link, read the blog post about Wyatt&#039;s fight for life, put the phone on my night stand haunted. I couldn&#039;t get it out of my head. &lt;strong&gt;I couldn&#039;t pick up my phone and continue my life as I had before reading that tweet.&lt;/strong&gt; I&#039;m a new father, and I could only imagine being in the same situation and crying out for help. Echoing in my head was: &lt;/p&gt;
&lt;div class=&quot;vrBlockQuote&quot;&gt;And whoever saves a life, it is considered as if he saved an entire world.&quot;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/twitter_youve_added_meaning&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/twitter_youve_added_meaning#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/92">Internet</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/91">Twitter</category>
 <pubDate>Mon, 23 Jun 2008 10:18:28 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">167 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Oh Twitter... How Thou Hast Ruined Me</title>
 <link>http://www.vitarara.org/cms/node/166</link>
 <description>&lt;p&gt;Sylva looked at my blog and pointed out I haven&#039;t posted in about two months. Since getting on Twitter and really starting to use it my blogging has evaporated. I didn&#039;t blog a lot before Twitter, but since Twitter I almost never blog.&lt;/p&gt;
&lt;p&gt;So, what is it about Twitter that is so compelling for me? It&#039;s short. Posting is fast with Twhirl. I think well in short bursts. I don&#039;t feel compelled to develop a deeply thought out, well composed and edited blog post. In the past I&#039;ve spent hours and hours writing blog posts on technical subjects. It takes a lot of time to get them right. Twitter is just so immediate.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/166&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/166#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/91">Twitter</category>
 <pubDate>Thu, 12 Jun 2008 00:34:17 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">166 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>It&#039;s a Boy: Ezra Isaac - April 7, 2008</title>
 <link>http://www.vitarara.org/cms/node/165</link>
 <description>&lt;p&gt;Monday afternoon Ezra Isaac entered the world. My lovely wife Sylva did an amazing job. Ezra was born at home. Truly an amazing experience. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.vitarara.org/cms/files/MA9S2556.jpg&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://www.vitarara.org/cms/files/MA9S2565.jpg&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://www.vitarara.org/cms/files/MA9S2585.jpg&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://www.vitarara.org/cms/node/165#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/90">Family</category>
 <pubDate>Wed,  9 Apr 2008 09:52:36 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">165 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>How I Got Over &quot;import java.util.*;&quot;</title>
 <link>http://www.vitarara.org/cms/node/164</link>
 <description>&lt;p&gt;It&#039;s taken me years, but I finally got over import java.util.*;. First, I don&#039;t use an IDE. I know an IDE could manage my imports, but I&#039;m not an IDE guy. So, for years I&#039;ve managed my imports manually, or given up and done import java.util.* and felt guilty about it.  Well, I&#039;m over that, and I can give Groovy the credit. By default Groovy imports java.util.*. I&#039;ve been using Groovy every day now for about a year and a half and the house is still standing, our code compiles, we haven&#039;t had name conflicts. Things work, and it&#039;s a lot easier.&lt;/p&gt;
&lt;p&gt;I used to worry about name clashes and compilation speed, and other shiboleths spoken of around coder camp fires and in hushed tones. After all everyone &quot;knows&quot; that the * should be avoided. Well, I&#039;m over it, import java.util.* is just fine with me. Now when I start a Java source file I almost always just add java.util.*.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/164&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/164#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <pubDate>Tue, 11 Mar 2008 14:43:35 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">164 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Using Dynamic Method Invocation to &quot;Script&quot; Java</title>
 <link>http://www.vitarara.org/cms/using_dynamic_method_invocation_to_script_java</link>
 <description>&lt;p&gt;Although Java isn&#039;t thought of as a dynamic language now a days, what with Ruby and Groovy being all the rage, Java does have support for dynamic features. (See my &lt;a href=&quot;/cms/whats_wrong_with_javas_dynamic_dispatch_and_how_to_fix_it&quot; rel=&quot;nofollow&quot;&gt;previous blog post&lt;/a&gt; on the subject and the solution I came up with.)&lt;/p&gt;
&lt;h2&gt;A Use Case for Dynamic Java&lt;/h2&gt;
&lt;p&gt;Currently I&#039;m wrapping about a hundred EJB 2.1 LocalHome classes in DAO&#039;s, and having them transform local EJB entities into POJO&#039;s. Much of the code is largely boiler plate. Actually it&#039;s mind numbingly boiler plate. Here&#039;s a sample of wrapping a finder:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/using_dynamic_method_invocation_to_script_java&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/using_dynamic_method_invocation_to_script_java#comment</comments>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <pubDate>Tue, 26 Feb 2008 00:03:56 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">163 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>What&#039;s Wrong with Java&#039;s Dynamic Dispatch or &quot;How I Implemented sendMessage()&quot;</title>
 <link>http://www.vitarara.org/cms/whats_wrong_with_javas_dynamic_dispatch_or_how_i_implemented_sendMessage</link>
 <description>&lt;p&gt;(Related article using this technique to &quot;script&quot; some Java objects: &lt;a href=&quot;http://www.vitarara.org/cms/using_dynamic_method_invocation_to_script_java&quot; rel=&quot;nofollow&quot;&gt;article&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;The following code quickly illustrates an issue with the Reflection API&#039;s in the Java language. At run time finding methods on classes requires that the types passed to Class#findMethod() exactly match those found in the method declaration. The JavaDoc and language spec refers to these as the &quot;formal parameter types&quot;.&lt;/p&gt;
&lt;p&gt;The issue is, I have a method that takes an A, and I have an object of B that extends A. If you run the following code it will fail, being unable to find the method.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/whats_wrong_with_javas_dynamic_dispatch_or_how_i_implemented_sendMessage&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/whats_wrong_with_javas_dynamic_dispatch_or_how_i_implemented_sendMessage#comment</comments>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <pubDate>Mon, 25 Feb 2008 23:33:24 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">162 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Closures and Bindings in Groovy</title>
 <link>http://www.vitarara.org/cms/closures_and_bindings_in_groovy</link>
 <description>&lt;p&gt;You can learn something every day. That&#039;s what is so nice about being a software developer.&lt;/p&gt;
&lt;p&gt;Today I was looking at some Grails code, seeing how some of the metaprogramming features of Groovy are used in the framework. After poking around I decided to look at the ServicesGrailsPlugin to see how the automatic wiring of services was done, and ran across the following code:&lt;/p&gt;
&lt;pre&gt;
def doWithSpring = {
  application.serviceClasses.each { serviceClass -&amp;gt;
      def scope = serviceClass.getPropertyValue(&quot;scope&quot;)

    &quot;${serviceClass.fullName}ServiceClass&quot;(MethodInvokingFactoryBean) {
      targetObject = ref(&quot;grailsApplication&quot;, true)&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/closures_and_bindings_in_groovy&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/closures_and_bindings_in_groovy#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/74">Grails</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <pubDate>Fri,  8 Feb 2008 13:06:57 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">161 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Yes the JVM is a Multi-Language Platform</title>
 <link>http://www.vitarara.org/cms/node/160</link>
 <description>&lt;p&gt;Although talk about multiple languages running on the JVM has grown over the past few years, the reality of it really hit home with me this morning. I turned to one of my employees who has been doing JVM development for me since April of last year. The interesting thing is probably 95% of the JVM work he has done isn&#039;t in Java, it&#039;s in Groovy. Here&#039;s to the multi-language Java platform and a thank you to those developers who are making it a reality.&lt;/p&gt;
</description>
 <comments>http://www.vitarara.org/cms/node/160#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <pubDate>Thu,  7 Feb 2008 11:52:50 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">160 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Ruby Metaprogramming: Declaratively Adding Methods to a Class</title>
 <link>http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class</link>
 <description>&lt;p&gt;In this brief piece I will examine Ruby&#039;s support for metaprogramming and how to define class level methods that add instance methods to our class implementations at run time.&lt;/p&gt;
&lt;p&gt;Over the past few months I&#039;ve been learning Ruby on Rails. One of the most attractive features of Rails its declarative style of defining relationships and validations on models; and filters on actions. &lt;/p&gt;
&lt;p&gt;A simple example of this declarative style:&lt;/p&gt;
&lt;pre&gt;
class Party &amp;lt; ActiveRecord::Base
  has_many :addresses
end
&lt;/pre&gt;&lt;p&gt;
This class defines a Party model that can have many addresses. The simple &quot;has_many :addresses&quot; declaration is a great example of the power of Ruby. This simple statement adds a number of methods to our Party class, and allows us to easily manage relationships between our parties and their addresses.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/89">Metaprogramming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/82">Ruby</category>
 <pubDate>Sun, 27 Jan 2008 22:36:01 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">158 at http://www.vitarara.org/cms</guid>
</item>
</channel>
</rss>
