<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michael1117</id>
	<title>Noisebridge - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michael1117"/>
	<link rel="alternate" type="text/html" href="https://wiki.extremist.software/wiki/Special:Contributions/Michael1117"/>
	<updated>2026-04-03T20:06:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28413</id>
		<title>Backend web dev in Ruby on Rails</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28413"/>
		<updated>2012-12-17T23:57:23Z</updated>

		<summary type="html">&lt;p&gt;Michael1117: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a weekly seminar and workshop for folks to learn everything about Ruby, Rails, and web application development.&lt;br /&gt;
&lt;br /&gt;
We meet Tuesdays 7pm-9pm in the Church room.  &lt;br /&gt;
&lt;br /&gt;
Approximately half of our lessons are on Ruby, and half Rails.&lt;br /&gt;
&lt;br /&gt;
New students, to prepare for the Ruby lessons, please have Ruby 1.9.3 installed on your machine.&lt;br /&gt;
&lt;br /&gt;
New students, to prepare for the Rails lessons, please follow this great, actively maintained Railsbridge guide -- http://installfest.railsbridge.org/installfest/installfest . Then create a blog app by completing this tutorial --  http://guides.rubyonrails.org/getting_started.html .  (we will build off the blog app extensively)&lt;br /&gt;
&lt;br /&gt;
Student, teachers, TA&#039;s needed and welcome!&lt;br /&gt;
&lt;br /&gt;
Join the google group here: https://groups.google.com/group/starmonkeys .  And visit our class website at http://www.railsschool.org .&lt;br /&gt;
&lt;br /&gt;
Use the google group or Discussion view of this page to ask questions or suggest ideas!&lt;br /&gt;
&lt;br /&gt;
And be sure to check out Jeremy&#039;s awesome front-end class that meets Mondays:  https://www.noisebridge.net/wiki/Frontend_Web_Development .&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 12/18: Challenging Facebook API using Koala&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Building an app using very convenient Koala gem to play with Facebook API.&lt;br /&gt;
&lt;br /&gt;
Using very convenient Koala gem to play with Facebook API. Let&#039;s build a fun app during the class. Think about what fun apps we can build during our lesson? For example I was thinking about 1. an app that likes random posts on your friends feeds. 2. Shows your most liked photos&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/challenging-facebook-api-using-koala&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 12/11: Backends for Mobile Apps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use the Rails API gem to build a backend to support a mobile app.&lt;br /&gt;
&lt;br /&gt;
Recommended viewing&lt;br /&gt;
&lt;br /&gt;
The Rails API Gem by RailsCasts -&lt;br /&gt;
http://railscasts.com/episodes/348-the-rails-api-gem&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/backends-for-mobile-apps&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 12/4: Improving UX and Performance with Turblinks and Pjax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turbolinks and pjax are techniques that avoid page reloads when navigating a site.  &lt;br /&gt;
&lt;br /&gt;
Turbolinks can be added to an existing app with hardly any changes needed, and will be enabled by default in Rails 4.&lt;br /&gt;
&lt;br /&gt;
Pjax is used by Github, for example, to allow users to quickly navigate repositories.&lt;br /&gt;
&lt;br /&gt;
We will dust off our blog apps, turn on Turbolinks and observe the difference, then implement a little bit of pjax.&lt;br /&gt;
&lt;br /&gt;
Please make sure your blog app is functioning.&lt;br /&gt;
&lt;br /&gt;
Recommended viewing&lt;br /&gt;
http://railscasts.com/episodes/294-playing-with-pjax&lt;br /&gt;
http://railscasts.com/episodes/390-turbolinks&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/improving-ux-and-performance-with-turblinks-and-pjax&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/27: Backbone.js with Rails and creating an API for your app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing hot frontend framework backbone.js in rails application. Creating API for your app. Homework -&amp;gt; Read: http://backbonejs.org/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/backbone-js&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/20: Images: Instagram API with Ruby-On-Rails and Carrierwave gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Make sure that you have Rails installed. Think about what kind of App we can build during our class with Instagram API&lt;br /&gt;
Also would be good if you create Amazon Simple Storage Service (Amazon S3) (aws.amazon.com/s3/)&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/instagram-api-with-ruby-on-rails&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/13: Bootstrapping a Fresh Rails App&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll take a break from our blogs and create a brand new app.&lt;br /&gt;
&lt;br /&gt;
The goal is to learn the little gotchas associated with starting new projects as well as tips for getting up and running quickly. &lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html in preparation.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/bootstrapping-a-fresh-rails-app&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/6: Refactoring existing code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to take a look at refactoring an existing Rails up. Learn how to improve your models, controllers and views.&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/refactoring-existing-code&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/30: Image Uploads in Rails with TDD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/image-uploads-in-rails-with-tdd&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/23:  Calculating π with Object-Oriented Ruby and Test-Driven Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s use our favorite programming language to calculate one of our favorite irrationals.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need Rails for this class; it&#039;s Ruby-only. Just bring a laptop with Ruby 1.9. &lt;br /&gt;
&lt;br /&gt;
Suggested Preparation &lt;br /&gt;
&lt;br /&gt;
http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html &lt;br /&gt;
&lt;br /&gt;
http://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
&lt;br /&gt;
RSVP here- http://rails-school.heroku.com/lessons/calculating-with-object-oriented-ruby-and-test-driven-development&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/16:  How to prepare your Rails app for production&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By choosing to build your web app in Rails, countless choices have been made for you that give you the best chance of a successful launch. Nevertheless, there are some details you will need to take care of on your own.&lt;br /&gt;
&lt;br /&gt;
In this class, we will implement the minimum precautionary steps to ensure the performance and security of our Rails apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you have completed the Getting Started guide at http://guides.rubyonrails.org/getting_started.html and be ready to hack on your blogs in class.&lt;br /&gt;
&lt;br /&gt;
Recommended reading&lt;br /&gt;
http://guides.rubyonrails.org/security.html&lt;br /&gt;
http://guides.rubyonrails.org/caching_with_rails.html&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/how-to-prepare-your-rails-app-for-production&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/9: Sending email using background workers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this class we will show how to send email using Rails. We will also utilize delayed_job gem to handle the actual email sending in the background. &lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
ActiveMailer: http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
Delayed Job: https://github.com/collectiveidea/delayed_job&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/sending-email-using-background-workers&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/2: Etherpad Bots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Etherpads are the shared docs we take our class notes on. &lt;br /&gt;
&lt;br /&gt;
Read about Etherpads here: http://etherpad.org/ &lt;br /&gt;
&lt;br /&gt;
We will target an Etherpad-Lite instance using Ruby.  Visit https://github.com/jhollinger/ruby-etherpad-lite to get some ideas what might be possible.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/etherpad-bots&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/25: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a) bootstrapping your development environment - follow&lt;br /&gt;
http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b) setting up a basic blog application - follow&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.&lt;br /&gt;
This class will be a looser format than usual, so everyone, please&lt;br /&gt;
bring snacks! If there&#039;s interest, we will get beers at Shotwell&#039;s&lt;br /&gt;
afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day--2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/18: Roll-your-own Chat App with the Goliath web server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rails isn&#039;t perfect for interactive, real-time, scalable apps. Let&#039;s play with Goliath, a Ruby-based web server that is.&lt;br /&gt;
&lt;br /&gt;
This is Ruby-only class for which no Rails experience is required. &lt;br /&gt;
&lt;br /&gt;
However, please complete this small tutorial on EventMachine beforehand: http://rubysource.com/introduction-to-event-machine/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/roll-your-own-chat-app-with-the-goliath-web-server&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/11: Scraping and Parsing the Web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The last resort when there is no API, scraping and parsing isn&#039;t much fun, but Ruby&#039;s got some great tools to alleviate the pain.&lt;br /&gt;
&lt;br /&gt;
Please bring some sources you want to scrape as well as ideas for what to do with the scraped data. &lt;br /&gt;
&lt;br /&gt;
The homework is to complete this tutorial on regular expressions:http://net.tutsplus.com/tutorials/ruby/ruby-for-newbies-regular-expressions/ &lt;br /&gt;
&lt;br /&gt;
Regular expressions are a must-know tool when you&#039;re parsing textual data:http://xkcd.com/208/ &lt;br /&gt;
&lt;br /&gt;
But they&#039;re not the right tool for every problem:http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html&lt;br /&gt;
&lt;br /&gt;
This class is Ruby-only.  New students that are Ruby newbies, please complete http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html before class.  You don&#039;t need to know Rails are have completed the Rails getting started guide before attending Ruby-only classes like this one.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/scraping-and-parsing-the-web&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/4: Hacking around Foursquare API with ruby&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lets learn how easy it is to use Foursquare API with ruby {should be easy:)}&lt;br /&gt;
&lt;br /&gt;
Homework: &lt;br /&gt;
&lt;br /&gt;
1. generate ideas about how to use foursquare API and what apps could be made with it. &lt;br /&gt;
We will decide what app we are going to build at the beginning of the class. &lt;br /&gt;
&lt;br /&gt;
2. Scan through Foursquare API documentation https://developer.foursquare.com/ to know what is possible and what is not&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/hack-with-foursquare-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/28 Class: Self-posting Novelty Twitter Accounts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s create bots that make interesting tweets periodically&lt;br /&gt;
&lt;br /&gt;
The homework is just to come up with a fun and simple idea for the tweets you want your bot to post.   Also, register your novelty twitter username and a twitter app: http://dev.twitter.com .  And make sure you have a heroku account set up.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have a Ruby 101 break-out group for people that are not ready to program twitter bots.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/self-posting-novelty-twitter-accounts&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/21 Class: Dive into ActiveRecord&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be taking a deeper look at what is ActiveRecord (since it&#039;s such a big part of Rails)&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_querying.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/association_basics.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_validations_callbacks.html&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/activerecord&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/14 Class: Twitter API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Playing with twitter API to build fun apps&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
Twitter API docs: https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/7 Class: Ruby, API&#039;s, and Gems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No Rails today; Ruby, Rest API&#039;s and Ruby Gems instead!&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/31 Class: Rails&#039; Asset Pipeline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll look closely at asset organization, compilation, and packaging, and also check out SCSS and Coffeescript.&lt;br /&gt;
&lt;br /&gt;
Required Viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Understanding the Asset Pipeline&#039;&#039; by RailsCasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/279-understanding-the-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/rails-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/24 Class: Fun with the Stripe payment API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll hook up Stripe&#039;s API in our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please sign up for Stripe ahead of time - https://manage.stripe.com/register&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a handy link to Stripe&#039;s API docs - https://stripe.com/docs&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How I Explained REST to My Wife&#039;&#039; by Ryan Tomayko&lt;br /&gt;
&lt;br /&gt;
http://tomayko.com/writings/rest-to-my-wife&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/fun-with-the-stripe-payment-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/17 Class: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a)  bootstrapping your development environment - follow http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b)  setting up a basic blog application - follow http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.  This class will be a looser format than usual, so everyone, please bring snacks!  If there&#039;s interest, we will get beers at Shotwell&#039;s afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/10 Class: Continuous Integration with Travis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Intro to CI including configuring our apps to run on Travis-CI.&lt;br /&gt;
&lt;br /&gt;
Please bring a Rails app that you&#039;ve already pushed to Github.&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Continuous Integration&#039;&#039; by Martin Fowler&lt;br /&gt;
&lt;br /&gt;
http://martinfowler.com/articles/continuousIntegration.html&lt;br /&gt;
&lt;br /&gt;
RSPV here: http://rails-school.heroku.com/lessons/continuous-integration-with-travis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/3 Class: Playing with APIs&lt;br /&gt;
&lt;br /&gt;
Where: 7pm-9pm Tuesday in the Church classroom&lt;br /&gt;
&lt;br /&gt;
What: Using the Twitter API in your Rails app&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
&lt;br /&gt;
https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/lessons/playing-with-apis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/26 Class: Layouts and Rendering in Rails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Meeting as usual 7pm-9pm Tuesday in the Church classroom.&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce&lt;br /&gt;
how to organize layouts, partial, templates, etc in Rails.&lt;br /&gt;
&lt;br /&gt;
Homework:&lt;br /&gt;
1. http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
2. Scan through http://guides.rubyonrails.org/layouts_and_rendering.html &lt;br /&gt;
3. Also prepare some questions!! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/19 Class: Test-Driven-Development and Sending Emails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce Test-Driven-Development, and apply it to sending emails from our blogs.&lt;br /&gt;
&lt;br /&gt;
New students and others interested will have the option of learning Ruby 101 separately.&lt;br /&gt;
&lt;br /&gt;
Homework: First make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html, we will continue to work off of this tutorial.  Then get as far as you can in both of the following tutorials.  Don&#039;t worry if you don&#039;t finish them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Action Mailer Basics&#039;&#039; by RailsGuides&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Request Specs and Capybara&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/257-request-specs-and-capybara&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/12 Class: Dissecting the request lifecycle with pry&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s investigate the journey of a request through Rails with some help from the debugging tool pry.&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rails 3 in a Nutshell&#039;&#039; by O&#039;Reilly, Chapter 2, up to and including the &#039;&#039;&#039;Controller&#039;&#039;&#039; section&lt;br /&gt;
&lt;br /&gt;
http://ofps.oreilly.com/titles/9780596521424/rails.html&lt;br /&gt;
&lt;br /&gt;
Required viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pry with Rails&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/280-pry-with-rails&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/dissecting-the-request-lifecycle-with-pry&lt;br /&gt;
&lt;br /&gt;
Notes- http://beta.primarypad.com/p/G86Niu6EXz&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/5 Class: Ajax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to continue our discussion of using Rails&#039; Unobtrusive Javascript framework to add ajax interaction to our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html so we&#039;re all on the same page.&lt;br /&gt;
&lt;br /&gt;
Also, RSVP here: http://rails-school.heroku.com/lessons/ajax-in-rails .&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/KjI5Ic2327&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/29 Class: Intro to Product Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There&#039;s more to building web apps than hacking code, like figuring out what problem you&#039;re solving and how you&#039;ll know when you&#039;ve solved it.  This class we&#039;ll look at Michael&#039;s website for the class (http://rails-school.heroku.com) and polish it into a valuable tool for organizing our study group.&lt;br /&gt;
&lt;br /&gt;
Homework is to think about these questions, or come up with your own:&lt;br /&gt;
* Who are the target users of the class website?&lt;br /&gt;
* What utility do they need out of the site to start using it right away?&lt;br /&gt;
* What features could be added to open up the site to a larger audience?&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QjFPw7bflF&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/22 Class: Authentication with the Devise gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .  Seriously!&lt;br /&gt;
&lt;br /&gt;
Enough talking about awesome Rails gems, let&#039;s use one in an app.  We&#039;re going to add authentication to the blogs we created in the Getting Started guide, using the devise gem.&lt;br /&gt;
&lt;br /&gt;
We will also have a beginners&#039; group for folks needing help getting Rails set up or wanting to learn Ruby.&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QC7KG7aKVB&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/15 Class: Demo Day!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .&lt;br /&gt;
&lt;br /&gt;
This class we&#039;re going to start with a show-and-tell of projects we&#039;re working on or have recently completed.  The demos don&#039;t have to be Ruby- or Rails-related, but should be related to web programming in some way.  This is a chance to get answers to your project-specific questions, find fun new projects to work on, and receive great feedback.&lt;br /&gt;
&lt;br /&gt;
Then we&#039;ll break up into two groups, one for beginners and one for more experienced students.&lt;br /&gt;
&lt;br /&gt;
Notes - http://openetherpad.org/xsy1zKhrbj&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/8 Class: topic is BLOGS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please tackle http://guides.rubyonrails.org/getting_started.html and get as far as you can in setting up a simple blog app.  &lt;br /&gt;
&lt;br /&gt;
Please post some links here to your favorite blogs.  We&#039;ll take a look at some blog features and talk about how they might be implemented.&lt;br /&gt;
&lt;br /&gt;
Gabe&#039;s pick: http://www.overheardinnewyork.com/&lt;br /&gt;
&lt;br /&gt;
Notes: http://openetherpad.org/sIYNUEPzld&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/2 Class:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes: http://piratepad.net/dJupUHZoOP&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Rails]]&lt;br /&gt;
[[Category:Classes]]&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Michael1117</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28203</id>
		<title>Backend web dev in Ruby on Rails</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28203"/>
		<updated>2012-11-26T06:51:51Z</updated>

		<summary type="html">&lt;p&gt;Michael1117: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a weekly seminar and workshop for folks to learn everything about Ruby, Rails, and web application development.&lt;br /&gt;
