<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://raibledesigns.com/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>Raible Designs</title>
  <link>https://raibledesigns.com/rd/</link>
      <atom:link rel="self" type="application/rss+xml" href="https://raibledesigns.com/rd/feed/entries/rss?tags=rails" />
    <description>Raible Designs is an Enterprise Open Source Consulting company. We specialize in UI and Full Stack Architectures using HTML5, CSS, JavaScript and Java. We love HTML5, Angular, Bootstrap, Spring Boot, and especially JHipster.</description>
  <language>en-us</language>
  <copyright>Copyright 2026</copyright>
  <lastBuildDate>Thu, 30 Apr 2026 03:43:46 -0600</lastBuildDate>
  <generator>Apache Roller (incubating) 5.0.3 (1388864191739:dave)</generator>
        <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/how_i_calculated_ratings_for</guid>
    <title>How I Calculated Ratings for My JVM Web Frameworks Comparison</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/how_i_calculated_ratings_for</link>
        <pubDate>Mon, 6 Dec 2010 11:55:18 -0700</pubDate>
    <category>Java</category>
    <category>devoxx2010</category>
    <category>webframeworks</category>
    <category>jvm</category>
    <category>lift</category>
    <category>comparingwebframeworks</category>
    <category>webframeworksmatrix</category>
    <category>spring</category>
    <category>rails</category>
    <category>vaadin</category>
    <category>jsf</category>
    <category>flex</category>
    <category>gwt</category>
    <category>wicket</category>
    <category>springmvc</category>
    <category>stripes</category>
    <category>java</category>
    <category>rubyonrails</category>
    <category>devoxx</category>
    <category>grails</category>
    <category>struts2</category>
    <category>playframework</category>
            <description>When I re-wrote my &lt;a href=&quot;http://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks&quot;&gt;Comparing JVM Web Frameworks presentation&lt;/a&gt; from scratch, I decided to add a &lt;a href=&quot;http://bit.ly/jvm-frameworks-matrix&quot;&gt;matrix&lt;/a&gt; that allows you to rate a framework based on &lt;a href=&quot;https://docs.google.com/document/pub?id=1jAGPWwlEcYikqOPg8faYgRV7cQNS_iCCoJ1VNc_99M4&quot;&gt;20 different criteria&lt;/a&gt;. The reason I did this was because I&apos;d used this method when &lt;a href=&quot;http://raibledesigns.com/rd/entry/ajax_framework_analysis_results&quot;&gt;choosing an Ajax framework for Evite&lt;/a&gt; last year. The matrix seemed to work well for selecting the top 5 frameworks, but it also inspired a lot of discussion in the community that my &lt;a href=&quot;http://ptrthomas.wordpress.com/2010/12/04/comparing-jvm-web-frameworks-a-response-to-matt-raible/&quot;&gt;ratings&lt;/a&gt; &lt;a href=&quot;http://blog.frankel.ch/critical-analysis-of-frameworks-comparison&quot;&gt;were&lt;/a&gt; &lt;a href=&quot;http://basementcoders.com/2010/12/episode-27-hudson-oracle-raible-and-astycrapper/&quot;&gt;wrong&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;I expected this, as I certainly don&apos;t know every framework as well as I&apos;d like. The mistake I made was asking for the community to provide feedback on my ratings without describing how I arrived at them. From &lt;a href=&quot;http://ptrthomas.wordpress.com/2010/12/04/comparing-jvm-web-frameworks-a-response-to-matt-raible/&quot;&gt;Peter Thomas&apos;s blog&lt;/a&gt;:
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
What you are doing is adjusting ratings based on who in the community shouts the loudest. I can&apos;t help saying that this approach comes across as highly arrogant and condescending, you seem to expect framework developers and proponents to rush over and fawn over you to get better ratings, like waiters in a restaurant trying to impress a food-critic for Michelin stars.
&lt;/p&gt;
&lt;p&gt;
I apologize for giving this impression. It certainly wasn&apos;t my intent. By having simple numbers (1.0 == framework does well, 0.5 == framework is OK and 0 == framework not good at criteria) with no rationalization, I can see how the matrix can be interpreted as useless (or to put it bluntly, as &lt;a href=&quot;http://basementcoders.com/2010/12/episode-27-hudson-oracle-raible-and-astycrapper/&quot;&gt;something you should wipe your ass with&lt;/a&gt;). I don&apos;t blame folks for getting angry.&lt;/p&gt;
&lt;p&gt;For my Rich Web Experience presentation, I documented why I gave each framework the rating I did. Hopefully this will allow folks to critique my ratings more constructively and I can make the numbers more accurate. You can view this document below or &lt;a href=&quot;http://bit.ly/jvm-webfwk-ratings-logic&quot;&gt;on Google Docs&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;//docs.google.com/document/pub?id=1X_XvpJd6TgEAMe4a6xxzJ38yzmthvrA6wD7zGy2Igog&amp;amp;embedded=true&quot; style=&quot;width: 100%; border: 1px solid silver; height: 400px&quot;&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;In the end, what I was hoping to do with this matrix was to simply highlight a &lt;em&gt;technique&lt;/em&gt; for choosing a web framework. Furthermore, I think adding a &quot;weight&quot; to each criteria is important because things like books often aren&apos;t as important as REST support. To show how this might be done, I added a second sheet to the matrix and made up some weighting numbers. I&apos;d expect anyone that wants to use this to &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/JVM_Web_Framework_Matrix_20101206.xls&quot;&gt;downloaded the matrix&lt;/a&gt;, verify the ratings are accurate for your beliefs and weight the criteria accordingly.
&lt;/p&gt;
&lt;p&gt;
Of course, as I and many others have said, the best way to choose a web framework is to try them yourself. I emphasized this at the end of my presentation with the following two slides.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/mraible/5238846712/&quot; title=&quot;Slide #77 from Comparing JVM Web Frameworks Talk at RWX2010&quot;&gt;&lt;img src=&quot;//farm6.static.flickr.com/5281/5238846712_375a63e4c6.jpg&quot; width=&quot;500&quot; height=&quot;375&quot; alt=&quot;Slide #77 from Comparing JVM Web Frameworks Talk at RWX2010&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;http://www.flickr.com/photos/mraible/5238846740/&quot; title=&quot;Slide #76 from Comparing JVM Web Frameworks Talk at RWX2010&quot;&gt;&lt;img src=&quot;//farm6.static.flickr.com/5129/5238846740_29b06ee0eb.jpg&quot; width=&quot;500&quot; height=&quot;375&quot; alt=&quot;Slide #76 from Comparing JVM Web Frameworks Talk at RWX2010&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks</guid>
    <title>My Comparing JVM Web Frameworks Presentation from Devoxx 2010</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks</link>
        <pubDate>Thu, 18 Nov 2010 05:23:10 -0700</pubDate>
    <category>Java</category>
    <category>spring</category>
    <category>stripes</category>
    <category>rubyonrails</category>
    <category>java</category>
    <category>jvm</category>
    <category>struts2</category>
    <category>devoxx2010</category>
    <category>playframework</category>
    <category>lift</category>
    <category>devoxx</category>
    <category>grails</category>
    <category>webframeworks</category>
    <category>rails</category>
    <category>wicket</category>
    <category>gwt</category>
    <category>springmvc</category>
    <category>vaadin</category>
    <category>jsf</category>
    <category>flex</category>
            <description>This week, I&apos;ve been having a great time in Antwerp, Belgium at the &lt;a href=&quot;http://www.devoxx.com/display/Devoxx2K10/Home&quot;&gt;Devoxx&lt;/a&gt; Conference. This morning, I had the pleasure of delivering my &lt;a href=&quot;http://www.devoxx.com/display/Devoxx2K10/Comparing+JVM+Web+Frameworks&quot;&gt;Comparing JVM Web Frameworks&lt;/a&gt; talk. I thoroughly enjoyed giving this presentation, especially to such a large audience. You can view the presentation below (if you have Flash installed) or &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/Comparing_JVM_Web_Frameworks_Devoxx2010.pdf&quot;&gt;download it here&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/uBZoC22SGdjpFy&quot; width=&quot;510&quot; height=&quot;420&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
Unlike previous years, I chose to come up with a &lt;a href=&quot;http://bit.ly/jvm-frameworks-matrix&quot;&gt;spreadsheet matrix&lt;/a&gt; that shows why I chose the 5 I did. This spreadsheet and rankings given to each framework are likely to be debated, as I don&apos;t know all the frameworks as well as I&apos;d like to. Also, the missing column on this spreadsheet is a &quot;weighting&quot; column where you can prioritize certain criteria like I&apos;ve done in the past when &lt;a href=&quot;http://raibledesigns.com/rd/entry/ajax_framework_analysis_results&quot;&gt;Comparing Ajax Frameworks&lt;/a&gt;. If you believe there are incorrect numbers, please let me know and I&apos;ll try to get those fixed before I do this talk again at &lt;a href=&quot;http://www.therichwebexperience.com/conference/fort_lauderdale/2010/11/home&quot;&gt;The Rich Web Experience&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
One thing that doesn&apos;t come across in this presentation is that I believe &lt;em&gt;anyone&lt;/em&gt; can use this matrix, and weightings, to make &lt;em&gt;any&lt;/em&gt; of these frameworks come out on top. I also believe web frameworks are like spaghetti sauce in &lt;a href=&quot;http://www.gladwell.com/2004/2004_09_06_a_ketchup.html&quot;&gt;The Ketchup Conundrum&lt;/a&gt;. That is, the only way to make more happy spaghetti sauce lovers was to make more &lt;em&gt;types&lt;/em&gt; of spaghetti sauce. You can read more about this in my &lt;a href=&quot;http://raibledesigns.com/rd/entry/there_is_no_best_web&quot;&gt;There is no &quot;best&quot; web framework&lt;/a&gt; article.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; If you disagree with the various ratings I gave to web frameworks in this presentation, please provide your opinions by &lt;a href=&quot;http://bit.ly/webmatrixsurvey&quot;&gt;filling out this survey&lt;/a&gt;. Thanks to &lt;a href=&quot;http://twitter.com/sarbogast&quot;&gt;Sebastien Arbogast&lt;/a&gt; for setting this up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Sebastien has posted his survey results at &lt;a href=&quot;http://sebastien-arbogast.com/2010/11/19/jvm-web-framework-survey-first-results/&quot;&gt;JVM Web Framework Survey, First Results&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 12/6:&lt;/strong&gt; A video of this presentation is &lt;a href=&quot;http://parleys.com/d/2118&quot;&gt;now available on Parleys.com&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;border-top: 1px dotted silver; padding-top: 5px; color: #666&quot;&gt;
P.S. My current gig is ending in mid-December. If you&apos;re looking for a UI Architect with a passion for open source frameworks, please &lt;a href=&quot;http://raibledesigns.com/contact.jsp&quot;&gt;let me know&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/presentations_from_the_irish_software</guid>
    <title>My Presentations from The Irish Software Show 2010</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/presentations_from_the_irish_software</link>
        <pubDate>Thu, 10 Jun 2010 07:11:35 -0600</pubDate>
    <category>Java</category>
    <category>webframeworks</category>
    <category>grails</category>
    <category>iss2010</category>
    <category>rubyonrails</category>
    <category>flex</category>
    <category>rails</category>
    <category>gwt</category>
            <description>This week I&apos;ve been enjoying Dublin, Ireland thanks to the 2nd Annual &lt;a href=&quot;http://epicenter.ie/2010.html&quot;&gt;Irish Software Show&lt;/a&gt;. On Wednesday night, I spoke about &lt;a href=&quot;http://epicenter.ie/2010.html?zone_id=20&amp;amp;mode=agenda&amp;amp;session=152#session&quot;&gt;The Future of Web Frameworks&lt;/a&gt; and  participated in a panel with Grails, Rails, ASP.NET MVC and Seaside developers. It was a fun night with lots of lively discussion. Below is my presentation from this event.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;&lt;object id=&quot;__sse3271151&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=thefutureofwebframeworks-100225012146-phpapp02&amp;amp;stripped_title=the-future-of-web-frameworks&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse3271151&quot; src=&quot;//static.slidesharecdn.com/swf/ssplayer2.swf?doc=thefutureofwebframeworks-100225012146-phpapp02&amp;amp;stripped_title=the-future-of-web-frameworks&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;This morning, I delivered my &lt;a href=&quot;http://epicenter.ie/2010.html?zone_id=20&amp;amp;mode=agenda&amp;amp;session=151#session&quot;&gt;Comparing Kick-Ass Web Frameworks&lt;/a&gt; talk. This presentation contains updated statistics for various metrics comparing Rails vs. Grails and Flex vs. GWT. 
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;object id=&quot;__sse2644393&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=comparingkickasswebframeworks-091203145644-phpapp02&amp;stripped_title=comparing-kick-ass-web-frameworks&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse2644393&quot; src=&quot;//static.slidesharecdn.com/swf/ssplayer2.swf?doc=comparingkickasswebframeworks-091203145644-phpapp02&amp;stripped_title=comparing-kick-ass-web-frameworks&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
Thanks to all who attended my talks this week!
&lt;/p&gt;
&lt;p style=&quot;border-top: 1px dotted silver; padding-top: 5px; color: #666&quot;&gt;
P.S. I believe audio was recorded on Wednesday night, but I&apos;m unsure how it turned out. I&apos;m pretty sure no recordings were done on this morning&apos;s session. 
&lt;/p&gt;&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/comparing_kick_ass_web_frameworks</guid>
    <title>Comparing Kick-Ass Web Frameworks at The Rich Web Experience</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/comparing_kick_ass_web_frameworks</link>
        <pubDate>Fri, 4 Dec 2009 08:16:48 -0700</pubDate>
    <category>Java</category>
    <category>jobs</category>
    <category>gwt</category>
    <category>richwebexperience</category>
    <category>richweb</category>
    <category>trends</category>
    <category>flex</category>
    <category>struts</category>
    <category>rails</category>
    <category>grails</category>
            <description>Yesterday, I delivered my &lt;a href=&quot;http://www.therichwebexperience.com/conference/orlando/2009/12/session?id=15951&quot;&gt;Comparing Kick-Ass Web Frameworks&lt;/a&gt; talk at the Rich Web Experience in Orlando, Florida. Below are the slides I used:&lt;/p&gt;
&lt;div style=&quot;text-align:center; margin-bottom: 10px&quot; id=&quot;__ss_2644393&quot;&gt;
&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=comparingkickasswebframeworks-091203145644-phpapp02&amp;stripped_title=comparing-kick-ass-web-frameworks&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;//static.slidesharecdn.com/swf/ssplayer2.swf?doc=comparingkickasswebframeworks-091203145644-phpapp02&amp;stripped_title=comparing-kick-ass-web-frameworks&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;
&lt;p&gt;Although it&apos;s difficult to convey a presentation in a slide deck, I can offer you my conclusion: &lt;a href=&quot;http://java.dzone.com/news/there-no-best-web-framework&quot;&gt;there is no &quot;best&quot; web framework&lt;/a&gt;. I believe web frameworks are like &lt;a href=&quot;http://www.ted.com/talks/malcolm_gladwell_on_spaghetti_sauce.html&quot;&gt;spaghetti sauce&lt;/a&gt; in that everyone has different tastes and having so many choices is necessary to satisfy everyone. You can read more about the &lt;em&gt;plural nature of perfection&lt;/em&gt; in Malcolm Gladwell&apos;s &lt;a href=&quot;http://www.gladwell.com/2004/2004_09_06_a_ketchup.html&quot;&gt;The Ketchup Conundrum&lt;/a&gt; (a written version of &lt;a href=&quot;http://www.ted.com/talks/malcolm_gladwell_on_spaghetti_sauce.html&quot;&gt;What we can learn from spaghetti sauce&lt;/a&gt;). Even though there is no &quot;best&quot; web framework, I believe GWT, Flex, Rails and Grails are frameworks that every web developer should try. They really do make it fun to develop web applications.
&lt;/p&gt;
&lt;p&gt;You can find the slides for my other RWE talk at &lt;a href=&quot;http://raibledesigns.com/rd/entry/building_sofea_applications_with_gwt&quot;&gt;Building SOFEA Applications with GWT and Grails&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Kudos to &lt;a href=&quot;http://www.nofluffjuststuff.com&quot;&gt;Jay Zimmerman&lt;/a&gt; for putting on a great show in Orlando this year. I had a great time talking with folks and learning in the sessions I attended. I particularly enjoyed bringing my parents and kids and staying at such a nice resort. Disney World (Magic Kingdom) and Universal Studios was very enjoyable due to the short lines. Also, the weather was perfect - especially considering the freezing cold in Denver this week. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/lean_teams_doing_more_with</guid>
    <title>Lean Teams: Doing more with less</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/lean_teams_doing_more_with</link>
        <pubDate>Wed, 23 Sep 2009 21:20:28 -0600</pubDate>
    <category>Open Source</category>
    <category>software</category>
    <category>softwaredevelopment</category>
    <category>kanban</category>
    <category>lean</category>
    <category>rails</category>
    <category>denver</category>
    <category>derailed</category>
    <category>agile</category>
            <description>This evening I attended the Denver Rails User Group (a.k.a. &lt;a href=&quot;http://groups.google.com/group/derailed&quot;&gt;DeRailed&lt;/a&gt;) to hear a presentation by &lt;a href=&quot;http://martyhaught.com&quot;&gt;Marty Haught&lt;/a&gt;. It was titled &quot;Lean Teams: Doing more with less&quot; and the following are my notes from the event.
&lt;/p&gt;
&lt;p&gt;Today&apos;s talk is about &quot;Rocking with Ramen&quot; - a.k.a. working with less funds to make great things. Lean comes from the manufacturing world in that you should &lt;strong&gt;Add Nothing but Value&lt;/strong&gt;. The most important thing you should do is &lt;em&gt;add business value&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;The Seven Wasteful Sins for manufacturing are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Overproduction&lt;/li&gt;
&lt;li&gt;Inventory&lt;/li&gt;
&lt;li&gt;Extra Processing Steps&lt;/li&gt;
&lt;li&gt;Motion&lt;/li&gt;
&lt;li&gt;Defects&lt;/li&gt;
&lt;li&gt;Waiting&lt;/li&gt;
&lt;li&gt;Transportation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key to fighting &lt;strong&gt;overproduction&lt;/strong&gt; in software is to trim features to those that achieve the greatest value. You should do &quot;the simplest thing that could possibly work&quot; and delay commitment as long as you can because &lt;a href=&quot;http://en.wikipedia.org/wiki/You_ain&apos;t_gonna_need_it&quot;&gt;YAGNI&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;
A &lt;strong&gt;minimum viable product&lt;/strong&gt; is a starting place for validated learning with the least amount of effort. It should be embarrassing. Early adopters see the potential. &lt;a href=&quot;http://blog.railsrumble.com/&quot;&gt;Rails Rumble&lt;/a&gt; and &lt;a href=&quot;http://startupweekend.org/&quot;&gt;Startup Weekend&lt;/a&gt; are good examples of promoting this type of development. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Unused and useless features&lt;/strong&gt; are best solved by &lt;em&gt;feedback-driven development&lt;/em&gt;. This is a process for validating value and creating software that people use. The end result is that you create software that people use and you&apos;re able to pivot your plan as you learn. The benefit of this is you stay humble and you don&apos;t drink the Kool-Aid (e.g. VC&apos;s tell you you&apos;re going to be the next Twitter).
&lt;/p&gt;
&lt;p&gt;The first part of feedback is &quot;&lt;a href=&quot;http://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version&quot;&gt;Pirate Metrics&lt;/a&gt;&quot; by Dave McClure. The main things to track are acquisition, activation, retention, referral and revenue (AARRRR!). The main things you should gather from metrics is they&apos;re actionable and should help you make decisions. Vanity metrics like hits-per-month and such should be ignored.&lt;/p&gt;
&lt;p&gt;Other feedback options include net promoter score (popup question to ask if users would recommend to a friend), feedback form (make it easy for users to tell you what you think about your product), A/B testing, and usability testing. 
&lt;/p&gt;
&lt;p&gt;The final point is that it&apos;s OK to remove features.&lt;/p&gt;
&lt;p&gt;To reduce extra processing and waiting, you should implement &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Kanban&quot;&gt;Kanban&lt;/a&gt;&quot;. It&apos;s a pull-based system for a continuous flow of work and can be used in software projects to manage/schedule work for cross functional teams. It&apos;s an expression of just-in-time and has an emphasis on flow. It&apos;s all about getting across the board as fast as possible. In agile development, this is often expressed as a card-based system on a wall in the same room as your development team. Things can only move from the left-to-right as there is space for them. Marty is showing a screenshot of a &quot;&lt;a href=&quot;http://agilezen.com/&quot;&gt;Zen&lt;/a&gt;&quot; tool he uses on his projects. It has 3 columns (Definition, Work and Verification) from left-to-right that allows you to easily move stuff.&lt;/p&gt;
&lt;p&gt;The most important thing about &lt;em&gt;Kanban&lt;/em&gt; is it helps to eliminate constraints. The Zen tool only allows a certain amount of items in the &quot;Work&quot; column and it visually communicates blocked items by moving them to the top and highlighting them with a red border. The Zen tool that Marty is showing looks similar to Rally, but is much more visually appealing.
&lt;/p&gt;
&lt;p&gt;The benefits of Kanban include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;simple, less process&lt;/li&gt;
&lt;li&gt;less inventory of requirements/stories&lt;/li&gt;
&lt;li&gt;limit work in progress, maximize throughput&lt;/li&gt;
&lt;li&gt;less time in meetings&lt;/li&gt;
&lt;li&gt;more naturally represents story lifecycle&lt;/li&gt;
&lt;li&gt;more easily spot bottlenecks&lt;/li&gt;
&lt;li&gt;estimate only if it adds value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kanban promotes tracking how long it takes for a story get across the board and into production vs. tracking velocity of a team.&lt;/p&gt;
&lt;p class=&quot;quote&quot; style=&quot;font-style: italic; color: #666&quot;&gt;
On my current project, we use Rally, a small team and have two week iterations. Because the things that Marty is talking about seem to be things we&apos;re already doing, I asked him how Kanban differs from Scrum with small teams. He explained that this biggest difference is Kanban is most useful when you&apos;re pushing things to production with each iteration.
&lt;/p&gt;
&lt;p&gt;The most controversial practice that Marty promotes is &lt;em&gt;Continuous Deployment&lt;/em&gt;. This is the automated deployment of code to production. It includes automated testing and continuous integration, simple deployment/rollback scripts, a successful CI build triggers deployment, and there&apos;s real-time alerts in production. When shit goes wrong, you should use the &quot;five whys&quot; to perform root cause analysis. Marty admits that this is only a good idea when there&apos;s a high-level of trust in your development team and lots of tests to prove nothing is broken.&lt;!--(in other words, you don&apos;t work with any douchebags)--&gt;
&lt;/p&gt;
&lt;p&gt;The benefits of continuous deployment is there&apos;s a lower story cycle time, you eliminate waste in deploying code, you deliver features/bugs fixes faster and you find integration issues quicker and in isolation. It&apos;s also a great way to promote &lt;em&gt;not checking in shitty code&lt;/em&gt;.
&lt;p&gt;The skeptics think this is a bad idea because 1) it&apos;s scary, 2) they believe it causes lower quality and 3) it causes more issues in production. The good news is you can still control production deployments with your source control system (e.g. branches and such). More than anything, it forces you to have a high quality continuous integration system that acts as the gatekeeper for what goes to production.
&lt;/p&gt;
&lt;p&gt;You can learn more about topics Marty covered in this talk at the following sites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Eric Ries - &lt;a href=&quot;http://www.startuplessonslearned.com/&quot;&gt;http://www.startuplessonslearned.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Steve Blank - &lt;a href=&quot;http://www.amazon.com/Four-Steps-Epiphany-Steven-Blank/dp/0976470705&quot;&gt;The Four Steps to the Epiphany&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.poppendieck.com/&quot;&gt;Mary Poppendieck&lt;/a&gt; - Lean Software Development&lt;/li&gt;
&lt;li&gt;Dave McClure - &lt;a href=&quot;http://davemcclure.com/&quot;&gt;http://davemcclure.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/articles/hiranabe-lean-agile-kanban&quot;&gt;Kanban Applied to Software Development: from Agile to Lean&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;If you&apos;re lucky enough to be attending &lt;a href=&quot;http://www.alohaonrails.com/&quot;&gt;Aloha on Rails&lt;/a&gt;, Marty will be &lt;a href=&quot;http://www.alohaonrails.com/sessions/#lean-teams-how-to-do-more-with-less&quot;&gt;presenting&lt;/a&gt; there. I recommend you attend his talk if you&apos;re trying to get stuff done quickly and get it into production even quicker. His techniques seem to be invaluable for developers that are trying to maximize their efficiency and reduce the time it takes to get their code into production.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/presenting_web_frameworks_of_the</guid>
    <title>Presenting Web Frameworks of the Future Tomorrow in Denver</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/presenting_web_frameworks_of_the</link>
        <pubDate>Wed, 30 Jul 2008 21:56:17 -0600</pubDate>
    <category>Open Source</category>
    <category>opensource</category>
    <category>rest</category>
    <category>webframeworks</category>
    <category>grails</category>
    <category>rails</category>
    <category>oscon</category>
    <category>flex</category>
    <category>gwt</category>
            <description>Tomorrow (Thursday) night, I&apos;ll be doing an encore presentation of my &lt;a href=&quot;http://raibledesigns.com/rd/entry/oscon_2008_web_frameworks_of&quot;&gt;Web Frameworks of the Future&lt;/a&gt; at &lt;a href=&quot;http://groups.google.com/group/derailed&quot;&gt;DeRailed&lt;/a&gt;. If you&apos;re in Denver and would like to hear me ramble while drinking a beer, join us at &lt;a href=&quot;http://www.forestroom5.com/&quot;&gt;Forestroom 5&lt;/a&gt; at 6:30.&lt;/p&gt;
