Home > Perl Archive

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

Perl Archive

1234567890

へー、UNIX time が 1234567890 になるのか

date -r 1234567890
perl -le 'print scalar(localtime(1234567890))'

UTC 的にはジェイソンが活躍する日、JST 的には婦女子が暗躍する日ですね
でも

Sat Feb 14 08:31:30 2009

土曜のこんな時間、PC に向かってることはないな

MTOS ちょっとづつ (1)

  • サブドメインの用意や Apache の設定など
  • MTOS インストール
  • テンプレートを、とりあえず「Vicuna - Movable Type テンプレート」にいれかえ
    • CSS いじらなくてもでパッと見がシンプルだから。いずれバンバンする
  • 日別アーカイブ作成
    • カレンダーからのリンクを、その日の記事の数に関係なく日別アーカイブに変更。ついでに複数記事の「*」削除
      • 1 個だったら記事に直接リンクでもよいが、日別アーカイブに「前の日」「次の日」つけたいので、とりあえず
  • 月別アーカイブと日別アーカイブのソートオーダーを ascend に変更

Text::MicroTemplate が良すぎて困る

いや、困らないんだけど

  • 奥さんのブログでも書かれているが XSS 対策から自由に慣れる感じ
  • 軽い。TT に比べると200% 速い感じ
  • TT に比べると、覚えるコストが圧倒的に低い。ループとか全部、Perl 構文で書いてまえば OK。TT の構文は変態な感じ
  • PurePerl だし依存がないので、いろんなところで使いやすい感じ

どれくらい幸せかというと

試験コード

#!/usr/bin/perl

use strict;
use warnings;
use utf8;

use Text::MicroTemplate qw(render_mt);
sub say { print @_,"\n"; }

my $str = '<hogehoge>';
my $enc = render_mt('<?= $_[0] ?>', $str); # これだけ覚えておけばなんとかなるよ!
say $enc->as_string; # こうやれば文字がかえってくる
say $enc; # render_mt はこんな感じ
say $$enc; # ちょっとお行儀悪く
say "------";
# なんでこれが嬉しいかというと
say render_mt('<?= $_[0] ?>', $enc)->as_string; # こういうことができるから
say render_mt('<?=r $_[0] ?>', $enc->as_string)->as_string; # これでもいいけど、r 付け忘れたら。。。
say render_mt('<?= $_[0] ?>', $enc->as_string)->as_string; # こんなことになってまう
say "------";

実行結果

&lt;hogehoge&gt;
Text::MicroTemplate::EncodedString=SCALAR(0x829484)
&lt;hogehoge&gt;
------
&lt;hogehoge&gt;
&lt;hogehoge&gt;
&amp;lt;hogehoge&amp;gt;
------

詳細は pod 読むとして、いろんな書き方ができるわな

my $tmpl = '<?= $_[0] ?>';
my $str = '<hogehoge>';
my $mt = Text::MicroTemplate->new();
$mt->{template} = $tmpl;
say $mt->build_mt->($str)->as_string;
say "-----";
my $enc = Text::MicroTemplate::render_mt($tmpl,$str);
say $enc->as_string;
say "-----";

実行結果

&lt;hogehoge&gt;
-----
&lt;hogehoge&gt;
-----

つうわけで

  • 何はともあれ render_mt
  • デフォルトがエスケープされるのは正義。二重エスケープには気づきやすい。エスケープ忘れは気づきづらい
  • Text::MicroTemplate::File もあるよ
  • render_mt ! render_mt !!

手元の TT 使ってるものを徐々に置き換えていって、気づいたことがあったらまたなんか書く

Shibuya Perl Mongersテクニカルトーク#10

http://shibuya.pm.org/blosxom/techtalks/2008011.html
Shibuya.pm Tech Talk の新大阪サテライト会場におじゃましてきた
いやー、濃い内容だった。すごいな。刺激受けたー
はせがわサンはまだ仕事が残っていたらしい。申し訳なし。ありがとうございました mOm

Shibuya.pm サテライト

http://d.hatena.ne.jp/hasegawayosuke/20081119/p1

参加します >< ニヤニヤするよ、ニヤニヤ( ̄ー ̄)

CGI フレームワークブーム

すべてに共通していえることは

  • コンセプトがはっきりしている
  • コード短い

一方オレオレフレームワークである C::M::App は、わりきりが足らず、肥大化している (現在約 700 行) orz

1 年以上使ってきて、自分にとって実用的な部分、足りていない部分、使わない部分が見えてきたので、ばっさりシンプル化することにした

  • db 関連部分は別途書くことがほとんどなので、ばっさり削る
  • request の dispatch 部分もいつも同じことしかしないので、なんでもやろうとせず、ルール化してばっさり削る
  • 現状公開していないことだし、互換性は考えない。名前変える

この 3 つをやるだけで、多少シンプルになるはずなので、今の仕事が一段落したら Perl 脳に戻してとっととやる

もはや Google AJAX Feed API は関係ないが (4)

http://code.google.com/intl/ja/apis/ajaxfeeds/
三日前一昨日昨日の続き

ニソギ登録数が少ないうちはともかく、45 名も登録したので、ガンガンリクエスト投げるとニコ動に叱られるだろう。。。というわけで、数秒置きにリクエスト投げるようにして、ローカルで HTML 生成。あー、しょぼい

現状こんなん。Safari と Firefox では見た。IE は多分取り返しのつかないほどひどくなる。肝心の iPhone と iPod Touch では一度も見ていないが、ひとまず完結

あー、なんか RSS の pubDate が動画投稿日ではなさげなので、description パースして pubDate の変わりに使うかな

タイトル変えると pubDate がその日になるのか。なら、そのままでいいや - 髭。 (2008年10月11日 08時54分50秒)

今さら Google AJAX Feed API (3)

http://code.google.com/intl/ja/apis/ajaxfeeds/
一昨日昨日の続き

JavaScript の非同期通信周りでさんざん苦労したあげく、面倒になって全部 Perl にした。勉強になったので良しとする。。。が、API をさわることが目的だったので、勝ち負けでいうと負け

で、現状こんなん。Safari 以外だとグヂャになると思われ

トークショー行ってきた

はてなおや氏のトークセッション行ってきた
意外に知り合いいないなぁ、と思ってたら 1 人発見。仕事ヤバス、という感じだった

トークセッション自体は、氏が今までどんな感じで本読みして、どんな風に影響を受けたか、というような内容。なぜその本がおすすめなのか、という理由がしっかりしてるのは、さすが技術者だなぁと思った。あと、おすすめの本がズラッと並んでて、それを見てるだけで楽しめた。ジュンク堂 GJ

トークセッション後は複数名で呑み。ここで名前を出せるのは。。。伊藤さんInfoMakerの大倉さんくらいか。。。技術話、もっとしたかったですね

ともあれ、出不精の私が「次回 Kansai.pm 行ってみるかなぁ」と思う程度の刺激を受けました

「サーバ/インフラを支える技術」は読み終わってから感想述べる

wassr2growl.pl 修正

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

Home > Perl Archive

Feeds

Return to page top