前の日 / 次の日 / 最新

swk's log

2008-04-13 Sun

* Google News の関連記事をまとめて読む Greasemonkey スクリプト [firefox] 12 users

新聞は複数紙を比べながら読みなさいと小学校で習ったわけですが,そういう意味でも Googleニュースの「関連記事」機能はとても便利.しかし,表示された記事を一つずつ開いて読まないといけないのが面倒くさい.なんとかAutoPagerize っぽい感じで一気に読めないものか.

レイアウトもスタイルもバラバラな複数のサイトをまとめて表示することになるので,ページ連結はちと難しそうな感じ.というわけで,やや不本意だけど inline frame を使うことにした.

動作例はこの辺をご覧下さい.


最初は全記事の iframe を一気に展開していたのだけど,冗談かと思うほど重かったので方針変更.ある記事の iframe にマウスポインタを重ねると次のを読み込み始めることにした.ついでなので,はてなブックマークのコメントも展開.はてブ関連のコードははてなブックマークコメントビューワを真似しました.

基本的には,画面の上の方にマウスポインタを置いて,ホイールで下向きにスクロールし続けて行くとそのまま全部読めるはずです.読み飛ばしたいときはポインタをインラインフレームの右か左に外してスクロールさせればよいのですが,読み飛ばしが早過ぎると次のページがまだ読み込まれていなくて逆にイライラする罠.

あ,順番に読まなくても,該当記事の見出しをマウスオーバすればその記事が展開されるようにはなってます.けど読み込み待ち時間がうざいかも.

既知の問題 (というか作ってみてわかった問題):

  • iframe のサイズが決め打ち.なんかいい方法ないんですかね.
  • ホイール付マウスがないと,かなり使いにくいはずです.本当はキーボードのみでも読めるようにしたい.適当なショートカットキーを設定して iframe にフォーカスできるようにすればよい?
  • マウスポインタをピクリとも動かさず,ホイールだけでスクロールして新しい iframe に突入しても,onmouseover は反応しないようです.まあ実際にマウスを使っている場合はピクリとも動かないことはあり得ないのだけど,例えば Let's Note のホイールパッドでクルクルしているとこの問題に当たります.
  • まだ割と重い.(単に私のマシンが非力なだけか?)
  • ていうかぶっちゃけ iframe うざい.むしろタブをぶわーっと開きまくるようにした方が便利かも?
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Rosabel] Wow, this is in every rpeesct what I nee... (2013-03-23 11:43:48)

* tb-standalone の perl 5.005 → 5.8 移行 [logging][homenet]

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);
}
<< 2008-04 >>
SuMoTuWeThFrSa
12345
6789101112
13141516171819
20212223242526
27282930

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


Shingo W. Kagami - swk(at)kagami.org