一日目
- 朝は家で仕事してて出遅れ
- mixi.jp はあの位の規模をオープンソースでやるとなると、どこも似たような感じって事が確認出来た感じ。
- Perl Best Practice は実践しよう。(させよう)
- 懇親会はサブテカ席
- つか、飲み過ぎた。
- サブテカみんな若いなー。年齢的に翌日がツラい。。
二日目
- 前日飲み過ぎで出遅れ。。
- XS ネタ面白かった。見よう見まねで数回書いたことしか無かったのでよかった。
Web 系だとあんまりやらないよね。
- はてなブックマークは予想どおりの構成だった。
うちの方が保守的かも。Apache2.2 とかまだ使ってないし、でも Subversion には移行する。とりあえず、サーバは用意した。
mod_hatena_cache(だっけ?)が気になった。memcached のクライアントライブラリは apr_memcache と libmemcache のどっちなんだろ。
- しんどかったので、MF 勢と直帰した。
最近コード書かない仕事も増えてきたけど、こういうのいくと刺激になった。
とりあえず、Subversion の導入と Apache2 のモジュールなんか書こう。
- 朝は家で仕事してて出遅れ
- mixi.jp はあの位の規模をオープンソースでやるとなると、どこも似たような感じって事が確認出来た感じ。
- Perl Best Practice は実践しよう。(させよう)
- 懇親会はサブテカ席
- つか、飲み過ぎた。
- サブテカみんな若いなー。年齢的に翌日がツラい。。
二日目
- 前日飲み過ぎで出遅れ。。
- XS ネタ面白かった。見よう見まねで数回書いたことしか無かったのでよかった。
Web 系だとあんまりやらないよね。
- はてなブックマークは予想どおりの構成だった。
うちの方が保守的かも。Apache2.2 とかまだ使ってないし、でも Subversion には移行する。とりあえず、サーバは用意した。
mod_hatena_cache(だっけ?)が気になった。memcached のクライアントライブラリは apr_memcache と libmemcache のどっちなんだろ。
- しんどかったので、MF 勢と直帰した。
最近コード書かない仕事も増えてきたけど、こういうのいくと刺激になった。
とりあえず、Subversion の導入と Apache2 のモジュールなんか書こう。
デフォルトで HTML フィルタかけたいって話。
こんな感じで STASH 継承しちゃうってのはどうでしょ。
http://shebang.jp/src/cpan/Template-Stash-EscapeHTML-0.01.tar.gz
CPAN にも一応あげてみた。
http://shebang.jp/src/cpan/Template-Stash-EscapeHTML-0.01.tar.gz
CPAN にも一応あげてみた。
package Template::Stash::EscapeHTML; use strict; use Template::Config; use base ($Template::Config::STASH); our $VERSION = '0.01'; sub get { my($self, @args) = @_; my($var) = $self->SUPER::get(@args); unless (ref($var)) { return html_filter($var); } return $var; } sub html_filter { my $text = shift; for ($text) { s/&/&/g; s/</</g; s/>/>/g; s/"/"/g; } return $text; } 1; __END__ =head1 NAME Template::Stash::EscapeHTML - escape HTML automatically in Template-Toolkit. =head1 SYNOPSIS use Template::Stash::EscapeHTML; my $tt = Template->new({ STASH => Template::Stash::EscapeHTML->new, ... }); =head1 DESCRIPTION This module is a sub class of L<Template::Stash>, automatically escape all HTML strings and avoid XSS vulnerability. =head1 AUTHOR Tomohiro IKEBE, C<< <ikebe@shebang.jp> >> =head1 COPYRIGHT Copyright 2005 Tomohiro IKEBE, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut
ImageMagick を調べてゴニョゴニョやってたら GetPixels なんでメソッドがあるのをはじめて知りました。
ほんとうはそういう事がやりたいわけではなかったのですが、現実逃避的に画像を HTML にするスクリプト書いてみました。。
結構綺麗に出来るので、パッと見ではHTMLと分からないくらいです。
あまり大きい画像だとブラウザ固まりますが、アイコンとかだったら使えるかもしれません。
そうまでして画像を使わないメリット分かりませんが。。
ほんとうはそういう事がやりたいわけではなかったのですが、現実逃避的に画像を HTML にするスクリプト書いてみました。。
#!/usr/local/bin/perl use strict; use Image::Magick; my $file = $ARGV[0]; my $image = Image::Magick->new; my($x, $y, $size, $format) = $image->Ping($file); $image->Read($file); my @color_info = $image->GetPixels(width=>$x, height=>$y, x=>0, y=>0, map=>'RGB'); print "<html><body> "; my($i, $j) = (0, 0); while (@color_info > 0) { my $r = num2hex(shift @color_info); my $g = num2hex(shift @color_info); my $b = num2hex(shift @color_info); my $rgb = "#$r$g$b"; printf('<span style="position: absolute; left: %d; top: %d; width:1px; height:1px; background: %s"></span>', $i, $j, $rgb); $i++; if ($i == $x) { $i = 0; $j++; print " "; } } print "</body></html>"; sub num2hex{ my $depth = shift; $depth = int($depth / 256); return unpack("H2", pack("C", $depth)); }
% ./image2html.pl logo.gif > logo.htmlみたいな感じで使います。作ってみたのがこちら(ブラウザ固まる可能性ありますのでご注意を。。)
結構綺麗に出来るので、パッと見ではHTMLと分からないくらいです。
あまり大きい画像だとブラウザ固まりますが、アイコンとかだったら使えるかもしれません。
そうまでして画像を使わないメリット分かりませんが。。