FiveRuns Blog

On Rails production performance and monitoring

Posts by Section
TakeFive

Rails TakeFive: Five Questions with James Cox and Todd Barr

May 12, 2008

In this week’s Rails TakeFive, we’ll take a slight departure and offer up a podcast interview with James Cox, founder of smokeclouds, a UK-based Ruby on Rails and scalability consultancy and contributing editor to InfoQ and Todd Barr, VP Business Development at FiveRuns. In this podcast, James and Todd discuss some of the challenges with working with Rails, talk about some of the missing pieces, and draw upon their experiences with open source projects to opine on the future of Ruby on Rails development.

Rails TakeFive with James Cox and Todd Barr

James Cox is the founder of smokeclouds, a UK-based Ruby/Rails and scalability consultancy. He focuses on the architecture and usability of web applications. He has wide-ranging experience diving into legacy code, helping small sites bloom into big trees and generally trying to stay out of the way. Lately, James has been focusing on getting to grips with best-practice techniques with performance testing and trying to define the right ways to know if an app can grow.

Todd Barr joined FiveRuns as VP of Business Development from Red Hat, where he built and grew the partnership and certification programs for ISVs, achieving over 1000 certified applications for Red Hat Enterprise Linux in the first two years. In his most recent role, Todd’s team was responsible for building Red Hat’s global go-to-market campaigns, along with channel and partner marketing. Previously, Todd was with the corporate venture capital group at Dell and was an early sales and marketing employee at CitySearch.com (now part of IAC). Todd blogs about open source, marketing strategy and closed-loop marketing at marketingfree.typepad.com.

Rails TakeFive: Five Questions with Xavier Noria

May 02, 2008

We spread our wings again this week and head to Barcelona for a Rails TakeFive interview with Xavier Noria, noted author, lecturer, co-founder/CTO of ASPGems, and one of the most significant members of the dynamic languages community in Spain.

FiveRuns: Welcome Xavier, and thanks for taking the time from your busy schedule to share your thoughts about Ruby on Rails. To start, what was your first “ah-ha” moment with Ruby on Rails and when did you know that the framework was a good fit for you?

Xavier Noria: Writers say the first sentence of a book is the most important one. It delivers a promise, a first impression, it creates expectations.

For me David’s screencast was a first sentence like that. The point of the screencast was not scaffolding, any developer knew that part of the demo was just automated code generation, the point was details here and there that were interesting enough to suspect there was something into it.

By then I was working in a Java-based software company, though I had already been around dynamic languages for a few years in my spare time. We talked about Rails with Madrid-based enterpreneur Agustín Cuenca and he thought it was worth giving it a try as well. So we got a project, an application to manage salesmen commissions for Svenson. That was 2005.

I did an immersion, working hard alone and reading AWDwR from cover to cover along the way. And once I was able to see the whole picture I knew for certain Rails was, indeed, a breakthrough in web development: best-practices came built into the framework, the application was trivially well-structured, zero configuration, transparent persistence, LOCs and timeframes were amazing and delivered with quality, the application source code was beautiful, we could easily adapt to project changes… we got a list of clear benefits validated by our own experience.

The proof of concept was so good that I quit my job and founded ASPgems with Agustín and other partners.

FiveRuns: Tell us a little about the Rails community in Spain. What you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Xavier Noria: Juanjo Bazán talked in a previous interview about the Spanish community as a whole.

More closely, there are several companies working in Rails in Catalonia, such as Moterus, Tractis, Linqia, Railes.net, we ourselves ASPgems (we are distributed, some over here in Barcelona, Madrid, Valencia, and Logroño), as well as freelancers like Simon Moore, or Francesc Esplugas to mention just a few of them. Quite healthy and growing.

In Barcelona we knew each other through, you know, mailing lists, dinners, conferences and such, but now there’s a Rails user group. We have a monthly meeting at Linqia where we get together, chat, and have a talk or two. Good stuff.

We are working on Barcelona’s candidacy for the forthcoming Euruko 2009 with the aid of people from all over the country.

FiveRuns: Best of luck on that. Barcelona is amazing in the Spring. Let’s switch gears a little and talk about projects. What is the coolest and/or most innovative Rails project that you have seen in recent memory?

Xavier Noria: There are tons of modern websites built on Rails. As of this writing take for example Github or fire eagle as recent and relevant work.

In a more pragmatic view I think doc-rails is an excellent proposal for agilizing the maintenance of the documentation. That’s crucial in my view because, you know, everyone checks http://api.rubyonrails.org. I go there everyday! And everyone tries to understand the source code.

The current published and internal documentation are useful but need some love, ranging from better coverage to consistent typography and style. Now if you are motivated and qualified to work on it you have a more efficient way to contribute than regular patches. Please check Pratik’s original announcement if you are interested.

And as for companies, Obie’s Hashrocket is certainly something innovative. I wouldn’t call it recent in Rails-time, but well recent enough :-). The idea behind the company is brave and original. I wish Hashrocket the best.

FiveRuns: In his RubyConf 2007 Keynote presentation Matz stated that “The suits people are surrounding us” – is this increasingly the case with the community, and what does this mean for the future of Ruby?

Xavier Noria: Ruby is an open source project driven by its community, and Matz is its creator and language designer. That’s what matters to me.

I love to see suits around, the same way I love to see alternative interpreters, better libraries, new web frameworks, positive book trends, etc. It means Ruby is getting mainstream as a dynamic language. I don’t really care about the popularity of the tool I like, but a richer ecosystem is a good thing, so that’s welcome.

FiveRuns: Do you have any secret techniques, tools, or other Jedi strategies that you can share with our readers?

Xavier Noria: Be passionate about what you do. That’s the real driver. If that holds everything follows.

Well, being passionate is not something you can develop for any given topic, so I’ll say it the other way around: try to work on something you are passionate about.

Now, if your choice is programming in Rails, read books, follow blogs, watch screencasts, everything. Rails is big and evolves at a fast pace, try to keep up-to-date as much as possible. Contribute to the community, help people who are learning, share tips, share code, share experience, learn from other’s work. Read Rails source code.

I think programming is like any other area in life where you need to study and practice such as in playing tennis, chess, pool, piano, whatever. Study and practice. Try to be as proficient as possible in Ruby, JavaScript, CSS, HTTP, everything relevant to what you do. Read their musts. Master your tools technically, and use them to internalize them.

Learn other programming languages, other frameworks, other paradigms. You can’t be an expert at everything but it will give you a healthy perspective.

Be ready to look at your work from the user’s view, no matter if she is the end-user of a website or a developer using your library. Put yourself in their shoes. Forget how clever your program design is, forget the cool trick you figured out to be able to provide that feature. It’s not about you or your code, it’s about the user.

Xavier Noria studied math, worked as a proof-reader of math textbooks for six years and then switched to the software industry. He joined the R&D department of iSOCO and has loved dynamic languages since he read the Llama book in 2000. Xavier is a CPAN author and president of Barcelona.pm. He teaches dynamic languages at the University of Barcelona as a part-time lecturer. Xavier co-founded Rails software company ASPgems in 2006. He has contributed some humble bits to Rails, is a committer in doc-rails, and author of the plugin model_auto_completer.

Rails TakeFive: Five Questions with Michael Slater

April 25, 2008

Welcome to this week’s Rails TakeFive interview, our continuing effort to bring together Ruby and Rails aficionados from throughout our community to share their thoughts on all things RoR. This week, we’re happy to be talking to Michael Slater of BuildingWebApps.com. A project of Collective Knowledge Works, Inc., BuildingWebApps.com creates platforms for organizing and sharing the knowledge of a community. The first community upon which they have focused is their own: Ruby on Rails developers.

FiveRuns: Welcome Michael, and thanks for taking the time to join us. Let’s start by talking about your introduction to Ruby on Rails. What was your first “ah-ha” moment with Rails and when did you know that the framework was a good fit for you?

Michael Slater: I was leading a research group at Adobe in mid-2006, working on a variety of photo management and sharing projects. The developers I was working with were experienced Java folks, and they began talking about how much more productive they could be with Rails. That got my attention, and we started a Rails project. Unfortunately, it was not a good fit for Adobe’s conservative mindset, and neither was I. I ended up leaving Adobe to dive into Rails myself, and went back to coding after 15 years in management. It was a lot of fun. Rails was a perfect fit for my desires as an independent developer.

A few months later, one of my Adobe colleagues, Christopher Haupt, also left, and the two of us founded Collective Knowledge Works, Inc. We’re building a new platform for building web sites that are focused on serving a community of people with a specific interest. It’s a combination of content management and community, with some extra twists. Ruby on Rails has been a perfect fit for our needs; it enables us to build and iterate quickly.

FiveRuns: So in your work at Collective Knowledge Works, you have been exposed to a pretty wide range of Ruby on Rails developers. What would you say is the coolest and/or most innovative Rails project that you have seen in recent memory?

