Program Technique

ドラゴンブック

ドラゴンブックとはあだ名で本当はhttp://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E2%80%95%E5%8E%9F%E7%90%86%E3%83%BB%E6%8A%80%E6%B3%95%E3%83%BB%E3%83%84%E3%83%BC%E3%83%AB-Information-Computing-V-%E3%82%A8%E3%82%A4%E3%8…

C99モード

Macでこんなかんじにプログラム書いて for( int i = 0; i < n; i++ ){ コンパイルしたらエラー。どうやら,gccはきちんとC99モードを指定しないとエラーになるそうだ。 (昔から?しばらくg++しか使っていなかったから忘れちゃいました)ということで上記み…

圧縮

ふと3dcg用のデータってどれぐらい圧縮できるのかと疑問に思い,3dsファイルにzipをかけてみました。以前僕が作った豚の3dデータは3dsファイルでサイズは94K byte。こいつを単純にzipコマンド圧縮。結果は55K byteでした。圧縮アルゴリズムはdeflate。 圧縮…

bashでリターンコードを取得

例えばrsyncとかを使ってバックアップをとるシェルを書いた場合とか呼び出したコマンドの戻り値を見たい場合。bashではどうするか? rsync -av data if [ $? -ne 0 ]; then echo "Error data backup" fiこんな感じでドルにはてなのマークでとってこれます。

gDEBuggerを触ってみた

OpenGLの機能を使ったプログラムに対して,パフォーマンスチェックができるソフトgDEBuggerを試しました。gDEBuggerについては http://www.nvidia.co.jp/object/gdebugger.htmlやhttp://www.gremedy.com/を参照してください。Windows,Mac,Linuxそれぞれで…

OpenGLとGDIをあわせて使う

VistaではOpenGLとGDI(Microsoftが提供する描画ライブラリ)を併用する事は基本駄目。という事実を今週知りました。驚きです。 けれどPIXELフォーマットを渡す初期化でフラグを立てればまぁいくつかのGDIの機能は有効になるらしい。 その方法はPIXELFORMATDES…

Vistaか…

最近は,至急Vista対応を合言葉?に仕事に取りかかっている。 それにしても描画に関してはXPや2000とは随分変わっているんだなぁ。テスト環境の構築から始めているけど,再現性のバグもあるので大変です。 とりわけOpenGLを使った3D描画の上にWin32が提供す…

Visual Studioを使った時のアライメント指定

Visual Studio2005を使った場合でのアライメント指定を。ちなみに2005でのアライメントのデフォルト値は8です。 コンパイラ実行時で指定するには? IDE上ではプロパティウィンドウで設定できます。コンパイラ単独で使う場合は実行時にZpオプションを渡します…

C++のアクセス権

C++のアクセス権に関してなんだけど僕は結構隠蔽する派。 ただし業務では。というのも複数人で開発している場合, 例えばライブラリのインターフェースを作っているとしよう。この時,受け渡し用のデータに関して何でもかんでも設定できてしまったりすると… …

嫌なバグ ベスト3

プライベート,業務問わず出会うといやーなバグのタイプに関してベスト3を。 第三位「外部ライブラリのバグ」 これは何度か経験しているんだけど,要はライブラリ側にバグがあって…というパターン。 やだねー,本当に遭遇したくない。 自分が悪いのか?ライ…

c++のstl::vectorのサイズ

stl::vector型のデータって何バイト?使っているにも関わらず即答できませんでした。 恥ずかしい…反省してます。早速32bit環境のg++ 4.2.4でしらべてみると cout << sizeof(vector<int>) << endl; 結果は12byteでした。同様に32bit環境のMicrosoftのVisualStudio</int>…

EmEditor

職場ねたです。仕事ではとにかく大規模なデータを使う。たとえばデバッグするためにちょこっとテキストファイルをいじろうとする。 しかし,1G前後はざら…。 1Gぐらいだと32bit環境のviでは動きがもさーっとしはじめるらしい(聞いた話だが)。 というわけで,…

会社での開発環境

自宅ではLinuxもしくはMacなんだけど,会社ではWindows。 今日は僕の会社での開発環境について。OSはWindows2000。 え?XPじゃないの?Vistaは? まぁ大人な事情です…そしてエディタなんだけどEmacsを使う僕にとってはMeadowといいたとろだが,xyzzyだ。 xyz…

クラスのメンバ

僕は普通のメンバはこんな感じ class Data { private: int _index; public: int get_index(void){return index;} }; セッターとゲッターは必要に応じて。 メンバ名の前にアンダーバー派。でもこれはあんまり良くないなぁと自分でも思う。ちなみに友達は clas…

連立方程式のデバッグ

連立方程式を解くプログラムを簡単にデバッグする時。僕がよくやる方法は… 適当に係数行列を作る すべての成分が1のベクトルを容易 上記のベクトルに係数行列を掛けて得られるベクトルを定数項のベクトルとする これで答えがすべて1になるベクトルできるの…

Rubyのソースをhtmlへ

急遽,Rubyのソースをhtml表示できるようなコンバートが必要になりました…取り急ぎこんな感じで, #!/usr/bin/ruby =begin The work of this program is to convert from a source file to a html code in display. Converting rule: * TAB A tab is convert…

デフォルト引数は好き?

この前ゲーム会社時代の友人と喋っていたとき「デフォルト引数」についてお互いの意見をぶつけ合った。僕は結構すきでよく使う派。例えばこんな感じ namespace calculate{ enum DataType{ SCLAR = 0x01 VECTORE = 0x02, COMPLEX = 0x03, }; bool function(do…

BSODって何の略?

Blue Screen Of Deathの略らしいです。あるドライバ等が原因でブルースクリーンになったとき,ドライバ名にプラスしてBSODという単語も使って検索すると割と情報が集まりやすくなります。全部英語だけどね。

Gtkのラジオメニュー

自分のオープンソースで,セレクションメニューをラジオボタンにしたかったのでhttp://www.gnome.gr.jp/docs/gtk+-1.2.x-refs/gtk/gtkradiomenuitem.htmlをみながら作ってみた。で,ユーザーのクリックに対するコールバックの取り付け方がこのページみてもわ…

vectorのerase

gccバージョン4.2.4とVisualStudio2005とではstl::vectorのeraseメソッドの挙動が違う…具体的には vector<int> a; a.push_back(10); a.push_back(0); a.push_back(11); a.push_back(0); a.push_back(12); a.push_back(0); vector<int>::iterator ite = a.begin(); whil</int></int>…

データ構造を変更する

以前のblogに書いたとおり,目下データ構造を変更中。 現状はとりあえず,変更した構造でデフォルトのデータを表示,ポリゴンのマウスクリックによる選択,テクスチャ描画まで元通りにした。次は3dsファイルの読み込みを直そうと思う。 データ構造変更と言っ…

ALSA関連まとめ

ALSA関連のブログをまとめてみました。 ALSAでプログラミング ライブラリALSAを使ってLinuxでのサウンドプログラム (例えばwavファイルの再生等)をする際の基本についていくつか書きました。 ベースはIntroduction to Sound Programming with ALSA | Linux J…

三次方程式の解

今日はアルゴリズムのお話を。 FEMのポスト処理ソフトを作っていると三次方程式の解き方が必要な時が多々でてきます。三次方程式の出現元は2階のテンソルの主値を求める処理。 例えば - 応力テンソルから最大主応力を求めたり - 剛体の慣性テンソル(らしき…

irb

Ruby関連です。ちょっとしたテストとかしたくなるときファイル作ったりするのが面倒だなぁと。で,そんなときに昔会社で先輩がつかっていたirbを思いだし使ってみることに。irbの説明自体はプログラミング言語 Ruby リファレンスマニュアル で,早速使おうと…

メッシュ生成の並列化

隣のチームが尊敬する部長が作ったメッシュ作成処理の並列化にチャレンジしている。そして成功したと…。すげぇ!まじっすかぁ? 飛んでいくとどうやらCADモデルに対して部品単位でばらばらにメッシュ生成処理を呼び出したとのこと。うん…まぁ…並列化だよね。…

UML図

現在会社では相棒と一緒に共同作業を行っている。この共同作業を行うというのがキーポイント。 いいアイデアとかすごいテクニックだけでは足りなくて,相手と自分の知識や目的の共有が大事になってくる。 (というか,実践していてそう学んだ) で,知識の共…

デザインパターン 2

前回の2008-07-30 - malibu-bulldogの日記でも書いたデザインパターンの続き。 シングルトン以外だとコマンドパターンやコンポジットパターンをよく使う。 コンポジットは入れ子が出来るデータ構成(ファイルとディレクトリの関係)で、コマンドパターンは処理…

デザインパターン

デザインパターンというのはプログラム手法の定型的なもの。 定型的なものなんで,プログラム中の過渡期に使おうとするとはっちゃける可能性有り(笑)。 デザインパターンを使うが為に処理が複雑になったり。 関係ないけど,前社でデザインパターンの事をデ…

printfの有効精度

例えば10桁なら pritnf("%,14f", value); みたいにパーセントの後にピリオドと桁数を入れるそうです。。。知っている人多いのかな?

バッチファイル

Windows上でオートテストを行う為にバッチファイルの書き方を調べているんだけど,結構いろいろできるんだ…。ちょっとビックリしている…。