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

<channel>
	<title>AdaRuby &#187; Praises</title>
	<atom:link href="http://www.adaruby.com/category/praises/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adaruby.com</link>
	<description>Rich Dynamic Applications with Ruby on Rails</description>
	<lastBuildDate>Thu, 04 Aug 2011 04:42:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!</title>
		<link>http://www.adaruby.com/2008/01/17/ruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch</link>
		<comments>http://www.adaruby.com/2008/01/17/ruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 11:25:37 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[286]]></category>
		<category><![CDATA[291]]></category>
		<category><![CDATA[299]]></category>
		<category><![CDATA[309]]></category>
		<category><![CDATA[311]]></category>
		<category><![CDATA[322]]></category>
		<category><![CDATA[325]]></category>
		<category><![CDATA[327]]></category>
		<category><![CDATA[330]]></category>
		<category><![CDATA[331]]></category>
		<category><![CDATA[332]]></category>
		<category><![CDATA[333]]></category>
		<category><![CDATA[350]]></category>
		<category><![CDATA[351]]></category>
		<category><![CDATA[353]]></category>
		<category><![CDATA[358]]></category>
		<category><![CDATA[366]]></category>
		<category><![CDATA[368]]></category>

		<guid isPermaLink="false">http://adaruby.com/2008/01/17/ruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch/</guid>
		<description><![CDATA[You know what, I really wanna learn this whole JavaEE-related thingy&#8230;&#8230; For some reason it&#8217;s unavoidable&#8230;&#8230;. it&#8217;s bound to be touched by me&#8230;&#8230; You see, the trend is going RIA. MVC is going away. AJAX ain&#8217;t gonna compete. At least not fully. And will lose in many ways in respect to something like Adobe&#8217;s Flex. [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F17%2Fruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F17%2Fruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" alt=" Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" /><br />
			</a>
		</div>
<p>You know what, I really wanna learn this whole <a href="http://java.sun.com/javaee/" rel="nofollow" >JavaEE</a>-related thingy&#8230;&#8230;</p>
<p>For some reason it&#8217;s unavoidable&#8230;&#8230;. it&#8217;s bound to be touched by me&#8230;&#8230;</p>
<p><a href="http://www.flickr.com/photos/ckinskey/2197267694/" rel="nofollow"  title="too many things at once!"><img src="http://farm3.static.flickr.com/2059/2197267694_57c9a653b2.jpg?v=0" title="Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" alt=" Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" /></a></p>
<p>You see, the trend is going <a href="http://en.wikipedia.org/wiki/Rich_Internet_application" rel="nofollow" >RIA</a>. <a href="http://en.wikipedia.org/wiki/Model-view-controller" rel="nofollow" >MVC</a> is going away. <a href="http://en.wikipedia.org/wiki/AJAX" rel="nofollow" >AJAX</a> ain&#8217;t gonna compete. At least not fully. And will lose in many ways in respect to something like <a href="http://www.adobe.com/products/flex/" rel="nofollow" >Adobe&#8217;s Flex</a>. (Unfortunately there&#8217;s not much competitor better than Flex, and fortunately it&#8217;d probably be &#8220;standard&#8221; in the near future). Esp. with <a href="http://www.readwriteweb.com/archives/adobe_takes_fle.php" rel="nofollow" >Flex going open source</a>. Flex will need a backend, since it&#8217;s not a server-side product. There is <a href="http://www.adobe.com/products/livecycle/dataservices/" rel="nofollow" >Flex LiveCycle Data Services ES</a> (what a name!!) by Adobe. There&#8217;s also <a href="http://labs.adobe.com/technologies/blazeds/" rel="nofollow" >BlazeDS</a> open source. There&#8217;s also the excellent <a href="http://www.themidnightcoders.com/weborb/" rel="nofollow" >WebORB</a>, which is <a href="http://www.themidnightcoders.com/weborb/rubyonrails/index.htm" rel="nofollow" >free <strong>and open source</strong> for Rails</a> and <a href="http://www.themidnightcoders.com/weborb/php/index.htm" rel="nofollow" >PHP</a>. Oh yeah, it&#8217;s free for Rails! <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" class='wp-smiley' title="Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" /> </p>
<p>Sure you can go with plain Rails, but it&#8217;s maybe too much work, when WebORB already does it for you.</p>
<p>This is wonderful, but it only gives you <a href="http://en.wikipedia.org/wiki/Remote_procedure_call" rel="nofollow" >plain RPC</a>. It&#8217;s traditional (legacy?) synchronous RPC camouflaged as &#8220;asynchronous&#8221;.</p>
<p>Real asynchronous power comes from <a href="http://en.wikipedia.org/wiki/Message_queue" rel="nofollow" >Messaging</a>. And the buzzword is now <a href="http://en.wikipedia.org/wiki/Comet_%28programming%29" rel="nofollow" >Comet</a>. The latest <a href="http://www.mortbay.org/" rel="nofollow" >Jetty</a> already <a href="http://ajaxian.com/archives/jetty-servlet-container-implements-comet" rel="nofollow" >supports Comet technique</a>, which can continuously &#8220;streams&#8221; asynchronous messages and data <strong>to</strong> (instead of being pulled) your client-side web UI&#8230; (that might just be a Flex app)</p>
<p>Simple messaging is fine, but the real power of messaging comes from features that had existed for a long time it&#8217;s actually legacy, such as publish/subcribe, message routing, and reliable delivery and timeouts. Fortunately, we have <a href="http://activemq.apache.org/" rel="nofollow" >ActiveMQ</a>, and yes we have <a href="http://code.google.com/p/activemessaging/wiki/ActiveMessaging" rel="nofollow" >activemessaging library for Ruby and Rails plugin</a>.</p>
<p>Unfortunately messaging servers have different protocols. Although there are &#8220;universal&#8221; protocols like <a href="http://stomp.codehaus.org/Protocol" rel="nofollow" >Stomp </a>and <a href="http://www.iona.com/opensource/amqp/" rel="nofollow" >AMQP</a> (backed by <a href="http://www.rabbitmq.com/" rel="nofollow" >RabbitMQ</a>), you can also use an <a href="http://en.wikipedia.org/wiki/Enterprise_Service_Bus" rel="nofollow"  title="Enterprise service bus">ESB</a> like <a href="http://mule.mulesource.org/" rel="nofollow" >Mule</a> or <a href="https://open-esb.dev.java.net/" rel="nofollow" >OpenESB</a> or <a href="http://servicemix.apache.org/" rel="nofollow" >Apache ServiceMix</a> if your component needs to talk to components with a different protocol. Oh yes they&#8217;re from the Java world.</p>
<p>Even as we&#8217;re embracing THE <a href="http://wiki.rubyonrails.org/rails/pages/ActiveRecord" rel="nofollow" >ActiveRecord</a>, the Java community coming up with an also-cool solution called <a href="http://java.sun.com/javaee/overview/faq/persistence.jsp" rel="nofollow"  title="Java Persistence API">JPA</a>, supported by all popular Java ORM tools such as <a href="http://www.hibernate.org/" rel="nofollow" >Hibernate</a> and <a href="http://www.oracle.com/technology/products/ias/toplink/index.html" rel="nofollow" >TopLink</a>; Microsoft strikes back with the invulnerable <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx" rel="nofollow" >LINQ</a>.</p>
<p>Yet we still have too many queued messages and database records to handle, we need to know how to make use of them. <a href="http://en.wikipedia.org/wiki/Event_Driven_Architecture" rel="nofollow"  title="Event Driven Architecture">EDA</a> comes to the rescue, like what <a href="http://esper.codehaus.org/" rel="nofollow" >Esper</a> does. And of course <a href="http://en.wikipedia.org/wiki/Business_Intelligence" rel="nofollow"  title="Business Intelligence">BI</a> and reporting tools such as <a href="http://www.jaspersoft.com/JasperSoft_JasperReports.html" rel="nofollow" >JasperReports</a>, <a href="http://www.pentaho.com/" rel="nofollow" >Pentaho</a> and Ruby&#8217;s <a href="http://rubyreports.org/" rel="nofollow" >Ruport</a>.</p>
<p>We like <a href="http://en.wikipedia.org/wiki/REST" rel="nofollow" >REST</a>&#8216;s simplicity over <a href="http://fuzzypanic.blogspot.com/2006/04/ws-deathstar.html" rel="nofollow"  title="WS-DeathStar">WS-*</a> for enterprise-y <a href="http://en.wikipedia.org/wiki/Service-oriented_architecture" rel="nofollow"  title="Service-oriented architecture">SOA</a> apps. <a href="http://microformats.org/" rel="nofollow" >Microformats</a> is very nice with just a little <a href="http://code.whytheluckystiff.net/hpricot/" rel="nofollow" >Hpricot</a> and <a href="http://mofo.rubyforge.org/" rel="nofollow" >Mofo</a> goodness. And thanks to <a href="https://rubyforge.org/projects/mechanize/" rel="nofollow" >Mechanize</a> or <a href="http://scrubyt.org/" rel="nofollow" >Scrubyt</a> or <a href="http://openkapow.com/" rel="nofollow" >openkapow</a> and the good ole&#8217; <a href="http://en.wikipedia.org/wiki/RSS" rel="nofollow" >RSS</a>, mashup is always getting easier. Let&#8217;s hope Atom&#8217;s <a href="http://atomenabled.org/" rel="nofollow"  title="Atom Publishing Protocol">APP</a> really does take off as well. But sometimes we want more flexibility, we want <a href="http://en.wikipedia.org/wiki/Business_Process_Modeling" rel="nofollow"  title="Business Process Modeling">BPM</a>-powered workflow. No worries, we have <a href="http://www.jboss.com/products/jbpm" rel="nofollow" >JBoss&#8217;</a> <a href="http://jbpm.org/" rel="nofollow" >jBPM</a>. Our Ruby community also has <a href="http://openwferu.rubyforge.org/" rel="nofollow" >OpenWFEru</a>!</p>
<p>Everybody hates the login form, especially if it comes more often than we brush our teeth. We want <a href="http://en.wikipedia.org/wiki/Single_sign-on" rel="nofollow"  title="Single sign-on">SSO</a>, be it <a href="http://www.ja-sig.org/products/cas/" rel="nofollow" >CAS</a>, <a href="http://openid.net/" rel="nofollow" >OpenID</a>, <a href="http://en.wikipedia.org/wiki/SAML" rel="nofollow" >SAML</a>, or plain <a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol" rel="nofollow"  title="Lightweight Directory Access Protocol">LDAP</a> (with <a href="http://www.openldap.org/" rel="nofollow" >OpenLDAP</a>), we want it now.</p>
<p>And no, I haven&#8217;t forgotten <a href="http://code.google.com/android/" rel="nofollow" >Android</a>, nor <a href="http://www.apple.com/iphone/" rel="nofollow" >iPhone</a>, nor <a href="http://www.symbian.com/" rel="nofollow" >Symbian</a>, nor <a href="http://www.microsoft.com/windowsmobile/smartphone/default.mspx" rel="nofollow" >Windows Mobile</a>. The mobile space is getting more, not less, fragmented. All because they know the market is growing. Everybody wants a pie. (me too!)</p>
<p><a href="http://www.zedshaw.com/rants/rails_is_a_ghetto.html" rel="nofollow" >You&#8217;ve heard him</a>. Not all startups are profitable. Especially not when we&#8217;re fighting with each other. The &#8220;enterprise&#8221;, and corporate, has money&#8230; (unfortunately not all of us do, no matter how much we [all] want it&#8230;)</p>
<p>Users are getting more demanding and demands are getting more complicated, so are the technologies. We probably should embrace these technologies and the people who work on them (whether paid or unpaid or voluntary or forced&#8230;!) more so than we criticize and demotivate each other.</p>
<p><a href="http://www.ruby-lang.org/" rel="nofollow" >Ruby</a> is a great tool, and so is <a href="http://java.sun.com/" rel="nofollow" >Java</a> (<a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine" rel="nofollow" >JVM</a>) and so is <a href="http://jruby.codehaus.org/" rel="nofollow" >JRuby</a> and its close mates like <a href="http://groovy.codehaus.org/" rel="nofollow" >Groovy</a>, <a href="http://www.scala-lang.org/" rel="nofollow" >Scala</a>, <a href="http://www.jython.org/" rel="nofollow" >Jython</a>, and <a href="http://www.mozilla.org/rhino/" rel="nofollow" >Rhino</a> with <a href="http://www.ecmascript.org/" rel="nofollow" >ECMAScript 4</a> and <a href="http://www.ibm.com/developerworks/webservices/library/ws-ajax1/" rel="nofollow"  title="ECMAScript for XML">E4X</a> support. <a href="http://www.hendyirawan.com/2007/08/20/erlang-the-concurrent-programming-language/" rel="nofollow" >Some people are also starting to fall in love</a> with <a href="http://erlang.org/" rel="nofollow" >Erlang</a>.</p>
<p>Oh well&#8230; This isn&#8217;t a rant. It&#8217;s just a brain-dump from me. Hope somebody finds it useful. Good morning guys <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" class='wp-smiley' title="Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, &#8230;, ouch!!" /> </p>
<p><strong>UPDATE:</strong> Clarifications regarding WebORB and messaging protocols.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2008/01/17/ruby-on-rails-java-ee-ria-adobe-flex-comet-messaging-eda-soa-ouch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Extremely Good Ruby on Rails Book: The Rails Way</title>
		<link>http://www.adaruby.com/2008/01/13/extremely-good-ruby-on-rails-book-the-rails-way/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=extremely-good-ruby-on-rails-book-the-rails-way</link>
		<comments>http://www.adaruby.com/2008/01/13/extremely-good-ruby-on-rails-book-the-rails-way/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 11:17:07 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[296]]></category>
		<category><![CDATA[302]]></category>
		<category><![CDATA[310]]></category>
		<category><![CDATA[342]]></category>
		<category><![CDATA[351]]></category>
		<category><![CDATA[360]]></category>

		<guid isPermaLink="false">http://adaruby.com/2008/01/13/extremely-good-ruby-on-rails-book-the-rails-way/</guid>
		<description><![CDATA[The latest entry in Addison-Wesley&#8217;s Professional Ruby Series is The Rails Way, by Obie Fernandez, is a long awaited book billing itself as the &#8220;expert guide to building Ruby on Rails applications.&#8221; More precisely, the book dives into nearly every area of the Rails libraries and APIs and acts as a reference work for them. [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F13%2Fextremely-good-ruby-on-rails-book-the-rails-way%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F13%2Fextremely-good-ruby-on-rails-book-the-rails-way%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Extremely Good Ruby on Rails Book: The Rails Way" alt=" Extremely Good Ruby on Rails Book: The Rails Way" /><br />
			</a>
		</div>
<p>The latest entry in <a href="http://www.informit.com/imprint/index.aspx?st=61085" rel="nofollow" >Addison-Wesley&#8217;s Professional</a> Ruby Series is <a href="http://www.amazon.com/gp/product/0321445619?ie=UTF8&amp;tag=adaruby-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321445619" rel="nofollow" ><em>The Rails Way</em></a>, by <a href="http://obiefernandez.com/" rel="nofollow" >Obie Fernandez</a>, is a long awaited book billing itself as the &#8220;expert guide to building Ruby on Rails applications.&#8221;</p>
<blockquote><p>More precisely, the book dives into nearly every area of the Rails libraries and APIs and acts as a reference work for them. Coming in at about 850 pages, the book is physically very similar to <a href="http://www.amazon.com/gp/product/0672328844?ie=UTF8&amp;tag=adaruby-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0672328844" rel="nofollow" >The Ruby Way</a> by Hal Fulton. There&#8217;s no denying that these two books look good next to each other on the bookshelf, and a lot of comparison can be made between the two.</p></blockquote>
<blockquote><p>Using detailed code examples, Obie systematically covers Rails’ key capabilities and subsystems. He presents advanced programming techniques, introduces open source libraries that facilitate easy Rails adoption, and offers important insights into testing and production deployment. Dive deep into the Rails codebase together, discovering why Rails behaves as it does– and how to make it behave the way you want it to.</p></blockquote>
<p>This book will help you:</p>
<blockquote>
<ul>
<li>Increase your productivity as a web developer</li>
<li>Realize the overall joy of programming with Ruby on Rails</li>
<li>Learn what’s new in Rails 2.0</li>
<li>Drive design and protect long-term maintainability with TestUnit and RSpec</li>
<li>Understand and manage complex program flow in Rails controllers</li>
<li>Leverage Rails’ support for designing REST-compliant APIs</li>
<li>Master sophisticated Rails routing concepts and techniques</li>
<li>Examine and troubleshoot Rails routing</li>
<li>Make the most of ActiveRecord object-relational mapping</li>
<li>Utilize Ajax within your Rails applications</li>
<li>Incorporate logins and authentication into your application</li>
<li>Extend Rails with the best third-party plug-ins and write your own</li>
<li>Integrate email services into your applications with ActionMailer</li>
<li>Choose the right Rails production configurations</li>
<li>Streamline deployment with Capistrano</li>
</ul>
</blockquote>
<p>More resources:</p>
<blockquote></blockquote>
<ul>
<li><a href="http://www.amazon.com/gp/product/0321445619?ie=UTF8&amp;tag=adaruby-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321445619" rel="nofollow" >Editorial review at Amazon.com</a></li>
<li><a href="http://blog.hasmanythrough.com/2007/12/20/book-review-the-rails-way" rel="nofollow" >Review for this book at hasmanythrough blog</a></li>
</ul>
<blockquote></blockquote>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2008/01/13/extremely-good-ruby-on-rails-book-the-rails-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scraping Gmail with Mechanize and Hpricot</title>
		<link>http://www.adaruby.com/2008/01/11/scraping-gmail-with-mechanize-and-hpricot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scraping-gmail-with-mechanize-and-hpricot</link>
		<comments>http://www.adaruby.com/2008/01/11/scraping-gmail-with-mechanize-and-hpricot/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 00:14:00 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[302]]></category>
		<category><![CDATA[326]]></category>
		<category><![CDATA[329]]></category>
		<category><![CDATA[336]]></category>
		<category><![CDATA[337]]></category>
		<category><![CDATA[354]]></category>
		<category><![CDATA[364]]></category>

		<guid isPermaLink="false">http://adaruby.com/2008/01/11/scraping-gmail-with-mechanize-and-hpricot/</guid>
		<description><![CDATA[We&#8217;ve been doing a lot of scraping and mashups lately. So we&#8217;d love to share on how to do this. Fortunately Schadenfreude has written a good tutorial about using Mechanize and Hpricot to scrape Gmail. The tutorial uses mechanize and hpricot to login to gmail and return a list of Unread emails. Installation of required [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F11%2Fscraping-gmail-with-mechanize-and-hpricot%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F01%2F11%2Fscraping-gmail-with-mechanize-and-hpricot%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Scraping Gmail with Mechanize and Hpricot" alt=" Scraping Gmail with Mechanize and Hpricot" /><br />
			</a>
		</div>
<p>We&#8217;ve been doing a lot of scraping and mashups lately. So we&#8217;d love to share on how to do this. Fortunately <a href="http://schf.uc.org/articles/2007/02/14/scraping-gmail-with-mechanize-and-hpricot" rel="nofollow" >Schadenfreude has written a good tutorial about using Mechanize and Hpricot to scrape Gmail</a>.</p>
<p>The tutorial uses mechanize and hpricot to login to gmail and return a list of Unread emails.</p>
<p><strong>Installation of required tools</strong></p>
<blockquote><p> <code>gem install mechanize --include-dependencies<br />
</code></p></blockquote>
<blockquote><p>This will install both mechanize and hpricot.</p></blockquote>
<p><strong>Usage</strong></p>
<blockquote><p>Before we can scrape our gmail account, we will need to login. Mechanize is a lib for “automating interaction with websites”. It can store and send cookies as well so once we login our script will now have a session to putter around in as if it was a web browser.</p></blockquote>
<p>&nbsp;</p>
<blockquote>
<pre>require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
page = agent.get 'http://www.gmail.com'

form = page.forms.first
form.Email = '***your gmail account***'
form.Passwd = '***your password***'

page = agent.submit form</pre>
</blockquote>
<blockquote><p>After logging in gmail will try to redirect us to http://mail.google.com/mail?ui&amp;auth=DC8F…. we need to follow this link. Using hpricot we can search for the meta redirect and grab the href attribute then have mechanize follow the link.</p></blockquote>
<p>&nbsp;</p>
<blockquote><p> <code>page = agent.get page.search("//meta").first.attributes['href'].gsub(/'/,'')</code></p></blockquote>
<blockquote><p><em>Note we need to strip the single quotes from around the url, i used gsub for this.</em></p></blockquote>
<blockquote><p>The returned page will try to use javascript to load the interface but it will not work for use. Thankfully a <strong>noscript</strong> tag is included in the source and contains a helpful clue.</p></blockquote>
<blockquote>
<pre>&lt;noscript&gt;&lt;font face="arial"&gt;JavaScript must be enabled in order for you to use Gmail in standard view.
However, it seems JavaScript is either disabled or not supported by your browser.
To use standard view, enable JavaScript by changing your browser options, then &lt;a href=""&gt;try again&lt;/a&gt;.

&lt;p&gt;To use Gmail's basic HTML view, which does not require JavaScript,
&lt;a href="?ui=html&amp;zy=n"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;/font&gt;

&lt;p&gt;&lt;font face="arial"&gt;If you want to view Gmail on a mobile phone or similar device
&lt;a href="?ui=mobile&amp;zyp=n"&gt;click here&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;&lt;/noscript&gt;</pre>
</blockquote>
<p><strong>Full source</strong></p>
<p>&nbsp;</p>
<blockquote>
<pre>require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new

page = agent.get 'http://www.gmail.com'
form = page.forms.first
form.Email = '***your gmail account***'
form.Passwd = '***your password***'
page = agent.submit form

page = agent.get page.search("//meta").first.attributes['href'].gsub(/'/,'')
page = agent.get page.uri.to_s.sub(/\?.*$/, "?ui=html&amp;zy=n")
page.search("//tr[@bgcolor='#ffffff']")  do |row|
from, subject = *row.search("//b/text()")
url = page.uri.to_s.sub(/ui.*$/, row.search("//a").first.attributes["href"])
puts "From: #{from}\nSubject: #{subject}\nLink: #{url}\n\n"

email = agent.get url
# ..
end</pre>
</blockquote>
<p>Enjoy the tutorial!</p>
<p>Read more on <a href="http://schf.uc.org/articles/2007/02/14/scraping-gmail-with-mechanize-and-hpricot" rel="nofollow" >Schadenfreude</a>.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2008/01/11/scraping-gmail-with-mechanize-and-hpricot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rails 2.0.1 Final Released!</title>
		<link>http://www.adaruby.com/2007/12/09/rails-201-final-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rails-201-final-released</link>
		<comments>http://www.adaruby.com/2007/12/09/rails-201-final-released/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 18:46:09 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Friends]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/12/09/rails-201-final-released/</guid>
		<description><![CDATA[It&#8217;s not just Rails 2.0 but another added bump in the minor version There are thousands (literally, considering the Subversion revision numbers of improvements, including: Action Pack: Resources Action Pack: Multiview Action Pack: Record identification Action Pack: HTTP Loving Action Pack: Security Action Pack: Exception handling Action Pack: Cookie store sessions Action Pack: New request [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F12%2F09%2Frails-201-final-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F12%2F09%2Frails-201-final-released%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Rails 2.0.1 Final Released!" alt=" Rails 2.0.1 Final Released!" /><br />
			</a>
		</div>
<p><img src="http://www.rubyonrails.org/images/rails.png" height="112" width="87" title="Rails 2.0.1 Final Released!" alt="rails Rails 2.0.1 Final Released!" /></p>
<p>It&#8217;s <a href="http://weblog.rubyonrails.com/2007/12/7/rails-2-0-it-s-done" rel="nofollow" >not just Rails 2.0</a> but another added bump in the minor version <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Rails 2.0.1 Final Released!" class='wp-smiley' title="Rails 2.0.1 Final Released!" /> </p>
<p>There are thousands (literally, considering the Subversion revision numbers <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Rails 2.0.1 Final Released!" class='wp-smiley' title="Rails 2.0.1 Final Released!" />  of improvements, including:</p>
<ul>
<li>Action Pack: Resources</li>
<li>Action Pack: Multiview</li>
<li>Action Pack: Record identification</li>
<li>Action Pack: HTTP Loving</li>
<li>Action Pack: Security</li>
<li>Action Pack: Exception handling</li>
<li>Action Pack: Cookie store sessions</li>
<li>Action Pack: New request profiler</li>
<li>Action Pack: Miscellaneous</li>
<li>Active Record: Performance</li>
<li>Active Record: Sexy migrations</li>
<li>Active Record: Foxy fixtures</li>
<li>Active Record: XML in, JSON out</li>
<li>Active Record: Shedding some weight</li>
<li>Active Record: with_scope with a dash of syntactic vinegar</li>
<li>ActionWebService out, ActiveResource in</li>
<li>ActiveSupport</li>
<li>Action Mailer</li>
<li>Rails: The debugger is back</li>
<li>Rails: Clean up your environment</li>
<li>Rails: Easier plugin order</li>
<li>And hundreds upon hundreds of other improvements</li>
</ul>
<p>It&#8217;s not my call so I&#8217;ll let <a href="http://weblog.rubyonrails.com/2007/12/7/rails-2-0-it-s-done" rel="nofollow" >David Heinemeier Hansson&#8217;s announcement at 37signals&#8217; Riding Rails blog</a> speak for real <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Rails 2.0.1 Final Released!" class='wp-smiley' title="Rails 2.0.1 Final Released!" /> </p>
<p>To update your Rails (and everything!): <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Rails 2.0.1 Final Released!" class='wp-smiley' title="Rails 2.0.1 Final Released!" /> </p>
<p><code>sudo gem update</code></p>
<p>PS: Rubygems 0.9.5 is also here, too! So, to update this:</p>
<p><code>sudo gem update --system</code></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/12/09/rails-201-final-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sexy DSL for Active Record Permissions</title>
		<link>http://www.adaruby.com/2007/11/19/concept-dsl-for-active-record-permissions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concept-dsl-for-active-record-permissions</link>
		<comments>http://www.adaruby.com/2007/11/19/concept-dsl-for-active-record-permissions/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 15:49:59 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/11/19/concept-dsl-for-active-record-permissions/</guid>
		<description><![CDATA[Robert Thau from Smartleaf proposes a cool idea for implementing DSL for use in Active Record permissions. It makes it easy for a lot of users to have access rights and very exciting at the same time&#8230; This is the Tease&#8230;. class Order &#60; ActiveRecord::Base access_control_keys ['id', 'owner_id', 'paid'] require_privilege :place, :for_action =&#62; :create, :to_update_attribute [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F11%2F19%2Fconcept-dsl-for-active-record-permissions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F11%2F19%2Fconcept-dsl-for-active-record-permissions%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Sexy DSL for Active Record Permissions" alt=" Sexy DSL for Active Record Permissions" /><br />
			</a>
		</div>
<p>Robert Thau from <a href="http://www.smartleaf.com/" rel="nofollow" >Smartleaf</a> proposes a cool idea for <a href="http://www.smartleaf.com/rst/perm_present/perm_present.html" rel="nofollow" >implementing DSL for use in Active Record permissions</a>. It makes it easy  for a lot of users to have access rights and very exciting at the same time&#8230;</p>
<blockquote><p>This is the Tease&#8230;.</p></blockquote>
<blockquote>
<pre>class Order &lt; ActiveRecord::Base

  access_control_keys ['id', 'owner_id', 'paid']

  require_privilege :place,
    :for_action =&gt; :create,
    :to_update_attribute =&gt; [:payment_authenticator, :paid]

  require_privilege :edit,      # LineItem also checks this for attr changes
    :to_associate_as  =&gt; ['LineItem#order'],
    :to_dissociate_as =&gt; ['LineItem#order'],
    :to_update_attribute =&gt; [ :shipping_address ]

  require_privilege :ship,       :to_update_attribute =&gt; :shipped

  ...

end</pre>
<p>&nbsp;</p>
<p> The implementation:</p>
<ul>
<li>Data model</li>
<li>Checking privileges:  does user <em>x</em> have privilege <em>y</em>     on this order?</li>
<li>Finding <em>all</em> orders where user <em>x</em> has      privilege <em>y</em></li>
<li>Adding privilege checks in interesting places&#8230;
<ul>
<li>On events:  create, update&#8230;</li>
<li>On attribute sets</li>
<li>For associations</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote><p>It&#8217;s just Ruby!  Class variables and class methods:</p>
<blockquote>
<ul>
<li>All declared privileges (for choosers in the UI)</li>
<li>Dual-keyed hash:  <tt>reflected_privilege[<em>type</em>][<em>key</em>]</tt></li>
<li>&#8230; e.g., <tt>reflected_privilege[:read_attribute][<em>attr</em>]</tt></li>
<li>&#8230; e.g., <tt>reflected_privilege[:associate][<em>assoc_key</em>]</tt></li>
<li>Class helpers (<tt>permits_update_attr?</tt>, etc.) just read the     hash, and do the appropriate check.</li>
</ul>
</blockquote>
</blockquote>
<blockquote></blockquote>
<p>Read more on:<a href="http://www.smartleaf.com/rst/perm_present/perm_present.html" rel="nofollow" ></a></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p><a href="http://www.smartleaf.com/rst/perm_present/perm_present.html" rel="nofollow" >http://www.smartleaf.com/rst/perm_present/perm_present.html</a></p>
<p><a href="http://www.smartleaf.com/rst/perm_present/perm_present.html" rel="nofollow" ></a>No downloadable code (yet), but still cool <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Sexy DSL for Active Record Permissions" class='wp-smiley' title="Sexy DSL for Active Record Permissions" /> </p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/11/19/concept-dsl-for-active-record-permissions/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Be an Expert of Ruby on Rails&#8217; Active Record!</title>
		<link>http://www.adaruby.com/2007/10/23/be-an-expert-of-ruby-on-rails-active-record/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=be-an-expert-of-ruby-on-rails-active-record</link>
		<comments>http://www.adaruby.com/2007/10/23/be-an-expert-of-ruby-on-rails-active-record/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 14:54:35 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/10/23/be-an-expert-of-ruby-on-rails-active-record/</guid>
		<description><![CDATA[Any Ruby on Rails programmer would have touched Active Record, probably in a very early phase. Active Record deals with everything that&#8217;s related to the database of your Ruby on Rails applications, and in many ways a bit more. Apress recently launched Pro Active Record: Databases with Ruby on Rails, which I can honestly say, [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F10%2F23%2Fbe-an-expert-of-ruby-on-rails-active-record%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F10%2F23%2Fbe-an-expert-of-ruby-on-rails-active-record%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Be an Expert of Ruby on Rails&#8217; Active Record!" alt=" Be an Expert of Ruby on Rails&#8217; Active Record!" /><br />
			</a>
		</div>
<p>Any <a href="http://www.rubyonrails.org/" rel="nofollow" >Ruby on Rails</a> programmer would have touched <a href="http://ar.rubyonrails.com/" rel="nofollow" >Active Record</a>, probably in a very early phase. Active Record deals with everything that&#8217;s related to the database of your Ruby on Rails applications, and in many ways a bit more.</p>
<p><a href="http://www.flickr.com/photos/debeney/1338722410/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1030/1338722410_b59d1018af.jpg?v=0" height="375" width="500" title="Be an Expert of Ruby on Rails&#8217; Active Record!" alt=" Be an Expert of Ruby on Rails&#8217; Active Record!" /></a></p>
<p><a href="http://www.apress.com/" rel="nofollow" >Apress</a> recently launched <a href="http://www.amazon.com/gp/product/1590598474?ie=UTF8&amp;tag=adaruby-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=1590598474" rel="nofollow" >Pro Active Record: Databases with Ruby on Rails</a>, which I can honestly say, is the most exhaustive, if not the only, book about Active Record I&#8217;ve ever known to date.</p>
<p>The book starts with a little bit of a “wow” factor, especially true if you&#8217;re new to Ruby on Rails: demonstrating the ease of use of Active Record itself. No configuration needed! Seriously, that&#8217;s not the claim of the book but it&#8217;s fact of Active Record: all you need is your database credentials and name of the table you want to work with. Everything else is almost magical.</p>
<p>The next sections deal with installing and configuring Active Record. I have to say sometimes (based on my own experiences) it&#8217;s not that trivial, especially on Windows. The book guides you through installing drivers/adapters for common and less popular DBMSes. OK, let&#8217;s name them: DB2, Firebird, FrontBase, MySQL, OpenBase, Oracle, PostgreSQL, SQLite, Microsoft SQL Server, Sybase, they&#8217;re all covered! I was wondering if I can connect to ODBC?</p>
<p>The second chapter deals with the “simple” things, namely, how to do SELECT, UPDATE, DELETE, INSERT, or what you cool guys usually call “CRUD”, the Active Record-way. This information is usually taken for granted, but it&#8217;s explained quite deeply in this book.</p>
<p>The next chapter guides you to design your tables so they work smoothly with Active Record. Although you can use legacy designs just fine with Active Record, your life will be much, much easier if you follow Active Record conventions. This book shows you just how, and in many cases, why.</p>
<p>Chapter 4 shows you how to use core Active Record features, including triggers and validations. If you&#8217;re asking that question, then the answer is yes, it&#8217;s almost completely overlapping with native but proprietary DBMS functionality such as PL/SQL, DBMS triggers, and constraints. The book doesn&#8217;t seem to explain much of this holy war, but I encourage you to ask Google why <a href="http://www.google.co.id/search?q=stored+procedures+are+evil" rel="nofollow" >stored procedures are evil</a>.</p>
<p>Chapter 5 gives you a view of Active Record “bonus features”. I think the chapter title is a misnomer because these features are not just bonus, but one of the greatest strengths of Active Record (compared to other ORM). Things like nested sets, lists, observers, aggregations, and little bit of extending Active Record: these are things that you&#8217;ll do, and use, daily &#8212; not something you try to avoid. They make your life as a DB integrator easier, not the other way around.</p>
<p>You want to make sure your app works fine, chapter 6 covers unit testing very thoroughly, down to the descriptions of errors (i.e. Active Record Exception objects) you may encounter.</p>
<p>If you already had a previous database, as most of us are, no worries, chapter 7 will guide you how to work with them. This is one of the most useful chapters in this book, because there is less information on the Internet on this topic, but it&#8217;s very common that everybody is bound to meet this problem. Come on, who actually learned Active Record before hearing the word DBMS?</p>
<p>The last chapter talks about issues that you&#8217;ll encounter in the “real world”, including alternatives and related enhancements to Active Record. What follows is the appendix, which is a really useful quick reference.</p>
<p align="left">The book is really, really good. Full of core information, and related information that aren&#8217;t readily available even after asking Mr. Google a hundred times. Despite being written by 3 different developers: <a href="http://falicon.com/" rel="nofollow" >Kevin Marshall</a>, <a href="http://giantrobots.thoughtbot.com" rel="nofollow" >Chad Pytel</a>, and <a href="http://www.thoughtbot.com/" rel="nofollow" >Jon Yurek</a>; the entire book is nicely structured and feels cohesive. It will save you lots of time in times of frustration, you can look up the information much quickly here than does a search engine.</p>
<p>Interested already? You can get more information about <a href="http://www.amazon.com/gp/product/1590598474?ie=UTF8&amp;tag=adaruby-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=1590598474" rel="nofollow" >Pro Active Record book on Amazon</a>, and buy it there too of course. It&#8217;s also <a href="http://www.apress.com/book/view/9781590598474" rel="nofollow"  title="Databases with Ruby on Rails">available on Apress official site</a>.</p>
<p>Personal minor gripe, not a flaw, is there wasn&#8217;t a (detachable) cheatsheet. A poster-sized, deluxe exclusive cheatsheet would be a tremendous killer plus to this book. I really think Apress should make this kind of thing mandatory in the future, not only regular Appendixes.</p>
<p>Other resources related to this book:</p>
<ul>
<li><a href="http://jystewart.net/process/2007/10/boo-review-pro-activerecord/" rel="nofollow" >James Stewart&#8217;s review</a></li>
<li><a href="http://opensource.apress.com/article/288/pro-active-record-published" rel="nofollow" >Inside Apress blog</a></li>
</ul>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/10/23/be-an-expert-of-ruby-on-rails-active-record/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Best microformats Resources for Web 2.0 Developers</title>
		<link>http://www.adaruby.com/2007/09/20/top-10-microformats-resources-for-web-20-developers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=top-10-microformats-resources-for-web-20-developers</link>
		<comments>http://www.adaruby.com/2007/09/20/top-10-microformats-resources-for-web-20-developers/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 11:01:29 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Friends]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/09/20/top-10-microformats-resources-for-web-20-developers/</guid>
		<description><![CDATA[microformats has been only two years old, yet it has brought significant changes in a relatively short time. What is it, actually? According to microformats.org, &#8220;[microformats is] designed for humans first and machines second, [they] are a set of simple, open data formats built upon existing and widely adopted standards.&#8221; Enough with the fluff, let&#8217;s [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F09%2F20%2Ftop-10-microformats-resources-for-web-20-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F09%2F20%2Ftop-10-microformats-resources-for-web-20-developers%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="The Best microformats Resources for Web 2.0 Developers" alt=" The Best microformats Resources for Web 2.0 Developers" /><br />
			</a>
		</div>
<p><a href="http://www.flickr.com/photos/torchlightlms/1206281509/" rel="nofollow"  title="Shave your Semantic (or semantic?) Web!"><img src="http://farm2.static.flickr.com/1187/1206281509_ce53f3d7ff.jpg" alt="1206281509 ce53f3d7ff The Best microformats Resources for Web 2.0 Developers"  title="The Best microformats Resources for Web 2.0 Developers" /></a></p>
<p><a href="http://microformats.org/" rel="nofollow" >microformats</a> has been <a href="http://microformats.org/blog/2007/06/21/microformatsorg-turns-2/" rel="nofollow" >only two years old</a>, yet it has brought significant changes in a relatively short time.</p>
<p>What is it, actually? <a href="http://microformats.org/about/" rel="nofollow" >According to microformats.org</a>, &#8220;[microformats is] designed for humans first and machines second, [they] are a set of simple, open data formats built upon existing and widely adopted standards.&#8221;</p>
<p>Enough with the fluff, let&#8217;s see how it <em>actually</em> works, microformats in action:</p>
<p><a href="http://www.linkedin.com/in/ariekeren" rel="nofollow"  title="Arie Kusuma Atmaja @ LinkedIn"><img src="http://farm2.static.flickr.com/1322/1408453688_afda913dd5.jpg" alt="1408453688 afda913dd5 The Best microformats Resources for Web 2.0 Developers"  title="The Best microformats Resources for Web 2.0 Developers" /></a><br />
<a href="http://www.flickr.com/photos/ceefour/1408453688/" rel="nofollow" >Flickr picture source</a></p>
<p align="left">The above picture is me browsing to <a href="http://www.linkedin.com/in/ariekeren" rel="nofollow" >the LinkedIn profile</a> of one of Indonesia&#8217;s  renowned Ruby on Rails experts, <a href="http://ariekusumaatmaja.wordpress.com/" rel="nofollow" >Arie Kusuma Atmaja</a>. The overlay window that contains these semantic information is <strong>not </strong>a <a href="http://www.linkedin.com/" rel="nofollow" >LinkedIn</a> feature. Rather, it is the easily usable, cross-browser <a href="http://leftlogic.com/lounge/articles/microformats_bookmarklet" rel="nofollow" >Microformats Bookmarklet by LeftLogic</a>. Go on&#8230; <em>try it</em> if you haven&#8217;t!</p>
<p align="left">As you can see, the mere act of clicking the bookmarklet shows you some important facts about Arie (or any microformats-enabled you&#8217;re currently at). In case of a <a href="http://microformats.org/wiki/hresume" rel="nofollow" >microformats-enabled resume</a> page like in LinkedIn, it shows you where he works, when, education information, and related stuff. For fun comparison purposes only, <a href="http://www.linkedin.com/in/ceefour" rel="nofollow"  title="Hendy Irawan's LinkedIn profile">my LinkedIn profile</a> has more detailed information than his, hehe <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink The Best microformats Resources for Web 2.0 Developers" class='wp-smiley' title="The Best microformats Resources for Web 2.0 Developers" /> </p>
<p align="left">The best part is not only that the information is human-readable, but it can also be extracted and processed automatically by machines or software. The primary distinguishing trait of a microformats-enabled HTML page is that it has <a href="http://en.wikipedia.org/wiki/Semantic_Web" rel="nofollow" >semantic meaning</a>. A microformats processor can know the difference between a name, an e-mail address, a street address, a job, a university, and so on; while in plain HTML, all you can infer are things dealing with paragraphs, tables, lists, and so on.</p>
<p align="left">Making microformats-enabled pages aren&#8217;t hard at all, actually it is very easy! It&#8217;s even much easier than CSS.</p>
<p align="left">To see how simple it is, let&#8217;s see a snippet of a real-world microformats, still courtesy of Arie:</p>
<pre>&lt;div id="masthead" class="vcard contact"&gt;
  &lt;div id="nameplate"&gt;
    &lt;h1 id="name"&gt;&lt;span class="fn n"&gt; &lt;span class="given-name"&gt;Arie&lt;/span&gt; &lt;span class="family-name"&gt;Kusuma Atmaja&lt;/span&gt; &lt;/span&gt;&lt;/h1&gt;
      &lt;p class="headline title"&gt;&lt;strong&gt;Senior Ruby Developer at IMT&lt;/strong&gt;&lt;/p&gt;
    &lt;div class="adr"&gt;
      &lt;p class="locality"&gt;Indonesia&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p align="left">Most of the above snippet is just HTML. The microformats part is simply the <strong>class=&#8221;</strong><em>something</em><strong>&#8220;</strong> convention. Simple, and it gets the job done. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile The Best microformats Resources for Web 2.0 Developers" class='wp-smiley' title="The Best microformats Resources for Web 2.0 Developers" /> </p>
<p align="left">Some more commonly used microformats specifications include:</p>
<ul>
<li><a href="http://microformats.org/wiki/hcard" rel="nofollow" >hCard</a> for people and organizations</li>
<li><a href="http://microformats.org/wiki/hcalendar" rel="nofollow" >hCalendar</a> for calendars and Events</li>
<li><a href="http://microformats.org/wiki/hcalendar" rel="nofollow" >hCalendar</a> for calendars and Events</li>
<li><a href="http://microformats.org/wiki/vote-links" rel="nofollow" >VoteLinks</a> and <a href="http://microformats.org/wiki/hreview" rel="nofollow" >hReview</a> for opinions, ratings, and reviews</li>
<li><a href="http://gmpg.org/xfn" rel="nofollow" ><abbr title="XHTML Friends Network">XFN</abbr></a> for social networks</li>
<li><a href="http://microformats.org/wiki/rel-license" rel="nofollow" >rel-license</a> for licenses</li>
<li><a href="http://microformats.org/wiki/rel-tag" rel="nofollow" >rel-tag</a> for tags, keywords, and categories</li>
<li><a href="http://microformats.org/wiki/xoxo" rel="nofollow" >XOXO</a> for lists and outlines</li>
<li><a href="http://microformats.org/wiki/" rel="nofollow" >&#8230;and more&#8230;</a></li>
</ul>
<p align="left">Despite all these specifications, &#8220;who uses it?&#8221; is a good question. It turns out, there has been many, and more and more sites are adopting it. <a href="http://wordpress.org/extend/plugins/linkedin-hresume/" rel="nofollow" >LinkedIn with hResume</a> is one example, along with <a href="http://torrez.us/archives/2007/08/02/540/" rel="nofollow" >Google Maps</a>, <a href="http://www.ylocalblog.com/blog/2006/06/21/we-now-support-microformats/" rel="nofollow" >Yahoo</a>, <a href="http://www.flickr.com/groups/microformats/" rel="nofollow" >Flickr</a>, and <a href="http://microformats.org/wiki/hcard-examples-in-wild" rel="nofollow" >all these cool guys</a> have been using them. Why shouldn&#8217;t you?</p>
<p align="left">Interested? Here are some stuff to get you started:</p>
<ol>
<li><strong>Online Tools</strong>
<ol>
<li><a href="http://leftlogic.com/lounge/articles/microformats_bookmarklet" rel="nofollow" >Microformats Bookmarklet by LeftLogic</a><br />
A handy microformats explorer bookmarklet. Useful also if you&#8217;re on the go and you want to check out some microformats. No need to install anything fancy on the computer.</li>
<li><a href="https://addons.mozilla.org/firefox/addon/4106" rel="nofollow" >Operator Firefox Extension</a><br />
Microformats explorer extension for Firefox. Whether you&#8217;re a web developer or simply want to check out this latest technology, this is a very useful tool.</li>
<li> <a href="http://blog.codeeg.com/tails-firefox-extension-03/" rel="nofollow" >Tails Firefox extension</a> is another microformats Firefox extension</li>
<li><a href="http://tools.blogmatrix.com/extract/" rel="nofollow" >Almost Universal Microformats Parser</a> is a useful web-based tool to parse microformats.</li>
</ol>
</li>
<li><strong>Tutorials and Resources<br />
</strong></p>
<ol>
<li><a href="http://www.smashingmagazine.com/2007/05/04/microformats-what-they-are-and-how-to-use-them/" rel="nofollow" >Microformats, what they are and how to use them, by Smashing Magazine </a></li>
<li><a href="http://www.xfront.com/microformats/" rel="nofollow" >Microformats Tutorial</a> by XFront<br />
This is a very extensive tutorial. The complete tutorial package including the example files is a 13 MB download! <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile The Best microformats Resources for Web 2.0 Developers" class='wp-smiley' title="The Best microformats Resources for Web 2.0 Developers" /> </li>
<li><a href="http://www.thinkvitamin.com/features/design/how-to-use-microformats" rel="nofollow" >How to Use Microformats</a> by Vitamin Features</li>
<li><a href="http://whymicroformats.com/introduction-to-microformats/" rel="nofollow" >Introduction to Microformats</a> by WhyMicroformats.com</li>
<li><a href="http://www.digital-web.com/articles/the_big_picture_on_microformats/" rel="nofollow" >The Big Picture on Microformats</a> by Digital Web Magazine</li>
<li>Another by Digital Web Magazine: <a href="http://www.digital-web.com/articles/microformats_primer/" rel="nofollow" >Microformats Primer</a></li>
<li>Back to the future: <a href="http://www.readwriteweb.com/archives/mozilla_does_microformats_firefox3.php" rel="nofollow" >Mozilla Firefox 3.0 Does Microformats</a><br />
<a href="http://www.readwriteweb.com/" rel="nofollow" >Read/WriteWeb&#8217;s</a> articles also touched microformats-related stuff quite often.</li>
</ol>
</li>
<li><strong>Microformat Parsers</strong>
<ol>
<li><a href="http://mofo.rubyforge.org/" rel="nofollow" >Mofo Ruby Gem and Rails Plugin</a><br />
Of course, this is Ruby on Rails blog! Mofo is a microformats parser for Ruby and it also doubles as a Rails plugin. Check out <a href="http://errtheblog.com/post/37" rel="nofollow" >Chris Wanstrath&#8217;s post</a> for more information.<br />
There are also microformat parsers for other languages:</li>
<li><a href="http://www.danwebb.net/2007/2/9/sumo-a-generic-microformats-parser-for-javascript" rel="nofollow" >Sumo</a> is a microformats parser for JavaScript</li>
<li><a href="http://allinthehead.com/hkit" rel="nofollow" >hKit</a> is a microformats parser for PHP</li>
<li><a href="http://malatestapunk-stuff.blogspot.com/2007/01/php-microformats-parser.html" rel="nofollow" >Microformats Parser</a> is another parser for PHP</li>
<li><a href="http://phildawes.net/microformats/" rel="nofollow" >Microformats Parser for Python</a></li>
<li><a href="http://code.whytheluckystiff.net/hpricot/" rel="nofollow" >Hpricot Ruby Gem</a><br />
Found a bizarre microformat or inventing your own? No problem, Hpricot comes to the rescue. Parse any HTML-ish document as you see fit&#8230; More info available from <a href="http://redhanded.hobix.com/inspect/hpricot01.html" rel="nofollow" >this RedHanded post</a>.</li>
<li><a href="http://rubyforge.org/projects/scrapi" rel="nofollow" >scrAPI</a> is another Ruby library for parsing HTML that can be useful for processing microformats.</li>
</ol>
</li>
<li><strong>References</strong>
<ol>
<li><a href="http://microformats.org/" rel="nofollow" >Microformats.org</a><br />
&#8220;Official&#8221; web site of Microformats. You can read everything about microformats, current specifications and newly proposed specs.</li>
<li><a href="http://www.amazon.com/gp/product/1590598148?ie=UTF8&amp;tag=gauldong-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=1590598148" rel="nofollow" >&#8220;Microformats: Empowering Your Markup for Web 2.0&#8243; Book</a> by <a href="http://webdirections.org/" rel="nofollow" >John Allsopp</a><br />
&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;<br />
This is the first book dedicated to, and is a comprehensive guide to, microformats. It explores why, in Bill Gates&#8217;s words, &#8220;We need microformats&#8221;; how microformats work; and the kinds of problems microformats help solve. the book covers every current microformat, with complete details of the syntax, semantics, and uses of each, along with real-world examples and a comprehensive survey of the tools available for working with them. the book also features case studies detailing how major web content publishers such as yahoo put microformats to work in their web applications.</li>
<li><a href="http://suda.co.uk/projects/microformats/cheatsheet/" rel="nofollow" >Brian Suda&#8217;s microformats cheatsheet</a><br />
For people who likes it quick and done, this is perfect. It lists microformats properties by format and also lists each format and the hierarchy. This includes elemental microformats, compound microformats and some of the standard design patterns used.</li>
<li><a href="http://www.ilovejackdaniels.com/cheat-sheets/microformats-cheat-sheet/" rel="nofollow" >Dave Child&#8217;s microformats cheatsheet</a> is another good reference</li>
<li>And <a href="http://microformats.org/wiki/cheatsheets" rel="nofollow" >more cheatsheets on microformats.org wiki</a></li>
<li><a href="http://www.w3.org/TR/grddl/" rel="nofollow" >Gleaning Resource Descriptions from Dialects of Languages (GRDDL)</a> is a recently approved W3C Recommendation that can be used, among others, for extracting semantic information (including microformats) from HTML pages.</li>
<li><a href="http://microformatique.com/" rel="nofollow" >microformatique</a>. A blog about all things microformats!</li>
</ol>
</li>
</ol>
<p>Feel free to add more resources as you see fit, in the comments! <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile The Best microformats Resources for Web 2.0 Developers" class='wp-smiley' title="The Best microformats Resources for Web 2.0 Developers" /> </p>
<p><strong>Updates:</strong></p>
<ol>
<li>I originally thought I was gonna list 10 resources&#8230; But it seems there are much more <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink The Best microformats Resources for Web 2.0 Developers" class='wp-smiley' title="The Best microformats Resources for Web 2.0 Developers" /> </li>
<li>More links to John Allsopp&#8217;s resources</li>
</ol>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/09/20/top-10-microformats-resources-for-web-20-developers/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!</title>
		<link>http://www.adaruby.com/2007/09/19/ruby-on-rails-developers-ide-netbeans-6-beta-1-is-out/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-on-rails-developers-ide-netbeans-6-beta-1-is-out</link>
		<comments>http://www.adaruby.com/2007/09/19/ruby-on-rails-developers-ide-netbeans-6-beta-1-is-out/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 12:00:29 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Friends]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/09/19/ruby-on-rails-developers-ide-netbeans-6-beta-1-is-out/</guid>
		<description><![CDATA[NetBeans 6 Beta 1 is here!! Let&#8217;s rock the boat It&#8217;s the first significant NetBeans event in probably a year NetBeans isn&#8217;t only for Java geeks anymore, it has tons of Ruby and Ruby on Rails support now! What surprises me (and delights me!) about this release is that, not like previous NetBeans 6 milestones [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F09%2F19%2Fruby-on-rails-developers-ide-netbeans-6-beta-1-is-out%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F09%2F19%2Fruby-on-rails-developers-ide-netbeans-6-beta-1-is-out%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" alt=" Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><br />
			</a>
		</div>
<p><a href="http://www.netbeans.org/community/releases/60/" rel="nofollow"  title="NetBeans 6 Beta 1 Ruby on Rails IDE"><img src="http://www.adaruby.com/wp-content/uploads/2007/09/netbeans6-only.jpg" alt="netbeans6 only Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></a></p>
<p><a href="http://www.netbeans.org/community/releases/60/" rel="nofollow" >NetBeans 6 Beta 1</a> is here!!</p>
<p>Let&#8217;s rock the boat <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" class='wp-smiley' title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /> </p>
<p>It&#8217;s the first significant NetBeans event in probably a year <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" class='wp-smiley' title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /> </p>
<p>NetBeans isn&#8217;t <em>only</em> for Java geeks anymore, it has <a href="http://wiki.netbeans.org/wiki/view/NewAndNoteWorthy" rel="nofollow" >tons of Ruby and Ruby on Rails support</a> now!</p>
<p>What surprises me (and delights me!) about this release is that, not like previous NetBeans 6 milestones where NetBeans-Java is bundled with Ruby, they actually make <a href="http://bits.netbeans.org/download/6_0/beta1/latest/" rel="nofollow" >a special Ruby-only version</a>.</p>
<p>The Ruby-only download is mere 19 MB in size!</p>
<p>That&#8217;s quite &#8220;cheap&#8221; (in terms of bandwidth usage). I&#8217;d expect the Ruby version to be less memory bloat and should have better performance as well, than the mammoth 172 MB one <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_biggrin.gif' alt="icon biggrin Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" class='wp-smiley' title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /> </p>
<p>I have been using NetBeans 6 for several months now, starting from the first NetBeans+Ruby version which is NetBeans 6 Milestone 7, and I can say I&#8217;m very impressed.</p>
<p>I&#8217;m still downloading Beta 1 and haven&#8217;t yet installed Beta 1 at the time of this writing, but I can be sure it&#8217;s gonna be event better than the last NetBeans 6 Milestone 10.</p>
<p>Don&#8217;t let the &#8220;Milestone&#8221; or &#8220;Beta&#8221; name put you off, it&#8217;s already usable in more ways than most software.</p>
<p>Check out why George Cook says <a href="http://lifeonrails.org/2007/8/30/netbeans-the-best-ruby-on-rails-ide" rel="nofollow"  title="Netbeans THE best ruby on rails IDE">Netbeans THE best ruby on rails IDE</a>:</p>
<blockquote><p>&#8230; I was gonna write a blow for blow comparison of netbeans against radrails, but I really see no point. I figured it’s best just to tell you why netbeans’ rails support is so creamingly good, but so you know I have evaluated both and textmate, firstly – here’s some points about the other 2. &#8230;</p>
<p>&#8230; I looked about and by chance came across an article that said that ruby on rails support was being added to netbeans 6. I hunted around like a crack addict and found the nightly builds to try out.</p>
<p><strong>I was extremely impressed.</strong></p>
<p>Netbeans is fucking fab, it proper rocks. I’ve been on netbeans 6 since milestone 8, which is about 1,000 builds now (they’re constantly working on it, and updating it). I’ve been with it through broken indentation, broken code completion, broken everything, null pointers, new features, more efficiency, the memory leak sorted out. I’ve watched it evolve before my eyes: I was installing new builds twice a day – Now it’s so stable and so good that I haven’t updated my build in a month (I might later on <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" class='wp-smiley' title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /> .<br />
<strong>Code completion that works – really really works:</strong><br />
<strong>Code completion is activated with CTRL + SPACE – once activated you can type, or select from the list:</strong><br />
<img src="http://lifeonrails.org/images/netbeans/1.png" alt="1 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><br />
<strong>And here are what the diffs look like in the files themselves:</strong><br />
<img src="http://lifeonrails.org/images/netbeans/51.png" alt="51 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><br />
<strong>In line documentation when you need it, where you need it:</strong><br />
<strong>Just press CTRL+SPACE on a keyword and you get the docs.</strong><br />
<img src="http://lifeonrails.org/images/netbeans/16.png" alt="16 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><br />
<strong>Click on rescue, or move the caret over it with the cursor keys:</strong><br />
<img src="http://lifeonrails.org/images/netbeans/25.png" alt="25 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><br />
<strong>code folding:</strong><br />
<strong>You use the + and – buttons to fold code</strong><br />
<img src="http://lifeonrails.org/images/netbeans/53.png" alt="53 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p></blockquote>
<p>(Read his article for more info. He has a very comprehensive review of many NetBeans-Ruby features!)</p>
<p>Michael Urban has his own opinion in <a href="http://www.javalobby.org/java/forums/t97125.html" rel="nofollow" >Move Over Eclipse. NetBeans 6 Rocks!</a>:</p>
<blockquote><p>Ok, I admit the title is a bit inflammatory to Eclipse fans. But after working with NetBeans 6 over the last week, I have to say I am very impressed. This is not simply a minor upgrade, as is so common in IDEs these days even when they are given a new major version number. Quite the contrary, NetBeans 6 is a major new release, and a major improvement over NetBeans 5.5.</p></blockquote>
<p>A roundup of <a href="http://www.netbeans.org/community/releases/60/" rel="nofollow" >NetBeans Ruby-specific features in this release</a>:</p>
<blockquote><p><img src="http://www.netbeans.org/images/screenshots/6.0/ruby-project.png" alt="ruby project Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p>
<p><strong>Ruby/JRuby/Ruby on Rails Support</strong></p>
<ul>
<li><strong>Project Support.</strong> Quickly create Ruby projects with logical structure, run Ruby files, configure other Ruby interpreters (such as JRuby or native Ruby), locate and install Ruby Gems through a graphical wizard, create and execute unit tests, run RSpec specification files, jump between a Ruby file and its corresponding unit test or spec file, and so on. <a href="http://www.netbeans.org/download/flash/jruby_on_rails/jruby_on_rails.html" rel="nofollow" >View Demo.</a></li>
<li><strong>Advanced Ruby Editing.</strong> Advanced code editing for Ruby, using semantic information about the program to offer code completion, showing available classes and methods for the current expression, along with the associated RDoc documentation. The syntax highlighting is enhanced with semantic information, such that unused local variables and parameters are shown in gray. There are many other editing features, including Goto Declaration for jumping to the declaration point of a class or method reference. <a href="http://www.netbeans.org/download/flash/jruby_editing/jruby_editing.html" rel="nofollow" >View Demo.</a></li>
<li><strong>Ruby Debugger. </strong> Single-step or run through Ruby code, set breakpoints, look at local variables, navigate the call stack, switch threads, and evaluate expressions by just hovering the mouse over the variable in the Editor. There is also support for the &#8220;fast debug&#8221; extension.</li>
<li><strong>Ruby on Rails Support.</strong> Generate Rails projects, or generate code through the Rails code generator graphical wizard, which offers documentation on the plugins within the wizard itself. Third party generators are also supported. Furthermore, there are actions for jumping quickly between a Rails action and its corresponding View, or warping to the browser for the URL most relevant to the file you are editing. Database migrations and Rake targets are supported as well. Finally, RHTML files are highlighted (along with improved NetBeans 6.0 support for related files, such as JavaScript and CSS). <a href="http://www.netbeans.org/kb/55/flickr-on-rails-flash.html" rel="nofollow" >View Demo.</a></li>
</ul>
</blockquote>
<p><a href="http://wiki.netbeans.org/wiki/view/NewAndNoteWorthy" rel="nofollow" >And also</a>:</p>
<blockquote>
<ul>
<li> Quick Fixes
<ul>
<li> Automatic detection of block variables that might be accidentally modifying local variables</li>
</ul>
</li>
</ul>
<p><img src="http://wiki.netbeans.org/wiki/attach/RubyHints/blockvar-fixes.png" alt="blockvar fixes Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p>
<ul>
<li>
<ul>
<li> Rails deprecation warnings which identify usages of deprecated Rails idioms (enable this warning in the Ruby options panel)</li>
</ul>
</li>
</ul>
<p><img src="http://wiki.netbeans.org/wiki/attach/RubyHints/deprecated-fields.png" alt="deprecated fields Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p>
<ul>
<li>
<ul>
<li> Quick which finds same-line definitions of classes or methods and offer to explode these into    multiline, formatted definitions</li>
</ul>
</li>
</ul>
<p><img src="http://wiki.netbeans.org/wiki/attach/RubyHints/sameline.png" alt="sameline Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p>
<ul>
<li>
<ul>
<li> A number of experimental hints compatible with Beta 1 but not bundled; access these from the Plugin manager.    These hints can convert between <tt>do</tt> and brace-style blocks, they warn about &#8220;wrong&#8221; name conventions    for Ruby symbols, they offer to run the Rails generator to generate missing views for action methods,    they identify possible incorrect usage of attributes</li>
<li> <a href="http://wiki.netbeans.org/wiki/view/RubyHints" rel="nofollow" >More information about the Ruby quick fixes</a></li>
</ul>
</li>
<li> RHTML formatting (and improvements to the Ruby formatting algorithm). A new formatting preferences panel allows configuration of the continuation indent as well as enabling reformatting of comments.</li>
<li> Updated bundled JRuby to version 1.0.1</li>
<li> Ability to deploy Rails projects to Java EE application servers</li>
<li> YAML code folding and navigator, improved RHTML navigator</li>
<li> Go To Declaration in RHTML files now work to warp to partials, redirect_to, link_to, etc.</li>
</ul>
<p><img src="http://wiki.netbeans.org/wiki/attach/NewAndNoteWorthyBeta1/renderpartial.png" alt="renderpartial Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p>
<ul>
<li> Large number of bug fixes and tweaks</li>
</ul>
<p><strong>Diff</strong></p>
<ul>
<li> Export Diff Patch &#8211; CVS and Subversion integration
<ul>
<li> based on unified diff</li>
<li> automatically opens generated patch file into the editor with colored annotations</li>
</ul>
</li>
</ul>
<p><img src="http://wiki.netbeans.org/wiki/attach/NewAndNoteWorthyBeta1/patch.png" alt="patch Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!"  title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /></p></blockquote>
<p>Don&#8217;t forget <a href="http://www.netbeans.org/community/releases/60/" rel="nofollow" >the general improvements</a> as well:</p>
<blockquote><p> <strong>Editor Improvements</strong></p>
<ul>
<li><img src="http://www.netbeans.org/images/screenshots/6.0/code-completion4.jpg" alt="code completion4 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" border="1" title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><strong>Smarter code completion.</strong> The NetBeans editor is quicker and smarter, providing completions for keywords, fields, and variables. It also lists the most logical options at the top, and lets you dig down into the full options at the bottom</li>
<li><img src="http://www.netbeans.org/images/screenshots/6.0/hilites3.jpg" alt="hilites3 Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" border="1" title="Ruby on Rails Developers IDE, NetBeans 6 Beta 1 is Out!" /><strong>Highlights.</strong> You can think of the highlights feature as an easy-to-use and more correct substitution for the editors Search. The IDE tracks the position of the caret and, based on it, highlights some parts of the code. The highlights are marked with a background color in the editor they are also put into the error stripe, which permits for having overview of the whole file.</li>
<li><strong>Better Navigation and Inspection.</strong> In addition to Highlights, the source editor lets you quickly navigate through your code with improved Navigator window organization and the Members and Hierarchy Inspectors.</li>
<li><strong>More than just code completion.</strong> With live templates and Surround With functionality, you can quickly enter commonly used blocks of code and focus on the business logic.</li>
<li><strong>There is much more.</strong> See the <a href="http://wiki.netbeans.org/wiki/view/Java_EditorUsersGuide" rel="nofollow" >Java Editor User&#8217;s Guide</a>.</li>
</ul>
</blockquote>
<p><strong>Update:</strong> And more from <a href="http://www.rubyinside.com/netbeans-60-beta-1-released-ruby-edition-available-607.html" rel="nofollow" >Peter Cooper of Ruby Inside</a>:</p>
<blockquote><p>NetBeans is a powerful and free. You can create Ruby and Rails projects, run Ruby files, configure interpreters (MRI and JRuby), install Gems graphically, run tests, run RSpecs, debug Ruby code, run Rails apps, and so on, all from the IDE. The Ruby edition is <a href="http://bits.netbeans.org/download/6_0/beta1/latest/" rel="nofollow" >only a 19MB download</a> and it&#8217;s available right now. There are several Ruby related <a href="http://www.netbeans.org/kb/60/flash.html" rel="nofollow" >NetBeans screencasts</a> for the less convinced.</p></blockquote>
<p>Already more than enough evangelizing, I guess&#8230;</p>
<p>Head on to <a href="http://www.netbeans.org/community/releases/60/" rel="nofollow" >NetBeans 6 Release page</a> to find out more and download.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/09/19/ruby-on-rails-developers-ide-netbeans-6-beta-1-is-out/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Thank You, My Friend! :)</title>
		<link>http://www.adaruby.com/2007/08/29/thank-you-my-friend/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thank-you-my-friend</link>
		<comments>http://www.adaruby.com/2007/08/29/thank-you-my-friend/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 08:09:23 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/08/29/thank-you-my-friend/</guid>
		<description><![CDATA[To Chris Maxwell, Geoffrey Grosenbach, Ken Barker, Jeremy McAnally, Priit Tamboom, Christoph Blank, Roland, Arie Kusuma Atmaja, Simone Dall&#8217;Angelo, Scott Persinger, Greg Lappen, and Adara, thank you so much for helping and giving me suggestions regarding my call for keyboard recommendations. I&#8217;m now using a Microsoft Comfort Curve 2000 USB Keyboard (tech specs), and struggling [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F29%2Fthank-you-my-friend%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F29%2Fthank-you-my-friend%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Thank You, My Friend! :)" alt=" Thank You, My Friend! :)" /><br />
			</a>
		</div>
<p>To <a href="http://www.chrismaxwell.com/" rel="nofollow" >Chris Maxwell</a>,  <a href="http://nubyonrails.com/articles/logo-redux" rel="nofollow" >Geoffrey Grosenbach</a>, <a href="http://blog.theedgecase.com/2007/6/4/erubycon-sessions-announced" rel="nofollow" >Ken Barker</a>, <a href="http://www.rubyinpractice.com/2007/4/1/transference-of-knowledge-and-rails" rel="nofollow" >Jeremy McAnally</a>, <a href="http://priidu.com/" rel="nofollow" >Priit Tamboom</a>, <a href="http://www.tachium.at/2007/6/9/4-webmontag-in-innsbruck" rel="nofollow" >Christoph Blank</a>, Roland, <a href="http://ariekusumaatmaja.wordpress.com/2007/04/05/caps-lock-dan-enter-berubah-jadi-control/" rel="nofollow" >Arie Kusuma Atmaja</a>, <a href="http://blog.wonsys.net/posts/23-customer-service-isnt-just-a-point-on-a-bullet-list/" rel="nofollow" >Simone <font size="-1">Dall&#8217;Angelo</font></a>,  <a href="http://videoontheweb.wordpress.com/2007/08/27/how-youtube-won/" rel="nofollow" >Scott Persinger</a>, <a href="http://www.workingwithrails.com/person/5300-greg-lappen" rel="nofollow" >Greg Lappen</a>, and <a href="http://edelweiss.rainbowpurple.com/vote-me/2007/08/27/" rel="nofollow" >Adara</a>, thank you so much for helping and giving me suggestions regarding <a href="http://www.adaruby.com/2007/08/24/quick-call-for-help-what-is-the-keyboard-you-use/">my call for keyboard recommendations</a>. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" /> </p>
<p><a href="http://www.flickr.com/photos/savaman/43305763/" rel="nofollow"  title="A BIG sexy kiss for you"><img src="http://farm1.static.flickr.com/29/43305763_b35771a1a1.jpg?v=1126718555" title="Thank You, My Friend! :)" alt=" Thank You, My Friend! :)" /></a></p>
<p>I&#8217;m now using a <a href="http://www.amazon.com/gp/product/B0009ZBRS0?ie=UTF8&amp;tag=gauldong-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=B0009ZBRS0" rel="nofollow" >Microsoft Comfort Curve 2000 USB Keyboar</a>d (<a href="http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=040" rel="nofollow" >tech specs</a>), and struggling to learn <a href="http://www.colemak.com/" rel="nofollow" >Colemak</a>. Was bought for $21, somewhat expensive according to most Indonesians (most people here would buy sub-$5 keyboards), but somehow I wondered why I didn&#8217;t go for the scarier <a href="http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=043" rel="nofollow" >Microsoft Natural Ergonomic Keyboard 4000</a> :-O</p>
<p>As I promised, I&#8217;m thanking you personally <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" /> </p>
<p>Additional kudos to Scott Persinger for recommending the winning keyboard. And the first prize winner (triple-thanks <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" />  go to Priit Tamboom for recommending both the winning keyboard and the winning keyboard layout which is Colemak.</p>
<p><a href="http://www.flickr.com/photos/ceefour/1264864564/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1346/1264864564_3809fc2624_m.jpg" height="180" width="240" title="Thank You, My Friend! :)" alt="1264864564 3809fc2624 m Thank You, My Friend! :)" /> </a>   <a href="http://www.flickr.com/photos/ceefour/1264009553/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1331/1264009553_1f4a8b83a2_m.jpg" title="Thank You, My Friend! :)" alt="1264009553 1f4a8b83a2 m Thank You, My Friend! :)" /></a></p>
<p><a href="http://www.flickr.com/photos/ceefour/1264866902/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1417/1264866902_faae05e2fd_m.jpg" title="Thank You, My Friend! :)" alt="1264866902 faae05e2fd m Thank You, My Friend! :)" /></a>   <a href="http://www.flickr.com/photos/ceefour/1264867782/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1265/1264867782_0f23e32d1d_m.jpg" title="Thank You, My Friend! :)" alt="1264867782 0f23e32d1d m Thank You, My Friend! :)" /></a></p>
<p><a href="http://www.flickr.com/photos/ceefour/1264869028/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1085/1264869028_2ace7bcdf9_m.jpg" title="Thank You, My Friend! :)" alt="1264869028 2ace7bcdf9 m Thank You, My Friend! :)" /></a>   <a href="http://www.flickr.com/photos/ceefour/1264905282/" rel="nofollow"  title="almost one-decade old Natural keyboard isn't compatible (PS/2)"><img src="http://farm2.static.flickr.com/1053/1264905282_ffdd2bf8f2_m.jpg" height="180" width="240" title="Thank You, My Friend! :)" alt="1264905282 ffdd2bf8f2 m Thank You, My Friend! :)" /></a></p>
<p>The last one shows my old PS/2 keyboard that I can&#8217;t get to work with the laptop. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" />  What a waste&#8230;</p>
<p><em>Note:</em> Even if it&#8217;s a Microsoft keyboard, all the extra keys (mute, play/pause, etc.) do work on Linux, at least on my <a href="http://www.kubuntu.com/" rel="nofollow" >Kubuntu</a>. Newer Linux distros do have sensible defaults for them, and you can always customize the keymappings to fit your style. (Hint: Configure the Play button to launch your <a href="http://www.jetbrains.com/" rel="nofollow" >favorite</a> <a href="http://www.aptana.com/" rel="nofollow" >Ruby</a> <a href="http://www.netbeans.org/" rel="nofollow" >IDE</a>&#8230; That&#8217;s a good way to start your day. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" /> </p>
<p><em>Tip: </em><strong>Do read and <u>apply</u> the guidelines described in your keyboard&#8217;s manual.</strong> At least in all Microsoft keyboards, there is always this guide along the lines of good posture and preventing <a href="http://en.wikipedia.org/wiki/Musculoskeletal_disorders" rel="nofollow" >MSDs (musculoskeletal disorders)</a> including the infamous <a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury" rel="nofollow" >repetitive strain injury (RSI)</a>. I can&#8217;t stress this important point enough. Your periodical bucks, and most significantly <strong>your family</strong>, depends on the wellbeing of your hands&#8230; <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" /> </p>
<p><em>PS:</em> And in case you&#8217;re wondering who allegedly received the kiss in the first picturistic illustration&#8230;</p>
<p><a href="http://www.flickr.com/photos/kolassss/420824078/" rel="nofollow"  title="it's YOU! ;-)"><img src="http://farm1.static.flickr.com/181/420824078_bc165665d6_m.jpg" height="240" width="219" title="Thank You, My Friend! :)" alt="420824078 bc165665d6 m Thank You, My Friend! :)" /></a><br />
 <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_razz.gif' alt="icon razz Thank You, My Friend! :)" class='wp-smiley' title="Thank You, My Friend! :)" /> </p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/08/29/thank-you-my-friend/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Better Way to GUI Ruby Apps</title>
		<link>http://www.adaruby.com/2007/08/24/a-better-way-to-gui-ruby-apps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-better-way-to-gui-ruby-apps</link>
		<comments>http://www.adaruby.com/2007/08/24/a-better-way-to-gui-ruby-apps/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 11:06:02 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/08/24/a-better-way-to-gui-ruby-apps/</guid>
		<description><![CDATA[Profligacy is a JRuby library that makes building Swing Graphical User Interface much easier than with Raw code. It’s not a builder as with many other projects, but instead a simple Ruby way to structure the UI for the 80% common cases you’ll encounter. It’s actively used in the Utu iHate client. iHate started as [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F24%2Fa-better-way-to-gui-ruby-apps%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F24%2Fa-better-way-to-gui-ruby-apps%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="A Better Way to GUI Ruby Apps" alt=" A Better Way to GUI Ruby Apps" /><br />
			</a>
		</div>
<p><a href="http://www.flickr.com/photos/ameliatzeni/432847516/" rel="nofollow"  title="Ruby on their fingers"><img src="http://farm1.static.flickr.com/147/432847516_28091bd08f.jpg?v=0" height="500" width="375" title="A Better Way to GUI Ruby Apps" alt=" A Better Way to GUI Ruby Apps" /></a></p>
<p><a href="http://ihate.rubyforge.org/profligacy/" rel="nofollow"  title="Profligacy">Profligacy</a> is a JRuby library that makes building <a href="http://java.sun.com/docs/books/tutorial/uiswing/" rel="nofollow" >Swing</a> Graphical User Interface <strong>much</strong> easier than with Raw code.  It’s not a builder as with many other projects, but instead a simple Ruby way to structure the UI for the 80% common cases you’ll encounter.</p>
<p>It’s actively used in the <a href="http://savingtheinternetwithhate.com/" rel="nofollow" >Utu</a> <a href="http://ihate.rubyforge.org/" rel="nofollow" >iHate</a> client.  iHate started as a  RubyCocoa project and then convert to JRuby and Swing.</p>
<p>The purpose of Profligacy is <strong>not</strong> to be a complete way of hiding Swing components from you.  You’ll still be making JButtons and  JLabels, you’ll just be putting them into a Ruby idiomatic code structure that doesn’t make your eyes hemorrhage diarrhea like when you try to code in Java.</p>
<p>The only real innovation in Profligacy is a simpler way to configure a <a href="http://java.sun.com/javase/6/docs/api/javax/swing/GroupLayout.html" rel="nofollow" >GroupLayout</a> using a simple regex/wiki style syntax.  This is a work in progress, but it should make building GUIs much much easier.</p>
<p>Sample code:</p>
<pre>require 'profligacy/swing'
require 'profligacy/lel'

module Test
  include_package 'javax.swing'
  include Profligacy

  layout = "
     [ label_1         | label3      ]
     [ (300,300)*text1 | (150)people ]
     [ &lt;label2         | _           ]
     [ message         | buttons     ]
  "

  ui = Swing::LEL.new(JFrame,layout) do |c,i|
    # nothing here for now
  end

  ui.build(:args =&gt; "Simple LEL Example")
end</pre>
<p>The result:</p>
<p><img src="http://ihate.rubyforge.org/profligacy/images/sample_lel_gui_nested.png" alt="sample lel gui nested A Better Way to GUI Ruby Apps" height="397" width="529" title="A Better Way to GUI Ruby Apps" /></p>
<p>TADA! <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile A Better Way to GUI Ruby Apps" class='wp-smiley' title="A Better Way to GUI Ruby Apps" /> </p>
<p>No fluff required.</p>
<p>Profligacy is really easy to use, but you should still be referring to the Swing™ docs to learn how to actually use the components.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.adaruby.com/2007/08/24/a-better-way-to-gui-ruby-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

