Learning Ruby On Rails
Hey spoken to a few developers mainly UNI grads who are looking to get into rails and they often ask whats the best way to do so. So l thought l would put together a list of resources they can use to get up to speed.
If anyone else knows of some other ones please let me know
== General Practices ==
Dev on a Mac
Read up on TDD (Test Driven Development)
Use Growl for your Autotest notifications
TextMate – The only Editor you need
GitHub – Great space to see open source code and gems and plugins
http://gemcutter.org/
== Rails Setup ==
http://hivelogic.com/ – Has some great tutorials on getting your environment setup on a mac.
== Tutorials ==
http://rubyonrails.org
Rails Casts – Ryan Bates screen casts about all things rails related
PeepCode – Great screen casts about all things rails related
== Blogs ==
Sentia Blog
http://thoughtbot.com
http://weblog.jamisbuck.org
http://blog.jayfields.com
http://errtheblog.com
== Books ==
http://pragmaticstudio.com – Great source of books about rails and other technologies with a focus on the right practices.
Finally the only real way to learn is to try things out. Follow other developers blogs and use all the resources you can such as Google groups etc.
Don’t be scared to get it wrong its the only way to learn.
Why are you still on IE7 i ask you???
It still amazes me that users are on older versions of their browsers when upgrades are not only free but they also say “Hey l am old there is a new model out there go and get it”.
The problem with web development is support for browser versions. It takes time which costs money. Now you can normally cover most of your bases by developing for FireFox. If you do there is a good chance it will work in safari and chrome as well, IE on the other hand is another issue.
Ill emit that IE8 is a huge step up but its still not perfect. Web apps should only support the latest version of browsers. I say we stop supporting old versions and make those users get with the times!!! Come on who is with me
For info on browser usage check this out
The problems with classic styles of Project Management
The constant battle l have faced in this game is dealing with old styles of project management still being used today. Some clients and businesses just don’t understand that its not in their best interest to work like this.
I came across a very smart story explaining why this is not the way to go and l think it explains it best.

Courtesy of http://www.ssw.com.au
PayFlow recurring billing with ActiveMerchant
Today we are going to look at using ActiveMerchant to set up a recurring billing subscription with PayFlow .
PayFlow is Paypal’s payment gateway and you need to setup a PayFlow account.
IMPORTANT! This is separate from Paypal’s development sandbox. Follow these steps to setup a Payflow testing account
- Go to https://www.paypal.com/cgi-bin/webscr?cmd=_payflow-get-started-outside
and fill in the details for an account. - When you get to the page where you need to enter your payment information, hit Save and Exit. This will create a testing PayFlow account for you.
- You will be sent an email with your partner ID and your vendor login. Take note of your partner ID as this will be important later.
- You should now be able to login at https://manager.paypal.com/
Now that you have a PayFlow account, you can use ActiveMerchant to setup payments. For now we will muck around in irb to test that methods out.
So lets open up irb and start by including the active merchant gem and setting ActiveMerchant to test mode
kongy@Deadpool: $ irb irb(main):001:0> require 'rubygems' irb(main):002:0> require 'active_merchant' irb(main):003:0> ActiveMerchant::Billing::Base.mode = :test
Now lets setup the gateway.
gateway = ActiveMerchant::Billing::PayflowGateway.new(:login => 'PAYFLOW_LOGIN', :password => 'PAYFLOW_PASSWORD', :partner => 'PARTNER_ID')
This creates the gateway that we will be using to request purchases. By default ActiveMerchant passes PAYPAL as the partner value if you leave it out. I believe that this is the default for US PayFlow account. For my Aussie one, I received a VSA partner_id. I would suggest putting it in there anyway.
PayFlow Testing only accepts testing credit cards numbers. You can grab them from the PayFlow recurring billing documentation found here. Here is a quick list which I can’t guarantee will be up to date.
| American Express | 378282246310005 |
| American Express | 371449635398431 |
| American Express Corporate | 378734493671000 |
| Diners Club | 30569309025904 |
| Diners Club | 38520000023237 |
| Discover | 6011111111111117 |
| Discover | 6011000990139424 |
| JCB | 3530111333300000 |
| JCB | 3566002020360505 |
| MasterCard | 5555555555554444 |
| MasterCard | 5105105105105100 |
| Visa | 4111111111111111 |
| Visa | 4012888888881881 |
| Visa | 4222222222222 |
So lets create a Mastercard credit card.
irb(main):004:0> credit_card = ActiveMerchant::Billing::CreditCard.new( :number => '5105105105105100', :month => '9', :year => '2007', :first_name => 'Mal', :last_name => 'Reynolds', :verification_value => '123', :type => 'master' )
Now we are ready to start billing. If you want to setup a one time payment it is quite easy.
irb(main):007:0> response = gateway.purchase(1000, credit_card) irb(main):008:0> response.success? => true
If you go into your Paypal Manager and search for transactions you should see it appear.
To setup a recurring billing we need to use the recurring method of the gateway. The recurring method accepts the amount in cents, the credit card object and the time intervals to charge the card, at a minimum. There are other options available which you can find here. Lets charge $10/month
irb(main):009:0> response = gateway.recurring(100, credit_card, :periodicity => :monthly) irb(main):010:0> response.success? => true irb(main):011:0> response.profile_id => "RT0000000002"
You can view the recurring billings in your Paypal Manager by clicking on Service Settings > Recurring Billings > Manage Profiles. You will probably want to store the profile_id in your database for when you need to edit details of the recurring billing. You can do it quite simply by calling the recurring method again. Let’s change the amount we want to bill to $20/week.
irb(main):0012:0> response = gateway.recurring(2000, nil, :profile_id => "RT0000000001", :periodicity => :weekly) irb(main):013:0> response.success? => true
You can see here that we no longer need to pass in the credit card since we have the profile_id. We update the amount, and change the periodicity of the billing.
And that’s it.