Michael Slater: I think MicroPlace is pretty exciting. It enables anyone to support small businesses in the third world in an efficient way. This is a really interesting way for us to use some of our western affluence to help others who live in much more difficult circumstances but share our entrepreneurial spirit. It’s very nicely designed, and it’s also interesting that it’s owned by eBay. So it’s an example of Rails getting some traction at one of the largest “old” web companies.

FiveRuns: Where do you go for Rails-related news and insight? Any particular website, blogs, forums, etc. that are of particular value?

Michael Slater: If I can be forgiven a little bit of self-promotion, the resource I use the most is our own site, www.BuildingWebApps.com. This is built on our Collective Knowledge platform; we’re using it both to give back to the community, and to provide a proving ground and exploration vehicle for our technology. We aggregate the best content from all around the web, as well as publishing our own original articles, podcasts, and screencasts.

There’s a lot of great blogs in the Ruby and Rails world, and I read a lot of them. Part of our goal at BuildingWebApps.com is to tag and rate the posts from these blogs, to provide a more organized, central resource. I like Peter Cooper’s rubyinside.com for general Ruby information. For Rails, I always enjoy Jamis Buck and Michael Koziarski’s writing at therailsway.com. Other blogs I get a lot of value from include Jay Field’s blog.jayfields.com and Josh Susser’s blog.hasmanythrough.com. The Rails Forum site is also a great resource.

FiveRuns: Is Rails still waiting for its killer app, or are we already there with Basecamp, Highrise, Twitter, Hulu, Revolution Health, and of course BuildingWebApps.com?

Michael Slater: I don’t think the killer app concept really applies here. We don’t need a killer app to drive adoption of the platform—there’s thousands of smaller apps that prove the value of Rails.

That said, it would be helpful to have a “big hit” that was built in Rails, something that was one of the ten or twenty highest-traffic web sites. The lack of such a site is one thing that feeds the skeptics and gives pause to some companies considering Rails for projects that they dream of reaching these kinds of volumes. It’s not so much a killer app that we need as much as a proof of Rails’ ability to scale to very high traffic levels. I have no doubt it will happen; it’s just a matter of time.

FiveRuns: There was a great article recently on the Rails community in Austin and the Austin on Rails user group specifically. Are you part of a local user group? Tell us about your local community, what you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Michael Slater: I live in Sebastopol, an hour north of San Francisco in beautiful Sonoma County, and creating a developer community up here has been challenging. I ran the North Bay Ruby User’s Group for a year, and it’s been hard to get enough attendees; we haven’t quite been able to reach critical mass. Our big local tech center is the headquarters of O’Reilly Media, and they’re almost entirely a Perl and Python shop. But I have met a couple of great people through that group.

Occasionally I make it down to the San Francisco Ruby User’s Group, and I’ve found it to be fun and useful. That group is large and vibrant, with most meetings hitting the limit of the meeting space. It’s great to see what other people are building, hear some war stories, and swap ideas. It’s also nice to meet people in person who I’ve met via email, or whose blogs I’ve been reading.

Michael Slater is President of Collective Knowledge Works, Inc. He is an entrepreneur and software developer with 30 years of experience creating innovative products. In addition to developing and managing BuildingWebApps.com, he operates BoatingSF.com, a resource for boating on San Francisco Bay.

Michael was previously Director of Technology Strategy at Adobe Systems. He joined Adobe when it acquired Fotiva, a venture-funded startup he cofounded to create a better user experience for consumers moving to digital photography. Fotiva created one of the first tagging-based products for organizing photos. Prior to Fotiva, he was President of MicroDesign Resources, where he created the Microprocessor Report newsletter and the Microprocessor Forum conference. From 1987 through 2000, he published hundreds of articles on computer technology and presented dozens of seminars and conference keynotes. Michael began his career as an R&D engineer at Hewlett-Packard and was an independent engineering consultant from 1980 through 1987.

Michael is the author of several books, including Organize Your Photos with Photoshop Elements 3.0, The Photoshop Album 2.0 Book, RISC Microprocessors, and Microprocessor-Based Design.

Rails TakeFive: Five Questions with Scott Diedrick

April 18, 2008

In this week’s Rails TakeFive interview, we bring it back to Austin and welcome Scott Diedrick, Director of Development for Mumboe.

Mumboe is an Austin, Texas-based provider of web applications that help companies track and manage documented business agreements such as sales contracts, NDAs, leases, purchasing contracts and employment agreements. Launched on March 17th, 2008 at the Under the Radar Conference, Mumboe’s Rails-based application is attracting attention from leading tech industry blogs and publications such as TechCrunch, Webware and PC World as an easy to use, affordable alternative to enterprise contract management systems. Recently, Mumboe chose FiveRuns to manage its Rails application framework.

FiveRuns: Welcome Scott, and thanks for taking the time from your busy schedule to share your thoughts on Ruby on Rails with our readers. To start, what was your first “ah-ha” moment with Ruby on Rails and when did you know that the framework was a good fit for you?

Scott Diedrick: Early in our company’s evolution, we had a large legacy PHP project that was built on a homegrown framework. We had out grown that framework and looked to moving to a framework with a more complete feature set and that had a large community to support it. We chose two PHP frameworks and Rails to evaluate. We broke into three teams, each porting a portion of our project to a target framework in 1 week. After the week was up the only team that had completed all their port tasks was the Rails team. The elegance of the Ruby language, combined with the baked-in MVC goodness of Rails, made a port from PHP to Rails easier then just a port from one PHP framework to another. The developers found it a joy to work with and we quickly started to port our application over to Rails.

FiveRuns: Where do you go for Rails-related news and insight – any particular website, blogs, forums, etc. that are of particular value?

Scott Diedrick: When first starting out in Rails, I found Railscasts and The Rails Way were a great addition to the Agile Web Development book. People new to Rails should also browse the source code and the RDoc when using new features. Nothing is better for learning the Rails style, Ruby language features, and how things interact in the framework. I also listen to the Rails Envy podcast. It is short and the show notes are a great digest of some of the latest Rails news, projects and plugins. I also subscribe to Riding Rails and Ryan’s Scraps. And since so much good Rails advice and information is in blog posts, never underestimate Google and browsing the del.icio.us rails tag for links.

FiveRuns: Is Rails still waiting for its killer app, or are we already there with Basecamp, Highrise, Twitter, Hulu, Revolution Health, and of course, Mumboe?

Scott Diedrick: I think the fact that we have so many deployed and successful Rails applications negates the need for a single killer app. Most web developers see that Rails can be used to deploy real applications, and have bought into the design philosophy behind Rails. You can see this in all the frameworks that mimic the Rails design coming out for other languages. The people left to convince are in the enterprise world. Can Rails be deployed on an internal enterprise network and interact with your ERP and CRM systems? Can the IT department manage it along side EJB applications? I think more success stories of companies deploying apps in these behind the firewall environments is what we need.

FiveRuns: In addition to the success stories, what else needs to happen in the Rails ecosystem in order for it to gain wider adoption in more mainstream businesses? Is wider adoption of Rails a good thing?

Scott Diedrick: The community needs to focus on better documentation, and coalesce efforts around a few sites to document best practices and catalog all the great plug-ins that exist. If you are new to the framework, the best place for documentation is still Agile Web Development with Rails. And Google is still the best way to find Rails plugins and Ruby gems. But which is better, act_as_attachment, attachment_fu, paperclip? And the documentation for gems and plugins is uneven at best. Most have an announcement blog post and that is about it. You just hope they have good Rdoc. Another example – look at best practices for time zone support. Documentation for this is scattered across 3 or 4 blog posts and 1 wiki page. This will frustrate new users who came to Rails because “It Just works”.

To grab enterprise developers we need better support for deploying into their environment. This means, among other things:

  • Better support for SOAP and ESB technologies
  • Support for Java environments. JRuby handles this
  • Better support for deploying to Windows. This doesn’t just mean deploying on IIS, but also for integrating into Microsoft’s technology stack. Maybe IronRuby and working with .Net is the answer for this.

FiveRuns: There’s a lot of buzz about Cloud computing, specifically around Amazon’s Web Services. What are the issues with this approach versus a virtual dedicated hosting approach?

Scott Diedrick: Most web applications are written now assuming the three tiers (web servers, application servers and database servers) are all hosted together, and that the developers will have tight control over the server and its software. Cloud-based hosting can change many of these assumptions. Most people don’t think about latency between the db server and the app server, but in cloud computing it could be a problem. So there are architectural changes that need to be made inside the application to use things like S3 and EC2.

Companies like Mumboe that have already deployed applications will start out by moving portions of their application to cloud services. We just changed our file storage to S3. We also use services from OpSource to handle all of our billing and credit card processing. Not to mention using FiveRuns for monitoring. None of these services yet replace an entire tier we are hosting the traditional way, but it is a transition.

You also need new management tools. Shared hosting is purchasing servers by the month, but in the cloud you can buy CPU time as you need it. This means that you need tools to automatically start, stop and monitor your app servers. Most cloud computing services are still not appropriate for hosting your database server. So if I already have to host my database server, why not also host the app servers with the same service?