&lt;br /&gt;
We meet Tuesdays 7pm-9pm in the Church room.  &lt;br /&gt;
&lt;br /&gt;
Bring a laptop if you have one, and please follow the steps here on the great, actively maintained Railsbridge guide for getting set up: http://installfest.railsbridge.org/installfest/installfest to prepare your system.  New students, get as far as you can in this tutorial--  http://guides.rubyonrails.org/getting_started.html .  (we will build off this tutorial extensively)&lt;br /&gt;
&lt;br /&gt;
Student, teachers, TA&#039;s needed and welcome!&lt;br /&gt;
&lt;br /&gt;
Join the google group here: https://groups.google.com/group/starmonkeys .  And visit our class website at http://www.railsschool.org .&lt;br /&gt;
&lt;br /&gt;
Use the google group or Discussion view of this page to ask questions or suggest ideas!&lt;br /&gt;
&lt;br /&gt;
And be sure to check out Jeremy&#039;s awesome front-end class that meets Mondays:  https://www.noisebridge.net/wiki/Frontend_Web_Development .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/27: Backbone.js with Rails and creating an API for your app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing hot frontend framework backbone.js in rails application. Creating API for your app. Homework -&amp;gt; Read: http://backbonejs.org/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/backbone-js&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/20: Images: Instagram API with Ruby-On-Rails and Carrierwave gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Make sure that you have Rails installed. Think about what kind of App we can build during our class with Instagram API&lt;br /&gt;
Also would be good if you create Amazon Simple Storage Service (Amazon S3) (aws.amazon.com/s3/)&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/instagram-api-with-ruby-on-rails&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/13: Bootstrapping a Fresh Rails App&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll take a break from our blogs and create a brand new app.&lt;br /&gt;
&lt;br /&gt;
The goal is to learn the little gotchas associated with starting new projects as well as tips for getting up and running quickly. &lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html in preparation.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/bootstrapping-a-fresh-rails-app&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/6: Refactoring existing code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to take a look at refactoring an existing Rails up. Learn how to improve your models, controllers and views.&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/refactoring-existing-code&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/30: Image Uploads in Rails with TDD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/image-uploads-in-rails-with-tdd&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/23:  Calculating π with Object-Oriented Ruby and Test-Driven Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s use our favorite programming language to calculate one of our favorite irrationals.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need Rails for this class; it&#039;s Ruby-only. Just bring a laptop with Ruby 1.9. &lt;br /&gt;
&lt;br /&gt;
Suggested Preparation &lt;br /&gt;
&lt;br /&gt;
http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html &lt;br /&gt;
&lt;br /&gt;
http://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
&lt;br /&gt;
RSVP here- http://rails-school.heroku.com/lessons/calculating-with-object-oriented-ruby-and-test-driven-development&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/16:  How to prepare your Rails app for production&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By choosing to build your web app in Rails, countless choices have been made for you that give you the best chance of a successful launch. Nevertheless, there are some details you will need to take care of on your own.&lt;br /&gt;
&lt;br /&gt;
In this class, we will implement the minimum precautionary steps to ensure the performance and security of our Rails apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you have completed the Getting Started guide at http://guides.rubyonrails.org/getting_started.html and be ready to hack on your blogs in class.&lt;br /&gt;
&lt;br /&gt;
Recommended reading&lt;br /&gt;
http://guides.rubyonrails.org/security.html&lt;br /&gt;
http://guides.rubyonrails.org/caching_with_rails.html&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/how-to-prepare-your-rails-app-for-production&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/9: Sending email using background workers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this class we will show how to send email using Rails. We will also utilize delayed_job gem to handle the actual email sending in the background. &lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
ActiveMailer: http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
Delayed Job: https://github.com/collectiveidea/delayed_job&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/sending-email-using-background-workers&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/2: Etherpad Bots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Etherpads are the shared docs we take our class notes on. &lt;br /&gt;
&lt;br /&gt;
Read about Etherpads here: http://etherpad.org/ &lt;br /&gt;
&lt;br /&gt;
We will target an Etherpad-Lite instance using Ruby.  Visit https://github.com/jhollinger/ruby-etherpad-lite to get some ideas what might be possible.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/etherpad-bots&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/25: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a) bootstrapping your development environment - follow&lt;br /&gt;
http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b) setting up a basic blog application - follow&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.&lt;br /&gt;
This class will be a looser format than usual, so everyone, please&lt;br /&gt;
bring snacks! If there&#039;s interest, we will get beers at Shotwell&#039;s&lt;br /&gt;
afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day--2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/18: Roll-your-own Chat App with the Goliath web server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rails isn&#039;t perfect for interactive, real-time, scalable apps. Let&#039;s play with Goliath, a Ruby-based web server that is.&lt;br /&gt;
&lt;br /&gt;
This is Ruby-only class for which no Rails experience is required. &lt;br /&gt;
&lt;br /&gt;
However, please complete this small tutorial on EventMachine beforehand: http://rubysource.com/introduction-to-event-machine/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/roll-your-own-chat-app-with-the-goliath-web-server&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/11: Scraping and Parsing the Web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The last resort when there is no API, scraping and parsing isn&#039;t much fun, but Ruby&#039;s got some great tools to alleviate the pain.&lt;br /&gt;
&lt;br /&gt;
Please bring some sources you want to scrape as well as ideas for what to do with the scraped data. &lt;br /&gt;
&lt;br /&gt;
The homework is to complete this tutorial on regular expressions:http://net.tutsplus.com/tutorials/ruby/ruby-for-newbies-regular-expressions/ &lt;br /&gt;
&lt;br /&gt;
Regular expressions are a must-know tool when you&#039;re parsing textual data:http://xkcd.com/208/ &lt;br /&gt;
&lt;br /&gt;
But they&#039;re not the right tool for every problem:http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html&lt;br /&gt;
&lt;br /&gt;
This class is Ruby-only.  New students that are Ruby newbies, please complete http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html before class.  You don&#039;t need to know Rails are have completed the Rails getting started guide before attending Ruby-only classes like this one.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/scraping-and-parsing-the-web&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/4: Hacking around Foursquare API with ruby&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lets learn how easy it is to use Foursquare API with ruby {should be easy:)}&lt;br /&gt;
&lt;br /&gt;
Homework: &lt;br /&gt;
&lt;br /&gt;
1. generate ideas about how to use foursquare API and what apps could be made with it. &lt;br /&gt;
We will decide what app we are going to build at the beginning of the class. &lt;br /&gt;
&lt;br /&gt;
2. Scan through Foursquare API documentation https://developer.foursquare.com/ to know what is possible and what is not&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/hack-with-foursquare-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/28 Class: Self-posting Novelty Twitter Accounts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s create bots that make interesting tweets periodically&lt;br /&gt;
&lt;br /&gt;
The homework is just to come up with a fun and simple idea for the tweets you want your bot to post.   Also, register your novelty twitter username and a twitter app: http://dev.twitter.com .  And make sure you have a heroku account set up.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have a Ruby 101 break-out group for people that are not ready to program twitter bots.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/self-posting-novelty-twitter-accounts&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/21 Class: Dive into ActiveRecord&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be taking a deeper look at what is ActiveRecord (since it&#039;s such a big part of Rails)&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_querying.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/association_basics.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_validations_callbacks.html&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/activerecord&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/14 Class: Twitter API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Playing with twitter API to build fun apps&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
Twitter API docs: https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/7 Class: Ruby, API&#039;s, and Gems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No Rails today; Ruby, Rest API&#039;s and Ruby Gems instead!&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/31 Class: Rails&#039; Asset Pipeline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll look closely at asset organization, compilation, and packaging, and also check out SCSS and Coffeescript.&lt;br /&gt;
&lt;br /&gt;
Required Viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Understanding the Asset Pipeline&#039;&#039; by RailsCasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/279-understanding-the-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/rails-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/24 Class: Fun with the Stripe payment API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll hook up Stripe&#039;s API in our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please sign up for Stripe ahead of time - https://manage.stripe.com/register&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a handy link to Stripe&#039;s API docs - https://stripe.com/docs&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How I Explained REST to My Wife&#039;&#039; by Ryan Tomayko&lt;br /&gt;
&lt;br /&gt;
http://tomayko.com/writings/rest-to-my-wife&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/fun-with-the-stripe-payment-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/17 Class: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a)  bootstrapping your development environment - follow http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b)  setting up a basic blog application - follow http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.  This class will be a looser format than usual, so everyone, please bring snacks!  If there&#039;s interest, we will get beers at Shotwell&#039;s afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/10 Class: Continuous Integration with Travis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Intro to CI including configuring our apps to run on Travis-CI.&lt;br /&gt;
&lt;br /&gt;
Please bring a Rails app that you&#039;ve already pushed to Github.&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Continuous Integration&#039;&#039; by Martin Fowler&lt;br /&gt;
&lt;br /&gt;
http://martinfowler.com/articles/continuousIntegration.html&lt;br /&gt;
&lt;br /&gt;
RSPV here: http://rails-school.heroku.com/lessons/continuous-integration-with-travis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/3 Class: Playing with APIs&lt;br /&gt;
&lt;br /&gt;
Where: 7pm-9pm Tuesday in the Church classroom&lt;br /&gt;
&lt;br /&gt;
What: Using the Twitter API in your Rails app&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
&lt;br /&gt;
https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/lessons/playing-with-apis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/26 Class: Layouts and Rendering in Rails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Meeting as usual 7pm-9pm Tuesday in the Church classroom.&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce&lt;br /&gt;
how to organize layouts, partial, templates, etc in Rails.&lt;br /&gt;
&lt;br /&gt;
Homework:&lt;br /&gt;
1. http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
2. Scan through http://guides.rubyonrails.org/layouts_and_rendering.html &lt;br /&gt;
3. Also prepare some questions!! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/19 Class: Test-Driven-Development and Sending Emails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce Test-Driven-Development, and apply it to sending emails from our blogs.&lt;br /&gt;
&lt;br /&gt;
New students and others interested will have the option of learning Ruby 101 separately.&lt;br /&gt;
&lt;br /&gt;
Homework: First make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html, we will continue to work off of this tutorial.  Then get as far as you can in both of the following tutorials.  Don&#039;t worry if you don&#039;t finish them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Action Mailer Basics&#039;&#039; by RailsGuides&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Request Specs and Capybara&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/257-request-specs-and-capybara&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/12 Class: Dissecting the request lifecycle with pry&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s investigate the journey of a request through Rails with some help from the debugging tool pry.&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rails 3 in a Nutshell&#039;&#039; by O&#039;Reilly, Chapter 2, up to and including the &#039;&#039;&#039;Controller&#039;&#039;&#039; section&lt;br /&gt;
&lt;br /&gt;
http://ofps.oreilly.com/titles/9780596521424/rails.html&lt;br /&gt;
&lt;br /&gt;
Required viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pry with Rails&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/280-pry-with-rails&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/dissecting-the-request-lifecycle-with-pry&lt;br /&gt;
&lt;br /&gt;
Notes- http://beta.primarypad.com/p/G86Niu6EXz&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/5 Class: Ajax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to continue our discussion of using Rails&#039; Unobtrusive Javascript framework to add ajax interaction to our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html so we&#039;re all on the same page.&lt;br /&gt;
&lt;br /&gt;
Also, RSVP here: http://rails-school.heroku.com/lessons/ajax-in-rails .&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/KjI5Ic2327&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/29 Class: Intro to Product Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There&#039;s more to building web apps than hacking code, like figuring out what problem you&#039;re solving and how you&#039;ll know when you&#039;ve solved it.  This class we&#039;ll look at Michael&#039;s website for the class (http://rails-school.heroku.com) and polish it into a valuable tool for organizing our study group.&lt;br /&gt;
&lt;br /&gt;
Homework is to think about these questions, or come up with your own:&lt;br /&gt;
* Who are the target users of the class website?&lt;br /&gt;
* What utility do they need out of the site to start using it right away?&lt;br /&gt;
* What features could be added to open up the site to a larger audience?&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QjFPw7bflF&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/22 Class: Authentication with the Devise gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .  Seriously!&lt;br /&gt;
&lt;br /&gt;
Enough talking about awesome Rails gems, let&#039;s use one in an app.  We&#039;re going to add authentication to the blogs we created in the Getting Started guide, using the devise gem.&lt;br /&gt;
&lt;br /&gt;
We will also have a beginners&#039; group for folks needing help getting Rails set up or wanting to learn Ruby.&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QC7KG7aKVB&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/15 Class: Demo Day!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .&lt;br /&gt;
&lt;br /&gt;
This class we&#039;re going to start with a show-and-tell of projects we&#039;re working on or have recently completed.  The demos don&#039;t have to be Ruby- or Rails-related, but should be related to web programming in some way.  This is a chance to get answers to your project-specific questions, find fun new projects to work on, and receive great feedback.&lt;br /&gt;
&lt;br /&gt;
Then we&#039;ll break up into two groups, one for beginners and one for more experienced students.&lt;br /&gt;
&lt;br /&gt;
Notes - http://openetherpad.org/xsy1zKhrbj&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/8 Class: topic is BLOGS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please tackle http://guides.rubyonrails.org/getting_started.html and get as far as you can in setting up a simple blog app.  &lt;br /&gt;
&lt;br /&gt;
Please post some links here to your favorite blogs.  We&#039;ll take a look at some blog features and talk about how they might be implemented.&lt;br /&gt;
&lt;br /&gt;
Gabe&#039;s pick: http://www.overheardinnewyork.com/&lt;br /&gt;
&lt;br /&gt;
Notes: http://openetherpad.org/sIYNUEPzld&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/2 Class:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes: http://piratepad.net/dJupUHZoOP&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Michael1117</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28149</id>
		<title>Backend web dev in Ruby on Rails</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Backend_web_dev_in_Ruby_on_Rails&amp;diff=28149"/>
		<updated>2012-11-18T00:51:34Z</updated>

		<summary type="html">&lt;p&gt;Michael1117: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a weekly seminar and workshop for folks to learn everything about Ruby, Rails, and web application development.&lt;br /&gt;
