SlideShare una empresa de Scribd logo
1 de 140
Descargar para leer sin conexión
CPAN:
                 модули, авторы и
                  документация
                     YAPC::Russia 2009




17 мая 2009 г.
Что такое CPAN?



17 мая 2009 г.
Comprehensive Perl
17 мая 2009 г.
Archive Network
17 мая 2009 г.
Comprehensive Perl
                  Archive Network
                       По-русски?




17 мая 2009 г.
«Всеобъемлющая сеть
                     архивов Perl»
                                Википедия
                    http://ru.wikipedia.org/wiki/CPAN




17 мая 2009 г.
«Сеть Всемирного
                 Архива Perl-кода»
                          Куроводство / Наблы
                  http://dklab.ru/chicken/nablas/36.html




17 мая 2009 г.
«Всесторонняя Сеть
                    Архива Perl»
                       PROMT Translator
                     http://www.translate.ru




17 мая 2009 г.
Comprehensive Perl
                  Archive Network
                          Google Translate
                    http://google.com/translate




17 мая 2009 г.
«Обширный Perl
                    архив»
                                Xpoint.ru
                 http://xpoint.ru/know-how/Perl/CPAN




17 мая 2009 г.
«Гигантское Хранилище
                 Ресурсов Perl»
                         perl в России
                 http://www.perl.org.ru/cpan/




17 мая 2009 г.
«   Perl           »
                      По-китайски




17 мая 2009 г.
me: как ты переведешь CPAN на
        русский?)
        Павел: буквально?
        централизованное хранилище
        перл-модулей или глобальное
        хранилище перл-модулей
        всё нах**
        я спать
17 мая 2009 г.
CPAN – архив Perl
                 Центральное хранилище всего, что касается Perl




17 мая 2009 г.
CPAN – большой архив
                 Центральное хранилище всего, что касается Perl




17 мая 2009 г.
CPAN – очень большой
                 Центральное хранилище всего, что касается Perl




17 мая 2009 г.
15750
                 модулей


17 мая 2009 г.
7369
                 авторов


17 мая 2009 г.
5533
                  МБ

17 мая 2009 г.
206
                 зеркал

17 мая 2009 г.
429,6
                 в неделю

17 мая 2009 г.
59,4
                  в день

17 мая 2009 г.
Количество дистрибутивов в год
17 мая 2009 г.
CPAN:

                 •модули
                 • авторы
                 • документация
                 • исходный код, порты и скрипты

17 мая 2009 г.
CPAN:

                 •модули
                 • авторы
                 • документация
                 • исходный код, порты и скрипты

17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Last.fm API. Где Perl?
17 мая 2009 г.
Net::LastFM
                 Net::LastFM::Submission


17 мая 2009 г.
Модули
                 • каждый пользуется модулями
                 • писать модули нужно
                 • зачем публиковать модули?
                  • поделиться
                  • сделать мир лучше :)
                  • получить удовольствие
17 мая 2009 г.
Почему важно для
                         меня?
                 • В 2006 разработал HTTP::Request::Interface
                  • Абстрактный класс для разбора запроca и
                     обертки для CGI, ModPerl, FCGI, POE и др.
                  • Я не опубликовал на CPAN и забросил его
                  • Теперь использую HTTP::Body и
                     Mojo::Parameters


17 мая 2009 г.
Почему важно для
                         меня?
                 • В 2008 я все-таки получил PAUSE ID
                 • В 2009 я стал CPAN-автором
                  • Загрузил несколько модулей
                  • Постоянно обновляю их
                  • Не пользуюсь: use lib ‘/path/to/my/lib’;
                  • perl -MCPAN -eshell
17 мая 2009 г.
http://search.cpan.org/~sharifuln/
17 мая 2009 г.
Что мешает
                 опубликовать модуль
                      на CPAN?


17 мая 2009 г.
или



17 мая 2009 г.
Почему я сразу не
                 смог стать автором
                       CPAN?


17 мая 2009 г.
Какой модуль
                 загрузить первым? :)


17 мая 2009 г.
Net::LastFM::Submission
                 • Last.fm Submission API
                  • На CPAN были похожие реализации
                    • не устраивали меня
                    • реализовывали старый протокол
                    • код – не очень :)
                    • автор модуля не ответил мне
17 мая 2009 г.
Есть модуль, рабочий,
                         но...


17 мая 2009 г.
Есть модуль, рабочий,
                         но...
                 • Как зарегистрироваться на CPAN?
                 • Я слышал про PAUSE, что это такое?
                 • Блин, мой модуль нужно документировать...
                 • Блин, еще и тесты писать...
                 • Ну .tar.gz я сделаю сам :)

17 мая 2009 г.
Есть модуль, рабочий,
                         но...
                 • Как зарегистрироваться на CPAN?
                 • Я слышал про PAUSE, что это такое?
                 • Блин, мой модуль нужно документировать...
                 • Блин, еще и тесты писать...
                 • Ну .tar.gz я сделаю сам :)

