Thanks for stopping by...

Logo of Snakes and Rubies

Welcome to Zen and the Art of Programming. In my blog you'll find a series of interesting articles about programming and related technologies. While some may consider this a Ruby and Rails blog, I deal with other programming languages and frameworks too (e.g. Python and Django)

If you are new here, please subscribe to my feed and keep in touch. You can also subscribe by email and receive updates every time a new article is published.

Polite and bright comments are really appreciated as they enrich the discussion, so feel free to participate and have your say.

Morph AppSpace - Platform as a Service for RoR

This Week in Ruby (May 12, 2008)

Antonio Cangiano May 12th, 2008

This is the 7th episode of This Week in Ruby, please consider subscribing to my feed so as to not miss any weekly installments.

Ruby

The tickets for RubyKaigi went on sale yesterday. RubyKaigi is the Japanese equivalent of RubyConf and will take place from the 20th to the 22nd of June.

Yehuda Katz blogged about Benchwarmer, which is an improved DSL for doing benchmarks. The repository can be found on GitHub.

That mad man, commonly known as why, has released another interesting proof of concept, aptly named Unholy. It’s a Ruby to PYC converter that aims at compiling Ruby sources to Python bytecode, making it possible to write Ruby code and run it on CPython. Not only that, but with a patched version of decompyle, it’d be possible to obtain Python source code that could be used, for example, on Google App Engine. Don’t expect to run Rails on mod_python anytime soon, though.

The Rails community may favor Macs, but there is no denying that there exist a huge amount of developers using Ruby and Rails on Windows. As a matter of fact, the One-Click Ruby Installer is the most popular project on RubyForge with almost 2.4 Million downloads, and Instant Rails is not doing too bad either, having surpassed the half a million mark. However, there is now another easy way to get the whole stack that’s required to run Rails on Windows (also available for Mac and Linux), and it’s called RubyStack. Unlike InstantRails, this is an actual installer and it includes: Ruby, RubyGems, Rails, MySQL, SQLite, Subversion, ImageMagick, Mongrel, Apache 2.2.8, PHP 5 and phpMyAdmin. The company, BitNami, also recently published a tutorial on how to add Aptana RadRails and Ruby Debug to the stack. If you’ve tried RubyStack, please leave your comments and opinions in the comments section.

Alternative implementations

Adam Fine, of Israel.rb, has a nice Ruby implementation roundup. You can read and comment on it here.

A couple of weeks ago the IronRuby project received a healthy dose of criticism (including my own) within the mailing list. A lack of openness and status updates, made contributions harder and portrayed the project as progressing at a deadly slow pace. I’m glad to report that the team has reacted in a proactive manner and embraced a more open approach where, for example, code reviews are now published in the ML. IronRuby has changed pace, or at least that’s the perception, and in an open source project this is also important. Now I’m confident that we can expect good things from this project. Meanwhile, you can try IronRuby in your browser, courtesy of Oleg Tkachenko.

You may remember, from a few editions ago, that I mentioned Dan Berger and his fork of the MRI, called Sapphire. DevFi has an interview with him in which he expresses quite clearly his intentions and rationale behind the decision to fork Ruby. Better support for Ruby on Windows, attention to correctness and testing, improving the standard library and a faster evolution of the language, seem to be the main reasons.

Sticking with the name Sapphire, Huw Collingbourne has a nice writeup on Multiple Inheritance, modules and mixins. While his language isn’t a fork of Ruby but rather just inspired by it, Ruby developers will find the article interesting as well, because it covers what Huw perceives as being issues when it comes to Ruby’s modules.

In JRuby-land, on the heels of Java One, Nick Sieger has announced JRuby-Rack which can be used to run Rails, Merb, or any Rack-compatible framework inside a Java application server.

Merb

MerbAccording to this post Merb is running on Rubinius (if we exclude the ORM layer). Both projects are promoted and sponsored by the same company, so it’s natural that we’ll continue to see better integration.