&lt;p&gt;After the &lt;a href=&quot;http://raibledesigns.com/rd/entry/the_oscon_aftermath&quot;&gt;last few days&lt;/a&gt;, I&apos;m happy to report I should be in good enough condition to pull this off. If you&apos;re curious to learn more about my experience at OSCON and this presentation, please see &lt;a href=&quot;http://blog.linkedin.com/blog/2008/07/oscon-2008-and.html&quot;&gt;my writeup on the LinkedIn Blog&lt;/a&gt;.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/oscon_2008_web_frameworks_of</guid>
    <title>[OSCON 2008] Web Frameworks of the Future: Flex, GWT, Grails and Rails</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/oscon_2008_web_frameworks_of</link>
        <pubDate>Wed, 23 Jul 2008 16:25:23 -0600</pubDate>
    <category>Open Source</category>
    <category>rails</category>
    <category>oscon</category>
    <category>rest</category>
    <category>gwt</category>
    <category>oscon08</category>
    <category>flex</category>
    <category>grails</category>
    <category>opensource</category>
    <category>webframeworks</category>
            <description>Below is the presentation I&apos;m &lt;a href=&quot;http://en.oreilly.com/oscon2008/public/schedule/speaker/6444&quot;&gt;delivering at OSCON&lt;/a&gt; today. Unfortunately, I had to remove slides on GWT and Flex to fit w/in the 45 minute time limit. I hope to expand this presentation in the future, as well as continue to develop the side project I&apos;m working on using these technologies.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=webframeworksofthefutureflexgwtrailsandgrails-1216842992390310-9&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;//static.slideshare.net/swf/ssplayer2.swf?doc=webframeworksofthefutureflexgwtrailsandgrails-1216842992390310-9&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div style=&quot;font-size: .9em; text-align: center&quot;&gt;
