2009/3/30 月曜日

先行者利益とか

Filed under: IT世間話 — dev0000 @ 4:36:27 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

プログラマに必要なたった一つの力

「新しいことにどんどんチャレンジしていく精神が大事」
ってのは、
システム屋って、これからはやりそうな新しめの技術をキャッチアップして、先行者利益で食って行く部分も少なくないからね。
或いは既に完成していた理論ではあるが、マシンのパワー不足の為実現が困難だったことができるようになってきているので、如何にそういう理論を引っぱり出してくるか、とか。

微妙なのはブームが過ぎたが需要はある技術かな。
興味の新陳代謝が激しいので、枯れた技術に対する技術者の供給が減る訳だから、技術に対する価格は上がってもよさそうだけど、実際どうなんだろうね。

http://d.hatena.ne.jp/JavaBlack/20090329/p1

そういう人が本当のプログラマになるために最初にすべきことは,日経ソフトウエアを捨てて専門書の一つも読むことだ.本当にプログラミングが好きならば,いつまでも日経ソフトウエアなんて読んでないよ.

まぁ確かに。
日経ソフトウェアって入社1〜2年目の人が読むってイメージしかないなぁ。

時間のサンクコストとか

Filed under: 仕事 — dev0000 @ 4:14:57 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

埋没費用

埋没費用に対する人間心理って多分どっかで研究が進んでる気もするけど、
作業した時間数とか付き合った年数とかそういうのもサンクコスト化する可能性があると思うが、
だからまぁ撤退しきれないゾンビのようなプロジェクトとかがあるのだろうな、とか。

FLARToolkit + WOWEngineとか

Filed under: 技術メモ — dev0000 @ 0:49:53 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

FLARToolKit スタートガイドのスクリプトを参考にして、
FLARToolkit + WOWEngine って感じで、箱の中をボールが転がるやつを作ってみました。

マーカー
Corocoro.swf
Corocoro.as

めんどくさいから、動画はなし。

ソースコードの一部だけど、試行錯誤したらこんな感じなってしまった。
座標の変換はもう少しお洒落に書けるんじゃないの?という気がする。
行列の計算とかよく分かってないし。

ACTIONSCRIPT:
  1. private function _onEnterFrame(e:Event = null):void {
  2.             this._capture.bitmapData.draw(this._video);
  3.             if (this._detector.detectMarkerLite(this._raster, 80) && this._detector.getConfidence()> 0.5) {
  4.  
  5.                 this._detector.getTransformMatrix(this._resultMat);
  6.                 this._baseNode.setTransformMatrix(this._resultMat);
  7.  
  8.                 _rot = Matrix3D.matrix2euler(this._baseNode.transform,_rot);
  9.  
  10.                 var rotz:Number = (int(_rot.z) - 180);
  11.                 _ba.setRotation(0,0,rotz);
  12.                 _wow.step();
  13.  
  14.                 var angle:Number(-1 * rotz) * Math.PI / 180;
  15.                 // var angle:Number =  (1 * rotz) * Math.PI / 180;
  16.                 var cos:Number = Math.cos(angle);
  17.                 var sin:Number = Math.sin(angle);
  18.  
  19.                 _sphere.x =  -(_particle.px * cos  - _particle.py * sin) ;
  20.                 _sphere.y =  _particle.py * cos + _particle.px * sin ;
  21.                 _sphere.z = _particle.pz;
  22.  
  23.                 this._baseNode.visible = true;
  24.             } else {
  25.                 this._baseNode.visible = false;
  26.             }
  27.  
  28.             this._renderer.render();
  29.  
  30.         }

ってかね、WBoundAreaをぐるぐる回して、その結果から座標軸を算出するよりは、
WOWEngineのaddMasslessForceってところの重力定義を随時変更できれば楽なんだけどね。。。
いや、そうじゃなくて、WPlane で箱を作って、それを回せば、こんな無茶苦茶な計算は不要なのか、今気がついた。
何はともあれ、WOWEngineはぼちぼちver2が出るのだろうけど、もう少し枯れてきて欲しいとは思う。

といいますか、FLARToolkit + WOWEngine ネタだと、
Saqoosha.net::Adobe MAX 2009で公開されている ClothSimuDemo.as のソースコードのほうが分かりやすいよなぁ。。。
こっち見て作ればよかった。

ACTIONSCRIPT:
  1. private function _onPreRender(e:Event):void {
  2.             if (checkInterrupted()) {
  3.                 return;
  4.             }
  5.             for each (var v:Vertex in this._edge) {
  6.                 var p:WSphere = WSphere(v.extra.physics);
  7.                 var vi:Vertex = Vertex(v.extra.init);
  8.                 this.multiplyVertex(this._ctx.arview.marker.transform, vi, this._tmp);
  9.                 p.px = this._tmp.x;
  10.                 p.py = this._tmp.y;
  11.                 p.pz = this._tmp.z;
  12.             }
  13.             this._wow.step();
  14.             this._cloth.update();
  15.             this._cloth.updateNormal();
  16.             event(this._ctx.renderThread, RenderThread.PRE_RENDER, this._onPreRender);
  17.             interrupted(this._cleanup);
  18.         }
  19.  
  20.         private function multiplyVertex(m:Matrix3D, vi:Vertex, vo:Vertex):Vertex {
  21.             var vx:Number = vi.x;
  22.             var vy:Number = vi.y;
  23.             var vz:Number = vi.z;
  24.             vo.x = vx * m.sxx + vy * m.sxy + vz * m.sxz + m.tx;
  25.             vo.y = vx * m.syx + vy * m.syy + vz * m.syz + m.ty;
  26.             vo.z = vx * m.szx + vy * m.szy + vz * m.szz + m.tz;
  27.             return vo;
  28.         }

HTML convert time: 0.762 sec. Powered by WordPress ME