Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

RubyC-2014. Интервью с Джереми Эвансом (Jeremy Evans)

Anna | 20.06.2014 | нет комментариев

В преддверии RubyC, которая состоится в Киеве 31 мая — 1 июня 2014 года, организаторы предлагают поближе познакомиться со спикерами конференции.

Ниже первое интервью — с Джереми Эвансом (Jeremy Evans) — ведущим разработчиком калифорнийского государственного аудиторского бюро (California Bureau of State Audits). Подробнее о его теме Deep Dive into Eager Loading Limited Associations дозволено узнать на сайте http://rubyc.eu/#speakers, а о самом Джереми — из его результатов.

image

1. Какой инструментарий ты Почаще каждого используешь в своей работе? / What tools do you usually use in your practice?

В качестве операционной системы на каждому оборудовании я использую OpenBSD. Множество людей применяют OpenBSD из соображений безопасности, и для меня это тоже значимо, но приоритетом является легкость в администрировании и стабильная работа. Я использую OpenBSD с 2002 года и всецело перешел на эту ОС в 2008 году. В 2010 стал разработчиком OpenBSD. Теперь отвечаю за портирование Ruby для OpenBSD, включая JRuby и Rubinius. В качестве текстового редактора я использую Vim. И до сих пор, даже позже нескольких лет эксплуатации, я использую только «чистый» Vim (без плагинов). Изредка использую SciTE для больше примитивных задач, где не нужно много редактировать. В качестве графической оболочки я использую fluxbox, он примитивный и комфортный, исключительно мне нравится, как организованы оконные вкладки и клавиши стремительного доступа.

/The operating system I use on all of my personal machines is OpenBSD. When most people think about OpenBSD, they think about security, and while that’s important to me, the main reason I use OpenBSD is that it is easy to administer and rarely breaks. I’ve been an OpenBSD user in some capacity since 2002, and have been using it on all of my personal machines since 2008. In 2010 I became an OpenBSD developer, and I’m currently responsible for OpenBSD’s ruby ports, including JRuby and Rubinius. My preferred text editor is vim, though even after a few years of use I still only use the basics (no vim plugins). I occasionally use SciTE for simpler coding tasks that don’t require a lot of editing. I use fluxbox as my window manager. It’s simple and gets out of the way, and I like the way window tabs and keyboard shortcuts work.

2. Отчего ты уделяешь столько времени обучению людей? / You spend a lot of time teaching people. What are your personal reasons?

Мне славно осмысливать, что люди решают свои задачи с поддержкой моего софта. Отрадно быть частью этого сообщества. В большинстве случаев я усердствую подмогнуть иным разобраться с теми задачами, с которыми столкнулся сам, и применять для этих целей мой софт. Я чудесно помню, как начинал программировать. Я был дюже благодарен каждому, кто мне помогал и обучал, следственно помогаю иным, так сказать возвращаю «задолженность». Дюже Зачастую, помогая кому-то, я сам отличнее понимаю суть задач в моем софте. Изредка не хватает некоторых документов, либо в них находятся ошибки, либо что-то легко работает не так, как должно. Меня расстраивает, когда мой код работает ненормально, так что усердствую не допускать ошибок, Дабы не расстраивать других. Помогая людям прогрессировать, я прогрессирую сам, это выигрышно для всех. Помимо того, я не люблю, когда длинно отвечают на мои запросы о помощи. Вот и сам усердствую неизменно отвечать стремительно, раз уж ожидаю этого от других.

/I definitely get some personal satisfaction from knowing that people are able to solve their problems using software I wrote. I think in many cases I feel a sense of camaraderie. Most of the time I am helping people, I’m helping them learn how to use the software I wrote, to solve similar problems that I have faced. I also remember what I was like when I was starting as a programmer. I remember how much I appreciated when other programmers helped me learn, and so helping others is a way to pay back for the help other programmers have given me. In many cases while I’m helping people, I get a better understanding of what the problems are in my own software. These may be missing or incorrect documentation, or things that just plain don’t work the way they should. I get frustrated when software I use doesn’t work correctly, so I try hard to make sure that my software does work correctly, so that other programmers don’t feel frustrated when using it. Helping other programmers helps me improve my own software, which benefits all of the programmers that use the software I write. In addition to getting frustrated when software doesn’t work correctly, I also get frustrated when I ask for help from other programmers when using their software, and they take a long time to respond or don’t respond at all. I think it would be hypocritical if I expected other programmers to respond quickly when I asked for their help, while not responding quickly when other programmers ask me for help.

3. Каким планом ты гордишься? / Can you name the project that you are proud of?

В первую очередь работой над Sequel. Я взялся за план в Марте 2008, позже того как месяц сам им пользовался. Это самый огромный план, которым я занимался. Задача была в том, что, невзирая на отменную всеобщую архитектуру Sequel, его реализация оставляла хотеть лучшего, а документации фактически не было. Тем не менее, вследствие классному «покрытию» кода тестами, я сумел высококачественно реорганизовать и усовершенствовать код. Мне кажется, мне удалось превратить Sequel из примитивный библиотеки с стремительным доступом к БД (ORM, object relational mapper) в один из наилучших примеров таких библиотек для Ruby. Может, он никогда не станет самым знаменитым Ruby ORM, от того что это не базовый ORM для Rails, но он теснее снискал уважение среди многих рубистов.

