great tools heavily used in japan, you don't know

64
Great Tools Heavily Used In Japan, You Don't Know.

Upload: junichi-ishida

Post on 15-Apr-2017

4.642 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Great Tools Heavily Used In Japan, You Don't Know

Great Tools Heavily Used In

Japan, You Don't Know.

Page 2: Great Tools Heavily Used In Japan, You Don't Know

I amJunichi Ishida

(aka uzulla)

Tokyo/JapanHachioji.pm

Page 3: Great Tools Heavily Used In Japan, You Don't Know
Page 4: Great Tools Heavily Used In Japan, You Don't Know

I am not lestrrat !(I wear glasses)

Page 5: Great Tools Heavily Used In Japan, You Don't Know

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

Page 6: Great Tools Heavily Used In Japan, You Don't Know

YUSUKEBE

• He is a famous perl monger in japan.

• He'll talk this YAPC::EU. today 15:00 at Aula F1

Page 7: Great Tools Heavily Used In Japan, You Don't Know

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.

Page 8: Great Tools Heavily Used In Japan, You Don't Know

WebService::Simple

• Simple Interface To Web Services APIs

• popular for beginners

• but very useful

Page 9: Great Tools Heavily Used In Japan, You Don't Know

example

use WebService::Simple;

# make instancemy $flickr = WebService::Simple->new( base_url => "http://api.flickr.com/services/rest/", param => { api_key => "your_api_key", });

# send GET request with paramsmy $response = $flickr->get( { method => "flickr.test.echo", name => "value" });

# parse resposemy $thing = $response->parse_response;

Page 10: Great Tools Heavily Used In Japan, You Don't Know

that's all !• this is very simple. i like this a lot.

Page 11: Great Tools Heavily Used In Japan, You Don't Know

MOZNION

• His project "Perl::Lint" was accepted for TPF Grant.

Page 12: Great Tools Heavily Used In Japan, You Don't Know

Perl::Lint

• "Yet Another Perl Source Code Linter"

• faster than other lint tools.

• Next up His talk in this hall. so, skip!

Page 13: Great Tools Heavily Used In Japan, You Don't Know

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

Page 14: Great Tools Heavily Used In Japan, You Don't Know

• "why need fast ?"• "Because we are japanese !!!!"

Page 15: Great Tools Heavily Used In Japan, You Don't Know

PAPIX

• he gives perl classes as a hobby

• He will talk about His teaching experience at tomorrow(4 sep) Aula F2

Page 16: Great Tools Heavily Used In Japan, You Don't Know

WebService::Mackerel

• Control Panel API Client for mackerel.io

• Change Server label on mackerel

• add/remove watch servers.

• (this is not agent)

Page 17: Great Tools Heavily Used In Japan, You Don't Know

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.

Page 18: Great Tools Heavily Used In Japan, You Don't Know
Page 19: Great Tools Heavily Used In Japan, You Don't Know
Page 20: Great Tools Heavily Used In Japan, You Don't Know

SONGMU

• He will talk at 4 sep 15:00 Aula F2

Page 21: Great Tools Heavily Used In Japan, You Don't Know

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

Page 22: Great Tools Heavily Used In Japan, You Don't Know

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

Page 23: Great Tools Heavily Used In Japan, You Don't Know

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!

Page 24: Great Tools Heavily Used In Japan, You Don't Know

KARUPANERURA

• He will talk about performance tuning, at 4 sep 12:00 in Salon de Grados

Page 25: Great Tools Heavily Used In Japan, You Don't Know

mRuby (perl module)• https://metacpan.org/pod/mRuby

• mRuby is mruby binding for perl5.

• (mruby is lightweight and easily embeddable Ruby interpreter)

Page 26: Great Tools Heavily Used In Japan, You Don't Know

exampleuse mRuby;my $mruby = mRuby->new(file => $filename);my $ret = $mruby->run();

Page 27: Great Tools Heavily Used In Japan, You Don't Know

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).

Page 28: Great Tools Heavily Used In Japan, You Don't Know

LESTRRAT

• "It's not me."

• He already talked (at today 12:00 in Salon de Grados).

Page 29: Great Tools Heavily Used In Japan, You Don't Know

STF

• STF is HTTP based S3-like storage.

• http://stf-storage.github.io/

Page 30: Great Tools Heavily Used In Japan, You Don't Know

metrics from 2014 jun

• 100 TB

• 600,000,000 objects

• it's serving 400Mbps at peak hours without a hitch.

Page 31: Great Tools Heavily Used In Japan, You Don't Know