&lt;a href=&quot;http://www.slideshare.net/mraible/web-frameworks-of-the-future-flex-gwt-grail-and-rails-525747?src=embed&quot; title=&quot;View Web Frameworks of the Future: Flex, GWT, Grail, and Rails on SlideShare&quot;&gt;view on slideshare&lt;/a&gt; | 
&lt;a href=&quot;http://www.slideshare.net/mraible/web-frameworks-of-the-future-flex-gwt-grail-and-rails-525747/download&quot;&gt;download&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/oscon_2008_an_introduction_to</guid>
    <title>[OSCON 2008] An Introduction to Ruby Web Frameworks by Ryan Carmelo Briones</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/oscon_2008_an_introduction_to</link>
        <pubDate>Wed, 23 Jul 2008 12:33:08 -0600</pubDate>
    <category>Open Source</category>
    <category>ruby</category>
    <category>merb</category>
    <category>conference</category>
    <category>frameworks</category>
    <category>webframeworks</category>
    <category>rails</category>
    <category>rubyonrails</category>
    <category>oscon</category>
    <category>oscon08</category>
            <description>Ryan is a Server Monkey / Code Sumari for &lt;a href=&quot;http://www.theedgecase.com/&quot;&gt;Edgecase&lt;/a&gt;, LLC in Columbus, Ohio. A framework allows you to create re-usable code. Frameworks allow you to use encapsulation.  Frameworks tend to be domain specific. For example, Rails works really for CRUD application, but not for others (i.e. Twitter).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Why Ruby?&lt;/strong&gt;&lt;br/&gt;
Ruby has been Object Oriented since day 1. Ruby promotes Beautiful Code that&apos;s easy to read and maintain. Yes, MRI has performance issues. Matz has said &quot;I&apos;m a language designer&quot; and has turned over the VM to others for Ruby 1.9. Another thing that might keep folks from using Ruby or its web frameworks is the libraries available. This is understandable, but it&apos;s being solved by alternative implementations. This includes YARV (the official 1.9 implementation), JRuby, IronRuby (not ready for production) and MagLev.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rack&lt;/strong&gt;&lt;br/&gt;
A framework that provides a minimal API for connecting web services and web frameworks. As a web application developer, this framework allows us to know about web services, but not worry about the details of talking to it. Below is a very simple Rack application.&lt;/p&gt;

&lt;pre&gt;
class HelloWorld
  def call(env)
    [200, {&quot;Content-Type&quot; =&gt; &quot;text/plain&quot;}, [&quot;Hello World!&quot;]]
  end
end
&lt;/pre&gt;
&lt;p&gt;Rack allows the handlers do the work and not worry about the web server abstraction. Handlers exist for WEBrick, LightSpeed, Mongrel, Fast-CGI and many others. As an application developer, it allows you to choose different architectures (threaded, evented, etc.). Ryan is talking about Rack first because it&apos;s used in all the other Ruby web frameworks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ruby on Rails&lt;/strong&gt;&lt;br/&gt;
Rails is 4 years old now and was written by DHH when he was a contractor at 37Signals. Rails doesn&apos;t define and grand new ideas, everything has been done before (MVC, code generation, etc.). What Rails did is package everything in a unique way that makes it very easy to use. Rails has influenced a lot of what has come from web frameworks in the last few years. One of Rails&apos; nicest feature is code generation. Ryan showed part of DHH&apos;s &lt;a href=&quot;http://www.rubyonrails.org/screencasts&quot;&gt;Create a weblog in 15 minutes&lt;/a&gt; video to demonstrate code generation. He noted that the minute he showed was picked because David said &quot;Whoops!&quot; and &quot;Look at all the things I&apos;m not doing&quot;. Rails popularized Convention over Configuration using naming conventions and load paths. While this is definitely a cool feature, I think most web frameworks have adopted CoC by now. Maybe not JSF, but who wants to use JSF w/o a framework on top of it anyway?
&lt;/p&gt;
&lt;p&gt;One warning about Rails: &quot;The Golden Path&quot; can get in your way. Rails is very Opinionated Software and that&apos;s how Rails works. As long as you follow that, you should be very productivity. If you decide to go off the Rails (i.e. namespaces), it can be difficult.
&lt;/p&gt;
&lt;p&gt;Rails uses a DSL in its models (i.e. has_many, has_one for relationships) and in the Rails router. It allows you to very simply map a URL to a controller/method. In addition to DSLs, Rails has first-class testing and its generators create stub tests for you.&lt;/p&gt;
&lt;p&gt;Bad things about Rails: too much magic, moves to fast (too many releases).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Merb&lt;/strong&gt;&lt;br/&gt;
Merb was originally developed by Ezra Zygmuntowicz to run alongside a Rails app to handle file uploads. It grew from there and became it&apos;s own beast. Merb is very much about using only what you need. It has &quot;package repos&quot; that allow you to add additional features. For example, merb-core doesn&apos;t contain an ORM framework, just a web framework. Merb also allows you to choose your ORM. It&apos;s standardized on Rack, so it can run on just about any web server. It also included &quot;deferred actions&quot; that allow you to send some URLs to evented web servers and others to threaded web servers. Merb eschews the &quot;magic&quot; that Rails has. It tries to stay away from making it&apos;s code a &quot;monument to personal cleverness&quot;. Simple code scales better and runs faster.&lt;/p&gt;
&lt;p&gt;One of the downers to Merb is that it&apos;s flexibility allows you to get down to the nitty gritty. However, it can be less productive than Rails because of its flexibility. Another downside is its documentation and examples are sparse. Merb is not recommended if you&apos;re just getting into Ruby.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Camping&lt;/strong&gt;&lt;br/&gt;
Camping is a micro framework (&amp;lt; 4K) developed by &lt;a href=&quot;http://whytheluckystiff.net/&quot;&gt;why the lucky stiff&lt;/a&gt;. It&apos;s designed to develop small applications. You can do everything in one file and create prototypes very quickly. It uses &lt;a href=&quot;http://code.whytheluckystiff.net/markaby/&quot;&gt;Markaby&lt;/a&gt; to write HTML code in a builder-style fashion. 
&lt;/p&gt;
&lt;p&gt;
Since a Camping application is all in one file, it can be difficult to develop large applications. The solution is to write small apps and mount them in the same URL space. The only issue with small apps sharing the same space is they have to use the same database. One downside to Camping is there is no standard test framework. Mosquito was developed as a solution, but doesn&apos;t seem to be maintained.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sinatra&lt;/strong&gt;&lt;br/&gt;
Simple. Fast. Effective. It&apos;s designed to allow creating REST applications with minimal dependencies. Similar to Camping, it has one file for the entire application. Unlike Camping, Sinatra doesn&apos;t follow MVC conventions, so it may be difficult to port a Sinatra application to another framework.
&lt;/p&gt;
&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/the_416</guid>
    <title>The 416</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/the_416</link>
        <pubDate>Fri, 18 Jul 2008 14:10:37 -0600</pubDate>
    <category>The Web</category>
    <category>pradiptarolodex</category>
    <category>pradipta</category>
    <category>the416</category>
    <category>rails</category>
            <description>&lt;div style=&quot;text-align: center; margin-top: -10px&quot;&gt;&lt;a href=&quot;http://thepradipta416.com&quot; title=&quot;Proud Member of the Pradipta 416&quot;&gt;&lt;img src=&quot;//thepradipta416.com/img/badge1.gif&quot; alt=&quot;The Few, The Proud, The Pradipta 416&quot; style=&quot;border: 1px solid black&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/linkedin_has_the_biggest_rails</guid>
    <title>LinkedIn has the Biggest Rails app in the World</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/linkedin_has_the_biggest_rails</link>
        <pubDate>Tue, 24 Jun 2008 13:25:16 -0600</pubDate>
    <category>Java</category>
    <category>scalability</category>
    <category>rails</category>
    <category>linkedin</category>
    <category>java</category>
    <category>macs</category>
            <description>From the &lt;a href=&quot;http://blog.linkedin.com/blog/2008/06/web-scalability.html&quot;&gt;LinkedIn Engineering Blog&lt;/a&gt;:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
