<?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; Complaints</title>
	<atom:link href="http://www.adaruby.com/category/complaints/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>A Server Hard Drive Crash :(</title>
		<link>http://www.adaruby.com/2008/05/12/a-server-hard-drive-crash/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-server-hard-drive-crash</link>
		<comments>http://www.adaruby.com/2008/05/12/a-server-hard-drive-crash/#comments</comments>
		<pubDate>Mon, 12 May 2008 10:31:32 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Complaints]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://adaruby.com/2008/05/12/a-server-hard-drive-crash/</guid>
		<description><![CDATA[Just got a server hard drive crash We should be back operational soon. In the mean time please bear with us. Thank you. No related posts. Related posts brought to you by Yet Another Related Posts Plugin.


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%2F05%2F12%2Fa-server-hard-drive-crash%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F05%2F12%2Fa-server-hard-drive-crash%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="A Server Hard Drive Crash :(" alt=" A Server Hard Drive Crash :(" /><br />
			</a>
		</div>
<p>Just got a server hard drive crash <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_sad.gif' alt="icon sad A Server Hard Drive Crash :(" class='wp-smiley' title="A Server Hard Drive Crash :(" /> </p>
<p>We should be back operational soon. In the mean time please bear with us. Thank you. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile A Server Hard Drive Crash :(" class='wp-smiley' title="A Server Hard Drive Crash :(" /> </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/05/12/a-server-hard-drive-crash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing RubyGems in Ubuntu Gutsy Installation</title>
		<link>http://www.adaruby.com/2008/03/24/fixing-rubygems-in-ubuntu-gutsy-installation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fixing-rubygems-in-ubuntu-gutsy-installation</link>
		<comments>http://www.adaruby.com/2008/03/24/fixing-rubygems-in-ubuntu-gutsy-installation/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 11:57:08 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[rubygems.ruby]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://adaruby.com/2008/03/24/fixing-rubygems-in-ubuntu-gutsy-installation/</guid>
		<description><![CDATA[Upgrading to the latest RubyGems in Ubuntu Gutsy is a bit non-straightforward. I&#8217;d like to share a quick fix this time. It&#8217;s trivial when you know it, but if not, a friend of mine has almost hosed his system just because of this annoying &#8220;bug&#8221;. Installing Ruby in Ubuntu is pretty simple: sudo aptitude install [...]


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%2F03%2F24%2Ffixing-rubygems-in-ubuntu-gutsy-installation%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2008%2F03%2F24%2Ffixing-rubygems-in-ubuntu-gutsy-installation%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Fixing RubyGems in Ubuntu Gutsy Installation" alt=" Fixing RubyGems in Ubuntu Gutsy Installation" /><br />
			</a>
		</div>
<p><a href="http://www.flickr.com/photos/evil_genius_photography/1415180013/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1098/1415180013_435881aab1.jpg?v=0" alt=" Fixing RubyGems in Ubuntu Gutsy Installation" height="500" width="333" title="Fixing RubyGems in Ubuntu Gutsy Installation" /></a></p>
<p>Upgrading to the latest <a href="http://www.rubygems.org/" rel="nofollow" >RubyGems</a> in <a href="http://www.ubuntu.com/" rel="nofollow" >Ubuntu</a> Gutsy is a bit non-straightforward. I&#8217;d like to share a quick fix this time. It&#8217;s trivial when you know it, but if not, a friend of mine has almost hosed his system just because of this annoying &#8220;bug&#8221;.</p>
<p>Installing <a href="http://www.ruby-lang.org/" rel="nofollow" >Ruby</a> in Ubuntu is pretty simple:</p>
<pre>sudo aptitude install ruby ri irb rdoc rubygems libruby-extras libmysql-ruby ruby1.8-dev</pre>
<p>(add other packages as you see fit)</p>
<p>The problem occurs right after you upgrade RubyGems to the latest version:</p>
<pre>sudo gem update --system</pre>
<p>Then you get something like this:</p>
<pre>ceefour@caliva:/usr/bin$ gem
/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)</pre>
<p>Logging in and out doesn&#8217;t work. The world is coming to an end!</p>
<p>Don&#8217;t worry, the world is still running. Check out your /usr/bin folder:</p>
<pre>ceefour@caliva:/usr/bin$ ls -la gem*
-rwxr-xr-x 1 root root 701 2007-08-24 12:18 gem
-rwxr-xr-x 1 root root 698 2008-03-20 09:20 gem1.8
-rwxr-xr-x 1 root root  84 2008-03-20 09:20 gemlock
-rwxr-xr-x 1 root root  89 2008-03-20 09:20 gem_mirror
-rwxr-xr-x 1 root root  76 2008-03-20 09:20 gemri
-rwxr-xr-x 1 root root  89 2008-03-20 09:20 gem_server
-rwxr-xr-x 1 root root  86 2008-03-20 09:20 gemwhich</pre>
<p>So, there is some mismatch between gem and gem1.8. The latter being the newer/correct version.</p>
<p>Simply remove the &#8220;gem&#8221; one and replace (or link) it to the &#8220;gem1.8&#8243; one:</p>
<pre>ceefour@caliva:/usr/bin$ sudo rm gem
ceefour@caliva:/usr/bin$ sudo ln -s gem1.8 gem</pre>
<p>Now:</p>
<pre>ceefour@caliva:/usr/bin$ gem -v
1.0.1</pre>
<p>Presto! We&#8217;re back in business. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Fixing RubyGems in Ubuntu Gutsy Installation" class='wp-smiley' title="Fixing RubyGems in Ubuntu Gutsy Installation" /> </p>
<p>Interesting RubyGems articles:</p>
<ul>
<li><a href="http://blog.fiveruns.com/2008/3/3/compiling-ruby-rubygems-and-rails-on-ubuntu" rel="nofollow" >Compiling Ruby, RubyGems and Rails on Ubuntu</a></li>
<li><a href="http://dmitterdorfer.blogspot.com/2006/01/ruby-gems-on-ubuntu-linux.html" rel="nofollow" >Jag har litet bråttom: Ruby Gems on Ubuntu Linux</a></li>
<li><a href="http://wafa.web.id/2008/01/20/ruby-rubygems-mirroring/" rel="nofollow" >:: nEvEr gIVeUp :: » Ruby, RubyGems Mirroring</a></li>
<li><a href="http://www.vmunix.com/mark/blog/archives/2006/04/08/ruby-gems-still-doesnt-work-on-104/" rel="nofollow" >VMUNIX Blues » Blog Archive » Ruby GEMS still doesn’t work on 10.4?</a></li>
<li><a href="http://digitalemagine.com/wordpress/archives/18" rel="nofollow" >Stefano’s Blog(s) » The magic world of Ruby, Rails and RubyGems &#8230;</a></li>
<li><a href="http://www.openlogic.com/blogs/2007/06/rubyrailsmysql-installation-h-e-double-hockey-sticks/" rel="nofollow" >Ruby/RubyGems/Rails/MySQL installation h e double-hockey sticks &#8230;</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/2008/03/24/fixing-rubygems-in-ubuntu-gutsy-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Call for Help: What is the Keyboard YOU Use?</title>
		<link>http://www.adaruby.com/2007/08/24/quick-call-for-help-what-is-the-keyboard-you-use/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-call-for-help-what-is-the-keyboard-you-use</link>
		<comments>http://www.adaruby.com/2007/08/24/quick-call-for-help-what-is-the-keyboard-you-use/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 03:10:21 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/08/24/quick-call-for-help-what-is-the-keyboard-you-use/</guid>
		<description><![CDATA[I need your help to buy a new USB keyboard in the next few days. I&#8217;ve been typing exclusively on a laptop for the past 4 months and by God, my hand hurts like hell right now and I don&#8217;t intend continuing so. This isn&#8217;t any regular Ruby post. So, let me know of your [...]


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%2Fquick-call-for-help-what-is-the-keyboard-you-use%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F24%2Fquick-call-for-help-what-is-the-keyboard-you-use%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Quick Call for Help: What is the Keyboard YOU Use?" alt=" Quick Call for Help: What is the Keyboard YOU Use?" /><br />
			</a>
		</div>
<p>I need your help to buy a new USB keyboard in the next few days. I&#8217;ve been typing exclusively on a laptop for the past 4 months and by God, my hand hurts like hell right now and I don&#8217;t intend continuing so.</p>
<p><a href="http://www.flickr.com/photos/winkyskinky/321713482/" rel="nofollow"  title="Do you consider this photo offensive? Let me know if so."><img src="http://farm1.static.flickr.com/130/321713482_941440ec2f.jpg" title="Quick Call for Help: What is the Keyboard YOU Use?" alt="321713482 941440ec2f Quick Call for Help: What is the Keyboard YOU Use?" /></a></p>
<p>This isn&#8217;t any regular Ruby post.</p>
<p>So, let me know of your recommendations. It&#8217;d be great if you actually used it or typed on it, nevertheless any links would be helpful.</p>
<p>The winner recommendation will get a personal thanks from me. (I mean that literally) <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Quick Call for Help: What is the Keyboard YOU Use?" class='wp-smiley' title="Quick Call for Help: What is the Keyboard YOU Use?" /> </p>
<p><img src="http://images10.newegg.com/NeweggImage/ProductImageCompressAll200/23-109-156-02.jpg" align="right" height="135" width="180" title="Quick Call for Help: What is the Keyboard YOU Use?" alt="23 109 156 02 Quick Call for Help: What is the Keyboard YOU Use?" /><em>PS: </em>In case you&#8217;re interested, what I&#8217;m targeting now is <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16823109156" rel="nofollow" >Microsoft Comfort Curve 2000</a> (sans mouse). Seems to have great reviews, nice price too (+/- $20).</p>
<p><em>Update: </em>Here&#8217;s my workstation now, with a Colemak &#8220;poster&#8221;&#8230;</p>
<p><a href="http://www.flickr.com/photos/ceefour/1231522405/" rel="nofollow" ><img src="http://farm2.static.flickr.com/1125/1231522405_8f324b86af.jpg?v=0" height="375" width="500" title="Quick Call for Help: What is the Keyboard YOU Use?" alt=" Quick Call for Help: What is the Keyboard YOU Use?" /></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/2007/08/24/quick-call-for-help-what-is-the-keyboard-you-use/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Kemalasan Seorang Ruby Programmer</title>
		<link>http://www.adaruby.com/2007/08/09/kemalasan-seorang-ruby-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kemalasan-seorang-ruby-programmer</link>
		<comments>http://www.adaruby.com/2007/08/09/kemalasan-seorang-ruby-programmer/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 16:18:57 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Indonesia]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/08/09/kemalasan-seorang-ruby-programmer/</guid>
		<description><![CDATA[Kadang-kadang manusia memang keterlaluan malasnya. (pointing at myself) Bingung gimana caranya mindahin daftar URL yang di Planet Ruby Indonesia ke halaman Daftar Situs Ruby di Wiki Ruby Indonesia. Jadi ya, terpaksa deh&#8230; pake &#8220;cara lama&#8221;. Select, View Source, Copy&#38;Paste, ketik sedikit kode Ruby&#8230; ceefour@ojalanow:~$ irb -rubygems -rhpricot irb(main):001:0&#62; doc = &#60;&#60;HEREDOC irb(main):002:0" &#60;ul class="links"&#62; irb(main):003:0" [...]


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%2F09%2Fkemalasan-seorang-ruby-programmer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F08%2F09%2Fkemalasan-seorang-ruby-programmer%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Kemalasan Seorang Ruby Programmer" alt=" Kemalasan Seorang Ruby Programmer" /><br />
			</a>
		</div>
<p>Kadang-kadang manusia memang keterlaluan malasnya. (pointing at myself)<br />
Bingung gimana caranya mindahin daftar URL yang di <a href="http://planet.ruby-id.web.id/" rel="nofollow"  title="Planet Ruby Indonesia">Planet Ruby Indonesia</a> ke <a href="http://wiki.ruby-id.web.id/wiki/Daftar_Situs_Ruby" rel="nofollow"  title="Daftar Situs Ruby">halaman Daftar Situs Ruby</a> di <a href="http://wiki.ruby-id.web.id/" rel="nofollow" >Wiki Ruby Indonesia</a>.</p>
<p><a href="http://www.flickr.com/photos/xlacrymosax/1056995539/" rel="nofollow"  title="lazy animal"><img src="http://farm2.static.flickr.com/1409/1056995539_fcb3ba2ad0.jpg?v=0" alt=" Kemalasan Seorang Ruby Programmer" height="334" width="500" title="Kemalasan Seorang Ruby Programmer" /></a></p>
<p>Jadi ya, terpaksa deh&#8230; pake &#8220;cara lama&#8221;. Select, View Source, Copy&amp;Paste, ketik sedikit kode Ruby&#8230;</p>
<p><code>ceefour@ojalanow:~$ irb -rubygems -rhpricot<br />
<font color="#ccc">irb(main):001:0&gt; doc = &lt;&lt;HEREDOC<br />
irb(main):002:0" &lt;ul class="links"&gt;<br />
irb(main):003:0" &lt;li class="first"&gt;<br />
irb(main):004:0" &lt;a href="http://adityakircon.blogsome.com/feed/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://adityakircon.blogsome.com" title="Just Try To Be a Bloggrammer"&gt;Aditya Agustyana&lt;/a&gt;<br />
e="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://microjet.ath.cx/WebWiki/WelcomePage.html" title="Gnomic Notes"&gt;Yohanes Santoso&lt;/a&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
irb(main):005:0" &lt;/li&gt;<br />
irb(main):006:0"<br />
irb(main):007:0" &lt;li &gt;<br />
irb(main):008:0" &lt;a href="http://feeds.feedburner.com/Blogversive" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://andryshuzain.com/" title="Andry S Huzain"&gt;Andry S. Huzain&lt;/a&gt;<br />
irb(main):009:0" &lt;/li&gt;<br />
irb(main):010:0" &lt;li &gt;<br />
irb(main):011:0" &lt;a href="http://ariekusumaatmaja.wordpress.com/feed/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://ariekusumaatmaja.wordpress.com" title="World of Ruby Indonesia"&gt;Arie Kusuma Atmaja&lt;/a&gt;<br />
irb(main):012:0" &lt;/li&gt;<br />
irb(main):013:0" &lt;li &gt;<br />
irb(main):014:0" &lt;a href="http://thinkruby.org/atom/feed" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://thinkruby.org" title="ThinkRuby"&gt;Budi Susanto&lt;/a&gt;<br />
irb(main):015:0" &lt;/li&gt;<br />
irb(main):016:0" &lt;li &gt;<br />
irb(main):017:0" &lt;a href="http://hendrastation.wordpress.com/feed/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://hendrastation.wordpress.com" title="hendrastation"&gt;Hendra&lt;/a&gt;<br />
irb(main):018:0"<br />
irb(main):019:0" &lt;/li&gt;<br />
irb(main):020:0" &lt;li &gt;<br />
irb(main):021:0" &lt;a href="http://feeds.feedburner.com/Web2WithRubyOnRails" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.adaruby.com" title="Web 2.0 with Ruby on Rails"&gt;Hendy Irawan&lt;/a&gt;<br />
irb(main):022:0" &lt;/li&gt;<br />
irb(main):023:0" &lt;li &gt;<br />
irb(main):024:0" &lt;a href="http://feeds.feedburner.com/JRubyInside" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.rubyinside.com/" title="JRuby Inside"&gt;JRuby Inside&lt;/a&gt;<br />
irb(main):025:0" &lt;/li&gt;<br />
irb(main):026:0" &lt;li &gt;<br />
irb(main):027:0" &lt;a href="http://blog.bstrap.com/rss" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://julius.sirait.net/" title="Julius Sirait"&gt;Julius Sirait&lt;/a&gt;<br />
irb(main):028:0" &lt;/li&gt;<br />
irb(main):029:0" &lt;li &gt;<br />
irb(main):030:0"<br />
irb(main):031:0" &lt;a href="http://www.kojack.web.id/feed/atom/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.kojack.web.id" class="message" title="internal server error"&gt;Kojack&lt;/a&gt;<br />
irb(main):032:0" &lt;/li&gt;<br />
irb(main):033:0" &lt;li &gt;<br />
irb(main):034:0" &lt;a href="http://feeds.feedburner.com/mrofiq" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.mrofiq.com" title="No Fun No Life"&gt;Muhammad Rofiq&lt;/a&gt;<br />
irb(main):035:0" &lt;/li&gt;<br />
irb(main):036:0" &lt;li &gt;<br />
irb(main):037:0" &lt;a href="http://feeds.feedburner.com/chickenonrails" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.diki.or.id/blog/public/chicken-on-rails" title="Hear no chickens, see no chickens, talk no chickens - Chicken on Rails"&gt;Niwatori&lt;/a&gt;<br />
irb(main):038:0" &lt;/li&gt;<br />
irb(main):039:0" &lt;li &gt;<br />
irb(main):040:0" &lt;a href="http://bpdp.wordpress.com/feed/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://bpdp.wordpress.com" title="bpdp's logs"&gt;Pak Bambang&lt;/a&gt;<br />
irb(main):041:0"<br />
irb(main):042:0" &lt;/li&gt;<br />
irb(main):043:0" &lt;li &gt;<br />
irb(main):044:0" &lt;a href="http://www.ruby-id.web.id/rss/" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.ruby-id.web.id/rss/" class="message" title="internal server error"&gt;Ruby Indonesia&lt;/a&gt;<br />
irb(main):045:0" &lt;/li&gt;<br />
irb(main):046:0" &lt;li &gt;<br />
irb(main):047:0" &lt;a href="http://feeds.feedburner.com/RubyInside" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://www.rubyinside.com" title="Ruby Inside"&gt;Ruby Inside&lt;/a&gt;<br />
irb(main):048:0" &lt;/li&gt;<br />
irb(main):049:0" &lt;li &gt;<br />
irb(main):050:0" &lt;a href="http://microjet.ath.cx/WebWiki/wiki.rdf" title="subscribe"&gt;&lt;img src="template/images/ruby_link.png" alt="(RSS feed)" style="vertical-align: text-top; border: 0; padding: 0"&gt;&lt;/a&gt; &lt;a href="http://microjet.ath.cx/WebWiki/WelcomePage.html" title="Gnomic Notes"&gt;Yohanes Santoso&lt;/a&gt;<br />
irb(main):051:0" &lt;/li&gt;<br />
irb(main):052:0" &lt;/ul&gt;<br />
irb(main):053:0" HEREDOC<br />
=&gt; "&lt;ul class=\"links\"&gt;\n&lt;li class=\"first\"&gt;\n&lt;a href=\"http://adityakircon.blogsome.com/feed/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://adityakircon.blogsome.com\" title=\"Just Try To Be a Bloggrammer\"&gt;Aditya Agustyana&lt;/a&gt;\n&lt;/li&gt;\n\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/Blogversive\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://andryshuzain.com/\" title=\"Andry S Huzain\"&gt;Andry S. Huzain&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://ariekusumaatmaja.wordpress.com/feed/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://ariekusumaatmaja.wordpress.com\" title=\"World of Ruby Indonesia\"&gt;Arie Kusuma Atmaja&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://thinkruby.org/atom/feed\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://thinkruby.org\" title=\"ThinkRuby\"&gt;Budi Susanto&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://hendrastation.wordpress.com/feed/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://hendrastation.wordpress.com\" title=\"hendrastation\"&gt;Hendra&lt;/a&gt;\n\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/Web2WithRubyOnRails\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.adaruby.com\" title=\"Web 2.0 with Ruby on Rails\"&gt;Hendy Irawan&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/JRubyInside\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.rubyinside.com/\" title=\"JRuby Inside\"&gt;JRuby Inside&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://blog.bstrap.com/rss\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://julius.sirait.net/\" title=\"Julius Sirait\"&gt;Julius Sirait&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n\n&lt;a href=\"http://www.kojack.web.id/feed/atom/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.kojack.web.id\" class=\"message\" title=\"internal server error\"&gt;Kojack&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/mrofiq\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.mrofiq.com\" title=\"No Fun No Life\"&gt;Muhammad Rofiq&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/chickenonrails\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.diki.or.id/blog/public/chicken-on-rails\" title=\"Hear no chickens, see no chickens, talk no chickens - Chicken on Rails\"&gt;Niwatori&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://bpdp.wordpress.com/feed/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://bpdp.wordpress.com\" title=\"bpdp's logs\"&gt;Pak Bambang&lt;/a&gt;\n\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://www.ruby-id.web.id/rss/\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.ruby-id.web.id/rss/\" class=\"message\" title=\"internal server error\"&gt;Ruby Indonesia&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://feeds.feedburner.com/RubyInside\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://www.rubyinside.com\" title=\"Ruby Inside\"&gt;Ruby Inside&lt;/a&gt;\n&lt;/li&gt;\n&lt;li &gt;\n&lt;a href=\"http://microjet.ath.cx/WebWiki/wiki.rdf\" title=\"subscribe\"&gt;&lt;img src=\"template/images/ruby_link.png\" alt=\"(RSS feed)\" style=\"vertical-align: text-top; border: 0; padding: 0\"&gt;&lt;/a&gt; &lt;a href=\"http://microjet.ath.cx/WebWiki/WelcomePage.html\" title=\"Gnomic Notes\"&gt;Yohanes Santoso&lt;/a&gt;\n&lt;/li&gt;\n&lt;/ul&gt;\n"</font><br />
<strong> irb(main):054:0&gt; <font color="green">Hpricot(doc).search('li/a:nth(1)').each { |e| puts "* [#{e[:href]} #{e.inner_text}]" }</font>; nil<br />
* [http://adityakircon.blogsome.com Aditya Agustyana]<br />
* [http://andryshuzain.com/ Andry S. Huzain]<br />
* [http://ariekusumaatmaja.wordpress.com Arie Kusuma Atmaja]<br />
* [http://thinkruby.org Budi Susanto]<br />
* [http://hendrastation.wordpress.com Hendra]<br />
* [http://www.adaruby.com Hendy Irawan]<br />
* [http://www.rubyinside.com/ JRuby Inside]<br />
* [http://julius.sirait.net/ Julius Sirait]<br />
* [http://www.kojack.web.id Kojack]<br />
* [http://www.mrofiq.com Muhammad Rofiq]<br />
* [http://www.diki.or.id/blog/public/chicken-on-rails Niwatori]<br />
* [http://bpdp.wordpress.com Pak Bambang]<br />
* [http://www.ruby-id.web.id/rss/ Ruby Indonesia]<br />
* [http://www.rubyinside.com Ruby Inside]<br />
* [http://microjet.ath.cx/WebWiki/WelcomePage.html Yohanes Santoso]<br />
=&gt; nil<br />
</strong> irb(main):055:0&gt;</code></p>
<p><a href="http://wiki.ruby-id.web.id/wiki/Daftar_Situs_Ruby" rel="nofollow"  title="Daftar Situs Ruby">jadi deh</a> <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Kemalasan Seorang Ruby Programmer" class='wp-smiley' title="Kemalasan Seorang Ruby Programmer" /> </p>
<p><strong>PS:</strong> Sayang yach nggak dibikinin screencastnya.. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Kemalasan Seorang Ruby Programmer" class='wp-smiley' title="Kemalasan Seorang Ruby Programmer" />  Mungkin ini yang dimaksud <a href="http://ariekusumaatmaja.wordpress.com/" rel="nofollow"  title="Bos Arie Keren">mas Arie</a> dengan coding2 sulit? =))<br />
Hayo sapa yang mau ikutan <a href="http://ariekusumaatmaja.wordpress.com/2007/08/09/menuju-gathering-id-ruby-ke-3-detos-19-agustus-2007-pukul-1130-siang/" rel="nofollow" >gathering 19 agustus</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/2007/08/09/kemalasan-seorang-ruby-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Web 2.0 User Interface Design, Rethink-ed</title>
		<link>http://www.adaruby.com/2007/05/24/web-20-user-interface-design-rethink-ed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=web-20-user-interface-design-rethink-ed</link>
		<comments>http://www.adaruby.com/2007/05/24/web-20-user-interface-design-rethink-ed/#comments</comments>
		<pubDate>Thu, 24 May 2007 11:30:00 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Praises]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/05/24/web-20-user-interface-design-rethink-ed/</guid>
		<description><![CDATA[Seriously, on a more conceptual level, user interface is not just about flashy effects and visual treats. Enter: Bill Higgins’ The Uncanny Valley of User Interface Design. (via Ajaxian) Observe: There’s a lesson here for software designers, and one that I’ve talked about recently &#8211; we must ensure that we design our applications to remain [...]


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%2F05%2F24%2Fweb-20-user-interface-design-rethink-ed%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F05%2F24%2Fweb-20-user-interface-design-rethink-ed%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Web 2.0 User Interface Design, Rethink ed" alt=" Web 2.0 User Interface Design, Rethink ed" /><br />
			</a>
		</div>
<p>Seriously, on a more conceptual level, user interface is not just about flashy effects and visual treats.</p>
<p>Enter: Bill Higgins’ <a href="http://billhiggins.us/weblog/2007/05/17/the-uncanny-valley-of-user-interface-design/" rel="nofollow" >The Uncanny Valley of User Interface Design</a>.  (<a href="http://ajaxian.com/archives/the-uncanny-valley-of-user-interface-design" rel="nofollow"  title="The Uncanny Valley of User Interface Design">via</a> <a href="http://ajaxian.com/" rel="nofollow" >Ajaxian</a>)</p>
<p>Observe:</p>
<blockquote><p>There’s a lesson here for software designers, and one that <a href="http://billhiggins.us/weblog/2007/04/20/the-value-of-ui-consistency/" rel="nofollow"  title="the value of UI consistency">I’ve talked about recently</a> &#8211; we must ensure that we design our applications to remain consistent with the environment in which our software runs. In more concrete terms: a Windows application should look and feel like a Windows application, a Mac application should look and feel like a Mac application, and a web application should look and feel like a web application.</p>
<p>…</p>
<p>Just like Windows/Mac/Linux apps have a native look and feel, so too do browser-based applications. The native widgets of the web are the standard HTML elements &#8211; hyperlinks, tables, buttons, text inputs, select boxes, and colored spans and divs. We’ve had the tools to create richer web applications ever since pre-standards DOMs and Javascript 1.0, but it’s only been the combination of <a href="http://en.wikipedia.org/wiki/Document_Object_Model" rel="nofollow"  title="Document Object Model">DOM</a> (<a href="http://en.wikipedia.org/wiki/Internet_Explorer#Standards_support_2" rel="nofollow"  title="Internet Explorer - Standards support">semi-</a>)<a href="http://www.w3.org/TR/DOM-Level-2-Core/" rel="nofollow"  title="Document Object Model (DOM) Level 2 Core Specification">standardization</a>, <a href="http://en.wikipedia.org/wiki/XmlHttpRequest" rel="nofollow"  title="XmlHttpRequest">XHR</a> de-facto standardization, <a href="http://dojotoolkit.org/" rel="nofollow"  title="Dojo Toolkit">emerging</a> <a href="http://www.prototypejs.org/" rel="nofollow"  title="Prototype Javascript Library">libraries</a>, and exemplary next-gen apps like <a href="http://labs.google.com/suggest/" rel="nofollow"  title="Google Suggest">Google Suggest</a> and <a href="http://mail.google.com/" rel="nofollow"  title="Gmail">Gmail</a> that have led to a non-trivial segment of the software community to attempt richer web UIs which I believe we’re now lumping under the banner of ‘Ajax’ (or is it ‘RIA’?). Like the web and Java before it, the availability of Ajax technology is causing some developers to diverge from the native look and feel of the web in favor of a user interface style I call “desktop app in a web browser”.</p></blockquote>
<p>The magic belongs to the user.<a href="http://feeds.feedburner.com/~f/ajaxian?a=WbphFZ6v" rel="nofollow" ></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/2007/05/24/web-20-user-interface-design-rethink-ed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And This is Still Needed, for God Sakes!</title>
		<link>http://www.adaruby.com/2007/02/16/and-this-is-still-needed-for-god-sakes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=and-this-is-still-needed-for-god-sakes</link>
		<comments>http://www.adaruby.com/2007/02/16/and-this-is-still-needed-for-god-sakes/#comments</comments>
		<pubDate>Fri, 16 Feb 2007 08:32:41 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/02/16/and-this-is-still-needed-for-god-sakes/</guid>
		<description><![CDATA[This is far from being a Ruby post. But it got me smiling (although evilly). // set the shitty parameter stuff (I hate Crystal Reports!!!) ParameterDiscreteValue pdv = new ParameterDiscreteValue(); pdv.Value = title; workSessionsByEmployee.ParameterFields["RangeTitle"] .CurrentValues = new ParameterValues(new ParameterValue[] { pdv }); crystalReportViewer.ParameterFieldInfo = workSessionsByEmployee.ParameterFields; workSessionsReportTableAdapter.FillByRange( absensiStainDataSet.WorkSessionsReport, begin, end); ... workSessionsByEmployee.SetDataSource(absensiStainDataSet); ... private void crystalReportViewer_ReportRefresh(object [...]


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%2F02%2F16%2Fand-this-is-still-needed-for-god-sakes%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F02%2F16%2Fand-this-is-still-needed-for-god-sakes%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="And This is Still Needed, for God Sakes!" alt=" And This is Still Needed, for God Sakes!" /><br />
			</a>
		</div>
<p>This is far from being a Ruby post.</p>
<p>But it got me smiling (although evilly).</p>
<p><code><strong>  // set the shitty parameter stuff (I hate Crystal Reports!!!)</strong><br />
ParameterDiscreteValue pdv = new ParameterDiscreteValue();<br />
pdv.Value = title;<br />
workSessionsByEmployee.ParameterFields["RangeTitle"]<br />
.CurrentValues =<br />
new ParameterValues(new ParameterValue[] { pdv });<br />
crystalReportViewer.ParameterFieldInfo =<br />
workSessionsByEmployee.ParameterFields;<br />
workSessionsReportTableAdapter.FillByRange(<br />
absensiStainDataSet.WorkSessionsReport,<br />
begin, end);<br />
...<br />
workSessionsByEmployee.SetDataSource(absensiStainDataSet);<br />
...<br />
private void crystalReportViewer_ReportRefresh(object source,<br />
CrystalDecisions.Windows.Forms.ViewerEventArgs e) {<br />
<strong>  // and this is still needed! For God sakes!!!</strong><br />
e.Handled = true;<br />
}</code></p>
<p>Yes, it came from a client&#8217;s Visual Studio 2005 (C#) project that I wrote (pity who?), only a few  months old. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink And This is Still Needed, for God Sakes!" class='wp-smiley' title="And This is Still Needed, for God Sakes!" /> </p>
<p>What it does is filter the report based on a date range. Kinda&#8217; painful to me. I scoured the net, <a href="http://msdn.microsoft.com/" rel="nofollow" >MSDN</a>, whatever, but that&#8217;s the best technique I could find at that time (that actually works).</p>
<p>I wonder how similar functionality could be implemented <a href="http://www.amazon.com/gp/product/0672328844?ie=UTF8&amp;tag=gauldong-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0672328844" rel="nofollow" >the Ruby way</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/2007/02/16/and-this-is-still-needed-for-god-sakes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lazy Loading BLOBs in Active Record</title>
		<link>http://www.adaruby.com/2007/01/18/lazy-loading-blobs-in-active-record/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lazy-loading-blobs-in-active-record</link>
		<comments>http://www.adaruby.com/2007/01/18/lazy-loading-blobs-in-active-record/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 05:20:04 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/01/18/lazy-loading-blobs-in-active-record/</guid>
		<description><![CDATA[One of the performance-hurting issue in current Active Record is that it doesn&#8217;t allow you to lazy load BLOB columns (and sometimes, TEXT columns), which can contain huge data. Usually there&#8217;s nothing wrong, theoretically, with loading all columns. But let&#8217;s see how we can improve performance by lazy loading these columns&#8230; Using Views to Lazy [...]


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%2F01%2F18%2Flazy-loading-blobs-in-active-record%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F01%2F18%2Flazy-loading-blobs-in-active-record%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Lazy Loading BLOBs in Active Record" alt=" Lazy Loading BLOBs in Active Record" /><br />
			</a>
		</div>
<p>One of the performance-hurting issue in current Active Record is that it doesn&#8217;t allow you to lazy load BLOB columns (and sometimes, TEXT columns), which can contain huge data. Usually there&#8217;s nothing wrong, theoretically, with loading all columns. But let&#8217;s see how we can improve performance by lazy loading these columns&#8230;</p>
<p><strong>Using Views to Lazy Load Columns</strong></p>
<p>My workaround is not to create a separate table, but just create a separate view (I&#8217;m using PostgreSQL, but I believe you can do that too with recent MySQL). This view doesn&#8217;t contain the blob fields. I use set_table_name in the model to use this view. Since the view is updatable (in PostgreSQL you have to create several RULEs on the view to make it insert/update/delete-able), Active Record  doesn&#8217;t know it&#8217;s dealing with a &#8220;fake&#8221; table.</p>
<p>Whenever I want to load/update the actual content all I had to do is issue a select_value(&#8220;SELECT content FROM photos WHERE ID=?&#8221;, &#8230;) something like that. Usually you won&#8217;t need finder features just to load the lazy blob, only the corresponding ID(s).</p>
<p>The steps:</p>
<ol>
<li>Create a database view based on the original table, omitting the columns you want to lazy-load.</li>
<li>Make sure the view is updatable.</li>
<li>Use ActiveRecord::Base.set_table_name class method in your model to use the database view you just created.</li>
<li>Add accessors on your model to read/write lazyloaded columns using plain SQL.</li>
</ol>
<p>Perhaps there is already a plugin to handle this, but <a href="http://www.google.co.id/search?q=activerecord+blob+lazy+loading&amp;ie=utf-8&amp;oe=utf-8&amp;rls=com.ubuntu:en-US:official&amp;client=firefox-a" rel="nofollow" >a quick Google search</a> didn&#8217;t reveal this. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Lazy Loading BLOBs in Active Record" class='wp-smiley' title="Lazy Loading BLOBs in Active Record" /><br />
<strong>Caching Processed Images</strong></p>
<p>The next thing you may want to do is cache some BLOBs (or processed BLOBs) to files so Apache (or whatever your web server is) serves them directly, which is much faster than Rails processing.<br />
I don&#8217;t actually cache all images, since my photos table contain huge blobs (usually over 100 KB each). I only cache the thumbnails. At first request to a photo thumbnail, my app will process it using rmagick, then save the generated thumbnail into some folder in RAILS_ROOT/tmp. I have a special RewriteCond/RewriteRule directive in .htaccess so that if a requested thumbnail is already there, Rails won&#8217;t be ran at all and Apache serves it directly. This makes thumbnails *very* fast. (I symlink in RAILS_ROOT/public/tmp_thumbnails to the tmp/thumbnails folder)</p>
<p>Were I able to use memcached maybe I&#8217;ll use that too. Unfortunately not all hosting services provide this luxury.<br />
Steps:</p>
<ol>
<li>Create a temporary folder. Example: #{RAILS_ROOT}/tmp/thumbnails</li>
<li>Make a symbolic link in public to that folder: (how about Windows?)
<p>ln -s tmp/thumbnails public/tmp_thumbnails</li>
<li>Make sure your controller/action works correctly. Save the resulting output to a file in your tmp/thumbnails folder.</li>
<li>Edit your .htaccess as such:
<p># Make sure the file exists<br />
RewriteCond %{DOCUMENT_ROOT}/tmp_thumbnails/$1.jpg -f</p>
<p># Rewrite the URL so it points to the file, not Rails<br />
RewriteRule ^thumbnails/(\d+)$ tmp_thumbnails/$1.jpg [L]</li>
</ol>
<p>Sorry for the too theoretical vague steps. <img src='http://www.adaruby.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Lazy Loading BLOBs in Active Record" class='wp-smiley' title="Lazy Loading BLOBs in Active Record" /> </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/01/18/lazy-loading-blobs-in-active-record/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mimicking ON DELETE NO ACTION / RESTRICT in Active Record</title>
		<link>http://www.adaruby.com/2007/01/17/mimicking-on-delete-no-action-restrict-in-active-record/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mimicking-on-delete-no-action-restrict-in-active-record</link>
		<comments>http://www.adaruby.com/2007/01/17/mimicking-on-delete-no-action-restrict-in-active-record/#comments</comments>
		<pubDate>Wed, 17 Jan 2007 07:46:24 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2007/01/17/mimicking-on-delete-no-action-restrict-in-active-record/</guid>
		<description><![CDATA[Active Record associations (has_many, has_one, belongs_to, has_and_belongs_to_many, etc.) only allows you to set :dependent as :destroy, :delete_all, or :nullify. In the &#8220;real world&#8221;,some DBMSs (like PostgreSQL, which happen to be my favorite) allow you to have NO ACTION / RESTRICT during delete or update. Putting this on the DBMS will work most of the time. [...]


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%2F01%2F17%2Fmimicking-on-delete-no-action-restrict-in-active-record%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2007%2F01%2F17%2Fmimicking-on-delete-no-action-restrict-in-active-record%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Mimicking ON DELETE NO ACTION / RESTRICT in Active Record" alt=" Mimicking ON DELETE NO ACTION / RESTRICT in Active Record" /><br />
			</a>
		</div>
<p>Active Record associations (has_many, has_one, belongs_to, has_and_belongs_to_many, etc.) only allows you to set :dependent as :destroy, :delete_all, or :nullify.</p>
<p>In the &#8220;real world&#8221;,some DBMSs (like PostgreSQL, which happen to be my favorite) allow you to have NO ACTION / RESTRICT during delete or update. Putting this on the DBMS will work most of the time. However, when you do testing with transactional fixtures, this will very likely cause problems. A failed statement will cause the transaction to &#8220;hang&#8221;, which can cause nasty error messages.</p>
<p>Besides, you want to handle these kinds of stuff in your Active Record model, don&#8217;t you? Here&#8217;s one quick way, use the &#8220;before_destroy&#8221; handler:</p>
<blockquote><p>class Role  :nullify # should be restrict</p>
<p>private<br />
def ensure_no_users<br />
raise &#8216;There are still users in this role.&#8217; if !users.empty?<br />
end<br />
end</p></blockquote>
<p><strong>Note:</strong> You must put the &#8220;before_destroy&#8221; before the association (has_many). Otherwise it won&#8217;t work as advertised.</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/01/17/mimicking-on-delete-no-action-restrict-in-active-record/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>So Hard Just to Be A Star&#8230;</title>
		<link>http://www.adaruby.com/2006/12/22/so-hard-just-to-be-a-star/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=so-hard-just-to-be-a-star</link>
		<comments>http://www.adaruby.com/2006/12/22/so-hard-just-to-be-a-star/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 02:18:04 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Complaints]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://adaruby.com/2006/12/22/so-hard-just-to-be-a-star/</guid>
		<description><![CDATA[Overheard from Bugzilla: Setting the default application on Vista doesn&#8217;t seam to work. &#8230; &#8212;&#8212;- Comment #27 From Seth Spitzer [:ss] 2006-09-20 09:45 PST [reply] &#8212;&#8212;- doug / robert. here come questions. please forgive my Vista / COM ignorance in advance! 1) for non-Vista, in nsWindowsShellService::SetDefaultBrowser(), we write the existing settings to MOZ_BACK_REGISTRY, and then [...]


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%2F2006%2F12%2F22%2Fso-hard-just-to-be-a-star%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2006%2F12%2F22%2Fso-hard-just-to-be-a-star%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="So Hard Just to Be A Star&#8230;" alt=" So Hard Just to Be A Star&#8230;" /><br />
			</a>
		</div>
<p>Overheard from <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=352424" rel="nofollow" >Bugzilla</a>:</p>
<blockquote><p><strong>Setting the default application on Vista doesn&#8217;t seam to work.</strong></p>
<p>&#8230;</p>
<p> &#8212;&#8212;- Comment #27 From Seth Spitzer [:ss]  2006-09-20 09:45 PST  [reply] &#8212;&#8212;-</p>
<p>doug / robert.  here come questions.  please forgive my Vista / COM ignorance<br />
in advance!</p>
<p>1) for non-Vista, in nsWindowsShellService::SetDefaultBrowser(), we write the<br />
existing settings to MOZ_BACK_REGISTRY, and then in<br />
nsWindowsShellService::RestoreFileSettings(), we restore them.</p>
<p>So for Vista, shouldn&#8217;t that mean we should be calling ClearUserAssociations()<br />
in nsWindowsShellService::RestoreFileSettingsVista()?</p>
<p>2)  nsWindowsShellService::SetDefaultBrowser() takes a bool, aForAllUsers.<br />
Shouldn&#8217;t this be passed through to SetDefaultBrowserVista(), and if false,<br />
shouldn&#8217;t we calling SetAppAsDefault() with the appropriate ASSOCIATIONLEVEL?</p>
<p>3)  I am guess thing that the IApplicationAssociationRegistration interface is<br />
duplicated in nsWindowsShellService.h so that will compile on versions of<br />
versions of windows without shobjidl.h.  is that right?  But I think we should<br />
move it to nsWindowsShellService.cpp (instead of having it in<br />
nsWindowsShellService.h)</p>
<p>4)  Any reason not to use CComPtr?
</p></blockquote>
<p><em>Phew!!</em> So much just to be the default browser? I can understand the security issues involved , but I didn&#8217;t realize it has to be <strong>that</strong> difficult.</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/2006/12/22/so-hard-just-to-be-a-star/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google&#8217;s Results are More Becoming Unpredictable!!</title>
		<link>http://www.adaruby.com/2006/11/03/googles-results-are-more-becoming-unpredictable/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=googles-results-are-more-becoming-unpredictable</link>
		<comments>http://www.adaruby.com/2006/11/03/googles-results-are-more-becoming-unpredictable/#comments</comments>
		<pubDate>Sat, 04 Nov 2006 02:25:15 +0000</pubDate>
		<dc:creator>ceefour</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Complaints]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://adaruby.com/2006/11/03/googles-results-are-more-becoming-unpredictable/</guid>
		<description><![CDATA[SEO (Search Engine Optimization) is becoming more and more difficult nowadays. Other than the obvious fact that there are lots of search engines, several big ones (the ubiquitous Google included), and also meta search engines and a host of other complications. Now it&#8217;s becoming more common for search engines to have their own &#8220;sliders&#8221; for [...]


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%2F2006%2F11%2F03%2Fgoogles-results-are-more-becoming-unpredictable%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.adaruby.com%2F2006%2F11%2F03%2Fgoogles-results-are-more-becoming-unpredictable%2F&amp;source=AdaRubyWeb&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" title="Google&#8217;s Results are More Becoming Unpredictable!!" alt=" Google&#8217;s Results are More Becoming Unpredictable!!" /><br />
			</a>
		</div>
<p>SEO (Search Engine Optimization) is becoming more and more difficult nowadays. Other than the obvious fact that there are lots of search engines, several big ones (the ubiquitous <a href="http://www.google.com/" rel="nofollow" >Google</a> included), and also meta search engines and a host of other complications.</p>
<p><a href="http://www.flickr.com/photos/bombingletters/190342436/" rel="nofollow" ><img width="500" height="378" title="Google&#8217;s Results are More Becoming Unpredictable!!" alt=" Google&#8217;s Results are More Becoming Unpredictable!!" /></a></p>
<p>Now it&#8217;s becoming more common for search engines to have their own &#8220;sliders&#8221; for manipulating the search results. Google has Personalized Search (Beta) and others like <a href="http://search.msn.com/" rel="nofollow" >MSN Search</a> has something like this too.</p>
<p>When you think Google&#8217;s Personalized Search or &#8220;Search the Web&#8221; or &#8220;Search only in&#8230;&#8221; or SafeSearch are the only ones manipulating your results, well I thought the same way&#8230; But was I ever been more wrong:</p>
<ul>
<li>
<p>Google &#8220;tiki jne&#8221; in English language: <a href="http://www.google.com/search?hl=en&amp;q=tiki+jne" rel="nofollow" >http://www.google.com/search?hl=en&amp;q=tiki+jne</a></p>
</li>
<li>
<p>Google &#8220;tiki jne&#8221; in Indonesian language: <a href="http://www.google.com/search?hl=id&amp;q=tiki+jne" rel="nofollow" >http://www.google.com/search?hl=id&amp;q=tiki+jne</a></p>
</li>
</ul>
<p>When Google says &#8220;language&#8221;, I thought it means &#8220;user interface language&#8221;. But I never thought it would alter the search results as well. Go ahead and try it.</p>
<p>This has quite some implications. Since &#8220;Google in your language&#8221; has been here for a very, very long time (and many people are using localized Google unintentionally), it&#8217;s very true that the results you see in your language (or default English) will be entirely different than what the rest of the world sees.</p>
<p>And from what I looked for, it seems there&#8217;s no way to change this behavior (i.e. setting language to Indonesian but using the universal search results). As more and more things get personalized, you know there&#8217;ll be nothing universal in the future.</p>
<p><a href="http://www.flickr.com/photos/29281982@N00/101951607/" rel="nofollow" ><img src="http://static.flickr.com/33/101951607_f1abc552d5_m.jpg" width="240" align="right" title="Google&#8217;s Results are More Becoming Unpredictable!!" alt="101951607 f1abc552d5 m Google&#8217;s Results are More Becoming Unpredictable!!" /></a> <strong>Conclusion</strong></p>
<p>I&#8217;m not sure how to conclude. This may be good or may be bad. It sure is bad for some people, but I guess it&#8217;s a blessing for many others. Since Google and other search engines are more into this type of stuff in the near future, and they&#8217;re the experts, this has to be the way it should be. Even AdWords and AdSense are becoming more and more personal over time.</p>
<p>SEO is getting trickier, but it&#8217;s also getting easier at the same time because the search engine maker guys are making it easier for you to target YOUR personalized potential customers without you knowing it. I think that&#8217;s a win-win-win solution (win for you, win for your customers, and win for search engines).</p>
<p>
  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --><br />
  Technorati : <a href="http://technorati.com/tag/google" rel="nofollow"  rel="tag">google</a>, <a href="http://technorati.com/tag/internet" rel="nofollow"  rel="tag">internet</a>, <a href="http://technorati.com/tag/search" rel="nofollow"  rel="tag">search</a>, <a href="http://technorati.com/tag/search%20engine" rel="nofollow"  rel="tag">search engine</a>, <a href="http://technorati.com/tag/seo" rel="nofollow"  rel="tag">seo</a>, <a href="http://technorati.com/tag/web" rel="nofollow"  rel="tag">web</a> <br />Del.icio.us : <a href="http://del.icio.us/tag/google" rel="nofollow"  rel="tag">google</a>, <a href="http://del.icio.us/tag/internet" rel="nofollow"  rel="tag">internet</a>, <a href="http://del.icio.us/tag/search" rel="nofollow"  rel="tag">search</a>, <a href="http://del.icio.us/tag/search+engine" rel="nofollow"  rel="tag">search engine</a>, <a href="http://del.icio.us/tag/seo" rel="nofollow"  rel="tag">seo</a>, <a href="http://del.icio.us/tag/web" rel="nofollow"  rel="tag">web</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/2006/11/03/googles-results-are-more-becoming-unpredictable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

