As a regular user of RubyCorner, I'd like to start out by thanking both of you for all you work in putting together a great resource for the Ruby community — and then improving it with new features like the Google based search tool. Although a lot of people use RubyCorner, I don't think many people know you guys. Would the two of you mind introducing yourselves?
Edgar: Sure! First of all thank you for interviewing us. Well what can I say about myself? ... I'm from Venezuela, graduated in computer science in 1992, in 1995 I founded (in conjunction with a friend from the university) an IT company mainly dedicated to develop web applications (www.valhallaproject.com). Since then I'm mainly focused in develop web applications using Java. In 1997 I "kidnapped" Aníbal to join our team.
Aníbal: Actually I think there is not much to say about me. I am Venezuelan, who lived many years in Bloomington, Indiana. I like coding, but phone calls, mails and meetings made this my hobby. Which is good thing because I had no formal hobby at all :-)
How did you discover Ruby?
Aníbal: We were looking for an alternative to J2EE, under a Open Source / Free Software compliant license. We had a previous experience with Perl, and we were afraid just to think in our programmers switching from Java to Perl. We had a little experience with PHP for minor projects, and we didn't really liked it, and againg making our programmers switch from Java to PHP wouldn't be easy.
Then our friend Sebastian Delmont (he's Venezuelan too), told us "I don't want to program in any programming language different than Ruby" Knowing he was a big fan of Perl, we decided to give Ruby on Rails a serious trial. And RubyCorner was our first experiment.
As Java programmers, we all were seduced by Ruby.
What is the Ruby Community like in Venezuela?
Edgar: The Ruby Community in Venezuela is still in its infancy, we are promoting Ruby and Ruby on Rails by giving talks and presentations in universities across the country, and writing in our blog (www.lacaraoscura.com).
Aníbal: Yes, it is young (maybe Japan is the only place where it is not a young community) but also very enthusiatic.
How was your switch from J2EE to Rails?
Aníbal: Initially we had a really hard time setting up our development environment on Windows (now we have completely switched to Linux), but once we got over this issue we found ourselves amazed by the all these things that in Java mean to struggle with the language.
Using Rails meant for us switching from thinking in technical issues to focus on our customers needs.
Edgar: I remember being horrified because of the "nothing is closed" policy of Ruby, when in Java Object was a kind of distant God. After struggling with some weird final classes in Java, now this is something we appreciate, but try to use carefully.
Can you give us some examples of how your focus changed?
Edgar: For example in the Java world we rely in code generation techniques, but this approach isn't so flexible as I wish (after generation), now in Rails we use the dynamic nature of Ruby to do the same things with equivalent but more flexible results.
One thing I really love in Rails is the support for functional and integration testing, it's really simple and powerful. Trying to do the equivalent functional testing in Java is not easy, you have to depend on third party web testing frameworks, like Canoo or Cactus. I really enjoy writing the functional tests for RubyCorner :-)
In Java the developer depends too much on IDE automation, in Rails the magic is in the framework. A good IDE, like RadRails is a really good thing to have, but it is not mandatory.
These kind of things allow the developer to focus in the business problem domain instead on support issues and/or reiterative tasks.
Ruby and Ruby on Rails can't be all good. Other than setting up your windows environment, what have you found problems with?
Aníbal: Deploying. Initially getting the deployment process to finish with a working application was really hard. Gem versioning was also a major pain like the classloading naightmares in J2EE containers.
Our initial hosting solution wasn't reliable. We had some weird problems that were very difficult to get being addressed by the technical people of the hosting company, but now we have a really stable environment that's working great, and it is "Capistrano Powered"
Hosting is a new world for applications that require more that Apache and the "Usual Suspect Modules" and this is a field which is obviously in a quick evolution.
What other languages do you use?
Edgar: We haven been strongly developing for the J2EE stack in the last years, actually we started developing with Java for the Web a lot of time before there was a J2EE spec with tools like SilverStream and NetDynamics, and yes we are that old ;-)
Tell us about how you got the idea for RubyCorner?
Aníbal: We have been actively blogging for many years, and we found very useful a service were Venezuelan bloggers were able to register and ping to check for the updated blogs. We wanted to build a new software to bring a better service, and we started working on it, then we decided to first try it with a smaller community, and that's how the idea of RubyCorner came out.
Also we wanted to showcase our work outside of our country, because we though that we could offer a very good development alternative for a outsourced development.
Right now we started offering a high quality, low cost alternative for application development with Ruby on Rails at has_many :developers
How well do you think you've done in carrying out that initial vision?
Aníbal: Well, it works :-) We know there is a lot of space for improvement, but time is something that we struggle to find to work in RubyCorner. We had to spend a lot of time struggling with the different Feed formats, and explaining what XML-RPC pings are to the bloggers, that was something that surprised us.
Crawling all the blogs is Repeating Yourself too much, that's why RubyCorner relies on the ping mechanism, but not all the people has a CMS were pings can be automated, of ignored our facilities to ping, that includes a REST ping that can be bookmarked. We are activists of the "Ping" movement.
What kinds of improvements are you thinking about making?
Edgar: Now we are working to store the posts and their metadata (like tags, categories) in order to provide a "tagsonomy view" for the rubysphere, and to allow to identify "hot topics" or make searchs about these that don't rely on Google crawler.
Aníbal: Blogs are asynchronous conversations, I see RubyCorner and to2blogs evolving to allow users to track the conversations, and how they relate to each other.
A Google based search was the last thing you added, how is that working out for you?
Edgar: I think the Google custom search engine that we added to RubyCorner works fine, it allows to search in all the blogs registered (almost 300 to date) plus selected sites, like ruby-forum, ruby-lang, etc.
For easy use of this CSE we created a plugins that allows to add it as a search provider to your browser.
Aníbal: It is useful, but it doesn't reflect the quick rhythm that blogs have, and the order of the blogs doesn't reflect the conversation sequence, we will be working to add this kind of search to RubyCorner.
How much 'recruiting' are you doing to find bloggers for RubyCorner to aggregate?
Aníbal: Each time we find a blog that looks unknown, we check it in the RubyCorner blog search and if it is not already registered we drop a little note to invite the writer to join the community, the results are very good.
We usually suggest the best feed to register (Ruby or Rails category or tags feeds) and we are always reminding people to configure the automatic ping, this is some kind of personal crusade ;-)
Edgar: In the begining in every Ruby or Rails related blog we found we dropped a comment inviting the author to register in RubyCorner, but since a couple of months almost all the new blogs registered in RubyCorner did it by their own initiative.
I'm glad to see in RubyCorner blogs written in different languages, in my opinion this is a sign that the Ruby buzz is spreading around the world.
RubyCorner's not your only project, what else are you working on?
Aníbal: Right now we are running the same codebase at to2blogs.com, but focused on the venezuelan blogging community, it is working great and we reached the thousand blogs in the past weeks. to2blogs is quickly growing, and evolving as service very different from RubyCorner, because the usage that the community gives to the service is very different.
You guys just finished teaching a series of classes on Ruby and Rails, what's the Ruby/RoR training market like in Venezuela? How were the classes received?
Aníbal: Actually as far as we know we are first ones teaching Ruby and Rails, outside of the academical environment, this is just a starting adventure. Right now people have been very interested and entusiastic, we hope this trends keeps going on.
Classes were great, but for the people I was teaching there was not easy to jump from Microsoft tools to Ruby programming, I needed to do a lot of emphasis in object orientation the way it is implemented in Ruby and the functional aspects.
The good thing is that I'll continue coaching this group, and now they have a very good base ground to start their journey On Rails.
Edgar: Ruby is the programming language I had liked to use when I was a student at the university. The mix of OO + functional that Ruby provides is great. Ruby and Rails is like a fresh air to remind you that exist more than one options to resolve a problem. Like I said to my students in the university, "If you only know a hammer you see everything like a nail".
I also understand that you're in the process of making a bunch of 2 hour presentations about Ruby at various universities. What kind of stuff are you covering at these? How are the audiences responding?
Aníbal: We have been invited to talk about Ruby and Rails at the major Venezuelan universities and other organizations, usually we introduce the principal features of Ruby and later we demonstrate Rails building a simple application featuring a little testing and Ajax.
In the previous opportunities the feedback from the audience has been great.
These kinds of activities seem like a great opportunity to show the seeds of local Ruby Brigades. Do you know of any groups that are springing up in your wake?
Aníbal: We have been asked to lead this process, and we are just looking for a break from our activities to found a local user group, we think that maybe we will be doing it in our spare time between 3 and 4 of the morning ;-)