&lt;a href=&quot;http://blog.linkedin.com/blog/2008/06/web-scalability.html&quot;&gt;&lt;img src=&quot;//farm4.static.flickr.com/3277/2607726721_3918baac8c_o.gif&quot; width=&quot;194&quot; height=&quot;61&quot; alt=&quot;LinkedIn loves Rails&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; /&gt;&lt;/a&gt;
Bumper Sticker started as a small experiment in August, 2007. Facebook had released their development platform while we were hard at work on our own. We were curious to experiment and discover some of the characteristics of an application platform built on a social network and to see what, if any, learning we could apply to our own efforts. After noticing that professional and business-related applications weren&apos;t flourishing in the Facebook ecosystem, a few of our Product folks put their heads together while out for a run; one engineer, one week, and a few Joyent accelerators later, Bumper Sticker was born.
&lt;br/&gt;&lt;br/&gt;
We&apos;d be lying if we said that anyone was prepared for the kind of success Bumper Sticker has had since then - though we should have expected it, given the excellent Product team here at LinkedIn. Here&apos;s a quick snapshot of Bumper Sticker statistics at this moment: &lt;a href=&quot;http://blog.linkedin.com/blog/2008/06/web-scalability.html&quot;&gt;Read More &amp;raquo;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &quot;biggest Rails app in the world&quot; claim comes from &lt;a href=&quot;http://joyent.vo.llnwd.net/o25/videos/LinkedIn-Bumpersticker-LED-Scaling-Rails.m4v&quot;&gt;this video&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In addition to having a kick-ass RoR team at LinkedIn, we also &lt;a href=&quot;http://blog.linkedin.com/blog/2008/06/linkedin-is-99.html&quot;&gt;do a lot with Java and love our Macs&lt;/a&gt;. Why wouldn&apos;t you want to &lt;a href=&quot;http://www.linkedin.com/static?key=jobs&amp;amp;trk=hb_ft_work&quot;&gt;work here&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;If you &lt;a href=&quot;http://www.linkedin.com/e/jsc/linkedin/&quot;&gt;find a gig&lt;/a&gt; you like, or simply have mad programming skills, &lt;a href=&quot;http://raibledesigns.com/contact.jsp&quot;&gt;contact me&lt;/a&gt; and I&apos;ll see if I can hook you up. And yes, we are hiring at LinkedIn Denver.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/re_what_s_a_good</guid>
    <title>RE: What&apos;s a good RIA to develop in 20 hours?</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/re_what_s_a_good</link>
        <pubDate>Wed, 11 Jun 2008 11:02:23 -0600</pubDate>
    <category>Java</category>
    <category>webframeworks</category>
    <category>grails</category>
    <category>flex</category>
    <category>rails</category>
    <category>gwt</category>
            <description>Thanks to everyone who commented on my &lt;a href=&quot;http://raibledesigns.com/rd/entry/what_s_a_good_ria&quot;&gt;previous post&lt;/a&gt; and offered recommendations for  RIAs to develop in 20 hours or less. In order to narrow down my choices, I&apos;ve created a survey on &lt;a href=&quot;http://www.surveymonkey.com/&quot;&gt;SurveyMonkey.com&lt;/a&gt;. Here&apos;s a list of the application ideas I received from comments and e-mails:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lightweight CMS&lt;/li&gt;
&lt;li&gt;MP3 Player&lt;/li&gt;
&lt;li&gt;Resume Editor/Publisher&lt;/li&gt;
&lt;li&gt;Meal/Calorie Tracker&lt;/li&gt;
&lt;li&gt;Contact Management&lt;/li&gt;
&lt;li&gt;Planning Application&lt;/li&gt;
&lt;li&gt;Timesheet Application&lt;/li&gt;
&lt;li&gt;DB/SQL Client&lt;/li&gt;
&lt;li&gt;Status Updater/Aggregator (LinkedIn, Twitter and Facebook)&lt;/li&gt;
&lt;li&gt;Online File Explorer (browser-based FTP interface)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I like #3 (Resume) and #9 (Status) because I may be able to tie those into LinkedIn&apos;s RESTful API.&lt;/p&gt;
&lt;p style=&quot;padding-left: 10px&quot;&gt;&lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=n5VGjN3BjL_2f_2bUks_2fY9mR6Q_3d_3d&quot;&gt;Click here to vote for the application you&apos;d like me to develop &amp;raquo; &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Voting ends at noon on Friday (Mountain Time).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; My co-workers had a good suggestion at lunch today: &lt;a href=&quot;http://www.pitchersacrossamerica.com&quot;&gt;pitchersacrossamerica.com&lt;/a&gt;. It seems it&apos;s kinda difficult to find bars that serve pitchers these days (at least in Denver). Create an app that allows people to enter in bars and restaurants that serve pitchers and show them on a map. Seems simple and fun. If enough people like the idea, I&apos;ll restart the survey with this as an option. In the meantime, the current (Wednesday night) numbers are &lt;a href=&quot;http://farm4.static.flickr.com/3169/2572286046_faf8675f72_o.png&quot; title=&quot;Wednesday Evening Survey Results&quot; rel=&quot;lightbox&quot;&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; &lt;a href=&quot;http://farm4.static.flickr.com/3262/2573930525_5e006701f4_o.png&quot; rel=&quot;lightbox&quot;&gt;Here&apos;s the results&lt;/a&gt; as of Thursday night. Only 15.5 more hours to vote!
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 3:&lt;/strong&gt; &lt;a href=&quot;http://farm4.static.flickr.com/3054/2576516036_0cd006f275_o.png&quot; rel=&quot;lightbox&quot; title=&quot;Final Results&quot;&gt;Final Results&lt;/a&gt;. Thanks to everyone who voted! I&apos;m traveling a lot next week (Mountain View followed by Boston), but I&apos;ll try to write an entry on next steps.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/what_s_a_good_ria</guid>
    <title>What&apos;s a good RIA to develop in 20 hours?</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/what_s_a_good_ria</link>
        <pubDate>Mon, 9 Jun 2008 21:56:30 -0600</pubDate>
    <category>Java</category>
    <category>grails</category>
    <category>rails</category>
    <category>gwt</category>
    <category>flex</category>
            <description>&lt;a href=&quot;http://en.oreilly.com/oscon2008/&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/oscon-logo-2008.gif&quot; width=&quot;96&quot; height=&quot;111&quot; alt=&quot;OSCON 2008&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; /&gt;&lt;/a&gt;
In less than two months, I&apos;m making my annual trek to Portland, Oregon to &lt;a href=&quot;http://raibledesigns.com/rd/entry/proposal_accepted_for_oscon_2008&quot;&gt;speak&lt;/a&gt; at &lt;a href=&quot;http://en.oreilly.com/oscon2008/public/content/home&quot;&gt;OSCON&lt;/a&gt;. To prepare for my talk, I&apos;d like to develop the same application with two different combinations: Flex + Rails and GWT + Grails.
&lt;/p&gt;
&lt;p&gt;As luck would have it, I&apos;m having a hard time coming up with a good application to write. I&apos;d like to time-box it so I only spend 10 hours on the backend (for each) and 10 hours on the front-end, for a total of 40 hours for both applications. 
&lt;/p&gt;
&lt;p&gt;
Can you think of any good applications that would warrant a rich front-end and wouldn&apos;t take too long to create? I&apos;d like to put both applications in production and generate enough traffic to be faced with scalability issues.&lt;/p&gt;
&lt;p&gt;Over the next several weeks, I hope to start creating the applications and blog about what I&apos;ve learned along the way. At some point, I hope to post an outline and a rough draft. With your help, I believe this can be an excellent presentation. If the presentation and applications are as good as I hope they&apos;ll be, it&apos;s likely I&apos;ll open source them for everyone to use.&lt;/p&gt;
&lt;p&gt;Thanks in advance for any advice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Thanks for all the great feedback. I&apos;ve posted a &lt;a href=&quot;http://raibledesigns.com/rd/entry/re_what_s_a_good&quot;&gt;survey&lt;/a&gt; to narrow the choices.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/proposal_accepted_for_oscon_2008</guid>
    <title>Proposal accepted for OSCON 2008</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/proposal_accepted_for_oscon_2008</link>
        <pubDate>Mon, 17 Mar 2008 19:21:10 -0600</pubDate>
    <category>Open Source</category>
    <category>grails</category>
    <category>portland</category>
    <category>conference</category>
    <category>travel</category>
    <category>gwt</category>
    <category>oscon</category>
    <category>rails</category>
    <category>flex</category>
            <description>&lt;a href=&quot;http://en.oreilly.com/oscon2008/&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/oscon-logo-2008.gif&quot; width=&quot;96&quot; height=&quot;111&quot; alt=&quot;OSCON 2008&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; /&gt;&lt;/a&gt;
From an e-mail I received earlier this afternoon:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
We are pleased to accept the following proposal for &lt;a href=&quot;http://en.oreilly.com/oscon2008/&quot;&gt;OSCON 2008&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
* Web Frameworks of the Future: Flex, GWT, Grails and Rails
&lt;br/&gt;&lt;br/&gt;
It has been scheduled for 16:30 on 23 Jul 2008.
&lt;/p&gt;
&lt;p&gt;My Abstract:&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;
What if the choices in web framework was reduced to 4? If RIA are the way of the future, it&apos;s possible that these 4 frameworks are the best choices for this development paradigm. This session will explore these frameworks, as well as entertain many other&apos;s opinions on the future of web development.
&lt;br/&gt;&lt;br/&gt;
RESTful backends are easy to create with both Rails and Grails. Ajax frontends are simple to create and maintain with GWT. Flex gives you flash and a pretty UI. If you&apos;re an HTML developer, Rails allows you to quickly develop MVC applications. If you&apos;re a Java Developer, GWT + Grails might be a match made in heaven. This session is designed to help you learn more about each framework and decide which combination is best for your project.
&lt;/p&gt;
&lt;p&gt;I&apos;m really looking forward to learning about GWT and Flex in the coming months. If you have any experience (or opinions) about the abstract above, I&apos;d love to hear it. The louder the better.&lt;/p&gt;
&lt;p&gt;For those who haven&apos;t been, OSCON is one of those truly special conferences. Possible reasons:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;It&apos;s only an hour from my parent&apos;s house
&lt;/li&gt;
&lt;li&gt;It&apos;s &lt;a href=&quot;http://raibledesigns.com/rd/entry/oscon_a_beautiful_time_of&quot;&gt;a beautiful time of year in Portland&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;It&apos;s always the same weekend as the &lt;a href=&quot;http://www.oregonbrewfest.com/&quot;&gt;Oregon Brewers Festival&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;It&apos;s a kickass conference with the greatest diversity of Open Source Committers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;m going for all 4 reasons and even made a reservation to stay at &lt;a href=&quot;http://www.kennedyschool.com/index.php?loc=57&amp;amp;category=Location%20Homepage&quot;&gt;The Kennedy School&lt;/a&gt;. Should be a fun show.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/grails_vs_rails_my_thoughts</guid>
    <title>Grails vs. Rails - My Thoughts</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/grails_vs_rails_my_thoughts</link>
        <pubDate>Fri, 7 Mar 2008 05:12:00 -0700</pubDate>
    <category>Java</category>
    <category>rails</category>
    <category>comparison</category>
    <category>groovy</category>
    <category>webframeworks</category>
    <category>grails</category>
            <description>In a &lt;a href=&quot;http://raibledesigns.com/rd/entry/the_linkedin_journey_continues#comment-1204861719000&quot;&gt;comment&lt;/a&gt;, Jared Peterson asked:
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
I&apos;m curious if you have any thoughts on folks that might be trying to make a decision between Rails and Grails. I like the concept of &quot;Allow Both&quot;, but what if you &quot;have neither&quot;? 
&lt;br/&gt;&lt;br/&gt;
If you were starting a new project, could choose either one, needed to interact with a lot of existing Java code (JRuby on Rails I guess), what would you pick?
&lt;/p&gt;
&lt;p&gt;A friend recently asked me &quot;Can I solicit your honest, unadulterated opinion on Grails?&quot; I think the e-mail I sent him may help Jared&apos;s question.
&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;
I think it&apos;s awesome. IMO, it&apos;s the same thing as AppFuse, but it has
a DSL that&apos;s much simpler to learn and remember. Less code -&gt; faster
productivity. There does seem to be some maturity issues, but I think
it&apos;ll get there. The question is - how fast can Groovy become. It&apos;s
similar to Rails and Ruby in that you start using Grails and you
think &quot;This Groovy thing is kinda cool, I&apos;d like to learn more.&quot; One
of the reasons I really like it is the learning curve for experienced
open source Java Developers is virtually flat. You can learn enough
to be productive in a single day.
&lt;br/&gt;&lt;br/&gt;
That being said, I think there&apos;s also a lot of cool stuff going on
with RIA. IMO, Flex or GWT + Grails would be a really fun set of
tools to develop with. Here&apos;s a excerpt from a write-up I recently
did when analyzing Rails and Grails at LinkedIn (in January):
&lt;br/&gt;
&lt;br/&gt;--------&lt;br/&gt;
&lt;strong&gt;Comparing Rails and Grails&lt;/strong&gt;&lt;br/&gt;