/While it is not and may never be the most popular ruby ORM, since it is not the default ORM for Rails, I think it is still widely respected in the ruby community. I’m certainly most proud of my work on Sequel. I took over maintenance of the Sequel project in March of 2008, after only using it for about a month. It was largest project I had worked on at the time I took over maintenance. While the overall architecture of Sequel was good and in general persists to today, the implementation was a mess and there was very little documentation. However, the test coverage was excellent, which gave me confidence in refactoring and improving the implementation. Under my maintenance, I think Sequel has gone from a simple database library for quick database access, to the premier ruby database library and object relational mapper (ORM). While it is not and may never be the most popular ruby ORM, since it is not the default ORM for Rails, I think it is still widely respected in the ruby community.

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

Сам с такими стартапами не работал, следственно назову Heroku. Они энергично применяют Sequel в своих внутренних системах, и к тому же хостят многие мои веб-приложения даром.

/While I’ve never worked for them or any other start-up, my favorite start-up is Heroku. In addition to using Sequel extensively in their internal systems, they also host many of my personal web applications for free.

5. Как Зачастую ты тестируешь код в своих планах? Какие инструменты используешь? / How often do you test code in your projects. What technologies of testing do you use?

Тестирую код всех своих планов перед всяким коммитом либо, в крайнем случае, перед размещением изменений на GitHub. Для Sequel тестирование исключительно тщательное, я проверяю около 6 реализаций на ruby, больше 10 адаптеров баз данных, больше 10 баз данных, всеобщее число групп тестов (test suites), вероятно, добегает до 100. Проверяя саму библиотеку, традиционно использую RSpec. Жанр тестирования не меняю с момента возникновения RSpec 1, и многие мои библиотеки работают на RSpec 1, 2 либо 3. Еще использую Travis-CI для Sequel либо других планов. И правда Travis Зачастую не дает 100% точные итоги, пропуская существующие ошибки, я думаю его применение оптимально в большинстве случаев.

/In general, I test code in all my projects before every commit, or at least before I push changes to GitHub. For Sequel, this testing is quite extensive, as I’m testing on about 6 ruby implementations, over 10 database adapters, and over 10 databases, with the total number of test suites run probably numbering over 100. In terms of the testing library itself, I usually use RSpec. The test style I use hasn’t changed much since RSpec 1, and many of the libraries I work on, including Sequel, will run on RSpec 1, 2, or 3. I do use Travis-CI on Sequel and another project, but in general I’ve found it reports more false positives than actual issues. Still, for my more popular projects, I still think it is a net benefit to use Travis.

6. Каков, на твой взор, особенно результативный и стремительный путь стать знаменитым 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?

Я бы сказал, что если вы жаждете славы, то стоит задуматься над созданием планов, которые были бы пригодны для как дозволено большего числа программистов. Чем он стремительней и результативнее – тем отличнее. В случае с вестимыми планами каждая известность Почаще уходит к начальникам плана, а не к определенным разработчикам. Разбираться, кто что написал, будут немногие.

/I’d say if popularity is your goal, creating a ruby project that fulfills a need that many ruby programmers have is probably the most effective and fast way. While some people may notice who wrote which patch for a famous project, in most cases the glory goes to the project maintainers, not to the individual contributors.

7. Вестимо, что множество удачных разработчиков начинали программировать с детства (до 10 лет). Какой язык программирования ты бы порекомендовал для обучения детей? / It is known that the most successful developers have tried toprogram 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?

Я в детстве не дюже увлекался программированием (разве что, какое-то базовое графическое программирование, когда мне было около 10 лет), чуть огромнее — в студенческие годы (C and Java), но мастерски программировать начал в 23. Вероятно, я был бы лучшим программистом, если бы начал прежде. Я не уверен, что я бы порекомендовал своим детям испробовать программирование вообще, если они не проявляют к этому интерес. Тем не менее, если они захотят постигать программирование, я бы порекомендовал начать с Ruby либо Python.

/I did have very brief exposure to programming as a child (some basic graphic programming when I was around 10), and some additional exposure during college (C and Java), but I didn’t start programming professionally until I was 23. I would probably be a much better programmer now if I had started younger. I’m not sure I would advise my children to try programming at all unless they showed an interest in doing so. However, if they wanted to learn programming, I’d probably try to start them on Ruby or Python.

8. Есть высокопрофессиональные советы? / What else professional advice can you propose?
Чтение дюже значимо, но, как и всякое занятие, программирование требует навыка. Я читаю много книг и, безусловно, многое из них почерпнул, но огромнее пользы принесли попытки что-то сделать позже прочтения. Одного чтения неудовлетворительно.

/I think reading is important, but like many things, programming is something that requires a large amount of experience to do well. I read a lot of free programming books, and while I’ve definitely learned things just from reading, I’ve learned far more by trying to build something after reading.

9. Какие последующие планы позже RubyC? / What are your next steps after RubyC?

Возвращусь к работе с Sequel. Скорее каждого, возвращусь к постижению новых языков, я давным-давно этим не занимался, конечный раз пытался разобраться с Io. В списке — Smalltalk, Nimrod, Elixir и Forth. Традиционно я пытаюсь реализовать библиотеку либо приложение на новом языке. Приложение должно быть довольно небольшим для того, Дабы не занять много времени, но довольно огромным для освоения языка.

/I plan to continue working on Sequel. It’s been a little while since I tried learning a new programming language (my last one was Io), so I may take some time to learn a new one. I’m looking at Smalltalk, Nimrod, Elixir, and Forth as possible new programming languages to learn. Usually I try to implement a small library or application in the language. It needs to be small enough that it doesn’t take too much time, but large enough so that I get a good feel for the language.

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

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB