Ruby on Rails Podcast

RailsConf 2007

Monday, May 21, 2007

Interviews from RailsConf 2007 in Portland.

Interviewed by Geoffrey Grosenbach

Transcript

Monday, May 28, 2007

[Music and singing]

Geoffrey Grosenbach: It’s the Ruby On Rails podcast, number 51. I’m Geoffrey Grosenbach. If I were more dedicated to the Base 10 number system I would have done something super special last time. But this time I am making up for that with 10 interviews from RailsConf 2007 in Portland.

We are here at RailsConf 2007. I am sitting here with a gentleman. What don’t you tell me your name and who you work for?

Mike Sax: I’m Mike Sax and I’m with Well Beyond. We are building a Web based management system for wellness for people who are dealing with cancer and MS and Parkinson’s and older adults.

Geoffrey: So are you the only developer on the project or do you manage a team? What kind of role are you playing?

Mike: Yeah, we are a startup right now. So pretty much right now I’m the only developer. We have been developing for a few months. I bought a Mac, put TextMate on it and never looked back.

Geoffrey: So why did you choose to come to RailsConf?

Mike: I wanted to be up on the latest and greatest techniques in Rails. I wanted to make sure – the app I develop right now is not really Restful and I wanted to make sure I could implement that. And I really like the community here. I think there are so many people building very creative apps. That’s kind of unique to Rails.

I come from a.net world and a lot of people are building enterprise solutions. But here there are a lot of people doing creative startup work that’s very exciting.

Geoffrey: So there have only been about three lectures and one keynote so far. Which ones did you attend and what did you think of them?

Mike: I attended the keynote, which was interesting. I had expected the next big thing in rails to be announced. And it turns out that 2.0 is going to be more of a getting things right and polishing release.

Geoffrey: Yeah.

Mike: I think that’s a very mature decision on David and the core team’s part.

Geoffrey: Now, people were not especially mentioned by one of the ideas about which he talked came from plug-ins and came from people in the community. I think it’s great that those ideas are being rolled into the main Rails itself from people’s ideas in the community being implemented.

Mike: That’s right. I think during the keynote Dave did a good job of essentially giving credit to those people. It’s a system of innovation that seems to work well.

Geoffrey: So is Ezra Ezigemanschiwicz’ asset -

Mike: The MURB?

Geoffrey: Spreading so that different assets come from different servers and in the asset packager, I think it was Scott Becker, bent all your Java scripts into a single file and then Chris Weinstrath with the sexy migrations.

Mike: Also a big thing was the debugging support.

Geoffrey: Debugging, yeah.

Mike: So there are a lot of very exciting things.

Geoffrey: Speaking of whom, here he is right here. I will talk to you next. Don’t move. Are there any other notable workshops or workshops you attended?

Mike: No, I haven’t. I have been mostly outside and talking to people.

Geoffrey: That’s one of the big values of this conference is just all the people here and you can sit down and have a chat.

Mike: I believe or I hope that everything is being recorded because when you meet somebody and you want to talk about something you can just keep going and catch the content later so that’s exciting.

Geoffrey: Exactly. Well it’s good to meet you. Thanks for talking.

Mike: Thank you.

Geoffrey: So, RailsConf 2007. We are talking to Scott Becker. Now I’ve used your asset packager for a while. Tell us, what is it?

Scott Becker: It helps you compress and merge your JavaScript and CSS style sheets down into one or more packages so that you don’t have to download multiple files and limit your HTTP connections.

Geoffrey: It looks like something quite similar to that is going to be rolled into Rails 2.0. You weren’t mentioned by name. What do you think of what you saw this morning?

Scott: Yeah, I did notice that. It does look pretty cool. It looks a little bit different than mine. The example that you showed just bundles all the Java scripts that you have in the JavaScript folder whereas with my plug-in you can configure multiple packages. You might not want all of your Java scripts to be sent down all at once. You might just want this set of files for your front-end screens, this set of files for your add in screens. I could see some different approaches to it.

Geoffrey: When I saw that and having used your plug-in for a while, I thought you could almost divide things into subdirectories if you wanted to reference those individually using the system he mentioned this morning. But maybe his system is more of a general purpose one and yours would be specific.

Scott: Now I did hear that you could section it out into folders like that. I don’t know if you can do folders and subfolders and stuff like that but if you are doing a really complex AJAX application and you find yourself having lots of files, you want to structure things.

Geoffrey: It sounds like Adam Keys is about to start. Good to meet you.

Scott: Yeah. It’s nice to meet you.

