Home > Perl Archive

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

Perl Archive

MTOS ちょっとづつ (5)

HikiDoc プラグイン続き

  • 簡易入力用ボタンを押したら、HikiDoc 書式が出るようにした
    • JS 関連をホゲホゲするのはちょっとややこしかったので、完成したら整理して記事にする
  • img タグの部分はいまだ放置中

MTOS ちょっとづつ (4)

  • Text::HikiDoc::Plugin::raw を用意した
    • raw タグの中は、escapeHTML せず、そのまま出す
    • img タグの部分は、もうこれ使ってごまかすんでいいや

MTOS ちょっとづつ (3)

  • HikiDoc プラグイン作った
    • 基本部分は動いた
    • img タグの部分なんとかせなあかんなぁ
    • Text::HikiDoc::Plugin::(texthighlight|vimcolor) にバグ見つけた。ものすごくベーシックなところなのに 2 年近く気づかなかったのか orz
      • プラグイン作り終わったら機能追加も含めてリリースしよう
    • シンタックス・ハイライト用 CSS も同梱すること
    • Text::HikiDoc::Plugin::* は設定で ON/OFF できるようにするか、全部読み込むか、どうすべぇ
    • 簡易入力ボタンのとこもさしかえなあかんな

MTOS ちょっとづつ (2)

  • Textile や Markdown でも、img タグは img タグなのか
    • HikiDoc プラグイン作ろかと思ってたんだが、MT の流儀がそうなんだとしたら面倒やなぁ。。。とりあえう Textile と Markdown のソース読むか
      • また 1 行も読んでないが、多分イメージ貼付け部分等も乗っ取って Wiki っぽくするような気がするっぽい

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 脳に戻してとっととやる

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

Home > Perl Archive

Feeds

Return to page top