2011年12月アーカイブ

2011年12月22日

Mojolicious でコマンド

Mojolicious で作った Web (MyApp) の、メンテナンス用のコマンドを作りたい時に、その Web と同じ環境をベースにしたい(すべき)というときに、どうしたらいいの?

my $app = MyApp->new;

これで、 Web と同じ環境が構築されるみたいだ。肝心のコンフィグも、 Web と同じようにロードできている。

そうして、 Mojolicious::Commands にコマンドを追加するとして、もしコマンドをいくつか作ろうと思ったならば。──コマンドラインの解析などの前処理を繰り返し書く羽目になってしまうので、そうならないように、サブクラスを一枚挟んでおくといい。ということでパターンが出来たので、忘れたときのために貼っておこうと思う。

https://gist.github.com/1506262

Mojolicious にはまだ慣れていないから知らない部分も多く、このへんの事情についてもほかにスマートなやり方があるのかもしれないけれど、とりあえずは、これでもいいようだ。期待したとおりに動くから。

2011年12月21日

Mojo::Log のフォーマットをカスタマイズする?

ずばり format メソッドをオーバーライドする!?

package MyApp::Log;
use base qw/Mojo::Log/;

sub format { # override
    my ($self, $level, @msgs) = @_;

    my ($package, $filename, $line, $subroutine, $hasargs, 
    $wantarray, $evaltext, $is_require, $hints, $bitmask) = caller(5);

    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) 
                = localtime time;
    my $ts = sprintf '%04d-%02d-%02d %02d:%02d:%02d',
                $year + 1900, $mon + 1, $mday, $hour, $min, $sec;
 
    my $msgs = join "\n", @msgs;
    return "[$ts] [$subroutine] [$level] $msgs\n";
}

1;

Mojo::EventEmitter との関係があるとのことであるけれど、 Mojo::EventEmitter って? という認識度に過ぎないので、とりあえずはこれワークアラウンドということで。

それから caller の情報を使うときは "5" ぐらいの深度を指定すると丁度良さそう。

[2011-12-21 01:31:51] [MyApp::startup] [debug] initialized
[2011-12-21 01:31:51] [MyApp::Commands::list::process] [info] hey!

2011年12月18日

傍に置きながら

都内をドライブ。西日が、運転に支障を来すほどに射してくるので、いつもの公園に立ち寄って一服。傍に、ポケットガイガーを置きながら。

01.jpg 02.jpg

2011年12月17日

Playlist: Vocaloids 2011 Late Autumn

itunes.png
  1. snow draws - enoyak - 初音ミク
  2. 恋愛ノート - 空海月 - 初音ミク
  3. 群青 - bluegarage - 初音ミク
  4. ツクシ - アトム - 初音ミク
  5. クローズウォッチ - Heavenz - 初音ミク
  6. Midnight Fantasy - KAB - 初音ミク
  7. A寝台の少女 - 36g - 雪歌ユフ
  8. HALCA - ゆうきちゃん - 初音ミク
  9. 不整合なWaltz - 庭野井戸 - miki
  10. 久遠(クオン) - river - 初音ミク
  11. Oval (Leggysalad Remix) - yuxuki (remixed by Kevin) - 初音ミク
  12. South Sky - tarezo - 初音ミク
  13. In The Rain - M@SATOSHI - 初音ミク
  14. 白昼夢とマリア - もっふーP - 初音ミク
  15. 眠らない姫 - ジェバンニP - 鏡音リン
  16. タイムマシンと青いビー玉 - L-tone - 鏡音レン

total 1:14:12 / 116.2 MB

2011年12月 2日

iTunes の「情報」と ID3v2.4.0 タグフォーマット

iTunes の「情報」タブ内にある各項目それぞれに対応する ID3v2.4.0 フレームを、上参考をもとにまとめた。

mp3 の ID3 タグの編集はさまざまなツールがあるが Perl ならば MP3::Tag がよさそう。

一方、 iTunes で同じように管理される mp4 や m4a (AAC) などのフォーマットのファイルに入るこれらの情報は、じつは ID3 タグではなく Apple 独自の?形式らしく、ツールがなかなかなかった。尤もあることはあって、 AtomicParsley というコマンドラインツールがよさそうだ。

screen.png
iTunes ID3v2.4.0 AtomicParsley
名前 TIT2 title
アーティスト TPE1 artist
アルバムアーティスト TPE2 albumArtist
アルバム TALB album
コンピレーションの一部 TCMP compilation
TYER year
作曲者 TCOM composer
トラック番号 TRCK tracknum
ディスク番号 TPOS disk
グループ TIT1 grouping
BPM TBPM bpm
ジャンル TCON genre
コメント COMM comment

その他、 iTunes の情報にある「読みがな」タブや「歌詞」タブ内の各フィールド用のフレームももちろんあるけれど、じぶんは使わないので割愛。ただし次の情報を使うので追記:

iTunes ID3v2.4.0 AtomicParsley
リリース日 TDRL year
アートワーク APIC artwork
OpenID対応しています OpenIDについて

このアーカイブについて

このページには、2011年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年11月です。

次のアーカイブは2012年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。