They&apos;re both excellent frameworks. Rails is definitely more mature,
but the environment is a pain to setup (esp. on Windows). Grails is
very easy to setup for Java Developers. Grails needs a lot of
improvement as far as hot deploy and stack traces. It&apos;s probably
Groovy&apos;s fault, but its stack traces are hideous - rarely pointing to
the class and line number in the first few lines.
&lt;br/&gt;&lt;br/&gt;
As for hot deploy, it doesn&apos;t work nearly as well as it does with
Rails. Rails&apos; &quot;script/server&quot; starts WEBrick in a few seconds, while
&quot;grails run-app&quot; can take up to 10 seconds (even on a brand new
application). Even with its warts, Grails is simply awesome. I
really, really enjoy writing Groovy code in IDEA and seeing immediate
changes. I don&apos;t like &quot;test-app&quot; as much as I like Rails&apos;
&quot;test:units&quot; (or even better, &quot;test:uncommitted&quot;). It seems to be
widely realized that Rails has a better testing story.
&lt;br/&gt;&lt;br/&gt;
Rails is immediate, Grails is immediate 70% of the time.
&lt;br/&gt;&lt;br/&gt;
Groovy is extremely easy to learn for Java Developers. Ruby is easy
too learn, and possibly too powerful for OO rookies. Both are fun to
program in and very capable of allowing greater developer
productivity. If you know Hibernate, Spring, SiteMesh and JSP, you
owe it to yourself to look at Grails. If you know these technologies
well, you can learn Grails in less than an hour. You can be
productive in the next hour and have an application running by the
end of the day. That&apos;s not to take anything away from Ruby. I believe
that Rails is an excellent platform as well. It&apos;s pretty cool that
profiling and benchmarking are built into the framework and you can
easily judge how many servers you&apos;ll need to scale.
&lt;br/&gt;&lt;br/&gt;
I used IDEA while developing with both frameworks. IDEA has Rails and
Groovy support available via plugins and they both worked quite well.
The support for Grails was much better than Rails. Grails offers code
completion, Ctrl+click on classes/methods, debugging and starting/
stopping the webapp from your IDE. Rails doesn&apos;t offer much in the
way of Ctrl+clicking on class names/methods or debugging.
&lt;br/&gt;--------&lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;Is there anything that Rails can do that Grails can&apos;t? Not as far as I can tell. I think it really comes down to developer passion and team preference. If you have experienced Java Developers that like the ecosystem and its tools, Grails makes a lot of sense. If you have experienced PHP developers or frustrated J2EE developers, they might enjoy Rails more. One thing that&apos;s very cool about both frameworks - learning one actually teaches you things about the other. They&apos;re so similar in many respects that knowledge is transferable between the two.
&lt;/p&gt;
&lt;p&gt;Of course, this is all just my opinion after working with both frameworks for a few weeks. For anyone who has tried both, what do you think?
&lt;/p&gt;
&lt;p&gt;In closing, here&apos;s an excerpt from a &lt;a href=&quot;http://java.dzone.com/news/farewell-j-jvm#comment-1665&quot;&gt;recent comment&lt;/a&gt; I left on Javalobby:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
Of course, the hard part now is deciding between Django, Rails, Grails and GWT for your web framework. Then again, that&apos;s like having to choose between a Ferrari, Porsche, Lamborghini and a Maserati. No matter which one you choose, it&apos;s unlikely you&apos;ll be disappointed.
&lt;/p&gt;&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/the_linkedin_journey_continues</guid>
    <title>The LinkedIn Journey Continues</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/the_linkedin_journey_continues</link>
        <pubDate>Thu, 6 Mar 2008 08:00:49 -0700</pubDate>
    <category>Java</category>
    <category>grails</category>
    <category>java</category>
    <category>productivity</category>
    <category>rails</category>
    <category>career</category>
    <category>linkedin</category>
    <category>webframeworks</category>
            <description>As you might know, I&apos;ve spent the last several months working for one of the coolest clients ever: &lt;a href=&quot;http://www.linkedin.com&quot;&gt;LinkedIn&lt;/a&gt;. They hired me back in July 2007 and I was &lt;a href=&quot;http://raibledesigns.com/rd/entry/first_day_at_linkedin&quot;&gt;impressed on day one&lt;/a&gt;. I was originally hired to help them evaluate open source Java web frameworks and try to determine if moving from their proprietary one to an open source one would help improve developer productivity.&lt;/p&gt;
&lt;p&gt;After looking at all the options, I recommended we look at Struts 2 and Spring MVC - primarily because they seemed to be the best frameworks for a LinkedIn-type of application. Another Engineer and I prototyped with Struts 2 for about 6 weeks and came up with a prototype that worked quite well. While our mission was successful, we found a &lt;a href=&quot;http://raibledesigns.com/rd/entry/does_struts_2_suck&quot;&gt;couple&lt;/a&gt; &lt;a href=&quot;http://raibledesigns.com/rd/entry/proposed_tomcat_enhancement_add_flag&quot;&gt;issues&lt;/a&gt; with Struts 2 and standard JSP that might actually hurt developer productivity more than it helped.&lt;/p&gt;
&lt;p&gt;Following this project, I worked on the New Homepage Team, which is &lt;a href=&quot;http://blog.linkedin.com/blog/2008/02/the-new-look-of.html&quot;&gt;now visible&lt;/a&gt; to everyone that logs onto LinkedIn. My role was minimal, but it was still a very fun project to work on. You know those widgets in the right panel? I did the initial UI and backend integration for those. All the business logic, Ajax/JavaScript, CSS, and optimization was done by other folks on the team. Shortly after this project went live in November, I started prototyping again with Spring MVC + JSP.&lt;/p&gt;
&lt;p&gt;The reason I was asked to prototype with Spring MVC was because they were using Spring on the backend, Spring MVC in a couple other projects, and a new project was being kicked off that used Grails. Rather than add &lt;em&gt;another&lt;/em&gt; framework (Struts 2) to the mix, they wanted to see if they could suppress any further framework proliferation.&lt;/p&gt;
&lt;p&gt;After a month of prototyping with Spring MVC + JSP, my results weren&apos;t as good as Struts 2. With Struts 2, I was able to use OGNL to do all the things their current JSP implementation allows them to do (call methods with arguments, use statics in EL, etc.). With standard JSP, a lot of this wasn&apos;t possible. If it was - it required writing lots of tag libraries and made it more cumbersome for developers to do certain things. At the end of that project, I determined that using FreeMarker might solve these problems. I also determined that neither Struts 2 nor Spring MVC would solve the ultimate problem of developer productivity. Neither framework would allow developers to go from make-a-change-and-deploy, wait-3-minutes-to-see-change-in-browser to make-a-change, save and wait-15-seconds-to-see-change-in-browser.
&lt;/p&gt;
&lt;p&gt;
I recommended that this be the ultimate goal - to get rid of the deployment cycle and to allow minimal turnaround when deploying modified classes. After that problem was solved, it&apos;s true that moving to an open source web framework would likely provide an easier-to-remember API. However, the problem with moving to a new web framework would be that everything used to construct the existing site would suddenly become legacy code.&lt;/p&gt;
&lt;p&gt;In the end, we concluded that the best solution might be to &lt;em&gt;enhance&lt;/em&gt; the existing framework to be more like the available open source options. This would allow existing applications to keep using their code -- and if we enhance properly -- new applications can use a simpler, less verbose API and a templating framework that&apos;s easier to understand. We can make LinkedIn&apos;s version of JSP more like standard JSP while allowing its powerful EL to remain. We can add support for JSP Tag Libraries and Tag Files.&lt;/p&gt;
&lt;p&gt;One of the benefits of moving to an open source web framework is there&apos;s a community, documentation and books that describe the best (or most common) ways to solve problems with the framework. LinkedIn has this, but it&apos;s all in code and no one seems to have a high-level of confidence that the way that they did it is the &quot;best&quot; way. Developers communicate well, but all the knowledge is stuck in their heads and inboxes - there&apos;s no way for new developers to search this knowledge and figure it out on their own without asking somebody.
&lt;/p&gt;
&lt;p&gt;
By adopting an open source web framework, it&apos;s possible to solve part of this problem, but I think it&apos;s still going to exist - where a few engineers know how to use the framework really well (for the specific application) and the rest don&apos;t. We determined that regardless of open source vs. proprietary framework, what was needed was a set of developers that acted as authorities on how to develop web applications at LinkedIn. A UI Frameworks Team if you will. This would be their only job and they would never get pulled from this to work on projects or complete tasks related to LinkedIn&apos;s products. Some developers mentioned that they&apos;d been asking for this for years, and some folks had even been hired for this. However, the formulation of this group has never happened and it&apos;s obvious (now more than ever) that it&apos;d be awesome to have them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The UI Frameworks Team&lt;/strong&gt;&lt;br/&gt;
At the end of 6 months, it seemed my work was done at LinkedIn. I liked the idea of a UI Frameworks Team and recommended they start it with the authors of the existing web framework. They agreed this was a good idea. A few days later, I was pulled into the CTO&apos;s office and he offered me the job. He offered me the challenge of building this team and told me I could do it remotely (from Denver) and hire my own people to help me with it. I gulped as I realized I&apos;d just been offered the opportunity of a lifetime. I knew that while this might not be the best option for LinkedIn, it certainly was an excellent opportunity for me. I said I&apos;d think about it.&lt;/p&gt;
&lt;p&gt;In the meantime, I was given a project which you might&apos;ve read about. They asked me to &lt;a href=&quot;http://raibledesigns.com/rd/entry/migrating_a_rails_app_to&quot;&gt;migrate a Rails application to Grails&lt;/a&gt; and try to determine if &lt;a href=&quot;http://raibledesigns.com/rd/entry/is_there_room_for_both&quot;&gt;they really needed both frameworks&lt;/a&gt;. I spent 2 weeks coming up to speed on both and flew to Mountain View to deliver my conclusion. Here&apos;s an excerpt from an internal blog post I wrote.&lt;/p&gt;
&lt;div class=&quot;smokey&quot; style=&quot;border: 1px solid silver; background: #eee; padding: 10px; margin-bottom: 10px&quot;&gt;
&lt;p style=&quot;margin-top: 0&quot;&gt;As far as I know, Rails has been used at LinkedIn for well over 6 months and Grails has been used for a similar duration. Both projects that&apos;ve used these technologies have enjoyed extreme success. Both projects have been fun for the developers working on them and both have improved the technologies/frameworks they&apos;re using. &lt;/p&gt;

&lt;p&gt;Here&apos;s an interesting quote about the Rails application:&lt;/p&gt;

&lt;blockquote style=&quot;padding: 0px 10px&quot;&gt;
Another app you might want to look at is BumperSticker, our facebook app. Interestingly we heard through joyent that DHH (the creator of Rails) told them that BumperSticker is the biggest rails app in the world (in terms of page views) - we are closing in on 1 billion monthly page views and we have 1 million unique users per day (about 10 million installs on FB). It&apos;s a little trickier to setup in a dev environment since you need to be running on FB, but the code itself is pretty interesting since we&apos;ve iterated on it a bunch of times and are making extensive use of third party libraries such as memcached.&lt;/blockquote&gt;

&lt;p&gt;This quote loosely translates to &quot;We have some Rails Ninjas on staff and we&apos;ve been quite successful in developing with it and making it scale&quot;.&lt;/p&gt;

&lt;p&gt;Both platforms have allowed developers to iterate quickly and turbo-charge their productivity.&lt;/p&gt;

&lt;p&gt;My Conclusion: &lt;b&gt;&lt;em&gt;Allow Both&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;If you have talented developers that can whip out kick-ass code with either platform, pay them and pay them well. Passion is the most important part of any job. If developers are passionate about the application they&apos;re developing and the language they&apos;re using (notice language is secondary) - they can do great things.&lt;/p&gt;

&lt;p&gt;I know this probably isn&apos;t the answer you wanted to hear, but it&apos;s what I believe. I think both frameworks are very similar. I believe the knowledge you gain from learning one framework is transferable to the other. A lot of the things I learned about Rails worked with Grails. Ruby&apos;s syntax is similar to Groovy&apos;s. &lt;/p&gt;

