AWS全リージョンの情報取得をperlで書いてみた

全リージョンの情報取得 (AWS x Ruby) の Python版を作ってみましたー aws.lefthandz.org こちらを拝見して「ほうほう、Perlでもあったら便利かなー」と思い VM::EC2でさくっと書いてみました。 スクリプト 使い方 # 環境変数を設定しておきましょう export …

Plack::Middleware::Pod::Site というモジュールを書いてみた

自作Plack/psgiアプリのPodをWebで見たいとは思いませんか!思いませんか… 中身なんですがPod::Site使ってパスをrewiteしてるだけなので 実はMiddlewareじゃなくていいかもしれませんね。 しかしMiddlewareでenableするだけでWebPod見れたら まあそこそこ便…

VM::EC2 EC2をコントロールするモジュール

cpan_newをぼーっと眺めてたら流れてきた。 http://search.cpan.org/~lds/VM-EC2-1.02/lib/VM/EC2.pm まだリリースされたばかりのようなのでなんとも言えませんが、 最新版のec2 APIに対応しているようですしなかなか良さ気です。 Net::Amazon::EC2にパッチ…

Amon2で遅延ロードされるモジュールを確認する方法メモ?

こんなんで合ってるのかな…? use してみたらきちんと共有されてるメモリは増えてた lib/App/Web.pm に以下の記述を追加して、遅延ロードされるモジュールを確認 チェックスクリプト(Starlet) 参考 http://bayashi.net/wiki/perl/app_cow

サイトのクローリングにはScrappyがすごくいいかもしれない

クローリング楽しいですよね! perlで高速にクロールしたいのであればGunghoなど使うのがいいかもしれませんが、 基本手軽にやりたいことが多いので WWW::Mechanize+Web::Scraper という組み合わせでクロールするのが定番でした。 しかしたまたま Scrappy を…

App::pmgrepバージョンアップ

https://github.com/toritori0318/p5-App-pmgrep新機能を2つほど追加しました。 追加されたコマンド pm-grep-inc pm-grep-project pm-grep-inc (@INC内検索) pm-grep-inc <search_string>そのままですね。 @INCに入ってるモジュールをackで検索します。 pm-grep-project (</search_string>…

ログモジュールのベンチマーク

主要なモジュールでベンチマーク取ってみました。 単純にファイル出力するだけの使い方にしてみました。出力フォーマットも統一しています。 Log::Dispatch Log::Handler Log4perl Log::Minimal バージョン perl 5.14.1 Log::Dispatch 2.29 Log::Handler 0.7…

plackアプリのステータスを表示するmuninプラグイン

Plack::Middleware::ServerStatus::Lite を利用して、 muninのグラフでplackアプリのステータスを表示するプラグインを書いてみました。 スクリプト 使い方 1. Plack::Middleware::ServerStatus::Liteを有効にしておく 2. /usr/share/munin/plugins に 上記…

実働日(営業日)を判定するモジュールを書いてみた

業務系のシステムに携わっている方には馴染み深いと思いますが、 「月初実働3日目に処理」とか「月末最終実働日に処理」とかよくある話ですよね。 この処理をしたい要件が出たのでcpanを漁ってみましたが 見つからなかったので書いてみました。 ソースコー…

東京の放射線量をIRCに通知するperlスクリプト

今更感がありますが。 最初はこちらの放射線APIを使わせていただこうかと思いましたが 何故か東京がなかったので別ページから。 都内の環境放射線測定結果(東京都新宿区百人町)に最新の放射線量が掲載されているようなので このページをスクレイピングして…

EC2へのssh接続を楽にするスクリプトかいた

EC2のインスタンスが増えてくるとssh接続が面倒になりませんか?僕は面倒です! そこで、少しだけssh接続が楽になるスクリプトを書いてみました。 スクリプト 前提条件 Net::Amazon::EC2 cpan上のNet::Amazon::EC2はAPIバージョンが古いためタグ名などが取れ…

電力供給状況をIRCに通知するperlスクリプト

東京電力電力供給状況APIからJSON取得してIRCに通知。 10分おきにAPIチェックして、更新されてたらIRCにsendします。 会社で使ってる。

Catalyst + Xslate + I18N::Handle で国際化対応してみる

CatalystだとCatalyst::Plugin::I18Nを使うのが楽みたいですが、 Xslateだと使えないようなので Text::Xslateのドキュメントを参考に自前で設定してみました。 (ちなみに今回の目的は国際化ではなく、ラベル等をファイル管理したかっただけという...) サン…

WAFLWAFLというモジュールを書いてみた

その昔、一つのアプリケーションで DBMSをまたがってシステムカタログやユーザスキーマ情報を検索/クエリ発行できる フリーソフト作ったりしてました*1その機能のひとつとして「DML文やカスタムテンプレートを出力できる」機能があったんですが、 そこだけを…

perlでFacebook Legacy REST API を使ってみる

Facebook::Graph を利用すればperlから簡単にFacebookAPIが扱えますね! http://helloperl.com/example_facebook.permalink http://d.hatena.ne.jp/sugyan/20101008/1286471717 しかし、Legacy REST API でないと扱えない情報もあったりするので もしかした…

App::pmgrepというモジュールを書いてみた