Maybe the hybrid approach others have suggested is a good starting point: host your static web content on something like S3, use dedicated hosting for your base application servers and database servers, and use a cloud computing service like EC2 for on-demand extra capacity.

FiveRuns: Charles Nutter recently said that “not liking JRuby because it is written in Java is like not liking Ruby because it is written in C.” That objection put aside, what is the single greatest challenge for JRuby going forward?

Scott Diedrick: First, I would never underestimate the cultural pressure in the Rails community to reject all things Java. There is a story line in the creation myth of the Rails framework that it was a rejection of many EJB practices. People look at deploying to a Java app server as a step backwards, like they are surrendering to the old enterprise development world.

Developers have also coded their applications with the idea of deploying them on Mongrel. It will take a lot to convince them to port the application to work with JRuby. For example, our application uses a few Ruby libraries like libxml-ruby. We would have to port that code to use pure Ruby, or make calls to Java classes. Do we make the commitment to JRuby and port our code? Do we support both deployment methods and take on all the extra coding and testing needed to be agnostic? For mature apps, the benefits of JRuby probably won’t out weigh the costs for now. But it is great for people just starting, or people that need to integrate with Java classes or deploy into a Java heavy enterprise environment.

Scott Diedrick is Director of Product Development and a founding member of Mumboe. He oversees the team responsible for developing the Mumboe application and user interface. Previously, he was a lead programmer at Synthesys Technologies, Inc. and developed the web client and backend server for a large scale patient data repository. Scott was also a member of the Synthesys Technologies custom applications team where he specialized in both adapting Synthesys products to solve individual client problems and developing software for the exchange of documents and data between vendor products at client institutions. Before that, he was a founding employee at Coral Technologies, Inc., where he helped develop a Java-based distributed computing framework allowing large scale corporations to leverage their unused computing power. Scott graduated from the University of Texas in Austin with a Bachelors of Science in Computer Science (1998).

Rails TakeFive: Five Questions with Juanjo Bazán

April 11, 2008

In this week’s FiveRuns Rails TakeFive interview, we keep our global theme going, this time moving to Spain. Juanjo Bazán is a noted freelance software consultant, speaker, and university professor based in Madrid. He discovered Ruby a couple of years ago coming from the Java world, and since then he’s being working fulltime with Rails in Spain and with startups in Europe. Additionally, he helps organize the annual Spanish Ruby and Rails Conference and is a co-founder of the Madrid Ruby User Group.

FiveRuns: Welcome Juanjo. Let’s start by talking about where you go for Rails-related news and insight – any particular website, blogs, forums, etc. that are of particular value?

Juanjo Bazán: I try to stay updated with changes on Rails Edge so apart from the rails-core list, I find really helpful blogs like Ryan’s Scraps and Redemption in a blog.

For more general Ruby/Rails news, I use sites like Ruby Inside or the more noisy but also useful planets like Ruby Corner among others. I also check often both PeepCode and Railscasts for nice tutorials.

Last but not least a great programming-related Spanish blog: Putting it together, and its twitter brother Bit by bit.

FiveRuns: Is Rails still waiting for its killer app, or are we already there with Basecamp, Highrise, Twitter, Hulu, Revolution Health, etc.?

Juanjo Bazán: Actually I’d say Rails was the killer app for Ruby, and now I see Rails being so widely used that I don’t really think Rails needs or is waiting for a killer app. Projects like Twitter or Github are great, cool, popular and prove the potential of Rails.

Maybe the killer-app effect will come from the deployment side, and although it is not properly a Rails project, I would mention Passenger, the mod_rails developed by Phusion. Deployment is one of the facets of Rails with biggest room for improvement and one of the key issues that really helps to the adoption of Rails.

If Passenger results in the robust and ultra-simple way of deploying it promises, I think we could see an exponential increment of hosting providers offering Rails. That would be great for everyone.

FiveRuns: There was a great article recently on the Rails community in Austin and the Austin on Rails user group specifically. Tell us a little about the Spanish Ruby on Rails community, what you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Juanjo Bazán: In Spain there is a big and active Rails community. I think we have a nice environment of startups, freelancers and companies working exclusively with Ruby on Rails and that helps to the creation of groups in cities like Madrid, Barcelona, Girona and Seville, to name a few.

I’m part of the organization of the Spanish Rails Conference, a friendly annual community-based meeting where about 300 developers join in Madrid for a couple of days to learn from each other. So the main challenge probably is to continue growing numbers while trying to keep the open community spirit.

Another natural step would be to interact some more with other European Ruby/Rails communities. Currently we are trying to organize and host the next European Ruby Conference in Barcelona.

FiveRuns: What is the best Ruby and/or Rails book that you have read recently?

Juanjo Bazán: I just got a copy of O’Reilly’s The Ruby Programming Language by D. Flanagan and Matz. It’s a great book both for programmers discovering Ruby and for more experienced Ruby programmers. I’m finding it really complete and educational.

Regarding books more focused on Rails, I would recommend Obie Fernandez’s The Rails Way. It is a great book to have near your computer when you’re working. Also, Ruby for Rails by David Black is a nice Ruby book for Rails-oriented developers.

FiveRuns: Charles Nutter recently said that “Not liking JRuby because it is written in Java is like not liking Ruby because it is written in C.” That objection put aside, what is the single greatest challenge for JRuby going forward? Peter Cooper has suggested that Ruby’s only real downside is its lethargic start-up time compared to MRI, do you agree?

Juanjo Bazán: The JRuby team is doing a great job (I’ve just see them presenting the last version at the Euruko in Prague a couple of weeks ago and I enjoyed seeing things like easy use of Swing Java classes from Ruby), and I think their biggest challenge is simply staying at that level. As long as they keep pace with the current Ruby versions and make any Rails app easily deployable, JRuby will continue going forward.

Every new version is much faster than the previous one, but I don’t think the main goal of JRuby is to compete in speed with other Ruby implementations. I prefer to see JRuby as a great way to deploy Ruby applications on enterprise environments. Java is already there and structural changes are often rejected, so the JVM is a good backdoor. Being able to use Java inside Ruby classes is very useful to code Ruby modules for existing Java apps. And of course, it is a nice way to expose Java programmers to Ruby code and attract them to Ruby/Rails.

Juanjo Bazán is a freelance software consultant and a university professor based in Madrid, Spain. He discovered Ruby a couple of years ago coming from the Java world, and since then he’s being working fulltime with rails for different spanish companies like Cafelink or ASPGems while being involved in different european Rails-based startups like Tractis or Palabea. He holds a MS in Computer Science and is finishing a PhD in Computational Astrophysics. In addition to being a Rails developer, contributor and speaker he is member of the organization of the annual Spanish Ruby and Rails Conference and co-founder of the Madrid Ruby User Group. As soon as he has something interesting to say, he promises to restart his blog.

Rails TakeFive: Five Questions with Fabio Akita

April 04, 2008

Welcome to the latest in the FiveRuns Rails TakeFive interview series. This week we’re happy to be joined by Fabio Akita, a noted Ruby on Rails developer, speaker, author, and Brazilian Rails team lead for Surgeworks LLC.

FiveRuns: Welcome, Fabio. To get started, what is the coolest and/or most innovative Rails project that you have seen in recent memory?

Fabio Akita: Github, by far. There are so many great projects done in Rails that it’s difficult to pick just one, but I think Github has the potential to bring the best of the Ruby platform: its community. Unfortunately, the Github code is privately held, but it is mostly written in Rails, with some Merb and other technologies. It leverages on the powerful Git set of tools to bring the first ‘social networking for coders’.

I would love to see the Rails Core moving to Github or any other Git based platform because it makes our lives so much easier. That way we can easily fork, create our own branches of change, and still stay up to date with the master repository. Github makes this process even cleaner and easier. Git stands for SCM the way Rails stands for agile web development.

Updated answer: on April, 1st, FiveRuns kindly invited me to participate in an interview, which I promptly answered in the same day. I responded exactly as you can read in the above paragraph. But given the big news on the day after (!) I want to reiterate that I am very happy to see what I have desired actually happened so soon! Congratulations for the Rails Core Team for their swift move and I do think this will ensure the future development pace of Rails. So, yet again, I think many will concur that Github is hot.

FiveRuns: Let’s talk about Merb – their official language is all about being agnostic—ORM-agnostic, JavaScript library agnostic, and template language agnostic – what does this mean? And what does it mean to be “thread-safe”? Is there promise in implementing Merb alongside of Rails, say, for processing?

Fabio Akita: Yes and no. Ezra is a clever guy, no one should ignore what he says. For one, he has the experience of running a real hosting center, Engine Yard. This knowledge alone should speak for itself, specifically given Engine Yard’s remarkable reputation. Another thing that some people probably misunderstand: Ezra is not a Highlander. I do not think he believes that Merb should replace Rails. “There should be only one …”, not.

That said, I haven’t tried Merb just yet. I see a lot of value in actions that do not require the full Rails stack. The original use for Merb was as an uploader handler, something that Rails did poorly (and was fixed by Zed’s clever approach to Mongrel handling File uploads).

