InfoQ

Interview

Eric Hodel discusses RubyGems and his involvement in the Ruby Community

Interview with Eric Hodel by Werner Schuster on Mar 27, 2008

Community
Ruby
Topics
Package Managers ,
RubyGems
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
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.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.