Rails TakeFive: Five Questions with Scott Diedrick

8/1/08 11:12 AM

FiveRuns Blog
On Rails production performance and monitoring
P OS T S No comments Rails TakeFive



Rails TakeFive: Five Questions with Scott Diedrick
Published on April 18, 2008 by dean 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
FiveRuns tagged photos on Flickr.

See more FiveRuns tagged photos…

Previous Entries
Rails TakeFive: Five Questions with Scott Diedrick

Other Categories
Entries are also organized under the following general topic categories. Rails Events TakeFive Community Partners Open Source Tips People Announcements Miscellaneous


Page 1 of 3

Rails TakeFive: Five Questions with Scott Diedrick
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.

8/1/08 11:12 AM

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).

Continued Discussion
http://blog.fiveruns.com/2008/4/18/rails-application-monitoring-takefive-five-questions-with-scott-diedrick Page 2 of 3