<?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>Don&#039;t Forget to Plant It! &#187; ruby on rails</title>
	<atom:link href="http://blog.codeeg.com/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codeeg.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 12:22:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Running FiveRuns TuneUp in a Separate Environment</title>
		<link>http://blog.codeeg.com/2008/10/05/running-fiveruns-tuneup-in-a-separate-environment/</link>
		<comments>http://blog.codeeg.com/2008/10/05/running-fiveruns-tuneup-in-a-separate-environment/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 01:23:24 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[FiveRuns TuneUp]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blog2.codeeg.com/?p=168</guid>
		<description><![CDATA[FiveRuns&#8217; TuneUp is a great tool for profiling your Rails app, but by default it is always running in development. This causes two issues 1) every request is slower in development as it is always collecting profiling data, and 2) the TuneUp bar can mess with the layout of your application, especially if you&#8217;re rendering [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.fiveruns.com/products/tuneup">FiveRuns&#8217; TuneUp</a> is a great tool for profiling your Rails app, but by default it is always running in development.  This causes two issues 1) every request is slower in development as it is always collecting profiling data, and 2) the TuneUp bar can mess with the layout of your application, especially if you&#8217;re rendering content in iframes like we do with <a href="http://skribit.com">Skribit</a>.  So instead of having TuneUp always run in development mode, I&#8217;ve changed it to run only when the server is started in a new environment called &#8216;profiler&#8217;.   Here&#8217;s how I did it.</p>
<p>First, you need to tell TuneUp to only run in the profiler environment.  You do this by modifying <em>config/tuneup.rb</em> (create this file if it doesn&#8217;t already exist):</p>
<pre><code>Fiveruns::Tuneup.config do |config|
  config.environments.delete('development')
  config.environments &lt;&lt; 'profiler'
end</code></pre>
<p>Next, copy the development configuration block in <em>config/database.yml</em> and create a new block called <em>profiler</em>:</p>
<pre><code>profiler:
  adapter: mysql
  encoding: utf8
  database: YOUR_DATABASE
  username: YOUR_USERNAME
  password: YOUR_PASSWORD
  socket: /tmp/mysql.sock
</code></pre>
<p>Finally, create your profiler environment configs by copying your development configs:</p>
<pre><code>cp config/environments/development.rb config/environments/profiler.rb</code></pre>
<p>You&#8217;re all set!  Now, to run the server with TuneUp on, just run the server in the <em>profiler</em> environment:</p>
<pre><code>script/server -e profiler</code</pre>
<p>Now, I have TuneUp available to me only when I'm looking to optimize performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2008/10/05/running-fiveruns-tuneup-in-a-separate-environment/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Aptana Goes into the Clouds</title>
		<link>http://blog.codeeg.com/2008/09/07/aptana-goes-into-the-clouds/</link>
		<comments>http://blog.codeeg.com/2008/09/07/aptana-goes-into-the-clouds/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 13:53:35 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[radrails]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://dontforgettoplantit.wordpress.com/?p=161</guid>
		<description><![CDATA[I use Aptana for RoR development.  Not because it&#8217;s a good Ruby or Rails IDE, but because I do so much Java at my paying job and switching between Java development on Eclipse to RoR development on Aptana is a breeze.  Today, I was checking out Aptana&#8217;s website for updates when I noticed that they [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I use <a title="Aptana Website" href="http://www.aptana.com">Aptana</a> for RoR development.  Not because it&#8217;s a good Ruby or Rails IDE, but because I do so much Java at my paying job and switching between Java development on Eclipse to RoR development on Aptana is a breeze.  Today, I was checking out Aptana&#8217;s website for updates when I noticed that they now have a product called <a href="http://www.aptana.com/cloud">Aptana Cloud</a>.</p>
<p>Aptana Cloud appears to be a integrated deployment/hosting platform for Aptana.  You can write applications in PHP, Jaxer (Aptana&#8217;s AJAX framework), and Ruby on Rails (coming soon), and deploy them to a cloud with a push of a button.  Right now, it deploys to Joyent&#8217;s Cloud, but it appears that the intention is to be provider agnostic, which would be key for adoption.</p>
<p>I&#8217;m very interested in trying this out, though I&#8217;m going to wait until RoR support is ready.  Hopefully, this will lead to some standards to cloud computing, making it easier to switch from one provider to another.  No doubt this is where lightweight development frameworks should be going (looking at you Appcelerator).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2008/09/07/aptana-goes-into-the-clouds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Taming Beast: How to Extend Beast using Plugins</title>
		<link>http://blog.codeeg.com/2007/09/04/taming-beast-how-to-extend-beast-using-plugins/</link>
		<comments>http://blog.codeeg.com/2007/09/04/taming-beast-how-to-extend-beast-using-plugins/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 03:10:44 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[beast forums]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blog.codeeg.com/2007/09/04/taming-beast-how-to-extend-beast-using-plugins/</guid>
		<description><![CDATA[If you&#8217;re building a Ruby on Rails application and are in need of some forums functionality, you&#8217;ve most likely have looked into Beast. However, Beast is very limited in functionality (which I actually think is a good thing), so you might find yourself needing to extend Beast to do the things you want. Fortunately, Beast [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>If you&#8217;re building a Ruby on Rails application and are in need of some forums functionality, you&#8217;ve most likely have looked into Beast.  However, Beast is very limited in functionality (which I actually think is a good thing), so you might find yourself needing to extend Beast to do the things you want.</p>
<p>Fortunately, Beast has a plugin feature that will easily allow you to do this.  In this post, I&#8217;ll cover how you would do this, using my StyleEditor plugin as an example.</p>
<h2>The Plugin File Structure</h2>
<p>First, let&#8217;s cover plugin file structure.  This is what my StyleEditor plugin looks like:</p>
<p><img class="alignnone size-full wp-image-112" src="http://blog2.codeeg.com/wp-content/uploads/2008/06/beast_plugin_dir_structure.png" alt="" width="162" height="223" /></p>
<p>Here are the important points to note:</p>
<ul>
<li><strong>app:</strong> The directory structure of this directory should follow the same conventions as the main Rails <em>app/</em> directory.  Code located in this directory follow the same class loading (and reloading) rules as the main <em>app/</em> directory.</li>
<li><strong>lib/beast/plugins/style_editor.rb:</strong> This is the plugin class, where all the magic happens.  The name of the file should be the tableized version of the plugin&#8217;s actual class name.  The plugin class file <strong>must</strong> be located in <em>beast/plugins</em>, or else Rails will not be able to find it.</li>
</ul>
<h2>The Plugin Class</h2>
<p>Here&#8217;s what&#8217;s the plugin class should look like:</p>
<pre>module Beast
  module Plugins
    class StyleEditor &lt; Beast::Plugin
      author 'Calvin Yu - boardista.com'
      version '0001'
      homepage 'http://boardista.com'
      notes 'Style Editing Support'

      %w( controllers helpers models ).each do |dir|
        path = File.join(plugin_path, 'app', dir)
        Dependencies.load_paths &lt;&lt; File.expand_path(path) if File.exist?(path)
      end

      def initialize
        super
        ApplicationController.prepend_view_path File.join(StyleEditor::plugin_path, 'app', 'views')
        # Patch Beast code here.
      end

      def install
        super
        # Run any install processes here.
      end
    end # end StyleEditor class
  end # end Plugins module
end # end Beast module</pre>
<p>You can see what <a href="http://svn.codeeg.com/beast/style_editor/lib/beast/plugins/style_editor.rb">the final source looks like here</a>.  Here are some things to note about this class:</p>
<ul>
<li>The <em>author</em>, <em>version</em>, <em>homepage</em>, and <em>notes</em> methods provide some meta information for the plugin.</li>
<li>The <em>Dependencies.load_paths</em> call will configure the sub-directories under <em>app/</em> so that they&#8217;ll be dynamically loaded by Rail&#8217;s dependency resolution process.</li>
<li>The <em>ApplicationController.prepend_view_path</em> call will prepend this plugin&#8217;s view path ahead of the normal Rails view path <strong>and any other view paths configured by other plugins loaded before it</strong>.  This is important to remember if views aren&#8217;t being rendered like you&#8217;re expecting them to.</li>
<li>Any changes to existing Rails or Beast controllers, models, etc. should go into <em>initialize</em>, in the form of monkey patches and mixins.</li>
<li>Any installation tasks, such as file copy, should go into the <em>install</em> method.</li>
</ul>
<h2>Adding New Routes</h2>
<p>I needed to create some new routes for my <em>StylesController</em>, so I used the <em>route</em> method of the <em>Beast::Plugin</em> class to install them:</p>
<pre><code># add this within the class scope of the StyleEditorroute :resources, 'styles'</code></pre>
<p>I&#8217;m using the RESTful syntax to creating routes here, but you can also use <em>:connect</em> and named routes as well.</p>
<h2>Updating the Beast Schema</h2>
<p>To update the Beast Schema, all I needed to do is to create a Schema class within the scope of your plugin class:<br />
<code> </code></p>
<pre>class Schema &lt; ActiveRecord::Migration
  def self.install
    create_table :style_options do |t|
      t.string :name
      t.string :value
      t.integer :style_id
    end

    create_table :styles do |t|
      t.string :name
      t.string :template_name
      t.boolean :active
      t.timestamps
    end
  end

  def self.uninstall
    drop_table :styles
    drop_table :style_options
  end
end # end Schema class</pre>
<p>The code in <em>install/uninstall</em> methods will work just like the <em>up/down</em> methods in a typical migration class.  There is an issue where there&#8217;s no support for handling db changes overtime &#8212; hopefully someone will find a nice way to handle this (any takers?).</p>
<h2>Using the Rails Console</h2>
<p>At some point, you&#8217;ll want to do some quick tests to make sure your plugin changes are working as you expect them to, and try to test them from the console.  If you have tried to this already, you&#8217;ll quickly find that your changes for some reason won&#8217;t work.  Don&#8217;t fret, the reason why it doesn&#8217;t work is because the plugins aren&#8217;t initialize until the <em>Dispatcher</em> receives its first request.  So, if you do want to test your changes in the console, you&#8217;ll need to run this command first:</p>
<pre><code>Dispatcher.send :prepare_application</code></pre>
<h2>Installing a Plugin</h2>
<p>Once you&#8217;re done with your plugin, you&#8217;ll need to install it.  This step is pretty easy.  First, install your beast plugins into <em>vendor/beast</em>, then run the plugin install method:</p>
<p><code>script/runner 'Beast::Plugins::StyleEditor.install'</code></p>
<p>Some plugins might have some additional installation instructions, so I would suggest looking at the <em>README</em> file (and if you&#8217;re developing on a plugin, make sure to put your install instructions in the README).</p>
<h2>That&#8217;s It!</h2>
<p>It&#8217;s important to note that Beast plugin system is an evolving system, and the steps I laid out here are what worked best for me through the process of trial an error.  I&#8217;d love to hear what conclusions others have come to in their plugin development exploits.  If you want to get a better feel of what an actual Beast plugin looks like, you can check out the plugins that I&#8217;ve developed at <a href="http://svn.codeeg.com/beast">http://svn.codeeg.com/beast</a>.  If you want to see what those plugins look like in action, you can check them out on <a href="http://boardista.com">Boardista.com</a>.</p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2007/09/04/taming-beast-how-to-extend-beast-using-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which web framework is right for your business?</title>
		<link>http://blog.codeeg.com/2007/05/18/which-web-framework-is-right-for-your-business/</link>
		<comments>http://blog.codeeg.com/2007/05/18/which-web-framework-is-right-for-your-business/#comments</comments>
		<pubDate>Sat, 19 May 2007 03:34:54 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[web frameworks]]></category>

		<guid isPermaLink="false">http://blog.codeeg.com/2007/05/18/which-web-framework-is-right-for-your-business/</guid>
		<description><![CDATA[Jeff&#8217;s follow up answers for Thursday&#8217;s Web Entrepreneurs meetup was good idea, so I&#8217;d thought I lay out some of my answers from a Java perspective. I think Jeff is spot on when he talks about how someone should choose a web framework for their business &#8212; rely on your technology team to chose the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a title="Which web framework is right for your business?" href="http://blog.jeffhaynie.us/which-web-framework-is-right-for-your-business.html">Jeff&#8217;s follow up answers</a> for <a href="http://web.meetup.com/32/">Thursday&#8217;s Web Entrepreneurs meetup</a> was good idea, so I&#8217;d thought I lay out some of my answers from a Java perspective.  I think Jeff is spot on when he talks about how someone should choose a web framework for their business &#8212; rely on your technology team to chose the right one.  There isn&#8217;t one great framework out there that, by itself, will give you any significant business advantage (however, having a great technology team with a framework <strong>that&#8217;s right for them</strong> will).</p>
<p><strong>What kind of websites is your technology best suited for?  Which is it not so well suited for?</strong></p>
<p>Java is best suited for enterprise-level websites, which includes websites that are highly transactional and requires integration to legacy systems or multiple data sources.  That isn&#8217;t to say that you can&#8217;t built small websites with it (although its rather uncommon).  One of Java&#8217;s advantages to building a website is that there is a Java library for just about everything you can ever imagine doing on a website, and a you&#8217;ll find that a good number of them are free.</p>
<p>I don&#8217;t think that there&#8217;s any kind of websites Java is not well suited for (hold on&#8230; let me finish), but I do think there are other web frameworks that are much better suited for simple, database-driven websites.  The reason is that Java is traditionally used to serve a diverse set of enterprise needs, its can be very cumbersome to setup and maintain, as there are lots of pieces to put together and configuration that has to take place.</p>
<p><strong>What famous web2.0 sites are using your technology?</strong></p>
<p>This was a tricky one.  The only one I found was <a title="Zillow" href="http://www.zillow.com">Zillow</a>.  <a title="eBay" href="http://www.ebay.com">eBay</a> is another website that uses Java, and has web2.0-ish features.</p>
<p><strong>What does it cost to use your technology (e.g. hardware, software and support)?</strong></p>
<p>The Java platform is (just recently) open source and free.  There are production-ready, free versions of server software as well as commercial versions if you need support.  As for people cost, the Java talent pool is probably the largest of any of the other technologies, especially in Atlanta.   Having said that, traditional Java setups can run you quite a bit of money, and you would be competing with enterprises for top Java talent.  There is also more overhead when dealing with Java as oppose to more streamlined alternatives like the other technologies.</p>
<p><strong>How steep is the learning curve for newcomers?</strong></p>
<p>In retrospect, and after some discussion with the panelists, I&#8217;ll concede that Java has a steeper learning curve than many of the other platforms on the panel, especially when you include the server setup, configuration and other aspects of putting together a Java website.</p>
<p><strong>How easy have you found it to find skilled people?  How about in Atlanta?</strong></p>
<p>Since Atlanta is the home of so many large enterprises, the demand for Java talent (<a href="http://www.indeed.com/jobtrends?q=atlanta+java+programming%2C+atlanta+ruby+programming%2C+atlanta+python+programming%2C+atlanta+asp+programming%2C+atlanta+php+programming&amp;l=">as shown here</a>) is great, therefore there is large pool of Java talent of varying skill ranges to pull from.  Of course, the demand also means that the best Java talents get top dollar salaries.</p>
<p><strong>How much support is there for your technology? Who have you found to be reliable?</strong></p>
<p>Support is great for Java &#8212; you have options that are free (in forums, blogs), as well as commercial server products with support.  Also, you&#8217;ll often find that you can buy support for a good number of open sourced Java products.<strong>What issues (if any) did you encounter being an evangelist for your technology in your organization?  How did you overcome them?</strong></p>
<p>Since Java is often considered a standard in the enterprise, I&#8217;ve never had a problem evangelizing Java in organizations.</p>
<p><strong>What add-ons, plug-ins, tools, etc. would you recommend using?</strong></p>
<ul>
<li><a href="http://ant.apache.org">Ant </a></li>
<li><a href="http://tomcat.apache.org">Tomcat</a></li>
<li><a href="http://lucene.apache.org">Lucene</a></li>
<li><a href="http://getahead.ltd.uk/dwr/">DWR</a></li>
</ul>
<p>With the recent popularity of Ruby on Rails, there&#8217;s been many efforts in the Java community in adopting the parts of that framework into Java.  Here are a couple of those frameworks.</p>
<ul>
<li><a href="https://trails.dev.java.net/">Trails</a></li>
<li><a href="http://grails.codehaus.org/">Grails</a></li>
</ul>
<p><strong>What are some sites youâ€™d recommend?</strong></p>
<ul>
<li>Javadocs: <a href="http://java.sun.com/javase/6/docs/api/" target="_blank">http://java.sun.com/javase/6/docs/api/</a></li>
<li>Java.Net: <a href="http://www.java.net/" target="_blank">http://www.java.net/</a></li>
<li>Java Ranch: <a href="http://www.javaranch.com/" target="_blank">http://www.javaranch.com/</a></li>
</ul>
<p>During the Q&amp;A session, Alan asked which language I felt learning would make a better programmer.  My answer was Ruby, and in fact, while I do work on Java during the day, I work with Ruby on Rails on nights and weekends.  IMO, the speed of development trumps all other concerns during the early stages of the game.  And while performance concerns with RoR are valid ones, having to scale is usually a good problem to have, and I&#8217;m confident on my ability to work them out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2007/05/18/which-web-framework-is-right-for-your-business/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MyPlaces Update and Self-consuming Microformats</title>
		<link>http://blog.codeeg.com/2006/02/01/myplaces-update-and-self-consuming-microformats/</link>
		<comments>http://blog.codeeg.com/2006/02/01/myplaces-update-and-self-consuming-microformats/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 04:03:05 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[yahoo maps]]></category>

		<guid isPermaLink="false">http://blog.codeeg.com/2006/02/01/myplaces-update-and-self-consuming-microformats/</guid>
		<description><![CDATA[I took the effort and modified the MyPlaces script to support both the Yahoo! and Google Maps APIs. I also fixed a problem with the generator application not working in IE. I like the idea of having a webpage consume its own microformat &#8211; whereas common usage of microformats indirectly benefit the author (through aggregation), [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I took the effort and modified the <a title="Plot your favorite locations with MyPlaces" href="http://myplaces.codeeg.com/">MyPlaces</a> script to support both the Yahoo! and Google Maps APIs.  I also fixed a problem with the generator application not working in IE.</p>
<p>I like the idea of having a webpage consume its own microformat &#8211; whereas common usage of microformats indirectly benefit the author (through aggregation), with this script I was able to provide immediate benefit to the author for using microformats.  Maybe the key to more widespread adoption is to provide more apparent benefit for authors.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2006/02/01/myplaces-update-and-self-consuming-microformats/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Microformats to Plot My Favorite Places</title>
		<link>http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/</link>
		<comments>http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/#comments</comments>
		<pubDate>Sat, 28 Jan 2006 19:04:33 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[yahoo maps]]></category>

		<guid isPermaLink="false">http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/</guid>
		<description><![CDATA[Currently, the most popular use of microformats is to export them to their native formats, (hCards -&#62; vCards and hCalendar -&#62; iCal), but there&#8217;s really should be more utility for microformats than that. Here&#8217;s one neat thing you can do &#8211; I created a little application that will allow you plot and describe places on [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Currently, the most popular use of <a title="Learn about microformats" href="http://microformats.org">microformats</a> is to export them to their native formats, (hCards -&gt; vCards and hCalendar -&gt; iCal), but there&#8217;s really should be more utility for microformats than that.</p>
<p>Here&#8217;s one neat thing you can do &#8211; I created <a title="MyPlaces Application" href="http://myplaces.codeeg.com/">a little application that will allow you plot and describe places on a Yahoo Map easily</a> using the <a title="hreview specification" href="http://www.microformats.org/wiki/hreview">hreview</a> and <a title="geo specification" href="http://www.microformats.org/wiki/geo">geo</a> microformats. Generate the HTML from the application, slap it on your own blog (with your own <a title="Get an Yahoo! Application ID" href="http://api.search.yahoo.com/webservices/register_application">Yahoo! Application ID</a> of course), and away you go.  To modify the web plots, just revise your HTML and reload.</p>
<p>Check it out and let me know what you think.  I used it to plot <a title="My About Page" href="http://blog.codeeg.com/about">some places around my neighborhood where I like to eat</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Fight for Rails for Java is a Good One.</title>
		<link>http://blog.codeeg.com/2006/01/21/the-fight-for-rails-for-java-is-a-good-one/</link>
		<comments>http://blog.codeeg.com/2006/01/21/the-fight-for-rails-for-java-is-a-good-one/#comments</comments>
		<pubDate>Sat, 21 Jan 2006 16:51:52 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web frameworks]]></category>

		<guid isPermaLink="false">http://blog.codeeg.com/2006/01/21/the-fight-for-rails-for-java-is-a-good-one/</guid>
		<description><![CDATA[I couldn&#8217;t agree more with Chris on the reasons for a Rails-like framework for Java. In many ways, I see a lot of similarities between this struggle and the one between POJO&#8217;s vs. EJB: a struggle between robustness vs. simplicity. This has been a hard realisation for me because whereas I was a big opponent [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I couldn&#8217;t agree more with <a title="The REASONS of Rails in Java. FIGHT BACK again PHP, LAMP,ASP" href="http://www.xeniumhk.com/blog/?postid=30">Chris on the reasons for a Rails-like framework</a> for Java.</p>
<p>In many ways, I see a lot of similarities between this struggle and the <a title="Blog Search on POJO vs EJB." href="http://blogsearch.google.com/blogsearch?hl=en&amp;utm_source=AdWords&amp;utm_campaign=us-ha-en-blogsearch&amp;utm_term=blog+search&amp;utm_medium=cpc&amp;utm_content=googleblogsearch&amp;q=pojo+vs+ejb&amp;btnG=Search+Blogs">one between POJO&#8217;s vs. EJB</a>:  a struggle between robustness vs. simplicity.  This has been a hard realisation for me because whereas I was a big opponent of EJB&#8217;s, I&#8217;ve always been (and still is) a huge supporter of Struts.  However, when you see how easy it is to build applications on frameworks such Ruby on Rails, it becomes pretty clear that the cost of innovating in Java is currently way too high.  Nowadays, whenever I want to build up a new application to test out ideas, I&#8217;m not doing it in Java anymore &#8211; it just doesn&#8217;t get me to where I want fast enough.  For the most part, web application frameworks are just a means to an end; if you&#8217;re spending too much time there you&#8217;re just jerking off.</p>
<p>And the unfortunate thing about not using Java is that as you build up your application, you find yourself missing the vast array of Java libraries and tools out there today.  On the flipside, Java misses out on the new ideas garnered from a developer&#8217;s late night binges of inspiration.  We need to be removing the obstacles and making sure that we developers get access to the heart or the Java platform quicker and easier.</p>
<p>In a lot of ways, I see Ruby on Rails  and its like as a <em><a title="An excerpt from The Innovator's Dilemma" href="http://www.businessweek.com/chapter/christensen.htm">disruptive technology</a></em>, and applaud those in the Java arena looking to embrace it.  It is pretty chaotic right now, with a new framework popping up every few weeks or so, but eventually there will be one or two that will rise to the top.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2006/01/21/the-fight-for-rails-for-java-is-a-good-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
