<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>RubyGeek</title>
	
	<link>http://www.rubygeek.com</link>
	<description>Ruby, Javascript, etc</description>
	<pubDate>Sat, 24 Jul 2010 13:46:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Rubygeek" /><feedburner:info uri="rubygeek" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Rubygeek</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Getting around with GNU Screen</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/uyuMjSyfHQU/</link>
		<comments>http://www.rubygeek.com/2010/07/16/getting-around-with-gnu-screen/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 13:25:19 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=152</guid>
		<description><![CDATA[In past few months, I worked on a project developed entirely on linux. Previously, I mostly did rails development on mac with textmate. I had a brief period of rails and perl where I did vim and screen&#8230;oh maybe 4 years ago. Anyways, so I didn&#8217;t forget much vim over the years, but I had [...]]]></description>
			<content:encoded><![CDATA[<p>In past few months, I worked on a project developed entirely on linux. Previously, I mostly did rails development on mac with textmate. I had a brief period of rails and perl where I did vim and screen&#8230;oh maybe 4 years ago. Anyways, so I didn&#8217;t forget much vim over the years, but I had forgotten how to use screen. I looked some documentation to refresh my memory and this post is mainly notes for me <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Most commands start with CTRL-a<br />
I refer to each spawning of a new screen in the current session as a window.</p>
<p><strong>Detach</strong><br />
One things i really like about screen is I can detach it on one computer&#8230; then log in somewhere else and reattach. Also handy when you are on a wifi card on the train and you get disconnected. (doh!)</p>
<p>ctrl-a d   to detach<br />
then start  with -r  to reattach: screen -r</p>
<p><strong>Create window</strong><br />
This creates a new terminal window</p>
<p>ctrl-a c</p>
<p><strong>Name that window</strong><br />
Name your window, so its easier to keep organized<br />
ctrl-a A (Yep, ctrl-a then SHIFT-a)</p>
<p><strong>List the windows</strong><br />
See a list of your sessions and their number (this is why you name them) and you can use arrows to select)<br />
ctrl-a &#8220;</p>
<p><strong>Navigating Windows</strong><br />
You can flip through the windows in order or specify the number:<br />
ctrl-a p previous window<br />
ctrl-a n, ctrl-a [spacebar]  next window<br />
ctrl-a # the number you want to go to (starts at 0). </p>
<p><strong>multiple regions in one</strong><br />
ctrl-a S   create a split, creates a new region<br />
ctrl-a TAB switch to next region<br />
ctrl-a c   create a terminal session in region<br />
ctrl-a X close the region<br />
ctrl-a C clear, this is like typing clear at the prompt to clear the screen</p>
<p><strong>Closing</strong><br />
To exit a window, simply type exit. To exit and kill all windows do<br />
ctrl-a ctrl-\</p>
<p><strong>Scrolling</strong><br />
Using terminal on mac or linux won&#8217;t capture the scroll back&#8230;. so you must do it through screen<br />
ctrl-a [    use the arrow key to navigate up </p>
<p><strong>Refresh</strong><br />
ctrl-a l  refresh the current display</p>
<p><strong>HELP!!</strong><br />
To see the two (!!) pages of screen commands type:<br />
ctrl-a ? </p>
<p><strong>Command mode</strong><br />
Do you like typing?<br />
ctrl-a :   to get to command mode, then you can type commands instead of the ctrl foo jibberish</p>
<p><strong>Need the time?</strong><br />
ctrl-a t   &#8230;.displays the current system time</p>
<p><strong>Named Screen Sessions</strong><br />
Maybe you are working on two separate projects at once, give each one its own screen session<br />
screen -S ProjectOne<br />
screen -S ProjectTwo<br />
screen -list </p>
<p>then later you can do<br />
screen -r ProjectOne</p>
<p>to reattach it and continue</p>
<p>One thing you can do it make it easier is to add this to your .screenrc<br />
<code><br />
hardstatus alwayslastline &#8220;%?%{yk}%-Lw%?%{wb}%n*%f %t%?(%u)%?%?%{yk}%+Lw%?&#8221;<br />
</code></p>
<p>It will show the names of the windows you have and highlight the current one. You can see the numbers too so you can do ctrl-a # quickly to jump around.</p>
<p>Anyways, hope this was useful to someone. Let me know any suggestions or anything I can do better!</p>
<p>Sources:</p>
<ul>
<li><a href="http://hriday.org/blog/?page_id=595">Unix Screen</a>
<li>Screen Man Page
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=uyuMjSyfHQU:iTjl9zXPG78:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=uyuMjSyfHQU:iTjl9zXPG78:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/07/16/getting-around-with-gnu-screen/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/07/16/getting-around-with-gnu-screen/</feedburner:origLink></item>
		<item>
		<title>Ruby-Debug</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/6P5z0k4eeFA/</link>
		<comments>http://www.rubygeek.com/2010/06/22/ruby-debug/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 18:04:19 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Ruby On Rails]]></category>

		<category><![CDATA[Testing]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=151</guid>
		<description><![CDATA[I never really used a debugger until I did Java. Before that I did what was called &#8220;PHP Debugging&#8221; which is littering your code with print statements until you figure out what you need to know, then going back and making sure you deleted them! I sometimes would put a unique string like 
print &#8220;QWE&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I never really used a debugger until I did Java. Before that I did what was called &#8220;PHP Debugging&#8221; which is littering your code with print statements until you figure out what you need to know, then going back and making sure you deleted them! I sometimes would put a unique string like </p>
<p>print &#8220;QWE&#8221; . $myawesomevar </p>
<p>Or something like that, then going back and searching your code for QWE (just picked something that was easy to type!). But all that gets rather annoying. They might have nice debuggers for PHP now, I haven&#8217;t really done php in 4-5 years. I really didn&#8217;t understand the power of breakpoints until I did java and I thought that was pretty cool. Now that I do all ruby, I sort of miss eclipse (I didn&#8217;t actually think I&#8217;d ever say that&#8230;) since all I use right now is textmate and vi which don&#8217;t have the built debugger support that eclipse does. Some of the newer ruby editors might, I haven&#8217;t spent any research on them.</p>
<p>I found ruby-debug and it works great! You can set a breakpoint and then climb inside your application and peek around and see what is going on. I&#8217;ve done this in controllers and even in test mode. </p>
<p>If you use passenger, you can still use it but its a little tricky to setup. This <a href="http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger">blog post</a> from duckpunching.com  has some neat tips and a rake task to make it easier. Be sure to start the rdebug -c  from the console after you have set a breakpoint and reloaded your page.</p>
<p>If you are using passenger, you can&#8217;t use the irb command inside of the ruby-debug console, but I found that most of the time just being able to poke around the variable space inside my app has been enough for me to understand what is going on.</p>
<p>There are quite a few commands available in the debug console, but these are the ones I&#8217;ve used:</p>
<p>help - view the list of commands<br />
l list  -  this shows context around the current line the debugger is on<br />
n next - moves to the next line<br />
p print - print a variable<br />
irb  jump to console - I dont use this very often and it doesn&#8217;t work if you are using passenger<br />
c cont - continue to end of breakpoint or end of page load, after I have seen what I want to see I do this to get out of the console</p>
<p>Resources</p>
<ul>
<li><a href="http://railscasts.com/episodes/54-debugging-with-ruby-debug">Railscasts Episode: Debugging with ruby-debug</a></li>
<li><a href="http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger">Duckpunching.com how to use ruby-debug with passenger</a></li>
</ul>
<p>Anyways, hope some of you find it useful and happy debugging <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Update: I wrote this in preparation for a short talk at <a href="http://austinonrails.org">AustinOnRails</a> while giving the talk, the group had some suggestions:</p>
<p>put in a ~/.rdebugrc</p>
<pre>
set autoeval
set autolist
</pre>
<p>autolist - will run list command when you enter<br />
autoeval - will eval each line, so instead of &#8220;eval @profile&#8221; to get it to print, it will automatically eval</p>
<p>doing  m [object] can show methods in a nice table format. Thats cool, i have often gone to irb and did String.methods.sort but that is kinda hard to read. </p>
<p>Anyways, good stuff! </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=6P5z0k4eeFA:3uupcAvxLKU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=6P5z0k4eeFA:3uupcAvxLKU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/06/22/ruby-debug/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/06/22/ruby-debug/</feedburner:origLink></item>
		<item>
		<title>Texas Javascript Conference</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/VRxF5W2zyPQ/</link>
		<comments>http://www.rubygeek.com/2010/06/06/texas-javascript-conference/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 17:11:18 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Javascript/AJAX]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=150</guid>
		<description><![CDATA[Yesterday I went to the Texas Javascript conference! Its was held in Austin, TX. I had bought the ticket probably about 3 months ago. In part, I wanted to learn more javascript and I wanted to check out Austin. Now, through a series of events, I have moved to Austin from Chicago recently.  I [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I went to the <a href="http://texasjavascript.com">Texas Javascript conference</a>! Its was held in Austin, TX. I had bought the ticket probably about 3 months ago. In part, I wanted to learn more javascript and I wanted to check out Austin. Now, through a series of events, I have moved to Austin from Chicago recently.  I really like the smaller local conferences, I&#8217;ve really liked attending Windy City Rails in Chicago and the YAPC (Perl) when we had it in Chicago.</p>
<p>There were 2 tracks of speakers and one track of impromptu talks/discussions in a third room. It was sometimes hard to choose, but here&#8217;s what I attended:</p>
<p><strong>Douglas Crockford: Really, JavaScript?</strong><br />
I really liked this talk, he spoke very frank about the language and highlighted the good parts and bad parts. ECMAScript5 was passed and he said most people working on the language have never used it. He went over parts of the language explaining what is new. He said &#8220;Mashups are the most interesting thing in decades, taking components and wiring them together for the benefit of the user&#8221; ..which he followed with &#8220;A Mashup is a self inflicting XSS attack.&#8221; XSS attacks were first invented in 1995 and we have made no progress in 14 yrs to solve it. He talked about HTML5, stating that its a big step in the wrong direction. Its not correcting the problem. He recommends scrapping it and starting over, its terrible for security. It increased the attack surface and gives attackers new modes of attack, such as access to local database and inter-process communication. His final slide was &#8220;IE6 MUST DIE&#8221; in huge letters. Several people including myself  <a href="http://http://twitpic.com/1u642z">snapped a photo</a>. He said IE6 won&#8217;t die because we keep supporting it and coding around its flaws. He doesn&#8217;t think its unreasonable to ask people to update their software once a decade! So this talk was very informative and had some funny parts.</p>
<p><strong>John Resig: JavaScript on the Mobile Web</strong><br />
I expected this to be more of how to make your javascript run on mobile phones, but it was an overview of all the platforms that are used and which ones have what browsers. He graded all the phones and their browsers with A, B or C scale. Some have very good emulators but some things are hard to test in an emulator, like interactions with the touch screen. That was pretty interesting&#8230;and now I know I need to spend about 5k to have all the phones I need to test on <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Joe McCann: Rapid Prototyping with JavaScript</strong><br />
I watched this for about 25 mins, wasn&#8217;t sure its usefulness to me. So I went to Dan Webs talk.</p>
<p><strong>Dan Webb: Building @anywhere: A Client-side Interface to Twitter</strong><br />
I walked in as he was talking about how twitter does communication when you give a site access to your login. It was pretty interesting. I wish I had seen all of this talk.</p>
<p><strong>Paul Irish: 10 Things I Learned from the jQuery Source</strong><br />
I debated between going to &#8220;Eugene Lazutkin: Dojo for Programmers&#8221; because I think I know more about jQuery than Dojo, but since I don&#8217;t plan on doing Dojo at work, I decided to check out Paul Irish. I really like him on the <a href="http://yayquery.com/">yayQuery Podcast</a> and his blogs. He gave a great presentation and it was my favorite of the day! He basically talked about javascript and looked up things in the jQuery source and explained what the javascript was doing. He was pretty funny and I really enjoyed it. I tried taking notes, but it was pretty fascinating to watch him code. </p>
<p><strong>Alex Sexton: Breaking The Cross Domain Barrier</strong><br />
Another person from the <a href="http://yayquery.com/">yayQuery Podcast</a>. He talked about different ways to get around the cross domain barrier. It was interesting, many things are new since I last did alot of javascript where I needed to load from another domain. He was pretty funny too.</p>
<p><strong>Tom Hughes-Croucher: JavaScript Everywhere! Creating a 100% JavaScript web stack</strong><br />
I meant to go to this talk, but was in the hall talking to a guy from Facebook, swapping stories of working for Facebook vs Google and how I use facebook. I also talked to <a href="http://saucelabs.com/about/team">Jason Huggins</a> a bit, creator of Selenium. I knew him from Chicago and we chatted about what was going on in Chicago and caught up a bit&#8230; and talked about testing. We share some of the same opinions and it was great to catch up. </p>
<p><strong>Jason Huggins: JavaScript Frameworks &#038; Functional Testing</strong><br />
This Jason leading a discussion with the creators of jQuery, Dojo and extJS talking about how we can standardize a way to test. It was pretty interesting, but they ran out of time. </p>
<p><strong>JavaScript   	Tim Caswell: Writing a real-time game with NodeJS</strong><br />
I have looked at nodejs  few times but never tried it. Now, I am going to have to try it. The speaker was very good and it was interesting.</p>
<p><strong>Kyle Simpson: Web Performance &#038; UI Architecture</strong><br />
I didn&#8217;t find this too interesting nor the other talk, so I basically talked to a few people in the lobby and headed home. Long day but I learned some cool stuff. <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, a great conference and made some new friends and saw some old ones! <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=VRxF5W2zyPQ:6edkSU7YOgg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=VRxF5W2zyPQ:6edkSU7YOgg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/06/06/texas-javascript-conference/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/06/06/texas-javascript-conference/</feedburner:origLink></item>
		<item>
		<title>Finding Ada - Through DevChix!</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/c-S3qo6LPQw/</link>
		<comments>http://www.rubygeek.com/2010/03/24/finding-ada-through-devchix/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 03:47:35 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[devchix]]></category>

		<category><![CDATA[life]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=149</guid>
		<description><![CDATA[For this years Finding Ada post, I would like to highlight several members of DevChix and their contributions and inspirations to the group.
Desi McAdam - One of the co-founders of DevChix. She is always there to put some perspective on things and teach me about diplomacy. Sometimes I get frustrated and speak without thinking things [...]]]></description>
			<content:encoded><![CDATA[<p>For this years <a href="http://findingada.com">Finding Ada</a> post, I would like to highlight several members of DevChix and their contributions and inspirations to the group.</p>
<p><a href="http://www.desimcadam.com/">Desi McAdam</a> - One of the co-founders of DevChix. She is always there to put some perspective on things and teach me about diplomacy. Sometimes I get frustrated and speak without thinking things though <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://geek.susanpotter.net">Susan Potter</a> - Very technical and has very good reasons for why and how she does things. Whenever I see her post on DevChix mailing list, I will pay close attention to what she says.</p>
<p><a href="http://jenstander.com/">Jen Stander</a> - Another of the co-founders of DevChix, always a good friend to listen to me and helps me plan DevChix activities in Chicago.</p>
<p><a href="http://www.ghendry.net/">Ginny Hendry</a>- Member of Chicago Ruby group, she has been instrumental in planning Hack Nights for the group and enthusiastic about learning!</p>
<p><a href="http://www.ultrasaurus.com/">Sarah Allen</a> - Inspired me to learn more about mobile development and I am amazed at the variety of things she is doing!</p>
<p><a href="http://www.sarahmei.com/blog/">Sarah Mei</a> - Along with Sarah Allen, they both have inspired me to do something for women in Chicago. A one-day workshop or something, the Chicago DevChix have a meeting in a few weeks to plan this!</p>
<p>And I would like to thank all of <a href="http://www.devchix.com">DevChix</a>, veterans and newcomers alike! We are nearing 400 members and really I don&#8217;t know how to explain how supportive and inspiring they are! </p>
<p>/tear  You Ladies Rock!!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=c-S3qo6LPQw:xeQCogUUdsI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=c-S3qo6LPQw:xeQCogUUdsI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/03/24/finding-ada-through-devchix/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/03/24/finding-ada-through-devchix/</feedburner:origLink></item>
		<item>
		<title>CSS Frameworks Comparison</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/mlmg_JkD4LE/</link>
		<comments>http://www.rubygeek.com/2010/03/24/css-frameworks-comparison/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 21:35:10 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=148</guid>
		<description><![CDATA[A few weeks ago I set out to compare Blueprint and YUI Grid. I built a page with blueprint. Then built it with YUI2 Grid and then thought about it awhile. 
At first I was sold on blueprints CSS. Thats cool, thats tight! It just seemed to be so clever. But when i read the [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I set out to compare Blueprint and YUI Grid. I built a page with blueprint. Then built it with YUI2 Grid and then thought about it awhile. </p>
<p>At first I was sold on blueprints CSS. Thats cool, thats tight! It just seemed to be so clever. But when i read the following blog I realized, hey blueprint's syntax "span-4, span-20" was putting the implementation into the markup and why is that much different than doing
<td colspan="4"></td>
<td colspan="20"></td>
<p> which we all run in horror when someone uses a table to layout a page.</p>
<p>I  quote from:<br />
<a href="http://foohack.com/2007/08/blueprint-css-framework-vs-yui-grids/">http://foohack.com/2007/08/blueprint-css-framework-vs-yui-grids/</a></p>
<blockquote><p>If it is important enough to define your grid layout in the markup, then you should be using a table. The whole point of CSS layouts is to separate the layout information from the structural semantic markup</p></blockquote>
<p> .. yuck!! I much prefer YUI2 grid and they have a nifty generator <a href="http://developer.yahoo.com/yui/grids/builder/">layout generator</a>. I like that, I want to be able to define my basic layout and get on with life! I don't want to figure out how many "columns" this is and that. The class names for YUI are kind of non-intuitive (ie: yui-t7 and yui-g), but thats ok. They do use "hd" for head, "bd" for body, and "ft" for footer. So that is good enough for me!  </p>
<p>You can easily assign accessibility tag of "role" to your layout too in the generator, by clicking on the regions drop downs and selecting things like banner, navigation, main, etc.</p>
<p>The following is a 75/25 two column layout</p>
<div class="igBar"><span id="lhtml-3"><a href="#" onclick="javascript:showPlainTxt('html-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-3">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"doc"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"yui-t7"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"hd"</span> role=<span style="color: #ff0000;">"banner"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">&lt;h1&gt;</span></a></span>Header<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h1&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"bd"</span> role=<span style="color: #ff0000;">"navigation"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"yui-ge"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> role=<span style="color: #ff0000;">"main"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"yui-u first"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- YOUR DATA GOES HERE --&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> role=<span style="color: #ff0000;">"complementary"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"yui-u"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- YOUR DATA GOES HERE --&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"ft"</span> role=<span style="color: #ff0000;">"contentinfo"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>Footer<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>And the same converted to haml:</p>
<div class="igBar"><span id="lhtml-4"><a href="#" onclick="javascript:showPlainTxt('html-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-4">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#doc.yui-t7</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; #hd{ :role =&gt; &quot;banner&quot; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; %h1</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Header</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; #bd{ :role =&gt; &quot;navigation&quot; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; .yui-ge</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .yui-u.first{ :role =&gt; &quot;main&quot; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>!– YOUR <span style="color: #000066;">DATA</span> GOES HERE –<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; .yui-u{ :role =&gt; &quot;complementary&quot; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>!– YOUR <span style="color: #000066;">DATA</span> GOES HERE –<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; #ft{ :role =&gt; &quot;contentinfo&quot; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; %p</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; Footer </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pretty slick, huh?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=mlmg_JkD4LE:4IMP4spil4k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=mlmg_JkD4LE:4IMP4spil4k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/03/24/css-frameworks-comparison/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/03/24/css-frameworks-comparison/</feedburner:origLink></item>
		<item>
		<title>Flash Camp Chicago 2010</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/N5NyNOibjeU/</link>
		<comments>http://www.rubygeek.com/2010/02/27/flash-camp-chicago-2010/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 17:47:18 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[flex / flash]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=146</guid>
		<description><![CDATA[I did flash about 9-10 yrs ago. But I haven't used it since, so when I saw Flash Camp 2010 was being held in downtown Chicago, I thought why not! I like to have at least a passing knowledge of all web tech and I didn't know what Flex was all about. It was $20 [...]]]></description>
			<content:encoded><![CDATA[<p>I did flash about 9-10 yrs ago. But I haven't used it since, so when I saw <a href="http://flashcampchicago2010.eventbrite.com/">Flash Camp 2010</a> was being held in downtown Chicago, I thought why not! I like to have at least a passing knowledge of all web tech and I didn't know what Flex was all about. It was $20 and included lunch and beer at 4pm! It was very interesting, I thoroughly enjoyed seeing more about Flex. While watching the presentations, I was like, whoa... this seems like it does the same thing as GWT. Except, there is documentation! <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.jamesward.com/">James Ward</a>, from Adobe gave the keynote. He went through the top 10 things he likes about Flex. That was really interesting. He showed how a pdf had an embedded swf that was a report that loaded live data. I asked a question, "Will other readers like Foxit be able to do this?" he said it was part of the PDF standard, so its up to other readers to implement it. But it is possible.  He said they are working on a flash plugin for Android. I went up and asked him later in the day "why did it take so long? android has been out 2+ years?" He said they weren't sure about the hardware and what it would support, and they had to do alot of rewriting to make the binary small enough. Ok so I guess it was a lets wait and see what will happen then we will implement flash. IMHO i still think they are missing the wagon... but what do I know, I'm just a coder!</p>
<p><a href="http://blogs.digitalprimates.net/jefftapper/">Jeff Tapper</a> talked about Flex 4 for Flex 3 developers. I didn't know Flex at all but I still was fascinated by this talk. Kept thinking to the days of pain with GWT... i quick did a search on amazon for flex books..and there is alot.. so I was like, ok I am going to check this out. GWT is often frustrating because of the lack of documentation. Some books were written by Jeff! </p>
<p><a href="http://www.flexinabox.com/">Kevin Schmidt</a> talked about accessing remote data in flex. During this talk i looked up flex builder and installed it. He accessed data in three ways so that was interesting. </p>
<p><a href="http://www.benschmidtke.com/">Ben Schmidke</a> talked about keeping your data grid healthy. He talked about how the datagrid is rendered and how you can optimize it for speed. I think he also showed an optimizer.</p>
<p><a href="http://adamflater.blogspot.com/">Adam Flater</a> talked about Building RIAs with Style. He talked about styling your flex apps with some kinda of css-like syntax. Its not css exactly but looks similar. </p>
<p><a href="http://blogs.digitalprimates.net/codeSlinger/">Michael Labriola</a> talked about Flex 4 Component Development. He explained why composition is better than inheritance. He showed how to make a circle layout. Custom layouts! ..this was really cool. I am anxious to learn more about Flex.</p>
<p>All in all, it was a good use of time and I won a book! Foundation ActionScript 3.0 for Flash and Flex. Be sure and watch as I do some poking around with flex and see if really I can do the same things as I might use with GWT.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=N5NyNOibjeU:y-t4sL3WPvU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=N5NyNOibjeU:y-t4sL3WPvU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/02/27/flash-camp-chicago-2010/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/02/27/flash-camp-chicago-2010/</feedburner:origLink></item>
		<item>
		<title>Gitting better with Git</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/2kHrpY4etNk/</link>
		<comments>http://www.rubygeek.com/2010/02/17/gitting-better-with-git/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 23:10:38 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[git]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=145</guid>
		<description><![CDATA[In the past few weeks I've been doing alot of Git and alot more collaboration with people on projects! So i wanted to point out some of the things i've learned and some handy tips I picked up.
I was ]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks I've been doing alot of Git and alot more collaboration with people on projects! So i wanted to point out some of the things i've learned and some handy tips I picked up.</p>
<p>I was <a href="http://www.rubygeek.com/2010/02/11/remote-pair-programming/>pairing</a> with <a href="http://edendevelopment.co.uk/blogs/aimee/">aimee</a> remotely and she showed me how to "stage" a commit. Which is a way to indicate "HEY this is going to be commited when you do git commit!" I used to always do commit -a  which adds all the files not currently in the staging. I used perforce for awhile and learned how nice it was to have a "change list" and how you can commit only certain files at a time. Git seems like you can only have one "change list" at a time but that is fine in most cases.<br />
<code><br />
git add -p<br />
</code><br />
It will go through each changed file and ask if you want to stage this hunk. We were able to see what files we had changed as it showed a diff. You can confirm or deny chunk by chunk. today I like to run it to make sure I didn't accidentally change a file. I have a habit of leaving a file open, walking away and coming back and adjusting the spacing. Probably not something I need to in a commit.</p>
<p><code>git status</code></p>
<p>This is really cool command, not only does it show you what is in staging it tells you what to do with the other files to either add/remove etc to get the commit in the shape you want.  After working with git more, i went back and re-watched the <a href="http://peepcode.com/products/git">peepcode screencast</a> on git. I understand it better now!</p>
<p>After we committed, we realized we made a mistake in log message, so we did<br />
<code><br />
git commit --amend</code></p>
<p>It will amend the last message in your git repo. I recently tried this with one of my commits, but I had already pushed to origin. I was kind of confused, so I asked aimee, she said</p>
<blockquote><p>
no If you have already pushed, you can git push --force to update, but be careful because it destroys references, so if there's a chance someone else may have pulled the commit in the meantime you won't want to go pulling the rug from under their feet, y'know! <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
</p></blockquote>
<p>Ahh, makes sense aimee!!</p>
<p>Another sticky point for me was -- what is inverse of git add? git rm?I keep a <a href="http://github.com/rubygeek/rubygeek">git repo</a> of code I am working on as I to learn stuff, practice etc. Most if it is probably not really worth browsing, but i like to point my friends there when I talk about what I am doing.  I wanted to clean up some stuff that I don't want to keep and mistakenly thought if I git rm it would remove it from the staging. Nope, it removes it! Well, to revert a file back to what you use this:</p>
<p>git checkout -- file.txt</p>
<p>more on this <a href="http://www.google.com/url?sa=t&#038;source=web&#038;ct=res&#038;cd=2&#038;ved=0CBAQFjAB&#038;url=http%3A%2F%2Fgit.wiki.kernel.org%2Findex.php%2FGitFaq&#038;ei=s2RzS62XA4GANvqUiOwJ&#038;usg=AFQjCNFOae_8dYEGg0_TGXTrYCNaYIt5_Q&#038;sig2=sWRLL1sPbdbTrnZzKytmlw">Why is "git rm" not the inverse of "git add"? </a></p>
<p>Anyways, a few tidbits of information I've learned recently, hope this can help you git better at git <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>sources  I found helpful</p>
<ul>
<li><a href="http://git.wiki.kernel.org/index.php/GitFaq">Git FAQ</a>
<li><a href="http://book.git-scm.com/index.html">Git Community Book</a>
<li><a href="http://progit.com/book">Pro Git, book by APress, content free online</a>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=2kHrpY4etNk:u3l4OcgZOos:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=2kHrpY4etNk:u3l4OcgZOos:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/02/17/gitting-better-with-git/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/02/17/gitting-better-with-git/</feedburner:origLink></item>
		<item>
		<title>Remote Pair Programming</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/n_O5_xZnL_U/</link>
		<comments>http://www.rubygeek.com/2010/02/11/remote-pair-programming/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 19:18:33 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<category><![CDATA[agile]]></category>

		<category><![CDATA[devchix]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=144</guid>
		<description><![CDATA[Seems like Pair Programming is "all the rage" lately in my circles. I haven't exactly done it before but after hearing about the success and rapid knowledge growth amongst those that pair program...I was almost dying to try it! Especially after i saw David Chelimsky and Corey Haines at WindyCityRails in Sept 2009. I saw [...]]]></description>
			<content:encoded><![CDATA[<p>Seems like Pair Programming is "all the rage" lately in my circles. I haven't exactly done it before but after hearing about the success and rapid knowledge growth amongst those that pair program...I was almost dying to try it! Especially after i saw <a href="http://davidchelimsky.net/">David Chelimsky</a> and <a href="http://coreyhaines.com">Corey Haines</a> at <a href="http://www.windycityrails.com">WindyCityRails</a> in Sept 2009. I saw them pair and do BDD with Rspec/Cucumber and it was so fascinating, It was like I was watching a ballet as they hopped from RSpec to Cucumber and back and forth. I was like, wow...I wish I was that good! I would have paid good money for a recording of that so I could watch it again and again! I  see <a href="http://coreyhaines.com">Corey Haines</a> traveling around pairing with people too. Some people get together and play cards, but Corey gets together to code!</p>
<p>So ok, I like code, I like people, I want to try it! I live a little south of Chicago so its a long commute and it seemed everyone was so busy to pair in person when I asked. I asked on Devchix mailing list for suggestions on how to do pairing online. I had found a few, and the group had some good suggestions. I even had a volunteer to try it with me! This week <a href="http://edendevelopment.co.uk/blogs/aimee/">aimee</a> and I set a few hours aside to try it and see if we could do it!</p>
<p>This article was also sort of "paired" as it was written from my perspective with input and suggestions from <a href="http://edendevelopment.co.uk/blogs/aimee/">aimee</a>!</p>
<p>We asked on Devchix mailing list for suggestions on how to do pairing online. I had found a few, and the group had some good suggestions. I even had a volunteer to try it with me! This week <a href="http://edendevelopment.co.uk/blogs/aimee/">aimee</a> and I set a few hours aside to try it and see if we could do it!</p>
<p>After introductions on Skype we set about getting a shared environment in which to code together. Ideally, we wanted some kind of desktop sharing so we could run tests, console and editor.</p>
<p>We had heard of a few tools and got suggestions from the devchix list:</p>
<p>IChat desktop sharing - we couldn't get this to work, we did different things and it would appear to connect but then it failed. I tried to mess with settings for Sharing on mac, but nothing doing.</p>
<p><a href="http://www.ordcamp.com/Home/session-ideas-2010/real-time-collaborative-apps-with-rio">Rio</a> seems to be a library to make collaborative apps, not to use in a pair programming environment.</p>
<p><a href="http://bespin.mozilla.com">BeSpin</a> was hard to use.. we couldn't figure out exactly how to use it. It almost seemed to offer to import the git repository we were working on, but then it said it only supports Subversion and Mercurial, not git.</p>
<p><a href="http://www.subethaedit.net/">SubEthaEdit</a> worked but we would have to open each file individually and share each file...  unless I was missing something. This would be fine for collaborating on a single file but then we could not share the test runs, terminal commands or view the browser together.</p>
<p><a href="http://etherpad.com">Etherpad</a> - we didn't end up trying this but I have used it before to debug some code or try out ideas with a friend. They recently got bought by Google, so it would be interesting to see what they do with it. This would suffer the same limitations as SubEthaEdit in that it's just a text editor.</p>
<p><a href="http://gotomeeting.com">GoToMeeting</a> (which is $40-50/month) its a little steep for the open source work I want to do. But people say it works really well.</p>
<p><a href="http://borderstylo.com/posts/24-pair-programming-remotely">VNC and Unix Screen</a> - <a href="http://edendevelopment.co.uk/blogs/aimee/2010/01/06/remote-trio-programming/">aimee had used this successfully before</a> but since we weren't on the same network, just our laptops at home, we weren't sure it how we could make it work easily.</p>
<p>Then we came to <a href="http://www.teamviewer.com">TeamViewer</a> which worked brilliantly! We shared desktop and I could type in aimee's console window, see the tests running and type in textmate. Even with aimee on her Dvorak keyboard and I on Qwerty! I could type fine but couldn't copy/paste with keyboard shortcuts so I used the mouse to copy/paste and it worked fine.</p>
<p>All in all, it was an awesome experience and I picked up on a few tidbits of knowledge from aimee on git, and rake! I had some bits of code from another project i was able to quickly copy/paste and get us rolling. We had a few discussions about coding style as we went.</p>
<p>Since  <a href="http://edendevelopment.co.uk/blogs/aimee/">aimee</a> was more familiar with the codebase, she mainly wrote the behavioral specs and I wrote the code to satisfy them. We plan to switch around next time, when we pair on a different project that I've been developing for a while.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=n_O5_xZnL_U:jUv7vFLyWD4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=n_O5_xZnL_U:jUv7vFLyWD4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/02/11/remote-pair-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/02/11/remote-pair-programming/</feedburner:origLink></item>
		<item>
		<title>What I’ve been up to!</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/8kPAyAG0MFk/</link>
		<comments>http://www.rubygeek.com/2010/01/30/what-ive-been-up-to/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 01:14:05 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[android]]></category>

		<category><![CDATA[gwt]]></category>

		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=143</guid>
		<description><![CDATA[Its been a crazy December through January and I haven't written much!
I'm glad the GWT posts helped some of you from the comments. I spent some time on figuring them out from the limited docs on google's GWT site, mostly I think it helps to have complete examples since they dont make it real clear [...]]]></description>
			<content:encoded><![CDATA[<p>Its been a crazy December through January and I haven't written much!</p>
<p>I'm glad the GWT posts helped some of you from the comments. I spent some time on figuring them out from the limited docs on google's GWT site, mostly I think it helps to have complete examples since they dont make it real clear what file each snippit of code goes in. I'm glad the pain I went through to figure them out help some of you <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> A few of you had problems but i haven't gotten around to seeing what is wrong. I was using the trunk version of GWT, so if you are using 2.0 then you might have some differences. </p>
<p>I've been diving my head back into rails after spending a spell in perl/mason and GWT in some projects for work.  I think other languages are neat but I really love ruby. So I've been re-watching some of my episodes of <a href="http://peepcode.com">PeepCode.com</a> and <a href="http://www.railscasts.com">RailsCasts.com</a>  those guys are awesome. I love this stuff. Why else would I be spending my Saturday night with Ruby vs watching a movie or playing a game! </p>
<p>I've also been playing with android a bit, its pretty fun to see my app on a phone! Working on a TODO List app, which seems almost like "hello world" but it has a twist... more later when i have something to show.</p>
<p>Been working learning <a href="http://jquery.com">jQuery</a>. I had seen it before, but saw class names mixed with programming and having a ugghhhh feeling. But.. I decided to give it a shot and dang! I would have given my right arm to have this 5 years ago when i was experimenting with ajax (though it wasn't called that...) with setting the src of a script tag with a php url to load and save data. Anyways, its cool and neat. I think the name is horrible since you aren't really quering anything... IMHO <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Maybe if I can think of a better one I can suggest it, but seems like it is here to stay since there are stay since there are 4 books already about it!</p>
<p>To help with reviewing ruby I have been working through <a href="http://github.com/edgecase/ruby_koans">Ruby Koans</a>. Hats off to <a href="http://edgecase.com">EdgeCase</a>. I have already written them and thanked them! This goes along with my post <a href="http://www.rubygeek.com/2009/09/08/how-to-get-better-at-programming/">How To Get Better At Programming</a> where I wrote about how i was working at getting better at programming. It all comes down to practice! ... I think when I finish the rubykoans exercises, i will revert and start going through them again. Almost like doing pushups every day (I push up to get more coffee at least 3x a day!). </p>
<p>Git ... I did my first pull request on github, very cool how that works. </p>
<p>Have some ideas for some more substantial posts... coming soon <img src='http://www.rubygeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=8kPAyAG0MFk:YILY6SMuWt4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=8kPAyAG0MFk:YILY6SMuWt4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/01/30/what-ive-been-up-to/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/01/30/what-ive-been-up-to/</feedburner:origLink></item>
		<item>
		<title>Book Review: “Refactoring in Ruby”</title>
		<link>http://feedproxy.google.com/~r/Rubygeek/~3/3WenlePaBas/</link>
		<comments>http://www.rubygeek.com/2010/01/04/book-review-refactoring-in-ruby/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 00:34:07 +0000</pubDate>
		<dc:creator>nola</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Testing]]></category>

		<category><![CDATA[book review]]></category>

		<category><![CDATA[patterns]]></category>

		<guid isPermaLink="false">http://www.rubygeek.com/?p=142</guid>
		<description><![CDATA[I've have been pondering in the past 6 months - How do I get better at programing? What is the best way? do I need more books? At my current company, we whole heartedly engage in peer reviews, nothing gets checked in the repository without at least one person going over it. In that process, [...]]]></description>
			<content:encoded><![CDATA[<p>I've have been pondering in the past 6 months - How do I get better at programing? What is the best way? do I need more books? At my current company, we whole heartedly engage in peer reviews, nothing gets checked in the repository without at least one person going over it. In that process, i've learned more about coding then I could from 10 books. I used to be a book fiend. I had about 10 books on every subject. Did I learn? yeah, some! But I think I've learned more from doing and practice. Practice, practice, practice! When the <a href="http://www.chirb.org">Chicago Ruby User Group</a> offered this book in exchange for a review, I jumped at the chance.</p>
<p>“Refactoring in Ruby” written by William C. Wake and Kevin Rutherford.<br />
Published by Addison-Wesley</p>
<p>"Refactoring in Ruby" is more like a "workbook" then a "how to write awesome code" book. If you download the code from github http://github.com/kevinrutherford/rrwb-code  you have tests already written for the exercises.</p>
<p>The book is arranged in three parts, The Art of Refactoring, Code Smells, and Programs to Refactor.</p>
<p>There are explanations of "code smells" which are one characteristic of code that could be improved. Some of them are long parameter lists, unnecessarily complex, global variable, feature envy sections, etc. One thing I find interesting is the "How did it get this way?" section. It gives some insight into the thought process and reasoning behind the smell. I think this is good, as programmers our ego may be rather miffed to hear "This code stinks" but with some reasoning, it makes the pain less and I think firms up in our minds when this happens again, to do it this other way. I always want to know why when someone says I could do such and such thing better.</p>
<p>In addition to the code smell examples there are three programs to refactor in the end of the book. In a conversational tone, it walks through and gives some hints on what needs refactoring. Its almost as if you had a pair programming buddy working with you and identifying in small chunks what can be improved. This is definitely something I want to work through more carefully.</p>
<p>What I find odd, is that not all the code smells have code examples. The inspiration for the book I think is the Martin Fowler book "Refactoring Improving the design of Existing Code" which has examples for every code smell. Maybe Ruby smells less than Java? Or those fixes are really trivial? I don't know. Overall, this is a great book and is certainly worth the price and investment and you will be a better programmer because of it!</p>
<p>There are explanations of "code smells" which are one characteristic of code that could be improved. Some of them are long parameter lists, unnecessarily complex, global variable, feature envy sections, etc. One thing I find interesting is the "How did it get this way?" section. It gives some insight into the thought process and reasoning behind the smell. I think this is good, as programmers our ego may be rather miffed to hear "This code stinks" but with some reasoning, it makes the pain less and I think firms up in our minds when this happens again, to do it this other way. I always want to know why when someone says I could do such and such thing better.</p>
<p>In addition to the code smell examples there are three programs to refactor in the end of the book. In a conversational tone, it walks through and gives some hints on what needs refactoring. Its almost as if you had a pair programming buddy working with you and identifying in small chunks what can be improved. This is definitely something I want to work through more carefully.</p>
<p>What I find odd, is that not all the code smells have code examples. The inspiration for the book I think is the Martin Fowler book "Refactoring Improving the design of Existing Code" which has examples for every code smell. Maybe Ruby smells less than Java? Or those fixes are really trivial? I don't know. Overall, this is a great book and is certainly worth the price and investment and you will be a better programmer because of it!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Rubygeek?a=3WenlePaBas:cAVCH78TVSM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Rubygeek?a=3WenlePaBas:cAVCH78TVSM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Rubygeek?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.rubygeek.com/2010/01/04/book-review-refactoring-in-ruby/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.rubygeek.com/2010/01/04/book-review-refactoring-in-ruby/</feedburner:origLink></item>
	</channel>
</rss>
