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

<channel>
	<title>RubyLearning Blog</title>
	<atom:link href="http://rubylearning.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://rubylearning.com/blog</link>
	<description>Helping Ruby Programmers become Awesome</description>
	<lastBuildDate>Thu, 02 Feb 2012 03:23:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>FREE Online Course: Programming for the Web with Ruby</title>
		<link>http://rubylearning.com/blog/2012/01/21/free-online-course-programming-for-the-web-with-ruby/</link>
		<comments>http://rubylearning.com/blog/2012/01/21/free-online-course-programming-for-the-web-with-ruby/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 04:42:00 +0000</pubDate>
		<dc:creator>Satish Talim</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Ruby course]]></category>
		<category><![CDATA[Ruby training]]></category>
		<category><![CDATA[Web programming]]></category>

		<guid isPermaLink="false">http://rubylearning.com/blog/?p=6481</guid>
		<description><![CDATA[Programming for the Web with Ruby Registrations are now open for RubyLearning&#8217;s FREE, online course on &#8220;Programming for the Web with Ruby&#8220;. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. However, creating Web applications requires different approaches than traditional applications and involves the integration [...]<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>
]]></description>
			<content:encoded><![CDATA[<p></p>
<div>
<h2>Programming for the Web with Ruby</h2>
<p class="update"><span class="drop_cap">R</span>egistrations are now open for RubyLearning&#8217;s FREE, online course on &#8220;<strong>Programming for the Web with Ruby</strong>&#8220;. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. However, creating Web applications requires different approaches than traditional applications and involves the integration of numerous technologies. The course topics would hopefully help those that have some knowledge of Ruby programming to get started with web programming (this does not cover Ruby on Rails).</p>
<h3>Who&#8217;s It For?</h3>
<p><b>Anyone with some knowledge of Ruby programming</b>.</p>
<h3>Dates</h3>
<p>The course starts on <b>Monday, 20th Feb. 2012</b> and runs for 2 weeks.</p>
<h3>How do I register?</h3>
<p>Register <a href="http://rubylearning.org/class/course/view.php?id=81">here</a>. Use the Enrollment key: <b>PFTWWR-4I</b>. That&#8217;s it!</p>
<p><b>Updated (2nd Feb. at 9 hrs IST)</b>: So far we have <b>1320</b> registrations.</p>
<h3>Course Contents</h3>
<ul>
<li>DAY 1</li>
<li>Using Git
<ul>
<li>What&#8217;s Version Control</li>
<li>What&#8217;s Git?
<ul>
<li>Downloading and Installing Git</li>
<li>Create a local folder</li>
<li>Let us start using Git</li>
<li>Introduce yourself to Git</li>
<li>Create your SSH Key</li>
</ul>
</li>
</ul>
</li>
<li>Using GitHub
<ul>
<li>What&#8217;s GitHub?
<ul>
<li>Set up your GitHub account</li>
<li>Creating a new repository</li>
<li>Add your SSH key to GitHub</li>
</ul>
</li>
</ul>
</li>
<li>Using RVM (for *nix)
<ul>
<li>What is RVM?</li>
<li>Prerequisites</li>
<li>Installing RVM</li>
<li>Loading RVM into your shell</li>
<li>Reload shell configuration and test</li>
<li>Install a Ruby interpreter</li>
</ul>
</li>
<li>Using pik (for Windows)
<ul>
<li>What&#8217;s pik?</li>
<li>Installing pik</li>
<li>Using pik</li>
</ul>
</li>
<li>Exercise 1</li>
<li>DAY 2</li>
<li>Creating a simple webpage using HTML5, CSS and JavaScript
<ul>
<li>A Webpage, Step by Step</li>
<li>Before we begin, Launch a Text Editor
<ul>
<li>Step 1: Start with content</li>
<li>Step 2: Give the document structure</li>
<li>Step 3: Identify text elements</li>
<li>Step 4: Add an image</li>
<li>Step 5: Change the look with a style sheet</li>
<li>Add some JavaScript</li>
</ul>
</li>
</ul>
</li>
<li>Store your webpage files on GitHub</li>
<li>Exercise 2</li>
<li>DAY 3</li>
<li>Understanding HTTP concepts
<ul>
<li>What&#8217;s HTTP?
<ul>
<li>Loading a web page</li>
</ul>
</li>
<li>HTTP request methods (verbs)
<ul>
<li>GET</li>
<li>POST</li>
<li>PUT</li>
<li>DELETE</li>
</ul>
</li>
<li>Using cURL</li>
<li>HTTP response codes</li>
<li>net/http library
<ul>
<li>Using URI</li>
</ul>
</li>
<li>Using open-uri</li>
<li>Using Hpricot</li>
<li>Using Nokogiri
<ul>
<li>Fetching documents from web</li>
<li>Searching inside HTML documents</li>
</ul>
</li>
</ul>
</li>
<li>Exercise 3</li>
<li>DAY 4</li>
<li>Creating one&#8217;s own Ruby Gem
<ul>
<li>What&#8217;s a Ruby Gem?</li>
<li>Let us create a simple Ruby library</li>
<li>Steps for publishing our gem</li>
</ul>
</li>
<li>DAY 5 and 6</li>
<li>Learning Rack
<ul>
<li>Revisiting Ruby&#8217;s proc object
<ul>
<li>my_proc1.rb</li>
</ul>
</li>
<li>Rack Specification</li>
<li>A simple Rack app &#8211; my_rack_proc
<ul>
<li>my_rack_proc.rb</li>
</ul>
</li>
<li>Rack Documentation</li>
<li>Rack Source Code</li>
<li>Installing Rack gem
<ul>
<li>my_rack_proc2.rb</li>
</ul>
</li>
<li>Another Rack app &#8211; my_method
<ul>
<li>my_rack2.rb</li>
</ul>
</li>
<li>Using rackup
<ul>
<li>my_app.rb</li>
<li>Using Rack::Request and Rack::Response</li>
<li>A very basic practical Rack app</li>
<li>Another practical Rack app</li>
<li>Rack middleware</li>
<li>Using Lobster</li>
</ul>
</li>
<li>Rack::Builder</li>
</ul>
</li>
<li>DAY 7</li>
<li>Deploying Pure Rack Apps to Heroku
<ul>
<li>What&#8217;s Heroku?
<ul>
<li>Create an account on Heroku</li>
<li>Install Bundle</li>
<li>Deploy your app to Heroku</li>
</ul>
</li>
</ul>
</li>
<li>DAY 8</li>
<li>Deploying a static webpage to Heroku</li>
<li>DAY 9</li>
<li>What&#8217;s JSON?</li>
<li>Using MongoDB with Ruby Mongo driver
<ul>
<li>What&#8217;s NoSQL?</li>
<li>What&#8217;s MongoDB?</li>
<li>Setup MongoDB</li>
<li>MongoDB Core Concepts</li>
<li>The Basics
<ul>
<li>Switch databases</li>
<li>Insert a document</li>
<li>Use find()</li>
<li>Removing all documents</li>
<li>Query Selectors</li>
<li>Updating a document</li>
</ul>
</li>
<li>MongoDB Ruby Driver &#8211; mongo
<ul>
<li>Installation</li>
<li>Using the mongo gem</li>
<li>Making a Connection</li>
<li>Getting a List Of Collections</li>
<li>Getting a Collection</li>
<li>Inserting a Document</li>
<li>Updating a Document</li>
</ul>
</li>
<li>MongoHQ the hosted database
<ul>
<li>Sign Up</li>
<li>Create a database</li>
<li>Accessing the database</li>
</ul>
</li>
</ul>
</li>
<li>DAY 10</li>
<li>Sinatra with MongoDB
<ul>
<li>What&#8217;s Sinatra?</li>
<li>Create a folder on your hard disk</li>
<li>Install Sinatra</li>
<li>Which web server?</li>
<li>Our trivial Sinatra application</li>
<li>ERB and View
<ul>
<li>ERB</li>
<li>View</li>
<li>Handlers and Form parameters</li>
</ul>
</li>
<li>Work-In-Progress</li>
</ul>
</li>
<li>References</li>
</ul>
<p>The course contents is likely to change.</p>
<h3>Mentors</h3>
<p><a href="http://satishtalim.com/">Satish Talim</a>, Michael Kohl, Victor Goff III and others from the RubyLearning team.</p>
<h3>RubyLearning&#8217;s IRC Channel</h3>
<p>Most of the mentors and students hang out at RubyLearning&#8217;s IRC (irc.freenode.net) channel (#rubylearning.org) for both technical and non-technical discussions. Everyone benefits with the active discussions on Ruby with the mentors.</p>
<p>Here are some details on how the course works:</p>
<h4>Important:</h4>
<p>Once the course starts, you can login and start with the lessons <b>any day and time</b> and post your queries in the forum under the relevant lessons. Someone shall always be there to answer them. Just to set the expectations correctly, there is no real-time &#8216;webcasting&#8217;.</p>
<h4>Methodology:</h4>
<ul>
<li>The Mentors shall give you URL&#8217;s of pages and sometimes some extra notes; you need to read through. Read the pre-class reading material at a convenient time of your choice &#8211; the dates mentioned are just for your guideline. While reading, please make a note of all your doubts, queries, questions, clarifications, comments about the lesson and after you have completed all the pages, post these on the forum <b>under the relevant lesson</b>. There could be some questions that relate to something that has not been mentioned or discussed by the mentors thus far; you could post the same too. Please remember that with every post, do mention the operating system of your computer.</li>
<li>The mentor shall highlight the important points that you need to remember for that day&#8217;s session.</li>
<li>There could be exercises every day. Please do them.</li>
<li>Participate in the forum for asking and answering questions or starting discussions. Share knowledge, and exchange ideas among yourselves during the course period. Participants are strongly encouraged to post technical questions, interesting articles, tools, sample programs or anything that is relevant to the class / lesson. Please do not post a simple &quot;Thank you&quot; note or &quot;Hello&quot; message to the forum. Please be aware that these messages are considered noises by people subscribed to the forum.</li>
</ul>
<h4>Outline of Work Expectations:</h4>
<ol>
<li>Most of the days, you will have exercises to solve. These are there to help you assimilate whatever you have learned till then.</li>
<li>Some days may have some extra assignments / food for thought articles / programs</li>
<li><strong>Above all, do take part in the relevant forums. Past participants will confirm that they learned the best by active participation.</strong></li>
</ol>
<h4>Some Commonly Asked Questions</h4>
<ul>
<li><b>Qs.</b> Is there any specific time when I need to be online?<br /><b>Ans.</b> No. You need not be online at a specific time of the day.</li>
<li><b>Qs.</b> Is it important for me to take part in the course forums?<br /><b>Ans.</b> YES. You must Participate in the forum(s) for asking and answering questions or starting discussions. Share knowledge, and exchange ideas among yourselves (participants) during the course period. Participants are strongly encouraged to post technical questions, interesting articles, tools, sample programs or anything that is relevant to the class / lesson. Past participants will confirm that they learned the best by active participation.</li>
<li><b>Qs.</b> How much time do I need to spend online for a course, in a day?<br /><b>Ans.</b> This will vary from person to person. All depends upon your comfort level and the amount of time you want to spend on a particular lesson or task.</li>
<li><b>Qs.</b> Is there any specific set time for feedback (e.g., any mentor responds to me within 24 hours?)<br /><b>Ans.</b> Normally somebody should answer your query / question within 24 hours.</li>
<li><b>Qs.</b> What happens if nobody answers my questions / queries?<br /><b>Ans.</b> Normally, that will not happen. In case you feel that your question / query is not answered, then please post the same in the thread &#8211; &#8220;Any UnAnswered Questions / Queries&#8221;.</li>
<li><b>Qs.</b> What happens to the class (or forums) after a course is over? Can you keep it open for a few more days so that students can complete and discuss too?<br /><b>Ans.</b> The course and its forum is open for a month after the last day of the course.</li>
</ul>
<p>Remember, the idea is to have fun learning Ruby.</p>
<h3>Acknowledgments</h3>
<ul>
<li><a href="https://github.com/jasnow">Al Snow</a> for his various suggestions.</li>
<li><a href="https://github.com/punjab">Arvinder Singh Kang</a> for the note on &#8220;Using RVM&#8221;</li>
<li><a href="https://github.com/rkh">Konstantin Haase</a> for providing us with another practical Rack app.</li>
<li><a href="https://github.com/mattetti">Matt Aimonetti</a> for the GET/POST example related to Rack.</li>
<li><a href="https://github.com/citizen428">Michael Kohl</a> for proof reading and making relevant corrections to day 1 and 2 material.</li>
<li><a href="https://github.com/otobrglez">Oto Brglez</a> for the note on &#8220;Using Nokogiri&#8221;</li>
<li><a href="https://github.com/samnang">Samnang Chhun</a> for suggesting changes in day 1 material.</li>
<li><a href="https://github.com/kotp">Victor Goff</a> for his various suggestions.</li>
<li><a href="https://github.com/PotHix">Willian Molinari</a> for creating the GitHub page for this project.</li>
<li><a href="https://github.com/zhhailon">Zhang Hailong</a> for making relevant corrections in day 2 material.</li>
</ul>
<h3>About RubyLearning.org</h3>
<p><a href="http://rubylearning.org/">RubyLearning.org</a>, since 2005, has been helping Ruby Newbies go from zero to awesome!</p>
</div>
<p>Technorati Tags: <a href="http://technorati.com/tag/Ruby+course" rel="tag">Ruby course</a>, <a href="http://technorati.com/tag/Ruby" rel="tag">Ruby</a>, <a href="http://technorati.com/tag/Ruby+Training" rel="tag">Ruby Training</a>, <a href="http://technorati.com/tag/Programming" rel="tag"> Programming</a>, <a href="http://technorati.com/tag/Web+programming" rel="tag"> Web programming</a></p>
<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>

]]></content:encoded>
			<wfw:commentRss>http://rubylearning.com/blog/2012/01/21/free-online-course-programming-for-the-web-with-ruby/feed/</wfw:commentRss>
		<slash:comments>627</slash:comments>
		</item>
		<item>
		<title>Migration downtime for RubyLearning</title>
		<link>http://rubylearning.com/blog/2012/01/19/migration-downtime-for-rubylearning/</link>
		<comments>http://rubylearning.com/blog/2012/01/19/migration-downtime-for-rubylearning/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 02:44:12 +0000</pubDate>
		<dc:creator>Satish Talim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Slicehost]]></category>

		<guid isPermaLink="false">http://rubylearning.com/blog/?p=6474</guid>
		<description><![CDATA[Migration downtime for RubyLearning RubyLearning websites and services (http://rubylearning.com/, http://rubylearning.org/ and http://satishtalim.com/) will be down for scheduled maintenance according to this time schedule. We would be offline no longer than 4 hours. During this time, we will be migrating our Slice from the St. Louis (STL) to the Chicago (ORD) datacenter of Slicehost. Update: The [...]<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>
]]></description>
			<content:encoded><![CDATA[<p></p>
<div>
<h2>Migration downtime for RubyLearning</h2>
<p>RubyLearning websites and services (<a href="http://rubylearning.com/">http://rubylearning.com/</a>, <a href="http://rubylearning.org/">http://rubylearning.org/</a> and <a href="http://satishtalim.com/">http://satishtalim.com/</a>) will be down for scheduled maintenance according to <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Scheduled+Maintenance+-+Server+Migration&#038;iso=20120120T00&#038;p1=156&#038;ah=4&#038;sort=1">this time schedule</a>. We would be offline no longer than 4 hours. During this time, we will be migrating our Slice from the St. Louis (STL) to the Chicago (ORD) datacenter of Slicehost.</p>
<p class="update"><b>Update</b>: The site migration is complete. Thank you for your understanding and patience.</p>
</div>
<p>Technorati Tags: <a href="http://technorati.com/tag/Slicehost" rel="tag">Slicehost</a>, <a href="http://technorati.com/tag/Migration" rel="tag"> Migration</a></p>
<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>

]]></content:encoded>
			<wfw:commentRss>http://rubylearning.com/blog/2012/01/19/migration-downtime-for-rubylearning/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ruby Programming 30th Batch: Registrations now open</title>
		<link>http://rubylearning.com/blog/2012/01/13/ruby-programming-30th-batch-registrations-now-open/</link>
		<comments>http://rubylearning.com/blog/2012/01/13/ruby-programming-30th-batch-registrations-now-open/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 05:01:54 +0000</pubDate>
		<dc:creator>Satish Talim</dc:creator>
				<category><![CDATA[Beginners]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Ruby course]]></category>
		<category><![CDATA[Ruby training]]></category>

		<guid isPermaLink="false">http://rubylearning.com/blog/?p=6460</guid>
		<description><![CDATA[Registrations are now open for RubyLearning&#8217;s popular Ruby programming course. This is an intensive, online course for beginners that helps you get started with Ruby programming. Here is what Sandra Randall (Butler), a participant who just graduated, has to say &#8211; &#8220;You kindly offered me the opportunity to join your Ruby course. I&#8217;m new to [...]<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>
]]></description>
			<content:encoded><![CDATA[<p></p>
<div>
<p><span class="drop_cap">R</span>egistrations are now open for RubyLearning&#8217;s popular Ruby programming course. This is an intensive, online course for <em>beginners</em> that helps you get started with <strong>Ruby</strong> programming.</p>
<p class="update">Here is what <b>Sandra Randall (Butler)</b>, a participant who just graduated, has to say &#8211; &#8220;You kindly offered me the opportunity to join your Ruby course. I&#8217;m new to development and found the course, even though basic for programmers, a little tricky for me. I managed to complete all of the assessments and really learnt a lot. Thank you very much for the opportunity. It has really given me the push I needed to learn Ruby and I&#8217;m currently treading my way through both the pickaxe and Agile Development books and enjoying it. I&#8217;ve recently been offered a position as a Junior Systems Developer at a local Software house in South Africa &#8211; all thanks to the push you gave me which gave me the motivation and drive to get going.&#8221;</p>
<h3>What&#8217;s Ruby?</h3>
<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright" title="License: http://creativecommons.org/licenses/by-sa/2.5/" src="http://rubylearning.com/images/rubylogo.png" alt="Ruby" height="125" width="125" /></p>
<p>According to <a href="http://www.ruby-lang.org/en/">http://www.ruby-lang.org/en/</a> &#8211; &#8220;Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. Ruby&#8217;s elegant syntax is natural to read and easy to write.&#8221;</p>
<p><b>Yukihiro Matsumoto</b>, the creator of Ruby, in <b><a href="http://linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html">an interview</a></b> says -</p>
<blockquote>
<p>I believe people want to express themselves when they program. They don&#8217;t want to fight with the language. Programming languages must feel natural to programmers. I tried to make people enjoy programming and concentrate on the fun and creative part of programming when they use Ruby.</p>
</blockquote>
<h3>What Will I Learn?</h3>
<p>In the Ruby programming course, you will learn the <a href="http://rubylearning.com/satishtalim/tutorial.html">essential features of Ruby</a> that you will end up using every day. You will also be introduced to Git, GitHub, HTTP concepts, RubyGems, Rack and Heroku.</p>
<p>Depending on participation levels, we throw a Ruby coding challenge in the mix, appropriate for the level we are at. We have been known to give out a prize or two for the &#8216;best&#8217; solution.</p>
<h3>Who&#8217;s It For?</h3>
<p><b>A <em>beginner</em> with some knowledge of programming.</b>.</p>
<p>You can read what past participants have to say about the course. Click <a href="http://rubylearning.com/other/testimonials.html">here</a>.</p>
<h3>Mentors</h3>
<p><a href="http://satishtalim.com/">Satish Talim</a>, Michael Kohl, Satoshi Asakawa, Victor Goff III and others from the RubyLearning team.</p>
<h3>Dates</h3>
<p>The course starts on <b>Saturday, 28th Jan. 2012</b> and runs for seven weeks.</p>
<h3>RubyLearning&#8217;s IRC Channel</h3>
<p>Most of the mentors and students hang out at RubyLearning&#8217;s IRC (irc.freenode.net) channel (#rubylearning.org) for both technical and non-technical discussions. Everyone benefits with the active discussions on Ruby with the mentors.</p>
<h3>How do I register and pay the course fees?</h3>
<ul>
<li>The course is based on the <strong>The Ultimate Guide to Ruby Programming</strong> eBook. This book is <a href="http://book.rubylearning.org/">normally priced at US$ 19.95</a> and we are discounting it US$ 10.00 by combining it in the Course+eBook option below.</li>
<li>You can pay either by Paypal or send cash via <a href="http://www.westernunion.com/info/selectCountry.asp">Western Union Money Transfer</a> or by bank transfer (if you are in India). The fees collected helps RubyLearning maintain the site, this Ruby course, the Ruby eBook, and provide quality content to you.</li>
<li>Once you pay the fees below, <a href="http://rubylearning.org/">register on the RubyLearning.org site</a> and send us your name and registered email id while creating an account at <a href="http://rubylearning.org/">RubyLearning.org</a> to <strong>satish [at] rubylearning [dot] com</strong></li>
<li>We will enroll you into the course. If you have purchased the eBook at the time of registration, we will personally email you the eBook within 24 hours.</li>
</ul>
<p>You can pay the Course Fees by <b>selecting one of the three options</b> from the drop-down menu below. <b>Please select your option</b> and then click on the &#8220;Add to Cart&#8221; button.</p>
</div>
<div>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<p>
<input type="hidden" name="cmd" value="_s-xclick" /></p>
<p>
<input type="hidden" name="hosted_button_id" value="J7AQ8C6CTKQJL" /></p>
<table>
<tr>
<td>
<input type="hidden" name="on0" value="Register" />Register</td>
</tr>
<tr>
<td>
<select name="os0" size="2">
<option value="Ruby eBook">Ruby eBook $19.95</option>
<option value="Ruby Course">Ruby Course $49.95</option>
<option value="Course+eBook">Course+eBook $59.95</option>
</select>
</td>
</tr>
</table>
<p>
<input type="hidden" name="currency_code" value="USD" /></p>
<p>
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_LG.gif" style="border: 0px none ; width:auto ; min-width:0" name="submit" alt="PayPal - The safer, easier way to pay online." /></p>
<p><img alt="" style="border: 0px none ;" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1" /></p>
</form>
</div>
<div>
<p>At the end of this course you should have all the knowledge to explore the wonderful world of Ruby on your own.</p>
<p>Here are some details on how the course works:</p>
<h4>Important:</h4>
<p>Once the course starts, you can login and start with the lessons <b>any day and time</b> and post your queries in the forum under the relevant lessons. Someone shall always be there to answer them. Just to set the expectations correctly, there is no real-time &#8216;webcasting&#8217;.</p>
<h4>Methodology:</h4>
<ul>
<li>The Mentors shall give you URL&#8217;s of pages and sometimes some extra notes; you need to read through. Read the pre-class reading material at a convenient time of your choice &#8211; the dates mentioned are just for your guideline. While reading, please make a note of all your doubts, queries, questions, clarifications, comments about the lesson and after you have completed all the pages, post these on the forum <b>under the relevant lesson</b>. There could be some questions that relate to something that has not been mentioned or discussed by the mentors thus far; you could post the same too. Please remember that with every post, do mention the operating system of your computer.</li>
<li>The mentor shall highlight the important points that you need to remember for that day&#8217;s session.</li>
<li>There could be exercises every day. Please do them.</li>
<li>Participate in the forum for asking and answering questions or starting discussions. Share knowledge, and exchange ideas among yourselves during the course period. Participants are strongly encouraged to post technical questions, interesting articles, tools, sample programs or anything that is relevant to the class / lesson. Please do not post a simple &quot;Thank you&quot; note or &quot;Hello&quot; message to the forum. Please be aware that these messages are considered noises by people subscribed to the forum.</li>
</ul>
<h4>Outline of Work Expectations:</h4>
<ol>
<li>Most of the days, you will have exercises to solve. These are there to help you assimilate whatever you have learned till then.</li>
<li>Some days may have some extra assignments / food for thought articles / programs</li>
<li><strong>Above all, do take part in the relevant forums. Past participants will confirm that they learned the best by active participation.</strong></li>
</ol>
<h4>Some Commonly Asked Questions</h4>
<ul>
<li><b>Qs.</b> Is there any specific time when I need to be online?<br /><b>Ans.</b> No. You need not be online at a specific time of the day.</li>
<li><b>Qs.</b> Is it important for me to take part in the course forums?<br /><b>Ans.</b> YES. You must Participate in the forum(s) for asking and answering questions or starting discussions. Share knowledge, and exchange ideas among yourselves (participants) during the course period. Participants are strongly encouraged to post technical questions, interesting articles, tools, sample programs or anything that is relevant to the class / lesson. Past participants will confirm that they learned the best by active participation.</li>
<li><b>Qs.</b> How much time do I need to spend online for a course, in a day?<br /><b>Ans.</b> This will vary from person to person. All depends upon your comfort level and the amount of time you want to spend on a particular lesson or task.</li>
<li><b>Qs.</b> Is there any specific set time for feedback (e.g., any mentor responds to me within 24 hours?)<br /><b>Ans.</b> Normally somebody should answer your query / question within 24 hours.</li>
<li><b>Qs.</b> What happens if nobody answers my questions / queries?<br /><b>Ans.</b> Normally, that will not happen. In case you feel that your question / query is not answered, then please post the same in the thread &#8211; &#8220;Any UnAnswered Questions / Queries&#8221;.</li>
<li><b>Qs.</b> What happens to the class (or forums) after a course is over? Can you keep it open for a few more days so that students can complete and discuss too?<br /><b>Ans.</b> The course and its forum is open for a month after the last day of the course.</li>
</ul>
<p>Remember, the idea is to have fun learning Ruby.</p>
<p class="update">Subscribe to the waiting list of the free, online &#8220;<a href="http://satishtalim.github.com/webruby/">Intermediate Ruby Course</a>&#8220;.</p>
</div>
<p>Technorati Tags: <a href="http://technorati.com/tag/Ruby+course" rel="tag">Ruby course</a>, <a href="http://technorati.com/tag/Ruby" rel="tag">Ruby</a>, <a href="http://technorati.com/tag/Ruby+Training" rel="tag">Ruby Training</a>, <a href="http://technorati.com/tag/Programming" rel="tag"> Programming</a></p>
<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>

]]></content:encoded>
			<wfw:commentRss>http://rubylearning.com/blog/2012/01/13/ruby-programming-30th-batch-registrations-now-open/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>The 5 Most Popular Articles of 2011 on RubyLearning</title>
		<link>http://rubylearning.com/blog/2011/12/25/the-5-most-popular-articles-of-2011-on-rubylearning/</link>
		<comments>http://rubylearning.com/blog/2011/12/25/the-5-most-popular-articles-of-2011-on-rubylearning/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 04:08:32 +0000</pubDate>
		<dc:creator>Satish Talim</dc:creator>
				<category><![CDATA[Beginners]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby programming]]></category>

		<guid isPermaLink="false">http://rubylearning.com/blog/?p=6453</guid>
		<description><![CDATA[(Based on Twitter Re-tweets) The year 2011 saw RubyLearning&#8217;s awesome guest authors write and share their knowledge with others. If you missed any of these useful articles then here&#8217;s the roundup of the 5 most popular articles of 2011 on RubyLearning. Enjoy! Throw, Catch, Raise, Rescue&#8230; I&#8217;m so confused! Avdi Grimm explains the usage of [...]<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>
]]></description>
			<content:encoded><![CDATA[<p></p>
<div>
<h4>(Based on Twitter Re-tweets)</h4>
<p class="alert">The year 2011 saw RubyLearning&#8217;s awesome guest authors write and share their knowledge with others. If you missed any of these useful articles then here&#8217;s the roundup of the <strong>5 most popular articles of 2011 on RubyLearning</strong>. Enjoy!</p>
<h2>Throw, Catch, Raise, Rescue&#8230; I&#8217;m so confused!</h2>
<p><strong>Avdi Grimm</strong> explains the usage of Throw, Catch, Raise, Rescue in the Ruby programming language.</p>
<blockquote><p>You&#8217;ve probably noticed that Ruby has <code>throw</code> and <code>catch</code>&#8230; but they don&#8217;t seem to be used the way you&#8217;re used to in other languages! And there are also these <code>begin</code>, <code>raise</code> and <code>rescue</code> statements that seem to do the same thing. What&#8217;s going on here?</p>
</blockquote>
<p>Read the rest of the article: <a href="http://rubylearning.com/blog/2011/07/12/throw-catch-raise-rescue-im-so-confused/">Throw, Catch, Raise, Rescue&#8230; I&#8217;m so confused!</a></p>
<h2>Performance Testing Rails Applications &#8211; How To?</h2>
<p><strong>Gonçalo Silva</strong> shows you how to do performance testing of your Rails applications.</p>
<blockquote><p>Rails&#8217; performance testing tools allow you to quickly detect performance bottlenecks. As a rule of thumb, use benchmarking to detect the problem and then use profiling to understand it.</p>
</blockquote>
<p>Read the rest of the article: <a href="http://rubylearning.com/blog/2011/08/14/performance-testing-rails-applications-how-to/">Performance Testing Rails Applications &#8211; How To?</a></p>
<h2>Do you ponder what to name things in your code?</h2>
<p><strong>Evan Light</strong> asks &#8211; do you ponder what to name things in your code?</p>
<blockquote><p>Most of the time, someone has to maintain that pile of crap you just birthed! It may be someone else. It may be you! But it&#8217;s always wise to pretend that the person who will own your code next is an axe-wielding lunatic who knows where you live!</p>
</blockquote>
<p>Read the rest of the article: <a href="http://rubylearning.com/blog/2011/11/30/do-you-ponder-what-to-name-things-in-your-code/">Do you ponder what to name things in your code?</a>.</p>
<h2>How do I smell Ruby code?</h2>
<p><strong>Timon Vonk</strong> talks about Ruby code smells in an effort to improve Ruby code.</p>
<blockquote><p>Writing bad code isn&#8217;t a bad thing. Not understanding the problem you&#8217;re trying to solve any better after having written that piece of code is. Fortunately, that happens far less often.</p>
</blockquote>
<p>Read the rest of the article: <a href="http://rubylearning.com/blog/2011/03/01/how-do-i-smell-ruby-code/">How do I smell Ruby code?</a></p>
<h2>How do I test my code with Minitest?</h2>
<p><strong>Steve Klabnik</strong> introduces the readers to Ruby&#8217;s minitest.</p>
<blockquote><p>You run your program, try a few different inputs, check the outputs, and see that they&#8217;re right. Then, you make some changes in your code, and you&#8217;d like to see if they work or not, so you fire up Ruby and try those inputs again. That repetition should stick out. There has to be a better way.</p>
</blockquote>
<p>Read the rest of the article: <a href="http://rubylearning.com/blog/2011/07/28/how-do-i-test-my-code-with-minitest/">How do I test my code with Minitest?</a></p>
<p><b>Your turn</b>: Share the link to a roundup post you’ve written. If you’ve never written a roundup, try it this week. Be sure to share the link to your post here!</p>
</div>
<p>Technorati Tags: <a href="http://technorati.com/tag/Ruby" rel="tag">Ruby</a>, <a href="http://technorati.com/tag/Programming" rel="tag">Programming</a>, <a href="http://technorati.com/tag/Ruby+programming" rel="tag">Ruby programming</a></p>
<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>

]]></content:encoded>
			<wfw:commentRss>http://rubylearning.com/blog/2011/12/25/the-5-most-popular-articles-of-2011-on-rubylearning/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s Talk About Conditional Expressions</title>
		<link>http://rubylearning.com/blog/2011/12/21/lets-talk-about-conditional-expressions/</link>
		<comments>http://rubylearning.com/blog/2011/12/21/lets-talk-about-conditional-expressions/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 03:00:07 +0000</pubDate>
		<dc:creator>Evan Light</dc:creator>
				<category><![CDATA[Beginners]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Conditional Expressions]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby programming]]></category>

		<guid isPermaLink="false">http://rubylearning.com/blog/?p=6442</guid>
		<description><![CDATA[This guest post is by Evan Light a test-obsessed developer, the author of several rarely used gems, and the curator of Ruby DCamp. When he&#8217;s not a talking head at conferences, he&#8217;s usually working at home as a freelance developer remotely mentoring a developer, working for one or more startups, playing with open source, keeping [...]<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>
]]></description>
			<content:encoded><![CDATA[<p></p>
<div>
<p class="update">This guest post is by <strong><a href="https://twitter.com/#!/elight">Evan Light</a></strong> a test-obsessed developer, the author of several rarely used gems, and the curator of Ruby DCamp. When he&#8217;s not a talking head at conferences, he&#8217;s usually working at home as a freelance developer remotely mentoring a developer, working for one or more startups, playing with open source, keeping his wife and four cats company, hacking nonsensically, talking at people on the internet, and/or attempting to lose weight (or any combination of the above). What else do you do when you live 3 hours from civilization?</p>
<p class="block"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright" src="http://www.gravatar.com/avatar/3c51f636715fb42bc82141702aa92b09?s=125" alt="Evan Light" /> You know what bugs me?  People who don&rsquo;t write idiomatic conditionals in Ruby.</p>
<p>Many folks, especially those who came out of Java, .NET, or C/C++, use and abuse the ternary.  The ternary is a humble little production rule that works like so:</p>
<pre><code>&lt;boolean expression&gt; ? &lt;eval this expression if truthy&gt; : &lt;eval if falsey&gt;
</code></pre>
<p>The ternary can be useful if the truthy and falsey cases are terse and well-named.  However, it&rsquo;s common to see multi-line ternaries or, even worse, nested ternaries.  For example:</p>
<p><script type="text/javascript" src="https://gist.github.com/1448377.js?file=delegation_1.rb"></script></p>
<p>By the way, the above example comes out of Rails.</p>
<p>Accepting that the above is just painful, how could we make it hurt less?  Specifically, let&rsquo;s focus on the nested ternary on Line 7 (accepting that there are other ways that the code can be made clearer).</p>
<p>For starters, let&rsquo;s DRY up these Hash lookups:</p>
<p><script type="text/javascript" src="https://gist.github.com/1448397.js?file=delegation_2.rb"></script></p>
<p>Now let&rsquo;s unravel this into more idiomatic Ruby.  We&rsquo;ll extract the outer ternary into a functional style if-else.  Remember that every expression in Ruby returns the value of its last executed expression.  The if-else returns either the value of the computed String in the <strong><em>if</em></strong> or the empty String <strong><em>else</em></strong>.  It has the advantage of containing more English words and fewer characters that resemble modem line noise or PERL.</p>
<p><script type="text/javascript" src="https://gist.github.com/1448450.js?file=delegation_3.rb"></script></p>
<p>We can get rid of this <strong><em>else</em></strong>.  After all, it doesn&rsquo;t contain any logic.  Let&rsquo;s just make it the default value for <strong><em>method_prefix</em></strong> and then assign a new value only when <strong><em>prefix</em></strong> is truthy.</p>
<p><script type="text/javascript" src="https://gist.github.com/1448492.js?file=delegation_4.rb"></script></p>
<p>Ah so what this code really cares about, first and foremost, is whether <strong><em>prefix</em></strong> is falsey.  When it&rsquo;s falsey, it just returns an empty String!  Otherwise, if it&rsquo;s not, it generates a String possibly using the value of <strong><em>prefix</em></strong> if and only if <strong><em>prefix</em></strong> is not true &ndash; not a boolean.</p>
<p>So why should we try to avoid ternaries?  Because, when used within a complex expression, they tend to lack the clarity of intent of an if-else.  The lack of clarity likely resulted in the less DRY previous implementation.  Once we introduced more clarity, it became obvious how this code could be DRY&rsquo;d up, resulting in better readability.</p>
<p><em>I hope you found this article valuable. Feel free to ask questions and give feedback in the comments section of this post.</em> Thanks!</p>
<p class="update">Subscribe to the waiting list of the free, online &#8220;<a href="http://satishtalim.github.com/webruby/">Intermediate Ruby Course</a>&#8220;. As a bonus, get a free copy of the &#8220;Introduction to Rack&#8221; eBook (.pdf format).</p>
</div>
<p>Technorati Tags: <a href="http://technorati.com/tag/Programming" rel="tag">Programming</a>, <a href="http://technorati.com/tag/Ruby+programming" rel="tag">Ruby programming</a>, <a href="http://technorati.com/tag/Conditional+Expressions" rel="tag">Conditional Expressions</a></p>
<p><a href="http://www.launchbit.com/az/113-209/"><img width="468" height="60" src="http://www.launchbit.com/az-images/113-209/" /></a><br />
<small>(Powered by <a href="http://www.launchbit.com/lb/113-209/">LaunchBit</a>)</small></p>

]]></content:encoded>
			<wfw:commentRss>http://rubylearning.com/blog/2011/12/21/lets-talk-about-conditional-expressions/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