Two new bundles for Merb and DataMapper are finally available for TextMate users. You can download and read about them here.

A post by Michael Klishin created quite a bit of controversy. Entitled State of Merb on road to 1.0: the good, the bad and the ugly, this kind of status update can be very appealing, as we head towards version 1.0 of Merb. Unfortunately “the ugly” in this case is the tone of the post, which made the author appear immature, due to the gratuitous bashing of Rails developers. It is unfortunate that the author of this nice mapping of a Merb server’s boot process, opted to convey his enthusiasm through blind antagonism. Let me reassure you though, that this is not representative of the Merb community as a whole; which is welcoming, definitely enthusiastic, but far from disrespectful of other projects. Merb developers believe in their project and the technical advantages that it offers over Rails, and have no qualms in stating so either. But they do so in a factual manner, as opposed to vague attacks against people who opt for a different framework.

Rails

Through his Twitter account, David announced that “Rails 2.1 RC1 has been tagged and the gems are on the beta servers”. Now is an ideal time to test it out. If you need some help, this screencast should do the trick.

The fourth part of a tutorial on Routing in Rails 2 was recently published. If you haven’t done so, follow the links to part 1, 2, 3 and 4.

Emacs fans may be interested in this screencast, that shows how to use Emacs with Rails. Other interesting highlights this week were: Write your Rails view in… JavaScript?, Community Engine (a Social Networking plugin), the release of El Dorado 0.9.2 (which adds a group chat option) and finally after_create :pimp, which automatically pings Google (and possibly other services) once the contents of your Rails app have been updated.

Rails deployment

Ron Valente has a guide on setting up a Rails server through Ubuntu 8.04 using Passenger. While Jim Neath, published Using Capistrano with Passenger (mod_rails).

For those interested in cloud computing, I found this article on how to create a “poor man’s” Content Delivery Network with NGINX, Varnish, Merb and Amazon S3, to be very compelling.

Meanwhile the VC funding spree of Ruby/Rails hosting companies continues, with a $3 Million round of financing being handed out to Heroku by Redpoint Ventures.

Deploying RailsThis week, Ezra’s Deploying Rails Applications: A Step-by-Step Guide finally hit the press. I ordered my copy from Amazon and it shipped yesterday. At about the same time, Advanced Rails Recipes: 84 New Ways to Build Stunning Rails Apps was published but, at least in my case, hasn’t shipped yet.

Railscasts 100th Episode Contest

Ryan Bates had a contest for his 100th Episode of Railscasts. Yesterday night he announced the winners. Congratulations to them and to all of those who participated. What’s really interesting though is that now there are several hundred Rails tips out there. You can read (and in some cases watch) all of them by following the links on the contest page.

All this material should be enough to keep you busy until next week. Please feel free to provide comments and feedback on this series.


If you enjoyed this post, then make sure you subscribe to my RSS Feed.

This Week in Ruby (May 5, 2008)

Antonio Cangiano May 5th, 2008

This is the 6th episode of This Week in Ruby, please consider subscribing to my feed so as to not miss any weekly installments.

Ruby

Jamis Buck released Net::SSH 2.0, Net::SFTP 2.0, Net::SCP 1.0, Net::SSH::Gateway 1.0 and Net::SSH::Multi 1.0. If you would like to learn why this matters, please head over and read his announcement.

maglev.gifGemstone is working on a Ruby VM, that’s similar to Rubinius, called MagLev. InfoQ has a nice interview with their Project Manager Bob Walker. These guys are serious and are heavily investing in this project. Their tagline is “Ruby that scales&tm;” and it’ll be interesting to see their announcement at RailsConf in less than a month. Speaking of alternative VMs, my The Great Ruby shootout is now six months old so an update is due soon. I don’t have much spare time, especially now that I’ve accepted an offer to write an exciting book about Rails, but I’ll try to publish a new edition of the shootout in May.

