タグ

ブックマーク / hiratara.hatenadiary.jp (25)

  • Yokohama.pm テクニカルトーク #3 に参加中 - Pixel Pedals of Tomakomai

    ワタクシは横浜人ですので。 Perl でモンテカルロ法 〜最強の○×ゲームエンジン開発〜(jukuin2000さん) モンテカルロ法の説明 乱数と確率を使う - 扇形の面積を求めるデモモンテカルロ法と扇形の面積の公式を元に、πの値を求めるデモ 人工知能歴史 将棋、チェスはAIが人間を超えつつある 囲碁は人間が断然強い →が、マス数を減らして、AIが勝った == モンテカルロ法 次に打つ手でシミュレートし、勝つ確率がもっとも高い手を選ぶ ○×ゲームで、この手法を実演 モンテカルロ法の利点 ゲーム特有の戦略(必勝法)が全く不要 作成者より強いプログラム、ゲームに詳しくない人でも書ける どんなゲームでも、ルールと終了条件だけ知ってれば後はひたすらシミュレーションするだけ モンテカルロ法が向いてないもの 将棋 → ランダムに打つと、終局しない(シミュレーションを終えにくい) Q. モンテカルロ法

    Yokohama.pm テクニカルトーク #3 に参加中 - Pixel Pedals of Tomakomai
    dann
    dann 2008/12/04
  • 高階関数とlocalは相性がいい - Pixel Pedals of Tomakomai

    太古の昔、localよりmyを使え! とみんなが口を酸っぱくして言っていたものだから忘れがちですが、正しい使い方をすればlocalはすごい便利です。 まとめ 最初にまとめを書いておきます。(なので、最後にまとめはありません!) localは便利 メソッド間に渡ってlocalの効力を持たせたければ、高階関数的なAPIにする Schemeのcall-withなAPIがいいお手になる localの使い道 localは、共有している変数(特にグローバル変数)を「一時的」に変更したい時に使います。この、「一時的」ってのがミソです。他の操作と共有する変数の変更は、実行中のスクリプト全体に大きな影響を与えるため、まっとうな開発者であればなるべくやりたくないことです。しかし、localをつけて変数にアクセスすると、ブロックを出た時にもとの値に戻ることが保証されます。 以下は、Devel::PerlySe

    高階関数とlocalは相性がいい - Pixel Pedals of Tomakomai
    dann
    dann 2008/10/08
  • XS Nite (Shibuya.pm Tech Talk #9) - Pixel Pedals of Tomakomai

    id:TAKESAKOさんの好意で出させてもらったので、適当にロギングします。 はじめてのXS / id:hirose31さん XSってなに? PerlとCをつなぐための言語&インタフェース Foo.xs → xsubpp → Foo.c → Cコンパイラ → Foo.so Perlからは、XSLoaderやDynaLoaderでFoo.soを読み込む なぜXSを使う? Cのライブラリを使いたい パフォーマンス向上(Cache::Memcached::Fast 等) Perlの内部をいじくり倒す(autobox*1 等) XSを書いた動機 → forkしまくりたくなかった ドキュメント perlxstut, perlxs, perlguts, perlapi h2xs or module-starter (Module::Starter::XSimple) で始める 外部のsay_hell

    XS Nite (Shibuya.pm Tech Talk #9) - Pixel Pedals of Tomakomai
    dann
    dann 2008/07/21
  • Yokohama Perl Mongers テクニカルトーク #1 - Pixel Pedals of Tomakomai

    横浜人ですので。例のごとくログとります。 yokohama.pmの成り立ち / clouderさん zigorouさんがCatalystをやろうと言っていた twitterで流してIRC立ち上げた いつのまにかリーダーになっていた DIS られない Catalyst とのつきあい方 / ikasam_aさん Plugin Pluginを作ると・・・「CPANは幼稚園児の砂場じゃない」 Pluginを使うと・・・「多くの人がひどい目にあうものを勧めるのか」 リクエストのライフサイクルでは、必要 ← IRCやMLでネゴるとDISられない Pluginを避けて、Componentsをいじる 拡張Controller Catalyst::Contorller::FormBuilder, Catalyst::Contorller::Resources等 Modelの拡張 ModelはCatalyst

    Yokohama Perl Mongers テクニカルトーク #1 - Pixel Pedals of Tomakomai
  • WEBアプリはシングルトンで - Pixel Pedals of Tomakomai

    CGI::ApplicationのようにWEBアプリをクラスとして扱う場合、1つのリクエストに対してアクティブになるクラスは一つだけなので、シングルトンクラスである方が幸せになれる。例えば、TTのプラグインを作るときなんかは、シングルトンであれば現在アクティブなアプリケーションのインスタンスを取得するのが容易であり、入力クエリやセッションに触ったりを簡単にできるようになる。 1リクエスト単位でのシングルトンを実装するのに、CGI環境ではリクエストの処理が終わるとperlのプロセスも終了するので、何も考えずにグローバル変数で実装してよい。 でも、mod_perl環境ではグローバルな変数は次のリクエストでも残っているので、これを使うのはおいしくない。そこで、Apache->request()->pnotes()を使うといいらしい。これは、Apache::Requestのアイディア。

    WEBアプリはシングルトンで - Pixel Pedals of Tomakomai
    dann
    dann 2008/03/31
    Apache->request()->pnotes()