5. by the way.
• many Japanese perl mongers came to this
YAPC::EU.
• Please go talk to them if you have any
questions.
• Let's introduce some modules by people who
are here
6. YUSUKEBE
• He is a famous perl
monger in japan.
• He'll talk this YAPC::EU.
today 15:00 at Aula F1
7. App::revealup
• "HTTP Server application for viewing
Markdown formatted text as slides"
• This is Cool Markdown based presentation
tool.
• Yusukebe will talk about this tool at today
15:00 in Aula F1 . so, I skip this.
12. Perl::Lint
• "Yet Another Perl Source Code Linter"
• faster than other lint tools.
• Next up His talk in this hall. so, skip!
13. Perl::PrereqScanner::Lite
• a lightweight prereq scanner for perl.
• that is x30 faster than Perl::PrereqScanner
• http://moznion.hatenadiary.com/entry/
2014/03/21/231805
14. • "why need fast ?"
• "Because we are japanese !!!!"
15. PAPIX
• he gives perl classes as a
hobby
• He will talk about His
teaching experience at
tomorrow(4 sep) Aula F2
16. WebService::Mackerel
• Control Panel API Client for mackerel.io
• Change Server label on mackerel
• add/remove watch servers.
• (this is not agent)
17. Mackerel ?
• Mackerel.io is Performance monitor tool on
cloud.
• "A Revolutionary New Kind of Application
Performance Management"
• Some popular japanese servicers are starting
to use it.
21. Riji
• markdown and git based blog tool.
• Builtin httpd server for entry preview
• static HTML file generate
• entries are version controlled by git
• Atom feed support
22. how to setup, add entry,
and see preview.
$ cpanm Riji
$ mkdir some_dir; cd some_dir
$ riji setup
$ vi article/entry/start.md
$ git add . ; git commit -a
$ riji server
$ open http://localhost:3650/entry/start.html
23. publish static files
# edit blog meta data once.(author, title...)
$ vi riji.yml
# generate htmls in blog dir
$ riji publish
• Of course, Static files are fast and secure!
27. why need mruby?
• mRuby can be used to share code in web and
mobile apps(Android,iOS) (ex: calculation
score).
• also, Some web server can using mruby as
module, that for nginx, Apache, H2O(httpd).
28. LESTRRAT
• "It's not me."
• He already talked (at today
12:00 in Salon de Grados).
29. STF
• STF is HTTP based S3-like storage.
• http://stf-storage.github.io/
30. metrics from 2014 jun
• 100 TB
• 600,000,000 objects
• it's serving 400Mbps at peak hours without a
hitch.
31. MIYAGAWA
• oh men, He is not Japanese(sawyerx said at
today's keynote!)
• and...too famous. skip!
32. • That's all, japanese perl monger that they
came to this YAPC::EU.
35. Test::mysqld
• mysqld runner for tests
• Makes new temporary empty mysqld process.
• mysqld process will be terminate on the end
of execute.
36. example
use DBI;
use Test::mysqld;
my $mysqld = Test::mysqld->new(
my_cnf => {
'skip-networking' => '', # no TCP socket
}
);
my $dbh = DBI->connect(
$mysqld->dsn(dbname => 'test'),
);
37. Server::Starter
• "a superdaemon for hot-deploying server
programs"
• Gracefull restart(hot-deploying)
• Only exit old process if new process is
successfully booted.(safe!)
• No resource leak
38. Requirements a (your)
server program.
• Support Gracefull shutdown
• Use socket FD passed from server starter to
app
39. usage (with Starman)
start_server
--interval 5
--port 8000
--signal-on-hup=QUIT # for Starman
--
starman --preload-app myapp.psgi
• start_server command will install when install
Server::Starter.
40. Starlet
• "a simple, high-performance PSGI/Plack HTTP
server"
• Very heavily used in japan.
41. example
$ plackup -s Starlet app.psgi
• some available parameters for performance
tuning.
• https://github.com/kazuho/Starlet
42. use Server::Starter usage
$ start_server --port=8000 --
plackup -s Starlet app.psgi
• this is very popular style in japan.
45. install
• (skip, sorry!)
• http://kazeburo.github.io/GrowthForecast/
#install
• (Need RRDtool. it install may be bit hard)
46. set cron (sample task)
*/5 * * * *
curl
-F number=`mysql -BN -e 'select count(*) from member' game`
http://gf.host/api/game/member/register 2>&1 > /dev/null
• count some table row num
• ... and send metric to GF server every 5min.
• /game/member/register is graph name
• zero-conf!
48. HRForecast
• Usage similar as
GrowthForecast
• Difference between
Growthforcast are:
• Resolution is per hour.
• Can post past date
metric data.
• Does not need RRDtool.
58. GET example
use Furl;
my $furl = Furl->new(
agent => 'MyGreatUA/2.0',
timeout => 10,
);
my $res = $furl->get('http://example.jp/');
print $res->content;
59. POST example
use Furl;
my $furl = Furl->new(
agent => 'MyGreatUA/2.0',
timeout => 10,
);
my $res = $furl->post(
'http://example.jp/', # URL
[ X-MY-HEADER=>'ohmy' ], # headers
[ foo => 'bar' ], # form data (HashRef/FileHandle are also okay)
);
print $res->content;
60. why not LWP??
• "Why does it need to be faster ?"
• "because, we are japanese !!!!"
Ofcourse, we need that.
61. That's it for now
I want introduce you more, but that's all the time
I have.
Router::Boom, DBIx::QueryLog,
Mojolicious::Plugin::Web::Auth, Test::Time,
Test::Time::At, Text::LTSV, App::PRT,
Plack::App::PHPCGI, DBIx::Sunny, Proclet,
Harriet, DBIx::TransactionManager,
Data::MessagePack, Teng, Daiku, Minilla,
DBIx::Schema::DSL, App::Watcher,
HTTP::Parser::XS, XML::Tree::PP, Test::TCP, ....
62. Awesome Perl
• Awesome-list for perl
• awesome-list is a list of nice module/tools.
• https://github.com/hachiojipm/awesome-perl
• maintain by hachioji.pm