My CPAN Modules
TIME rest time current/total
TopicsPlaceHolder

My CPAN Modules

YAPC::Fukuoka

Jul 1st, 2017

Profile

songmu みんなのGo言語書影

Japanese CPAN Authors

http://acme.cpanauthors.org/for/japanese 調べ

L

これが

perl -MString::Random -E 'say String::Random->new->randregex("[0-9a-zA-Z]{12}")'

こう書ける

perl -ML -E 'say String::Random->new->randregex("[0-9a-zA-Z]{12}")'

HTML::Shakan

Test::mysqld

Plack::App::Directory::Markdown

MySQL::Warmer

サーバー起動直後にMySQLのbuffer poolにデータ乗っけてくれるクエリ発行してくれる君

参考 お手軽InnoDBウォームアップを実現するMySQL::Warmerの話をGotanda.pm #2でしてきました

Riji

Jekyll, HugoみたいなMarkdownで記事を書く方式のブログツール(静的サイトジェネレーター)。gitの履歴を見てRSSを生成してくれるところがイケてる。僕個人のBlogもこれ。CMS的に使うことも。(perl入学式とかGotanda.pmとか)

Git::Repository::FileHistory

GitDDL::Migrator

gitとSQL::Translatorを利用して、greatなDBマイグレーションを実現するやつ

Redis::LeaderBoard

Redisを使って、ランキング作ってくれる君

Mackerel::Webhook::Receiver

MackerelのWebhookを受け付けるサーバーを立てられる

DBIx::Schema::DSL

DBスキーマをDSLで書けるやつ。DDLを吐き出す機能も。Anikiの内部でも利用されている。

Cache::Redis

Cache::CacheインターフェースでRedisに値突っ込んでくれるやつ

Parse::Crontab

crontabの設定を読み込んでパースしてくれるやつ。

Test::RedisServer

DBIx::FixtureLoader

JSONとかYAMLとかCSVとかその辺をゆるふわにDBに突っ込んでくれる君。shiba.yamlのデータがshibaテーブルに入る。

Github::Hooks::Receiver

GitHubのwebhookを受け取って、イベントに応じて処理をdispatchさせられるやつ。

参考 Jenkinsでパラメータ付ビルドでブランチ指定出来るようにしつつ、GithubのHookも受け付けられるようにする

Plack::Middleware::HubSignature

App::LJ

Daiku

Puncheur

App::RunCron

cronスクリプト動かすためのラッパー。思想は horenso に受け継がれている。

参考 Perl Hackers Hub 第25回 cron周りのベストプラクティス(3)

Amon2::Auth::Site::Hatena

App::KV2JSON

コマンドラインで簡単にJSONを組み立てるためのツール。流行らなかったが後発で似たようなのでてきたりして少し悔しい思いをした。

% kv2json hoge=fuga
{"hoge":"fuga"}

Archer

tokuhirom作。古のdeployツール。「Mobageを支える技術」って本に載ってる。

App::CPANGhq

cpan-ghqってコマンドが入る。CPANモジュールを指定すると、ghqでそのリポジトリのモジュールをgetしてくれる。

App::CPANRepo

cpan-repoってコマンドが入る。CPANモジュールを指定すると、そのモジュールのリポジトリ出力してくれる。

Task::BeLike::SONGMU

自分のお気に入りモジュールが入ってる。サラのPerlをビルドしてから

% cpanm Task::BeLike::SONGMU

とかやるとひと通り欲しい奴が入って便利

Test::Requires::Scanner

Test::Requires 'Test::mysqld';みたいに指定されているモジュールを抜き出す。

scan-prereqs-cpanfileの--scan-test-requiresオプションの中で使われています。

% scan-prereqs-cpanfile --scan-test-requires

参考: scan-prereqs-cpanfile now support --scan-test-requires option which cares the modules specified by Test::Requires

Test::mysqld::DatadirDumper

Test::mysqld用のデータディレクトリを作ってくれる。 あらかじめ、スキーマとFixture流し込んだディレクトリを作っておくことで、Test::mysqldの起動を爆速にする

Gearman::Starter

tokuhirom製のスクリプトをCPANize。 Gearmanを便利に使うやつ。いろいろgracefulな感じになってたり、監視ポート開いてたりする。

Parse::CommandLine