&lt;br /&gt;
We meet Tuesdays 7pm-9pm in the Church room.  &lt;br /&gt;
&lt;br /&gt;
Bring a laptop if you have one, and please follow the steps here on the great, actively maintained Railsbridge guide for getting set up: http://installfest.railsbridge.org/installfest/installfest to prepare your system.  New students, get as far as you can in this tutorial--  http://guides.rubyonrails.org/getting_started.html .  (we will build off this tutorial extensively)&lt;br /&gt;
&lt;br /&gt;
Student, teachers, TA&#039;s needed and welcome!&lt;br /&gt;
&lt;br /&gt;
Join the google group here: https://groups.google.com/group/starmonkeys .  And visit our class website at http://www.railsschool.org .&lt;br /&gt;
&lt;br /&gt;
Use the google group or Discussion view of this page to ask questions or suggest ideas!&lt;br /&gt;
&lt;br /&gt;
And be sure to check out Jeremy&#039;s awesome front-end class that meets Mondays:  https://www.noisebridge.net/wiki/Frontend_Web_Development .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/20: Images: Instagram API with Ruby-On-Rails and Carrierwave gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Make sure that you have Rails installed. Think about what kind of App we can build during our class with Instagram API&lt;br /&gt;
Also would be good if you create Amazon Simple Storage Service (Amazon S3) (aws.amazon.com/s3/)&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://www.railsschool.org/l/instagram-api-with-ruby-on-rails&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/13: Bootstrapping a Fresh Rails App&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll take a break from our blogs and create a brand new app.&lt;br /&gt;
&lt;br /&gt;
The goal is to learn the little gotchas associated with starting new projects as well as tips for getting up and running quickly. &lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html in preparation.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/bootstrapping-a-fresh-rails-app&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 11/6: Refactoring existing code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to take a look at refactoring an existing Rails up. Learn how to improve your models, controllers and views.&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/refactoring-existing-code&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/30: Image Uploads in Rails with TDD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please complete http://guides.rubyonrails.org/getting_started.html beforehand.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/image-uploads-in-rails-with-tdd&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/23:  Calculating π with Object-Oriented Ruby and Test-Driven Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s use our favorite programming language to calculate one of our favorite irrationals.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need Rails for this class; it&#039;s Ruby-only. Just bring a laptop with Ruby 1.9. &lt;br /&gt;
&lt;br /&gt;
Suggested Preparation &lt;br /&gt;
&lt;br /&gt;
http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html &lt;br /&gt;
&lt;br /&gt;
http://blog.teamtreehouse.com/an-introduction-to-rspec&lt;br /&gt;
&lt;br /&gt;
RSVP here- http://rails-school.heroku.com/lessons/calculating-with-object-oriented-ruby-and-test-driven-development&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/16:  How to prepare your Rails app for production&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By choosing to build your web app in Rails, countless choices have been made for you that give you the best chance of a successful launch. Nevertheless, there are some details you will need to take care of on your own.&lt;br /&gt;
&lt;br /&gt;
In this class, we will implement the minimum precautionary steps to ensure the performance and security of our Rails apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you have completed the Getting Started guide at http://guides.rubyonrails.org/getting_started.html and be ready to hack on your blogs in class.&lt;br /&gt;
&lt;br /&gt;
Recommended reading&lt;br /&gt;
http://guides.rubyonrails.org/security.html&lt;br /&gt;
http://guides.rubyonrails.org/caching_with_rails.html&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/how-to-prepare-your-rails-app-for-production&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/9: Sending email using background workers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this class we will show how to send email using Rails. We will also utilize delayed_job gem to handle the actual email sending in the background. &lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
ActiveMailer: http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
Delayed Job: https://github.com/collectiveidea/delayed_job&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/sending-email-using-background-workers&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 10/2: Etherpad Bots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Etherpads are the shared docs we take our class notes on. &lt;br /&gt;
&lt;br /&gt;
Read about Etherpads here: http://etherpad.org/ &lt;br /&gt;
&lt;br /&gt;
We will target an Etherpad-Lite instance using Ruby.  Visit https://github.com/jhollinger/ruby-etherpad-lite to get some ideas what might be possible.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/etherpad-bots&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/25: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a) bootstrapping your development environment - follow&lt;br /&gt;
http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b) setting up a basic blog application - follow&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.&lt;br /&gt;
This class will be a looser format than usual, so everyone, please&lt;br /&gt;
bring snacks! If there&#039;s interest, we will get beers at Shotwell&#039;s&lt;br /&gt;
afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day--2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/18: Roll-your-own Chat App with the Goliath web server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rails isn&#039;t perfect for interactive, real-time, scalable apps. Let&#039;s play with Goliath, a Ruby-based web server that is.&lt;br /&gt;
&lt;br /&gt;
This is Ruby-only class for which no Rails experience is required. &lt;br /&gt;
&lt;br /&gt;
However, please complete this small tutorial on EventMachine beforehand: http://rubysource.com/introduction-to-event-machine/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/roll-your-own-chat-app-with-the-goliath-web-server&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/11: Scraping and Parsing the Web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The last resort when there is no API, scraping and parsing isn&#039;t much fun, but Ruby&#039;s got some great tools to alleviate the pain.&lt;br /&gt;
&lt;br /&gt;
Please bring some sources you want to scrape as well as ideas for what to do with the scraped data. &lt;br /&gt;
&lt;br /&gt;
The homework is to complete this tutorial on regular expressions:http://net.tutsplus.com/tutorials/ruby/ruby-for-newbies-regular-expressions/ &lt;br /&gt;
&lt;br /&gt;
Regular expressions are a must-know tool when you&#039;re parsing textual data:http://xkcd.com/208/ &lt;br /&gt;
&lt;br /&gt;
But they&#039;re not the right tool for every problem:http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html&lt;br /&gt;
&lt;br /&gt;
This class is Ruby-only.  New students that are Ruby newbies, please complete http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html before class.  You don&#039;t need to know Rails are have completed the Rails getting started guide before attending Ruby-only classes like this one.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/scraping-and-parsing-the-web&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class 9/4: Hacking around Foursquare API with ruby&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lets learn how easy it is to use Foursquare API with ruby {should be easy:)}&lt;br /&gt;
&lt;br /&gt;
Homework: &lt;br /&gt;
&lt;br /&gt;
1. generate ideas about how to use foursquare API and what apps could be made with it. &lt;br /&gt;
We will decide what app we are going to build at the beginning of the class. &lt;br /&gt;
&lt;br /&gt;
2. Scan through Foursquare API documentation https://developer.foursquare.com/ to know what is possible and what is not&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/hack-with-foursquare-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/28 Class: Self-posting Novelty Twitter Accounts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s create bots that make interesting tweets periodically&lt;br /&gt;
&lt;br /&gt;
The homework is just to come up with a fun and simple idea for the tweets you want your bot to post.   Also, register your novelty twitter username and a twitter app: http://dev.twitter.com .  And make sure you have a heroku account set up.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have a Ruby 101 break-out group for people that are not ready to program twitter bots.&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/self-posting-novelty-twitter-accounts&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/21 Class: Dive into ActiveRecord&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be taking a deeper look at what is ActiveRecord (since it&#039;s such a big part of Rails)&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_querying.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/association_basics.html&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/active_record_validations_callbacks.html&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/activerecord&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/14 Class: Twitter API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Playing with twitter API to build fun apps&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
Twitter API docs: https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/7 Class: Ruby, API&#039;s, and Gems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No Rails today; Ruby, Rest API&#039;s and Ruby Gems instead!&lt;br /&gt;
&lt;br /&gt;
Highly Recommended Reading &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The (Poignant) Guide to Ruby&#039;&#039; by _why&lt;br /&gt;
&lt;br /&gt;
http://mislav.uniqpath.com/poignant-guide/&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/ruby-api-s-and-gems&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/31 Class: Rails&#039; Asset Pipeline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll look closely at asset organization, compilation, and packaging, and also check out SCSS and Coffeescript.&lt;br /&gt;
&lt;br /&gt;
Required Viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Understanding the Asset Pipeline&#039;&#039; by RailsCasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/279-understanding-the-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/lessons/rails-asset-pipeline&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/24 Class: Fun with the Stripe payment API&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll hook up Stripe&#039;s API in our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please sign up for Stripe ahead of time - https://manage.stripe.com/register&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a handy link to Stripe&#039;s API docs - https://stripe.com/docs&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How I Explained REST to My Wife&#039;&#039; by Ryan Tomayko&lt;br /&gt;
&lt;br /&gt;
http://tomayko.com/writings/rest-to-my-wife&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/fun-with-the-stripe-payment-api&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/17 Class: Catch-up Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to use this class to catch up new students.&lt;br /&gt;
&lt;br /&gt;
The two big things we want to accomplish:&lt;br /&gt;
&lt;br /&gt;
a)  bootstrapping your development environment - follow http://installfest.railsbridge.org/installfest/installfest&lt;br /&gt;
&lt;br /&gt;
b)  setting up a basic blog application - follow http://guides.rubyonrails.org/getting_started.html&lt;br /&gt;
&lt;br /&gt;
To prepare for this class, get as far as you can in these two tutorials.&lt;br /&gt;
&lt;br /&gt;
Experienced students please consider coming out to help troubleshoot.  This class will be a looser format than usual, so everyone, please bring snacks!  If there&#039;s interest, we will get beers at Shotwell&#039;s afterward to celebrate being caught up.&lt;br /&gt;
&lt;br /&gt;
RSVP here - http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/catch-up-day&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/10 Class: Continuous Integration with Travis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Intro to CI including configuring our apps to run on Travis-CI.&lt;br /&gt;
&lt;br /&gt;
Please bring a Rails app that you&#039;ve already pushed to Github.&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Continuous Integration&#039;&#039; by Martin Fowler&lt;br /&gt;
&lt;br /&gt;
http://martinfowler.com/articles/continuousIntegration.html&lt;br /&gt;
&lt;br /&gt;
RSPV here: http://rails-school.heroku.com/lessons/continuous-integration-with-travis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7/3 Class: Playing with APIs&lt;br /&gt;
&lt;br /&gt;
Where: 7pm-9pm Tuesday in the Church classroom&lt;br /&gt;
&lt;br /&gt;
What: Using the Twitter API in your Rails app&lt;br /&gt;
&lt;br /&gt;
Suggested reading:&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
&lt;br /&gt;
https://dev.twitter.com/docs/api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/lessons/playing-with-apis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/26 Class: Layouts and Rendering in Rails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Meeting as usual 7pm-9pm Tuesday in the Church classroom.&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce&lt;br /&gt;
how to organize layouts, partial, templates, etc in Rails.&lt;br /&gt;
&lt;br /&gt;
Homework:&lt;br /&gt;
1. http://guides.rubyonrails.org/getting_started.html (for new students)&lt;br /&gt;
2. Scan through http://guides.rubyonrails.org/layouts_and_rendering.html &lt;br /&gt;
3. Also prepare some questions!! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/layouts-and-rendering-in-rails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/19 Class: Test-Driven-Development and Sending Emails&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this ambitious lecture-workshop, we&#039;re going to introduce Test-Driven-Development, and apply it to sending emails from our blogs.&lt;br /&gt;
&lt;br /&gt;
New students and others interested will have the option of learning Ruby 101 separately.&lt;br /&gt;
&lt;br /&gt;
Homework: First make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html, we will continue to work off of this tutorial.  Then get as far as you can in both of the following tutorials.  Don&#039;t worry if you don&#039;t finish them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Action Mailer Basics&#039;&#039; by RailsGuides&lt;br /&gt;
&lt;br /&gt;
http://guides.rubyonrails.org/action_mailer_basics.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Request Specs and Capybara&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/257-request-specs-and-capybara&lt;br /&gt;
&lt;br /&gt;
RSVP here:&lt;br /&gt;
&lt;br /&gt;
http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails&lt;br /&gt;
&lt;br /&gt;
Notes- http://rails-school.heroku.com/lessons/test-driven-development-and-sending-emails#whiteboard&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/12 Class: Dissecting the request lifecycle with pry&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s investigate the journey of a request through Rails with some help from the debugging tool pry.&lt;br /&gt;
&lt;br /&gt;
Required reading&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rails 3 in a Nutshell&#039;&#039; by O&#039;Reilly, Chapter 2, up to and including the &#039;&#039;&#039;Controller&#039;&#039;&#039; section&lt;br /&gt;
&lt;br /&gt;
http://ofps.oreilly.com/titles/9780596521424/rails.html&lt;br /&gt;
&lt;br /&gt;
Required viewing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pry with Rails&#039;&#039; by Railscasts&lt;br /&gt;
&lt;br /&gt;
http://railscasts.com/episodes/280-pry-with-rails&lt;br /&gt;
&lt;br /&gt;
RSVP here: http://rails-school.heroku.com/courses/noisebridge-rails-course/lessons/dissecting-the-request-lifecycle-with-pry&lt;br /&gt;
&lt;br /&gt;
Notes- http://beta.primarypad.com/p/G86Niu6EXz&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/5 Class: Ajax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to continue our discussion of using Rails&#039; Unobtrusive Javascript framework to add ajax interaction to our blog apps.&lt;br /&gt;
&lt;br /&gt;
Please make sure you&#039;ve completed http://guides.rubyonrails.org/getting_started.html so we&#039;re all on the same page.&lt;br /&gt;
&lt;br /&gt;
Also, RSVP here: http://rails-school.heroku.com/lessons/ajax-in-rails .&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/KjI5Ic2327&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/29 Class: Intro to Product Development&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There&#039;s more to building web apps than hacking code, like figuring out what problem you&#039;re solving and how you&#039;ll know when you&#039;ve solved it.  This class we&#039;ll look at Michael&#039;s website for the class (http://rails-school.heroku.com) and polish it into a valuable tool for organizing our study group.&lt;br /&gt;
&lt;br /&gt;
Homework is to think about these questions, or come up with your own:&lt;br /&gt;
* Who are the target users of the class website?&lt;br /&gt;
* What utility do they need out of the site to start using it right away?&lt;br /&gt;
* What features could be added to open up the site to a larger audience?&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QjFPw7bflF&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/22 Class: Authentication with the Devise gem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .  Seriously!&lt;br /&gt;
&lt;br /&gt;
Enough talking about awesome Rails gems, let&#039;s use one in an app.  We&#039;re going to add authentication to the blogs we created in the Getting Started guide, using the devise gem.&lt;br /&gt;
&lt;br /&gt;
We will also have a beginners&#039; group for folks needing help getting Rails set up or wanting to learn Ruby.&lt;br /&gt;
&lt;br /&gt;
Notes- http://openetherpad.org/QC7KG7aKVB&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/15 Class: Demo Day!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please finish the tutorial at http://guides.rubyonrails.org/getting_started.html .&lt;br /&gt;
&lt;br /&gt;
This class we&#039;re going to start with a show-and-tell of projects we&#039;re working on or have recently completed.  The demos don&#039;t have to be Ruby- or Rails-related, but should be related to web programming in some way.  This is a chance to get answers to your project-specific questions, find fun new projects to work on, and receive great feedback.&lt;br /&gt;
&lt;br /&gt;
Then we&#039;ll break up into two groups, one for beginners and one for more experienced students.&lt;br /&gt;
&lt;br /&gt;
Notes - http://openetherpad.org/xsy1zKhrbj&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/8 Class: topic is BLOGS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In preparation please tackle http://guides.rubyonrails.org/getting_started.html and get as far as you can in setting up a simple blog app.  &lt;br /&gt;
&lt;br /&gt;
Please post some links here to your favorite blogs.  We&#039;ll take a look at some blog features and talk about how they might be implemented.&lt;br /&gt;
&lt;br /&gt;
Gabe&#039;s pick: http://www.overheardinnewyork.com/&lt;br /&gt;
&lt;br /&gt;
Notes: http://openetherpad.org/sIYNUEPzld&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/2 Class:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes: http://piratepad.net/dJupUHZoOP&lt;br /&gt;
&lt;br /&gt;
[[Category:Ruby]]&lt;/div&gt;</summary>
		<author><name>Michael1117</name></author>
	</entry>
</feed>