Geoffrey: Geoffrey Grosenbach here at RailsConf 2007. We are in Portland, Oregon, which is a long way from New York City where Trotter Cashion is from. He recently wrote a book for Addison-Wesley. It’s a PDF book. Tell us about it.

Trotter Cashion: Well, it’s called ‘Rails Refactoring To Resources’ and it is basically a guide to take your existing Rails application and convert it over to REST. I give a few refactorings to help take your existing controllers and routes and move them to a more CRUD and RESOURCE approach. Along with the documenting is a bit of the API because I found that I needed that says it was a little difficult to find some of that information online in a nice easy friendly spot.

Geoffrey: Now I thought that was a great approach because, yes for a lot of people they just need to know what REST is and how to use it within Rails. But most people by now already have apps that are in existence and they need to change those and update those to get those to work Restfully and that whole method of organization can be confusing.

Trotter: Yeah, it can be really confusing. That’s what I found when during RailsConf 2006 David gave his keynote and I was like, “Oh, wow, cool! That’s really interesting. This REST thing is cool. I want to try it out.”

So I went back. I was working at East Media at the time and we were working on the Pippin ID server for VeriSign. We decided well hey, wouldn’t it be fun to make that a little more Restful. We started to do it and found out that’s kind of hard. [Laughs] About that time I thought maybe we could take our experience and help other people.

Geoffrey: A couple of big things that people are always wondering are how to do Search, how to do administrative interfaces. I was surprised that he seemed to give a few examples in the keynote this morning.

Trotter: I was too.

Geoffrey: It sounds like some of those were a little bit different from what people have talked about as being this straightforward Rails way to do it. What did you think about that?

Trotter: It seems neat and nice and fine but the approach that I really like is the one that Dave Thomas put on his blog of Radar – rest and dumb ass recipient.

Geoffrey: OK.

Trotter: The search and admin things, the way that Dave puts it is that there is a reason that is hard to put in REST and that’s because it’s not really a Restful thing. That’s something that the client should be handling. But since you are dealing with this dumb client that is the browser, well, the client won’t handle it.

So you build a RESTful Rails app, and then you build a stupid client Rails app that interacts with your RESTful app, and have the browser interact with that, and everything else, whatever useful tools people write, for Mac and Carbon or whatnot, will be able to just go right into the REST interface.

Geoffrey: Now, with Active Resource, that’s easier.

Trotter: Exactly. So Active Resource would interact directly with your REST side, whereas a web browser that comes in would not. They would go through with their dashboard interface and everything so that they can play around and have the friendly, “I like to click here and see all these things at once.”

Geoffrey: I was also surprised to see namespaces come back in. It seems like, for Rail 2.0, the routes file is going to have the ability to sub-nest things within namespaces. So you could have admin.::articles. That does seem useful, but I was surprised to see that come back, because I thought there was the idea that namespacing your controllers was a bad thing.

Trotter: Yeah, I thought there was a push against it also, and so it kind of took me by surprise. I haven’t been keeping as up to date on that as I would’ve liked. But he showed that and I went, “Oh. Interesting.”

It seems fine to me. I think it’s nice if you have both options available, because maybe namespaces don’t work for you, but one day they might, and you want to arrange your code that way and make use of it. But I think it’s just one of those things that, it’s an option, and if it makes your code more readable then use it, otherwise, leave it be.

Geoffrey: Well, much bigger conference this year. What’s one lecture that you’ve gone so far to that you enjoyed?

Trotter: Oh, I really liked the first one I went to on clean code, by-I forget his name now-Uncle Bob. And it was really good. It’s an adaptation of the same talk that he gave us using Java code, I believe. But really, talking about, “Hey, here’s how you should be writing your code. And you should be testing everything, and you should refactor as soon as you notice things hurt. Don’t wait. Big rewrites won’t help. Incrementally improve your code so that you don’t end up with just one steaming pile of mess.” I like that one.

Geoffrey: Well, thanks, Trotter. Tell us a little bit about your company you work for, and blog, and where people should go to buy your book.

Trotter: I work for Motionbox. We do video. And it’s a Rails site, which is fun and cool, and I really enjoy, located in New York City. We are actually pushing the envelope pretty hard on Rails, which is fun. We have a lot of data stored in our database. We have a lot of specific requirements that are difficult to meet, and we are working very hard to meet them. So check it out. You’ll probably enjoy it. And hey, it’s done in Rails, so put your videos there.

My blog is lifecoding.com, but I don’t really post to it that often. I think the last post was like six months ago, telling people that I was going to start posting more, [laughs] which was obviously a lie.

