タグ

ブックマーク / cside.hatenadiary.com (3)

  • Perlで補完のきくインタラクティブシェル - Cside::Weblog

    2012-11-13 Perlで補完のきくインタラクティブシェル perl すなわちRubyでいうpry相当のもの。Perlのインタラクティブシェルは たくさんある のだけれど、自分は Devel::REPL を使っているのでそれを推したい。 Devel::REPL Devel::REPL の何がいいかというと モジュール名やメソッド名の補完がきく もうこれに尽きる。デフォルトでは補完が若干貧弱なので、 ~/.repl/repl.rc を こんな感じ にすればとりあえず快適に使えます。 Examples モジュール名補完メソッド名補完coderefもよしなにdump Devel::REPL を拡張したいとき Devel::REPL::Plugin::* もっと軽いのでいいやって気分のとき Eval::WithLexicals の tinyrepl が軽いのでそっち使ってます。 Cside

  • Sub::Inspector というモジュールを書いた - Cside::Weblog

    https://metacpan.org/module/Sub::Inspectorcoderefから以下の情報を簡単に取り出すモジュールです。 アトリビュート プロトタイプ 元のメソッドが定義されているファイル 元のメソッドが定義されている行番号 名前 いずれも標準モジュールの B.pm を使えば出来ることですが、いちいち使い方を調べるのもしょうもないのでモジュール化するに至りました。インターフェイスは以下のとおりです(PODそのまま)。 use Sub::Inspector; # get file, line, name (oo interface) use File::Spec; my $code = File::Spec->can('canonpath'); my $inspector = Sub::Inspector->new($code); print $inspector->

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

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

  • 1