50 CPAN modules developed in 2 years; my experience as a developer in Japan’s Perl Community
TIME rest time current/total
TopicsPlaceHolder

50 CPAN modules developed in 2 years; my experience as a developer in Japan’s Perl Community

YAPC::EU 2015

Sep 4th, 2015

Thank you

Me

songmu

Works

I ❤ CPAN

I had a first baby this year just on my 35th birthday

about Hatena

Hatena co., ltd.

Hatena's services

Hatena Diary / Hatena Blog

Hatena Diary / Hatena Blog

Hatena Bookmark

Hatena Bookmark

Mackerel

Number of users of Hatena

Teams

Hatena using perl

Main Topic

Outline

My first CPAN module

My second CPAN module

My New Project

Main Module stacks of the project

These are not my CPAN modules

CPAN modules that I've made

Modules around Redis


Redis is a very cool KVS which greated toward online game development.

Redis

Cache::Redis

Cache::Redis

my $redis = Redis->new;
my $cache = Cache::Redis->new(redis => $redis);
$cache->set(blah => 1);
say $cache->get('blah'); # 1

Redis::LeaderBoard

Redis::LeaderBoard

use Redis;
use Redis::LeaderBoard;
my $redis = Redis->new;
my $lb = Redis::LeaderBoard->new(
    redis => $redis,
    key   => 'leader_board:1',
    order => 'asc', # asc/desc, desc as default
);
$lb->set_score(one => 100);
$lb->set_score(two =>  50);
my ($rank, $score) = $lb->get_rank_with_score('one'); #=> (1, 100)

Modules around databases

DBIx::Schema::DSL

DSL for generating SQL's create statement, similar with ruby's ActiveRecord.
Using SQL::Translator internally

use DBIx::Schema::DSL;
create_table book => columns {
    integer 'id',   primary_key, auto_increment;
    varchar 'name', null;
    integer 'author_id', not_null;
    decimal 'price', 'size' => [4,2];

    add_index  'author_id_idx' => ['author_id'];
    belongs_to 'author';
};

GitDDL::Migrator

MySQL::Partition

MySQL::Partition is a utility module for MySQL partitions.

use MySQL::Partition;
my $dbh = DBI->connect(@connect_info);
my $list_partition = MySQL::Partition->new(
    dbh        => $dbh,
    type       => 'list',
    table      => 'test',
    expression => 'event_id',
);
$list_partition->is_partitioned;
$list_partition->create_partitions('p1' => 1); # ALTER TABLE test PARTITION BY LIST ...
$list_partition->has_partition('p1'); # true
$list_partition->add_partitions('p2_3' => '2, 3');

I appreciate Community

favorite CPAN module I've created

Riji

Riji needs git

Thank You!