中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

2012-01-01から1年間の記事一覧

robocode・Melee&チーム戦

Melee戦 基本的には1vs1と変わらないが中央は明らかに不利なのでフィールド中心に大きな反重力点を置と効果的。 勝ち残って1vs1になったら解除すればよい。また処理量の問題で1vs1よりパターン解析の量を減らす。 チーム戦 チーム内の機体間では自由に通信が…

robocode・移動&回避

移動の基本 反重力移動 障害物や弾を避ける常套手法。近寄りたく無い座標に仮想反重力点を設定し距離に応じた斥力を受けるように移動する。この手法の優れた点は斥力は近寄れば強くなり離れれば弱まる点にある。別に現実重力をシミュレーションしたい訳では…

robocode・パターン予測

パターン射撃 この手の処理の常套手段は機械学習なのだが1tick内の処理時間制限(15ms)がある為難しい。よってより軽量な実装を考えなければならない。 パターン射撃モード 前述の通常射撃モードに加え2種のパターン射撃を考案した。 単純移動パターン 敵の…

robocode・索敵

索敵の基礎 Robocodeでは自機のレーダーを回転させ敵に当てなければ敵は見えない。また弾はレーダーでは捉えられない。 敵が見えなければ攻撃も防御も出来ないので実は最重要。が、、実は突き詰めると答えは一つで差が付かない出来なきゃ減点法の世界・・・ …

robocode基礎

今回かなり徹底的にやったので備忘録では勿体無いと思った。ちゃんとコンテンツに纏めようかと。。あくまで僕の視点から見た3週間のマジcodeですよ 関連ページ 索敵 砲塔&射撃 パターン予測 移動・回避 チーム戦 robocode基礎 機体の種類 役割 HP 特記事項…

robocode・砲塔&射撃

砲塔&射撃の基礎 砲塔回転と自機予測 案外軽視されがちな重要な要素がある。『狙いをつけて撃つ』は『砲塔を回して撃つ』という事砲塔を回すには最低1 tick必要。1 tick で自機も敵機も最大8dot移動する。その時には既に狙うべき角度は違う。微修正しように…

robocode

備忘録的なやつ 職場でrobocodeイベントがあったので参加してみました。 ルール 3機編成のチーム戦 3 ラウンドマッチ ちゃんと纏めてこちらに移動 しました。

mongo-hadoop & mahout でドキュメントのクラスタリング(関連付け)

Solrが結構困ったちゃん 全文検索エンジンSolrは便利なのだが、どうもAvailavilityに問題がある様に思う。いや、環境がPoorなのもあるのだけれども GCも、PV負荷も、Indexing関連処理も して無い時間帯なのにクエストが刺さる事が多々ある! 今までは色々な…

またまたmongo-php-driver問題

前回の困ったちゃんをまた直しました・・・また一言!mongo-php-driver はマトモに動かん!!いつの間にかmasterブランチにメモリリークが組み込まれてる!! → v1.2ブランチは無事なんだってこんなに頻繁にメモリリークをぶっ込むんだろうか?ったく・・・…

荒ぶるmongos様の解析

前回(荒ぶるmongos様)の続きとりあえずgrepレベルでサラっと構造を読んでみた。まだ追記します 一旦終わり! 解析途中経過 DBConnectionPool コイツが重要っぽい class DBConnectionPool : public PeriodicTask { : } PeriodicTask このクラスは毎分起動task…

荒ぶるmongos様

Sharding構成で苦しんだ時の状況 現在mongosのコードを解析中なので、状況だけ。 ごく一般的な利用方法だと思うのだけどShardingは取扱いに注意が必要。 システム構成 実際はMongoDBサーバも沢山あってShardingを構成しているのですが 今回の現象は1台でも…

Cockatoo近況

まとまった時間が取れたのでCockatooの機能追加をしました。 v1.0ブランチを切りました https://github.com/cockatoo-org/Cockatoo/tree/v1.0 ある程度互換性を無視して一気に進みます。 Beak高機能化 アプリ開発の簡易化(わざわざMongoDBなどを立てなくて…

I just came back to the Engineering-field !!!

とある事情によりココ3か月程技術から遠ざかっていました。コチラはなんとか目途が立ったので、また更新を再開します!今回は2011頃から手掛けている仕事の紹介です。 クラウド特化型、PHPフレームワークCockatoo インフォシークニュースの配信を行っている…

続・javascriptの循環参照オブジェクト

