Выпуск 22. Декабрь 2014

Обзор CPAN за ноябрь 2014 г. | Содержание

Интервью с Олафом Алдерсом (Olaf Alders)

Олаф Алдерс (Olaf Alders) — канадский Perl-программист, создатель MetaCPAN

Когда и как научился программировать?

Уже не помню по какой-то причине, но, когда я был в начальных классах, я посетил компьютерные курсы для начинающих в библиотеке. Это был мой первый опыт программирования.

По-настоящему же программировать я научился в старших классах. Наш класс занимался Waterloo BASIC в сети Commodore 64s. Дома у нас не было компьютера, поэтому я не применял свои навыки нигде кроме школы. Это было весело, но я никогда не думал, что буду заниматься программирование профессионально.

В университете я начал учиться по научной программе. Мой единственный компьютерный курс был на Fortran 77. Я его ненавидел. В конечном итоге я перешел из науки в гуманитарии. Тогда я снова занялся компьютерами и начал учить Perl.

Какой редактор используешь?

Уже в течение нескольких лет я использую Vim. Я не продвинутый пользователь, но у меня получается. https://github.com/oalders/dot-files/blob/master/vim/vimrc. Я годами с удовольствием пользовался разными GUI-редакторами, но, после того как один программист на прошлой работе показал мне несколько фишек vim, меня зацепило.

Когда и как познакомился с Perl?

Познакомился с Perl в университете. Я изучал греческий и латинский и сделал сайт для «Клуба классики». Написал CGI-счетчик посещений. Это было весело, затем я написал сервис, основанный на том счетчике, и разослал e-mail всем своим друзьям. Новость быстро распространилась, и в конце концов у меня были тысячи посещений. Дошло до того, что мне пришлось брать плату для покрытия расходов на хостинг. Вскоре я начал настоящий бизнес, и все было написано на Perl.

С какими другими языками нравится работать?

Я немного писал на Objective-C, когда работал над iCPAN. Когда нужно было, немного ковырялся с шелл-скриптами и JavaScript. Сейчас начал читать книгу про Go.

Что, по-твоему, является самым большим преимуществом Perl?

Не знаю есть у меня твердые аргументы чем Perl лучше или хуже других языков, но для меня он удобен. Мне нравится, как я могу себя выражать.

Также хочу сказать, что мне действительно нравятся люди в Perl. Когда мне нужна была помощь, у меня был только положительный опыт. У меня появились друзья в “сообществе”, и для меня оно комфортно. Конференции YAPC::NA всегда очень интересные. Также у меня была замечательная возможность посетить QA-хакатоны в Париже и Лионе, и я также планирую посетить хакатон в Берлине в 2015 г. Такие мероприятия, когда удается их посещать, остаются в памяти.

Что, по-твоему, является самой важной особенностью языков будущего?

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

Как начался MetaCPAN, в чем была твоя роль?

Однажды я решил научиться писать приложения для iPhone. Мне хотелось сделать копию CPAN-документации на своем телефоне, потому что мне нравится читать про разные модули. Я добирался на работу в метро, и там не было интернет-связи, и я никак не мог читать CPAN. Потом убедил друга поработать над этим приложением.

Я сосредоточился на парсинге Pod из minicpan и добавлением его в базу SQLite. Углубляясь все больше и больше в проблему, я понял, что это было не так просто, и что на тот момент решения не существовало. С этой проблемой сталкивались многие и до меня. И так как модули на CPAN постоянно обновляются, мне казалось, что эту проблему можно решить с помощью веб-сервиса.

На встрече перл-монгеров Торонто мы говорили об этой проблеме целый вечер. Один из участников упомянул Elasticsearch, о котором я вообще ничего не слышал. Многие также дали мне по $20. В течение следующих шести недель я проводил вечера за извлечением данных из базы iCPAN и добавлением их в Elasticsearch. Я хостил все на Rackspace и оплачивал собранными средствами. Так как Elasticsearch предоставляет REST-интерфейс из коробки, в конце шестинедельного периода у меня был работающий сервис.

Марк Юбенвиль (Mark Jubenville) (который работал со мной над iCPAN) написал http://search.metacpan.org на чистом JavaScript. Мы использовали его для тестирования API.

В это же время появился Мориц Онкен (Moritz Onken). В рамках проекта Google Summer of Code он написал http://metacpan.org. С тех пор MetaCPAN стал намного популярнее, чем я ожидал. Мы прошли путь от небольшого сервера в облаке до шести серверов в двух датацентрах. У нас есть ядро разработчиков и много коммитеров. Этот проект требует много времени, у него много составляющих, но это интересно.

Ожидал ли ты, что MetaCPAN практически заменит SCO?

Нет, и вообще он на самом деле не сделал этого в глобальном масштабе. В узких кругах MetaCPAN стал более популярным, но у нас нет, наверное, и 20% того трафика, что есть у http://search.cpan.org. Габор Сабо (Gabor Szabo) может это подтвердить или опровергнуть. Это скорее всего связано с тем, что первые результаты Google-выдачи ведут прямо на search.cpan.org. Есть также множество людей, которые клянутся, что search.cpan.org просто лучше. Габор даже начал работать над SCO-клоном, который будет внутри использовать MetaCPAN: https://github.com/szabgab/MetaCPAN-SCO.

