prog

神風の俺

かみかぜ、じゃなくて、かみふう、と読みます。「神が許しても神風な俺が許さん」の神風です。て、元ネタ誰も知りませんね。 で、先日は仕事が絶好調でした。ちょっと前に割り込みの多い仕事を後輩に引き継げたので、メインの仕事に集中できまくりです。代わ…

自分に分かるギリギリちょっと上が気持ち良い

ここ数日は、ツール開発の手を一休みして、ほぼ数学系のライブラリ開発に専念しています。 数学理論はその手の本に載っているので、それをプログラムに落とし込むのですが、落とし込むためには理論を完全に理解する必要があります。すべての導出過程までは分…

STL::vector::clear()が内部バッファを保持しない!?

なにかと便利なSTL::vectorですが、こいつの実装は一般的に、配列サイズを小さくする処理をしても内部にアロケートされたメモリ領域は小さくならないようになっています。その為にバッファサイズを強制的に小さくする手法としてswap技法なるものも存在するく…

CodeZineにPhysXの記事が

載ってますね。 http://codezine.jp/a/article/aid/719.aspx でもこれって、PhysXのサンプルを触ったら分かるだけの内容に、DirectXのサンプルを組み合わせただけのような… 逆に言えば、そのくらいの敷居の低さで、物理エンジンの醍醐味が味わえるわけなので…

PhysX PC版がフリーに

Ageia PhysX PC版がフリーになるそうです。 「Ageia To Give Away PhysX SDK On PC」 http://www.gamasutra.com/php-bin/news_index.php?story=11801 as long as registration information is correct, and the EULA is obeyed 登録情報が正しくてEULAに従う…

Visual Studio Express Editionを入れてみた

ダウンロード版はフリーで使えるとのことで、Visual Studio Express Editionをインストールしてみました。 http://www.atmarkit.co.jp/fdotnet/special/vs2005compare/vs2005compare_01.html ここを見ていると、ブレークポイントが使えないみたいでかなり(´…

山を越えたらおっきな山が見えたりするのです

水曜に仕事が一山を越えたので木曜は机とデスクトップとソースコードとドキュメントの整理をしつつ、CEDECのレポートを書いたりしてました。一山越えたといっても次の大きな山が見えて、今そのふもとにいることが確認できたという段階ですけどね。まあ一休み…

簡単な字句解析処理

個人的に作っているツールに、ちょっとした条件分岐と四則演算や文字列比較の機能を持ったスクリプトを組みこみたくなってきました。パーズも解釈したスクリプトの実行処理もどっちも気軽に組みたくて、機能を限定したSCHEMEとして実装しようかな、と考えて…

Ray-Box Testすげえ

今日もこの本から。 箱と線分の交差判定という問題があります。問題がプリミティブなだけに、昔から随分研究がなされています。特に2Dの矩形と線分の交差判定はかなり研究されているみたいで、ポリゴンの射影変換後のクリッピングにも応用されています。 …

こんな仕事をさせてもらってていいのか

Collision Detection in Interactive 3D Environments (Series in Interactive 3d Technology)作者: Gino van den Bergen出版社/メーカー: CRC Press発売日: 2003/11/25メディア: ハードカバー クリック: 22回この商品を含むブログ (5件) を見る最近会社で物…

今日のデザインパターン

Stateパターン オブジェクトの内部状態一つ一つをクラスで表現するものです。 ころころ変化するstrategyパターン、という認識ではまずいのかな? 様々なテストをメニューから切り替えて走らせるプログラムを作っていて、各テストには初期化、実行、解放インタ…

今日のデザインパターン

Mementoパターンのサンプルコードを見て、Commandパターンとの組み合わせについて理解できました。なるほど、Command::Execute()の時にCreateMemento()で、UnExecute()の時にSetMemento()と。 Observerパターン 観察対象に観察者を登録して、対象に変化が発…

今日のデザインパターン

Commandパターン これとMementoの内容を理解すれば、今仕事で作っているツールの機能拡張の実装に大きく役立つような勘がしています。 Mementoパターン そして、やりたいことはツールにおけるUndo/Redoなわけですが、まあ結局泥臭い処理は絶対必要になりそう…

今日のデザインパターン

1日1パタとかいいながら結構抜けが有ったりする今日この頃です。今週は精神的不調の為にあんまりやる気がせず。 Prototypeパターン ふーん。気をつけてClonableな実装が出来れば結構使えるかも、的なものかもしれず。使えそうな状況が来たらロマサガみたく…

パターンは強し