以前書いた記事の続き実際に使って行くと、色々至らぬ点が見えてきたので かなり本格的にリファクタリングする事にした。 Object crawler 使い方 string の値を全て拾って来る方法 var callback_object = function(){ } callback_object.prototype = { ret :…

Emacs便利Tips集

前回emacsの設定に触れたので、ついでに僕の使っている便利関数達を紹介してみる。 折り返し表示 Emacs は長い行はデフォルト折り返し表示ですが ソースコードの場合は、却って見難く成りがちです。僕は [Ctrl+c l] で切り替えてます。 ;; truncate line (de…

ruby-mod(emacs)をちょっと便利に・・・

Emacs Emacsには{}や()や[]の対応でジャンプする機能 forward-sexp backward-sexp などという関数があります。これらはソースコードを弄る時に重宝し、例えば以下の様な場合に便利に使えます。 java int foo ( int a ) { // ※ forward-sexp この関数の終わり…

最急降下法

一ヶ月ぶりに会社復帰してみたら、ひょんな手違いから『イントラ八分』されてしまった。暇で仕方ないので、後輩の教育に勤しんでみた。 最急降下法 最急降下法(wikipedia) 多数のパラメータセットの最適値を探索する手法。 局所解に当たる事も多いが、処理が…

(続)Rとデータマイニング入門

R

前回(グラフプロット迄)の続きデータ解析は複雑なデータを扱うので視覚情報に頼る事が多い。 (模様的にいい感じ!といった具合) Rはグラフ出力が優秀で助かる!! データマイニング rpart(決定木) 150件全部のデータで学習させ、決定木を作ってみる。グラ…

Rとデータマイニング入門

R

Rは5年以上前に、ちょこっと触ったのだけど 今や完全に忘却の彼方だったので、復習も兼ねて纏めてみた。schemeの影響を受けてる為か関数型言語使いには優しい(^^; (無限があったり個人的にはHaskellっぽいかなと。。) R言語の特徴 データマイニングに利用さ…

TV録画&エンコードサーバ構築(エンジニアリング禁断症状)

私事ですが、、育児休暇を取得して1ヶ月程エンジニアリングから離れております。しかし性なのか、2週間もすると『Linux触りて〜!!』的な禁断症状が現れてきて 気付くと(これからは子供番組の録画が必要だよね!!)って事でこの辺り(コピペでできる録画…

VC++がC++じゃ無くなってた。。

C++

CLI/C++入門みたいなモノPCに溜まりに溜まっていた未整理の、バックアップやらコピーやらしまくった デジカメ画像共を整理すべく、久しぶりにVC++(2008)を弄ってみた。VCはVC6がどセンターで2003年辺りに弄った以来で、おぼろげな記憶しか残ってないのだけど…

プログラマの怠惰

DB面倒 最近DBが面倒で仕方が無い。 開発中にはデータの型が変わることは良くある事で『あっちゃーこれじゃダメだわ・・・』 や 『いやコウしとけばもっと楽だな!』 やらで、形を弄りたくなる。その時、プログラム側の修正とDB側の修正をしなきゃならないの…

Rubyコンテキストスイッチの不思議・その2

Rubyコンテキストスイッチの不思議 - LinuxとApacheの憂鬱の続きRuby extension内ではコンテキストスイッチは起きないハズなのに EventMachine内では確かに起きてる!の謎 EventMachineのソースを読む 詳しい事は省略するが pure_ruby.rb => run_machine コ…

Rubyコンテキストスイッチの不思議

仕事上、ROMAに関わっているので、稀にはRubyもやります。今回検証に使ったソースは此方 https://github.com/crumbjp/Personal/tree/master/study/rubyこんな感じで動くはずです gem install eventmachine bash run.sh Rubyスレッドのコンテキストスイッチの…

Yslow便利だけど保存出来ないよ!FireBugは便利だけど・・・(以下略)

php

この所Cockatooの2個目のサンプルを作成していたのだけど yslowviewerという名のyslowロガーが大体出来上がった。言わずと知れたWEB解析君=yslowのbeaconを受けて保存しておくという奴だ。僕はMongoDBなのでyslowのbeaconなんぞ何も考えずにsave()して終わ…

アーキテクトでしょうか?いいえ違います!

あまりにもアレだったんで曝してみる。このブログ初の憂鬱ネタじゃないだろうか? 問題のコード(概ねこんな感じ) import java.io.*; import java.util.*; public class Params implements java.io.Serializable { private java.util.Map params = new java.u…

PHPで自由フォーマットのPOST

php

PHPでPOST 普通は$_POSTを使う。 これは key1=value1&key2=value2&....こんな形式のPOSTデータを array( 'key1' => 'value1' , 'key2' => 'value2' ...); の様にパースして渡してくれるが 逆に、この形式になっていないと array(); が返って来るしかしajaxで…

not Agile but agile

体調が悪すぎるんで毒を吐いてみる・・・ http://www.aoky.net/articles/steve_yegge/good_agile_bad_agile.htm僕も同意だ。(悪意を前面に出すか否かは別として) インデックス、ポーカー、スプリント、スクラム、XP・・・ 何も無くても仕事は終わる。 むし…

Javascriptの循環参照はエグイ

JavascriptのObject型は簡単に循環参照を作れてしまう。こういう奴 var data = { a : 'a', b : {c : 'c'} }; data['d'] = data; // 循環参照 こいつは便利な反面、汎用的な処理をしたい時にハマる!普通にハッシュを再帰で舐める function crawl_object ( da…

MongoDB and PHP の問題

まず一言!mongo-php-driver はマトモに動かん!! (安心して使えるバージョンがない) やれやれ・・・『PHPじゃMongoDBが使えない』ってんじゃ寂しいのでちまちま直して使っています。 バージョン別のドライバの状態とパッチ 1.2.0 以前 数々の致命的な問…