RubyC-2014 presents an interview with Steve Klabnik

540-klabnik.jpg

 

The conference RubyC is coming! Organizers remind that tickets “Early Birds” end up soon and continue
to meet participants with its speakers. This time we talked to Steve Klabnik, who is very well known for his active participation in Ruby community worldwide. Rating rubyscore.com has given him an Almighty developer status, and he is RubyHero-2011, not to mention more than a thousand followers on Github, and numerous IT conferences he takes part in.

On RubyC Steve presents topic “Rust for Rubyists”.

What tools do you usually use in your practice?

OS, text editor, etc. I currently run Linux. I like it. I use Arch Linux most of the time, but I gave a go this time so I wouldn’t have to fiddle. I use a tiling window manager.

Usually it’s XMonad, but comes with OpenBox, and it’s pretty okay. I spend 80% of my time in Firefox and an xterm. Inside that xterm, I run bash, vim, git, and irssi. I spend 10% of my time in Thunderbird, for email. I spend another 8% of my time using tools to protect my privacy, like Tor and GPG, and 1% in random things I don’t use often enough to remember. Like occasionally I’ll need to edit a picture and open GIMP or need to open some sort of document that LibreOffice can handle. Occasionally I’ll get an instant message on Pidgin.I write my presentations in Reveal.js or the ‘rabbit’ gem. On the iPhone I mostly use iMessage and the Twitter app. On the iPad I mostly practice with uolingo and play ReRave. Also I have started to use a Chromebook Pixel for my day job.

You spend a lot of time teaching people. What are your personal reasons?

Teaching is a scalable method of impacting the world in a positive way. I can only code for 24 hours a day, but if I teach two people, they can work in parallel, and code for 48 hours in the time I code 24. That said, we all know concurrency is hard. ;)

Can you name the project that you are proud of?

The project I’m most proud of is request_store: it’s a teeny gem that I wrote one night when I had trouble sleeping, and it’s been my most popular gem.

Can you name your favorite start-ups, written on RoR, maybe you personally have participated in some of them?

I had a startup long ago called CloudFab. It’s where I first learned Rails! That said, I don’t really pay attention to which company uses which technology. As long as they make a good product, I don’t mind if they don’t use Rails. The company I work at now uses Python!

What direction you think should Rails move on to? Do you think is there any brilliant new idea to be implemented in rails or it’s now good and there is nothing conceptual to be added?

I think that Rails should embrace JavaScript, and stop trying to kill it. All of last years RailsConf keynotes were about JavaScript, not even about Ruby. We try to ignore JavaScript, but it’s part of the modern web.

Did you use Hypermedia API principles in your projects? Please give some examples, if you did.

I do! At work, we use hypermedia with JSON API to power our API.
Check it out: curl https://api.balancedpayments.com/cards/CC5cX8TtoEgQ7nY3a8pj5D7f/debits \
-H “Accept: application/vnd.api+json;revision=1.1″ \
-u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
-d “appears_on_statement_as=Statement text” \
-d “amount=5000″ \
-d “description=Some descriptive text for the debit in the dashboard”

You said about responsibility, testing code and about programming for fun. How often do you test code in your projects. What technologies of testing do you use?

I try to write tests all the time, but I’m not perfect. I choose MiniTest most of the time, as it’s included with Ruby.

What is the most effective and fast way to become a popular Ruby programmer – create your own Ruby project or write patches to famous projects?

Ha! I’m not sure, as popularity is a fickle thing. I wrote a lot of blog posts and tried to help other people out.

It is known that the most successful developers have tried to program in small age (some under the age of 10 years). What a programming language would you start to teach or advise your children to try?

I think that Ruby is a really great first language because it’s so flexible. Python also has a lot of great introductory material. For very young kids, Scratch is super, super great.

You have recommended reading philosophy books to programmers. What else interesting you can propose?

The key isn’t philosophy, though that’s quite useful since it’s so fundamental. The real key is to steal _any_ ideas from other fields if they’ll be useful to ours. I want to hear how psychology can help programming, or how bridge building can help project management, or how Japanese can help you understand parsers, the list goes on and on! Don’t just read about programming all the time.

Thank you and see you at RubyC!