Geoffrey: [laughs]

Trotter: [laughs] But you can go there to find stuff about me, or just email me. I’m on IRC, with the convenient nick of Trotter. So if you see that, you’ll know it’s me. And just send me a message if you want to know anything.

Geoffrey: All right. Well, thanks.

Trotter: All right. Thank you.

[audio cuts]

Geoffrey: So, second day of RailsConf. Here with Mark Mansour, from Melbourne, Australia. Tell us what you do.

Mark Mansour: I’m a pointy-haired boss for a Rails shop. We’ve got about five or six developers there, and we’re making a website that lets artists sell their stuff.

Geoffrey: So artists, and specifically oriented toward Australia, or people can use this all around the world?

Mark: At the moment, targeted at the Australian market, but we’re branching out into the U.S. and Europe in the next three months.

Geoffrey: So you’ve already launched in Australia.

Mark: Yeah.

Geoffrey: How popular has it been so far?

Mark: Really good. We’re getting really good growth. The people who are joining the site are just loving it. It’s really addictive. We’ve just put forums online, integrated Beast into the thing, and people are just going nuts over it. So yeah, people are just commenting on each other’s artwork and helping each other out. It’s a really friendly place.

Geoffrey: Now, what’s the chance that you’ll move your business to a better city, like Sydney?

Mark: [laughs] A better city?

Geoffrey: [laughs]

Mark: Yeah, not so much. Not so much.

Geoffrey: So which one of the sessions so far have you enjoyed?

Mark: The memcache one was fantastic, really enjoyed that. What else was good? No, everything I’ve seen so far. The daemonizing one was pretty good as well.

Geoffrey: Well, great. Nice to chat with you.

Mark: Thank you, sir.

[audio cuts]

Geoffrey: So it’s the second day of RailsConf, standing here with Murray Steele. How’s it going?

Murray Steele: It’s awesome. It’s great. Thank you so much for press-ganging me into this.

Geoffrey: I just wanted to have a great Scottish accent on the podcast.

Murray: Hootmon!

Geoffrey: Would you say, “We have a piper down?”

[laughter]

Murray: I could say, “We have a piper down.” Would that get everyone going?

[speaking in exaggerated Scottish accent] We have a piper down!

[laughter]

Geoffrey: But seriously, where do you work? Tell us about your company in London.

Murray: OK. So I work for Aegis Media, which is a big media-buying company, and we turn all of their ridiculous Excel spreadsheets into awesome Rails apps. And I work with James Adam.

Geoffrey: What’s that like?

Murray: It’s pretty horrible, actually. He’s really mean to me.

[laughter]

Murray: He makes me write all the code, and then puts copyright symbols on it.

[laughter]

Murray: Claiming it was him. I’m always getting burned by that.

James: You love it, Murray.

Murray: Shut up, James!

Geoffrey: So it seems like there’s a huge Ruby Rails community in London. There are even several, right? There’s Pizza on Rails, and there’s another one…

Murray: Yeah, there are a couple of those.

Geoffrey: Do you go to any of those?

Murray: Yeah, I help organize the London Ruby User Group. I’ve never been to the Pizza on Rails, so I can’t really comment on that. It’s kind of secretive; they don’t tell you when it is, except on their mailing list, and I haven’t signed up.

Geoffrey: Now, our hard thing in Seattle is just getting people to speak. Maybe we don’t have enough people, but it’s the same four people all the time. Do you have that problem? Or how do you solve that?

Murray: Yeah, it’s really hard. Every month, after the meeting, I put out an email saying, “Hey, does anybody want to talk about something?” And invariably, no one does, so I have to press-gang them-a lot like you’ve just done to me.

Geoffrey: [laughing] Oh, I understand.

Murray: I just say, “Can you do a talk, please?” Dan knows, because I did it to him. I’ve just pointed at someone, and this is a non-visual medium; I’m so stupid.

[laughter]

Murray: It’s really hard to get people, but if anyone’s listening and wants to give a talk at LRUG, get in touch on LRUG.org.

Geoffrey: Well, great. What is the best lecture you went to so far?

Murray: I’ve got to say James, my colleague, because he’s standing right next to me.

[laughter]

Geoffrey: That’s kind. That’s kind.

Murray: But it was really good. If the slides are available, you should get it, because there’s sound-and animation.

Geoffrey: Well, thanks, Murray.

Murray: No, no. Thank you. It’s been awesome.

[audio cuts]

