Ruby on Rails
Ta-da List


July 30, 14:27 | Comments (3)

Rails attempts a ride to RubyConf

The fourth annual RubyConf will be happening from October 1st until October 3rd. I expect to go and have just submitted by extremely brief proposal for a full-length talk on Rails:

How Rails was grown on a diet of real problems and influences, attracted an audience by being concrete, and still kept a generic core. Will show off the Rails web-framework and discuss implementation details.

Hopefully it'll be accepted. If it does, you'll be able to hear me talk about Rails twice on US soil in the coming months. Starting with The Building of Basecamp in Chicago on September 17th and then RubyConf in Chantilly (Virginia) at some point during October 1-3.

If it's possible, I'll attempt to get a BoF spot at JAOO, too. (Anyone know how?)

July 29, 22:51 | Comments (7)

Arrogance, ignorance, and a blinding Sun

Statements like this is the reason I love picking on Java programmers:

The scripting languages like Perl, Python, PHP, and Ruby are useful for quickly hacking up a Web site. However, as Fowler's "Principles of Enterprise Application Architecture" notes, they are pretty much limited to the "Transaction Script" model.

The shear amount of arrogance and ignorance contained is staggering. It would appear as if Doug is simply playing word bingo and called it when he spotted that "Transaction Script" and "Scripting Language" were close enough.

There is absolutely no inherent connection between the two terms (neither does Fowler attempt to make one from page 110 to 115 of PoEAA that talks about Transaction Scripts — he even uses Java as the example!).

In Rails, as an example, we're using the Active Record pattern (relieved of the chief concerns with the original pattern) to facilitate the building of a strong domain model. We're using Action Pack, which is founded in the gulf between Page Controller and Front Controller along with a Template View and use of Helpers.

But this is not about name dropping patterns. It's about people working under a Sun that has all but blinded them from an outside world that doesn't appreciate the masochistic fascination with hard, manual labour and the real sweat it breaks. And Dough isn't even affraid to admit it:

Quickly? J2EE isn't really about building things quickly

I guess that's the self-referential reality that kicks in after you've spent another day working the nine to five in a XML configured and compiled sweatshop.

And the call to authority really underlines the audacity of exhibited. Martin Fowler is himself a big Ruby enthusiast from all that I've read, been told, and talked with him, so it's particularly ironic to see his name abused to spearhead an attack on the language.

P.S.: Unlike Graham, I don't necessarily think it's all Java programmers that share this combination of A and I, but it's just that there are so many that do. It makes it hard not to let those stereotypes assume the public face of The Java Programmer. Not impossible, just hard.

July 29, 17:29 | Comments (21)

You're not just making a technical decision

Paul Graham is the hacker's bard. He puts in eloquent words what can otherwise seem fuzzy. He's also a LISP programmer on a mission:

When you decide what infrastructure to use for a project, you're not just making a technical decision. You're also making a social decision, and this may be the more important of the two. For example, if your company wants to write some software, it might seem a prudent choice to write it in Java.

But when you choose a language, you're also choosing a community. The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python. [2] And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages.

That's the paradox of picking an off-mainstream platform. It's not harder, but easier to attract top talent. We witnessed this first hand when advertising for help on Basecamp. Triple-A programmers were falling over themselves to get a shot at working commercially in their language of love. They were the kind of guys were I'd feel like the freshman just arriving on campus.

Who cares if there's 5 million Java programmers? Or 3 million PHP programmers? You usually just need a couple for any project and with star talent being 10 times as productive as your average Joe Programmer, it's extremely important to get hold of that upper-echelon. And as Graham says, you're much more likely to find one of those in languages of love.

July 29, 16:57 | Comments (6)

Smart money is on a shift away from J2EE

Keith Pitty is a J2EE developer with 20 years of experience in Software Development. Here's what he had to say about the upswing of dynamic languages like Ruby and Python after reading about Rails:

I know this is an inflammatory statement but it would seem like the smart money is on a shift away from J2EE to Ruby or Python-based web frameworks.

Of course, Rails is not alone in bringing this line of questioning before the holy temple of Enterprise Development, but its comforting to see that there is at least a shred of light from those on the inside. Perhaps web-development needs not be torture? Perhaps programming can actually be fun?