There are several places that Rails is lagging behind Merb. For example, its support for Rack. But given the current state of the MRI, I don’t think thread-safety is that important right now. I mean, both MRI 1.8 and YARV 1.9 have contention problems. For instance, YARV uses native threads but it has that big GIL that prevents it from running threads in parallel for real. This makes thread-safe less important in the Ruby world. So, thread-safe frameworks, by themselves, don’t leverage too much performance just because of that. Right now Merb is faster than Rails. But that’s because it loads much less libraries than Rails. You can customize it in a way that only the exact pieces that you need will be in memory at runtime. Rails projects assume loading everything.

But its higher coupling and overhead comes with additional benefits: a Rails developer can easily switch between Rails projects and know where to look. Flexible frameworks allow us higher customizations at the cost of maintainability. I am not saying that Merb is not maintainable. So far, I think it is doing a good job keeping itself balanced between enough power and enough ease of use. Rails has superior ease of use at the cost of more overhead and less customizations. It’s a choice that we can make. I would just remember that Java frameworks always prioritized customization over ease of use, and that’s why Rails became so famous so fast. Too much customization would mean going back to the problem.

Finally, yes, I do believe in using Merb and Rails alongside one another. Github, along with many other Web sites, do the same. If both use ActiveRecord for ORM, they can even share the same models at some level. And there are other promising frameworks as Sinatra, Ramaze, Nitro and others that are also very good, each with their own strengths and weaknesses. Competition is a good thing to have.

FiveRuns: What is the best Ruby and/or Rails book that you have read recently?

Fabio Akita: My all time favorite is The Ruby Way. Hal Fulton did a tremendous job with this book and it was the one that taught me the many Rubyisms and, as the title says, the Ruby way of doing programming. I recommend it before any other.

FiveRuns: Amazon + Rails seems to be a prevalent choice right now, especially looking way back to the first instance we can recall, unspun.amazon.com in 2006, and seeing how far we have come. Can you talk a little bit about the benefits and challenges here? For example, best practices around programmatic access and the Ruby/Amazon language library? What about S3 on Rails and bucket issues?

Fabio Akita: The startup doing more aggressive solutions on Amazon technology is probably Heroku right now. Cloud computing seems to be the new buzz. So, everything in the cloud, as a service, seems to be the new way of doing business. Dynamic scaling, infinite resources and storage, shorter offline times. Amazon is definitely leading the way with EC3, S3 and now SimpleDB. Though, deploying Web apps over EC2 is a challenge because of its dynamic nature: a slice is not guaranteed to stay there permanently, it goes down. People have to scratch their heads hard in order to come up with a good architecture for this new model.

There is a lot of room for improvement here, there are not enough teams developing easy to use solutions and I think this is a growing market with a lot of potential. Solutions like Heroku’s are promising. I wouldn’t recommend a novice Rails programmer to look at Amazon’s solutions just yet. The tools are still not there for them. We need higher abstractions around these services for them to become really mainstream.

FiveRuns: Dr. Wayne Kelly of Ruby.Net recently conceded that IronRuby was more likely to succeed than Ruby.Net, and he’s now pulled back on the project. Will IronRuby succeed as a production quality implementation of Ruby on the .NET platform? Is DLR here to stay?

Fabio Akita: Yes, I think so. John Lam is another amazing engineer and he was able to do great stuff over at Microsoft. It is even more difficult for him, given the tighter leash of Microsoft policies in comparison to what Charles has over at Sun. But he made the right decision of using the DLR up front. The DLR was originally made to be a general layer for any dynamic language to run over the CLR, but its original design assumed that every dynamic language would resemble Python. John helped the DLR improve and evolve a lot, and it is much better because of that.

IronRuby is still way behind JRuby but it has the potential of filling another big gap: Ruby has little support over at Windows land. I don’t think IronRuby will be primarily used as an MRI replacement in Windows, but it has the potential of leveraging Ruby technology into the .NET stack which is good for future programmers that one day decide to switch over to Linux/Mac development and find a familiar platform to program with. Of course, you gain .NET interoperability for free which is equally important. But I don’t see as many C# programmers migrating to Ruby as there are Java developers doing so. That’s because of the nature of the business C# technology is on. Innovation and elegance are not their top priorities. That said, yes, thanks to IronRuby the improved DLR is here to stay.

Fabio Akita is a former senior Java/SAP consultant and PMI project manager who published the first Rails book in Portuguese for the Brazilian audience, Repensando a Web com Rails, back in 2006. He’s been helping improve the growth of the Brazilian Ruby and Rails community through local events, keynotes, learning material, and his blog. He is working full time with Rails as an offshore outsourced programmer for Surgeworks LLC, a Utah based consulting firm, since mid-2007.

Rails TakeFive: Five Questions with Satish Talim

March 28, 2008

In this week’s Rails TakeFive, we are happy to welcome from Pune, India, Satish Talim of rubylearning.com.

FiveRuns: Welcome, Satish, and thanks for joining us to share your thoughts on Ruby on Rails. What was your first “ah-ha” moment with Ruby and/or Rails and when did you know that the framework was a good fit for you?

Satish Talim: I have been using Java since 1995 for all my software development work and my interest in Ruby was aroused after I read an article, Ruby the Rival in November 2005. I started learning Ruby myself and created my own site RubyLearning.com to help others like me to quickly get a handle on Ruby. I saw a great opportunity for local software companies in using Ruby / Rails and to help promote the language, I created the PuneRuby user group which now has over 500 members. With time, I have had the pleasure of interacting with some great Ruby / Rails minds like David Heinemeier Hansson, Bruce Tate and many more.

FiveRuns: Where do you go for Rails-related news and insight – any particular website, blogs, forums, etc. that are of particular value?

Satish Talim: I use / read:

FiveRuns: Let’s talk about Rubinius – what do you see as the major advantage here, even though we’re obviously in the early stages?

Satish Talim: Rubinius is a new implementation of Ruby done in a Smalltalk style with a small core VM written in C and almost everything else written in Ruby. At this point it’s still slow and incomplete, but it’s maturing fast. Engine Yard is investing heavily in Rubinius and this would encourage the development of tools and libraries that will benefit the rest of the community. Rubinius is going to open up core Ruby hacking to the masses, and I agree with Pat Eyler here that, it would result in more people hacking on the system and trying out new ideas. As some of these ideas prove themselves, I see them being adopted into Ruby.

FiveRuns: There was a great article recently on the Rails community in Austin and the Austin on Rails user group specifically. Are you part of a local user group? Tell us about your local community, what you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Satish Talim: I started the PuneRuby user group in 2005 to promote the understanding, usage and adoption of Ruby / Rails locally. With time, the user group now has over 500 members. Most of the discussions between the members is via the Yahoo user group site, though we do try and meet at least once a month. Going ahead, the group needs to involve themselves in some of the many projects on RubyForge – projects that need contributions (mostly development work) from more people. With so many members with PuneRuby, we could adopt some of the RubyForge projects.

FiveRuns: What is the best Ruby and/or Rails book that you have read recently?

Satish Talim: The most recent book I read was David Flanagan and Yukihiro Matsumoto’s The Ruby Programming Language. For experienced programmers who want to look at this language in depth, this guide is invaluable.

Satish Talim, an independent software consultant who helps US based software companies, setup base in Pune, India (his home town). Among other things, he leads the PuneRuby user group, which he founded in 2005.

Rails TakeFive: Five Questions with Cliff Moon

March 21, 2008

Welcome to the latest in the FiveRuns Rails TakeFive interview series, where we pull together the best minds in the Ruby on Rails community to share their point of view on all things RoR. This week, we’re happy to have Cliff Moon, a web application developer for Powerset in San Francisco share his thoughts on Ruby on Rails.

FiveRuns: Welcome, Cliff, and thanks for joining us. Let’s talk about Merb – their official language is all about being agnostic – ORM agnostic, JavaScript library agnostic, and template language agnostic – what does this mean? And what does it mean to be “thread-safe”? Is there promise in implementing Merb alongside of Rails?

Cliff Moon: Merb is pretty great. We’ll be launching our product front end in Merb. The component agnosticism of Merb simply means that it doesn’t tightly couple with any one framework for ORM, JS, etc. In exchange for some pain getting set up, it buys you more flexibility and a smaller runtime footprint since it doesn’t throw the kitchen sink into your app.

One of the reasons we chose Merb for our front end was its ability to safely handle concurrent requests in a single mongrel. The front end is IO bound waiting for a backend service with a highly variable latency. It’s pretty much unacceptable for an entire mongrel to be out of commission waiting for a backend service. The traditional response for a Rails app is to simply increase the number of mongrels running on a host to the number of concurrent requests one expects see at peak traffic. The problem there, from a scalability perspective, is that each mongrel will have a pretty hefty memory footprint. So it means that you would have to commit more memory capacity per page served. For our app, we can serve about 5 concurrent requests from a single mongrel with Merb. The best part is that we really haven’t given up any productivity for these performance gains, at least beyond the initial hump of learning the framework.