Geoffrey: So, second day of RailsConf ‘07, talking to the notorious-it’s the third day? Oh, because there were the workshops and then lectures, and then this is Saturday. The notorious Dr. Nic, who can count a lot better than I can. [laughs]

Nic Williams: How are you going, Geoffrey?

Geoffrey: So I was a little disappointed in the keynote that I didn’t see that Magic Models were rolled into the stock Rails 2.0. Were you disappointed?

Nic: I wasn’t the only one that was shocked. Certainly, David hadn’t emailed me to say that it was, but I think we all knew that the Magic Models were going to be part of 2.0. Perhaps there’s still an opportunity, I don’t know how hard-fixed the launch is to 2.0.

Geoffrey: So it still could get in there. It’s a ways out.

Nic: Every time there’s a release candidate, I’ll be putting in a patch.

[laughter]

Geoffrey: Now, I was shocked that, I think there are 1, 000 or 1, 500 people, and 500 signed up for my conf plan, and listed what sessions they were going to.

Nic: When I built MyConfPlan, I didn’t understand that people might use it.

Geoffrey: [laughs]

Nic: And that reflected in the last few days, as there’s been a lot of downtime. And then we tried to port it to EC2, and that went badly. But it’s being used, and that’s really exciting. It’s exciting to people’s laptops up, and you see the page up and people using it. And it’s now ready for RejectConf.

Geoffrey: You’re going to use it for that as well…

Nic: People can sign up for RejectConf, and actually put in what their session is and how long it’s going to go for. The shortest sessions go first.

Geoffrey: Does that guarantee you a spot at RejectConf, or are you still going to wait in the two-block long line with everyone else?

Nic: 110 people are coming. The 111th person has to stay outside.

Geoffrey: That’s rough.

Nic: It’s hardcore. Hardcore, here in Portland.

Geoffrey: Well, what other sessions are you looking forward to?

Nic: Well, I’ve just been to see Julian Boot. I was at the same research center he was at, and so it was pretty interesting, very Matrix-y themed. I know that was past tense, but it was very Matrix-y.

Geoffrey: That’s good.

Nic: He had an output for demonstrating; his test log actually looked very Matrix-y. That was pretty awesome.

Geoffrey: Well, finally, other than maybe or maybe not being a real doctor, where do you work?

Nic: Oh, I’m definitely a real doctor.

Geoffrey: You are a real doctor.

Nic: I’m definitely a real doctor. I’m not that clever to pretend to be one.

Geoffrey: [laughs]

Nic: It’s the lack of personal confidence that makes you want to put the “Doctor” in the front.

Geoffrey: [laughs]

Nic: If I had better self-esteem, perhaps I’d just call myself Nic.

Geoffrey: [laughs]

[audio cuts]

Geoffrey: So day two or three, depending on how you’re counting, of RailsConf, talking with Josh Goebel, author of not only Pastie, but also Beast. What’s it like working together with Rick Olsen?

Josh Goebel: Well, I’ve actually met him yet, but Rick is the coolest…

Geoffrey: You’ve never, in person?

Josh: No. No, I was hoping he’d come to the conference.

Geoffrey: You’re just pen pals, through subversion.

Josh: Yeah. I have his IM, and I bug him whenever. I try not to do it too much because he’s core now. But we were buddies before he was core, so I feel like we have a legitimate whatever…

[laughter]

Geoffrey: And I’ve seen Beast mentioned, not only a few times through today, but 37signals is using it. And it seems to have hit a sweet spot that people really wanted in a forum.

Josh: I think 37signals using Beast kind of validates what we were trying to do, because they are the perfect example of minimal, just the feature set that you need. They did add one or two things that are actually really hard to notice-you have to use it to notice them. But pretty much, they used Beast out of the box. They tweaked the design. They had a blog post about it; they want to design different than their apps.

Geoffrey: I’m surprised more people haven’t used Beast, but then just hook it into an existing user system. A lot of sites I go to, I have an account on part of it, and then I have to sign up for another Beast account. Do you think that’s a problem, or is it just up to the individual implementer to make it work with their site if they want a smooth experience?

Josh: I think we certainly have a lot of people talking on the forums that want to do that…

Geoffrey: OK.

Josh: And want to know the right way to do that. And of course, there’s like three different ways you could do it, from just talking to the database, to totally merging your apps, to some sort of API. I don’t know. And I’ve thought about, with recent apps, some sort of copying accounts over, like from the main app to the Beast forum…

Geoffrey: Synchronization or something.

Josh: But it’s a lot of extra complexity that you don’t necessarily need.