James Edward Gray II has a nice article about the Ruby bundle for Textmate, the popular text editor for Mac OS X. If you are new to Textmate and/or Ruby, it’s a must read.

Rubyhoedown will take place on August 8 and 9 in Huntsville, Alabama. Registration is now open. Yehaww!

Mack Framework

Mark Bates, decided to move away from ActiveRecord for his Mack Framework. Since his first announcement, Mark decided to compromise and let DataMapper be the default ORM, while still allowing ActiveRecord as a possible choice for those who prefer it. DataMapper is definitely gaining momentum, and I feel that Rails’ focus on ActiveRecord is the biggest limit to DataMapper’s widespread appeal.

Rails

David announced to the community that Rails 2.1 RC is imminent. In case you’re wondering what’s new, you can take a peak at the repository on GitHub, or read this RailSpikes article. In short, the article mentions six noteworthy changes to Rails. Rails 2.1 will create necessary directories if they don’t exist, in order to “play nice” with the Git and Mercurial source control systems. Improved support for time zones was added, thereby transforming a real pain in the neck into something easy by tracking Time objects with their time zone. They also added support in ActiveRecord for partial updates and dirty objects. Timestamped migrations, better gem dependency and unpacking, and text helpers which are usable outside of the view, complete the aptly titled article “Rails gets more mature”.

For those of you who’d like to contribute to the Rails project, there is now a guide on how to create and test patches with Git. Perhaps just as important, the official Documentation Project for Rails, which is hosted at GitHub as well, is looking for contributors. But before providing your help, ensure that you head over to their wiki and read the documentation conventions.

This week Capistrano 2.3.0 and Webistrano 1.3 were released, further improving the deployment process for Rails.

HoboFields is an interesting plugin that allows the programmer to define the fields in their model, by generating the migrations for you. Give it a spin! :) Another plugin, worth pointing out, is TextMate Syntax Highlighting, which simplifies the process of publishing beautifully highlighted code.

The Rails performance company New Relic received $3.5 Million in investment funds from Benchmark Capital. As I said back at the time of their investment in Engine Yard, Benchmark is doing the right thing by covering their other investments in the many startups who’ve adopted Ruby on Rails as their framework of choice.

Our goal as a company is simple: to make Rails developers’ lives easier and enable their web applications to scale and perform exceptionally well” — Mr. Cirne, CEO of New Relic.

Do you happen to need a whole team of Rails developers? A London based team of six is available for hire. My guess is that it won’t take long before they are snapped up.

A new Rails book

The Art of RailsToday there is a new book on the Rails scene. The Art of Rails by Edward Benson went on sale. I didn’t have a chance to read it yet, of course, but I get a feeling that it’s going to be an enlightening one. In fact, it appears to be targeted at intermediate Rails developers, who’d like to learn more about issues such as design, code style, and project maintenance. In that sense, it’s a unique book and far from a “me too” Rails book. The table of contents seem promising as well. If you’ve got $25 to invest in your career, give it a shot!


If you enjoyed this post, then make sure you subscribe to my RSS Feed.

Finally on Twitter

Antonio Cangiano April 29th, 2008

While I’ve been aware of Twitter since it began, I never took the leap until now. To start with, I’m not narcissistic enough to think that small snippets of my personal life interest anyone but a few close friends. I also try to rebel in the face of the information overload we live in, attempting to get rid of the continuous sources of distraction, and dislike the idea of immediate gratification at all costs.

I decided to finally join Twitter nevertheless because: 1) I intend to write about stuff that interests me (and possibly other people) but that doesn’t necessarily answer the question “What are you doing?”; 2) I can briefly talk about programming, but also about other subjects without having to write a whole blog post about them; 3) I noticed that very interesting discussions take place on Twitter, so, in a way, I was missing out something valuable.

Feel free to friend/follow/stalk me at http://twitter.com/acangiano.


If you enjoyed this post, then make sure you subscribe to my RSS Feed.

Next »