一日目
- 朝は家で仕事してて出遅れ
- 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と分からないくらいです。
あまり大きい画像だとブラウザ固まりますが、アイコンとかだったら使えるかもしれません。
そうまでして画像を使わないメリット分かりませんが。。