Geoffrey: Yeah.

Josh: So it’s up to the user.

Geoffrey: OK. Because every situation is going to be different.

Josh: Yeah.

Geoffrey: Pastie, also. That was just kind of a fun thing you did. And then now it’s one of the TextMate bundles. Either he uses your server instance of Pastie, or he installed his own…

Josh: Oh, no. The domain name goes back to the pastie.caboo.se.

Geoffrey: It’s all one place. There’s only one.

Josh: But the DNS doesn’t resolve very quickly. Allan, author of TextMate, was bugging me about it one day. And I was like, “Create your own alias to my actual dot-com.” Which if you go to DNS, you can get all these names. So he just created an alias that would pop up quicker, for TextMate users. You asked me something else about Pastie, but I forgot what you asked.

[laughter]

Geoffrey: So what else are you working on right now? Commercial or non.

Josh: Well, there’s a social school network, it’s eduvo.com. Technically, we’ve launched. I don’t know that there’s a lot of schools signed up for the system right now, but it’s something cool. I know everyone’s done a social network, but this is also something for like a college level.

Teachers can sign in, and they can get classes. And then you have a grade book; you can track your students’ attendance. So there’s a lot of more value-added features. It’s not just all your friends hooking up, like on Facebook. It’s more of, the school gets into the community, and there might be school events or that kind of stuff too.

Geoffrey: Good to hear. Well, thanks for the chat.

Josh: Yeah, thanks.

[audio cuts]

Geoffrey: So last night, keynotes were by Ze Frank and Avi Bryant. And while they were quite good, there wasn’t a lot of Ruby discussed. And here, I’m with Adam Keys, who’s trying to fill that void with some new terminology.

Adam Keys: Yeah, exactly. Way down in Dallas, in the Dallas Ruby Brigade, we believe that monkey-patching, while it’s served us well, the time has come for some new terminology there. So while you have duck-typing in Ruby, we believe that monkey-patching should become duck-punching.

Geoffrey: Unroll that for us, exactly. Duck-punching. So this isn’t hurting any animals?

Adam: No, no.

Geoffrey: But the logo would encourage…

Adam: [laughs] The proposed logo does imply harming animals, which is really kind of not cool. In the sake of comedy and cartoon violence. It’s cartoon violence, that’s the important part.

Geoffrey: Now, you went to PyCon a couple months ago. And it’s well-known that in the Python world, they frown on monkey-patching. Do you think they would think more positively of duck-punching?

Adam: No, I think they will continue to look down on us, no matter how awesome and hilarious we become.

Voice In Background: Isn’t that the truth.

Geoffrey: I also have Patrick Ewing. Is this a good idea, and will it catch on?

Patrick Ewing: Well, I was just totally sold by Adam, the idea being that if it walks like a duck and talks like a duck, it’s a duck, right? So if this duck is not giving you the noise that you want, you’ve got to just punch that duck until it returns what you expect.

Geoffrey: [laughs] That’s profound. You even came up with a noise that would go along with this.

Patrick: Adam, could you punch me?

[laughters]

Adam: [laughing] This isn’t Patrick Ewing-punching though.

Patrick: Quack!

[laughter]

Geoffrey: Thank you, gentlemen, with a little help from Amy Hoy with the punching.

[laughter]

[audio cuts]

Geoffrey: So, after hours here at RailsConf, talking to Rand Fitzpatrick. You were part of the original 50 to use Hackety Hack. What was that like?

Rand Fitzpatrick: I enjoyed every minute of it. It was kind of buggy at first, but Why knocked out some of the bugs pretty quickly. It went through a ton of revisions. The lessons kept on coming. I was teaching my fiancee how to actually program, using it. So I had a challenging audience, but she was appreciative at the end.

He keeps pushing out a lot new content, and he’s working on a whole bunch of new distribution methods. It’s going to be fun seeing what happens in the next couple months. The development process was really good. He has hidden a lot of tools within the framework and made it really easy to use, so he can push out a lot of content that’ll be really appreciated by kids.

It primarily is an educational tool. In the near future, it should be able to make blogs within five lines of code. It worked pretty stably, to do that already. As soon as it gets a couple more days of development, I think it’ll be really locked down.

[audio cuts]

Geoffrey: I also recorded a few sessions at RejectConf. You can find that on the secret, uncut, raw reels podcast feed. I’ll link to it off podcast.rubyonrails.org. Intro music on the accordion by Joey DeVilla. Sponsored by PeepCode Screencasts. Equipment by Samson Audio.

Supported by

Railsmachine