<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7216094495459361823</id><updated>2011-04-21T15:52:39.461-07:00</updated><category term='barcamp'/><category term='Cheatsheet'/><category term='wall'/><category term='Sprint Review'/><category term='unconference'/><category term='agile'/><category term='tutorials'/><category term='Git'/><category term='web2.0'/><category term='XP'/><category term='Ruby'/><category term='barcamp malaysia'/><category term='programming'/><category term='Rails'/><category term='Study Guide'/><category term='Ruby on Rails'/><category term='scribd'/><category term='Scrum Wall'/><category term='nested layouts'/><category term='Sprint Retrospect'/><title type='text'>Stumbling into the World of Ruby on Rails</title><subtitle type='html'>Programming, Business, Fun, and Ruby on Rails - One day at a time!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-1960115784381340635</id><published>2008-07-26T20:02:00.000-07:00</published><updated>2008-07-26T20:24:59.034-07:00</updated><title type='text'>wirless</title><content type='html'>wpa attack:&lt;br /&gt;Use dictionary attack: need 7gb dictionary. You can torrent, or create your own&lt;br /&gt;&lt;br /&gt;Man in the middle: monkey-jack... Dumps all ur username and passwords to you first before sending to server... &lt;br /&gt;&lt;br /&gt;Fake ap - to thwart man in middle hackers - but only if hacker use other than kismet.&lt;br /&gt;&lt;br /&gt;Securing: disable ssid, change ssid, disable dhcp, position your ap, change password, vpn?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-1960115784381340635?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/1960115784381340635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=1960115784381340635&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1960115784381340635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1960115784381340635'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/wirless.html' title='wirless'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-3118559980414174499</id><published>2008-07-26T19:14:00.000-07:00</published><updated>2008-07-26T19:56:52.989-07:00</updated><title type='text'>Barcamp: Danger Will Robinson, Someone's Hacking your Wireless!</title><content type='html'>One of the more 'risque' topics in barcamp today: wireless hacking. It was way too tempting to resist: they had a barainstorming session on web marketing that i wanted to attend... Nah... It was too good to resist.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;10db antenna gives you 1km radius&lt;br /&gt;Atheros chipset wireless card the best for hacking wireless... Look for higher MW. Mormal is 100, best is 300MW&lt;br /&gt;Software: no support in windows, many in linux&lt;br /&gt;How: detect wireless (war driving), war chalking - marking wireless zones&lt;br /&gt;Wirelss can be detected using: beacon sniffers use - airopeek etc.&lt;br /&gt;Passive sniffers use kismet&lt;br /&gt;Netstumbler lets you map gps coords of access points&lt;br /&gt;Kismet: detects hidden ssid And mac ids - also checkout gkismet 4 mobile: mognet, ministumbler  macs: mac stumbler ap scanner&lt;br /&gt;&lt;br /&gt;Openwrt with a linksys router that has 32mb ram. Wl ap 0  wl monitor passive promisc 1. Run kismet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-3118559980414174499?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/3118559980414174499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=3118559980414174499&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3118559980414174499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3118559980414174499'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/barcamp-danger-will-robinson-someones.html' title='Barcamp: Danger Will Robinson, Someone&apos;s Hacking your Wireless!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-7700078182470994257</id><published>2008-07-25T23:17:00.000-07:00</published><updated>2008-07-25T23:29:12.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcamp malaysia'/><category scheme='http://www.blogger.com/atom/ns#' term='unconference'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Barcamp: Yahoo's Search Monkey App</title><content type='html'>if you've never been to yahoo's developer network, then it's my turn to say: where you been ma?&lt;br /&gt;&lt;br /&gt;Today yahoo presented one of their cooler apps: the yahoo search monkey.&lt;br /&gt;&lt;br /&gt;Search Monkey lets you define more information for your search results when searched in yahoo. In other words, customize your search results!&lt;br /&gt;&lt;br /&gt;On the side of the coin, if you're a website owner, you can build apps that expose data from your site that other users can use to customize their search results... Case in point was linked in profile data for users to use to present their search results&lt;br /&gt;&lt;br /&gt;Unfortunately, you need  to know html (duh..) and php. Well i'm out! Still cool anyways. Check out Search Monkey here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-7700078182470994257?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/7700078182470994257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=7700078182470994257&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7700078182470994257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7700078182470994257'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/barcamp-yahoos-search-monkey-app.html' title='Barcamp: Yahoo&apos;s Search Monkey App'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-110314802547791895</id><published>2008-07-25T21:31:00.000-07:00</published><updated>2008-07-25T23:16:35.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcamp malaysia'/><category scheme='http://www.blogger.com/atom/ns#' term='unconference'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Barcamp: Flexible Rails? Sweeet....</title><content type='html'>I was watching this presentation on Flex... And I'm asking myself: dude, where've i been all this while?&lt;br /&gt;&lt;br /&gt;Flex rocks! I'm gonna be looking at it once i'm done with learning the crazy prototype, jquery, and scriptaculous... Phew... Turns out that by itself is more than just a walk down the park... It's more (to me) like a swim in the rapids... With no pants! Ouch.. &lt;br /&gt;&lt;br /&gt;Anyways, back to flex...&lt;br /&gt;Flex seems to be able to take your data and make useful graphical representations out of it...(mmm, i like...) . In my case, working with erp systems, we can actually present data in cool, interactive ways now...&lt;br /&gt;&lt;br /&gt;Sweet...maybe i'll blog more on this later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-110314802547791895?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/110314802547791895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=110314802547791895&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/110314802547791895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/110314802547791895'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/barcamp-flexible-rails-sweeet.html' title='Barcamp: Flexible Rails? Sweeet....'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-1149252645028789975</id><published>2008-07-25T21:13:00.000-07:00</published><updated>2008-07-25T21:30:02.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unconference'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Barcamp is in town!</title><content type='html'>it's a fine saturday morning and i'm not in bed (What?). That's right L&amp;G's! Barcamp's in town, and i'm warming up my cold ass on the tiny seats (truth is, my ass is huge) of the presentation rooms this fine day.&lt;br /&gt;&lt;br /&gt;Cool stuff coming up today! We got yahoo dev network, we got presentations on flex n JRoR, and a kickass demo on making money in youtube! &lt;br /&gt;&lt;br /&gt;Look's like it's gonna b a long, butt flattening, but exciting day for us malaysian geeks... Reminds me of chandler's party chant: 'Spring Break! Woohoo!' (Geez... how geekier can I get?) &lt;br /&gt;&lt;br /&gt;more on this later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-1149252645028789975?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/1149252645028789975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=1149252645028789975&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1149252645028789975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1149252645028789975'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/barcamp-is-in-town.html' title='Barcamp is in town!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-3185291534211428356</id><published>2008-07-17T02:21:00.000-07:00</published><updated>2008-07-22T20:18:28.063-07:00</updated><title type='text'>Using TinyMCE as WYSIWYG editor</title><content type='html'>Well, well, it's been a month since we wrote... a lot of new stuff's come out,&lt;br /&gt;&lt;br /&gt;Our customer required WYSIWYG capability for editing their blogs, which they used&lt;br /&gt;&lt;br /&gt;There are lots of Javascript editors out there.&lt;br /&gt;&lt;br /&gt;TinyMCE was one of the coolest I found, with everything you need under the sky for WYSIWYG editing - link to pics, link to media, blockquotes etc...&lt;br /&gt;&lt;br /&gt;If you plan on putting up WYSIWYG for your forms, &lt;a href="http://tinymce.moxiecode.com"&gt;here's a link to download&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-3185291534211428356?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/3185291534211428356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=3185291534211428356&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3185291534211428356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3185291534211428356'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/07/using-tinymce-as-wysiwyg-editor.html' title='Using TinyMCE as WYSIWYG editor'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-1168767326815295751</id><published>2008-06-20T02:48:00.000-07:00</published><updated>2008-06-20T03:29:58.175-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nested layouts'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Nested Layouts in Rails</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_sYtyR0u6g_I/SFuCCajSwnI/AAAAAAAAAB0/TwExiwzu_IA/s1600-h/mattmccray.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_sYtyR0u6g_I/SFuCCajSwnI/AAAAAAAAAB0/TwExiwzu_IA/s320/mattmccray.jpg" alt="" id="BLOGGER_PHOTO_ID_5213903971610182258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I was wondering how to keep the layouts in my rails application code DRY - I was close to the point of kicking myself for having to make changes to all my layouts whenever something standard changed - so i researched online and found the above diagram by &lt;a href="http://mattmccray.com/archive/2007/02/19/Sorta_Nested_Layouts/"&gt;Matt McCray in his blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I used Matt's method for nesting layouts, but instead of defining a method called sub_layout in my controllers, I called a pre-defined rails controller method:&lt;br /&gt;&lt;br /&gt;&lt;% render :partial =&gt; "layouts/#{controller.controller_name}" %&gt;&lt;br /&gt;&lt;br /&gt;and defined a partial layout named after every controller I had, which had different settings for their own views. Rails has a local variable called 'controller' you can use to access its controller's name and even the action used for the current view. So using this, I don't have to define additional methods in my controllers, nor use any plugins.&lt;br /&gt;&lt;br /&gt;kudos to Matt for coming up with this in the first place. Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-1168767326815295751?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/1168767326815295751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=1168767326815295751&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1168767326815295751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1168767326815295751'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/06/nested-layouts-in-rails.html' title='Nested Layouts in Rails'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_sYtyR0u6g_I/SFuCCajSwnI/AAAAAAAAAB0/TwExiwzu_IA/s72-c/mattmccray.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-6768028379245138932</id><published>2008-06-20T02:33:00.000-07:00</published><updated>2008-06-20T02:48:34.001-07:00</updated><title type='text'>Pair programming explained!</title><content type='html'>Here's the slides I used to explain pair progamming to my peeps - whew!&lt;br /&gt;&lt;br /&gt;Pair programming looks like fun. We'll be doing it next week, so more on this later!!&lt;br /&gt;&lt;br /&gt;Before I forget (and I do it a lot), &lt;a href="http://www.scribd.com/doc/3498720/Pair-programming"&gt;here's the link to the file&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-6768028379245138932?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/6768028379245138932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=6768028379245138932&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6768028379245138932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6768028379245138932'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/06/pair-programming-explained.html' title='Pair programming explained!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-4095490695102452159</id><published>2008-06-15T22:48:00.000-07:00</published><updated>2008-06-15T23:04:59.952-07:00</updated><title type='text'>Pair Programming - I Drive, You Show the Way</title><content type='html'>Ever gone on a road trip - alone? Not much fun is it? With a Big Mac in your mouth, you've got to have one eye on the road, one hand on the steering wheel, the other eye on a map, and the other hand clutching it. Now that's a feat even unicycle riding, ball juggling circus clowns find hard to do.&lt;br /&gt;&lt;br /&gt;It's the same thing with programming - on the one hand you've got to make sure you're codes are syntactically correct (never mind politically), and on the other, you've got to think about software and database design, security, speed, scalability and a whole bunch of other issues. Now i know most of you out there can do this better than a circus clown, but the fact remains - wouldn't it be better if there where a 'co-driver' so to speak?&lt;br /&gt;&lt;br /&gt;Here's where pair programming really shines. I used to think pair programming was just a bunch of 'poppycock' - two people sitting working on a single computer one the same set of codes - whatever for? So they both can slap the sense out of each other if one decides to snooze? &lt;br /&gt;&lt;br /&gt;It turns out that, when explained the 'co-driver' way,  it makes a lot of sense. When I do programming, and I reach a design decision point, I tend to stare off into space for a good few minutes while the cogs in my brain turn (rather slowly, I might add). It's kinda like stopping at the side of the road to refer to your map to decide which way to go (if you're alone of course). Having someone else figuring out the way, just makes more sense.&lt;br /&gt;&lt;br /&gt;Ok, enuff explaining - I'm preparing training slides for this to start pair programming in my team - slides for this next post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-4095490695102452159?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/4095490695102452159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=4095490695102452159&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4095490695102452159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4095490695102452159'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/06/pair-programming-i-drive-you-show-way.html' title='Pair Programming - I Drive, You Show the Way'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-1051658343383487223</id><published>2008-06-09T03:48:00.000-07:00</published><updated>2008-06-15T22:47:07.562-07:00</updated><title type='text'>Rails 2.1 script/dbconsole</title><content type='html'>It's been a while since i posted anything up on this blog. Meanwhile, our programmer fadhli, has been busy - in the right way of course.&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://bugsneedfix.wordpress.com/2008/06/06/rails-21-scriptdbconsole/"&gt;link to his own blog&lt;/a&gt; for a post that talks about rails 2.1's new script that helps manage your database...&lt;br /&gt;&lt;br /&gt;And i promised some posts on agile methodology last week... shame on me... one coming up next week!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-1051658343383487223?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/1051658343383487223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=1051658343383487223&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1051658343383487223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1051658343383487223'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/06/rails-21-scriptdbconsole.html' title='Rails 2.1 script/dbconsole'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-1354056248050124324</id><published>2008-06-02T04:43:00.000-07:00</published><updated>2008-06-02T04:47:24.942-07:00</updated><title type='text'>Global Email Settings in Rails</title><content type='html'>I was running the functional test and didn't realize it was sending actual emails from my data fixtures. However, I did learn how to globally set the email settings so not to send the emails out during tests.&lt;br /&gt;&lt;br /&gt;If you want to use this, create a file called global_email_settings.rb (or whatever you want to name it) and put it in your your config/initializers/ folder. Restart your server to get rolling. &lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;begin&lt;br /&gt;  unless ENV['RAILS_ENV'] == 'test'   &lt;br /&gt;    ActionMailer::Base.delivery_method = :smtp&lt;br /&gt;    ActionMailer::Base.smtp_settings = {&lt;br /&gt;      :address =&gt; 'smtp.domain.com',&lt;br /&gt;      :port =&gt; 101,&lt;br /&gt;      :domain =&gt; 'domain.com',&lt;br /&gt;      :authentication =&gt; :plain,&lt;br /&gt;      :user_name =&gt; "&lt;your_user_name_&gt;",&lt;br /&gt;      :password =&gt; "&lt;password&gt;"&lt;br /&gt;    }&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-1354056248050124324?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/1354056248050124324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=1354056248050124324&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1354056248050124324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/1354056248050124324'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/06/global-email-settings-in-rails.html' title='Global Email Settings in Rails'/><author><name>Fadhli Rahim</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-3880903038734122519</id><published>2008-05-29T19:27:00.000-07:00</published><updated>2008-05-29T19:40:22.770-07:00</updated><title type='text'>Much more than Android</title><content type='html'>&lt;a href="http://www.webmonkey.com/blog/Android_Comes_to_Life%3A_Video_and_Pics_Sneak_Peek"&gt;Here's a link to a blog&lt;/a&gt; with a Youtube video link talking about Google's much awaited Android - sorta like a phoneOS...&lt;br /&gt;&lt;br /&gt;But the keynote spells out more than that, and Vic Gondotra, one of Google's VPs, does a good job of explaining things... and of where Google's headed with the internet and with world domination!&lt;br /&gt;&lt;br /&gt;Now, for geeks like me who don't get to actually be on the scene and get all screamy and excited, the video in the link will have to do... just hope I don't wet my bed tonight!&lt;br /&gt;&lt;br /&gt;This week's been a bit slow, so i'm picking up the pace this weekend for all you readers out there. I'm studying an updated version of XP today - i mentioned we needed to do some improvements on our project management methods... so expect more on this next week!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-3880903038734122519?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/3880903038734122519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=3880903038734122519&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3880903038734122519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/3880903038734122519'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/much-more-than-android.html' title='Much more than Android'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-5693558246087230887</id><published>2008-05-28T02:57:00.000-07:00</published><updated>2008-05-28T08:08:09.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Rails training, anyone?</title><content type='html'>I got a little lazy (well, a lot really... ) so i decided that i didn't want to study Rails by reading, but by watching a video with a popcorn in hand (really hard to get good popcorn these days)&lt;br /&gt;&lt;br /&gt;searching through the web for video tutorials, I came across &lt;a href="http://www.youtube.com/profile_videos?user=ucberkeleyevents&amp;amp;search_query=rails&amp;amp;search=Search"&gt;this set of videos&lt;/a&gt; from guys at UC Berkeley RAD Lab... Never been to UCB, but I hear its a beaut... my kudos to the guys at UCB RAD...&lt;br /&gt;&lt;br /&gt;the video filesizes are large... I nodded off waiting for it to stream... so you might wanna have a firefox extension do the downloading for you before you view them... &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3006"&gt;here's one&lt;/a&gt;. If you're using IE... again, seriously?&lt;br /&gt;&lt;br /&gt;anywho, check it out! i think it's RAD! haha! (although i haven't even gotten to the end of one yet, so no guarantees)&lt;br /&gt;&lt;br /&gt;we'll post some video tutorials up in the future - when we actually have time to kill... but we will... promise...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-5693558246087230887?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/5693558246087230887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=5693558246087230887&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/5693558246087230887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/5693558246087230887'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/rails-training-anyone.html' title='Rails training, anyone?'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-358914827968391148</id><published>2008-05-25T19:08:00.000-07:00</published><updated>2008-05-28T03:53:50.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Sprint Retrospect'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sprint Review'/><title type='text'>Sprint Review &amp; Retrospect Meeting</title><content type='html'>ahh... the good ol meetings... i used to think meetings kinda wanna make you feign sick and take leave... (then go and watch a movie... but that's a different story...)&lt;br /&gt;&lt;br /&gt;We just did the Sprint Review and Retrospect meetings for one of our projects. took us about less than 2 hours... we're a pretty small team...&lt;br /&gt;&lt;br /&gt;One thing we noticed was that when you keep improving on what you did on the last sprint, you get more - even tho it might be just abit - excited to go work on the next sprint. we realized that its because, doing the same thing for people who don't leave their brains at home when they go to work is just plain boring and disengaging.&lt;br /&gt;&lt;br /&gt;improvements bring fresh air... we've got 6 things to improve on the next sprint... and we've still got a long way to go... hang on!&lt;br /&gt;&lt;br /&gt;prototype and scriptaculous is gonna have to wait a bit... we're gonna need to tackle the really meaty stuff first... Basic Ruby for the team! oh god...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-358914827968391148?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/358914827968391148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=358914827968391148&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/358914827968391148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/358914827968391148'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/sprint-review-retrospect-meeting.html' title='Sprint Review &amp; Retrospect Meeting'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-4187714364853763768</id><published>2008-05-22T02:20:00.000-07:00</published><updated>2008-05-22T05:13:48.099-07:00</updated><title type='text'>Git Cheat Sheet</title><content type='html'>What's Rails without Git version control right? &lt;a href="http://www.scribd.com/doc/3049033/gitcheatsheet"&gt;Here's a cheatsheet on Git&lt;/a&gt; by Jan Kruger from http://jan-krueger.net/git&lt;br /&gt;&lt;br /&gt;I thought I knew it all already... well... never hurts to learn... that is, until you suffer from CM (yeah, that's cranial meltd-... i know you know it already!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-4187714364853763768?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/4187714364853763768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=4187714364853763768&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4187714364853763768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4187714364853763768'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/git-cheat-sheet.html' title='Git Cheat Sheet'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-7024941554510592259</id><published>2008-05-22T00:22:00.000-07:00</published><updated>2008-05-22T00:37:43.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>to_proc or not to proc</title><content type='html'>Instead of writing this&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;Profile.find(:all).collect{ |x| x.email }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I could write this using Rails' Symbol#to_proc&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;Profile.find(:all).collect(&amp;:email)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-7024941554510592259?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/7024941554510592259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=7024941554510592259&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7024941554510592259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7024941554510592259'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/toproc-or-not-to-proc.html' title='to_proc or not to proc'/><author><name>Fadhli Rahim</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-4301499686393946354</id><published>2008-05-21T19:02:00.000-07:00</published><updated>2008-05-21T19:52:45.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Use filter_parameter_logging for your password</title><content type='html'>This morning while I was looking at some codes, I've found  something interesting. When I login, I looked at the logs and I could  see clearly the password that I'd just entered.&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parameters: {"commit"=&gt;"Log in", "action"=&gt;"create",  "controller"=&gt;"sessions",  "password"=&gt;"password123",  "login"=&gt;"foobar"}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I know, this looks like a trivial matter but imagine anyone having  access to our server looking at our production logs file. Passwords are  left wide open for the whole world to see.&lt;br /&gt;&lt;br /&gt;But no worries, just add this one liner in your application.rb&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class ApplicationController &lt; ActionController::Base&lt;br /&gt;  filter_parameter_logging "password"&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Go back to your login form, fill in your login name and password and  then submit.&lt;br /&gt;&lt;br /&gt;Check out the logs and see the parameters hash. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parameters: {"commit"=&gt;"Log in", "action"=&gt;"create",  "controller"=&gt;"sessions", "login"=&gt;"foobar", "password"=&gt;"[FILTERED]"}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Notice the hash key 'password'?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-4301499686393946354?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/4301499686393946354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=4301499686393946354&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4301499686393946354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4301499686393946354'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/use-filterparameterlogging-for-your.html' title='Use filter_parameter_logging for your password'/><author><name>Fadhli Rahim</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-4030934254765128343</id><published>2008-05-17T20:28:00.000-07:00</published><updated>2008-05-17T22:05:39.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Incompetent git!! Or is it?</title><content type='html'>Git used to be, in my vocabulary, a word I use when I'm angry with someone. Now it's a new word I use to keep my codes version controlled and backed up. Interesting how language can run circles around you&lt;br /&gt;&lt;br /&gt;If you don't know what git is, here's a &lt;a href="http://en.wikipedia.org/wiki/Git_%28software%29"&gt;detailed explanation on Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a brief tutorial on how to use git to store your development codes. At the end of this tutorial we provide a link for you to download a script we created to automate push and pull from our git server. Note that we're running this on an Ubuntu server (gutsy) and using Ubuntu desktop (gutsy/hardy) on our computers. Now, if you're using Microsoft for doing Ruby on Rails – seriously? (git is possible in Microsoft. You can find git tutorials for Microsoft on the web :) )&lt;br /&gt;&lt;br /&gt;1. First, install git in your system/server. Open a terminal in your desktop and type the following:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sudo apt-get install git-core&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Then,  create a folder, lets call it myfirstapp&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mkdir myfirstapp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Enter the directory that you created&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cd myfirstapp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Initialize the directory created to be git aware&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git init &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Now you have completed initializing your local directory. Test the setup by doing the following:&lt;br /&gt;Create any file in the folder&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;touch file1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To display the new file created,use this command&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It should display something like this&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# On branch master&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# Initial commit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# Untracked files:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# (use "git add &lt;file&gt;..." to include in what will be committed)&lt;/file&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# file1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;nothing added to commit but untracked files present (use "git add" to track)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;which means you have succeeded in creating the repository.&lt;br /&gt;&lt;br /&gt;6. Commit the file to your local repository.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git add . &lt;/span&gt;(Make sure you add the dot in after add)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git commit -m “put your message here”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. Now, create your remote repository based on your local repository.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git remote&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nothing should display at this stage&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git branch -a&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, it should display something like this&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;* master&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8. Create a remote connection to your centralized server. We use secured shell (ssh) to create a remote connection to our server.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ssh -l foo foo.bar.org&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;enter the password for foo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;9. Create a folder in your home driectory&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foo@foobar:~$mkdir myfirstapp.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enter the directory created&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cd myfirstapp.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;10. Initialize the directory by typing :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git --bare init &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exit from your remote connection:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Exit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;11. In case you are not in the repository folder that you have created earlier,change to that directory in your local machine. Add the origin of the remote by typing&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git remote add origin ssh://foo@foo.bar.org/home/foo/myfirstapp.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;12. Verify by viewing the the .git/config file&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cat .git/config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You should see something like this&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[remote "origin"] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        url = ssh://foo@foo.bar.org/home/foo/myfirstapp.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;13. Push the changes to the server&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git push origin master&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;14. Edit your .git/config using your favourite editor (our 'engineers' use vi. You can always choose to use nano or gedit )&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vi .git/config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, add the following line&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[branch "master"]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;remote = origin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;merge = refs/heads/master&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;15. Quit and Save.&lt;br /&gt;&lt;br /&gt;You have now created  a repository for your codes in your remote server. Now you need to set up your local directory to automatically link to the remote repository to pull codes. Your team mates will need to do the following too to get a copy of the codes (and git setup!). To get the source from the repository, the first step is to clone the source code. In your projects folder, (parent to myfirstapp, for example), type in the following:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git clone ssh://foo@foo.bar.org/home/foo/myfirstapp.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will clone your codes from your remote server to your local machine&lt;br /&gt;&lt;br /&gt;The next step would be to set the .gitignore files. This file specifies what files to ignore when pushing to the remote server. You would not want to push your log file and other insignificant files to your remote server, won't you? Use your favourite editor to edit .gitignore. Again, by using vi,&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vi .gitignore&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy and paste the following lines&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;log/*.log &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tmp/**/* &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;.DS_Store &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;doc/api &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;doc/app &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These are the file types that you may not want to push to the remote repository. Your requirements may vary, so make sure!. Once you've specified the file types to ignore, save and quit the text editor.&lt;br /&gt;&lt;br /&gt;You are now all set to pull and push from your server. The following steps detail how you should ALWAYS pull and push to your server&lt;br /&gt;&lt;br /&gt;1. First,use the following commands to add your files to your local repository.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git add .&lt;/span&gt; (Again, make sure the dot after “add”)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git commit  -m “your message here”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Next, pull the codes from repository from the remote server in order to avoid any conflicts with existing codes in the remote server (your team mates might have upload codes before you, so they might be in conflict with changes you made to the codes)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git pull&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If something is wrong – a conflict, for example, you and your team mate both modified the same lines of code - fix it first.&lt;br /&gt;&lt;br /&gt;3. If there are no problems, then you may proceed with pushing your codes to the remote server&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;git push&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, the server is updated with your new codes, and others may pull your codes from the repository.&lt;br /&gt;&lt;br /&gt;Now as programmers we know very well that it's easy to overlook one or two of the procedures mentioned above – especially if you're pushing code at around 2-4 am – so we created a script for us to  push our codes without having to bother doing all the above. Oh, did I forget to mention that we're also lazy?&lt;br /&gt;&lt;br /&gt;If you want to you can &lt;a href="http://www.scribd.com/doc/3007970/pullpush"&gt;download the script from here&lt;/a&gt;. Remember to remove the .txt extension before using (Scribd quirk, can't upload if they don't know your file format) Note that we won't be held responsible if anything happens to your data or system (In other words, make sure you know the ins and outs of your system and the script before you use it!)&lt;br /&gt;&lt;br /&gt;Here are the steps for you to run our script&lt;br /&gt;&lt;br /&gt;1. Save the script to the local repository folder in your machine. In this case it would be the myfirstapp folder.&lt;br /&gt;&lt;br /&gt;2. Change the file access to executable file&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;chmod +x pullpush&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Run the script from the local repository folder&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;./pullpush&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Follow the instructions provided as the script runs (enter passwords etc). You may terminate the script by using ctrl+c (Hey, it ain't perfect, but it works)&lt;br /&gt;&lt;br /&gt;That's it for our brief git tutorial! Learn to do it, and you can avoid becoming an actual git yourself!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-4030934254765128343?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/4030934254765128343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=4030934254765128343&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4030934254765128343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4030934254765128343'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/incompetent-git-or-is-it.html' title='Incompetent git!! Or is it?'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-6348253190460589380</id><published>2008-05-15T04:34:00.000-07:00</published><updated>2008-05-15T04:41:37.991-07:00</updated><title type='text'>Prototype and Scriptaculous? OMG!!!</title><content type='html'>You really know you've got cranial meltdown when you got that really dull throbbing at the back of your head... but peeling your eyes away from the screen is just torture - "Gotta get this thing solved by sundown!!! "&amp;amp;%#$(^%&amp;amp;*@$%$!!" - you don't want to, no... cannot possibly, read another word of tutorials, but you know you have to... so it boils down to: do it, or die...&lt;br /&gt;&lt;br /&gt;If you're doing AJAX on Ruby on Rails, trust us, you'll want to know these two words: Prototype and Scriptaculous (we don't - yet). In the coming weeks, we'll be posting stuff on Prototype and Scriptaculous and - if we can actually glue our brains together again - post a quick guide (or cheatsheet, if you want) for all you guys out there who don't think they can suffer like we did today...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-6348253190460589380?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/6348253190460589380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=6348253190460589380&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6348253190460589380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6348253190460589380'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/prototype-and-scriptaculous-omg.html' title='Prototype and Scriptaculous? OMG!!!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-21403628630722813</id><published>2008-05-12T19:46:00.000-07:00</published><updated>2008-05-12T20:16:20.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum Wall'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='wall'/><title type='text'>The Wall is up and moving!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_sYtyR0u6g_I/SCkG9VsDNKI/AAAAAAAAABY/o3fwJfpixn0/s1600-h/DSC00938.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_sYtyR0u6g_I/SCkG9VsDNKI/AAAAAAAAABY/o3fwJfpixn0/s320/DSC00938.JPG" alt="" id="BLOGGER_PHOTO_ID_5199694895639639202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The wall is now up and moving!&lt;br /&gt;&lt;br /&gt;We skipped some processes in setting this up, cause, well, the development was already on way, but it did clear up some stuff for us...&lt;br /&gt;&lt;br /&gt;Can't give you the project topic yet, more on the project itself soon. but you could probably get an idea from the wall... and by the way, it looks a little bare, but that's coz we've got only 1 developer... doing 1 thing at a time...&lt;br /&gt;&lt;br /&gt;Unlike the normal 'spit spraying' methodology of meetings, the wall actually helped us see where we're going, focus on the more important issues, and track progress - hey, it's like 3-in-1.... mmmm... hot coffee...&lt;br /&gt;&lt;br /&gt;Also, we realized that, at least for this project, we could do away with the Product Backlog and burndowns - its a simple system development. It all depends on the conditions of work, so we'll let that tell us what needs doing for now - at least until we're better at this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-21403628630722813?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/21403628630722813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=21403628630722813&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/21403628630722813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/21403628630722813'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/wall-is-up-and-moving.html' title='The Wall is up and moving!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_sYtyR0u6g_I/SCkG9VsDNKI/AAAAAAAAABY/o3fwJfpixn0/s72-c/DSC00938.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-6677593309674620043</id><published>2008-05-11T20:51:00.000-07:00</published><updated>2008-05-12T19:45:55.484-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Cheatsheet'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='scribd'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Ruby Cheatsheet Part Two!</title><content type='html'>Finally, part 2 of the Ruby Cheatsheet is now complete! &lt;a href="http://www.scribd.com/doc/2944808/Ruby-Builtins-Cheatsheet"&gt;Click here&lt;/a&gt; to download the file from Scribd, which, by the way, is also an excellent site for lots of stuff... so kudos to the Scribd crew...&lt;br /&gt;&lt;br /&gt;Part two gets you acquainted with the built-in stuff ruby provides to make your coding life easier and more fun (or confusing maybe?). Great help for you young apprentices who are looking forward to becoming Jedi Railers... (Nothing like geek speak to lighten up your day)&lt;br /&gt;&lt;br /&gt;Now, about that project wall....&lt;br /&gt;&lt;br /&gt;UPDATE: The combined version, part 1 and part 2 together, can be &lt;a href="http://www.scribd.com/doc/2944704/Ruby-Cheatbook"&gt;found here&lt;/a&gt;. I've made some improvements to the file to make it more readable - Acap&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-6677593309674620043?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/6677593309674620043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=6677593309674620043&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6677593309674620043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6677593309674620043'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/ruby-cheatsheet-part-two.html' title='Ruby Cheatsheet Part Two!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-15934821827126991</id><published>2008-05-06T21:03:00.000-07:00</published><updated>2008-05-12T18:17:58.607-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Cheatsheet'/><title type='text'>Ruby Syntax Cheatsheet</title><content type='html'>For all us Ruby on Rails newbies, it's really important to know Ruby, the language, before jumping into Rails. Learning Rails without knowing Ruby is like doing bike stunts without learning how to ride. Major pain bro...&lt;br /&gt;&lt;br /&gt;Save yourselves from major cranial meltdown by learning Ruby syntax first. It shouldn't be too hard if you already know other programming languages. To help us with learning it, we created our own Ruby Syntax Cheatsheet&lt;br /&gt;&lt;br /&gt;This is part 1 of the Ruby Syntax Cheatsheet we made to help us code in Ruby. It's based on the Ruby for Rails book by David Black. Highly recommended reading for all of us who aspire to become 'Jedi' Railers.... (hey, you can't make Jedi if you don't know the Force!). &lt;a href="http://www.scribd.com/doc/2898022/Ruby-Syntax-Cheatsheet"&gt;&lt;/a&gt;&lt;a href="http://www.scribd.com/doc/2944819/Ruby-Syntax-Cheatsheet"&gt;Click here to download the file&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-15934821827126991?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/15934821827126991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=15934821827126991&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/15934821827126991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/15934821827126991'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/ruby-syntax-cheatsheet.html' title='Ruby Syntax Cheatsheet'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-7283347381222514370</id><published>2008-05-06T00:02:00.000-07:00</published><updated>2008-05-06T00:05:23.221-07:00</updated><title type='text'>7 do's and 3 don'ts for creating web products</title><content type='html'>hey hey...&lt;br /&gt;&lt;br /&gt;really slow day today, so went surfing the www... and stumbled upon this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://whydoeseverythingsuck.com/2008/05/seven-dos-and-three-donts-for-creating.html"&gt;http://whydoeseverythingsuck.com/2008/05/seven-dos-and-three-donts-for-creating.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's good!&lt;br /&gt;&lt;br /&gt;no me toos... no me toos... no me toos... ok, got it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-7283347381222514370?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/7283347381222514370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=7283347381222514370&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7283347381222514370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/7283347381222514370'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/7-dos-and-3-donts-for-creating-web.html' title='7 do&apos;s and 3 don&apos;ts for creating web products'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-8044982468383550664</id><published>2008-05-04T22:08:00.001-07:00</published><updated>2008-05-04T22:12:38.923-07:00</updated><title type='text'>1st half of wall is up!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_sYtyR0u6g_I/SB6XByUVohI/AAAAAAAAABQ/7fwEEi-wduM/s1600-h/DSC00936.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_sYtyR0u6g_I/SB6XByUVohI/AAAAAAAAABQ/7fwEEi-wduM/s400/DSC00936.JPG" alt="" id="BLOGGER_PHOTO_ID_5196757076974871058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Well, here's our first foray into the Project Wall for our projects. Heading out for lunch now.... can't think without food!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-8044982468383550664?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/8044982468383550664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=8044982468383550664&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/8044982468383550664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/8044982468383550664'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/1st-half-of-wall-is-up.html' title='1st half of wall is up!!'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_sYtyR0u6g_I/SB6XByUVohI/AAAAAAAAABQ/7fwEEi-wduM/s72-c/DSC00936.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-4099256040532393470</id><published>2008-05-04T19:43:00.001-07:00</published><updated>2008-05-04T20:14:54.599-07:00</updated><title type='text'>Project Wall</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_sYtyR0u6g_I/SB57kiUVofI/AAAAAAAAAA8/UbET_r99brY/s1600-h/Scrum+wall.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_sYtyR0u6g_I/SB57kiUVofI/AAAAAAAAAA8/UbET_r99brY/s320/Scrum+wall.jpg" alt="" id="BLOGGER_PHOTO_ID_5196726887649747442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Alright, we just finished a Release Plan meeting - more like hangout than meeting - so I'm gonna start with a Project Wall for this project.&lt;br /&gt;&lt;br /&gt;Picture shows the format I'm thinking of using. Comments are welcome this time... just no tomatoes...&lt;br /&gt;&lt;br /&gt;Real life pictures just as soon as the wall comes up....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-4099256040532393470?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/4099256040532393470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=4099256040532393470&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4099256040532393470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/4099256040532393470'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/project-wall.html' title='Project Wall'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_sYtyR0u6g_I/SB57kiUVofI/AAAAAAAAAA8/UbET_r99brY/s72-c/Scrum+wall.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-6447050925373882625</id><published>2008-05-02T02:07:00.000-07:00</published><updated>2008-05-02T02:18:46.592-07:00</updated><title type='text'>Agile Software Development Process</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_sYtyR0u6g_I/SBrb4iUVoeI/AAAAAAAAAA0/nucjYHq5FFk/s1600-h/Scrum+n+XP.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_sYtyR0u6g_I/SBrb4iUVoeI/AAAAAAAAAA0/nucjYHq5FFk/s400/Scrum+n+XP.jpg" alt="" id="BLOGGER_PHOTO_ID_5195706884456554978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2 weeks ago, while staring blankly at the screen of my laptop during our company's weekly meeting, I decided to lookup on agile programming methods.&lt;br /&gt;&lt;br /&gt;We weren't getting far on our projects, and even if we did, I didn't know it. Man, that sucked.&lt;br /&gt;&lt;br /&gt;So after a week's worth of toiling and brain damage (I never knew us fellow programmers can be so 'organized' when presenting stuff online), I came up with a 'framework' ("What?! another one?! $@%@%@%!!") described by the diagram I put up, a snapshot of the process we're going to use for our software development management. booyah!!&lt;br /&gt;&lt;br /&gt;Scrum + XP guys... I'm a newbie at this... so no rotten tomatoes ok? not just yet... please...&lt;br /&gt;&lt;br /&gt;coming up... the framework... in words... and more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-6447050925373882625?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/6447050925373882625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=6447050925373882625&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6447050925373882625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/6447050925373882625'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/agile-software-development-process.html' title='Agile Software Development Process'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_sYtyR0u6g_I/SBrb4iUVoeI/AAAAAAAAAA0/nucjYHq5FFk/s72-c/Scrum+n+XP.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7216094495459361823.post-5692720722454430815</id><published>2008-05-02T01:59:00.000-07:00</published><updated>2008-05-02T02:02:35.592-07:00</updated><title type='text'>Our First Blog! (and Entry!)</title><content type='html'>Here's to all the stuff we're going to post here! huyeah!! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7216094495459361823-5692720722454430815?l=rubynerds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubynerds.blogspot.com/feeds/5692720722454430815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7216094495459361823&amp;postID=5692720722454430815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/5692720722454430815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7216094495459361823/posts/default/5692720722454430815'/><link rel='alternate' type='text/html' href='http://rubynerds.blogspot.com/2008/05/our-first-blog-and-entry.html' title='Our First Blog! (and Entry!)'/><author><name>Acap</name><uri>http://www.blogger.com/profile/17295793947500084663</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://bp0.blogger.com/_sYtyR0u6g_I/R3yntAsaKWI/AAAAAAAAAAg/mGDUtY3cBzE/S220/pic.JPG'/></author><thr:total>0</thr:total></entry></feed>
