SlideShare a Scribd company logo
Searching CPAN o ine

       Léon Brocard


 London Perl Workshop
Me


 Léon Brocard
 French, live in London
 Like food
 Like the colour orange
 Founded Amsterdam.pm, Bath.pm, Croydon.pm
 Now in London.pm
 Started YAPC::Europe
 Perl hacker
What is CPAN?

 CPAN is an acronym standing for Comprehensive
 Perl Archive Network, an archive of over ,
 modules of so ware written in Perl, as well as
 documentation for it.[ ] It has a presence on the
 World Wide Web at www.cpan.org and is mirrored
 worldwide on more than        locations [ ]. CPAN can
 denote either the archive network itself, or the Perl
 program that acts as an interface to the network and
 as an automated so ware installer (somewhat like a
 package manager). Most so ware on CPAN is free
 so ware.[ ]
CPAN is big



       ,    Uploads
      ,     Distributions
      ,     Modules
  ,        Uploaders
Searching CPAN Offline
It all began a long time ago



  TPC , during OSCON
  In
  Monterey, CA
I got annoyed



  search.cpan.org was closed source (and still is)
  I am not always connected to the internet
  Latency
Kobesearch



  I played with searching, but didn’t get very far
  Randy Kobes wrote Search::CPAN::Lite
  (kobesearch.cpan.org)
  Needs to extract les and generates a database
Time passes



  Didn’t do anything for a while
  Needing to extract les and generate a database was
  too much work
Needed distraction from writing a book




  www.tickmyboxes.com
Insight in the shower



  Do not need to extract CPAN
  Indexes are good enough
  Can extract on the y
Actually



  Not CPAN, but MINICPAN
  CPAN::Mini & minicpan
  CPAN::Mini::Webserver
And




 Assume we have a (MINI)CPAN mirror
 Dependencies: all of CPAN
Dependencies

  App::Cache, Archive::Peek, CGI, CPAN::Mini,
  File::Type, HTTP::Server::Simple,
  IO::Capture::Stdout, List::MoreUtils, MIME::Base ,
  Module::InstalledVersion, Moose,
  Parse::CPAN::Authors, Parse::CPAN::Whois,
  Parse::CPAN::Meta, Parse::CPAN::Packages,
  Path::Class, Pod::Simple::HTML, Perl ::Say, PPI,
  PPI::HTML, Search::QueryParser, String::CamelCase,
  Template::Declare, Test::More
Release




   .   Sat Aug   : :   BST
Releases
   .   Sat Aug  : : BST
   .   Fri Aug   : : BST
   .   Fri Aug  : : BST
   .   Tue Aug      : : BST
   .      u Aug      : : CEST
   .   Fri Aug    : : CEST
   .   Mon Aug        : : BST
   .   Tue Aug       : : BST
   .   Fri Aug      : : BST
   .      u Aug     : : BST
   .   Sun Sep    : : BST
   .      u Sep    : : BST
Other people



  andya, bricas, corion, clkao, evdb, jesse, markf,
  martijn, miyagawa, ranguard, rjbs, rsavage,
  tokuhirom
All about search


  brocard
  acme::bu y
  acme bu y
  acme-bu y
  blood -orange
  bu y -test
  camel case
Other features



  Bonjour
  OpenSearch
  Acts like search.cpan.org
  Acts like CPAN mirror
  Install modules
Show me



 $ minicpan_webserver
 HTTP::Server::Simple: You can connect to
 your server at http://localhost:2963/
Searching CPAN Offline
Searching CPAN Offline
Searching CPAN Offline
Searching CPAN Offline
Searching CPAN Offline
Searching CPAN Offline
Searching CPAN Offline
Future




  Slight tweaks
Summary




 CPAN::Mini
 CPAN::Mini::Webserver

More Related Content

Searching CPAN Offline

  • 1. Searching CPAN o ine Léon Brocard London Perl Workshop
  • 2. Me Léon Brocard French, live in London Like food Like the colour orange Founded Amsterdam.pm, Bath.pm, Croydon.pm Now in London.pm Started YAPC::Europe Perl hacker
  • 3. What is CPAN? CPAN is an acronym standing for Comprehensive Perl Archive Network, an archive of over , modules of so ware written in Perl, as well as documentation for it.[ ] It has a presence on the World Wide Web at www.cpan.org and is mirrored worldwide on more than locations [ ]. CPAN can denote either the archive network itself, or the Perl program that acts as an interface to the network and as an automated so ware installer (somewhat like a package manager). Most so ware on CPAN is free so ware.[ ]
  • 4. CPAN is big , Uploads , Distributions , Modules , Uploaders
  • 6. It all began a long time ago TPC , during OSCON In Monterey, CA
  • 7. I got annoyed search.cpan.org was closed source (and still is) I am not always connected to the internet Latency
  • 8. Kobesearch I played with searching, but didn’t get very far Randy Kobes wrote Search::CPAN::Lite (kobesearch.cpan.org) Needs to extract les and generates a database
  • 9. Time passes Didn’t do anything for a while Needing to extract les and generate a database was too much work
  • 10. Needed distraction from writing a book www.tickmyboxes.com
  • 11. Insight in the shower Do not need to extract CPAN Indexes are good enough Can extract on the y
  • 12. Actually Not CPAN, but MINICPAN CPAN::Mini & minicpan CPAN::Mini::Webserver
  • 13. And Assume we have a (MINI)CPAN mirror Dependencies: all of CPAN
  • 14. Dependencies App::Cache, Archive::Peek, CGI, CPAN::Mini, File::Type, HTTP::Server::Simple, IO::Capture::Stdout, List::MoreUtils, MIME::Base , Module::InstalledVersion, Moose, Parse::CPAN::Authors, Parse::CPAN::Whois, Parse::CPAN::Meta, Parse::CPAN::Packages, Path::Class, Pod::Simple::HTML, Perl ::Say, PPI, PPI::HTML, Search::QueryParser, String::CamelCase, Template::Declare, Test::More
  • 15. Release . Sat Aug : : BST
  • 16. Releases . Sat Aug : : BST . Fri Aug : : BST . Fri Aug : : BST . Tue Aug : : BST . u Aug : : CEST . Fri Aug : : CEST . Mon Aug : : BST . Tue Aug : : BST . Fri Aug : : BST . u Aug : : BST . Sun Sep : : BST . u Sep : : BST
  • 17. Other people andya, bricas, corion, clkao, evdb, jesse, markf, martijn, miyagawa, ranguard, rjbs, rsavage, tokuhirom
  • 18. All about search brocard acme::bu y acme bu y acme-bu y blood -orange bu y -test camel case
  • 19. Other features Bonjour OpenSearch Acts like search.cpan.org Acts like CPAN mirror Install modules
  • 20. Show me $ minicpan_webserver HTTP::Server::Simple: You can connect to your server at http://localhost:2963/
  • 28. Future Slight tweaks