Miguel de Icaza longs for the Rails of GUI

Open source hacker extraordinaire Miguel de Icaza muses about the state of GUI APIs in light of Avalon:

I just had a realization today.

Microsoft’s Avalon is the J2EE of GUI APIs.

Its God’s way of punishing us for replacing the ten commandments with the Design Pattern fad.

We will have to wait a couple of years for the “Rails” of GUI toolkits to come into existance. In the meantime programmers will pay for their sins.

Avalon marks the end of the American Dream.

Now that’s not a happy programmer speaking.

Why you need to come to RailsConf EU

Lars Pind is voicing his concerns over the lack of enthusiasm around RailsConf Europe. I can sympathize with the fears, but allow me to iterate why you need to be at RailsConf Europe.

Rails is not an American thing! It was created by a Dane, after all. The core team musters people from Canada, Germany, and Austria. The community itself involves people from literally all over the world. RailsConf Europe should be asserting that fact and allowing us to demonstrate that there’s a viable ecosystem outside of the US.

Okay, that was the moral call to action. Now what you get out of it. RailsConf Europe will feature a host of exclusive presentations that’s not just a rehash of the US conference. We have Kathy Sierra, the star of recently concluded OSCON, gracing us with her presence. We got Jim Weirich, one of the Ruby communities best speakers, the creator of Rake and Builder, coming even though he wasn’t at the US version.

Unlike the US version, we actually have Rails core members speaking besides yours truly. The honorable Jamis Buck, the king of Capistrano, wasn’t even at RailsConf US, but will be here. Thomas Fuchs, the czar of script.aculo.us, wasn’t at RailsConf US either, but will be here. All that on top of Marcel Molina, Dave Thomas, and myself delivering fresh speeches.

So in many ways, I see the European line-up being even stronger than the US one. That’s not to say its all a rosy dance. It’s considerably more expensive to do a conference in London than in the suburbs of Chicago, which means somewhat of a sticker shock. There’s currently less employment opportunities for Rails in Europe than in the US, so more people have to pay out of their own pocket.

But if you have the means, if you’re working professionally with Rails, you really should come. Let’s reverse the trend of US conferences bringing over an anemic, rehashed show. And let’s assert the fact that Rails is not an American invention or property. It’s a global play and a strong Europe should balance that fact.

See you at RailsConf Europe? I sure hope so! Remember, it’s September 14-15 in London. Register today.

P.S.: Americans are more than welcome too. Considering all the great exclusive speakers line up and the opportunity for a more intimate experience, I think you have a strong argument for a trip to London this September.

Russian Rails community growing fast

Yaroslav Markin wrote to inform me that the Russian Rails community is experiencing rapid growth and that they’ve now completed a translation of the entire site living at www.rubyonrails.ru. If you speak Russian and want to join the community, they already have hundreds of members in their Google Groups forum.

Do you know of any other local Rails groups making headway? Please post in the comments.

System management gone Rails

It’s interesting to see that we have not one but two upcoming system management/surveillance solutions coming off Rails. There’s Spiceworks and FiveRuns. Now get out of beta and Get Real!

Simply Restful in Rails Edge

David committed the simply_restful plugin to the rails this afternoon, ensuring its inclusion with the next release of Rails. Beware, there are a few API changes from the plugin, and a nice new feature:

map.resource :post
map.resource :comment, :path_prefix => '/posts/:post_id'
map.resource :trackback, :path_prefix => '/posts/:post_id'

map.resources :posts do |posts|
  posts.resources :comments, :trackbacks

Nesting the resource blocks will automatically set the path prefix from the parent’s path.

There may be some bugs introduced in the move from plugin to core, so try upgrading (and remember to remove the plugin!) and let us know if you find anything. I have the current version running on a couple apps now, so things should be working.

Update: There is one more restriction I forgot to mention. The _method hack only works on POST methods now. It is no longer valid to link to a URL like /articles/1?method=delete. Let’s not open that can of wormsvengeance.php again.

Tip #1: Use my routing navigator plugin to get a handle on what routes are being created.

Tip #2: Use the new *_path routes if you want your routes to have just the path (‘/articles/1’) instead of the whole url with protocal and host.

lighttpd makes a proxy comeback

As Mongrel continues to bubble to the top of the preferred production stack, we’ve started to evaluate web servers on their proxy rather than their FCGI support. The lighttpd crew has heard this change of priorities loud and clear and the coming version will feature a brand new mod_proxy_core module, which aims to rectify all the troubles of the old mod_proxy.

Jan Kneschke and crew are busy preparing this proxy module for release with lighttpd 1.5.0, but you can already now get your toes wet with the pre-release.

All hail the http pipe!

Testing with CSS selectors

If you have trouble wrapping your head around assert_tag and its options, you might want to give CSS selectors a chance instead. There are currently two plugins for handling that: assert_select and hpricot helper.

The hpricot style gives you something like assert element('title').should_contain('Funky Chicken Title') and the assert_select gives you something like assert_select "title", "Welcome".

From a brief cursory overview, I tend to like the assert_select style better. But I have yet to use either for real stuff. Please do shoot a comment with your experiences. One of these methods could well make it into core.

Composite primary keys for Active Record

Dr Nic Williams has charged one of the major strongholds of legacy database compatibility with Rails, composite primary keys support. By installing his nimble plugin, you get a very natural API for mapping those blasted composites using set_primary_keys and an array of keys.

It’s still a work in progress, but if you have to deal with a legacy database and want to use Rails, this might just be your ticket in.

Typo 4.0 released, with Rails App Installer

I’m only a week behind on the release of Typo 4. Typo is one of the oldest and most visible of Rails open source projects, so it’s always nice to see a new release. Out of all the new features and bug fixes, what really stood out for me was the Typo installer. Scott has recently extracted this into its own gem, ready for inclusion with your own Rails applications!

Typo now includes a .gem-based installer that makes it easy to install Typo. Just install the Typo gem (gem install typo) and run the Typo installer (typo install /some/path) to create a new Typo blog in /some/path. The installer will install all of Typo’s files, create a working set of config files, create a SQLite database for you, and start the Mongrel web server on a random TCP port. It’ll also create a set of sample Apache and Lighttpd configuration files to show you how to tie Typo into your existing web server. — Typo Installer