MIYAGAWA• oh men, He is not Japanese(sawyerx said at

today's keynote!)

• and...too famous. skip!

Page 32: Great Tools Heavily Used In Japan, You Don't Know

• That's all, japanese perl monger that they came to this YAPC::EU.

Page 33: Great Tools Heavily Used In Japan, You Don't Know

Ofcourse, More Perl monger in

japan

Page 34: Great Tools Heavily Used In Japan, You Don't Know

KAZUHO• Author of H2O (HTTP/2 support optimized

httpd)

Page 35: Great Tools Heavily Used In Japan, You Don't Know

Test::mysqld• mysqld runner for tests

• Makes new temporary empty mysqld process.

• mysqld process will be terminate on the end of execute.

Page 36: Great Tools Heavily Used In Japan, You Don't Know

exampleuse DBI;use Test::mysqld;

my $mysqld = Test::mysqld->new( my_cnf => { 'skip-networking' => '', # no TCP socket });

my $dbh = DBI->connect( $mysqld->dsn(dbname => 'test'),);

Page 37: Great Tools Heavily Used In Japan, You Don't Know

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

Page 38: Great Tools Heavily Used In Japan, You Don't Know

Requirements a (your) server program.• Support Gracefull shutdown

• Use socket FD passed from server starter to app

Page 39: Great Tools Heavily Used In Japan, You Don't Know

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.

Page 40: Great Tools Heavily Used In Japan, You Don't Know

Starlet• "a simple, high-performance PSGI/Plack HTTP

server"

• Very heavily used in japan.

Page 41: Great Tools Heavily Used In Japan, You Don't Know

example$ plackup -s Starlet app.psgi

• some available parameters for performance tuning.

• https://github.com/kazuho/Starlet

Page 42: Great Tools Heavily Used In Japan, You Don't Know

use Server::Starter usage$ start_server --port=8000 -- \ plackup -s Starlet app.psgi

• this is very popular style in japan.

Page 43: Great Tools Heavily Used In Japan, You Don't Know

KAZEBURO

Page 44: Great Tools Heavily Used In Japan, You Don't Know

GrowthForecast• http://kazeburo.github.io/GrowthForecast/

• "Lightning Fast Graphing/Visualization"

• Make a graph all sorts of metrics via a WebAPI

• Easiest way to draw some metrics graph.

Page 45: Great Tools Heavily Used In Japan, You Don't Know

install• (skip, sorry!)

• http://kazeburo.github.io/GrowthForecast/#install

• (Need RRDtool. it install may be bit hard)

Page 46: Great Tools Heavily Used In Japan, You Don't Know

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!

Page 47: Great Tools Heavily Used In Japan, You Don't Know

result

• easy! simple! convenient!

• You can add graph in a minute !

Page 48: Great Tools Heavily Used In Japan, You Don't Know

HRForecast

• Usage similar as GrowthForecast

• Difference between Growthforcast are:

• Resolution is per hour.

• Can post past date metric data.

• Does not need RRDtool.

Page 49: Great Tools Heavily Used In Japan, You Don't Know

Cookie::Baker• "Cookie string generator / parser"

• It can cook cookies!

Page 50: Great Tools Heavily Used In Japan, You Don't Know

• "Why do you need this ?"

• "This is CGI.pm free"

• "understand."

Page 51: Great Tools Heavily Used In Japan, You Don't Know

Gazelle• Very fast psgi server• faster than Starman, Starlet.

Page 52: Great Tools Heavily Used In Japan, You Don't Know

x2 Faster than starman

• https://github.com/kazeburo/Gazelle/wiki/Benchmark

Page 53: Great Tools Heavily Used In Japan, You Don't Know

• "why does it need to be so fast ?"

• "because we are japanese !!!!!"

Page 54: Great Tools Heavily Used In Japan, You Don't Know

TOKUHIROM

Page 55: Great Tools Heavily Used In Japan, You Don't Know

Web::Query• "Yet another scraping library like jQuery"

• very friendly scraping

Page 56: Great Tools Heavily Used In Japan, You Don't Know

exampleuse Web::Query;

wq('http://hachiojipm.org/') ->find('h2.entry-title a') ->each(sub { my $i = shift; printf("%d %s\n", $i+1, $_->text); });

• this is like a jQuery

Page 57: Great Tools Heavily Used In Japan, You Don't Know

Furl• "Lightning-fast URL fetcher"• Simple and Fast http client

Page 58: Great Tools Heavily Used In Japan, You Don't Know

GET exampleuse Furl;my $furl = Furl->new( agent => 'MyGreatUA/2.0', timeout => 10,);

my $res = $furl->get('http://example.jp/');print $res->content;

Page 59: Great Tools Heavily Used In Japan, You Don't Know

POST exampleuse 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;

Page 60: Great Tools Heavily Used In Japan, You Don't Know

why not LWP??• "Why does it need to be faster ?"

• "because, we are japanese !!!!"

Ofcourse, we need that.

Page 61: Great Tools Heavily Used In Japan, You Don't Know

That's it for nowI 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, ....

Page 62: Great Tools Heavily Used In Japan, You Don't Know

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

Page 63: Great Tools Heavily Used In Japan, You Don't Know

Awesome Perl: Patches Welcome

• I am waiting for your pull-requests!

Page 64: Great Tools Heavily Used In Japan, You Don't Know

Finally! that's all !!• If my talk too fast...

• (Why? because...)

• this slide uploaded here.

• http://bit.ly/uzulla_yapceu2015