RubyC-2014. Интервью со Стивом Клабником (Steve Klabnik)

steve klabnikДо конференции RubyC осталось чуть больше месяца. Организаторы напоминают, что продажа билетов Early Birds заканчивается сегодня — 30 мая — http://rubyc.eu/#tickets и продолжают знакомить участников со спикерами RubyC. На очереди Стив Клабник (Steve Klabnik), личность очень известная благодаря его активному участию в жизни мирового Ruby сообщества. В рейтинге rubyscore.com Стиву присвоен статус Almighty developer, а еще он RubyHero 2011 года, не говоря уже о том, что на Github у Стива более полутора тысяч фолловеров и он участвует в большинстве IT конференций по всему миру. На RubyC Стив презентует тему Rust for Rubyists — www.rubyc.eu/#speakers.

1. Какие «инструменты» используешь в своей практике? (ОС, текстовый редактор, и т.д.) / What tools do you usually use in your practice? OS, text editor, etc.
Использую run #! Linux, чаще Arch Linux, попробовал #! чтобы не тратить время. Также использую мозаичное размещение окон, обычно XMonad, но #! идет в одном пакете с OpenBox, и он мне тоже вполне подходит. Около 80% своего времени провожу в Firefox и xterm. Внутри xterm, использую bash, vim, git, и irssi.
Около 10% времени провожу в Thunderbird, для переписки. Процентов 8% времени уходит на инструменты защиты личных данных, например Tor и GPG, и 1% для всякие разности. Иногда когда нужно поправить изображение и открыть GIMP или нужно открыть какой-то документ с помощью LibreOffice. Для быстрых сообщений — Pidgin. Презентации пишу в Reveal.js или в 'rabbit'. На iPhone стоит iMessage и Twitter app. На iPad — Duolingo и игра ReRave. Также начал использовать Chromebook Pixe для ежедневной работы.

/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 Duolingo and play ReRave. Also I have started to use a Chromebook Pixel for my day job now.

2. Ты уделяешь много времени обучению людей. Каковы твои личные причины? / You spend a lot of time teaching people. What are your personal reasons?
Обучение других это стратегически верный способ позитивно влиять на мир. Я могу работать только 24 часа в сутки, но если я обучу двух людей они могут работать параллельно, то есть 48 часов вместо моих 24. Хотя, как известно, бывает сложно согласовать действия J

/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. ;)

3. Назови проект, которым Ты гордишься?/ Can you name the project that you are proud of?
Больше всего горжусь request_store: это крохотная библиотека, написанная за одну бессонную ночь, которая стала моей самой популярной.

/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.

4. Какой стартап, написанный на RoR, тебя больше всего впечатлил? Возможно, ты лично принимал участие в разработке?/Can you name your favorite start-ups, written on RoR, maybe you personally have participated in some of them?
Когда-то я работал над CloudFab, с него началось мое знакомство с Rails! В целом я не обращаю внимания на технологии, которыми пользуются компании, пока они производят качественный продукт, могут и Rails использовать. Компания, в которой я сейчас работаю, использует Python!

/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!

5. В каком направлении, на твой взгляд, должны двигаться Rails? Как ты думаешь, существует ли новая блестящая идея для реализации в Rails, или Rails и так достаточно хороши и не нуждаются в улучшениях?/ 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?
Думаю, что Rails должен более плотно интегрировать JavaScript и перестать пытаться его уничтожить. Последние несколько лет на конференциях по Rails мои записи касались именно JavaScript, даже не Ruby. Мы пытаемся игнорировать JavaScript, но это часть современного программирования.

/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.

6. Использовал ли ты принципы Hypermedia API в проектах? Приведи несколько примеров. / Did you use Hypermedia API principles in your projects? Please give some examples, if you did.
Да, использую. На работе мы используем hypermedia с JSON API чтобы усилить наше API. Можете посмотреть

/I do! At work, we use hypermedia with JSON API to power our API.
Check it out: curl 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»

7. Ты часто упоминаешь об ответственности, проверки кода и программирования для развлечения. Как часто ты тестируешь свои проекты, какие методы используешь?/ 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?
Я стараюсь постоянно писать тесты, но все равно мой код не идеален. Чаще использую MiniTest, так как он включен в Ruby.

/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.

8. Каков, на твой взгляд, наиболее эффективный и быстрый путь стать популярным Ruby-программистом — создание собственных 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.

9. Известно, что большинство успешных разработчиков начинали программировать с детства (до 10 лет). Какой язык программирования ты бы посоветовал для обучения детей? / 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?
Я думаю, что Ruby что отличный язык, для начинающих, он очень гибок. Питон также имеет много материала, для начинающих. Для детей, думаю, отлично подойдет Scratch.

/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.

10. Ты как-то рекомендовал программистам читать книги по философии. Что еще, может, посоветуешь? / 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.

Спасибо до встречи на RubyC!

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.