If Keith was feeling doubts, though, there are plenty of priests to calm him down with the usual chants about "...they are quick hacks..", "...people say that the J2EE solutions are more scalable", "...small-scale web applications...".

July 29, 2:35 | Comments (2)

Massive update for Rails (0.5.5)

I've just released a flurry of updates for Rails. There's a new release of the main distribution, which now works on Windows out-of-the-box and has a WEBrick-based internal web server (you can of course still use Apache). Both Active Record and Action Pack have also seen updates, which includes new features and bug fixes.

I've also worked hard to cure all the start up problems people were experiencing with the 0.5.0 release. There's better error reporting and better documentation to help everyone out. And if that shouldn't put you on straight on Rails, the IRC channel has been growing rapidly. There's plenty of people willing to help you out.

July 26, 23:52 | Comments (23)

Rails rides the virgin voyage at Mach 3

It's been just over 48 hours since the first release of Rails was unveiled and more than 200 300 500 people have already downloaded the framework. While numbers are shallow, I'm really thrilled to see this take off so fast. Not even Instiki, which has a much broader appeal, took off that fast (although it has now been downloaded 2,418 times, which places 7th on the all time download list at RubyForge).

But as I said, numbers are shallow. What's really making my day are all the overwhelmingly positive comments that are flowing in. It's quite a kick to hear people say they want to learn Ruby just to use Rails. Thank you all so much. I'll be sure to make the transition worth while.

If you want chat about whether Rails perhaps also could be something for you to leave PHP/Java/C#/Per/Python behind for, there's already a great community blooming at #rubyonrails on FreeNET. Come join us.

July 25, 17:43 | Comments (14)

Rails is designed to be boring!

Naseby is disappointed that Action Pack, and by association Rails, doesn't offer a paradigme shift like Borges or other interesting new approaches to web-development. I'm always sorry to disappoint, but at least this time it's not out of regret. Here's a shocker: Rails is designed to be boring!

I bring no revolutionary, and hardly any evolutionary, ideas to the table with Active Record, Action Pack, and Rails. It's all based on familiar patterns and other peoples great ideas. My humble role has merely been one of selection and simplification. That approach was never going to make the science fair. Or have white papers printed in academic journals. It's just going to make the life of plain old web-developers easier.

Naseby also mentions Basecamp, which serves as a good analogy for Rails. Basecamp took an old concept (project management) and used familiar tools (weblogs, todo lists) to create something, from a perspective of earth-shattering innovations, boring. But the funny thing is that this is exactly what people were looking for.

So I welcome the label of boring. Rails is so boring that you might actually find a use for it in projects you're likely to work on.

P.S.: I do take offence to have Action Pack labelled as a "slightly buffed classic ASP lookalike", but I'll forgive Naseby his premature judgement, and hope he actually takes the time to discover why it is not.

UPDATE: Naseby apologies for calling Action Pack a ASP rehash and explains why it isn't for him with "...pragmatic excellence [is] not my criteria for selecting the frameworks I’d like to play with". Fair enough, all forgiven.

July 24, 21:30 | Comments (26)

Rails 0.5.0: The end of vaporware!

I’ve been talking (and hyping) Rails for so long that it’s all wierd to finally have it out in the open. Mind you, we’re still not talking about a 1.0 release, but the package currently on offer is still something I’m very comfortable to share with the world. Undoubtedly, there could be more documentation and more examples, but Real Artists Ship and this piece will grow in public. Enjoy Rails!

UPDATE: Want to know more about how we built Basecamp using Rails (and how we built Rails using Basecamp)? Attend the Building of Basecamp Workshop on September 17th in Chicago. You better hurry too, it's already half full (and the last one sold out a month in advance).

July 16, 20:00 | Comments (18)

Michael Moore posts his sources

Fahrenheit 9/11 has yet to open in Danish cinemas, but it's hard not to be bombarded with opinions about the movie already. One particular fashionable take is that Moore is more than less tweaking the truth and that he's obsessed with conspiracy theories (so was he characterized by Danish national TV yesterday).