先日(お風呂で)Builderパターンなるものを読んで、今やってるちょっち複雑な処理をBuilderパターンで実装しなおしたら、なんということでしょう、てな感じですっきりとしました。とりあえずこの調子で1日1パタくらいのペースで全部に目を通していきたいも…

息抜きが苦手な大人のDSトレーニング しごと漬け

今週は先週とうって変わって更新頻度が低いです。まあ仕事が激しかったからなあ。というわけで今日も仕事です。帰ったら日が変わってました。 私はツールを作っている事が多いのですが、ツールだけにシビアな最適化とかは要らないのでboostとかalgorithmとか…

rd2で楽々ドキュメント生活(rd2html-extインストール編)

(前回)の続きです。

rdtoolで楽々ドキュメント生活(rdtoolインストール編)

えーと、これは結構相手の限られた話題です。 私は良く、誰かに読んでもらう事を目的としてhtmlファイルでドキュメントを作成します。あ、俺も私もそういう事する!という方は、この続きをお読みください。そうでない人で、でもrubyを触る人はそれなりに読ん…

楽しいのって変ですか?

昨日も今日も休日出勤です。どうしても土日の間に終わらせておきたい事があって、まあ結果から言うとなんとかなったわけです。 変な話かもしれませんが、今、プログラミングが楽しくてしょうがない状態です。新しい概念や技術を覚えて、それを一つ一つ自分の…

クラス内クラスにはインテリセンスが働かない?

とまあ、タイトル通りの意味です。 実装部をcppに入れちまう処理としてエンベロープパターンっていうのがあるんですが、次のように書きますよね。 [classA.h] class ClassA { class CImpl; CImpl* m_pImpl; public: void Func1(); // .cppでm_pImpl->Func1()…

警告レベル4&警告をエラーとみなす

「.NET&Windowsプログラマのためのデバッグテクニック徹底解説」買いました。 お値段が結構するのでかなり逡巡した結果の購入です。でももし、これを読むことで将来何十時間、何百時間もの得になるのならば、それだけで本代の元は取れたと考えられますよね。…

noncopyableはレベル3警告C4511,C4512を生み出す

あるクラスのコピーや代入を禁じたいときに、皆さんはどうしているでしょうか?こういうのは代入演算子等を間違って書いてしまった時にコンパイラエラーではじいて欲しいものですよね。てなわけで、良くあるのがコピーコンストラクタと代入演算子をprivateに…

boost始めました

というわけでboostライブラリをインストールしてみたので、ちょこちょこ使っていこうと思います。具体的な使い方はぐぐったらいくらでも出てくるので、ここでは私が使っていてはまったことをメモしていく予定です。

xargs便利、空白対策もばっちり!!

あるディレクトリ以下の、.cppを拡張子に持つファイルからpragmaという文字列の入ったファイルをリストアップする際に使うコマンドは、

ハンドルの解放はGCに頼れない、の巻

rubyでごにょごにょスクリプトを書いていたのですが、とあるファイル読み込み時に、なぜか途中で読み込みが途切れるという意味不明の現象が発生しました。そのファイルを単体で読み込むコードを実行したら正しく読めるのです。 ふと、その読み込み処理の前の…

.NETテクノロジガイド 読了

同じくお風呂でざっと読み終わりました「.NETテクノロジガイド」 ガイドの名がしめすように概要で、そこまで技術的に立ち入った話は書かれていません。ただ、 C#とか.NET Frameworkって何? という漠然とした質問に対する素晴らしく分かりやすい解答が浅く広…

C++ Coding Standards 読了

近頃の贅沢といえば、お風呂に入ってプログラム関連の本を読んでまったりすることです。風呂にゆっくり入りたい、でも時間がもったいない、ならばなにか生産的なことをしているような気になっていればいいのではないか、とまあ、そんな感じで風呂で本を読む…

アルゴリズムのそれってこーいうことか(その4)

参照への参照問題という名のbindの制約 struct SIncrementer2_2 : public binary_function { result_type operator()( first_argument_type rValue, second_argument_type incValue ) const { rValue += incValue; } }; ... for_each( ..., bind2nd( SIncrem…

アルゴリズムのそれってこーいうことか(その3)

bindの使用制限…意外と使いにくい? for_each( ..., SIncrementer1() ); のような書き方をしたときに、なぜコピーコンストラクタの回数が抑えられるのでしょうか? という、前回の話の続きです。

アルゴリズムのそれってこーいうことか(その2)

関数オブジェクトのコピーコストって? (*A)でfor_eachの第3引数に渡している SIncrementer1() ってどういう意味か知っていますか? という前回のお話の続きです。