CSC/ECE 517 Fall 2009/wiki1b 13 Resources For Rails: Difference between revisions
No edit summary |
No edit summary |
||
Line 8: | Line 8: | ||
# Platform Issues | # Platform Issues | ||
Each section starts with an introduction to convey the coverage provided by that topic. Since information is usually made more clear through examples, | Each section starts with an introduction to convey the coverage provided by that topic. Since information is usually made more clear through examples, we point out when resources provide them. You can see this information in our reviews. The reviews look like this: | ||
<b>Name of Resource:</b> | |||
<b>Resource Type:</b> | |||
<b>Examples Provided:</b> | |||
<b>Summary:</b> | |||
<b>Rating:</b> | |||
<b>Reason for Rating:</b> | |||
Summary boxes give you information about what they might expect in the resource before they start. Ratings are out of 5 stars. 5 stars is the highest rating. | Summary boxes give you information about what they might expect in the resource before they start. Ratings are out of 5 stars. 5 stars is the highest rating. |
Revision as of 23:20, 21 September 2009
About this Page
This page is a resource for more information regarding the Rails application framework. Consider it an index page for Rails resouces that also has definitions and extra information a user will find helpful before they go to the resource. Ruby programmers that want to get started with Rails are the target audience. We do not cover information regarding IDE's. We chose the following topics as they are relevant to the target audience:
- Tutorials
- Testing
- Debugging
- Platform Issues
Each section starts with an introduction to convey the coverage provided by that topic. Since information is usually made more clear through examples, we point out when resources provide them. You can see this information in our reviews. The reviews look like this:
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Summary boxes give you information about what they might expect in the resource before they start. Ratings are out of 5 stars. 5 stars is the highest rating.
This page is not meant to be a source of completely new information regarding the Rails platform. The new and unique content is our intro, definitions, and summary box. This it is meant to be used as a starting point for someone interested in more resources for Rails. We hope you find the information helpful!
For feedback please contact handles: objectoriented or cybo on the NCSU Expertiza system.
Resources for Rails
Lets start with definitions for Rails resources:
Tutorials
Topic Introduction
Definitions
Summary Boxes
Name of Resource: Rolling with Ruby on Rails
Resource Type: Getting Started Tutorial
Examples Provided: The Rails cookbook application.
Summary: This is a good starting point for someone new to Ruby and Rails. It starts assuming you don't have Ruby installed. At the end of the tutorial, a user should have a fully functioning Rails environment and a sample application. The second part of the extends the cookbook example while describing more features of Rails. At the end of the tutorial there are Rails success stories and even more info about features of Rails such as caching, validation callbacks, and transactions.
Rating: ****
Reason for Rating: This is great starting point. The drawbacks are: 1 - tutorial assumes you are installing on Windows 2 - tutorial is not up to date with the latest Rails framework.
Link: http://oreilly.com/ruby/archive/rails.html http://oreilly.com/ruby/archive/rails2.html
Name of Resource: Four Days on Rails
Resource Type: Tutorial or Documentation for Rails beginners
Examples Provided: Yes. To do list application.
Summary: This resource splits the tutorial into 4 session, thus 'Four Days on Rails.' The tasks are simple and it is actually possible to complete them all in one day. The tutorial refers back to documentation where needed. This gives the user a chance to get more in-depth information where needed.
Rating: ***
Reason for Rating: Four Days on Rails is written in a very causal manner. There tone is not very professional but the content is good for getting started.
Link: http://rails.homelinux.org/
Name of Resource: Really Getting Started in Rails
Resource Type: Blog
Examples Provided: No
Summary: This blog inspired by the 'Rolling with Ruby on Rails' article. The author briefly covers some topics not covered by the tutorial.
Rating: **
Reason for Rating: This is a very informal post without much substance. It is interesting reading after someone has completed a tutorial such as 'Rolling with Ruby on Rails.'
Link: http://www.slash7.com/articles/2005/01/24/really-getting-started-in-rails
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Link: http://www.ibm.com/developerworks/linux/library/l-rubyrails/
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Link: http://onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Link: http://jrhicks.net/Projects/rails/has_many_and_belongs_to_many.pdf
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Link: http://www.erikveen.dds.nl/distributingrubyapplications/rails.html
Name of Resource:
Resource Type:
Examples Provided:
Summary:
Rating:
Reason for Rating:
Link: http://digitalmediaminute.com/howto/fc4rails/
Testing
Topic Introduction
This section provides links to pages which describe resources that can be used by Ruby on Rails to conduct testing. Some of them are tutorials and some are just information that you need to know. This page also provides some definitions used by the links. In most cases the text in those links is intuitive however if you don’t understand something you can refer to the definition section. This page was written and the links were provided under the assumption that the reader has intermediate knowledge of Ruby (after all Rails is a framework for Ruby not the actual language).
Definitions
BDD – Behavior Driven Development. Wikipedia definition. But in plain English it means that when you work on a project you define its behavior, not the technical details of its implementation. Say you work with a customer on a webcatalog. You shouldn’t bore him/her with the technical detail of how you are going to do it. Just say that catalog will probably have administrators who can edit it, users who can view it, a shopping cart so that the product could be checked out, login and logout pages etc. That will define what this webcatalog can do (its behavior).
rake – ruby make utility
RoR – abbreviation for Ruby on Rails
TDD – Test Driven Development. Wikipedia definition. In other words you write a test before you write your code. Say you know that you have to write a method named do_something. Before writing it you will write a test for it, test_do_something and only then do_something. This methodology helps you to 1) define what your method should do exactly, since before you wrote it you already have a test for it so in some sense you already know what you expect your method to do 2)verify if you defined your method the way you wanted, because if you didn’t then your test will most likely fail
XP – eXtreme Programming. Wikipedia definition. Basically it means that at least one pair of eyes should look at your code, say a fellow developer. (S)he might be able to find errors that you are not able to. Say you wrote a method and it doesn’t work the way you wanted it to. Let you programmer friend take a look at it. (S)he might know something you don't. Frequent testing is also a part of this methodology.
ZenTest – a set of tools that are used for testing in Ruby on Rails. It is also a name of a tool in the ZenTest tool package. This package does not come as a standard Rails gem and should be installed separately.
Summary Boxes
Name of Resource: Test-First Programming With Ruby Resource Type: tutorial Examples Provided: Yes Summary: Teaches how to use Test::Unit, specifically how it works, how to set it up and run it, explains the difference between error and failure, explains how to do test refactoring and introduces to a new tool called ZenTest Rating: ***** Reason for Rating: This is great starting point for people who never done unit testing.
Link: http://www.scribd.com/doc/3499573/TestFirst-Programming-With-Ruby
Name of Resource: A Guide to Testing Rails Applications Resource Type: guide Examples provided: Yes Summary: This guide gives instructions on unit model testing, functional controller testing, test integration, rake tasks to run the tests, test setup and teardown, testing routes and mailer testing. The reader should note that this is a guide not a tutorial. Therefore the user must be familiar with Test::Unit framework already in order to use knowledge from this resource. Rating: **** Reason for Rating: No source code for examples is provided.
Link: http://guides.rubyonrails.org/testing.html
Name of Resource: Getting Started with Autotest Resource Type: tutorial Examples provided: No Summary: This tutorial gives reasons to why autotest utility was created and teaches how to use it. Specifically it covers the following topics: why autotest, install autotest, run autotest, configure plugins. This is a fairly good tutorial and needs to be used by people who are tired of rerunning their tests after a change to their code was made. In order to complete this tutorial it is required that the user would have a code and a series of tests to test it since source code for this tutorial is not provided. Rating: **** Reason for Rating: It would be easier to learn the material if source code was provided.
Link: http://ph7spot.com/articles/getting_started_with_autotest
Name of Resource: ZenTest Documentation Resource Type: Documentation Examples provided: Yes, but they are not sufficient. Summary: This documentation covers the use of the ZenTest package (there is nothing more to expect from the documentation). This package should be used by people who want to speed up their test facility creation and overall testing process. In order to use the resource to the full advantage the reader should have some source code written prior to use of information provided by this resource. Rating: **** Reason for Rating: Documentation could use more examples, and it should provide source code for those examples.
Link: http://ph7spot.com/articles/getting_started_with_autotest
Debuging
Coverage
The intention of this section is to provide the user with useful (and sometimes maybe not so useful) links to pages that contain material on debugging in Rails environment. When the search of these links was conducted it was noted that the most popular debugger was ruby-debug, and 2 loggers, Logger and Log4r. Hence the links provided in these section will be given for those packages. It is assumed that the reader has intermediate knowledge of working with Ruby on Rails and has written some applications.
Definitions
Core dump - Wikipedia definition. In simpler terms it is the record of the state of the computer when it crashed, i.e. contents of registers, contents of memory (not all of it, just parts that are related to the program that was executing)
Post-mortem debugging - the act of debugging the core dump of a process
Summary Boxes
Name of Resource: Basics of use of ruby-debug Resource Type: tutorial, vodeocast, fibonacci method Examples Provided: Yes Summary: Assumes that a user hasn't installed the gem and explains how to do it. It contains explanation of basic commands such as how to view current context, step through the code and set breakpoints. It is a very simple and easy tutorial and provides an excellent good starting point Rating: ***** Reason for Rating: This is great starting point.
Link: http://cardero.textdrive.com/~eventualbuddha/ruby-debug-1-basics.mov
Name of Resource: Basics of use of ruby-debug in Rails Resource Type: tutorial, vodeocast Examples Provided: Yes, To Do List Summary: Assumes that a user hasn't installed the gem and explains how to do it. It contains explanation of basic commands such as how to view current context, step through the code, breakpoints and and how to change variable values while debuggin. It is a very simple and easy tutorial and provides a good starting point Rating: **** Reason for Rating: No link for the source code of the example was provided
Link: http://media.railscasts.com/videos/054_debugging_rails.mov
Name of Resource: Basics of Reading of a Stack Trace Resource Type: tutorial, vodeocast Examples Provided: Yes Summary: Demonstrates how to read and use a stack trace. Rating: **** Reason for Rating: No link for the source code of the example was provided, could use more than one example.
Link: http://media.railscasts.com/videos/024_the_stack_trace.mov
Name of Resource: ruby-debug Documentation Resource Type: tutorial/documenation Examples Provided: Yes Summary: Goes over all of the documentation of ruby-debug using examples. Despite that it is a documentation (which is usually hard to read) it is a fairly decent document. Rating: **** Reason for Rating: Nor source code for examples is provided.
Link: http://bashdb.sourceforge.net/ruby-debug.html
Name of Resource: Basics of Logger Use Resource Type: videocast/tutorial Examples Provided: Yes Summary: Teaches how to do write custom messages to the log, use the logger for custom classes, customize the severity of messages and logger customization. Rating: **** Reason for Rating: No source code for the example is provided
Link: http://media.railscasts.com/videos/056_the_logger.mov
Name of Resource: Logger Documentation Resource Type: documentation Examples Provided: No Summary: Hard cold documentation. Provides you with the description of methods and variables. Rating: *** Reason for Rating: No examples and documentations are always hard to read.
Link: http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc
Name of Resource: Log4r Documentation Resource Type: Documentation Examples Provided: Yes, they are included in the examples folder after the gem is installed Summary: A thorough Log4r documentation on the usage of Log4r. Rating: **** Reason for Rating: Documentations are always a hard read, not much fun there.
Link: http://log4r.sourceforge.net/manual.html
Outline:
Coverage: Describe the scope of this page.
For each section:
Intro - what this set of resources is for.
Definition - look through resources and create a list of definitions for each.
Examples - describe an example similar to what is in the resource.
Links - organize by subtopic and crossrefereance with definitions and examples.
Resources
General
http://en.wikipedia.org/wiki/Ruby_on_Rails
http://rubyonrails.org/documentation
http://www.planetrubyonrails.org/
http://weblog.rubyonrails.org/2009/9/4/xss-vulnerability-in-ruby-on-rails
http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/
Tutorials
http://oreilly.com/ruby/archive/rails.html
http://oreilly.com/ruby/archive/rails2.html
http://www.slash7.com/articles/2005/01/24/really-getting-started-in-rails
http://www.ibm.com/developerworks/linux/library/l-rubyrails/
http://onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html
http://jrhicks.net/Projects/rails/has_many_and_belongs_to_many.pdf
http://www.erikveen.dds.nl/distributingrubyapplications/rails.html
http://digitalmediaminute.com/howto/fc4rails/
Testing
http://guides.rubyonrails.org/testing.html
http://weblogs.java.net/blog/bleonard/archive/2008/01/testing_rails_a.html
http://www.oreillynet.com/pub/a/ruby/2007/06/07/rails-testing-not-just-for-the-paranoid.html
Debugging
http://guides.rails.info/debugging_rails_applications.html
http://www.sitepoint.com/print/debug-rails-app-ruby-debug/
Definitions
BDD – Behavior Driven Development. Wikipedia definition. But in plain English it means that when you work on a project you define its behavior, not the technical details of its implementation. Say you work with a customer on a webcatalog. You shouldn’t bore him/her with the technical detail of how you are going to do it. Just say that catalog will probably have administrators who can edit it, users who can view it, a shopping cart so that the product could be checked out, login and logout pages etc. That will define what this webcatalog can do (its behavior).
rake – ruby make utility
RoR – abbreviation for Ruby on Rails
TDD – Test Driven Development. Wikipedia definition. In other words you write a test before you write your code. Say you know that you have to write a method named do_something. Before writing it you will write a test for it, test_do_something and only then do_something. This methodology helps you to 1) define what your method should do exactly, since before you wrote it you already have a test for it so in some sense you already know what you expect your method to do 2)verify if you defined your method the way you wanted, because if you didn’t then your test will most likely fail
XP – eXtreme Programming. Wikipedia definition. Basically it means that at least one pair of eyes should look at your code, say a fellow developer. (S)he might be able to find errors that you are not able to. Say you wrote a method and it doesn’t work the way you wanted it to. Let you programmer friend take a look at it. (S)he might know something you don't. Frequent testing is also a part of this methodology.
ZenTest – a set of tools that are used for testing in Ruby on Rails. It is also a name of a tool in the ZenTest tool package. This package does not come as a standard Rails gem and should be installed separately.
Core dump - Wikipedia definition. In simpler terms it is the record of the state of the computer when it crashed, i.e. contents of registers, contents of memory (not all of it, just parts that are related to the program that was executing)
Post-mortem debugging - the act of debugging the core dump of a process