I haven't yet seen the movie, but I've enjoyed his earlier work, so I'm probably slightly biased for Moore. This bias has just be enforced by the fact that Moore is not afraid to reveal his sources. He just posted a ton of references to support his statements about the shenanigans involved in the 2000 election, Bush's reaction to the 9/11 attacks, and indictment that he didn't do enough about terrorism prior to the attacks.

So while it's obvious that Moore is a partisan dedicated to kick Bush from the White House, it doesn't automatically disqualify his arguments and references to fact. Neither does the fact that he's using humor to communicate.

Regardless, I'll be sure to see the movie on opening night here in Copenhagen, and will reserve further judgment until then.

July 15, 22:48 | Comments (14)

Your mouth will hang open

PHP 5 is officially out. Congratulations to Zend and friends. Even though I haven't really dug into much PHP work for about a year (since leaving for Ruby), I have many fond memories and thanks to extend to PHP. It brought me up well. Not that I'd want to go back. My mind has embraced Ruby so completely that whenever I'm forced back into PHP (for maintanence) it twists and turns — Don't make us go back there, masta.

It appears too that I'm not the only one. On the Slashdot topic for the PHP 5 announcement, an anonymous coward modded "5, Interesting" extols the virtues of Ruby in constrast to Python:

If you've ever been programming Python and wished it was cleaner and less "arbitrarily verbose", you'd like Ruby. If you wonder why Python arbitrarily makes you say "len(str)" instead of "str.len()", you'll like Ruby. If you wonder why Python makes you type "def foo(self)" instead of just "def foo", you'll like Ruby. If you wonder why you should type verbose hard-to-read stuff like "[f for f in n if f < 4]" instead of something like "n.each { |f| f<4 }", the give Ruby a whirl.

That gives few pointers to many of the smaller things that turned me off Python and on Ruby. More importantly, the flattered me said, is his promotion of Rails:

If you do MVC-type web apps, your mouth will hang open when you use the highly dynamic Ruby on Rails (how do you add a new object to your app when you add a new database table? ONE LINE OF CODE. How do you add a new field to your object when you add a new column to the database? DO NOTHING.)

So since I'm addicted to hanging mouths marvelling the full dynamic being that is Ruby, I'll do my best to finish up the first release in no time at all. Despite being in Rome and Venice for the past two weeks, I got in an impressive amount of coding and documenting during all those down times travelling and chilling. Do stay tuned.

July 12, 10:55 | Comments (6)

Enjoying Rome

July 10, 18:54 | Comments (6)

Active Record steals the Hibernate show!

Ryan Dlugosz just wrote me about how Active Record made Hibernate, a Java-based ORM alternative, look like all labour and no fun:

[A] coworker of mine was doing a talk on Hibernate Tuesday night (the OR Mapping tool for Java). About a week earlier, I showed him a bit of Active Record & asked him to throw it into the talk somewhere for perspective.

He showed the many XML configuration files, pile of required libs, a 30-property-long JavaBean supporting the "Client" table, and finally some Java usage of Hibernate to persist and restore it. Everyone agreed - it's great that you don't have to write any SQL and Hibernate does a good job of optimizing queries & managing the object cache. Cool stuff.

Then he pulls out Active Record. :) People were simply amazed that the same result was achieved using Ruby + AR without any of the configuration or dependencies required by Hibernate. Granted, AR can't do everything that Hibernate does, but as far as core functionality goes (the stuff you'll actually *use* in your job) it's beautiful.

Even now people are emailing me about how cool AR is now that they've been playing with it. Thanks for a great piece of software and I'm looking forward to seeing (and using) Rails!

This is my dream response to Active Record. Appreciating that the Active Record pattern is a worth-while competitor to the horde of data mappers and that a Ruby-implementation can remove all the tedious labour from the usage.

I'm even more excited to get Rails on the street now. Just about a week's worth left on vacation (in which I've sneaked in lots of neat Rails stuff on the train from Venice to Rome and will be doing the same on the way back). So late July is now the current target.

Thanks to all the continued encouragement and anticipation. It means the world.

July 04, 11:51 | Comments (12)

Experiencing Venice

July 03, 12:26 | Comments (0)

Arriving in Venice