タグ

2011年4月3日のブックマーク (3件)

  • WebSocketを使って重い処理の進み具合をリアルタイムにクライアントへ通知する - Csideのダイアリー

    分割が可能な重い処理をサーバー側で実行して、処理の状況の変化をクライアント側で表示させたいとき(プログレスバーみたいなのを作るとき)、どういう方法がいいかちょっと考えてみた。問題は「どうやって処理の進歩状況の情報をクライアントサイドでリアルタイムに受け取るか」ということ。 まず最初に浮かぶのが、分割されたタスクを1つ行うAPIをサーバー側で用意して、クライアント側からJSのsetTimeoutなりライブラリのdeferredなり使って並行リクエストして、コールバックでプログレスバーを書き換える・・・みたいなのが浮かんだ。けれど、PerlにはCoroやAE::HTTPみたいな便利なものがあるし、「折角なので並行処理の制御はあくまでサーバー側でできないか?」と考えていた。 で、次に思い付いたのが、「分割されたタスクが1つ終わるたびにサーバー側からクライアント側に情報をpushする」こと。これを

  • PAGERを less -S にしたときの横スクロールをlesshstでvim風にする - だるろぐ

    例えば % mysql --pager='less'などすると、selectなどの結果をlessで見ることが出来る。 この時に上下スクロールはvim風に j/k で出来る。が、横スクロールは十字キーですることになる。 これが使い辛いので、vimと同じく h/l で横スクロールするようにする。 % cat .lesskey #command h left-scroll l right-scrollというファイルを作って % lesskeyを実行。すると $HOME に .less というファイルが生成される。 あとは普通にmysqlとか実行すればいい。 デフォルトでは横スクロールの移動幅は1文字分である。 使い辛いので、lessの -# オプションで5文字分にする。 alias mysql="mysql --pager='less -S -# 5'"

    PAGERを less -S にしたときの横スクロールをlesshstでvim風にする - だるろぐ
    koba04
    koba04 2011/04/03
    覚えておくと便利そう
  • OreOre::Cache

    入社して一ヶ月がたちました!僕は元気です! memcachedとかつかわずlocalにカジュアルにキャッシュしたい時は まぁなんかこんなんで全然処理速度かわるからOreOre::Cacheもありじゃないすかねぇ。 キャッシュするデータ量とかによってon memoryにもつのかとか変わってくるとは思いますが。 #! /usr/bin/perl use strict; use warnings; use Cache::FileCache; use Cache::MemoryCache; use Benchmark qw/timethese/; my $memory_cache = Cache::MemoryCache->new( +{ namespace => 'test_file:', default_expires_in => 1, } ); my $file_cache = Cache: