Collective Prose: Picture a coffee shop..

Vinu Murugesan just launched a Collective Prose. A pretty interesting application for experimenting with collaborative writing:

Collective Prose is a place “where you can share your thoughts, learn new things, tell stories, and share insight.” Anyone can share their thoughts by writing posts. Collective Prose uses tags to categorize these posts which makes finding related content easy. Also, people can save posts they find interesting so that they may get back to them later

Murugesan did Collective Prose with Ruby on Rails and tells his story in Building Web applications intelligently.

Let's Ajax, baby!

Just a heads-up. Honey, the next application from 37signals, is using a lot of Ajax techniques to get a spiffy and responsive interface. I’m already well underway in the process of refining the techniques and they’re just about ripe for extraction into Rails. Before Rails go 1.0, it’ll be the framework with the easiest support for Ajax on the block.

The power of readable metaprogramming

Oliver Steele is Chief Software Architect at Laszlo Systems and he’s digging into Ruby on Rails:

During my last vacation it took about five lazy vacation days with Ruby on Rails to implement a fairly sophisticated 40-page web application with five models, two metamodels, CRUD, cookies, image upload, and login. (I’ll write more about the application itself, if I find a few free weekends to harden it for public use.) For comparison, it took me about the same amount of time during my previous vacation to write a much simpler ten-page PHP web application that had only one model. And I already knew a little bit of PHP, whereas I was learning Ruby and Rails from scratch.

He explains how much of this productivity stems from the fact that “…Ruby is one of the rare languages with a readable embedded syntax for metaprogramming”, which in turn “…lets the library user write in a concise domain-specific language that embeds Ruby”. The unique power that gives us Associations and Validations.

I’m really glad that Oliver looked into Rails because that has in turn lead me to really dig into Lazlo. It looks pretty darn neat! I’d definitely love to see someone do a Rails backend with a Lazlo frontend.

Picking platforms based on performance

Chris Petrilli talks about the delusions of grandeur that lots of programmers indulge in when they pick an environment based on performance concerns:

Write in whatever language you feel most comfortable and productive in. I know quite a few Python (either Zope or SkunkWeb) based websites that are running millions of hits per day. That puts them in the top 1%. Your site isn’t like that. If you think it is, you’re wrong. Maybe someday it might be, but deal with it then.

Couldn’t agree more. For almost a year, Basecamp was served well by a single, if beefy, server running web, application, and database services. We’ve just recently moved beyond that — after success was achieved. There’s no reason to gold platen a possible flop.

Tobias updates Hieraki, Typo, and more

Tobias Luekte has been a busy bee lately. In his week worth of updates, he writes about updating Hieraki and Typo to Rails 0.10 and a bunch of goodies for both in the wake of that. Additionally, he has a new scaffold generator using the postback approach and updates to both Money and the login generator. Way to go, Tobi! Keep it coming.

Want to learn how to Rail like a pro? Consider hiring Tobias to show you the ropes. He’s offering his services.

Ease of development, speed of execution, pick two

Justin Gehtland has been working on an application using the Java/Spring/Hibernate/JSTL stack for about 5 months. He started redoing it in Rails as an experiment and found something surprising:

I’ve been able to re-implement 80% of the functionality in just under four nights of work. Some of that most assuredly has to do with the fact that I understand the domain pretty thoroughly by this point. But a lot of it has to do with the sheer productivity of the framework.

He attributes this to convention over configuration, and how the “…configure, compile, deploy, reset cycle for running tests is time consuming on my original stack, and non-existent with Rails”. But all that is just the familiar tune on “ease of development”. Here’s the real kicker:

Rails is actually faster.

At runtime, the Rails implementation is at least as fast as the original stack in almost every case, and for a not-insignificant portion of actions, actually performs better. I haven’t run benchmarks yet, but I will as this effort progresses, but I was shocked (shocked, I say) to discover this.

Justin is the co-author of Better, Faster, Lighter Java and Spring: A Developer’s Notebook.

Welcome on over, Justin! I can’t wait to read more about your adventures with Rails. And best of luck convincing your customer to dump the 5-month effort in favor of your 4-night rewrite. I’ll be cheering for you.

Should I learn Perl with Maypole, or Ruby on Rails?

Ben Hammersley was debating with himself in public whether to dive into Ruby on Rails or stay with his trusty Perls and pick up on Maypole:

Should I learn Perl with Maypole, or Ruby on Rails? Perl I know, Ruby I don’t; Maypole seems a bit under the radar, Rails is hot hot hot; Perl has shedloads of modules to give other really useful features, Ruby has less.

I offered my always impartial and objective advice that perhaps Ruby on Rails would open his mind more. Learning a new language and all. Hammersley responded:

I’m inclined to go with his sage advice and learn a new language as well. And a new version came out this morning, too. That’s it. I’m sold.

Welcome on board, Ben!

Rails 0.10.1: FCGI stability, WS generator, tons of fixes

This is the point release to tie up the various loose ends introduced with Rails 0.10.0. Action Web Service has seen the most interesting improvements feature-wise with a new generator and tie-ins with the testing setup. There’s better support for XML-RPC: Instead of performing type checking on the parameters the remote client sends, AWS does casting to try and make it compatible with the signature instead, but if it fails, passes the parameter through anyway. And cleaner support for “prefix.methodName” XML-RPC methods with a new dispatching mode named :layered (this is an incompatible change for XML-RPC services that use namespaced XML method names: metaWeblog/blogger implementations will require changes).

As Basecamp moved to lighttpd/FCGI this past week, we also got a bunch of good fixes in that increases the stability of FCGI in a production environment quite a lot. No more FCGI dying and in case uncaught exceptions are raised, you’ll know about it in log/fastcgi.crash.log.

In total, we managed to squeeze in no less than 52 additions, changes, fixes, and tweaks. See all the changes in the changelogs for Rails, Active Record, Action Pack, Active Support, and Action Web Service.

No application changes should be required. Update using gem update rails

Rails is the #1 gem with 20K+ downloads

Rails has now assumed the #1 gem spot with 20,801 downloads at the time of writing. Just in front of Rake, which have long had a solid lead as a required dependency to Rails. Out of the 11 gems listed on the top downloads table on the cover of RubyForge, Rails is now responsible for the six of them.

Funny side note: The two programmers at 37signals (yours truly and Jamis Buck) stewards 8 out of 11 gems listed on the hit list.