Teach Me To Code » Screencasts (iPhone/iPod)
Writing Code is the Easy Part
Technology 47 rész Teach Me To Code Screencasts (iPhone & iPod)
My Podcasting Setup
0 perc
47. rész
My Equipment:
Mackie PROFX12 12-Channel Compact Effects Mixer with USB
Sony MDR7506 Professional Large Diaphragm Headphone
Roland R-05 Studio WAVE/MP3 Recorder
Transcend 32 GB Class 10 SDHC Flash Memory Card (TS32GSDHC10E) (for the Roland R-05)
Griffin Technology iMic USB Audio Device
Doctor Who TARDIS USB Hub Doctor Who TARDIS USB Hub Model #DR115
QuickVoice Recorder
Rolls MM11 Microphone Muting Switch Designed to Temporarily Mute a Balanced XLR Signal
Heil PR-40 Dynamic Studio Recording Microphone
Heil Sound SM-2 Shockmount for PR-30 and PR-40 Champagne
Heil Sound PL-2T Overhead Broadcast Boom (Standard)
Podcasting Club Setup:
Behringer Xenyx 802 Premium 8-Input 2-Bus Mixer with Xenyx Mic Preamps and British EQs
Shure SM58-CN Cardioid Dynamic Vocal Microphone with Cable
On Stage Foam Ball-Type Mic Windscreen, Black
Hamilton Nu-Era Tabletop Mic Stand
JVC HA-V570 Supra-Aural Headphones
Upgrading JotRod to Rails 3.1.3
0 perc
46. rész
When preparing to add some layout features to JotRod, I realized it was a Rails 3.0.9 application. Here's a quick rundown on upgrading to Rails 3.1.3.
Download 164.7 MB
Download (iPod & iPhone) 37.9 MB
Take the 2011 Readers Survey
Followers and Following
0 perc
45. rész
In order to get someone a timeline in JotRod, we need followers and following lists to compile the Jots from. This means that we need to add a new ColumnFamily called Followers and another one called Following. We don't have the joins capability from relational databases to do this for us.
I'm going to hijack the User model's database connection to create the ColumnFamilies. (We don't have migrations, yet.) Here's what I ran in the rails console:
cf_def = CassandraThrift::CfDef.new(:keyspace => "JotRod", :name => "Followers")
User.connection.add_column_family(cf_def)
cf_def = CassandraThrift::CfDef.new(:keyspace => "JotRod", :name => "Following")
User.connection.add_column_family(cf_def)
Now that we have the ColumnFamilies, I want to have syntax like this to define the relationships on the User model:
list :followers, :User
list :following, :User
This should provide the following API:
#followers - returns an array of users as specified from the Followers ColumnFamily
#followers<<(user) - adds the user to the User object's followers list if it's not already there
and a similar API for following.
Sandra's repository
JotRod's repository
Download 680 MB
Download (iPod & iPhone) 165 MB
Take the 2011 Readers Survey
ActiveModel Callbacks
0 perc
44. rész
In the Jots (like tweets) in JotRod, I needed to generate a hash on creation as the key for the Jots. So, I determined that the easiest way to do that was to include ActiveModel Callbacks.
The module is pretty simple to add to your classes. Here's a demo of how to add it to Sandra.
Sandra's repository
JotRod's repository
Download 223 MB
Download (iPod & iPhone) 37 MB
Take the 2011 Readers Survey
Model Generator
0 perc
43. rész
Here's an introduction to creating a Rails connector gem for an ORM with a model generator.
Download 352.3 MB
Download (iPod & iPhone) 84.7 MB
Take the 2011 Readers Survey
Introduction to Sandra: The Cassandra ORM
0 perc
42. rész
When I started playing with Cassandra, I wound up writing part of an ORM to get what I needed from it.
I want to build actual projects with Rails, Ruby, or other technologies for my videos rather than just narrowly demonstrate a piece of technology. So, I'm bringing you up to speed with Sandra so that as I continue with the Twitter Clone, you'll know what I'm using and why I'm adding things to it.
Sandra is available on Github at https://github.com/charlesmaxwood/sandra
Download 531.0 MB
Download (iPod & iPhone) 111.8 MB
Take the 2011 Readers Survey
Ruby Koans
0 perc
41. rész
I’m working on another Cassandra demo, but didn’t have time to finish, so I decided to show you Ruby Koans. It’s a very interesting test-driven approach to learning Ruby. I hope you enjoy it.
Download 52.5 MB
Download (iPod & iPhone) 31.1 MB
Take the 2011 Readers Survey
Cassandra Basic Schema and Ruby Gem
0 perc
40. rész
You can get cassandra at cassandra.apache.org and the ruby gem by running:
gem install cassandra
I did run into a problem with the trift_client gem when installing. If you get a Load Error, run this.
sudo chmod 644 /usr/local/lib/ruby/gems/1.8/gems/thrift_client-0.6.3/lib/thrift_client/*.rb
sudo chmod 755 /usr/local/lib/ruby/gems/1.8/gems/thrift_client-0.6.3/lib/thrift_client/connection
Here are some of the Cassandra commands from the video:
#connects to the cassandra server using the Twitter keyspace
store = Cassandra.new(“Twitter”)
# create a new column family in the Twitter keyspace called Users
cf_def = CassandraThrift::CfDef.new(:keyspace => “Twitter”, :name => “Users”)
store.add_column_family(cf_def)
# add or create a row to the column family
store.insert(“Users”, “cmaxw”, {“name” => “Charles Max Wood”, “description” => “Awesome coder”})
# remove a column from a row
store.remove(“Users”, “cmaxw”, “description”)
Download 17.2 MB
Download (iPod & iPhone) 20.9 MB
Take the 2011 Readers Survey
Create a ‘Like’ or ‘+1′ button with make_flaggable
0 perc
39. rész
With the recent release of the Google Plus beta (ask me for an invite if you want one), I felt it appropriate to show a simple way to create a Like or +1 button for your Rails application. The app and concept is pretty simple, so I won't worry about posting the code below.
Install:
gem 'make_flaggable', :git => 'git://github.com/cavneb/make_flaggable.git'
bundle install
rails generate make_flaggable
rake db:migrate
Models:
class Article < ActiveRecord::Base
make_flaggable :like
end
class User < ActiveRecord::Base
make_flagger
end
Links:
https://github.com/medihack/make_flaggable
https://github.com/cavneb/make_flaggable
Download 93.4 MB
Download (iPod & iPhone) 43.9 MB
Building a Star-Rating System in Ruby on Rails with jQuery
0 perc
38. rész
Specification
Clicking a star rating turns on the stars to the left of the star I clicked.
Clicking a star submits the star rating.
When I refresh the page, the star ratings should be persistent.
We’ll be using Rails’ functions including:
form_for
hidden_field
Rails Helpers
We’ll be using jQuery functions including:
click
each
ajax
<% form_id = "movie_#{movie.id}_rating" %>
<%= form_for movie.ratings.last || movie.ratings.build, :html => {:id => form_id , :class => "star_rating_form"} do |f| %>
<%= f.hidden_field :movie_id %>
<%= f.hidden_field :stars, :id => form_id + "_stars" %>
<% end %>
<% (1..5).each do |i| %>
<% end %>
var set_stars = function(form_id, stars) {
for(i=1; i <= 5; i++){
if(i <= stars){
$('#' + form_id + '_' + i).addClass("on");
} else {
$('#' + form_id + '_' + i).removeClass("on");
}
}
}
$(function() {
$('.rating_star').click(function() {
var star = $(this);
var form_id = star.attr("data-form-id");
var stars = star.attr("data-stars");
$('#' + form_id + '_stars').val(stars);
$.ajax({
type: "post",
url: $('#' + form_id).attr('action'),
data: $('#' + form_id).serialize()
})
});
$('.star_rating_form').each(function() {
var form_id = $(this).attr('id');
set_stars(form_id, $('#' + form_id + '_stars').val());
});
});
Capistrano: Deploying Ruby on Rails Applications to Multiple Servers
0 perc
37. rész
For a basic deployment recipe, check out Basic Deployment with Capistrano
This episode demonstrates how to extend deployment to deploy to stage and production. Overall it’s rather simple. All it entails is creating a new task for each stage you want to deploy to with the settings you need changed.
Here’s an example:
task :stage do
role :web, "stage.teachmetocodeacademy.com" # Your HTTP server, Apache/etc
role :app, "stage.teachmetocodeacademy.com" # This may be the same as your `Web` server
role :db, "stage.teachmetocodeacademy.com", :primary => true # This is where Rails migrations will run
set :deploy_to, '/var/www/stage-teachmetocodeacademy/'
set :user, 'deploy'
end
That will allow you to run `cap stage deploy` to deploy to your staging environment.
Download 55.3 MB
Download (iPod & iPhone) 35.1 MB
Polymorphism with Many-to-Many Associations – A Teach Me To Code Tutorial
20 perc
36. rész
Polymorphic associations are very simple, as are many-to-many associations. When you blend the two, it's not nearly as simple. Since there isn't a working build-in mechanism for many-to-many polymorphic associations.
Here's a quick demo of what happens if you try to set up a traditional has_many :through association with a polymorphic association. I also show how to set things up so you can get the associated objects.
Download 101.3 MB
Download (iPod & iPhone) 45.5 MB
Many to Many Associations in Ruby on Rails – A Teach Me To Code Tutorial
0 perc
35. rész
I had several requests in UserVoice to provide a Many to Many tutorial in Rails. This is a demonstration of how to put together a "has and belongs to many" association and a "has many through" association.
This is somewhat basic to Ruby on Rails, but important if you need to associate different models.
Download 161.3 MB
Download iPhone & iPod 97.7 MB
Acceptance Tests with RSpec and Capybara
27 perc
34. rész
On the Ruby Rogues podcast I mentioned that I had moved away from Cucumber to RSpec and Capybara for my integration tests. Here's a demo on how to do some TDD with RSpec and Capybara.
Download 180.6 MB
Download iPhone & iPod 109.2 MB
CoffeeScript: The Cool Parts
22 perc
33. rész
CoffeeScript offers more than nice syntax for setting and managing data and functions. It also offers Classes, Inheritance, access to a 'super' method, Ruby-style string interpolation, easy variable and function bindings, and chained comparisons.
Here's the code I showed in the video:
class Vehicle
constructor: (@name) ->
move: (miles) ->
console.log @name + " drove " + miles + " miles."
class VWBug extends Vehicle
move: ->
console.log "Cruisin'..."
super 100
class Truck extends Vehicle
move: ->
console.log "Haulin'..."
super 50
mater = new Truck "Mater"
herbie = new VWBug "Herbie"
mater.move()
herbie.move()
a1c = "7.6"
healthy = 7.0 > a1c > 5.0
console.log "A1C within healthy range: #{a1c}"
Account = (customer, cart) ->
@customer = customer
@cart = cart
$('.shopping_cart').click (event) =>
@customer.purchase @cart
If you're new to CoffeeScript, make sure you check out the CoffeeScript Cookbook and CoffeeScript Basics.
Download 150.3 MB
Download (iPod & iPhone) 87.1 MB
Rails 3.1 Beta – Sprockets, CoffeeScript, and JQuery – A Teach Me To Code Tutorial
10 perc
32. rész
Ruby on Rails 3.1 is moving to use Sprockets to compile CoffeeScript into JavaScript and include JQuery in it's JavaScript by default.
This is a quick demo of how it all hangs together to manage your JavaScript in Rails 3.1.
Download 65.7 MB
Download (iPod & iPhone) 41.4 MB
CoffeeScript Basics – A Teach Me To Code Tutorial
0 perc
31. rész
CoffeeScript is now going to be a default installation with Ruby on Rails. So, I installed CoffeeScript and NodeJS and have been playing with it for the last hour or so.
Here are the basics you need to know to use CoffeeScript including functions, arrays, hashes (objects), control functions (if, else, unless) and loops.
In my opinion it is friendlier than JavaScript and more terse, but I don't feel like it's a huge win over JavaScript. That being said, it is something I'm likely to use in the future.
Download 168 MB
Download (iPhone & iPod) 87.3 MB
Single Table Inheritance – Ruby on Rails Tutorial
0 perc
30. rész
Single Table Inheritance is a great way to handle related models that descend from the same class. The classic example is a Car class with Ford, Chevy, and Honda subclasses.
This Ruby on Rails Tutorial provides an example and explains how Rails puts all of the information in the same database table and allows you to query things from both the superclass and subclass.
Download 59.5 MB
Download (iPod and iPhone) 36.3 MB
Compass, SASS, and the 960 Grid System – Delicious Clone
0 perc
29. rész
In preparing to show off SASS, I found the Compass system, which uses SASS and organizes your stylesheets in a unique way. In this tutorial, I walk you though installing compass, installing the 960 grid system, and organizing your SASS stylesheets in an intelligent way.
One note, I couldn't remember the URL for the 960 grid system. It's http://960.gs
Download 158.5 MB
Download (iPod & iPhone) 97.3 MB
Creating a Rake Task to Convert ERB to HAML
0 perc
28. rész
This is a basic demonstration of adding a rake task to Ruby on Rails. Some of the same principles apply to Rake in general. You also see how to call out to the command line and how to convert ERB and HTML to HAML.
Download 51.9 MB
Download (iPod & iPhone) 30.8 MB
Creating Bookmarks – Delicious Clone
0 perc
27. rész
This is a basic implementation of creating bookmarks for our delicious clone using the Rails built in REST.
I also found out that you need the haml-rails gem in order to get your views to generate in HAML.
Download 255.3 MB
Download (iPhone & iPod) 119.2 MB
CanCan: Setting Permissions – Delicious Clone
0 perc
26. rész
In this installment in the Delicious Clone, we use CanCan to set some permissions on the Bookmarks Controller.
Next week, we'll finish the bookmark creation process and the following, we'll add styling with SASS.
Download 133.9 MB
Download (iPhone & iPod) 55.9 MB
Faster Testing with Parallel Tests
0 perc
25. rész
Run your tests faster with parallel_tests gem using all the cores you have on your computer.
Download
Download (iPhone & iPod)
Switching to HAML – Delicious Clone
0 perc
24. rész
This is a quick demonstration of how to switch your Rails 3 application to HAML from ERB.
Setting Up And Testing Devise – Delicious Clone
0 perc
23. rész
Because I'm going to be testing in cucumber sections of the site that require a user to be logged in, I decided to get it out of the way. So, in this video, I write a cucumber feature to test login and round it off with a few tests on the devise generated user model to make sure it continues to behave as I expect it to as I update it throughout the process of building this application.
Download 191.8 MB
Download (iPhone & iPod) 87.2 MB
Rails 3.0.3 Setup – Delicious Clone
0 perc
22. rész
Here is what I've done to create this application:
Use the 'rails new' command to create a rails application
Set up the Gemfile
Configure the Database
Install Cucumber
Install Rspec
Install Devise
Install CanCan
Install jQuery
Configure Devise
Download (HD) 84.2 MB
Download (iPod & iPhone) 47.4 MB
How to Create a Countdown Timer with Javascript
0 perc
21. rész
This video demonstrates how to build a countdown timer with the setInterval function in Javascript, a text field, and jQuery to update your text field.
Download 70.8 MB
Download (iPhone & iPod) 40.6 MB
Basic Deployment with Capistrano
0 perc
20. rész
Capistrano has been the most popular way to deploy Ruby and Rails applications for a long time. This video provides a quick demonstration of a basic recipe for deploying a Rails 3 application.
I made this video a while ago and I realized that I never posted it. Here is a very basic recipe for deploying with Capistrano.
Download 30.1 MB
Download (iPhone & iPod) 13.3 MB
Managing Branches with Git
0 perc
19. rész
I'm trying something new and using the YouTube player. Let me know if you see any differences.
In this video, I demonstrate how to create, merge, and delete local and remote branches in Git.
Git is a Source Control Management system written by Linus Torvalds for managing development on the Linux operating system.
Download (29.3 MB)
Download (iPhone & iPod) (16.3 MB)
OAuth with the Twitter Gem
0 perc
18. rész
Twitter just turned off Basic Auth and is forcing application developer to use OAuth. Here is a demonstration of how to add Twitter OAuth to your Ruby on Rails Application.
Download 90.9 MB
Download (iPod & iPhone) 45.6 MB
Faking Sinatra with Rack and Metaprogramming
0 perc
17. rész
Sinatra has a really nice DSL. You can fake the basics of the DSL with some simple Rack middleware created by metaprogramming.
If you like the screencasts, please give $5 to help me get to RubyConf
Download (64.2 MB)
Download iPhone & iPod (35.6 MB)
Rack Basics
0 perc
16. rész
Rack is the basis for most major web frameworks in Ruby (like Ruby on Rails.) This video gives a basic overview on how it is used and what features make it a powerful component for Ruby Web Frameworks
Download 36 MB
Download (iPod & iPhone) 25 MB
Rails 3 – Build a Blog – Part 3: Edit and Delete CRUD
0 perc
15. rész
This is the continuation of the Rails 3 Build a Blog series. This episode includes implementation of the Edit and Destroy methods on the Posts Controller. There are a lot of things left to cover on Rails 3, but this gets you the basics of the MVC framework and how to use Cucumber to build your application using BDD.
Download 361.3 MB
Download (iPhone/iPod) 79.9 MB
Rails 3 Documentation: Generate Your Own
0 perc
14. rész
In this screencast, I show you how to generate the api and guides for offline viewing.
Download 28MB
Download iPhone/iPod 7MB
Upgrading Rails 3.0 Beta4 to Rails 3.0 Release Candidate
0 perc
13. rész
This video goes over some issues that popped up while upgrading a Rails 3 application to the Release Candidate
This video goes over some issues that popped up while upgrading a Rails 3 application to the Release Candidate.
Download 131 MB
Download (iphone & ipod) 11.7 MB
Ruby’s Enumerable Module: The Inject Method
0 perc
12. rész
Quick Ruby Tip: The inject method is useful for aggregating data across a dataset. For example a summation could be done with inject (by aggregating each number into the sum.)
Download 49.1 MB
Download (iphone & ipod) 7.6 MB
Rails 3 – Building a Blog – Part 2: CRUD Show and Create
0 perc
11. rész
The second part of the tutorial for building a blog with Ruby on Rails version 3. We demonstrate how to set up some basic routes, manage the controller and views, and create a basic form for creating posts.
Download 161.4 MB
Download (iphone & ipod) 65.8 MB
Rails 3 – Building a Blog – Part 1: Test Setup & Generators
0 perc
10. rész
Every good project needs a good setup. In this episode, I set up a github repo, create a new rails application, hook in Cucumber and Rspec, write a Cucumber feature, and write the code to make it pass.
Download 142 MB
Download (iphone & ipod) 59 MB
RSpec Matchers
0 perc
9. rész
RSpec gives us many powerful tools to make our tests readable. Matchers allow us to provide custom predicates to our should statements that succinctly define the behavior of our code.
Download 27 MB
Download (iphone & ipod) 14 MB
Ruby Method Name with Spaces
0 perc
8. rész
This is an introduction to Ruby metaprogramming where I cover two different ways to define a method. The idea actually started as a joke, but there are valuable lessons to be learned here.
Download 11.2 MB
Download (iphone & ipod) 4.9 MB
Shoulda on Rails
0 perc
7. rész
Shoulda is a framework that sits on top of Test::Unit and adds a ton of nice features like macro's, nested context, and the ability to create custom tests in a block-based DSL.
Download 160.2 MB
Download (iphone & ipod) 71.9 MB
RSpec Subjects
0 perc
6. rész
RSpec provides an extremely concise way of representing simple tests to be called on new instances of a class or on explicitly defined receiver objects. You can do this by using 'subjects' either as defined by the 'describe' or the 'subject' methods.
Download 38 MB
Download (iphone & ipod) 18.2 MB
Code Metrics with Metric Fu
0 perc
5. rész
Maintainability of your code can be measured in many different ways. Jake Scruggs has combined several of the tools that measure you code into one Ruby Gem: metric_fu.
Here's a demonstration. Go check it out!
Download 116.1 MB
Download (iphone & ipod) 55.8 MB
Ruby’s Percent Functions
0 perc
4. rész
Ruby uses special characters to define certain data types. If you wish to use these characters in your data types, you need to escape them or use percent functions.
Percent functions are much simpler.
Download 35.8 MB
Download (iphone & ipod) 14.7 MB
Nested Forms With JQuery
0 perc
3. rész
Ruby on Rails allows you to nest models within a form. Ryan Bates of Railscasts demonstrated how to set up these forms with JavaScript using the Prototype framework, which ships with Rails. In this episode, Charles Max Wood gives a brief overview of how Ryan's code works, and then refactors the JavaScript to use JQuery.
Ryan Bates demonstrated how to build a form with nested attributes in Ruby on Rails with Prototype. This screencast demonstrates how to refactor that form into usage of jQuery.
Download 88.4 MB
Download (iphone & ipod) 40.7 MB
RVM – Ruby Version Manager
0 perc
2. rész
RVM is a program that allows you to install and manage multiple versions of Ruby and Gems. This setup is ideal for testing your application or gem (library) against multiple versions of Ruby.Also, if you're looking into Rails 3 on Ruby 1.9 this is a great way to try it out.
Are you thinking about moving your application to Ruby 1.9? Do you have a gem or plugin you need to test in multiple Ruby versions?
RVM is your tool. It allows you to manage and install multiple Ruby versions and the gems installed under each version.
Download 118.1 MB
Download (iphone & ipod) 49.6 MB
Gem Bundler
0 perc
1. rész
Loading multiple Ruby Gems can result in runtime errors when an incompatible version of a gem dependency is already loaded as a dependency of another gem.Gem bundler can also pre-load and cache gems for faster loading.
Having two gems that require different versions of the same dependency can sometimes cause runtime errors. Yehuda Katz and Carl Lerche have created an elegant solution in the Gem Bundler.
Download 108.8 MB
Download (iphone & ipod) 48.8 MB