"perl -e 'say 1'" みたいな文字列を@ARGVに分割してくれるやつ。Daikuのために書いた。

後に、 mattnさんによってGoに移植された →https://github.com/mattn/go-shellwords

Script::Ichigeki

一回しか処理させたくないスクリプトを実行するためのやつ。use Script::Ichigeki;を書いたスクリプトを実行すると、そのスクリプトは2回以上実行できない。

App::LLEvalBot

lleval用のIRC bot。Perl以外にも対応。多分もう動かない。

Text::Markdown::Slidy

Markdownをsectionにぶった切ってくれるやつ。

'===='とか'----'とかを見てsectionとかにぶった切ってくれる。このスライドもこれで作ってる。

Const::Common

以下のようにして、共通定数を定義する奴

package MyApp::Const;
use Const::Common (
    Hoge => 'Fuga',
    Piyo => 'Piyo',
);

Const::Common::Generator

Const::Commonの定数定義パッケージを自動生成してくれるやつ。

MySQL::Partition

MySQLのパーティションを切るときに便利なやつ

APNS::Agent

Appleのpush通知を送ってくれるHTTPサーバーを立ててくれるやつ。curlでpush通知送れて便利。

% apns-agent --certificate=path/to/cert.cer --private-key=path/to/cer.key
Twiggy: Accepting connections at http://0.0.0.0:4905/

とかで起動できる。

参考HTTPでiOSのpush通知を送れる未来がやってきた(APNS::Agentの紹介)

App::FaceCDN

CDNの挙動をエミュレートするサーバーのつもりだった…。使わなかった。

Teng::Plugin::SearchJoined

Tengでjoinを実現するためのplugin

UnazuSan

リアクションIRC Botフレームワーク何故か最近記事でちょっと取り上げられた。

Cache::Scaler::WithExpiry

有効期限付きのメモリキャッシュを実現するやつ

Teng::Plugin::ResultSet

TengでResultSetを実現するやつ。Iteratorを拡張している。

Text::Markup::Any

MarkdownとかTextileとか同じインターフェースで使えるようにするやつ

Ark

typester作のWAF。軽量Catalyst

Ark::Plugin::Reproxy::Callback

なんかArkのプラグイン

Ark::Plguin::I18N

Arkで多言語対応するやつ

Ark::Plugin::Authentication

Arkで色々認証してくれるやつ

Ark::Plugin::MobileJP

Arkにモバイル対応入れるやつ

SQL::Translator::Producer::Teng

Tengのスキーマファイル書くのがたるいので、SQLから自動生成したかった

Path::AttrRouter

typester作。Arkのルーティングに使われてる謎モジュール

DBIx::CSVDumper

なんかクエリ投げて、CSVに整形して出力してくれるやつ。Excelとかで読める。

SQL::Maker::Plugin::JoinSelect

SQL::MakerでJOINするやつ

Plack::App::Directory::Markdown

ディレクトリ以下のmarkdownを整形してくれるやつ

Plack::App::DataSection

__DATA__以下のファイルをマッピングしてplackで配信してくれる

Config::PL

.plファイルを設定ファイルで簡単に使うためのやつ。

use Config::PL;
my $conf = config_do 'config.pl';

Time::Piece::Plus

takujiさん作。Time::PieceのラッパーでDateTimeっぽく使えるようにしたやつ。

速いが最近だとTime::Momentで良い。

Math::CheckDigits

チェックディジット計算するやつ。バーコード処理とかで重宝。僕の最初のCPANモジュール

Plack::Middleware::Auth::OAuth

hidekさん作。OAuth1の署名検証するやつ。

Plack::Middleware::UnicodePictogramFallback::TypeCast

Unicode絵文字をtypecast絵文字の画像にマッピングしてくれるやつ

HTTP::MobileAgent::Plugin::SmartPhone

スマートフォン判別するプラグイン。メンテ放置されてる。

Plack::Middleware::Auth::QueryString

query stringでの認証機構を提供するやつ。APIとかに。

Encode::JP::Mobile::UnicodeEmoji

Unicode絵文字をEncode::JP::Mobile絵文字にマッピングするやつ

Plack::Middleware::Woothee

UAをWootheeを使って判別してくれるPlack::Middleware

Ukigumo::Server

うきぐもちゃん

Ukgumo::Client

うきぐもクライアント