InfoQ

Interview

   Good News: We have re-worked our video infrastructure to provide more reliable service. Please email bugs at infoq.com with any problems.

Eric Hodel discusses RubyGems and his involvement in the Ruby Community

Interview with Eric Hodel by Werner Schuster on Mar 27, 2008 01:49 PM

Community
Ruby
Topics
RubyGems,
Package Managers
Tags
RubyGems,
Ruby1.9
Summary
Eric Hodel talks with InfoQ about his longstanding involvement with the Ruby community, focussing on his recent role as the maintainer of RubyGems, the de facto packaging system for Ruby libraries and applications. Eric also discusses his local Ruby user group Seattle.rb and his involvement with the Ruby Hit Squad, creators of the deployment automation tool Vlad the Deployer

Bio
Eric Hodel is a long standing member of the Ruby community. He was one of the founding members of Seattle.rb, and forms part of the Ruby Hit Squad, creators of the deployment automation tool Vlad the Deployer. Eric is currently the maintainer of RubyGems, the de facto packaging system for Ruby libraries and applications.
We are here at RubyConf 2007 with Erik Hodel. Erik how about we start off with you telling us about yourself: what you do, where you are from?
One of you libraries that is very popular that you are maintaining is RubyGems. Can you tell us about that?
Is there a central place where they're hosted or you host your own directories for RubyGems?
What version is RubyGems at right now?
What are the big features of the current, the next release?
The "I" specific or platform specific tools, can they help providing JRuby specific gems or other implementation specific gems?
You mentioned Ruby inline. Can you explain how RubyInline is, are you involved with the project?
But you need a compiler on your platform?
So it's like a shared library that can be shipped with it so you don't have to compile?
Talking about RubyInline and Ryan Davis you work a lot with Ryan Davis. What other project do you share, do you work on?
So is that used for for specification testing, for compliance testing or specific Ruby features?
What other projects are you working on at the Seattle Ruby brigade or with Ryan Davis or with other people?
Could you give a short introduction to Heckle?
The way that Heckle is implemented is it doesn't work on the source, it works with the AST via ParseTree so it can work in a higher level. Another interesting project is SuperCaller. What is that?
So it's mostly a debugging tool?
At runtime? You could change objects or...?
Another big project that you are working on, you are part of the Ruby Hit Squad. What is the Ruby Hit Squad?
Your first target was Capistrano. What were the big problems about Capistrano?
So the approach is basically to go with existing tools?
So that work basically is distributed as vlad the deployer?
So how did you come up with the name?
What other things did you fix in Vlad. I heard that you fixed OpenSSH or you work with OpenSSH or SSH instead of reimplementing it?
What's the future for Vlad will be run along side of Capistrano, might some changes be mixed into Capistrano? What are the ideas?
So any other big features for the next release of Vlad?
What's the problem with Win42? Is that a Ruby Inline problem?
Moving on, many of these projects are part of the Seattle Ruby brigade. What is the Ruby brigade?
How big are these meetings? How many people come?
Are these always the same people or it's a turn-over, with new people?
Organizing the Seattle.rb group or working with the group, do you have any tips for other people who might want to create a brigade, in their own city, in their own area?
Do you rent out a coffee shop?
In the recent weeks what are some of the topics that you or your projects they were working on besides the ones that you already mentioned?
Since we're back to Gems there's actually a big development now in Ruby Gems – they're going to be included in 1.9. How far long is this process?
So you are going to change the require gem instruction or are you going to change it to require?
Will the inclusion of RubyGems cause problems with other package management systems like Debian or BSD Ports?
So 1.9 is still linked to RubyForge or there will be some change, on official server?
To finish up we might mention another library that you are working on that deals with Memcached. What is Memcached?
So is this just a wrapper around some native library or do you talk to the server?
Do you know if any sites that use Memcached via your Ruby wrapper?
This is a great way to end an interview. It was very nice to talk to you Eric. you're a very prolific hacker and a big contributer to the Ruby community. Thank you very much.
show all  show all

1 comment

Reply

Significantly different from all the compared projects. by Eivind Eklund Posted Mar 28, 2008 9:38 AM
  1. There are two things with RubyGems that are significantly different from the projects that Eric Hodel compared to (Debian, FreeBSD ports, MacPorts.) These differences are large enough that it in many ways is just as reasonable to compare RubyGems to a Windows installer or a developer-uploaded tar.gz file with script binaries to extract directly into /usr/local.

    1. All the listed projects are primarily packaging stuff that is developed by other people. This means that each maintainer packages a much higher number of packages, and that the community is focused around packaging to a much larger degree than the people the produce Gems. This also means that there is much more quality control around the packaging process itself (plus often some cross-testing to make sure that various packages work together, and registration of conflicts when they turn out not to do so.)

    2. All the listed projects are strongly tied in with the underlying operating system, and do work to make the packages actually work correctly there. RubyGems does the opposite - it provides guarantees that are in direct contradiction with those many operating systems give, thus making more or less sure that what is distributed as Gems not do fit easily with the rest of the operating system (actually, the "guaranteed brokenness" is only available on traditional Unix platforms. The platform policies of Mac OS X, Windows, Gentoo and some others are reasonably close to Gems.)

    I find the differences between Gems and Ports/Debian/etc packaging to be so large that it is misleading to use the OS packaging systems as an analogy to describe Gems. Instead, say what Gems is: A system for distribution of Ruby programs and libraries, where the author release it and is responsible for making it work everywhere - albeit a bit foreignly - and where the author is responsible for avoiding conflicts.

Exclusive Content

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.

Segundo Velasquez and Agile as Seen Through the Customer's Eyes

Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.

Fine Grained Versioning with ClickOnce

David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.

Implementing Manual Activities in Windows Workflow

Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.

Markus Voelter about Software Architecture Documentation

In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.

Voca, UK's largest payment processing engine running Spring

William Soo and Meeraj Kunnumpurath discuss the Voca transaction processing system, architectural challenges and requirements, Voca's Spring/J2EE architecture, and the future SEPA architecture.

Patterns for securing architectures

Security is about trade-offs. Only a few have the expertise to design good security. This talk focuses on Security Patterns, such as Role-based Access Control, Single Access Point, and Front Door.