Home > Perl Archive

[ << < 1  2  3  4  5  6  7  8  9  10  11 >> ]

Perl Archive

Net::Amazon::S3 でたくさんのアイテム

Net::Amazon::S3 は Perl で Amazon S3 周りをホゲホゲする時によく使うと思うんだけど、Net::Amazon::S3::Client を使っている時に、どうもバケツ内の全てのアイテムを取得できない

で、原因はというと Net::Amazon::S3::Request::ListBucket で max_keys の default が 1000 になってるからっぽくて、普通はひとつのバケツにそんなたくさんのアイテムいれないので気づいてなかった、と

でも、Amazon S3 でログ保存するようにすると数日で 1000 ファイル以上になるので、どっかで max_keys を渡せばいいんでしょ? と思ったんだけど面倒だったので Net::Amazon::S3::Client を使わないことにして解決した

。。。。という将来の自分宛のメモ

MT-Plugin-Mediawiki 作ってみた

MTQ で「MediaWiki記法が可能となるプラグイン」という要望があがっているのを見かけたので、作ってみた。。。が、Mediawiki 記法使ったことないんだよなぁ

  • Text::MediawikiFormat に渡してるだけなんで、MT に合わせてなんかした方がよいかもしれない
  • ツールバーの JavaScript はまだいじってない
  • テストしてない (オイ

とりあえず置いときます。テストしたら MTQ の方にもコメントしてみよう
自分では使う予定ないので、誰も使わなさそうなら、放置の方向です

[ MT-Plugin-Mediawiki_20100630.tar.gz ]

追記:

  • ちょっとテストしてみたけど、テキスト周りの書式はわりかし大丈夫そう
  • 画像周りはやっぱりなんか考えなあかんな

さらに追記:

  • JavaScript 部分いじってて気づいたんだが、Text::MediaWiki はそのままだとここに書いてある通りにはならないな。もうちょっと時間かけるか

AppStore のレビューとか順位とか

仕事でちょっと作ったスクリプトが、一年を経過しエライことになってきて、メンテ不能になってきた。XML からデタラメに引っこ抜いてるので頻繁に色々修正せなあかんしね
で、せめてこんな感じで使えるようにしたいなぁ、と

use AppStore::Scraper;
use Data::Dumper;

my $obj = AppStore::Scraper->new(wait => 5);
my $info = $obj->app_info(
                          app => ['322894440','331069023','331225704'],
                          store => ['jp','us'],
                          lang => 9,
                          ident => 'ipad',
                          review_number => 100,
                          review_order => 4
                         );

warn Dumper $info;

仕事中にこんなことやってるのも時間もったいないので、ひとまず家でガワだけ作った。中身は整理しきれてないけど、動いているので、ベタッと貼っとく。長いけど
動いているだけなので、誰かキレイに修正して ><

2010/06/18: bug fix しましたよ
2010/06/23: wait 秒数指定できるようにしたよ
2011/01/04: iPhone / iPad を指定できるようにしたよ
2011/02/03: レビューの取得件数とオーダーを指定できるようにしたよ
2011/02/17: その国のストアで公開されてない App の場合はスルーするようにしたよ

Continue reading

MT::Plugin::HikiDoc アップデート

仕事で MT5 使ったので、MT5.x での動作確認ついでに、SyntaxHighlighter 同梱してアップデートした。イマドキ、これくらいは JavaScript にやってもらう方がスマートだよね

ダウンロードはこちらから
MT::Plugin::HikiDoc の説明はこちら

以下、Emacs 風なサンプル

package MT::Plugin::HikiDoc;

use strict;

use MT;
use base qw( MT::Plugin );
use Data::Dumper;
our $VERSION = 0.1;
our $_INITIALIZED = 0;
our $_PREFIX = 'hikidoc_plugin_';

use File::Spec;

my $plugin = __PACKAGE__->new({
                               id => 'HikiDoc', 
                               key => 'HikiDoc',
                               name => 'HikiDoc',
                               description => '<MT_TRANS phrase="A text-to-HTML formatting plugin (HikiDoc Style)">',
                               author_name => '<MT_TRANS phrase="KAWABATA Kazumichi">',
                               author_link => 'http://haro.jp/',
                               version => $VERSION,
                               l10n_class => 'HikiDoc::L10N',
                              });
MT->add_plugin($plugin); 

コード書いてる時間よりもサイト更新してる時間の方が長くてイヤんなって、MT 使うのやめそうになったのは気の迷い

ハッシュのアレイとか

たまに Perl の話
ハッシュのリファレンスの中身がさらにリファレンスだったりしてコピーしたくてもめんどいよ、って時はどうするべ? と思ったら Clone とかあった。どっかでなんかの依存関係でみたなぁ、程度にしか知らんかったが、テストとかする時に便利かな

use Clone qw(clone);

my $copy = clone($org_hash);

以上

WWW::Mechanize は相変わらず便利

たまには Perl ネタでも書いてみる

use strict;
use warnings;
use utf8;

use WWW::Mechanize;
{
    my $m = WWW::Mechanize->new();
    $m->agent_alias('Mac Mozilla');

#    warn "start";
    $m->get( 'http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary' );

#    warn "login page";
    $m->field('email' => 'email-address');
    $m->field('create' => '0');
    $m->field('password' => 'password');

#    warn "submit";
    $m->click_button( input => $m->current_form()->find_input(undef, 'image') );
    my $report = $m->content();
}

exit;

Amazon の従量課金が気になるあなたは、こんな感じで自動で持ってくるといいよ

まぁ、あれだ
動いているもの、採用されているものを無闇矢鱈と作り直すのは、運用面ではどうかと思うし、自分勝手に色んなライブラリどんどん採用するのもどうかと思うが、これくらいはよかろう

Munin は超楽

何も考えず超ラクチンでグラフ化
ちょっと何かをしたくなった時どうなのかは知らないが、Perl なのでなんとかなりそうな気はする

IP address を元に、どこの国からのアクセスか推測

。。。ていうようなことは、Google Analytics などにお任せすればよいんだけれども、そうも言ってられない場合もあって、そういう時はこのあたりから最新の情報もってきて、調べたい IP address がどの範囲か計算して。。。。っていうか、Perl なら IP::Country 使え、と

use IP::Country::Fast;

my $r = IP::Country::Fast->new;
print $r->inet_atocc('208.67.222.222'); # US
print $r->inet_atocc('haro.jp'); # JP

今さらだけどね

ちなみに、Leopard だと /Library/Perl/5.8.8/IP/Country/Fast/(cc|ip).gif あたりにあるのが元データなり

MT::Plugin::HikiDoc アップデート

ニコニコ動画が外部プレイヤーに対応したので、nicovideo プラグインをそれに合わせて変更

ダウンロードはこちらから
MT::Plugin::HikiDoc の説明はこちら

追記
最初に外部プレイヤー出た時、どこでも使えるようになったら公開する的なことを言うてた FSWiki 用のプラグインはお蔵入り。多分誰かが作ってる

MT5 ベータ 4 使ってみた

「使ってみた」宣言するほど触ってないけどね
まずは、クリーンインストール状態で

  • システム的なこと
    • SQLite はサポート対象外ってことだったが、SQLite でも動くこたぁ動く
    • MT::Plugin::HikiDoc は、動いているようだ
      • むりやり感満載の JavaScript 部分もそのまま動くとは思ってもみなかった
      • 他のテーマとかプラグインとかは試していない
    • デバッグモード ON にすると、あちこちでいろいろ出て便利。mt-config.cgi に「DebugMode 1」と書くだけ。「1」だよ! true とか on とかじゃないよ!
  • 管理画面
    • なんか、全体的な概念が変わった
      • 今までは「ブログ書くためのツール」。なので、インストール直後に決めるのは「ブログの名前」
      • MT5 からは「サイト全体を管理するツール」。なので、インストール直後に決めるのは「サイトの名前」。で、その中で管理する「ブログ」を作っていく感じ

今日はここまで。明日は管理画面一通りさわってみるかね。4.x からのアップデートや、MTOS 4.3 でおかしかった検索機能とかは、その後ということで

[ << < 1  2  3  4  5  6  7  8  9  10  11 >> ]

Home > Perl Archive

Feeds

Return to page top