FiveRuns: What about Rubinius – what do you see as the major advantage here, even though we’re obviously in the early stages?

Cliff Moon: Having more choices in Ruby runtimes is a very good thing. JRuby is pretty great, but we use too many C extensions for it to be a seriously consideration beyond some isolated applications. But we badly need a more stable runtime that can fully utilize the entire library of existing Ruby code. MRI has some pretty serious issues with memory management, threading, and performance in general. The memory leaks alone mean that it is unadvisable to run a Ruby daemon without some kind of supervisor like god or monit. Tom Werner, a colleague of mine, spent a good deal of time tracking down memory leaks in god only to find that the leaks were in the interpreter. It’s a good read, and it illustrates that alternatives are sorely needed. Whether or not Rubinius will catch on remains to be seen. Overall it is a good thing. The lack of a stable runtime can only hurt adoption, and Ruby is a language that deserves a runtime that doesn’t feel like a toy.

FiveRuns: There was a great article recently on the Rails community in Austin and the Austin on Rails user group specifically. Are you part of a local user group? Tell us about your local community, what you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Cliff Moon: I was a member of Philly on Rails before I moved out to San Francisco. It was pretty much my introduction to both Ruby and Rails and I met a lot of cool folks there. I still lurk on the mailing list, despite my relocation. The main challenge I see for user groups is remaining friendly and open enough for people new to Ruby and Rails while still maintaining the interest of more senior members. At a certain point, the issues you need help with get to a level of sophistication that pretty much outstrips the experience level of the group. You stop submitting questions since you know they won’t be answered, and the mailing list pretty much gets consigned to discussions about whether modules or inheritance is better.

FiveRuns: Is Rails still waiting for its killer app, or are we already there with Basecamp, Highrise, Twitter, Hulu, Revolution Health, etc.?

Cliff Moon: It’s interesting that one would even ask this question. “Killer app” traditionally refers to an application or service that is so good it drives mass adoption of a device, service, or platform. If that is the case, then I’d say that no, there really isn’t a killer app for Rails quite yet. I can, however, tell you what a killer app for Rails would look like. If one of the big social networking platforms were to tightly couple their API to Rails, then you’d see your killer app.

FiveRuns: In his RubyConf 2007 Keynote presentation Matz stated that “the suits people are surrounding us” – is this increasingly the case with the community, and what does this mean for the future of Ruby?”

Cliff Moon: I guess the idea here is that suits ruin every technology in which they take an interest. As went Java so goes Ruby and so on. I don’t buy the underlying premise; that commercial interest will ruin Ruby. First of all, suits have money. I like money. Money feeds my family and buys me beer. Suits getting interested in Ruby means there will be more money to compete for Ruby talent. That is a good thing. Will big enterprisey companies like Innitech and Innitrobe adopt Ruby and Rails? Yes, it’s already happening. Will they ruin Ruby? Only for the people working there.

What folks seem to forget here is that Ruby and Rails are both open source. If you don’t like where the projects are heading, then fork. If your fork is superior then all hail the new project. And if your employer is ruining the fun of programming in Ruby then quit. Lots of great companies are hiring.

Cliff Moon is a web application developer for Powerset in San Francisco, where he’s helping to build the next generation search engine. He’s one of the many Java refugees who hopped over the fence to Ruby. When not hacking together Ruby applications Cliff can usually be found either brewing, buying or drinking beer. If you want to hear him ramble about Ruby stuff, he’ll be giving a talk at the Philly Emerging Tech Conference coming up soon.

Rails TakeFive: Five Questions with Damon Clinkscales

March 07, 2008

This week, in conjunction with the kickoff of SXSW, the Rails TakeFive series is happy to bring you Damon Clinkscales, a software engineer at VitalSource Technologies, and leader of the Austin on Rails user group, which he co-founded in 2005. FiveRuns is proud to have partnered with Austin on Rails on several occasions, most recently on the Austin on Rails/FiveRuns SXSW Happy Hour.

FiveRuns: Welcome Damon, and thanks for sharing your thoughts. You’ve been involved with Rails for several years now. Do you have any secret techniques, tools, or other Jedi strategies that you can share with our readers?

Damon Clinkscales: There are no secrets. But, if I had to pick something, I would say that tricking out your console is critical. Set your Rails console up right by following the steps in these articles.

Another thing you should be doing is cheating. There are almost 250 cheat sheets hidden inside the Internet.


sudo gem install cheat 

For example:

  • cheat migrations – shows a bunch of migration commands
  • cheat strftime – shows all the time formatting that you can never remember
  • cheat nonsense – shows a bunch of nonsense

If you’re a TextMate user you’ll want to check out this shortcut by Ed Silva to do a cheat lookup on any word in your editor window.

You can browse all the available cheats at http://cheat.errtheblog.com/b.

FiveRuns: Where do you go for Rails-related news and insight – any particular website, blogs, forums, etc. that are of particular value?

Damon Clinkscales: If I tell you, then I’d have to kill you. Forums, FTL. But seriously, there are many good sites. A sampling of those are Err The Blog, Ruby Inside, The Buck Blogs Here, Ryan’s Scraps, and Nuby on Rails.

FiveRuns: The Rails community at large, like many open-source communities, is in our mind very much defined by its charitable work, from the recent acts_as conference Merb/Rubinius sessions, to Chad and Marcel’s yearly RailsConf testing tutorials. Is charity in many ways the glue that binds the community together? Any charitable events or initiatives that you’d like to see happen over the next year?

Damon Clinkscales: Well, I think the open source community is a giving bunch, by definition, and the Ruby/Rails community is no different. The number of code contributors in Rails itself is pretty phenomenal. Also, check out all the hot MySpace-style bit-swapping action that is going on over at GitHub. There has also been some good coming from the Ruby community that has nothing to do with tech. Last year at RailsConf, the community donated over $33k to charity during the conference. That was a pretty staggering number I thought, and it just shows what you can do when you set your mind to something and focus people’s attention on good causes.

The regional conferences, including the Lone Star Ruby Conference here in Austin, picked up on the example set by Dave Thomas/Mike Clark at the first RailsConf and held pre-conference events raising thousands of dollars for local charities.

The latest idea that I’ve heard Chad kicking around this year is to have a code drive during the conference. This sounds like a great use of conference energy/resources to me. Even better than Werewolf. ;)

In Austin On Rails, we are putting together a Rails bootcamp this year with the idea that graduates from the camp who are looking for a project to work on can be connected up with a local charity that is lacking in technical resources. The larger point is that we can apply our knowledge of technology to change the world for the better. Sometimes the solution is as simple as making a connection between those willing to share their technical skills with those who are in need. This is one way we can make a difference, year round. We should seek out non-profits that we believe in. I’m sure there are many who need our help.

FiveRuns: Is Rails still waiting for its killer app, or are we already there with Basecamp, Highrise, Twitter, Hulu, Revolution Health, etc.?

Damon Clinkscales: I guess some folks are waiting for something else to happen so that Rails can prove itself more than it already has. But, I think most of us in the Rails community just spend our time creating useful apps, experiencing the joy and productivity that comes from being a Ruby developer. We don’t tend to worry about whether Rails has proven itself because it already works for us. Sure, some apps get extremely popular and there are scaling challenges, just like anything that becomes popular. Recently, there was an interesting post about a 300 million pageview/month Facebook app called Friends For Sale written in Rails. After reading the article, I’m sure you can see that Rails doesn’t scale. :)

I think Basecamp and Twitter clearly qualify as killer web apps. From a usage perspective, they’re both phenomenally successful and fun to use. Hey, Basecamp even made a lot of money. :)

FiveRuns: There was a great article recently on the Rails community in Austin and the Austin on Rails user group specifically. Tell us about the Austin on Rails community, what you love about it, how it is grown, and what challenges the group sees ahead of itself, in both the near and long term.

Damon Clinkscales: As the leader of the Austin On Rails user group featured in the Statesman article, I can tell you that we do have a strong Rails community here in Austin. We’ve grown from our first meeting in a tiny room with 8 attendees where I presented on Rails 1.0 to around 50 enthusiastic attendees at each meeting so far in 2008. Most presentations are given by our members. We also maintain a blog, a members directory app (written by the group), a meeting calendar, a mailing list with 100+ members, and an IRC channel. We meet monthly in downtown Austin and have recently had topics such as Ruby 1.9, PostgreSQL, and git.

While we have had good support from a core group of folks, we need to get more people involved. I would like to see us collaborating on more open source projects together. Seattle.rb’s project list is a huge inspiration in this regard. A couple of our members are key contributors to important Ruby projects and we need to lead the way in getting those who are wanting to contribute set up and ready to rock and roll.

I am also concerned about the lack of qualified Rails developers to fill open positions in the Austin area. Many Austin businesses are starting to look to Rails as a development framework and we need to be there to answer their call. A monthly meeting is obviously a good thing, but I don’t think once per month is enough to effectively address this. Weekly code sessions such as Cafe Bedouins and the Rails bootcamp under development are steps we are taking towards building up an even stronger base. I think it’s important to get out and meet with other developers, even if it’s just over coffee or beer. It’s a good opportunity to build relationships, make a habit of talking about the stuff we are building, and listening and learning a thing or two from our peers.