&lt;p style=&quot;margin-bottom: 0&quot;&gt;There&apos;s a natural synergy between these two frameworks. The hard part is figuring out when to use which one.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;The application that I was asked to port from Rails to Grails? The one that was launched last week - &lt;a href=&quot;http://blog.linkedin.com/blog/2008/02/linkedin-mobile.html&quot;&gt;LinkedIn Mobile&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After doing this research, I stepped up to the plate and accepted the offer to start a UI Frameworks Team and recruited some kick-ass Java Developers I know to be the founding members. Last week, I flew out to Mountain View to do some kickoff meetings and start getting the infrastructure in place so we can document, support and release code like a well-oiled open source project. There&apos;s nothing saying we won&apos;t use an open source web framework as the underlying engine, but I think this should be an excellent chance to see the power of open source governance and development style in a corporate environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Director of Engineering, Core Experience&lt;/strong&gt;&lt;br/&gt;
I should mention one last thing. If you&apos;re an experienced Java Developer/Architect with a passion and deep knowledge of UI development (JavaScript, CSS, HTML), we&apos;ve got a &lt;a href=&quot;http://www.linkedin.com/jobs?viewJob=&amp;amp;jobId=483817&amp;amp;fromSearch=39&amp;amp;sik=1204111006804&quot;&gt;Director of Engineering, Core Experience&lt;/a&gt; position with your name on it. I might even get to interview you if you apply for this job. Furthermore, whoever gets hired will likely work very closely with my team. What&apos;s not to like about that!? &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/david_sachdev_on_web_framework</guid>
    <title>David Sachdev on Web Framework Proliferation</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/david_sachdev_on_web_framework</link>
        <pubDate>Fri, 22 Feb 2008 14:47:44 -0700</pubDate>
    <category>Java</category>
    <category>jsf</category>
    <category>webframeworks</category>
    <category>springmvc</category>
    <category>spring</category>
    <category>grails</category>
    <category>rails</category>
    <category>jruby</category>
            <description>David Sachdev left the following &lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_framework_smackdown_at#comment-1203718076000&quot;&gt;comment&lt;/a&gt; in my post about the &lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_framework_smackdown_at&quot;&gt;Java Web Framework Smackdown at TSSJS in Vegas&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;smokey&quot; style=&quot;padding: 10px; margin-bottom: 10px&quot;&gt;
&lt;p&gt;The number of web frameworks out there is just astonishing, and in alot of ways I think that there is need for some consolidation in some way, shape or form. If you work in the Java world there is a sense of consolidation in the ORM space these days with JPA (the Java Persistence API). Sure if you are working strictly with JPA it is a bit more limiting then working directly with Hibernate, iBatis, or TopLink - but you no longer worry that you have made a critical misstep in your architecture by tying yourself do a particular ORM implementation. Similarly Spring gives you that similar &quot;loosely coupled&quot; feel that if Google&apos;s Guice because appealing to you, you don&apos;t feel like you&apos;ve wasted all your framework foo on Spring. But web frameworks....that&apos;s another story.
&lt;/p&gt;
&lt;p&gt;
I think if you had asked me a few months ago, I would have told you that the industry is promoting JSF (Java Server Faces). Everything from support in the IDEs to the availability of AJAX frameworks...and of course a flexible life cycle that allows for alternate implementations and various code to plug or be weaved in to the life cycle. And that while JSF on its own left quite a bit to be desired, the JBoss Seam project really has filled in the gaps in JSF, and in fact brought Java web development closer in agility to the Rails and Grails of the world that tout quickly built and deployed web applications.
&lt;/p&gt;
&lt;p&gt;
But the thing that you continue to hear is that programming in JSF is painful. And you hear that EVERYONE used to use Struts. And that it is time to move past Struts. And given that, you have to consider Webwork and the merger of Struts2 into that framework - and their claims of rapid development. But you also have to consider Spring WebFlow and how that may help solve your JSF ills given that everyone is building off of the Spring Framework and they have been so good about keeping the framework updated and integrating the best of what is out there while innovating themselves. And then if you are looking at Spring WebFlow, you kinda have to go &quot;Wait, but what about Spring MVC?&quot;
&lt;/p&gt;

&lt;p&gt;
Given its age, you might quickly dismiss Spring MVC until you realize that Grails is build upon it. Grails, that web platform that every java developer is either working with, or intends to work with soon. (Come on, you all have made the Ruby/Rails, Groovy/Grails, JRuby decision in favor of G2, right? I mean all the flexibility of what is out there in the Java world on top of the JVM, with a language that doesn&apos;t suck the life outta you....) And then you have to wonder that if you build upon Spring MVC as well as using Groovy and Grails where appropriate, might you be able to make that killer app in half the time.
&lt;/p&gt;
&lt;p&gt;
But wait, you didn&apos;t think your choices were nearly that simple did you? There is this wonderful software company out in Mountain View that we need to pay attention too. In Google We Trust, right? And even if you don&apos;t worship at the Temple of the G (TOTG) like Sprout, you don&apos;t want to ignore them. And, if you&apos;ve looked at the Google Web Toolkit (GWT) and weren&apos;t at least slightly impressed, I would be surprised. And if you are looking at the GWT, you can&apos;t totally ignore Yahoo&apos;s YUI - maybe with some of the what Prototype, Scriptaculous, or DoJo offer you. And then someone will come over and point out Echo2 to you, and well you have to admit, their demo looks nice. And well, there is Adobe Flex, and OpenLaszlo - I mean after all isn&apos;t Web 2.0 all about Rich Internet Applications. And surely you&apos;ve heard that the performance of Swing is so much better these days and the &quot;power of the modern Java applet&quot;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 5px&quot;&gt;
So at the end of it all, you&apos;ve got yourself alot of R&amp;amp;D to do, and just as you thing you&apos;ve got a good grasp for the offerings out there, new and improved versions are out. And don&apos;t worry, someone else is also busy working on a new and greater web framework that you have to consider.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Wow - that&apos;s quite a mouthful David. &lt;em&gt;Well written!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;P.S. The &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=48454&quot;&gt;Early Bird Deadline for TSSJS is today&lt;/a&gt;.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/book_reviews_getting_started_with</guid>
    <title>Reviews: Getting Started with Grails, Rails for Java Developers and Groovy Recipes</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/book_reviews_getting_started_with</link>
        <pubDate>Sat, 9 Feb 2008 11:34:57 -0700</pubDate>
    <category>Java</category>
    <category>grails</category>
    <category>groovy</category>
    <category>books</category>
    <category>bookreview</category>
    <category>java</category>
    <category>rails</category>
            <description>Two weeks ago, I mentioned a number of books I was hoping to read to &lt;a href=&quot;http://raibledesigns.com/rd/entry/how_do_you_get_up&quot;&gt;get up to speed on Rails and Grails quickly&lt;/a&gt;. Over the last two weeks, I was able to polish off three of these (listed in order of reading):&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/minibooks/grails&quot;&gt;Getting Started with Grails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/fr_r4j&quot;&gt;Rails for Java Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/sdgrvr&quot;&gt;Groovy Recipes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below are short reviews of each book.&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Getting Started with Grails&lt;/strong&gt;&lt;br/&gt;
&lt;a href=&quot;http://www.infoq.com/minibooks/grails&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/gettingstartedwithgrails.jpg&quot; alt=&quot;Getting Started with Grails&quot; width=&quot;127&quot; height=&quot;186&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; /&gt;&lt;/a&gt;
&lt;em&gt;The Good:&lt;/em&gt;
This is the perfect book to learn the basics of Grails quickly. At 133 pages, I was able to read this entire book in one sitting. The first couple chapters are very introductory, but likely necessary for beginners. The good news is you start writing your first Grails application on page 7 (Chapter 3). 
&lt;/p&gt;
&lt;p&gt;
Chapter 4 (Improving the User Experience) is good in that it shows you how to do warning, error and confirmation messages. This is something often overlooked in web frameworks and Rails and its &quot;flash&quot; concept seem to have made it important again. I remember way back in 2003 when I complained about frameworks not allowing messages to live through a redirect - everyone said it was something you didn&apos;t need. Now it&apos;s a standard part of most web frameworks. 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The Bad:&lt;/em&gt; Uses Grails 0.3.1. This is understandable since the book was written in 2006 and published in 2007. Also, it doesn&apos;t cover testing that much (5 pages). If testing is so easy with Groovy and if Grails has Canoo WebTest support built-in, it should be shown IMO.&lt;/p&gt;
&lt;p&gt;

&lt;strong&gt;Rails for Java Developers&lt;/strong&gt;&lt;br/&gt;
&lt;a href=&quot;http://www.pragprog.com/titles/fr_r4j&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/railsforjavadevelopers.jpg&quot; alt=&quot;Rails for Java Developers&quot; width=&quot;120&quot; height=&quot;144&quot; class=&quot;picture&quot; /&gt;&lt;/a&gt;
&lt;em&gt;The Good:&lt;/em&gt;
This was an interesting book for me because it uses AppFuse for many of its Java-based examples. Unfortunately, it uses the Struts 1.x version which is cumbersome and verbose as far as Java web frameworks go. The most impressive part of this book is how Justin and Stu do an excellent job of walking the line and not insulting Java nor developers using it. They provide an easy to understand view of Rails from a Java Developer&apos;s perspective. There&apos;s detailed chapters on ActiveRecord (as it compares to Hibernate), ActiveController (compared to Struts) and ActiveView (compared to JSP). This book has excellent chapters on Testing, Automating the Development Process and Security. 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The Bad:&lt;/em&gt; This book was published over a year ago, so it uses an older version of Rails. This means some commands don&apos;t work if you&apos;re using Rails 2.0. It&apos;s also a little light on Ruby, so I didn&apos;t feel I learned as much about the language as I was hoping to. That&apos;s understandable as it&apos;s more of a Rails book than a Ruby book. 
&lt;/p&gt;
&lt;p&gt;

&lt;strong&gt;Groovy Recipes&lt;/strong&gt; (Beta from Jan 3, 2008)&lt;br/&gt;
&lt;a href=&quot;http://www.pragprog.com/titles/sdgrvr&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/groovyrecipes-120x144.jpg&quot; alt=&quot;Groovy Recipes&quot; width=&quot;120&quot; height=&quot;144&quot; class=&quot;picture&quot; /&gt;&lt;/a&gt;
&lt;em&gt;The Good:&lt;/em&gt;
I really like the style of this book and that it shows you how to get things done quickly with code samples. It&apos;s very no-nonsense in the fact that it contains a lot of code and howtos. I really like Scott&apos;s writing style and found this book the easiest to read of the three. This may have something to do with my eagerness to learn Groovy more than anything. The most refreshing part about this book is how up-to-date it is. Because it&apos;s a Beta, it seems to contain the most up-to-date information on Groovy and Grails. After reading Getting Started with Grails and working with it for a couple weeks, the first Grails chapter seemed a little basic - but that&apos;s likely because I&apos;ve figured out how to mix all those recipes already. The Grails and Web Services chapter definitely has some interesting content, but I&apos;ve rarely had a need to implement these recipes in a real-world environment. I&apos;d rather see recipes on testing the UI (with the WebTest plugin) and how to use GWT and Flex with Grails. If SOUIs are the way of the feature, this is a must.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The Bad:&lt;/em&gt; Not much information on testing with GroovyTestCase, mock objects or implementing Security. If one of Groovy&apos;s sweet spots is testing, why isn&apos;t there more coverage on this topic? The Java and Groovy integration chapter is especially good, but there&apos;s very limited information on Ant and Maven. It&apos;s likely the websites provide sufficient documentation, but the Maven section only fills 5 lines on an otherwise blank page. The biggest problem I have with this book is I really like the recipes writing style and would love to see more tips and tricks. At 250 pages, I was able to finish this book with pleasure in a few days.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What&apos;s Next?&lt;/strong&gt;&lt;br/&gt;
Now I&apos;m reading JRuby on Rails (Apress) and Programming Groovy (Pragmatic Programmers). Following that, I&apos;ll be perusing dead-tree versions of Struts 2 Web 2.0 Projects (Apress), Prototype and script.aculo.us (Pragmatics) and Laszlo in Action (Manning). If any publishers want to send me books on GWT and Flex, I&apos;d be happy to add them to my list. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/yui_grid_css_and_rails</guid>
    <title>YUI Grid CSS and Rails Performance</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/yui_grid_css_and_rails</link>
        <pubDate>Sat, 9 Feb 2008 08:14:18 -0700</pubDate>
    <category>The Web</category>
    <category>yui</category>
    <category>css</category>
    <category>rails</category>
    <category>performance</category>
    <category>cssframework</category>
    <category>ruby</category>
            <description>From &lt;a href=&quot;http://redmonk.com/sogrady/2008/02/07/links-for-2008-02-08/&quot;&gt;Stephen O&apos;Grady&lt;/a&gt;, I learned a couple interesting tidbits yesterday.&lt;/p&gt;
