Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Interviews Geoffrey Grosenbach on PeepCode

Geoffrey Grosenbach on PeepCode


1. We are here at Ruby Fringe Toronto and we are sitting here with Geoffrey Grosenbach. So who are you?

I am a developer, aspiring entrepreneur, and I run a company selling training screencasts and short e-books mostly about Ruby and Rails related topics but branching on another topics such as Git and others as well.


2. I read Peep Code on your shirt. What's Peep Code?

That's my company. Actually my company is called Top Funky Corporation but this is my main product, and brainstormed a bunch of different names and ended up with this one, works well, it's fun to say and people like it.


3. You do mainly screen casts for Ruby? And the other topics you mentioned.

Right. About an hour long most of them, there are nine bucks, although you can get them cheaper if you buy a pack or yearly subscription. Although I have a few on the introductory level, I am trying to hit the more advanced topics that aren't really published in books or yet out in books but developers want to know about that stuff and they want to know about it quickly, things move so fast.


4. How do you choose your topics?

To be honest for the last two years since I have been doing it, I mostly just canvassed the different kind of topics so what the people are blogging about, or things that are interesting to me and often it would be something that I want to learn about and so I will do a screen cast on that topic. But now I am trying to think a little bit more financially on "Hey what would sell well and what do the majority of people really want to hear about or learn about?" But I am still going to hit some of the topics that may not be super popular right away but that I think are interesting and should be covered.


5. Which topics do you think you will cover in six months?

Which topics in six months. It seams like Rails itself is stabilizing quite a bit, and it is a lot of the surrounding supporting type of things that are more interesting, that people are more interested in. I think I am working on some different things with more complicated authentication systems, things with more front end type of content, CSS design that kind of thing, here in Toronto part of this was organized by a company that employs Hampton Catlin hoping to do one on Haml templating, language. And then there are even other topics that I have got in process about the Mac development or the IPhone or Objective-C, those kinds of things as well.


6. What do you like about Haml?

Two things have always bothered me: one is that HTML is so verbose you have to have a beginning and ending angle brackets, you have to close out the tags, can we get rid of that somehow? And then the other thing is I have done a fair amount of pdf generation and generating other things and with the exception maybe of LateX, people don't just get in there and write out raw pdf code, they use a library to generate it. They want to work at a little bit at higher level, and abstract that out a little bit, but for some reason HTML is people are just comfortable writing it as it is. So I like the fact that Haml is a nice step up, eliminates some of the extra characters that I might have to write. Raganwald, I forgot his full name - Reginald Braithwaite - he said if you really need an IDE to write a programming language then maybe it's your programming language that is at fault and needs all these macros and I found for Haml I don't need any kind of bundle or shortcuts, everything that I need to type is basically one character or just a couple of characters and I am good to go. So I think that's a great argument right there, no bundle needed.


7. What do you think about Merb? Have you done Merb screen casts?

I started kind of a beta pdf book on Merb which I am going to add a screencast to a free bonus right in there and I like it a lot, my blog is actually written in Merb, I wrote it in Merb 0.5 so I don't know if that was six or nine months ago, I think it has got some great features I like the idea of keeping it just a small core that can be enhanced almost like the next distributions that Linux is just concerned with the kernel itself and everyone else can add Windows manager or other kinds of things so I like the fact that Merb is generally caring about that philosophy but at the same time it's still under a lot of development. My blog won't even run under the current version of Merb, just because so many things have changed since then. So hopefully it sounds like 1.0 is going to come out in a couple of months, and things will stabilize and people will be able to try that out as an alternative for some kinds of applications.


8. You are known as the interviewer of the Rails space. How many interviews have you done though?

They are over eighty interviews there, a few other people have done some of those so I guess I have done upwards of seventy-five interviews.


9. Over the time of doing these interviews have you seen any changes in the Rails community? Obviously there were changes but what have you seen?

There are different people who are more or less active in the community and new people and new technologies spring up all the time. Love to meeting the guys from Phusion who wrote the Apache module, for running Rails and Rack applications, those guys had a lot of personality, it was fun to meet them and I am going to hopefully see them again in RailsConf in Berlin, the European Rails conference. So, I think that it's great that there is so much flexibility, and there are many opportunities for people who come in with a great idea implement it well and make a name for themselves and hopefully I am close behind one of them giving me an interview and finding out what they are thinking about and what software they have developed.