Damon Clinkscales is a software engineer at VitalSource Technologies, a leading provider of end-to-end software solutions in the higher education digital book market. An irrepressible ideas man, he spends some of his spare time pursuing side projects in coffeehouses around Austin. His latest project is a mashup called SnapTweet which posts your latest Flickr photo to Twitter. He is also the leader of the Austin on Rails user group, which he co-founded in 2005.

Rails TakeFive: Five Questions with Ryan Garver

February 29, 2008

The week, FiveRuns welcomes Ryan Garver, CTO at ELC Technologies to the Rails TakeFive series. ELC Technologies is a software-consulting firm based in Santa Barbara, California, that has the biggest team of Ruby on Rails developers bringing new applications to global 2000 companies and startups. They are also a FiveRuns partner.

FiveRuns: Welcome Ryan. What was your first “ah-ha” moment with Ruby on Rails and when did you know that the framework was a good fit for you?

Ryan Garver: I started using Ruby on Rails after developing a decently large PHP application about three years ago. I felt like everything I had developed in PHP was custom, right down to the directory structure. It was maddening.

At the end of the project I knew there had to be a better way to develop web applications. I looked at a number of newer web frameworks including TurboGears, and Django. (I had an affinity to Python at the time.) Along the way I tried Rails. By the time I had completed the DHH screencast and built a small sample app, I was hooked. Ruby felt much more like English than programming, and at the time I was only just beginning to get a glimpse of some of the tricks the language and Rails held.

FiveRuns: In his RubyConf 2007 Keynote presentation Matz stated that “The suits people are surrounding us” – is this increasingly the case with the community, and what does this mean for the future of Ruby?

Ryan Garver: I think with any new thing in technology, if you develop a good thing, it’s only a matter of time until the suits start showing up. What we do as programmers is in high demand and very profitable. When something like Ruby and Rails comes along and undermines the current thinking on time to market and developer efficiency people will start to pay attention. I consider this a sign that we are doing something right and that the world at large is beginning to notice.

As far as how this impacts the future of Ruby, I suspect that the primary focus will remain around Rails. Ruby will feel the trickle-down effect from that community. The biggest place where I see a need for change (primarily driven by the enterprise) is Rails ease of deployment. Capistrano is great, but most big IT departments are not designed like a startup where every developer is a systems administrator and has the keys to the production machines. JRuby is doing some neat things in this department by supporting Java-based deployments, which by now have a long history in the enterprise. This strategy is very appealing to many enterprise customers, but using Ruby can restrict what Ruby libraries you have available so there is still a cost. I expect that moving deployments to something that more closely models the WAR file approach is right on the horizon. Keep you eyes on EngineYard’s mod_rubinius and the others out there trying to make this better.

FiveRuns: When is Ruby on Rails an appropriate choice for application development in the enterprise?

Ryan Garver: I think as soon as you have a web-based project on a tight deadline you should take a look at Rails. In my experience, Rails consistently outperforms other technologies in terms of time to market and longer-term maintainability.

FiveRuns: Is the Rails ecosystem missing any key tools that could make life easier for developers, and maybe expand adoption of the framework?

Ryan Garver: Deployment is the first thing that comes to mind. I give Rails a hard time on the deployment issues, but really my problem is with how it integrates with larger organizations. Rails deployment is great if it’s me and a few other guys deploying an application on a server. We start to run into problems when the developers are not intimately involved in the deployment or when the server is shared with multiple applications. It can be done, but it could be easier. As deployment is improved I see Rails really stepping into the mainstream in a big way.

FiveRuns: What do you make of Twitter’s ongoing performance woes, most recently around Macworld, the Super Bowl and the primary season? Seems like within the community it is widely recognized that Rails has nothing to do with it. But outside of the community, the perception is very different.

Ryan Garver: Whenever there is a high profile example of a failure people will hang on to it. This is doubly so in the technology community. We are a judgmental lot. This is an important part of our heritage and it allows us to deal with making big decisions about technology and methods that need to be evaluated on many different and often conflicting levels. We’re good at it. The side effect is that we tend to hang on to familiarity and notice negative features of alternatives more than positive. To me Rails’ benefits overpower the negative press by an order of magnitude at least. Twitter may be struggling with explosive growth, but at the end of the day they released and continue to be a success. It’s hard to count this as a failure of Rails.

One thing to realize is that up until and including Rails 2.0, performance was a secondary driver for the core team. The primary focus was on maintainability and efficiency as a developer. The next release of Rails is being focused much more on the performance metrics and should shut a few of the naysayers up.

Ryan Garver is CTO of ELC Technologies, a software-consulting firm based in Santa Barbara, California, that has the biggest team of Ruby on Rails developers bringing new applications to global 2000 companies and startups. He holds an MS in Computer Science from the University of California, Santa Barbara.

Rails TakeFive: Five Questions with Pat Eyler

February 22, 2008

This week, FiveRuns welcomes Pat Eyler, noted Rubyist and writer to the Rails TakeFive series.

FiveRuns: Welcome Pat, and thanks for taking the time to share your thoughts. What was your first experience with Ruby and/or Rails and how did it come about?

Pat Eyler: In late 1999 and early 2000 I’d written a couple of ~5000 line programs in Perl for a client. While I was happy with my code, I thought there was some significant room for improvement. Shortly thereafter, I picked up a copy of The Pragmatic Programmer and just loved it. I especially liked the idea of learning new languages to become a better programmer, so when I saw a copy of the Pickaxe book by Dave and Andy I bought it immediately.

At first, I read through it planning on becoming a better Perl programmer by learning Ruby. Instead, I fell in love with Ruby and gradually did less and less work in/with Perl.

By 2001 I’d moved to Seattle, and (along with Doug Beaver and Ryan Davis) co-founded the Seattle.rb—perhaps the best known Ruby Users Group in the world. That was also the year I went to my first RubyConf. From that point on, there was really no looking back.

FiveRuns: People always talk about “convention over configuration” as a paradigm that is central to why Rails works as well as it does. Can you say a little more for the newbies out there about why this is so important?

Pat Eyler: I think this is a pretty interesting idea, and one that is applicable beyond Rails. Perl has its “TMTOWTODI” (There’s More Than One Way To Do It). Python seems to posit that there should be one and only one way to do it. I like to tell people that Ruby presents many ways of doing things, and the Ruby community guides you to the best way for whatever it is that you’re doing. In some ways, “convention over configuration” is an extension of that.

Imagine buying a car. Certainly, you want options, but can you imagine the added time, expense, and confusion that would exist if you had to pick an option for every part of the vehicle?

If you can reduce the effort needed to configure your application, set up your framework, or use your library by adopting a set of conventions (hopefully based on the conventions of the larger Ruby community), then your users will be able to get more done. They be able to dive right in and get things working instead of focusing on getting things going.

FiveRuns: What do you think about the progress JRuby is making? Is this going to increase adoption with more mainstream developers?

Pat Eyler: The JRuby team is making amazing progress. I’ve seen a better than 25% performance increase in the new 1.1 branch. They are closing out bugs and adding features. JRuby is looking really healthy, and really attractive for rubyists stuck in a Java-dense environment. I’m not going to be surprised to see JRuby faster than and more stable than the 1.8 Ruby implementations.

I think another side of the progress is less well known. Tim Bray has talked a lot about the dearth of good developer tools (read, an IDE) for Ruby, and JRuby seems to have driven the development of these tools further and faster than most of us would have thought possible. While a lot of Ruby hackers are perfectly happy with vi/emacs/TextMte there are people who want more, and NetBeans and Eclipse seem ready give it to them.

I’m interested in seeing what other tools seep into Ruby because of JRuby’s Java/Enterprise heritage. I think there’s room for some exciting system management and monitoring tools to name just one niche.

FiveRuns: What do you think about Curt Hibb’s opinion that by running Ruby under the ever-present JVM it is now much easier to sneak Ruby into companies through the back door, especially since Ruby can call and inherit Java (and vice versa)?

Pat Eyler: Well, I’ve been sensitive to the phrase ‘sneaking Ruby into the …’ ever since I interviewed Hal Fulton, and a reader got worked up over it. I think a better way to look at it is that JRuby reduces the barriers that keep companies from adopting Ruby.

In some cases, the interoperability with Java will be the feature that does it. In others, it’s just the fact that Ruby on the JVM is easier to install, manage, etc. that will get Ruby’s foot in the door. I think this could be especially true for the Windows environment—especially if IronRuby proves to be too slow out of the gate or too non-standard.

And, I’ll answer a question you didn’t ask: What do you think about Rubinius?

FiveRuns: Thanks, Pat! What do you think about Rubinius?

Pat Eyler: I think Rubinius is going to drive a lot of ideas into Ruby and into the Ruby community. Rubinius is a next generation VM for Ruby which is written (mostly) in Ruby. At this point it’s still slow and incomplete (think of JRuby in 2006 and early 2007), but it’s maturing fast.