&lt;p&gt;The first is Jeremy Zawodny talking about Yahoo&apos;s new Grid Builder in 
&lt;a href=&quot;http://jeremy.zawodny.com/blog/archives/009883.html&quot;&gt;YUI Grid CSS and Grid Builder Kick Ass!&lt;/a&gt; The last time I looked at YUI Grid CSS (that&apos;s a mouthful) was almost &lt;a href=&quot;http://raibledesigns.com/rd/entry/yahoo_s_grids_css&quot;&gt;2 years ago&lt;/a&gt;, when it first came out. It&apos;s obvious that this library is better supported than Mike Stenhouse&apos;s &lt;a href=&quot;http://www.contentwithstyle.co.uk/Articles/17/a-css-framework&quot;&gt;CSS Framework&lt;/a&gt;. Maybe it&apos;s time to switch in AppFuse? Anyone know of themes available for Grid CSS?
&lt;/p&gt;
&lt;p&gt;The second item is Charlie Savage&apos;s entry titled
&lt;a href=&quot;http://cfis.savagexi.com/articles/2008/02/02/must-read-rails-performance-article&quot;&gt;Must Read Rails Performance Article&lt;/a&gt;:&lt;/li&gt;
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
Using a patched version of ruby and &lt;a href=&quot;http://ruby-prof.rubyforge.org/&quot;&gt;ruby-prof&lt;/a&gt;, Alex was able to more than double performance  (with hints of more to come) and reduced memory consumption by 75%, or 750MB (yes - that is Megabytes). Alex does a wonderful job of documenting his approach with a series of blog posts &lt;a href=&quot;http://blog.pluron.com/2008/01/guerrillas-way.html&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://blog.pluron.com/2008/01/ruby-on-rails-i.html&quot;&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;This reminds me of &lt;a href=&quot;http://java.dzone.com/news/don-brown-fixing-maven-2&quot;&gt;Don Brown&apos;s recent work on Maven&lt;/a&gt;. This is how open source is supposed to work - instead of complaining about the problems, fix them. In both Rails&apos; and Maven 2&apos;s cases - it&apos;s somewhat surprising these issues weren&apos;t fixed earlier. Kudos to Alex Dymo and Don Brown for stepping up to the plate. Well done gents.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/grails_1_0_and_jruby</guid>
    <title>Grails 1.0 and JRuby on Rails on WebSphere</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/grails_1_0_and_jruby</link>
        <pubDate>Tue, 5 Feb 2008 23:32:12 -0700</pubDate>
    <category>Java</category>
    <category>websphere</category>
    <category>jruby</category>
    <category>grails</category>
    <category>rails</category>
            <description>&lt;img src=&quot;//static.raibledesigns.com/repository/images/grails-or-rails.gif&quot; width=&quot;150&quot; height=&quot;115&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; title=&quot;image courtesy of mvn install (http://mvninstall.com/2008/01/31/raibles-book-list-getting-up-to-speed-on-rails-and-grails-quickly)&quot; /&gt;