10. How did you get into Rails?

Right into college I did a lot of Java development. Mostly more server stuff not web related stuff, some spiders and things like that kind of before RSS we needed to monitor some different government websites for contracting opportunities at the company I worked in. And then I got into Perl and eventually I heard about Ruby right when I think the Dr Dobbs article came out in 2001 or something like that. It sounded interesting but at the time there was a really vibrant Perl community in Seattle which was great to be a part of and I learnt a lot of things meeting people like Brian Ingerson and even Damian Conway came and visited Seattle. So that kept me excited about Perl but 2004-2005 I heard about Rails, tried out Ruby and I felt like really everything that I liked about Perl was in Ruby in addition to the fact that many different syntactical features in working with objects or whatever were even better and more cleanly implemented and not to mention a great community and at the time a lot of areas for a person to come in, write some good software and gain a little bit of a reputation. That's about 2005.


11. So you came in just about the start of the Rails.

Right, yes, couple of months after.


12. I think you are maintaining a few open source projects. What would they be?

It's a funny thing it's hard sometimes to maintain a blog, and a podcast and open source projects, and somewhere in there try to run a business at the same time. But originally I started out wrote a Gruff sort of a feature of graphing library and I also had spark lines for just small graphs which I use more than any other graphing library out there. I have also written some other little things, I had one called bong which was a wrapper around http, Httperf in order to run through a list of URLs do some benchmark so you get a website pull back some information. Someone actually sent in a patch recently which I need to work in which will then output a graph from that. Also when I modify that to make it work with AB, because Apache bench is a little bit more popular and a little bit more available by default on a lot of machines. I wrote a photo gallery in Rails which I haven't touched in a couple of years even though that just my personal site has a few photos out there and runs on that but people do great things about open source, few people have continued to work with that, somebody patched it to store things on Amazon S3 somebody else updated it with some newer JavaScripts for paging through photos and things like that. Those are a couple of different projects that I tried to work on.


13. How does Gruff work? Was it used to draw graphs?

Yes, the idea was just to have graphs that look good and to make a very simple interface to where you can just throw a label and some data and then it will do its best job of drawing a graph that and then there are also quite a few graphing types: line, bar, there are even some spider or net graphs as well. So a variety of different options there are pie graphs in there which I think I will get rid of, but the idea was to make a really easy interface to where somebody could just put together a good looking graph quickly and present whatever information they need to.


14. Did you write all the Gruff algorithms to lay them out or did you use another land library?

It uses RMagick right now for the actual graphics generation, but other than that you just start with a blank canvas and it starts doing the different writing of text and lines and boxes in order to construct your graph. I also think there is a bit of other open source code in there. Somebody helped out with some of the figuring out the correct scales so that you have the nice labels down the side. And someone actually contracted with me to add some other XY labels as well. We are also hoping to add some XY plotting so right now it uses RMagick to do the actual graphing.


15. How is the input for Gruff? How do you write code for it? Is it a DSL? How complex is it?

I haven't tied to make it too fancy as a DSL. It's basically there are three or four methods, if you want to set the title of the graph, you want to pass data one or more times, to have multiple data sets and then you can optionally do things like set a color theme or set the size, or things like that. So it's just a Ruby object so you just instantiate it and set some values and go to town. Someone did write a template language that you can use within Rails towards you can actually have a separate file as a view layer and you can use that to actually generate the graphs. But it's not anything special as far as a DSL just a couple of methods on the main Gruff object.


16. So we have seen Google charts being released so how does that relate to Gruff?

Yes, Google charts is a great way to go, a nice quick way to get a graph up there. Personally, my own information I just like to keep that on the server I don't want to be sending that across the Internet and having that on Google servers if it's financial information or whatever. I like the ability to just run that locally and generate graphs for myself. Not to mention if I am working offline and when I have that just running on my laptop and to be honest RMagick isn't that hard to install, it's in most Linux distribution, so it's a package, there is a script that will build it right up for you under Mac OSX so a couple of years ago it used to be hard to install, and people had a problem with that but Gruff and Google charts, definitely different options based on what you want to accomplish.

Apr 10, 2009