17 мая 2009 г.
Есть модуль, рабочий,
                         но...
                 • Как зарегистрироваться на CPAN?
                 • Я слышал про PAUSE, что это такое?
                 • Блин, модуль нужно документировать...
                 • Блин, еще и тесты писать...
                 • Ну .tar.gz я сделаю сам :)

17 мая 2009 г.
Есть модуль, рабочий,
                         но...
                 • Как зарегистрироваться на CPAN?
                 • Я слышал про PAUSE, что это такое?
                 • Блин, модуль нужно документировать...
                 • Блин, еще и тесты писать...
                 • Ну .tar.gz я сделаю сам :)

17 мая 2009 г.
Есть модуль, рабочий,
                         но...
                 • Как зарегистрироваться на CPAN?
                 • Я слышал про PAUSE, что это такое?
                 • Блин, модуль нужно документировать...
                 • Блин, еще и тесты писать...
                 • Ну, *.tar.gz я сделаю сам :)

17 мая 2009 г.
Что такое PAUSE?



17 мая 2009 г.
The Perl Authors
17 мая 2009 г.
Upload Server
17 мая 2009 г.
The Perl Authors
                  Upload Server
                      По-русски?




17 мая 2009 г.
Зэ Perl Авторы
                 Загрузка Сервер
                    Тут все понятно :)




17 мая 2009 г.
PAUSE
                 Сервер для загрузки модулей на CPAN




17 мая 2009 г.
Получение PAUSE ID
                 • Фамилия и Имя
                  • Используйте кириллицу
                  • I trust the Text::Unidecode
                 • Email
                  • Китайский спам :)
                  • I trust the Gmail spam filter
                 • PAUSE ID
                  • [A-Z]{3,9} ?
17 мая 2009 г.
Получение PAUSE ID
                 • Фамилия и Имя
                  • Используйте кириллицу
                  • I trust the Text::Unidecode
                 • Email
                  • Китайский спам :)
                  • I trust the Gmail spam filter
                 • PAUSE ID
                  • [A-Z]{3,9} ?
17 мая 2009 г.
Получение PAUSE ID
                 • Фамилия и Имя
                  • Используйте кириллицу
                  • I trust the Text::Unidecode
                 • Primary email и @cpan.org
                  • Китайский спам :)
                  • I trust the Gmail spam filter
                 • PAUSE ID
                  • [A-Z]{3,9} ?
17 мая 2009 г.
Gravatar.com
                  @cpan.org
                     Аватар




17 мая 2009 г.
Получение PAUSE ID
                 • Фамилия и Имя
                  • Используйте кириллицу
                  • I trust the Text::Unidecode
                 • Email
                  • Китайский спам :)
                  • I trust the Gmail spam filter
                 • PAUSE ID
                  • [A-Z]{3,9} ?
17 мая 2009 г.
SHARIFULN
                  Почему 9, а не 10?




17 мая 2009 г.
SHARIFULIN
                   Почему 9, а не 10?




17 мая 2009 г.
Who is Who (long)
17 мая 2009 г.
Я решил найти
                 русских CPAN-авторов


17 мая 2009 г.
Поиск русских
                      CPAN-авторов
                 • Нашел всех, у кого имя написано
                   кириллицей: qr/[а-я]+/
                 • Составил список русских имен и фамилий
                 • Распарсил список «Who is Who»
                 • Исключил украинцев, белорусов и болгар
                 • И разослал «спам» на открытые email :)
17 мая 2009 г.
113
                 русских CPAN-авторов


17 мая 2009 г.
73
                 неактивных PAUSE ID


17 мая 2009 г.
CPAN faces русских авторов
17 мая 2009 г.
Acme::CPANAuthors::
             Russian/Ukrainian/Norwegian
                   http://github.com/sharifulin/acme-cpanauthors-russian
                  http://github.com/sharifulin/acme-cpanauthors-ukrainian
                 http://github.com/sharifulin/acme-cpanauthors-norwegian




17 мая 2009 г.
Есть PAUSE ID, модуль
                      и желание :)


17 мая 2009 г.
Подготовка
                 дистрибутива для
                    публикации


17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
find ./lib -type f
                         lib/Net/LastFM/Submission.pm
                 lib/POE/Component/Net/LastFM/Submission.pm




17 мая 2009 г.
Каждый модуль
                 должен иметь версию
                      our $VERSION = '0.64';




17 мая 2009 г.
Важно!
                 Начинать следует c 0.01
                   Версия 0.1 == 0.10
                  Devel-версия 0.64_1




17 мая 2009 г.
Документация в
                  формате POD
                     *.pm и *.pod




17 мая 2009 г.
Документация писать
                       нужно!
                           чтобы CPAN не превратился
                 «в репозиторий плохо документированного говна»




17 мая 2009 г.
Основной язык
                 документации –
                     English