Since the core of Rubinius is written in Ruby instead of C, it’s a lot easier for rubyists to grok. That should result in more people hacking on the system and trying out new ideas. As some of these ideas prove themselves, I see them being adopted into Ruby.

Another benefit of Rubinius is that it’s drawing interest and investment from a number of companies. Like Sun’s investment in JRuby, this helps legitimize Ruby and will encourage the development of tools and libraries that will benefit the rest of the community.

Perhaps the biggest benefit that Rubinius brings to the larger Ruby world is the Rubinius test suite. To be fair, there are a lot of folks from JRuby and other Ruby implementation projects working on this too. One of Ruby’s weaknesses has always been the lack of a specification and test suite, but now we’re getting close to having one.

Pat Eyler is an Infrastructure Engineer for the LDS Church by profession, a Ruby geek by choice, and a writer by night. He enjoys reading, cooking, spending time with his family, and helping to build the Ruby community.

Ruby Inside on Rails TakeFive

February 22, 2008

Thanks to Peter Cooper at Ruby Inside for his post on our Rails TakeFive interview series.

We launched the Rails TakeFive series in January in an effort to provide insight and commentary from notable members of the Ruby and Rails community, with the goal of facilitating an ongoing conversation around all things RoR. We’ve been very pleased with the feedback – hopefully it’s providing a useful POV. We’re working on some ways to tweak the content, keep it interesting, keep it fresh – just let us know if you have any suggestions – whether on content, interviewees, formats, etc.

Thanks!

Rails TakeFive: Five Questions with Todd Barr

February 15, 2008

This week, we’re happy to introduce Todd Barr, FiveRuns’ new Vice President of Business Development, and get his thoughts on open source, Rails, and why he came to FiveRuns. As you may have seen, Todd joins us after spending the last six years at Red Hat, where among other things, he was responsible for launching and growing their Enterprise Linux ISV ecosystem.

FiveRuns: First of all Todd, welcome to FiveRuns and congratulations! You have a deep background in open source, starting with Linux, JBoss and now with Rails. What parallels do you see between them today, and/or between Rails today and Linux 6-7 years ago?

Todd Barr: Just to set some context here – I’m not a developer (although I did sleep at a Holiday Inn Express last night). So my perspective on open source tends to be a bit more theoretical than technical. From what I’ve seen, successful open source movements tend to have three things in common: 1) an overwhelming user advantage, 2) strong leadership, and 3) a vibrant commercial ecosystem. Some examples are useful here: Linux allowed users to get off of Solaris and save a ton of money moving to Intel servers, has Linus Torvalds (and a bunch of other strong technical leaders), and has attracted an amazing commercial ecosystem with the likes of Red Hat, IBM, Oracle, Dell, etc. JBoss allowed developers to download a full J2EE app server for free and save a ton of money over BEA in production, was led by Marc Fleury, and has developed a growing ecosystem of tools, SIs, and SOA partners. The list could go on and on.

So, let’s apply the formula to Rails: 1) an overwhelming user advantage – CHECK… developers can develop code in a fraction of the time, and they actually enjoy it. 2) leadership – CHECKDHH, along with a growing group of community leaders, and 3) commercial ecosystem – EARLY… and there-in lies the opportunity for a company like FiveRuns, and the answer to why I’m here.

FiveRuns: What was your first experience in Rails, and what led you to make the jump here and now? What do you think are Ruby and Rails’ biggest assets? Biggest challenges?

