なんか荒れてるやつ読んだ

論点とは違うけど、ひとつ思ったこと。

自分の書いたコードが module author に気に入られず採用されなかったときには、テストケースにして送ってみるといいと思いますよ。

自分のコーディングポリシーと違うコードだとか、そもそもいけてないとかいう理由で送られてきたパッチをスルーするのはよくある話だと思いますが、そういう場合にはテストケースとして送りつけるというのが作者側としてはありがたいです。

送られてきたパッチを読んでどのようなことがしたいのかを読み取って自分で実装してもいいけれど、やりたいことが明確にわからなかったり、実装したけどこれであってるのかどうかよくわからなかったりして、その結果よくわからないからスルーなどということになるわけですが、テストがあればそれを通るようにするだけなので。

by typester / at 2008-01-03T21:34:00 / perl / Comment

あけましておめでとうございます

本年もよろしくお願いします。

今年はちゃんと(?)帰省しているのだけど、正月から大雪で大変だった。今日帰るので心配していたのだけど、幸い晴れてくれた。

今新幹線待ってるところで、新横浜のカオスっぷりを想像して憂鬱な気分。

品川まで新幹線にすればよかった。鎌倉にはそっちのほうが乗り継ぎ的にも便利だし。

by typester / at 2008-01-03T15:06:00 / life / Comment

GR Digital2

買った!

by typester / at 2007-12-28T07:19:00 / life / Comment

NEXT、C3

僕はわりと好きかも。

by typester / at 2007-12-26T11:18:00 / perl / Comment

Safari3でExternalInterfaceる際のBK

as側で

ExternalInterface.addCallback("foo"...)

した場合Safariからは

document["swfid"].foo

でその関数が取れるわけですが、どうもこのオブジェクトをSafariがキャッシュしやがるらしく、二回目以降のロードで

typeof(document["swfid"].foo) == "function"

swfがロードされる前でも真になります。

上記コードでswfのロードチェックを行っていたためはまりました。。

解決法として

ExternalInterface.addCallback("ready", function():Boolean { return true });

とかを作り、typeofチェックに加えて、この関数を実際によんでちゃんとtrueが返って来るまで待つようにしたらOKでした。やれやれ。

by typester / at 2007-12-25T02:28:00 / life · as3 · bk / Comment

こうしたいflymake

Emacs で JavaScript のシンタックスエラーを検出する

これ読んですぐ導入したflymake。上記サイトのを少し改造したらperlでもできたのでいまはjsとperlでリアルタイムでシンタックスエラーチェックができている。

僕はすごくtypoがおおいと思うのだけどこれを導入してからtypoではまることがずいぶん減った。もうないとこまるelispのひとつになってる。

ちなみにperl版はこんな感じにしている。

(require 'flymake)

;; flymake for perl
(defvar flymake-perl-err-line-patterns '(("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1)))
(defconst flymake-allowed-perl-file-name-masks '(("\\.pl$" flymake-perl-init)
                                               ("\\.pm$" flymake-perl-init)
                                               ("\\.t$" flymake-perl-init)))

(defun flymake-perl-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                     'flymake-create-temp-inplace))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "perl" (list "-wc" local-file))))

(defun flymake-perl-load ()
  (interactive)
  (defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted)
    (setq flymake-check-was-interrupted t))
  (ad-activate 'flymake-post-syntax-check)
  (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks flymake-allowed-perl-file-name-masks))
  (setq flymake-err-line-patterns flymake-perl-err-line-patterns)
  (flymake-mode t))

(add-hook 'cperl-mode-hook '(lambda () (flymake-perl-load)))

でも、これだと単純に perl -wc しているだけで編集中の lib パスなどを @INC につっこまないため、その lib 以下にあるモジュールを use したりするとそこでエラーになってしまう。

なので今はモジュールやCatalystアプリの開発するときはいちいち emacs 上で M-x setenv してその lib パスを PERL5LIB にセットしている。。ちょうめんどくさい。。

そんでこれを自動化したいわけだがどうすればいいのかなぁ。

by typester / at 2007-12-21T13:47:00 / emacs / Comment

舌足らずすぎた。

Model::DBIC:
  connect_info:
    - dbi:mysql:table
    - root
    - on_connect_do:
        - SET NAMES utf8
      cursor_class: DBIx::Class::Cursor::Cached
  cache_file: __path_to(tmp/query_cache)__

さっきはこんなconfigで使った場合のコードです。

by typester / at 2007-12-20T15:13:00 / catalyst · dbic / Comment

DBIx::Class::Cursor::Cachedつかってみた

すばらしすぎる。もっと早く使えばよかったとおもった。

Catalyst::Model::DBIC::Schema で使う場合はこんな感じでOK。

sub new {
    my $self = shift->NEXT::new(@_);

    my $cache = Cache::FastMmap->new( share_file => $self->{cache_file} );

    $self->schema->default_resultset_attributes({
        cache_object => $cache,
    });

    $self;
}

そんで、あとはsearchのattrとして { cache_for => 300 } とかかいてやればそのクエリは300秒キャッシュされる。

実際にはsearch時ではなくてallとかnextのときにそのクエリをキャッシュしてる。

ちなみにdefault_resultset_attributescache_forを含めるとすべてのクエリがキャッシュされる。

by typester / at 2007-12-20T13:33:00 / catalyst · dbic / Comment

lighttpd+fastcgiで

fastcgiだけ再起動したい場合に、再起動中にアクセスあるとfastcgiプロセスが上がったあとも500になってしまうことがあるのだけど、みんなどうしてる?

by typester / at 2007-12-20T01:14:00 / lighttpd · perl / Comment

3008WFP

気になる。

by typester / at 2007-12-19T15:49:00 / life / Comment

24 25 26 27 28 29 30 31 32 33

(Page 28 of 203)