特定のディストリビューション*1内のモジュールを 文字列検索したい要件があったので作ってみました。 標準コマンドを駆使すれば出来るとは思いますが、 モジュールにしたらそこそこ便利ではないかなーと。 github https://github.com/toritori0318/p5-App-p…

外部APIを含めたWebアプリのテストをしてみる

外部APIを用いたWebアプリのコントローラテストについて。 たとえば 数値の2乗を結果として返すAPIサーバ があるとして、 そのAPIを利用した結果をHTMLとして出力するアプリケーション を考えてみます。 しかし、このように外部APIサーバを用いるとテストが…

cpanモジュールインストールするときに必要なRPM+α

perlのモジュールインストールするときに パッケージ依存してるものもありますよね! 今までの経験上、よく引っかかったり忘れたりするモジュール/RPMをメモ書きしてみる。*1 ちなみにパッケージ名はCentOS版となっております。 パッケージ依存 perlモジュ…

HTMLを解析し特定の要素以下のHTMLをそのまま取得したい場合

あけましておめでとうございます。 さて、HTMLを解析して 特定の要素以下のHTMLをそのまま取得したい場合。 こうですか!>< use LWP::Simple qw/get/; use HTML::TreeBuilder::XPath; my $content = get("http://d.hatena.ne.jp/tori243/20100123/12642633…

自分の最近のWebアプリケーション構成とか(規模別)

WAF

唐突に。 ものすごくざっくりですが現状は以下のような構成つかってます。 流行りかどうかはわかりません>< ちょっとしたWebアプリ(想定 ユーザ/10人くらい) Webサーバ Apache(CGI) DB SQLite WAF Mojolicious::Lite ORM DBIx::Skinny 最近だと簡易デプ…

JSTAPdを使ってJavaScriptのクロスブラウザテストしてみた(IE含)

YAPCにてYappoさんの「Ajax Application Testing」を聴き興味をそそられました。 今回はクロスブラウザでのテスト自動化を実現したかったのでその辺りも試してみました。 http://yappo.github.com/talks/20101016-yapcasia2010-jstapd/ インストール cpanm J…

YAPC::Asia 2010 1日目感想

YAPCきたー! 前夜祭は出れなかったんですが1/2日目は行けたので 自分が見たセッションの感想などをつらつらと書きます。*1 That Goes Without Saying (or Does It?) / Larry Wallさん ラリーさんですよラリーさん! ぴょんぴょんはねたり裏声になったり…

YAPC::Asia2010 2日目 感想

はい1日目に続いて2日目。 つらつらと書いていきます。 まずは今日買ったもの perl Tシャツ Acme大全2010 ラクダ本vol1(ラリーさんのサイン入り!やった!) nginx & Perl / fujiwaraさん ハイパフォーマンスHTTPサーバであるnginxの仕組み、 Lighttpdとの…

perldocの英単語

ふと、perldocではどんな英単語が多く使われてるのか、 ということを調べようと思った。 コードはこちら http://search.cpan.org/~shay/perl/pod/perl.pod ここから1階層だけ潜って単語集計するスクリプト。 http://gist.github.com/619373 すごく適当なの…

MojoのGETパラメータの件を最新バージョンで再ベンチ

前回の続き。 perlcodesamleさんがパフォーマンス改善のパッチを送っていただいたようですので、最新版で再度ベンチマークを取り直してみました。 ベンチマークスクリプト ベンチマークスクリプトは基本的に前回と同じ。 さらに、$self->req->params を一度…

MojoのGETパラメータの扱いでベンチに影響が出た件

※ 2010/9/26 追記 最新版とのベンチマーク比較 http://d.hatena.ne.jp/tori243/20100927/1285594260 ※ 2010/9/15 追記 Mojoはまだβ版で、現在は安定稼働を優先に開発が進められているそうです。 最適化フェーズはその後のようなので いずれはこのような問題…

Smart::Intervalというモジュールを書いてみた

Smart::Commentsを参考に簡易プロファイラみたいなのを書いてみた。 モジュールっぽいのは初めてかも。 Smart::Interval package Smart::Interval; use strict; use utf8; use Time::HiRes qw/gettimeofday tv_interval/; use Filter::Simple; use Clone qw(…

Webアプリケーションのデプロイ方法を考えたけどダメダメだった件

perlのWebアプリケーションをデプロイする方法を考えてましたが、 納得いく方法ができずに残念なことに。 サーバ構成 ①デプロイサーバ兼webサーバ ②デプロイ先webサーバ数台 やりたかった流れ WebサーバのOSとアーキテクチャが一緒であれば 複数サーバへのデ…

Mojo + DBIx::Skinny + Test::mysqld ことはじめ

※2010/8/21 モジュールを少し書き直した テストはやっぱり同じプロダクトでやったほうがいいよ!と助言頂きましたのでTest::mysqld使うことにしました。 自分のやり方はいろいろ遠回りしてる気もしますが、一応自分のやりたいことはできたのでメモメモ。 ち…

次に読むべきperl本を考え中

初めてのperl/続初めてのperl/モダンperl入門ときて、 次は何読もうかと考え中。 やっぱりラクダ本?2冊で1万円は考えてしまう…プログラミングPerl〈VOLUME1〉posted with amazlet at 10.08.21ラリー ウォール ジョン オーワント トム クリスチャンセン …