A couple of interesting things happened today that relate to my &lt;a href=&quot;http://raibledesigns.com/rd/entry/migrating_a_rails_app_to&quot;&gt;Grails vs. Rails&lt;/a&gt; quest for knowledge. 
&lt;/p&gt;
&lt;p&gt;
The first is that &lt;a href=&quot;http://www.infoq.com/news/2008/02/grails-1.0-released&quot;&gt;Grails 1.0 was released&lt;/a&gt;. This was apparently a huge event as it swamped Codehaus&apos; servers for a couple hours. This morning, it was pretty cool to shake &lt;a href=&quot;http://graemerocher.blogspot.com/&quot;&gt;Graeme&apos;s&lt;/a&gt; hand and congratulate him on the release. I also got to meet &lt;a href=&quot;http://javajeff.blogspot.com/&quot;&gt;Jeff Brown&lt;/a&gt; for the first time. Who needs to go to a &lt;a href=&quot;http://groovygrails.com/gg/2gexperience&quot;&gt;conference&lt;/a&gt; when you get to talk to these guys at work? &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;Secondly, I found an article by Ryan Shillington that shows how to &lt;a href=&quot;http://www.ibm.com/developerworks/websphere/techjournal/0801_shillington/0801_shillington.html&quot;&gt;deploy a Rails application to WebSphere&lt;/a&gt;. To me Rails + WebSphere seems like the last thing a Rails advocate would want - but who knows. In my experience, most developers that use WebSphere don&apos;t do it by choice.
&lt;/p&gt;
&lt;p&gt;For companies that have invested a lot of time and money into the JVM as a platform, it seems like Grails is the clear winner over Rails. However, the line gets blurry when you start talking about JRuby. I think JRuby will get there, but I don&apos;t believe it&apos;s there yet. If you look at the two major JRuby on Rails success stories (from &lt;a href=&quot;http://www.infoq.com/news/2007/11/oracle-mix-jruby-experiences&quot;&gt;Oracle&lt;/a&gt; and &lt;a href=&quot;http://blog.igorminar.com/2008/01/jruby-on-rails-rewrite-of.html&quot;&gt;Sun&lt;/a&gt;), they&apos;ve had to fix performance issues as part of their projects. With big companies investing in the platform, it&apos;s highly likely performance will be fixed in the near future. I believe both the Groovy and JRuby teams have said performance enhancements are their top priority for their next releases. 
&lt;/p&gt;
&lt;p&gt;I think the biggest news related to performance of dynamic languages on the JVM is the new &lt;a href=&quot;http://openjdk.java.net/projects/mlvm/&quot;&gt;Da Vinci Machine project&lt;/a&gt;.&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself.
&lt;/p&gt;
&lt;p&gt;
Dynamic languages on the JVM seem to have a very bright future.&lt;/p&gt;&lt;p&gt;I got involved with Struts and Spring just before their 1.0 releases. Is it simply a coincidence that I happened to start looking into Grails right before its 1.0 release?</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/groovy_rails_with_components_ria</guid>
    <title>Groovy, Rails needs Components, RIA Frameworks compared and faster WebTests</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/groovy_rails_with_components_ria</link>
        <pubDate>Tue, 5 Feb 2008 00:30:34 -0700</pubDate>
    <category>Java</category>
    <category>rails</category>
    <category>webtest</category>
    <category>webframeworks</category>
    <category>canoo</category>
    <category>groovy</category>
            <description>Here&apos;s some interesting snippets I found while reading blogs today:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;em&gt;Stop writing plain old Java code. Groovy obsoletes plain old Java. We ought to just say &quot;Java 7 = Groovy&quot; and move on.&lt;/em&gt; -- &lt;a href=&quot;http://relevancellc.com/2008/2/4/layering-and-platform-choice&quot;&gt;Stuart Halloway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;So far my experience is that I love the Ruby language and don&apos;t want to go back to doing Java except when/if I need to to pay the bills. But Rails I&apos;m not as sold on. Mind you I&apos;m not here to bash on Rails, there are some great things there and other people have done a fine job of praising them. But there are some things I definitely miss from Tapestry, and the most significant one is components.&lt;/em&gt; -- &lt;a href=&quot;http://mysterycoder.blogspot.com/2008/02/rails-components-i-do-not-think-that.html&quot;&gt;MysteryCoder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;If you&apos;re looking for maximum control over presentation and the best possible appearance for the finished product, I would say Flex is probably the way to go. If you&apos;re a Java developer using Java on the server side, or you just can&apos;t stand the thought of having your app run in the Flash player and would prefer JavaScript, GWT is probably going to work out very well for you. Open Laszlo is going to offer a great deal of platform versatility, but at the expense of some polish and features available in the other two frameworks.&lt;/em&gt; - Kevin Whinnery in &lt;a href=&quot;http://www.sys-con.com/read/489336_1.htm&quot;&gt;Three RIA Platforms Compared: Adobe Flex, Google Web Toolkit, and OpenLaszlo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;A new experimental feature of WebTest allows to specify the number of threads that should be used for the tests what can bring enormous speed improvements without modification of the tests.&lt;/em&gt; -- &lt;a href=&quot;http://mguillem.wordpress.com/2008/02/04/boost-your-webtests-50-faster-or-more/&quot;&gt;Marc Guillemot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To summarize: use Groovy over Java, Rails needs components, Flex is the best RIA framework and WebTest keeps getting better. These aren&apos;t my words, but I don&apos;t see much fault in them either.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/how_do_you_get_up</guid>
    <title>How do you get up to speed on Rails and Grails quickly?</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/how_do_you_get_up</link>
        <pubDate>Thu, 31 Jan 2008 11:29:19 -0700</pubDate>
    <category>Java</category>
    <category>grails</category>
    <category>ruby</category>
    <category>jruby</category>
    <category>rails</category>
            <description>What&apos;s the best way to learn Rails and Grails and satisfy one of my New Year&apos;s Resolutions (read more) at the same time? Books:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/minibooks/grails&quot;&gt;Getting Started with Grails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/fr_r4j&quot;&gt;Rails for Java Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.apress.com/book/view/1590598814&quot;&gt;Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/sdgrvr&quot;&gt;Groovy Recipes: Greasing the Wheels of Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pragprog.com/titles/vslg&quot;&gt;Programming Groovy: Dynamic Productivity for the Java Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.manning.com/koenig/&quot;&gt;Groovy in Action&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.pragprog.com/titles/sdgrvr&quot; title=&quot;Why highlight this book? Because it has the coolest cover!&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/groovyrecipes-cover.jpg&quot; width=&quot;75&quot; height=&quot;90&quot; class=&quot;picture&quot; /&gt;&lt;/a&gt;
Thanks to connections with publishers, I was able to get PDFs of most of these for free. The only ones I paid for were the beta books (Groovy Recipes and Programming Groovy) from the Pragmatic Programmers. I doubt I&apos;ll read them all, but I&apos;ve had fun so far.&lt;/p&gt;
&lt;p&gt;I polished off Getting Started with Grails in a few hours. I expect to finish Rails for Java Developers this week. I used to hate reading PDFs, but I&apos;ve enjoyed reading these books. A &lt;a href=&quot;http://raibledesigns.com/rd/entry/life_with_a_30_monitor&quot;&gt;30&quot; monitor&lt;/a&gt; might have something to do with it.
&lt;/p&gt;
&lt;p&gt;After honing my Grails and Rails knowledge, I hope to become a GWT and Flex Ninja. For those GWT and Flex experts out there, what are the best books for those technologies? By &quot;best&quot;, I mean the most advanced and up-to-date.</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/is_there_room_for_both</guid>
    <title>Is there room for both Rails and Grails in a company?</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/is_there_room_for_both</link>
        <pubDate>Wed, 30 Jan 2008 11:48:14 -0700</pubDate>
    <category>Java</category>
    <category>comparison</category>
    <category>groovy</category>
    <category>rails</category>
    <category>grails</category>
    <category>ruby</category>
            <description>For the last week, I&apos;ve been knee deep &lt;a href=&quot;http://raibledesigns.com/rd/entry/migrating_a_rails_app_to&quot;&gt;learning more about Rails and Grails&lt;/a&gt;. The reason is because I think developers (and companies) are going to have a hard time deciding which framework is best for them. The real question is: &lt;strong&gt;do they both do the same thing or are their different applications for each&lt;/strong&gt;? Is &quot;Grails vs. JRuby on Rails&quot; a &quot;Struts 2 vs. Spring MVC vs. Stripes&quot; argument - where they&apos;re all so similar it probably doesn&apos;t &lt;em&gt;really&lt;/em&gt; matter which one you choose?

&lt;/p&gt;
&lt;blockquote&gt;
&lt;em&gt;Of course, the Stripes folks will object, but I really don&apos;t think it&apos;s &lt;em&gt;that&lt;/em&gt; much better than Spring MVC 2.5 or Struts 2.1. Sorry guys. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;&lt;/em&gt;
&lt;/blockquote&gt;
&lt;p&gt;If it is a Spring MVC vs. Struts 2 type of argument, then it seems to make sense for a company to standardize on one -- don&apos;t you agree? Does it make sense to allow both frameworks in a company if they&apos;re so similar? 
&lt;/p&gt;
&lt;p&gt;
Google has had much success in &lt;a href=&quot;http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html&quot;&gt;restricting its allowed programming languages to C++, Java, Python, and JavaScript&lt;/a&gt;. Shouldn&apos;t other companies do something similar? It seems like a good idea to restrict allowed web frameworks to a few as well. For companies with successful Java infrastructures, it seems logic to allow one Java-based web framework and Rails or Grails for getting things done as fast as possible.&lt;/p&gt;
&lt;p&gt;Here&apos;s the sticking point: Ask any Rails developers and they&apos;ll say Rails wins hands down. Ask any Grails developers and they&apos;ll say Grails is the easy choice because it builds on top of Java&apos;s strong open source projects. Blah, blah, blah - where&apos;s the objective voice that&apos;s identified the &quot;sweet spot&quot; for each?&lt;/p&gt;
&lt;p&gt;The Relevance guys, particularly Stuart Halloway, has a post about &lt;a href=&quot;http://relevancellc.com/2008/1/11/how-to-pick-a-platform&quot;&gt;How to pick a platform&lt;/a&gt;. The logic in this post seems to imply that both frameworks do solve the same problem - just in different ways. Stu seems to recommend Rails for most applications, because Ruby is a better language. He says Grails &lt;em&gt;might&lt;/em&gt; win if you have &quot;an established team of Spring ninjas&quot;.&lt;/p&gt;
&lt;p&gt;I know Stu and believe he does know his stuff (in both Java and Ruby). So is this the definitive guide on which framework to choose? If you have a staff full of Java developers, they should start learning/using Rails rather than doing the easier transition to Groovy, which they pretty much already know? &lt;/p&gt;
&lt;p&gt;I don&apos;t know what the answer is, but that&apos;s what everyone seems to be saying. The problems is, the authorities on this matter (Rails vs. Grails) are often &quot;head honchos&quot; in companies that have a vested interest in seeing their respective framework/platform succeed. Since the Relevance team employs some Grails developers, it seems they&apos;re less biased. But who knows. 
&lt;/p&gt;
&lt;p&gt;
Is Rails &lt;em&gt;really&lt;/em&gt; head and shoulders better than Grails? I don&apos;t think so, but I&apos;ve only been programming with both for a week. &lt;/p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/migrating_a_rails_app_to</guid>
    <title>Migrating a Rails app to Grails</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/migrating_a_rails_app_to</link>
        <pubDate>Tue, 22 Jan 2008 09:37:49 -0700</pubDate>
    <category>Java</category>
    <category>grails</category>
    <category>webframeworks</category>
    <category>rails</category>
            <description>There&apos;s an interesting trend I&apos;ve seen happening at companies over the last year. More and more, they&apos;re experimenting with Rails and/or Grails for both prototyping and real applications. I think this is an excellent use for these frameworks as they both are very productive. The reasons for their productivity is simple: &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=35538&quot;&gt;zero turnaround&lt;/a&gt; and less code.&lt;/p&gt;
&lt;p&gt;For a Java-based company that&apos;s built their bread and butter applications on Java and been successful with it, both frameworks can be disruptive. Bread and butter applications tend to be large and somewhat difficult to maintain. In my experience, the biggest maintenance headache is &lt;em&gt;not&lt;/em&gt; writing code or fixing bugs, it&apos;s the turnaround time required to make changes, run tests and build the application to test in your browser. Since Rails and Grails eliminate the turnaround, it&apos;s only natural for developers at companies with a lengthy build process to love their increased productivity.
&lt;/p&gt;
&lt;p&gt;Over the next couple weeks, I&apos;m going to do some experimenting with porting a Rails application to Grails. Why? Because I think companies are going to have a difficult time choosing between these two frameworks for rapid prototyping and (possible) production deployments. While both frameworks are great for prototyping, the last thing most developers want to do is throw away the prototype and develop it with something else. They want to continue to enhance the prototype and eventually put it into production. With Rails and Grails (and many others), it&apos;s possible to build the real application in a matter of weeks, so why shouldn&apos;t it be put into production?&lt;/p&gt;
&lt;p&gt;For most Java-based companies, putting a Rails application into production is unfamiliar territory. However, a Grails application is just a WAR, so they can continue to use all the Java infrastructure they know and love. So for companies with an established, tuned and successful JVM infrastructure, does it really make sense to use Rails over Grails? The only thing I can think of is language reasons - there&apos;s a lot of Ruby fanatics out there.&lt;/p&gt;
&lt;p&gt;So again, the purpose of my experiment is simple: to see if a Grails app can do everything a Rails app can. As for language features and &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=48180&quot;&gt;scalability&lt;/a&gt;, I&apos;m not really concerned with that right now. I&apos;m not looking to prove that either framework should be used for all web applications - just certain types.&lt;/p&gt;
&lt;p&gt;
Has anyone out there ported a Rails application to Grails? If so, are there any gotchas I should watch out for?
&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I realize that Rails can be deployed on the JVM with JRuby. However, I think many companies have existing Java-based tools (logging, JMX, Spring backends, etc.) that more easily integrate with Grails than Rails. I could be wrong.&lt;/p&gt;
&lt;p&gt;</description>          </item>
    <item>
    <guid isPermaLink="true">https://raibledesigns.com/rd/entry/appfuse_vs_grails_vs_rails</guid>
    <title>AppFuse vs. Grails vs. Rails</title>
    <dc:creator>Matt Raible</dc:creator>
    <link>https://raibledesigns.com/rd/entry/appfuse_vs_grails_vs_rails</link>
        <pubDate>Wed, 8 Aug 2007 10:22:34 -0600</pubDate>
    <category>Java</category>
    <category>rails</category>
    <category>grails</category>
    <category>appfuse</category>
            <description>In the comments of my &lt;a href=&quot;http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework&quot;&gt;Choosing a JVM Web Framework&lt;/a&gt;, Graeme Rocher &lt;a href=&quot;http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework#comment15&quot;&gt;writes&lt;/a&gt;:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
no offense Matt, but I fear you are a grossly inappropriate person to be writing such a study given your past history of claiming frameworks like &lt;a href=&quot;http://raibledesigns.com/rd/entry/appfuse_and_groovy_grails&quot;&gt;Grails are competitors to AppFuse&lt;/a&gt;. Any such study will come laced with doubts over its honesty and I&apos;m sure this doesn&apos;t just apply to Grails.&lt;/p&gt;
&lt;p&gt;In the post Graeme linked to, I said:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
I think Grails and AppFuse are more likely competitors rather than
compatible.  Grails uses Spring, Spring MVC and Hibernate
under-the-covers, whereas AppFuse uses the raw frameworks.  Of course,
it would be cool to allow different classes w/in AppFuse to be written
in Groovy or JRuby.  At this point, I think it&apos;s probably better for
users to choose one or the other.
&lt;/p&gt;
&lt;p&gt;Since writing that post a year ago, I&apos;ve changed my opinion about AppFuse being competitors with Grails or Rails. Why? Because they&apos;re different languages. I don&apos;t think you should choose a web development stack first. I think you should choose your language first. For those that choose raw Java, I think AppFuse provides a good solution. To be more explicit, here&apos;s a private conversation that &lt;a href=&quot;http://jroller.com/dlwhitehurst&quot;&gt;David Whitehurst&lt;/a&gt; (author of The AppFuse Primer) and I exchanged.&lt;/p&gt;
&lt;p class=&quot;smokey&quot; style=&quot;padding-right: 10px&quot;&gt;
&lt;em&gt;
&lt;strong&gt;David:&lt;/strong&gt; Have you been looking at Ruby on Rails any?  And, if so, I&apos;m sure you&apos;re as impressed by those who command the language as I am.  But, I think the J2EE web application is not dead yet.  Do you think any comparison of the complexity of AppFuse vs. Rails should be mentioned in the book?&lt;/em&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;Matt:&lt;/strong&gt; I&apos;m highly aware of Rails, have attended talks and tutorials on it,
even bought books about it - but I&apos;ve never written an app, done a
tutorial or used it in the real-world. I&apos;m afraid of it. I&apos;m almost
certain I&apos;d like it, and I&apos;d likely like Grails as well. However, the
reason I stick with pure Java is because that&apos;s where my clients&apos; demand is and hence the consulting
dollars for me. 
&lt;br/&gt;&lt;br/&gt;
It&apos;s probably also possible to create AppFuse for both Rails and
Grails. I believe Rails&apos; Streamlined in much like AppFuse. I like to
think of AppFuse as language agnostic - it&apos;s always been designed to
eliminate ramp up time. While Rails and Grails simplify the
programming API and make it possible to develop code with less lines
of code, it&apos;d be nice to have user management, file upload and other
things like AppFuse has. When I start using these frameworks, it&apos;s
likely I&apos;ll develop some sort of features like AppFuse has and use
them on projects. Of course, if they already have all the features of AppFuse via plugins, I wouldn&apos;t reinvent the wheel - I&apos;m simply use what&apos;s already there and be happy about it.
&lt;br/&gt;&lt;br/&gt;
I don&apos;t know if it&apos;s relevant to mention Rails, but it probably
doesn&apos;t hurt. There&apos;s no reason to ignore the competition if they&apos;re
indeed competition. I don&apos;t see them as competition, and I almost
don&apos;t see Grails as competition either. AppFuse (in its current state)
is for developers that&apos;ve chosen to use the language and frameworks
that AppFuse supports. It&apos;s not trying to solve everyone&apos;s problems -
it&apos;s merely trying to simplify things for those using the frameworks
it supports.
&lt;br/&gt;&lt;br/&gt;
There&apos;s nothing saying that AppFuse can&apos;t have a Rails or Grails
version in the future. For me, it&apos;ll happen if I start developing
applications using these frameworks and see the integration needs like
I saw with the Java frameworks. The good news is most of these
frameworks have done the integration work, so it&apos;s really just a
matter of creating features or using plugins.&lt;br/&gt;&lt;br/&gt;
&lt;em&gt;&lt;strong&gt;David:&lt;/strong&gt; I keep getting these &quot;dream-squasher&quot; friends of mine showing me Rails, Grails, and how wonderful Ruby is.  It&apos;s impressive, but I&apos;m not convinced that big business is ready to adopt it any time soon.&lt;/em&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;Matt:&lt;/strong&gt;
As a Java programmer, I think you&apos;d be a fool to ignore Rails or
Grails and not at least be familiar with them. There&apos;s no reason to
discount technology until you&apos;ve used it on a real-world project - at
least 6 months or longer - IMO.
&lt;br/&gt;&lt;br/&gt;
Just because you&apos;re productive in Ruby and like it - that doesn&apos;t make
you a bad Java programmer.
&lt;/p&gt;
&lt;p&gt;I hope this clears up any confusion on how I feel towards Rails or Grails. I would welcome the opportunity to use them on a project. If I was starting a products-based company, I certainly would give them a shot in the prototyping phase. However, I&apos;m a consultant that makes money from clients hiring me to explain/do what I know best. At the current time, that happens to be open source Java frameworks. 
&lt;/p&gt;
&lt;p&gt;
I do plan on learning a plethora of other frameworks, in other languages, I just haven&apos;t had the time yet. When I do, I hope that I can somehow become proficient enough to help companies adopt them as well. However, to build up that experience and expertise will likely take years. I think this is how lots of companies feel. Can you blame them for not &quot;jumping ship&quot; on their current skills and knowledge?
&lt;/p&gt;
&lt;p&gt;Of course, then you have the &lt;a href=&quot;http://relevancellc.com/&quot;&gt;Relevance&lt;/a&gt; guys who seem to be doing exactly what I hope to be doing in several years from now. Not only do they specialize in Java and its frameworks, but they also do consulting and training around &lt;a href=&quot;http://relevancellc.com/training&quot;&gt;Rails, Grails and Ajax&lt;/a&gt;. I can&apos;t help but admire them tremendously.</description>          </item>
  </channel>
</rss>