Engine Yard University, Rails, and the Lucky 13 »
Created at: 08.12.2010 02:12, source: Engine Yard Blog, tagged: Uncategorized education training
Engine Yard University is offering a virtual training class, 13 days from today, on December 20th. The Zero to Rails 3 training course provides a strong foundation for programmers interested in joining the ranks of our awesome Rails community.
The class will be led by Abie Hadjitarkhani, a colleague I met 13 years ago through Allaire Corporation, the folks behind ColdFusion. Tools like Perl, ASP, and ColdFusion brought developers, like Abie and me, into the age of the Internet, and gave us a baseline for understanding why Ruby is now the language of the Cloud.
A sample of our attendee list shows a ton of Ruby / Rails interest among Java engineers. Maybe this is due to the momentum of JRuby, a technology for programmers wanting to use Ruby while leveraging a decade's worth of Java libraries. If you use Java, it is a great time to check out Ruby, improve your skills, marketability, and hourly rate! For an overview of JRuby check out Nick Sieger's JRuby Webinar next week. He'll explain what Ruby, Rails and JRuby can do to make your life easier as a Java developer.
To sign up for the four day virtual training course, visit the Zero to Rails 3 registration page.
Here are 13 topics we will delve into during 4 jam packed days:
- Local Development
- Gems
- Ruby
- Test Driven Development
- Views, Helpers & Layouts
- Models in depth
- Controllers, CRUD, and REST
- Configuration
- Mailers
- Plugins
- Metrics & Instrumentation
- Debugging
- Caching
more »
Getting Hired: fog Edition »
Created at: 30.11.2010 21:34, source: Engine Yard Blog, tagged: Uncategorized fog Storage
Having Ruby experience makes you hirable; but how can you stand out? You need to demonstrate your abilities. What better way than using Ruby and "the cloud" to store and serve your resume! In this blog post you will learn to use fog - the cloud computing library - to upload your resume to Amazon's Simple Storage Service (S3), Rackspace's CloudFiles or Google's Storage for Developers. Here's my out of date resume stored on S3, CloudFiles and Google Storage; programmatically stored in the cloud using this tutorial. NOTE: my boss would like me to add that I'm not currently looking for a new gig ;) Check out those cloud-specific URLs! You could put all three in your job application, add the Ruby source for how you did it, and have your choice of Ruby jobs for being so awesome! How? The all-clouds-in-one library of choice is fog.
Installing fog
fog is distributed as a RubyGem:gem install fogOr add it in your application's Gemfile:
gem "fog"
Using Amazon S3 and fog
Sign up for an account here and copy down your secret access key and access key id from here. We are about to get into the code samples, so be sure to fill in anything in ALL_CAPS with your own values! First, create a connection with your new account:require 'rubygems'
require 'fog'
# create a connection
connection = Fog::Storage.new(
:provider => 'AWS',
:aws_secret_access_key => YOUR_SECRET_ACCESS_KEY,
:aws_access_key_id => YOUR_SECRET_ACCESS_KEY_ID
)
# First, a place to contain the glorious details
directory = connection.directories.create(
:key => "fog-demo-#{Time.now.to_i}", # globally unique name
:public => true
)
# list directories
p connection.directories
# upload that resume
file = directory.files.create(
:key => 'resume.html',
:body => File.open("/path/to/my/resume.html"),
:public => true
)
If you are anything like me, you will continually tweak your resume. Pushing updates is easy:
file.body = File.open("/path/to/my/resume.html")
file.save
As you can see, cloud storage files in fog are a lot like an ActiveRecord model. Attributes that can be changed and a `#save` method that creates or updates the stored file in the cloud.
But if it took you longer to realize the mistake you might not still have file around, but you've got options.
directory = connection.directories.get("proclamations1234567890")
# get the resume file
file = directory.files.get('resume.html')
file.body = File.open("/path/to/my/resume.html")
file.save
# also, create(attributes) is just new(attributes).save, so you can also do:
file = directory.files.new(
:key => 'resume.html',
:body => 'improvements',
:public => true
)
file.save
Alright, so you (eventually) become satisfied enough to send it off, what is the URL endpoint to your resume?
puts file.public_url
Pop that link in an email and you should be ready to cruise job ads and send your resume far and wide (Engine Yard is hiring, so check us out!). Now you are set, unless you are interviewing for Google, or Rackspace... Both of these companies have their own cloud storage services, so using Amazon S3 might not be the foot in the door you hoped for.
More clouds? How much extra stuff will you have to do for these services!?! Hardly anything needs to change, you just have to pass slightly different credentials in, but I'm getting ahead of myself.
Google Storage for Developers
Sign up here and get your credentials here.
connection = Fog::Storage.new(
:provider => 'Google',
:google_storage_secret_access_key => YOUR_SECRET_ACCESS_KEY,
:google_storage_access_key_id => YOUR_SECRET_ACCESS_KEY_ID
)
Rackspace CloudFiles
Rackspace has Cloud Files and you can sign up here and get your credentials here.
connection = Fog::Storage.new(
:provider => 'Rackspace',
:rackspace_username => RACKSPACE_USERNAME,
:rackspace_api_key => RACKSPACE_API_KEY
)
Then create, save, destroy as per fog-for-AWS. The `:public => true` option when creating directories (see above) is important for Rackspace; your folder and files won't be shared to Rackspace's CDN and hence your users without it. Similarly the `:public => true` on files is important for AWS and Google or they will be private.
Local Storage
While you are working out the kinks you might not want to do everything live though, ditto for while you are running tests, so you have a couple options to try before you buy. First, you can use a local provider to store things in a directory on your machine.
connection = Fog::Storage.new(
:provider => 'Local',
:local_root => '~/fog'
)
Mocking out Cloud Storage
Of course when you are testing or developing you can always just use the mocks (at least for AWS and Google, Rackspace still needs mocks implemented if you are looking for somewhere to contribute). They emulate the behavior of the external systems without actually using them. It is as simple as:
Fog.mock!
connection = Fog::Storage.new(config_hash)
Cleaning up
Fog takes care of the rest so you can focus on your cover letter. And with the awesome cover letter and cloud delivered resume you are probably a shoe-in. So all that is left is to cleanup that leftover job hunt residue.
file.destroy
directory.destroy
Summary
All done. Try out all the different options and let me know if you have any bugs or issues. I also wrote up a more consolidated example as a script that you can use for reference. Bonus, note the `Fog.mock!` command. In your tests you can easily mock out calls to cloud providers. Please let me know in the comments if you got a new Ruby job because you hosted your CV on 3 different Cloud Stores without getting your hands dirty. Have questions or comments? Hop into #ruby-fog on freenode, ping @fog or @geemus. And please always remember that I accept high fives and contributions!more »
Resources for Getting Started with Ruby on Rails »
Created at: 16.11.2010 01:02, source: Engine Yard Blog, tagged: Uncategorized books classes community courses irc rails ruby Tutorials
Online Tutorials
Ruby Learning Official Ruby on Rails Guides Rails Tutorial Why's (Poignant) Guide [Thanks timinman from HN]Interactive Tutorials
Try Ruby Hackety Hack Ruby Koans BitNami [Thanks Daniel from comments] Rails for Zombies [Thanks Gregg from twitter]Books
Learn to Program Humble Little Ruby Book The Rails Way The Rails 3 Way [Thanks Raj from comments]Blogs
Ruby Inside Ruby Reflector Engine Yard Ruby on Rails Blog PlanetRubyOnRails [Thanks jim_h from HN]Screencasts
Railscasts PeepCode Ruby on Rails 3 Tutorial Lynda.com [Thanks eAlchemist from comments] Learning Rails [Thanks eAlchemist from comments] Learnivore [Thanks Thibaut from comments]Podcasts
Ruby on Rails Podcast The Ruby Show Teach Me To Code Ruby5 [Thanks EppO from comments] RubyPulse [Thanks pdelgallego from HN]Forums
Rails Forum StackOverflow Engine Yard Community SiteCommunity
Ruby Meetup Groups Ruby on Rails Community Confreaks [Thanks pdelgallego from HN] IRC Channels: #ruby, #ruby-lang, #rubyonrails, #jruby, #rubiniusCourses
Engine Yard University Blazing Cloud Courses Ruby Mendicant University Jumpstart Lab Courses [Thanks Jeff from twitter]more »
slides from highload++ »
Created at: 02.11.2010 07:17, source: time to bleed by Joe Damato, tagged: Uncategorized
performance tweaks and tools for linux
more »
The Pixel Brigade Has Arrived »
Created at: 19.10.2010 20:20, source: Engine Yard Blog, tagged: Uncategorized appcloud design ui ux
Hi there! My name is Andrew Collins, and I'm here to tap dance with Photoshop and markup like vaudeville in its prime. Jazz hands!
Engine Yard recently hired me and Ms. Jina Bolton to work on Engine Yard AppCloud User Experience, and we're thrilled by the opportunityit's an awesome team here at Engine Yard, let me tell you.
There's plenty of work ahead of us, and we'll be continually rolling out improvements just as fast as our fingers can massage those style sheets. You may have already noticed some of our handiworkshiny new buttons and prettied-up text, that sort of thing. There are larger interface changes on the horizon too, but we'll save those for another blog post.
With those larger changes in mind, however, we're planning on launching some user study initiatives soon. Please get in touch with us (email or twitter) if you're in San Francisco and would be willing to answer a few questions or let us observe the way you work with Engine Yard AppCloud. We want to make things feel as effortless and human as possible, and we can't do that without tons of feedback. Don't be shy!
Speaking of feeling human, here's a photo so you can put faces to our names. Say hi if you see us wandering around the city or in the halls of some upcoming conference.
And, because it bears repeating, we'd love to hear from our users regarding Engine Yard AppCloud's aesthetics and usability. Just ping us via email or twitter and let's get to talking.
more »
