<?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>Mark&#039;s blog</title>
 <link>http://www.vitarara.org/cms/blog/2</link>
 <description></description>
 <language>en</language>
<item>
 <title>I&#039;m Embarrassed for my Nation: We Need to Get Over Race</title>
 <link>http://www.vitarara.org/cms/node/169</link>
 <description>&lt;p&gt;Sometimes I&#039;m embarrassed for my nation. I&#039;m not an Obama supporter, for policy reasons, but this type of blind ignorance is frightening: &lt;a href=&quot;http://www.youtube.com/watch?v=zRqcfqiXCX0&quot; rel=&quot;nofollow&quot;&gt;Misconceptions of Obama fuel Republican campaign - 13 Oct 08&lt;/a&gt;. Unfortunately this blind ignorance and prejudice has provided fuel to stoke the fires of yet more prejudice, that between the Muslim world and the United States. &lt;/p&gt;
&lt;p&gt;I&#039;m a Republican. I have been my whole life. But my fellow Republicans need to get over it. Barack Obama is probably going to be our next president. We as Americans need to make peace with that collective national decision.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/169&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/169#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/95">American Culture</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/96">Media</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/94">Politics</category>
 <pubDate>Fri, 17 Oct 2008 17:13:14 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">169 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>
