<?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>existence, refactored &#187; Follow-Up</title>
	<atom:link href="http://blog.bryanbibat.net/category/follow-up/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bryanbibat.net</link>
	<description>With kindness comes naïveté. Courage becomes foolhardiness. And dedication has no reward.</description>
	<lastBuildDate>Thu, 17 May 2012 13:53:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Other languages you should learn</title>
		<link>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/</link>
		<comments>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 20:24:26 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1564</guid>
		<description><![CDATA[At first glance, this tweet in response to my previous post looks like a simple joke. But it&#8217;s actually true the more you think about it. Understanding body language is important because software engineering is more about dealing with people than with software itself: almost all failed software projects are due to people problems (e.g. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.bryanbibat.net/body_language.png" alt="body language" class="aligncenter" /></p>
<p>At first glance, this tweet in response to my <a href="http://blog.bryanbibat.net/2012/03/20/what-programming-language-should-i-learn/">previous post</a> looks like a simple joke. But it&#8217;s actually true the more you think about it.</p>
<p>Understanding <strong>body language</strong> is important because <a href="http://blog.bryanbibat.net/category/brain-dump/software-engineering-daily-entry/">software engineering</a> is more about dealing with people than with software itself: almost all failed software projects are due to people problems (e.g. management and client problems) instead of technology problems.</p>
<p>Here are some cases where knowing body language can make a difference:</p>
<ul>
<li><em>A client asks for too many features under an impossible deadline</em> &#8211; by gauging the client&#8217;s behavior, you can determine if she&#8217;s basically bluffing (to which you negotiate a compromise by reducing the scope) or if she&#8217;s really that stupid/sadistic (to which you drop the client for better ones).</li>
<li><em>A developer puts in too many hours into overtime</em> &#8211; depending on the dev&#8217;s behavior, a good manager would determine if that dev is simply temporarily getting brownie points for a promotion or upcoming long vacation. On the other hand, it may also mean that that dev is incompetent to the point that he needs more hours to fix his crappy code. At the worst case, it may also mean that that dev is already at <a href="blog.bryanbibat.net/2009/06/05/burnout">stage 2 &#8211; 3 of going into burnout</a>.
</ul>
<p>Another non-technical language you need to learn is <strong>Basic English</strong>.</p>
<p>Go ahead, laugh. But then recall the last time you&#8217;ve seen a &#8220;<a href="https://www.google.com/search?q=plz+send+me+teh+codez">plz send me teh codez</a>&#8221; post in a public forum or a job posting full of misspellings and grammatical errors (a big <em>warning sign</em>) and you&#8217;ll quickly realize how important it is to have a good grasp of the English language.</p>
<p>Lack of proper written English skills is a somewhat widespread problem in the current generation, with the prevalence of text-speak and the fact that a lot of young people don&#8217;t join international community websites/forums/mailing lists/chat rooms. This can be a problem when they enter the corporate world, where semi-formal English is the lingua franca: I&#8217;ve even heard of stories of project managers re-writing some of the team members mail before sending them to their foreign counterparts because of their poor English.</p>
<p>Note that your English doesn&#8217;t need to be at the level of essayists or other professional writers. In fact, simple, direct to the point (but at the same time, polite) messages is much more effective at communicating to clients or team members when compared to long-winded messages full of highfaluting words. Doubly so when dealing with clients whose primary language isn&#8217;t English.</p>
<p>To wrap things up, I just realized that I wrote about a similar topic <a href="http://blog.bryanbibat.net/2009/09/19/t-shaped-people/">a few years ago</a>. You don&#8217;t need to click that link, as the tl;dr is just the same thing I&#8217;ve been saying all the time: <em>developers need to learn more than just coding</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsFTW, now twice as fast!</title>
		<link>http://blog.bryanbibat.net/2012/02/06/railsftw-now-twice-as-fast/</link>
		<comments>http://blog.bryanbibat.net/2012/02/06/railsftw-now-twice-as-fast/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 16:22:11 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Fenix]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RailsFTW]]></category>
		<category><![CDATA[RailsInstaller]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby 1.9.3]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Ruby on Rails 3.2]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1520</guid>
		<description><![CDATA[My Game Jam post is waaay overdue but some stuff happened this week (impromptu upgrade, server migration) so I&#8217;ll only get around to post about it probably later today. Anyway, this post is just about the new version up over at RailsFTW. This experimental build is based on TCS&#8217;s patched Ruby build which boasted a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsftw.bryanbibat.net"><img alt="Rails FTW" class="aligncenter" src="http://www.bryanbibat.net/images/railsftw.png" /></a></p>
<p>My Game Jam post is waaay overdue but some stuff happened this week (impromptu upgrade, server migration) so I&#8217;ll only get around to post about it probably later today.</p>
<p>Anyway, this post is just about the new version up over at <a href="http://railsftw.bryanbibat.net">RailsFTW</a>. This experimental build is based on <a href="http://groups.google.com/group/thecodeshop/browse_thread/thread/29b6ef2062096902">TCS&#8217;s patched Ruby build</a> which boasted a ~200% increase in performance.</p>
<p>See it for yourself:</p>
<p><iframe width="480" height="360" src="http://www.youtube.com/embed/1pAn7xyLwW4" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/02/06/railsftw-now-twice-as-fast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RailsFTW v0.10 released, now with Ruby 1.9.3 and Rails 3.2</title>
		<link>http://blog.bryanbibat.net/2012/01/30/railsftw-v0-10-released-now-with-ruby-1-9-3-and-rails-3-2/</link>
		<comments>http://blog.bryanbibat.net/2012/01/30/railsftw-v0-10-released-now-with-ruby-1-9-3-and-rails-3-2/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:35:58 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[RailsFTW]]></category>
		<category><![CDATA[RailsInstaller]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby 1.9.3]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Ruby on Rails 3.2]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1517</guid>
		<description><![CDATA[Still hung-over from Global Game Jam 2012 (mini-write-up later) when I went to the RailsInstaller site on a whim. Noticed that it still isn&#8217;t using Rails 3.2. So I decided to update my own to be ahead again. Hopefully this would be the last RailsFTW version (hoping Luis would be able to convince Wayne to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsftw.bryanbibat.net"><img alt="Rails FTW" class="aligncenter" src="http://www.bryanbibat.net/images/railsftw.png" /></a></p>
<p>Still hung-over from <a href="http://globalgamejam.org/">Global Game Jam 2012</a> (mini-write-up later) when I went to the <a href="http://railsinstaller.org/">RailsInstaller</a> site on a whim.</p>
<p>Noticed that it still isn&#8217;t using Rails 3.2. So I decided to <a href="http://railsftw.bryanbibat.net">update my own to be ahead again</a>.</p>
<p>Hopefully this would be the last RailsFTW version (hoping Luis would be able to convince Wayne to include MySQL to RailsInstaller so I won&#8217;t need to this anymore LOL).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/01/30/railsftw-v0-10-released-now-with-ruby-1-9-3-and-rails-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game of Life Wallpaper published to Android Marketplace</title>
		<link>http://blog.bryanbibat.net/2011/12/11/game-of-life-wallpaper-published-to-android-marketplace/</link>
		<comments>http://blog.bryanbibat.net/2011/12/11/game-of-life-wallpaper-published-to-android-marketplace/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 14:46:03 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[published app]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1470</guid>
		<description><![CDATA[That little app/wallpaper we made at the code retreat? I&#8217;ve published it and it&#8217;s now free for download at the Android Marketplace. At the moment it&#8217;s not properly indexed in the Marketplace yet so searching &#8220;Game of Life Wallpaper&#8221; won&#8217;t return the link. A workaround is to search it using the search terms &#8220;code retreat&#8220;.]]></description>
			<content:encoded><![CDATA[<p><img alt="screenshot of wallpaper" src="http://www.bryanbibat.net/images/device-gol-ss.png" class="aligncenter"></p>
<p>That little app/wallpaper we made at <a href="http://blog.bryanbibat.net/2011/12/05/code-retreat-baguio-2011/">the code retreat</a>? I&#8217;ve published it and it&#8217;s now <a href="https://market.android.com/details?id=net.bryanbibat.apps"><em>free for download at the Android Marketplace</em></a>.</p>
<p>At the moment it&#8217;s not properly indexed in the Marketplace yet so searching &#8220;Game of Life Wallpaper&#8221; won&#8217;t return the link. A workaround is to search it using the search terms &#8220;<em>code retreat</em>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/12/11/game-of-life-wallpaper-published-to-android-marketplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notable CD-R King Items Holidays 2011 Edition</title>
		<link>http://blog.bryanbibat.net/2011/11/03/notable-cd-r-king-items-holidays-2011-edition/</link>
		<comments>http://blog.bryanbibat.net/2011/11/03/notable-cd-r-king-items-holidays-2011-edition/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 02:36:37 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[buying guide]]></category>
		<category><![CDATA[CD-R King]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1433</guid>
		<description><![CDATA[It&#8217;s been almost two and a half years since my post about hidden gems within the multitude of (often crappy) products found in CD-R King. Since that post, I&#8217;ve found a couple of new interesting finds worth a blog post. No, there won&#8217;t be any obvious things here (e.g. the laptop, netbook, tablet, etc). I [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been almost two and a half years since <a href="http://blog.bryanbibat.net/2009/06/13/notable-cd-r-king-items/">my post</a> about hidden gems within the multitude of (often crappy) products found in <a href="http://www.cdrking.com/">CD-R King</a>. Since that post, I&#8217;ve found a couple of new interesting finds worth a blog post.</p>
<p>No, there won&#8217;t be any obvious things here (e.g. the <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=9442&#038;main=104">laptop</a>, <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=9821&#038;main=104">netbook</a>, <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=10327&#038;main=104">tablet</a>, etc). I prefer not-so-obvious items that are mostly relevant to my interests.</p>
<p><span id="more-1433"></span>&#8211;</p>
<p>Ignoring the recent thing with the floods in Thailand, upgrading your hard drive is probably the most practical upgrade you can do with your computer nowadays regardless if you&#8217;re using a laptop or a desktop. Mechanical hard drives are getting more efficient in terms of capacity while SSD&#8217;s are getting cheaper and faster. </p>
<p>Unfortunately, there&#8217;s the problem with what to do with the old hard drives. For instance, when I bought a 2TB drive, I had enough storage space to replace 3 of my hard drives. So then I had 3 hard drives that I didn&#8217;t have any use for.</p>
<p>At this point you might guess &#8220;oh he&#8217;s going to suggest buying <a href="http://www.cdrking.com/index.php?productstype=All+Products&#038;searchvalue=enclosure&#038;x=0&#038;y=0&#038;mod=products&#038;type=search">an enclosure</a>&#8220;. </p>
<p>Sorry, but no. Enclosures are ok if you just have one disk drive on hand. But if you&#8217;ve got a bunch of SATA drives, changing drives can be a hassle: you need to open the enclosure to replace the HDD inside.</p>
<p>What I&#8217;d suggest is to consider getting <a href="http://www.cdrking.com/index.php?productstype=All+Products&#038;searchvalue=dock&#038;x=0&#038;y=0&#038;mod=products&#038;type=search">a docking station</a>.</p>
<p><img src="http://www.bryanbibat.net/images/sata_dock.jpg" alt="SATA dock" class="aligncenter" /></p>
<p>Yes, it&#8217;s basically a device that turns your spare SATA HDDs into huge flash drives (or diskettes, if you&#8217;re from my generation). </p>
<p>At USB 2.0 speed, you&#8217;d get around 32MBps transfer speeds which is good enough for backup purposes but too slow for general IO-heavy program use. If you&#8217;ve got a motherboard that supports USB 3.0, you may want to check <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=10522&#038;main=165">this one</a> out as it supports that newer standard. </p>
<p>&#8211;</p>
<p>What if instead of upgrading your hard drive, you instead upgrade your video card to an <a href="http://www.amd.com/us/products/technologies/amd-eyefinity-technology/Pages/eyefinity.aspx">Eyefinity</a>-equipped AMD card hoping to get some of that single-card <a href="http://blog.bryanbibat.net/2011/08/01/development-pc-build-for-august-2011/">triple monitor action</a>.</p>
<p>But what if you chose to get three non-<a href="http://en.wikipedia.org/wiki/DisplayPort">DisplayPort</a> monitors and you didn&#8217;t read the online discussions saying that you need at least one DisplayPort monitor to enable triple monitor mode?</p>
<p>Or what if you do get a DisplayPort monitor, say any of these <a href="http://www.tipidpc.com/viewitem.php?iid=11930320">two</a> <a href="www.tipidpc.com/viewitem.php?iid=11296887">monitors</a> from PCHub, but realize that your card and monitor doesn&#8217;t come bundled with a DisplayPort cable? Sure, there are DisplayPort cables out there, but the only shop I&#8217;ve seen carrying them in Makati (Octagon) only carries the 2 meter cables worth P1.2K.</p>
<p>So how do you pull off setup below (relatively) cheaply when you&#8217;re living in Metro Manila?</p>
<p><img src="http://www.bryanbibat.net/images/new_monitor_keyboard_scaled.jpg" alt="triple monitor" class="aligncenter" /></p>
<p>The trick here is that <em>all</em> DisplayPort to VGA adapters are &#8220;active&#8221; adapters, and thus will be treated as a full DP connection (when you use a &#8220;passive&#8221; DP to DVI or HDMI adapter, the ones only available in the country, it&#8217;s not treated like a DP connected monitor but as another DVI/HDMI connected monitor). </p>
<p><img src="http://www.bryanbibat.net/images/dp_vga_adapter.png" alt="DP to VGA" class="aligncenter" /></p>
<p>Luckily for <strike>me</strike> us, CD-R King carries <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=9399&#038;main=91">DP to VGA adapters</a>.</p>
<p>&#8211;</p>
<p>This last item is like the windmill of the previous list: it&#8217;s not really practical, but still pretty notable on its own right.</p>
<p><img src="http://www.bryanbibat.net/images/dyson_fan.jpg" alt="Dyson Air Multiplier" class="aligncenter" /></p>
<p>That is a bladeless <a href="http://www.dyson.com/fans/fans.asp">Dyson Air Multiplier</a> fan, another innovation from the famed industrial designer. It sells for <a href="http://www.dyson.com/store/productFan.asp?product=AM01-IRONBLUE">$299 directly from Dyson</a>.</p>
<p><img src="http://www.bryanbibat.net/images/stark_fan.jpg" alt="Stark Air Multiplier" class="aligncenter" /></p>
<p>And that is the bladeless <a href="http://www.cdrking.com/index.php?mod=products&#038;type=view&#038;sid=11050&#038;main=131">air multiplier fan</a> sold by CD-R King. </p>
<p>Comparing the two products side by side, one can see that they&#8217;re practically the same product. While it&#8217;s likely that the latter is a cheap knockoff of the former, you can&#8217;t totally discount the possibility that these are just <em>rebranded</em> surplus stock of the original, a common MO for CD-R King products. (<em>Update: I have reason to believe that these are Chinese knock-offs. Also you may want to check SM if they have similar knock-offs.</em>)</p>
<p>I&#8217;ve seen the fan displayed and demoed in some stores, but honestly, I&#8217;m not really impressed. Sure, the <a href="http://en.wikipedia.org/wiki/Dimmer">dimmer</a> (<a href="http://en.wikipedia.org/wiki/Potentiometer">potentiometer</a>?) switch for fine-tuning the strength of the fan is pretty cool (pun intended) and the lack of blades makes it ideal when around kids (but robs them of the robot voice/ghetto auto-tune experience), but overall, it&#8217;s just too expensive for the average person.</p>
<p>Still, it is <em>five times cheaper</em> than the original. For some people, to experience how it feels to have such a device around without paying an extra 10K (or more, thanks to the wonderfully corrupt Philippine customs bureau) may just be worth it.</p>
<p>&#8211;</p>
<p>A word of warning, though. The items above are pretty rare and it&#8217;s only at the Cubao Farmers branch that I&#8217;ve seen all three on display (though not at the same time).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/11/03/notable-cd-r-king-items-holidays-2011-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RailsFTW v0.9 released, now with Rails 3.1</title>
		<link>http://blog.bryanbibat.net/2011/10/04/railsftw-v0-9-released-now-with-rails-3-1/</link>
		<comments>http://blog.bryanbibat.net/2011/10/04/railsftw-v0-9-released-now-with-rails-3-1/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 02:43:42 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[RailsFTW]]></category>
		<category><![CDATA[RailsInstaller]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Ruby on Rails 3.1]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1426</guid>
		<description><![CDATA[Thanks to a Battlefield 3 Beta losing streak that I blame on my sucky internet connection, I&#8217;ve decided to update my hack-job of a standalone Windows installer for Rails. Now there are two separate installers, a Ruby 1.8.7 + Rails 3.0.10 installer and a Ruby 1.9.2 + Rails 3.1.0. Here&#8217;s a table to give a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsftw.bryanbibat.net"><img alt="Rails FTW" class="aligncenter" src="http://www.bryanbibat.net/images/railsftw.png" /></a></p>
<p>Thanks to a Battlefield 3 Beta losing streak that I blame on my sucky internet connection, I&#8217;ve decided to update <a href="http://railsftw.bryanbibat.net">my hack-job of a standalone Windows installer for Rails</a>.</p>
<p>Now there are two separate installers, a Ruby 1.8.7 + Rails 3.0.10 installer and a Ruby 1.9.2 + Rails 3.1.0. Here&#8217;s a table to give a quick comparison between these two installers with <a href="http://railsinstaller.org/">RailsInstaller</a> thrown into the mix:</p>
<table>
<tr>
<th>&nbsp;</th>
<th>RailsInstaller 2</th>
<th>RailsFTW (Rails 3.1)</th>
<th>RailsFTW (Rails 3.0)</th>
</tr>
<tr>
<td><strong>Ruby version</strong></td>
<td colspan="2">1.9.2-p290</td>
<td>1.8.7-p352</td>
</tr>
<tr>
<td><strong>Rails version</strong></td>
<td colspan="2">3.1.0</td>
<td>3.0.10</td>
</tr>
<tr>
<td><strong>File Size</strong></td>
<td>~55MB</td>
<td>~20MB</td>
<td>~10MB</td>
</tr>
<tr>
<td><strong>DB Adapter Gems</strong></td>
<td>sqlite3, pg, tiny_tds (MS SQL Server)</td>
<td colspan="2">sqlite3, mysql2</td>
</tr>
<tr>
<td><strong>Additional Features</strong></td>
<td>git, DevKit</td>
<td colspan="2">-</td>
</tr>
<tr>
<td><strong>Internet Connection Required?</strong></td>
<td>Yes</td>
<td>No (Bundler will fail to connect to server but new apps will still work)</td>
<td>No</td>
</tr>
<tr>
<td><strong>Compiled by</strong></td>
<td>Some of the biggest names in the Ruby community</td>
<td colspan="2">Some random third world developer. LOL</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/10/04/railsftw-v0-9-released-now-with-rails-3-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Starting a “professional” Rails 3.1 app with Web App Theme, Devise, and Kaminari</title>
		<link>http://blog.bryanbibat.net/2011/09/24/starting-a-professional-rails-3-1-app-with-web-app-theme-devise-and-kaminari/</link>
		<comments>http://blog.bryanbibat.net/2011/09/24/starting-a-professional-rails-3-1-app-with-web-app-theme-devise-and-kaminari/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 03:00:53 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Devise]]></category>
		<category><![CDATA[Haml]]></category>
		<category><![CDATA[kaminari]]></category>
		<category><![CDATA[Rspec]]></category>
		<category><![CDATA[Ruby on Rails 3.1]]></category>
		<category><![CDATA[web-app-theme]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1409</guid>
		<description><![CDATA[With the recent release of web-app-theme providing Rails 3.1 support, it&#8217;s time once again for me to write a tutorial on how to earn money from cheap clients who can&#8217;t afford designers. For reference, the previous tutorial can be read here. &#8211; Every Rails developer knows how to create a Rails app. It&#8217;s easy as [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent release of web-app-theme providing <a href="http://twitter.com/gravityblast/status/116140314770685952">Rails 3.1 support</a>, it&#8217;s time once again for me to write a tutorial on how to earn money from cheap clients who can&#8217;t afford designers.</p>
<p>For reference, <a href="http://blog.bryanbibat.net/2011/01/03/starting-a-professional-rails-app-with-haml-rspec-devise-and-web-app-theme/">the previous tutorial can be read here</a>.</p>
<p>&#8211;</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-05.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-05.jpg" alt="crud screen" class="aligncenter"></a></p>
<p>Every Rails developer knows how to create a Rails app. It&#8217;s easy as</p>
<blockquote><p>rails new APP-NAME-HERE</p></blockquote>
<p>But how many know how to create an app from scratch that looks good enough to sell to clients i.e. with slick design, authentication, authorization, and all that? Sure, there are tutorials out there that cover those components, but most of them cover them only in isolation from each other. A quick tutorial containing multiple components at a time would be a valuable resource to anyone planning to start a new app.</p>
<p>As the resident dilettante in these parts, I&#8217;ve decided to create such a tutorial based on a recent demo I made for a prospective client. </p>
<p>This post will discuss how to create a Rails 3.1 application that looks good enough to sell to clients (of course, YMMV) while still having components found in &#8220;professional&#8221; apps. This tutorial will cover the following:</p>
<ul>
<li>Andrea Franz&#8217;s <a href="https://github.com/pilu/web-app-theme">web-app-theme</a> <a href="http://rubygems.org/gems/web-app-theme">gem</a> &#8211; this gem generates themes for your web app (hence the name). The demo and the list of available themes can be found <a href="http://pilu.github.com/web-app-theme/">on this page</a>.</li>
<li><a href="https://github.com/plataformatec/devise">Devise</a> &#8211; our authentication module. <a href="https://github.com/binarylogic/authlogic">Authlogic</a>&#8216;s fine, but I find Devise&#8217;s approach less obtrusive.</li>
<li><a href="http://haml-lang.com/">Haml</a> &#8211; replaces Erb. Not perfect (e.g. screws up with inline a tags) but the drastic decrease in code makes passing it up difficult.</li>
<li><a href="http://rspec.info/rails/">Rspec</a> &#8211; replaces Test::Unit. <strong>Only setup will be covered in this post</strong>, actual usage is left to the reader.</li>
<li><a href="https://github.com/amatsuda/kaminari">Kaminari</a> &#8211; gem for pagination. We&#8217;re going to use it in place of the previous gem <a href="https://github.com/mislav/will_paginate/wiki/">will_paginate</a></li>
</ul>
<p>Rest of the tutorial is below the cut.</p>
<p><span id="more-1409"></span>Let&#8217;s start by creating our new app with no testing framework and with MySQL as the database:</p>
<p><code>$ rails new pro-template-app-31 -d mysql -T</code></p>
<p>Now would be a good time to edit the <code>.gitignore</code> file to exclude files you don&#8217;t want to add to Git. Rails 3 already provides some good defaults, but if you want more possible entries there are samples available over at <a href="https://github.com/github/gitignore">Github</a>.</p>
<p>Once done, it&#8217;s time to make the initial commit.</p>
<p><code>$ git init<br />
$ git add .<br />
$ git commit -am "initial commit"</code></p>
<h3>Setup Gemfile</h3>
<p>Now is time to add the needed gems to <code>Gemfile</code>.</p>
<pre class="brush: ruby; title: ; notranslate">source 'http://rubygems.org'

gem 'rails', '3.1.0'
gem 'mysql2'
gem 'haml'
gem 'devise'
gem 'kaminari'

group :development, :test do
  gem 'capybara'
  gem 'rspec-rails'
  gem 'haml-rails'
  gem 'hpricot'
  gem 'ruby_parser'
  gem 'web-app-theme', '~&gt; 0.8.0'
end</pre>
<p>I&#8217;ve already explained most of the gems above at the beginning of this post. The only thing worth noting would be the addition of <code>hpricot</code> and <code>ruby_parser</code>, both of which are needed by <code>web-app-theme</code> to generate haml files.</p>
<p>Run &#8220;<code>bundle install</code>&#8221; to install the gems. After the gems are installed, all of our generators will now use Rspec instead of Test::Unit, and it can now generate Haml instead of Erb.</p>
<h3>Generate home page</h3>
<p>Let&#8217;s try out our app first by creating a new root page to replace the default.</p>
<p><code>$ rails g controller home index<br />
&nbsp;<br />
$ rm public/index.html</code></p>
<p>Then edit the <code><a href="https://github.com/bryanbibat/pro-template-app-31/commit/30e47ad37f65ada96af79e9403f47c04fdea0021#L8R4">config/routes.rb</a></code>:</p>
<pre class="brush: ruby; title: ; notranslate">ProTemplateApp31::Application.routes.draw do
  root :to =&gt; &quot;home#index&quot;
end</pre>
<p>Before starting the app, don&#8217;t forget to create the database:</p>
<p><code>$ rake db:create</code></p>
<p>Start the server.</p>
<div class="wp-caption aligncenter"><a href="http://www.bryanbibat.net/images/web-app-theme31-00.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-00.jpg" alt="initial root page"></a>
<p class="wp-content-text">all pictures are clickable BTW</p>
</div>
<h3>Generate theme with web-app-theme</h3>
<p>Here comes the fun part.</p>
<p><code>$ rails g web_app_theme:theme --engine=haml --app-name="My Latest Web App"</code></p>
<p>This will generate the layout files using the default theme in haml whose title would be &#8220;My Latest Web App&#8221;.</p>
<p>(In case you want to use a different theme, add <code>--theme="THEME-NAME"</code> to this and some of the later commands.)</p>
<p>Delete the default layout generated for the rails app:</p>
<p><code>$ rm app/views/layouts/application.html.erb</code></p>
<p>then refresh the page.</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-01.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-01.jpg" alt="themed root page" class="aligncenter"></a></p>
<p>It looks good, but I think we&#8217;re better off using the sample text page from the demo site.</p>
<p><code>$ rails g web_app_theme:themed home --themed-type=text --engine=haml<br />
&nbsp;<br />
$ mv app/views/home/show.html.haml app/views/home/index.html.haml</code></p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-02.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-02.jpg" alt="fixed home page" class="aligncenter"></a></p>
<h3>Tweaking web-app-theme v0.8.0</h3>
<p>Before we continue, let&#8217;s first fix some problems with web-app-theme 0.8.0 when used with Rails 3.1.</p>
<p>First, generate a copy of the current theme to your app so that you could modify them.</p>
<p><code>$ rails g web_app_theme:assets</code></p>
<p>Now for the tweaks:</p>
<ul>
<li>JavaScript tag doesn&#8217;t point to the one generated by the asset pipeline. This is the reason why the sign-out links won&#8217;t work if you followed the previous tutorial. <a href="https://github.com/bryanbibat/pro-template-app-31/commit/2a85a7261fd37dbba1e2ead14aa8072549814f2c#diff-28">Fix here</a>.</li>
<li>The stylesheet for alert messages are still defined under &#8220;error&#8221; class. <a href="https://github.com/bryanbibat/pro-template-app-31/commit/2a85a7261fd37dbba1e2ead14aa8072549814f2c#L26R358">Fix here</a>.</li>
<li>For some odd reason, the images for buttons were moved to the spec folder. You can bring them back by manually copying them to your project&#8217;s web-app-theme asset folder. Here&#8217;s one way of doing it:</li>
</ul>
<p><code>$ cp $(bundle show web-app-theme)/spec/dummy/public/images/* app/assets/images/web-app-theme/ -r</code></p>
<h3>Add Devise authentication</h3>
<p>Let&#8217;s install Devise and create our User model in the process.</p>
<p><code>$ rails g devise:install<br />
&nbsp;<br />
$ rails g devise user</code></p>
<p>We also need to customize the login screen. To do this, we must first <a href="https://github.com/bryanbibat/pro-template-app-31/commit/c4914e9e51689cbd584ce543f2b8e3e062611485#L5R170">enable scoped views</a> for Devise.</p>
<p>Then let&#8217;s generate the sign-in/sign-out layout:</p>
<p><code>$ rails g web_app_theme:theme sign --layout-type=sign --engine=haml --app-name="My Latest Web App"</code></p>
<p>Then let&#8217;s add the following files to the <a href="https://github.com/bryanbibat/pro-template-app-31/commit/c4914e9e51689cbd584ce543f2b8e3e062611485#diff-4"><code>config/application.rb</code></a> file to change the layout for sign-in/sign-up:</p>
<pre class="brush: ruby; title: ; notranslate">    config.to_prepare do
      Devise::SessionsController.layout &quot;sign&quot;
      Devise::RegistrationsController.layout &quot;sign&quot;
    end</pre>
<p>At this point, you could generate the Devise views via</p>
<p><code>$ rails g devise:views</code></p>
<p>but the generated files are in ERb, not to mention that the layout for the sign-in/sign-up pages are different from what web-app-theme expects.</p>
<p>To save you from the hassle of copying the layout of those two pages, you could just copy-paste what I did <a href="https://github.com/bryanbibat/pro-template-app-31/commit/c4914e9e51689cbd584ce543f2b8e3e062611485#diff-2">here</a> and <a href="https://github.com/bryanbibat/pro-template-app-31/commit/c4914e9e51689cbd584ce543f2b8e3e062611485#diff-1">here</a>.</p>
<p>Restart the server, run <code>rake db:migrate</code>, and try going to the login site (<code>/users/sign_in</code>).</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-03.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-03.jpg" alt="login page" class="aligncenter"></a></p>
<p>Clicking &#8220;Sign up&#8221;:</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-031.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-031.jpg" alt="sign up page" class="aligncenter"></a></p>
<h3>Finishing touches to Devise</h3>
<p>Let&#8217;s do some finishing touches to the UI. </p>
<p>First, <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fffcdb49b8c38ffc2bb0f5803c2b9f5912b77d69#diff-1">modify the layout</a> such that the logout button actually works.</p>
<p>Now to test if Devise really works. Add the <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fffcdb49b8c38ffc2bb0f5803c2b9f5912b77d69#L0R3"><code>before_filter :authenticate_user!</code> to <code>home_controller.rb</code></a> to kick us out to the login screen if we&#8217;re not logged in. While we&#8217;re at it, modify the said controller to set <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fffcdb49b8c38ffc2bb0f5803c2b9f5912b77d69#L0R5">tell sign-out to redirect to the sign-in page</a>.</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-04.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-04.jpg" alt="login error" class="aligncenter"></a></p>
<p>Create a test user via the rails console. </p>
<p><code>$ rails c</code></p>
<pre class="brush: ruby; title: ; notranslate">User.create :email =&gt; &quot;test@example.com&quot;, :password =&gt; &quot;123456&quot;, :password_confirmation =&gt; &quot;123456&quot;</pre>
<p>You should now be able to login and logout.</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-07.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-07.jpg" alt="login success" class="aligncenter"></a></p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-071.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-071.jpg" alt="logout success" class="aligncenter"></a></p>
<h3>Theming a CRUD module</h3>
<p>Now let&#8217;s show how to add the web-app-theme to a new CRUD module. To simplify things, we&#8217;ll use the ultra-<strike>stupid</strike>simple blog demo.</p>
<p><code>$ rails g scaffold blog_entry subject:string content:text publish_at:datetime<br />
...<br />
$ rake db:migrate</code></p>
<p>Overwrite the generated files by running web-app-theme&#8217;s generator:</p>
<p><code>$ rails g web_app_theme:themed blog_entries --will-paginate --engine=haml</code></p>
<p>Since we&#8217;re using <code>kaminari</code>, we need to modify the <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fd4b069fa61487e7e750da046a2d249f553e4108#diff-0">controller</a> and <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fd4b069fa61487e7e750da046a2d249f553e4108#diff-2">index page</a> accordingly.</p>
<p>We will also have to modify the kaminari template to match the CSS. First generate the view files via</p>
<p><code>$ rails g kaminari:views default -e haml</code></p>
<p>then modify the files to match the layout with the demo page. <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fd4b069fa61487e7e750da046a2d249f553e4108#diff-3">Here&#8217;s one way of doing it</a>.</p>
<p>We also need to <a href="https://github.com/bryanbibat/pro-template-app-31/commit/fd4b069fa61487e7e750da046a2d249f553e4108#diff-10">modify the layout</a> to take into account the new module. </p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-05.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-05.jpg" alt="crud screen" class="aligncenter"></a></p>
<p>After that, you can still do <a href="https://github.com/bryanbibat/pro-template-app-31/commit/d94cb74f406e79e6f2d93715a72333d33f93684e#diff-1">a couple of minor tweaks</a> to the pages to deal with their &#8220;auto-generated&#8221; jagged edges. Then you can also apply the <a href="https://github.com/bryanbibat/pro-template-app-31/commit/d94cb74f406e79e6f2d93715a72333d33f93684e#diff-4">error message fix</a> (don&#8217;t forget to restart the server) and <a href="https://github.com/bryanbibat/pro-template-app-31/commit/d94cb74f406e79e6f2d93715a72333d33f93684e#diff-0">test it</a> with the screens.</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme31-06.png"><img src="http://www.bryanbibat.net/images/web-app-theme31-06.jpg" alt="fixed crud" class="aligncenter"></a></p>
<p>And that&#8217;s it. The complete code generated above can be found at <a href="https://github.com/bryanbibat/pro-template-app-31">Github</a>.</p>
<h3>UPDATE 5/3/12: Changes to make things work in production</h3>
<p>Looks like this thing doesn&#8217;t work in production. Please see the latest commit in Github (<a href="https://github.com/bryanbibat/pro-template-app-31/commit/4ad3f1c6de05c1a2f5bd2fc1f40e002b37fd1c20">1</a>, <a href="https://github.com/bryanbibat/pro-template-app-31/commit/c63a09f20442256ea310f231ba52abfe85a324ff">2</a>) for my fixes.</p>
<p>I&#8217;ve changed the layout stylesheets to use <code>application</code> instead of <code>web_app_theme</code> and also changed <code>app/assets/stylesheets/web-app-theme/themes/default/style.css</code> to an ERb file using <a href="http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets" rel="nofollow"><code>asset_path</code></a> to point to the precompiled assets.</p>
<p>There&#8217;s also <a href="http://stackoverflow.com/questions/7252872/upgrade-to-rails-3-1-0-from-rc6-asset-precompile-fails#7256258">a bug in Rails 3.1.0</a> which requires a change in the production settings. You can choose to either apply that fix, or simply upgrade to a more recent version of Rails 3.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/09/24/starting-a-professional-rails-3-1-app-with-web-app-theme-devise-and-kaminari/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>[Follow Up] Styling the Sign-up form in Web App Theme</title>
		<link>http://blog.bryanbibat.net/2011/03/28/follow-up-styling-the-sign-up-form-in-web-app-theme/</link>
		<comments>http://blog.bryanbibat.net/2011/03/28/follow-up-styling-the-sign-up-form-in-web-app-theme/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 10:51:12 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Devise]]></category>
		<category><![CDATA[Haml]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web-app-theme]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1272</guid>
		<description><![CDATA[Two days ago, a reader emailed me asking for help on my previous tutorial. There I was able to convert Devise&#8217;s sign in form to use Web App Theme&#8217;s CSS, but I didn&#8217;t provide details on how to style the other form: the sign-up form. The change required is pretty simple actually, just as long [...]]]></description>
			<content:encoded><![CDATA[<p>Two days ago, a reader emailed me asking for help on <a href="http://blog.bryanbibat.net/2011/01/03/starting-a-professional-rails-app-with-haml-rspec-devise-and-web-app-theme/">my previous tutorial</a>. There I was able to convert Devise&#8217;s sign in form to use Web App Theme&#8217;s CSS, but I didn&#8217;t provide details on how to style the other form: the sign-up form.</p>
<p>The change required is pretty simple actually, just as long as you understand what I did in that tutorial. First, you need to tell Rails to <a href="https://github.com/bryanbibat/pro-template-app/commit/75c801ee05cb74b7248b321730fde0472aa9069d#diff-1">override Devise&#8217;s RegistrationsController&#8217;s layout to use the &#8220;sign&#8221; layout</a> (just as what we did with SessionsController which handles the sign in):</p>
<pre class="brush: ruby; title: ; notranslate">    config.to_prepare do
      Devise::SessionsController.layout &quot;sign&quot;
      Devise::RegistrationsController.layout &quot;sign&quot;
    end</pre>
<p>Then <a href="https://github.com/bryanbibat/pro-template-app/commit/75c801ee05cb74b7248b321730fde0472aa9069d#diff-0">modify the app/views/devise/registrations/new.html.haml file accordingly</a>. If all goes well, you should get something like:</p>
<p><a href="http://www.bryanbibat.net/images/web-app-theme08.png"><img src="http://www.bryanbibat.net/images/web-app-theme08_thumb.png" alt="sign up page" class="aligncenter"></a></p>
<p>The steps to convert the &#8220;Forgot your password?&#8221; page is left to the reader.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/03/28/follow-up-styling-the-sign-up-form-in-web-app-theme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RailsFTW v0.7 out now</title>
		<link>http://blog.bryanbibat.net/2011/02/24/railsftw-v0-7-out/</link>
		<comments>http://blog.bryanbibat.net/2011/02/24/railsftw-v0-7-out/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 10:03:29 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[RailsFTW]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1243</guid>
		<description><![CDATA[Yeah, yeah, so I&#8217;m late with updating to the latest security releases&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsftw.bryanbibat.net"><img src="http://www.bryanbibat.net/images/railsftw.png" class="aligncenter" alt="Rails FTW" /></a></p>
<p>Yeah, yeah, so I&#8217;m late with updating to the latest security releases&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/02/24/railsftw-v0-7-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsFTW v0.6 out</title>
		<link>http://blog.bryanbibat.net/2011/02/11/railsftw-v0-6-out/</link>
		<comments>http://blog.bryanbibat.net/2011/02/11/railsftw-v0-6-out/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 15:24:02 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[RailsFTW]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1230</guid>
		<description><![CDATA[Just a quick update adding the latest version of RubyGems (1.5) and Rails (3.0.4). Also chose not to remove the cached gems to make bundle install run faster.]]></description>
			<content:encoded><![CDATA[<p><a href="http://railsftw.bryanbibat.net"><img src="http://www.bryanbibat.net/images/railsftw.png" class="aligncenter" alt="Rails FTW" /></a></p>
<p>Just a quick update adding the latest version of RubyGems (1.5) and Rails (3.0.4). Also chose not to remove the cached gems to make <code>bundle install</code> run faster.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2011/02/11/railsftw-v0-6-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