Этой зимой мы будем работать над улучшением поиска, поэтому у меня есть надежды, что скоро сайт станет еще удобнее.

Также хочу упомянуть, что MetaCPAN не планировался как замена SCO. Всегда хорошо иметь выбор.

Что было самой большой проблемой при разработке MetaCPAN?

Самой большой проблемой было найти разработчиков, которые знали или хотели учить Elasticsearch. Это отличная утилита для разработки и внедрения. Она может делать очень сложные и впечатляющие вещи, но в некоторых случаях требует изрядного умения, чтобы себя проявить. Также приходится устанавливать и настраивать множество сервисов, чтобы отобразить наше окружение в продакшене. Впрочем, мы это практически решили. Лео Лэпворт (Leo Lapworth) потратил некоторое время на переезд на Puppet и создание виртуальных машин Vagrant для разработки. Поэтому теперь можно очень быстро запустить собственный MetaCPAN https://github.com/CPAN-API/metacpan-developer.

Как начать помогать работать над MetaCPAN?

Вначале хочу сказать, что всегда можно получить помощь на канале #metacpan в сети irc.perl.org. Это очень дружественный канал с небольшим количеством экспертов, поэтому можно себя комфортно чувствовать, задавая вопросы. Мы всегда стараемся разбираться вместе.

Если вы только хотите работать над сайтом, это довольно просто:

git clone https://github.com/CPAN-API/metacpan-web.git

cd metacpan-web

carton install
./bin/prove t
carton exec plackup -p 5001 -r

Если вы хотите работать над API, тогда лучшим способом будет начать с ВМ https://github.com/CPAN-API/metacpan-developer.

В каком состоянии сейчас находится iCPAN? Можешь объяснить, что это вообще такое?

iCPAN — универсальное iOS-приложение, это значит, что оно работает на iPhone и iPad, но с некоторыми изменениями в интерфейсе. В нем находится практически весь Pod самых актуальных версий CPAN-модулей. Приложение может быть полезным в самолете, в метро или очереди в банке. Не нужно интернет-соединения. Также оно позволяет добавлять модули в избранное (на iPhone как минимум). Однако, iCPAN уже несколько месяцев нет на App Store. Если не платить взносы Apple, они убирают приложение из магазина, что и произошло со мной. Недавно я думал об оживлении проекта. Если достаточно людей поддержат упомянутый далее тикет, я снова выложу приложение https://github.com/oalders/iCPAN/issues/19.

Где сейчас работаешь? Сколько времени проводишь за написанием Perl-кода?

Я работаю в MaxMind.com. Большинство времени, помимо обсуждений, я провожу за написанием Perl-кода, и у меня есть возможность содействовать открытым проектам во время своей работы. Мне очень повезло в этом смысле.

Стоит ли советовать молодым программистам учить сейчас Perl?

Считаю, что да. Я не думаю, что стоит советовать учить только один язык, но Perl это хороший язык в инструментарии молодого программиста. В течение нескольких лет я был вовлечен в программы Google Summer of Code и GNOME’s Outreach Program for Women и я видел, как многие талантливые люди делали интересные вещи на Perl.

Я не уверен, что количество работающих Perl-разработчиков уменьшается, но они явно становятся старше. Мы можем решить это привлечением молодых людей программированию на Perl. У “Girls Who Code”, похоже, правильная идея http://girlswhocode.com/.

Моим дочерям сейчас 3 и 5 лет, им еще рано начинать заниматься Perl. Если у них появится интерес к программированию, я бы начал с чего-нибудь наподобие Scratch, но обязательно бы познакомил их с Perl в свое время.

Вопросы от читателей

Как у тебя получается совмещать работу программистом, делать вклад в открытые проекты и играть в музыкальной группе?! Помогает ли создание музыки программированию?

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

Не знаю, помогает ли музыка с программированием. Я учил древнегреческий и латинский в университете, и это мне очень помогло. Если вы можете читать древнегреческий, вам проще разобраться в чужом коде.

Почему http://wundersolutions.com выдает nginx-страницу?

Упс! Только что починил. :)

Dancer или Mojolicious?

Mojolicious. Недавно на работе у нас было длительное обсуждение фреймворков. Я провел много времени, разбираясь в разных вариантах, и делал даже доклад о том, что выяснил. Наша группа затем решила перейти на Mojolicious в следующих проектах. Также я использую его для своих личных поделок, и мне очень нравится, что так просто начать разработку и запустить сайт.

Кроме безболезненного старта, меня сильно впечатлило качество документации. Мне не приходится напрягаться и искать, что мне нужно, и я это очень ценю.

Начнешь ли снова писать статьи?

Вообще-то я уже начал. У меня в запасе есть несколько вещей, о которых хочется написать, поэтому множество статей не за горами.

Вячеслав Тихановский


Обзор CPAN за ноябрь 2014 г. | Содержание
Нас уже 1393. Больше подписчиков — лучше выпуски!

Комментарии к статье