17 мая 2009 г.
Jcode::CP932 – WTF?
17 мая 2009 г.
Jcode::CP932 – что за нах? :)
17 мая 2009 г.
Например,
                   документация на
                       русском:
                 RU/Name-Module.pod

17 мая 2009 г.
find ./t -type f
                       t/00-load.t
                       t/01-new.t
                        t/02-api.t
                    t/pod-coverage.t
                         t/pod.t




17 мая 2009 г.
Тесты писать тоже
                      нужно!


17 мая 2009 г.
Test::More
                 Test::Exception
                 очень просто и этого достаточно




17 мая 2009 г.
find ./examples -type f
                          examples/enc.pl
                          examples/poe.pl
                       examples/poe_client.pl
                          examples/test.pl




17 мая 2009 г.
script/ bin/ ...
                 POD-документация из скриптов
                    отображается на CPAN




17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
Changes
                 Revision history for Net-LastFM-Submission

                 0.64 2009-05-02 19:50
                 
 Edit POD and add POD to examples/*

                 0.63 2009-05-02 16:30
                 
 Support an existing PoCo::Client::HTTP into
                 PoCo::Net::LastFM::Submission (version 0.23). RT
                 #45436 (thanks Martijn van Beers)
                 
 Add examples/poe_client.pl
                 
 Test suite (t/01-new.t and t/02-api.t)
                 
 Fix small bugs in Net::LastFM::Submission and edit
                 POD

17 мая 2009 г.
Module::Changes::
                    ADAMK
                 для разбора Changes Adam Kennedy




17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
MANIFEST
                 Build.PL
                 Changes
                 MANIFEST
                 README
                 lib/Net/LastFM/Submission.pm
                 lib/POE/Component/Net/LastFM/Submission.pm
                 .lastfmrc
                 t/00-load.t
                 t/01-new.t
                 t/02-api.t
                 t/pod-coverage.t
                 t/pod.t
                 examples/test.pl

17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
README
                 NAME

                 Net::LastFM::Submission - Perl interface to the Last.fm
                 Submissions Protocol

                 SYNOPSIS

                 
     use Net::LastFM::Submission;
                 
     my $submit = Net::LastFM::Submission->new(
                 
     
 'user'    => 'net_lastfm',
                 
     
 'password' => '12',
                 
     );
                 ...

17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
ExtUtils::MakeMaker
                    Module::Build
                    Module::Install
                      Dist::Zilla

17 мая 2009 г.
Module::Build
                 use Module::Build;

                 my $builder = Module::Build->new(
                 
 module_name        => 'Net::LastFM::Submission',
                 
 dist_abstract      => 'Perl interface to the Last.fm ...',
                 
 license            => 'perl',
                 
 dist_author        => 'Anatoly Sharifulin <email>',
                 
 dist_version_from => 'lib/Net/LastFM/Submission.pm',
                 
 build_requires => {
                 
 
 'Test::More'       => 0,
                 
 
 'Test::Exception' => 0,
                 
 
 ...
                 
 },

17 мая 2009 г.
Module::Build
                 
 requires => {
                 
 
 'perl'               => '5.008',
                 
 
 'LWP::UserAgent' => 0,
                       ...
                 
 },
                 
 meta_merge => {
                 
 
 resources => {
                 
 
 
 repository => 'http://github.com/sharifulin/net-
                 lastfm-submission/tree',
                 
 
 },
                 
 
 keywords => ['last.fm', 'submission',],
                 
 },
                    add_to_cleanup => [],

17 мая 2009 г.
Что такое дистрибутив?
                 • Архив Имя-Модуля-Версия.tar.gz
                  • lib/ t/ examples/ ...
                  • Changes
                  • MANIFEST
                  • README
                  • Makefile.PL Build.PL
                  • META.yml ...
17 мая 2009 г.
Module::Starter
                          Для создания дистрибутива с нуля

                 module-starter --module FirstModule --email <email>
                  --author Anatoly Sharifulin --builder Module::Builder




17 мая 2009 г.
Cборка
                 дистрибутива
                   perl Build.PL

                   ./Build

                   ./Build dist

                   ./Build disttest

                   ./Build fakeinstall

                   ./Build realclean

17 мая 2009 г.
Дистрибутив готов



17 мая 2009 г.
Контроль версий?
                   Github.com
                        git




17 мая 2009 г.
http://github.com/sharifulin/net-
                         lastfm-submission
17 мая 2009 г.
Загрузка дистрибутива
                       на PAUSE


17 мая 2009 г.
Интерфейс загрузки
17 мая 2009 г.
Интерфейс загрузки
17 мая 2009 г.
CPAN::Inject
                       CPAN::Uploader
                 Автоматизация процесса загрузки дистрибутивов




17 мая 2009 г.
Счастье!



17 мая 2009 г.
Счастье!?



17 мая 2009 г.
Ошибки в POD :)



17 мая 2009 г.
CPAN Testers отчет
           http://matrix.cpantesters.org/?dist=Net-LastFM-Submission+0.2




17 мая 2009 г.
CPAN Testers Matrix
17 мая 2009 г.
CPAN Testers Matrix
17 мая 2009 г.
CPAN Testing Service
                 http://cpants.perl.org/dist/overview/Net-LastFM-Submission




17 мая 2009 г.
CPAN TS для дистрибутива
17 мая 2009 г.
CPAN TS по автору
17 мая 2009 г.
CPAN TS по автору
17 мая 2009 г.
Первый Bug Report
                 https://rt.cpan.org/Public/Bug/Display.html?id=45436




17 мая 2009 г.
RT #45436
17 мая 2009 г.
Неожиданность:
                  хабраэффект
                 http://habrahabr.ru/blogs/perl/51736/




17 мая 2009 г.
Хабраэффект
17 мая 2009 г.
Какие еще есть
                 сервисы CPAN?


17 мая 2009 г.
http://kobesearch.cpan.org/
17 мая 2009 г.
http://search.cpan.org/uploads.rdf
17 мая 2009 г.
http://hexten.net/cpan-faces/
17 мая 2009 г.
http://annocpan.org/
17 мая 2009 г.
http://cpanratings.perl.org/
17 мая 2009 г.
http://www.cpanforum.com/
17 мая 2009 г.
http://deps.cpantesters.org/
17 мая 2009 г.
http://ali.as/top100/
17 мая 2009 г.
http://backpan.cpan.org/
17 мая 2009 г.
Я решил сделать
                     свой :)
                    Acme::CPANAuthors::*
                   CPAN Recent Uploads RSS




17 мая 2009 г.
http://cpan.perlrussia.org/
17 мая 2009 г.
http://cpan.perlrussia.org/
                       Russian/rss.xml
17 мая 2009 г.
http://cpan.perlrussia.org/
                   Russian/SHARIFULN/
17 мая 2009 г.
P. S.
                 Русская документация
                                   POD2::RU
                   http://translated.by/sharifulin/inprocess/




17 мая 2009 г.
use Perl
                   or die




17 мая 2009 г.
use CPAN
                    or die




17 мая 2009 г.
JFDI



17 мая 2009 г.
Спасибо за внимание!
                      Анатолий Шарифулин
                        RostovOnDon.pm




17 мая 2009 г.

Más contenido relacionado

La actualidad más candente

Nikishin Root Conf
Nikishin Root ConfNikishin Root Conf
Nikishin Root ConfLiudmila Li
 
Организация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииОрганизация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииSQALab
 
Java в образовательном и производственном пространстве Беларуси
Java в образовательном и производственном пространстве БеларусиJava в образовательном и производственном пространстве Беларуси
Java в образовательном и производственном пространстве БеларусиSQALab
 
(RUS) IBM Lotus social software solutions
(RUS) IBM Lotus social software solutions(RUS) IBM Lotus social software solutions
(RUS) IBM Lotus social software solutionsPetr Valing
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1Liudmila Li
 
Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Anatoly Sharifulin
 
Щастливият програмист
Щастливият програмистЩастливият програмист
Щастливият програмистNikolay Bachiyski
 
ProMedia about Ambient Media
ProMedia about Ambient MediaProMedia about Ambient Media
ProMedia about Ambient MediaIvan Diyachenko
 
Оптимизация сайта на Wordpress: темы, плагины, лайфхаки
Оптимизация сайта на Wordpress: темы, плагины, лайфхакиОптимизация сайта на Wordpress: темы, плагины, лайфхаки
Оптимизация сайта на Wordpress: темы, плагины, лайфхакиcollaborator.pro
 
JAM4ME
JAM4MEJAM4ME
JAM4ME2tique
 
МАСТЕР-КЛАСС. Руководство командой разработчиков ПО
МАСТЕР-КЛАСС. Руководство командой разработчиков ПОМАСТЕР-КЛАСС. Руководство командой разработчиков ПО
МАСТЕР-КЛАСС. Руководство командой разработчиков ПОSQALab
 
Flash Site
Flash SiteFlash Site
Flash SiteLerika
 

La actualidad más candente (19)

Nikishin Root Conf
Nikishin Root ConfNikishin Root Conf
Nikishin Root Conf
 
lenvendo on bitrix cms
lenvendo on bitrix cmslenvendo on bitrix cms
lenvendo on bitrix cms
 
Организация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииОрганизация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компании
 
Bgp
BgpBgp
Bgp
 
Java в образовательном и производственном пространстве Беларуси
Java в образовательном и производственном пространстве БеларусиJava в образовательном и производственном пространстве Беларуси
Java в образовательном и производственном пространстве Беларуси
 
(RUS) IBM Lotus social software solutions
(RUS) IBM Lotus social software solutions(RUS) IBM Lotus social software solutions
(RUS) IBM Lotus social software solutions
 
Open Source
Open SourceOpen Source
Open Source
 
video hostings architecture
video hostings architecturevideo hostings architecture
video hostings architecture
 
присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1присяжный Root Conf2009 Beta 1
присяжный Root Conf2009 Beta 1
 
Media planing
Media planingMedia planing
Media planing
 
Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎
 
Щастливият програмист
Щастливият програмистЩастливият програмист
Щастливият програмист
 
priorbank ecommerce
priorbank ecommercepriorbank ecommerce
priorbank ecommerce
 
ProMedia about Ambient Media
ProMedia about Ambient MediaProMedia about Ambient Media
ProMedia about Ambient Media
 
Оптимизация сайта на Wordpress: темы, плагины, лайфхаки
Оптимизация сайта на Wordpress: темы, плагины, лайфхакиОптимизация сайта на Wordpress: темы, плагины, лайфхаки
Оптимизация сайта на Wordpress: темы, плагины, лайфхаки
 
JAM4ME
JAM4MEJAM4ME
JAM4ME
 
RusCrypto'2009
RusCrypto'2009RusCrypto'2009
RusCrypto'2009
 
МАСТЕР-КЛАСС. Руководство командой разработчиков ПО
МАСТЕР-КЛАСС. Руководство командой разработчиков ПОМАСТЕР-КЛАСС. Руководство командой разработчиков ПО
МАСТЕР-КЛАСС. Руководство командой разработчиков ПО
 
Flash Site
Flash SiteFlash Site
Flash Site
 

Más de Anatoly Sharifulin

Ещё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхЕщё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхAnatoly Sharifulin
 
ASO Аудит для приложений и игр
ASO Аудит для приложений и игрASO Аудит для приложений и игр
ASO Аудит для приложений и игрAnatoly Sharifulin
 
ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)Anatoly Sharifulin
 
AppFollow митап в Москве
AppFollow митап в МосквеAppFollow митап в Москве
AppFollow митап в МосквеAnatoly Sharifulin
 
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...Anatoly Sharifulin
 
Аналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayАналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayAnatoly Sharifulin
 
Конкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийКонкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийAnatoly Sharifulin
 
Аналитика приложений конкурентов
Аналитика приложений конкурентовАналитика приложений конкурентов
Аналитика приложений конкурентовAnatoly Sharifulin
 
Аналитика магазинов приложений
Аналитика магазинов приложенийАналитика магазинов приложений
Аналитика магазинов приложенийAnatoly Sharifulin
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложенийAnatoly Sharifulin
 
Анализ приложений конкурентов
Анализ приложений конкурентовАнализ приложений конкурентов
Анализ приложений конкурентовAnatoly Sharifulin
 
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»Anatoly Sharifulin
 
Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Anatoly Sharifulin
 
Основной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruОсновной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruAnatoly Sharifulin
 
ASO оптимизация и продвижение мобильных приложений
ASO  оптимизация и продвижение мобильных приложенийASO  оптимизация и продвижение мобильных приложений
ASO оптимизация и продвижение мобильных приложенийAnatoly Sharifulin
 

Más de Anatoly Sharifulin (20)

Ещё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхЕщё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играх
 
ASO Аудит для приложений и игр
ASO Аудит для приложений и игрASO Аудит для приложений и игр
ASO Аудит для приложений и игр
 
ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)
 
ASO для iOS 11
ASO для iOS 11ASO для iOS 11
ASO для iOS 11
 
AppFollow митап в Москве
AppFollow митап в МосквеAppFollow митап в Москве
AppFollow митап в Москве
 
ASO Best Practices 2016
ASO Best Practices 2016ASO Best Practices 2016
ASO Best Practices 2016
 
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
 
Аналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayАналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google Play
 
ASO FAQ
ASO FAQASO FAQ
ASO FAQ
 
ASO: Best Practices 2015
ASO: Best Practices 2015ASO: Best Practices 2015
ASO: Best Practices 2015
 
AppFollow Demo Day ФРИИ
AppFollow Demo Day ФРИИAppFollow Demo Day ФРИИ
AppFollow Demo Day ФРИИ
 
Конкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийКонкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложений
 
Аналитика приложений конкурентов
Аналитика приложений конкурентовАналитика приложений конкурентов
Аналитика приложений конкурентов
 
Аналитика магазинов приложений
Аналитика магазинов приложенийАналитика магазинов приложений
Аналитика магазинов приложений
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
Анализ приложений конкурентов
Анализ приложений конкурентовАнализ приложений конкурентов
Анализ приложений конкурентов
 
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
 
Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?
 
Основной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruОсновной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ru
 
ASO оптимизация и продвижение мобильных приложений
ASO  оптимизация и продвижение мобильных приложенийASO  оптимизация и продвижение мобильных приложений
ASO оптимизация и продвижение мобильных приложений
 

CPAN: модули, авторы и документация

  • 1. CPAN: модули, авторы и документация YAPC::Russia 2009 17 мая 2009 г.
  • 2. Что такое CPAN? 17 мая 2009 г.
  • 5. Comprehensive Perl Archive Network По-русски? 17 мая 2009 г.
  • 6. «Всеобъемлющая сеть архивов Perl» Википедия http://ru.wikipedia.org/wiki/CPAN 17 мая 2009 г.
  • 7. «Сеть Всемирного Архива Perl-кода» Куроводство / Наблы http://dklab.ru/chicken/nablas/36.html 17 мая 2009 г.
  • 8. «Всесторонняя Сеть Архива Perl» PROMT Translator http://www.translate.ru 17 мая 2009 г.
  • 9. Comprehensive Perl Archive Network Google Translate http://google.com/translate 17 мая 2009 г.
  • 10. «Обширный Perl архив» Xpoint.ru http://xpoint.ru/know-how/Perl/CPAN 17 мая 2009 г.
  • 11. «Гигантское Хранилище Ресурсов Perl» perl в России http://www.perl.org.ru/cpan/ 17 мая 2009 г.
  • 12. « Perl » По-китайски 17 мая 2009 г.
  • 13. me: как ты переведешь CPAN на русский?) Павел: буквально? централизованное хранилище перл-модулей или глобальное хранилище перл-модулей всё нах** я спать 17 мая 2009 г.
  • 14. CPAN – архив Perl Центральное хранилище всего, что касается Perl 17 мая 2009 г.
  • 15. CPAN – большой архив Центральное хранилище всего, что касается Perl 17 мая 2009 г.
  • 16. CPAN – очень большой Центральное хранилище всего, что касается Perl 17 мая 2009 г.
  • 17. 15750 модулей 17 мая 2009 г.
  • 18. 7369 авторов 17 мая 2009 г.
  • 19. 5533 МБ 17 мая 2009 г.
  • 20. 206 зеркал 17 мая 2009 г.
  • 21. 429,6 в неделю 17 мая 2009 г.
  • 22. 59,4 в день 17 мая 2009 г.
  • 24. CPAN: •модули • авторы • документация • исходный код, порты и скрипты 17 мая 2009 г.
  • 25. CPAN: •модули • авторы • документация • исходный код, порты и скрипты 17 мая 2009 г.
  • 26. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 27. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 28. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 29. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 30. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 31. Last.fm API. Где Perl? 17 мая 2009 г.
  • 32. Net::LastFM Net::LastFM::Submission 17 мая 2009 г.
  • 33. Модули • каждый пользуется модулями • писать модули нужно • зачем публиковать модули? • поделиться • сделать мир лучше :) • получить удовольствие 17 мая 2009 г.
  • 34. Почему важно для меня? • В 2006 разработал HTTP::Request::Interface • Абстрактный класс для разбора запроca и обертки для CGI, ModPerl, FCGI, POE и др. • Я не опубликовал на CPAN и забросил его • Теперь использую HTTP::Body и Mojo::Parameters 17 мая 2009 г.
  • 35. Почему важно для меня? • В 2008 я все-таки получил PAUSE ID • В 2009 я стал CPAN-автором • Загрузил несколько модулей • Постоянно обновляю их • Не пользуюсь: use lib ‘/path/to/my/lib’; • perl -MCPAN -eshell 17 мая 2009 г.
  • 37. Что мешает опубликовать модуль на CPAN? 17 мая 2009 г.
  • 39. Почему я сразу не смог стать автором CPAN? 17 мая 2009 г.
  • 40. Какой модуль загрузить первым? :) 17 мая 2009 г.
  • 41. Net::LastFM::Submission • Last.fm Submission API • На CPAN были похожие реализации • не устраивали меня • реализовывали старый протокол • код – не очень :) • автор модуля не ответил мне 17 мая 2009 г.
  • 42. Есть модуль, рабочий, но... 17 мая 2009 г.
  • 43. Есть модуль, рабочий, но... • Как зарегистрироваться на CPAN? • Я слышал про PAUSE, что это такое? • Блин, мой модуль нужно документировать... • Блин, еще и тесты писать... • Ну .tar.gz я сделаю сам :) 17 мая 2009 г.
  • 44. Есть модуль, рабочий, но... • Как зарегистрироваться на CPAN? • Я слышал про PAUSE, что это такое? • Блин, мой модуль нужно документировать... • Блин, еще и тесты писать... • Ну .tar.gz я сделаю сам :) 17 мая 2009 г.
  • 45. Есть модуль, рабочий, но... • Как зарегистрироваться на CPAN? • Я слышал про PAUSE, что это такое? • Блин, модуль нужно документировать... • Блин, еще и тесты писать... • Ну .tar.gz я сделаю сам :) 17 мая 2009 г.
  • 46. Есть модуль, рабочий, но... • Как зарегистрироваться на CPAN? • Я слышал про PAUSE, что это такое? • Блин, модуль нужно документировать... • Блин, еще и тесты писать... • Ну .tar.gz я сделаю сам :) 17 мая 2009 г.
  • 47. Есть модуль, рабочий, но... • Как зарегистрироваться на CPAN? • Я слышал про PAUSE, что это такое? • Блин, модуль нужно документировать... • Блин, еще и тесты писать... • Ну, *.tar.gz я сделаю сам :) 17 мая 2009 г.
  • 48. Что такое PAUSE? 17 мая 2009 г.
  • 49. The Perl Authors 17 мая 2009 г.
  • 51. The Perl Authors Upload Server По-русски? 17 мая 2009 г.
  • 52. Зэ Perl Авторы Загрузка Сервер Тут все понятно :) 17 мая 2009 г.
  • 53. PAUSE Сервер для загрузки модулей на CPAN 17 мая 2009 г.
  • 54. Получение PAUSE ID • Фамилия и Имя • Используйте кириллицу • I trust the Text::Unidecode • Email • Китайский спам :) • I trust the Gmail spam filter • PAUSE ID • [A-Z]{3,9} ? 17 мая 2009 г.
  • 55. Получение PAUSE ID • Фамилия и Имя • Используйте кириллицу • I trust the Text::Unidecode • Email • Китайский спам :) • I trust the Gmail spam filter • PAUSE ID • [A-Z]{3,9} ? 17 мая 2009 г.
  • 56. Получение PAUSE ID • Фамилия и Имя • Используйте кириллицу • I trust the Text::Unidecode • Primary email и @cpan.org • Китайский спам :) • I trust the Gmail spam filter • PAUSE ID • [A-Z]{3,9} ? 17 мая 2009 г.
  • 57. Gravatar.com @cpan.org Аватар 17 мая 2009 г.
  • 58. Получение PAUSE ID • Фамилия и Имя • Используйте кириллицу • I trust the Text::Unidecode • Email • Китайский спам :) • I trust the Gmail spam filter • PAUSE ID • [A-Z]{3,9} ? 17 мая 2009 г.
  • 59. SHARIFULN Почему 9, а не 10? 17 мая 2009 г.
  • 60. SHARIFULIN Почему 9, а не 10? 17 мая 2009 г.
  • 61. Who is Who (long) 17 мая 2009 г.
  • 62. Я решил найти русских CPAN-авторов 17 мая 2009 г.
  • 63. Поиск русских CPAN-авторов • Нашел всех, у кого имя написано кириллицей: qr/[а-я]+/ • Составил список русских имен и фамилий • Распарсил список «Who is Who» • Исключил украинцев, белорусов и болгар • И разослал «спам» на открытые email :) 17 мая 2009 г.
  • 64. 113 русских CPAN-авторов 17 мая 2009 г.
  • 65. 73 неактивных PAUSE ID 17 мая 2009 г.
  • 66. CPAN faces русских авторов 17 мая 2009 г.
  • 67. Acme::CPANAuthors:: Russian/Ukrainian/Norwegian http://github.com/sharifulin/acme-cpanauthors-russian http://github.com/sharifulin/acme-cpanauthors-ukrainian http://github.com/sharifulin/acme-cpanauthors-norwegian 17 мая 2009 г.
  • 68. Есть PAUSE ID, модуль и желание :) 17 мая 2009 г.
  • 69. Подготовка дистрибутива для публикации 17 мая 2009 г.
  • 70. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 71. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 72. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 73. find ./lib -type f lib/Net/LastFM/Submission.pm lib/POE/Component/Net/LastFM/Submission.pm 17 мая 2009 г.
  • 74. Каждый модуль должен иметь версию our $VERSION = '0.64'; 17 мая 2009 г.
  • 75. Важно! Начинать следует c 0.01 Версия 0.1 == 0.10 Devel-версия 0.64_1 17 мая 2009 г.
  • 76. Документация в формате POD *.pm и *.pod 17 мая 2009 г.
  • 77. Документация писать нужно! чтобы CPAN не превратился «в репозиторий плохо документированного говна» 17 мая 2009 г.
  • 78. Основной язык документации – English 17 мая 2009 г.
  • 79. Jcode::CP932 – WTF? 17 мая 2009 г.
  • 80. Jcode::CP932 – что за нах? :) 17 мая 2009 г.
  • 81. Например, документация на русском: RU/Name-Module.pod 17 мая 2009 г.
  • 82. find ./t -type f t/00-load.t t/01-new.t t/02-api.t t/pod-coverage.t t/pod.t 17 мая 2009 г.
  • 83. Тесты писать тоже нужно! 17 мая 2009 г.
  • 84. Test::More Test::Exception очень просто и этого достаточно 17 мая 2009 г.
  • 85. find ./examples -type f examples/enc.pl examples/poe.pl examples/poe_client.pl examples/test.pl 17 мая 2009 г.
  • 86. script/ bin/ ... POD-документация из скриптов отображается на CPAN 17 мая 2009 г.
  • 87. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 88. Changes Revision history for Net-LastFM-Submission 0.64 2009-05-02 19:50 Edit POD and add POD to examples/* 0.63 2009-05-02 16:30 Support an existing PoCo::Client::HTTP into PoCo::Net::LastFM::Submission (version 0.23). RT #45436 (thanks Martijn van Beers) Add examples/poe_client.pl Test suite (t/01-new.t and t/02-api.t) Fix small bugs in Net::LastFM::Submission and edit POD 17 мая 2009 г.
  • 89. Module::Changes:: ADAMK для разбора Changes Adam Kennedy 17 мая 2009 г.
  • 90. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 91. MANIFEST Build.PL Changes MANIFEST README lib/Net/LastFM/Submission.pm lib/POE/Component/Net/LastFM/Submission.pm .lastfmrc t/00-load.t t/01-new.t t/02-api.t t/pod-coverage.t t/pod.t examples/test.pl 17 мая 2009 г.
  • 92. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 93. README NAME Net::LastFM::Submission - Perl interface to the Last.fm Submissions Protocol SYNOPSIS use Net::LastFM::Submission; my $submit = Net::LastFM::Submission->new( 'user' => 'net_lastfm', 'password' => '12', ); ... 17 мая 2009 г.
  • 94. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 95. ExtUtils::MakeMaker Module::Build Module::Install Dist::Zilla 17 мая 2009 г.
  • 96. Module::Build use Module::Build; my $builder = Module::Build->new( module_name => 'Net::LastFM::Submission', dist_abstract => 'Perl interface to the Last.fm ...', license => 'perl', dist_author => 'Anatoly Sharifulin <email>', dist_version_from => 'lib/Net/LastFM/Submission.pm', build_requires => { 'Test::More' => 0, 'Test::Exception' => 0, ... }, 17 мая 2009 г.
  • 97. Module::Build requires => { 'perl' => '5.008', 'LWP::UserAgent' => 0, ... }, meta_merge => { resources => { repository => 'http://github.com/sharifulin/net- lastfm-submission/tree', }, keywords => ['last.fm', 'submission',], }, add_to_cleanup => [], 17 мая 2009 г.
  • 98. Что такое дистрибутив? • Архив Имя-Модуля-Версия.tar.gz • lib/ t/ examples/ ... • Changes • MANIFEST • README • Makefile.PL Build.PL • META.yml ... 17 мая 2009 г.
  • 99. Module::Starter Для создания дистрибутива с нуля module-starter --module FirstModule --email <email> --author Anatoly Sharifulin --builder Module::Builder 17 мая 2009 г.
  • 100. Cборка дистрибутива perl Build.PL ./Build ./Build dist ./Build disttest ./Build fakeinstall ./Build realclean 17 мая 2009 г.
  • 102. Контроль версий? Github.com git 17 мая 2009 г.
  • 103. http://github.com/sharifulin/net- lastfm-submission 17 мая 2009 г.
  • 104. Загрузка дистрибутива на PAUSE 17 мая 2009 г.
  • 107. CPAN::Inject CPAN::Uploader Автоматизация процесса загрузки дистрибутивов 17 мая 2009 г.
  • 110. Ошибки в POD :) 17 мая 2009 г.
  • 111. CPAN Testers отчет http://matrix.cpantesters.org/?dist=Net-LastFM-Submission+0.2 17 мая 2009 г.
  • 112. CPAN Testers Matrix 17 мая 2009 г.
  • 113. CPAN Testers Matrix 17 мая 2009 г.
  • 114. CPAN Testing Service http://cpants.perl.org/dist/overview/Net-LastFM-Submission 17 мая 2009 г.
  • 115. CPAN TS для дистрибутива 17 мая 2009 г.
  • 116. CPAN TS по автору 17 мая 2009 г.
  • 117. CPAN TS по автору 17 мая 2009 г.
  • 118. Первый Bug Report https://rt.cpan.org/Public/Bug/Display.html?id=45436 17 мая 2009 г.
  • 119. RT #45436 17 мая 2009 г.
  • 120. Неожиданность: хабраэффект http://habrahabr.ru/blogs/perl/51736/ 17 мая 2009 г.
  • 122. Какие еще есть сервисы CPAN? 17 мая 2009 г.
  • 132. Я решил сделать свой :) Acme::CPANAuthors::* CPAN Recent Uploads RSS 17 мая 2009 г.
  • 134. http://cpan.perlrussia.org/ Russian/rss.xml 17 мая 2009 г.
  • 135. http://cpan.perlrussia.org/ Russian/SHARIFULN/ 17 мая 2009 г.
  • 136. P. S. Русская документация POD2::RU http://translated.by/sharifulin/inprocess/ 17 мая 2009 г.
  • 137. use Perl or die 17 мая 2009 г.
  • 138. use CPAN or die 17 мая 2009 г.
  • 140. Спасибо за внимание! Анатолий Шарифулин RostovOnDon.pm 17 мая 2009 г.