Todd Barr: My defining experience with Rails was when I discovered this presentation. DHH had me at “First they ignore you…” (that particular Gandhi quote adorns the lobby of Red Hat’s HQ, and is in this awesome video. As I said, I’m not a developer – but even I understand Ruby on Rails. It’s beautiful in its simplicity. Convention over configuration makes sense to me – in this day and age, I think we are all looking for a few less things to worry about. A language that a mere mortal can understand makes sense, from the perspective of future supportability of an app. It has a real design sense (that is user-centric). And I think it is at the cusp of much broader adoption. But there are challenges – not unlike the challenges Java faced years ago – some real (like the lack of enough Rails development talent), and some perceived (does it scale? does it perform? is it appropriate for mission-critical workloads?). Everyone’s now asking that unanswerable question – is it ready for the enterprise?

FiveRuns: So, is Ruby on Rails ready for the enterprise? Hey, you tee-d this up…

Todd Barr: Who cares? Seriously, I think it’s the wrong question, and always has been. A better question is this: can enterprise development organizations be nimble enough to adopt Ruby on Rails? Can developers learn to take advantage of Rails development velocity, by embracing rapid prototyping alongside their business customers? Can we, as the extended Rails community, tell our story in such a compelling way that companies can’t resist it? Can we prove out IT-ism’s like scalability, reliability, performance, etc. but with real world, contextual examples where Ruby on Rails really makes sense? Our challenge is not to change Ruby on Rails to get it ready for the enterprise – our challenge is to make it valuable and easy for companies to adopt Rails.

FiveRuns: So in return, are you going to make Matt Asay an offer he can’t refuse, or what? In all seriousness, though, does your hiring signal that open source is going to play more formally into the overall strategy for FiveRuns?

Todd Barr: Hey Matt – check’s in the mail (kidding). Open source is a big part of why I’m here. And it’s not because FiveRuns didn’t “get” open source before I arrived – they absolutely do. Bruce, Adam, everyone – they get it. They get the fact that you can’t exploit an open source community and hope to succeed. You have to make meaningful contributions that help rise the tide and float all Rails boats. So, to answer your question a bit more directly: yes, at FiveRuns we will both make and influence meaningful contributions to the Ruby and Rails communities, and we will be working to grow the commercial ecosystem around Rails – all while building products that help customers succeed and that don’t exploit the community.

FiveRuns: You have a strong track record in building out partner programs, for example, growing the partnership and certification programs for ISVs at Red Hat to more than 1000 certified applications in the first two years. As the new VP of Business Development at FiveRuns, what are your immediate priorities in the first 100 days? How is the Ruby on Rails ecosystem different than the Linux and JBoss ecosystems you are used to?

Todd Barr: The Rails ecosystem is much different. In my short experience, I find it to be much more modern and decentralized because it is growing-up in a different time, alongside three other emerging industries: hosting (specifically, virtual hosting), SaaS, and freelance development shops. Taken to the extreme, apps of the future are going to be in-the-cloud, on-demand and outsourced, or “in-on-out” (I made that up… can you tell?). So at FiveRuns, we will develop partner programs that build toward that future. Hosters, development shops, and SaaS providers will certainly be a priority, along with ISVs that are embracing Rails. And I think there will be interesting relationships to be had with those who are trying to integrate Rails into existing paradigms (like JRuby, IronRuby, etc.). As a company focused on Ruby and Rails application performance, I think we will also want to play nice with existing systems management and infrastructure players, so I’m sure we’ll spend some time there. Finally, an immediate priority is selling my house so that I can move my family to Austin. Know anyone who needs a great house in Raleigh?

Todd Barr joined FiveRuns as VP of Business Development in February 2008 from Red Hat, where he spent six years in various senior marketing and business development roles. At Red Hat, Todd built and grew the partnership and certification programs for independent software vendors (ISVs), achieving over 1000 certified applications for Red Hat Enterprise Linux in the first two years. In his most recent role, Todd’s team was responsible for building Red Hat’s global go-to-market campaigns, along with channel and partner marketing. Previously, Todd was with the corporate venture capital group at Dell and was an early sales and marketing employee at CitySearch.com (now part of IAC). Todd blogs about open source, marketing strategy and closed-loop marketing at marketingfree.typepad.com.

Rails TakeFive: Five Questions with Robert Dempsey

February 08, 2008

This week, coming from sunny Orlando and the sold-out acts_as_conference event, we’re happy to bring you this week’s Rails TakeFive insights from Robert Dempsey.

In addition to his full time work at leading Rails development firm, Atlantic Dominion Solutions – ADS, Robert is the founder and Director of Rails For All, a not-for-profit organization dedicated to promoting the use of Ruby on Rails. FiveRuns is proud to count ADS as a partner.

FiveRuns: Welcome, Robert. What was your first “ah-ha” moment with Ruby and/or Rails and when did you know that the framework was a good fit for your organization?

Robert Dempsey: Our first experience with Ruby on Rails was converting a PHP app. We had done three months of PHP development and recreated the entire thing in Rails in less than one month. It was at that time that we decided to move 100% to Ruby on Rails development. That was more than two years ago. Interestingly enough, as Rails has matured as a framework, we have matured as a development firm, moving from waterfall methodologies to agile development. Rails and agile mesh perfectly.

FiveRuns: People always talk about “convention over configuration” as a paradigm that is central to why Rails works as well as it does. Can you say a little more for the newbies out there about why this so important?

Robert Dempsey: When people ask me why they hear that Rails apps are built so much faster than using other languages/frameworks, I state “convention over configuration” as the main reason. While the statement is a poke at Java applications and the large amounts of XML files they use, it is very important. When we create a Rails application, we can expect there to be a certain folder structure put in place, with each file type (model, view, controller, etc.) being in its proper folder. While that seems like such a simple thing, it becomes huge when you join a new team or take over an application from another team. There is less learning curve as you already know what is where. You don’t have to learn new conventions, they are already spelled out for you.

FiveRuns: When is Ruby on Rails an appropriate choice for application development in the enterprise?

Robert Dempsey: Wikipedia defines enterprise software as, “software that ‘solves’ an enterprise problem (rather than a departmental problem) and usually enterprise software is written using Enterprise Software Architecture,” which it defines as “the description of the current and/or future structure and behavior of an organization’s processes, information systems, personnel and organizational sub-units, aligned with the organization’s core goals and strategic direction.” Rails definitely fits into that broad context. As an example, we created a claim tracking system for a large US-based insurance company using Rails. Enterprisey? Definitely. The goal of software is to model business processes and to solve business challenges. Folks are doing this all day for companies of varying sizes using Rails.

FiveRuns: John K. Waters recently summed up a panel from QCon San Francisco in which he asked “So why is this free, open, easy-to-use, passionately advocated Web-app framework having such a hard time gaining serious traction in the enterprise?” What do you think?

Robert Dempsey: While I have heard of Rails and other open source projects being shot down due to the inability to buy a license or get support from a large vendor, I think the main reason there isn’t more rapid adoption of Rails in the enterprise is due to the paradigm shift that Rails requires. Rails follows a certain set of standards, methodologies, and ideas that may not fit with established practices. However, Rails is only three years old. Give it more time, and we will see increased use of it. Rails 2.0.2 has large performance improvements, as does Ruby 1.9. Both will keep getting better while adoption increases. The more stories we hear about proven, large-scale Rails applications, the more it will be accepted. Did I mention that we wrote a claim tracking system for an insurance company? That seems “enterprisey” to me.

FiveRuns: What do you think about Curt Hibb’s opinion that by running Ruby under the ever-present JVM it is now much easier to sneak Ruby into companies through the back door, especially since Ruby can call and inherit Java (and vice versa)?

Robert Dempsey: While I have seen a number of very successful projects that combine Ruby on Rails and Java, each running on their own servers in their own environments, I got very excited when I started to use JRuby and Glassfish. It was great to be able to package up an entire Rails app and with a few clicks of a mouse have it deployed to an application server, which in this instance was Glassfish. Rails deployment has always been an issue, one which Java solved a while ago. Further, Java has a lot to offer. If I can use the best of Java and code in Ruby then I have two tools in my belt that will help me create serious business applications. If the JVM and JRuby makes it easier for us to get Ruby in the door then I am all for it.

FiveRuns: Is JRuby going to increase adoption with more mainstream developers?

Robert Dempsey: I’m very excited about JRuby. There are many Java shops that are looking to introduce Ruby and JRuby is the way that can happen. I believe that much like Rails helped increase the use of Ruby, so too will JRuby. I have always been a big proponent of the right tool for the right job. Both Ruby and Java have their place. When used together, they bring the best of both worlds to the table. As for attracting mainstream developers, that might take a while. I have seen in-house Java developers sneaking Ruby in using JRuby, and I am sure that ThoughtWorks is working with it quite a bit, but that is the extent of what I have heard, so far.

FiveRuns: Have you ever been part of a “Big Rewrite,” as Chad Fowler has put it? What advice would you give to anyone about to take on such a project?

Robert Dempsey: We started to work with a company on a “Big Rewrite” project. Before getting into it we wanted to ensure that the client was doing it for the right reasons, and that there was buy-in on all levels of the organization. In this case, those right reasons included the current code base being unstable and difficult to maintain, the current code is many versions behind and they wanted to start fresh with a new language (and liked Ruby on Rails), and Rails fit the application. We also started into the project as if we were working on a brand new application that has never existed. We created a fresh set of requirements written as user stories and put them into a backlog, in preparation for client prioritization. My advice is to approach a project thus: ensure you are doing it for the right reasons, get buy-in from all impacted parties, start with a fresh set of requirements, and refer to old code as reference material only.

Beginning a career in IT more than 9 years ago, Robert Dempsey transitioned to web application development in 2001, teaching himself PHP and VB.NET. In 2005 he dove into learning both Ruby and Ruby on Rails. What he found caused him to change the focus of his company, Atlantic Dominion Solutions to a full-service Ruby on Rails development firm. In March of 2007, Robert launched the not-for-profit Rails For All, with the purpose of giving back to the community that had given him so much. Robert gives frequent talks at local Ruby and Java user groups, teaches the basics of Ruby on Rails, publishes articles for Amazon Web Services, and mentors new freelancers.

Rails TakeFive: Five Questions with Jeffrey Krause

February 01, 2008

Welcome to this week’s installment of Rails TakeFive, FiveRuns’ ongoing series of insight and commentary from notable members of the Ruby and Rails community.

This week, we’re happy to have Jeffrey Krause, CTO and co-founder of Investment Instruments Corporation, share his views on Ruby and Rails. Investment Instruments is a provider of two Rails-based services to the residential rental marketplace, Rentomatic and Rentometer. Rentomatic and Rentometer increase transparency in the residential real estate market to strengthen relationships between real estate managers, their tenants, and the professionals who support them. Investment Instruments is also a FiveRuns customer.

FiveRuns: Welcome, Jeffrey. What was your first experience with Ruby and/or Rails and how did it come about?

Jeffrey Krause: My first experience with Rails was in early 2005. Investment Instruments developed an early version of our rent management application, Rentomatic (formerly iiproperty) using some ‘older’ technologies and were evaluating tech for our next version – we looked at the standard lineup: Microsoft, PHP, Java, and of course the tiny underdog. While evaluating Rails I was instantly giddy with excitement. I learned more and dug deeper. I created demos for our team, gave the early convention over configuration pitch, and described the vision behind Rails. I think they were convinced more by my passion for Rails than the fledgling technology – but we’ve never looked back.

FiveRuns: We’ve seen job listings that amusingly seek “a Rails expert with 5 or more years of experience.” What does the job market look like these days for Rails developers?

Jeffrey Krause: I saw the same thing with Java back in the 90s and still smile. It’s a very competitive marketplace for Rails developers and if you’re in the position of trying to hire developers and you don’t have any Rails expertise in house then you’re in an even worse position – mostly because inexperienced developers can demonstrate and code ‘basic’ Rails apps which are difficult to evaluate by nontechnical people. We have a fantastic team, but it took us several years to assemble it and we needed to look globally.

FiveRuns: In his RubyConf 2007 Keynote presentation Matz stated that “The suits people are surrounding us” – is this increasingly the case with the community, and what does this mean for the future of Ruby?

Jeffrey Krause: Yes, but I’ve never thought this was bad. I’m pleased to see Rails mature and enter the ‘enterprise’ and a larger marketplace. I would hope that we are also adding to this environment. We’ve developed a ‘real world’ financial transaction based system which needs to be available and predictable – our customers depend on us daily.

FiveRuns: Rails definitely has an international following – any cultural differences in terms of uses of or attitudes towards Rails that you’ve observed in your travels?

Jeffrey Krause: We have a distributed international development team for our Rentomatic service, and have had one since our start. We did a blanket search for developers, and a large percentage was international and well qualified. Having worked with other international developers on several projects I would say there are less cultural differences with Rails because there are structured conventions and standard working methodologies built into the platform. Global is good.

FiveRuns: Have you ever been part of a “Big Rewrite,” as Chad Fowler has put it? What advice would you give to anyone about to take on such a project?

Jeffrey Krause: I’ve been involved with it many times and from all sides of the table. I’ve inherited projects to rewrite projects, had other engineers rewrite my code, and have rewritten my own code. I’ve also seen the ‘big rewrite’ happen with Rails apps as well – meaning a large complex site developed in Rails rewritten in Rails again. It’s hard to generalize in these cases but I would say remember the 80/20 rule and the majority of the effort is often hard to predict upfront. Many times the complexity of the site/application tends to be hidden, it can be in the minds of the original developers, cryptically coded in obscure functions, never having worked predictably in the past (because it’s complex), or just plain and simply overlooked. To counter this effort we spend 20 percent of our development time re-factoring existing code and processes.

As a co-founder of Investment Instruments, Jeffrey Krause has continued his long history of successful entrepreneurial ventures drawing on over 17 years of experience designing and building web-based applications and systems for dozens of companies. As CTO, Jeffrey leads user experience design and technology development. Prior to Investment Instruments, Jeffrey co-founded several companies providing consulting, design and technology support for public and private sectors. As co-founder and co-owner of Blacksquare, an interdisciplinary design and technology firm, Jeffrey has been a designer and consultant for some of the most notable architects in the world including Frank O. Gehry, Morphosis, and the Jerdi Partnership.

Jeffrey holds a Master of Science in Architecture Studies Design and Computation from MIT. He is a former Professor of the University of Hawaii and has published on the subjects of technology and design. He has won numerous Web and Design Awards.

Subscribe