HTTP::Engine drops Moose for Shika, gains massive speedup When I recently benchmarked several Perl website development tools, HTTP::Engine had dismal performance. The slowest performer, it took 1.5 seconds just to print "Hello World" in a CGI environment and took 14.6 megs of memory to it. Today the first HTTP::Engine release appeared that replaces Moose with Shika. Shika provides the essential cl
去る11月28日、Perl系のイベントでは初参加となるYokohama.pmにお邪魔してきました。 最初は「京都→自宅→横浜」のルートを考えてたけど、移動が無駄になるので「京都→横浜」と直行することに。荷物は気合いで。 18時開始で会場までJRの駅から5分と書いてあったので、20分前には関内の駅に到着。そして会場に入ったら18:10だった。その間、実に30分。 駅にあった地図でだいたい当たりをつけて、迷ったらノートPC開いてGoogleMapsでいいやと思ったら見事に迷った! なんと横浜の地図は南が上。地図で上は北だろう常識的に考えて… 当日のタイムテーブルはこれ。 Yokohama.pm テクニカルトーク #3 - Yokohama Perl Mongers 特に気になったセッションだけかいつまんで。 ■Perl でモンテカルロ法 〜最強の○×ゲームエンジン開発〜 (id:jukuin2
さて毎年年末が近づくとブログ更新頻度が下がるid:fbisですが、Mooseも馴染んできたところなのでそろそろMooseに対して一言いっておくかということでね、はい。 Mooseは素晴らしい。とてもベリー素晴らしい。何より人に優しい。人間に優しい。 がっ!しかし、Mooseはまだ使うには早すぎた。ナウシカの巨神兵ばりに早すぎたんだ。 実際に組み込んでみて感じた問題点。 大きく分けて二つ。 その壱:オブジェクト生成のコスト やはりなんといってもnewのコストが高い。遅い。 一つ一つを見ればそこそこなんだけどやはりnewのコストは高い。 Mooseを使うのであれば極力newを避けるような仕組みの中に取り入れないと微妙。Catalystで例えるならsetupの時点でnewして以後キャッシュされるような実装だ。 newさえ終わればあとは(複雑なMooseの使い方をしてない限り)それほど問題ではない
Yakohama.PM で発表した Shika と HTTP::Engine と Data::Model と 流石に3日連ちゃんで発表するのは、どこのYAPC::Asia状態だよ!?と思っていて当初は控えていたのですが、案外体力的にも行けそうだったので当日になって飛び入りで発表させて頂きました。 Yokohama.pm++ 本日の発表は、既にtokuhiromが書いてるけど、Shikaについてです。 http://svn.coderepos.org/share/docs/yappo/20081128-yokohamapm3/shika.pl 軽量化MooseなんだったらなぜMouseじゃないのか?Shikaを使う利点は何か?今のステータスはどういう物か?等を話してきました。 前日の昼にスタートしたプロジェクトの事を勉強会で発表するなんて早漏すぎだと思われるかもしれないけれども、Shikaの
ワタクシは横浜人ですので。 Perl でモンテカルロ法 〜最強の○×ゲームエンジン開発〜(jukuin2000さん) モンテカルロ法の説明 乱数と確率を使う - 扇形の面積を求めるデモモンテカルロ法と扇形の面積の公式を元に、πの値を求めるデモ 人工知能の歴史 将棋、チェスはAIが人間を超えつつある 囲碁は人間が断然強い →が、マス数を減らして、AIが勝った == モンテカルロ法 次に打つ手でシミュレートし、勝つ確率がもっとも高い手を選ぶ ○×ゲームで、この手法を実演 モンテカルロ法の利点 ゲーム特有の戦略(必勝法)が全く不要 作成者より強いプログラム、ゲームに詳しくない人でも書ける どんなゲームでも、ルールと終了条件だけ知ってれば後はひたすらシミュレーションするだけ モンテカルロ法が向いてないもの 将棋 → ランダムに打つと、終局しない(シミュレーションを終えにくい) Q. モンテカルロ法
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く