Painfree Continuous Integration with Hudson and Vagrant »

Created at: 10.11.2010 03:35, source: Ruby Inside, tagged: Miscellaneous

http://drnicwilliams.com/2010/11/09/making-ci-easier-to-do-than-not-to-with-hudson-ci-and-vagrant/ (or on Ruby Inside)

In Making CI easier to do than not to with Hudson CI and Vagrant, Dr Nic Williams (of EngineYard) presents a walkthrough of setting up a VM-based continuous integration system in order to reliably test your apps across multiple setups:

It irked me a little that I could develop on one stack (OS X, Rubinius, Sqlite3), run continuous integration (CI) on another stack (Ubuntu, Ruby 1.8.7, Postgresql), and deploy into another stack (Gentoo, Ruby 1.9.2, MySQL). I think what irks and worries me is that there are three sets of differences to be aware of. A bug in production? Was it a missing test scenario or one of the many differences between production and CI environments?

[A solution is to] use a VM that matches the production environment. Each different production environment would mean another VM. If you are managing your own production environment, then all you need is the tools (described in this article) to recreate your production environment in a VM.

Dr Nic

It's typically good stuff from everyone's favorite doctor of Ruby.


more »

A Look Into Ruby’s Object Model »

Created at: 03.11.2010 02:39, source: Ruby Inside, tagged: Miscellaneous

rom.pngA few days ago, Burke Libbey, a Winnipeg based Ruby and Rails developer, gave a presentation called Ruby's Object Model: Metaprogramming and Other Magic to the Winnipeg.rb Ruby user group. I though it was interesting enough to embed here.

Presentations about metaprogramming and how the Ruby object model works are hardly anything new, but Burke has approached it in a friendly, easy to understand (though terse - but that's why it's a presentation) fashion, despite including the relevant C from MRI on the slides. Topics covered include how classes and objects are represented and related to each other, how singleton classes work, how method lookups work, and.. "more magic."

Note: If your reader doesn't support embedded presentations, click here to see the presentation on Slideshare.


more »

The Companies Making Ruby Inside Possible in October 2010 »

Created at: 21.10.2010 02:48, source: Ruby Inside, tagged: Miscellaneous

It's time for us to thank the companies who help keep Ruby Inside (and often other Ruby sites) going by sponsoring our work. Luckily, they're all pretty interesting in their own right and have some worthwhile products and services to check out.

Joyent — Public Cloud Hosting for Rails

Joyent is a leading infrastructure provider to some of the fastest growing businesses on the web, including those in the social gaming, digital agency, publishing, eCommerce, and iOS industries. Joyent helped customer AKQA, an agency for many of the world’s leading brands, scale on demand to meet wildly successful online campaigns. Joyent helped another customer, Context Optional, a leading provider of social marketing software and services, scale at Facebook levels and support millions of users within the first months of launch.

New Relic — On-demand Application Management

New Relic is a Java and Ruby application performance and reliability monitoring and management service that started life as a Rails-only service (and it's still great for that!). It's truly enterprise-grade software but with the flexibility and accessibility of annual, monthly, or "on demand" pricing, catering to nearly all types of customer. With New Relic you can monitor your apps, find slow transactions, see specific SQL queries, and even run a code-level thread profile. Trivia: New Relic is an anagram of founder "Lew Cirne"'s name!

Linode — Xen VPS Hosting

Linode is a Xen-based VPS (virtual private server) hosting service that's now in its 8th year. Plans start at $19.95 per month for a plan with 512MB of RAM, 16GB of storage, and 200GB of transfer bandwidth. Want 1GB of RAM, 32GB of storage, and 400GB of bandwidth? That's $39.95 per month. Linode's major advantages over the competition are reliability and performance (as shown in these performance tests by Eivind Uggedal) and I've even "downgraded" from dedicated servers to using Linode because they're almost as good but for a fraction of the cost!

A non-disclaimer: Ruby Inside is hosted with Linode but the hosting is all paid for separately and is not related to their sponsorship. I'll be sticking with them - they provide an amazing service.

Recurly — Subscription Billing In 3 Easy Steps

Recurly is a recurring billing service, ideal for webapps and other subscription based systems. Recurly's goal is to help you boost your monthly subscription revenue without getting in the way. From their Web site you can sign up for a free trial and get playing in minutes. The customer experience is fully customizable and there's a "Advanced Subscription Billing" API you can use directly from your app(s).

Want to join them?

If you're interested in sponsoring Ruby Inside, get in touch with our advertising guru James Avery using this form. We have a great opportunity for any companies interested in being seen in the Ruby and Rails worlds. On a monthly basis (or just a 2 week run, if you prefer) you can take a spot in the "Web Publishers Room" (~75k impressions a month across 15 different Ruby-related sites), Ruby Inside (170-200k impressions per month), RubyFlow (~70k), Rails Inside (~25k) as well as a mention in a post like this. So that's about 350k impressions over 18 well known Ruby and Rails sites..!


more »

RSpec 2.0 Released: Ruby’s Leading BDD Framework Grows Up »

Created at: 11.10.2010 02:38, source: Ruby Inside, tagged: Miscellaneous

9 months in the making comes RSpec 2.0, the latest major version of Ruby's most popular behavior driven development (BDD) framework (now at a gem install rspec near you). Kudos to the 82 contributors and RSpec's team lead, David Chelimsky.

What has RSpec 2.0 got that RSpec 1.x doesn't?

  • Modularity. RSpec has been split up into multiple gems each with a particular focus like mocks, core, and "expectations." The theory behind this is that you could pick and choose parts from other frameworks, though I suspect most users will not benefit from this.
  • Totally new runner. RSpec 2.0 has borrowed heavily from the Micronaut, a BDD framework that adds more metadata and more structure to test suites. Taking on Micronaut's ideas makes RSpec significantly more flexible and open to manipulation and we're bound to see a lot of blog posts in the next few months about how to take advantage of this. One immediate benefit is "filters" which lets you run different tests under different circumstances, such as for different Ruby versions or implementations.
  • Better Rails 3 integration. RSpec 2.0 was originally intended to release before Rails 3.0 but now that Rails 3.0 has been in the wild a while, RSpec's integration with it is top notch.

If you want to learn more and dig around, it's worth seeing RSpec's GitHub page and then following the links to the components that take your interest.

If you're a hardcore RSpec 1.x user and want to know the changes behind the scenes and how best to upgrade, check out the RSpec 2.0 upgrade documentation.


more »

MacRuby 0.7 Released: More Stability and Easier Sandboxing »

Created at: 05.10.2010 03:31, source: Ruby Inside, tagged: Miscellaneous

http://www.macruby.org/blog/2010/10/01/macruby07.html (or on Ruby Inside)

After 5 months of development, we are happy to announce the immediate availability of MacRuby 0.7. This release does not bring any significant features but consolidates the existing functionality of MacRuby by improving its Ruby compatibility, concurrency, Cocoa support, and overall stability and performance.

Anon

The MacRuby team has announced the release of MacRuby 0.7. No significant feature releases but stability and performance boosts are always particularly welcomed in alternative Ruby implementations.

To me, the most exciting "new" feature is the exposing of MacRuby's built-in "sandboxing" functionality through a Sandbox class. Sandboxing goes a lot further than Ruby's typical safe mode features, since it blocks activities performed by all of the libraries and system services called by your app's process too.

If MacRuby hasn't been on your radar recently, it's also worth checking out the new MacRuby-powered Control Tower server that's based on Rack and takes full advantage of MacRuby’s concurrency facilities.

(Sorry for the lateness of this post. I was on vacation for a week. Service now resumes!)


more »