新聞は複数紙を比べながら読みなさいと小学校で習ったわけですが,そういう意味でも Googleニュースの「関連記事」機能はとても便利.しかし,表示された記事を一つずつ開いて読まないといけないのが面倒くさい.なんとかAutoPagerize っぽい感じで一気に読めないものか.
レイアウトもスタイルもバラバラな複数のサイトをまとめて表示することになるので,ページ連結はちと難しそうな感じ.というわけで,やや不本意だけど inline frame を使うことにした.
動作例はこの辺をご覧下さい.
最初は全記事の iframe を一気に展開していたのだけど,冗談かと思うほど重かったので方針変更.ある記事の iframe にマウスポインタを重ねると次のを読み込み始めることにした.ついでなので,はてなブックマークのコメントも展開.はてブ関連のコードははてなブックマークコメントビューワを真似しました.
基本的には,画面の上の方にマウスポインタを置いて,ホイールで下向きにスクロールし続けて行くとそのまま全部読めるはずです.読み飛ばしたいときはポインタをインラインフレームの右か左に外してスクロールさせればよいのですが,読み飛ばしが早過ぎると次のページがまだ読み込まれていなくて逆にイライラする罠.
あ,順番に読まなくても,該当記事の見出しをマウスオーバすればその記事が展開されるようにはなってます.けど読み込み待ち時間がうざいかも.
既知の問題 (というか作ってみてわかった問題):
Storable の互換性の問題 [2006-03-25-3] で「Byte order is not compatible」とか言われるため perl 5.005_03 で使い続けていた tb.cgi だが,さくらインターネットで使われている OS が FreeBSD 6.x になり perl 5.005_03 が無くなったため,動かなくなっていた.というわけでしばらくトラックバックを送ることも受け取ることも,過去のものを表示することもできなくなっていたのだけど,ようやく重い腰を上げて対応することにした.
ここにある「$Storable::interwork_56_64bitをtrue値に設定」は,Out of memory とか言われてダメだった.
というわけでここの真似をして,いったん perl 5.6.2 で読んでから Data::Dumper で Dump して,改めて perl 5.8.8 で store し直すことにした.
*.stor を *.stor.old にリネームしてから dump.pl,restore.pl の順に走らせる.一応うまくいったっぽい.
dump.pl:
#!/usr/local/bin/perl5.6.2 use strict; use lib "."; # 古い Storable 一式をカレントディレクトリに置いた use Storable; use Data::Dumper; $Data::Dumper::Indent = 0; $Data::Dumper::Useqq = 1; while (<*.stor.old>) { my $new_file = $_; $new_file =~ s/stor$/txt/; open(NF, "> $new_file") or die; my $data = Storable::retrieve($_); print NF Data::Dumper->Dump([$data], ["data"]), "\n"; close(NF); }
restore.pl:
#!/usr/local/bin/perl5.8.8 use strict; use Storable; while (<*.txt>) { my $new_file = $_; $new_file =~ s/txt$/stor/; open(OF, $_) or die; my ($line, $data); $line = <OF>; eval $line; close(OF); Storable::store($data, $new_file); }
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2000 : 01 02 03 04 05 06 07 08 09 10 11 12
1999 : 01 02 03 04 05 06 07 08 09 10 11 12
1998 : 01 02 03 04 05 06 07 08 09 10 11 12
1997 : 01 02 03 04 05 06 07 08 09 10 11 12
1996 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2012-02-13 02:02
* [Rosabel] Wow, this is in every rpeesct what I nee... (2013-03-23 11:43:48)