SDL-off

に行ってました(おととい)
今回も、色々と素晴らしいものが見れてよかった…んだけど、僕のがショボショボだったので、次回はなんとかしようと思った。


ネタを置いておきます。
解説しておくと、Web2.0時代のPONGということで、スタンドアロンアプリのプログラマというのは、日々、「これってFlashで実装したほうが…」という気分になったりならなかったりなので、Flashでは真似できないものをつくる、というネタでした。
あーそうだ。言うのを忘れてた。画面解像度の取得をやってます。



まあ、次回は頑張ります。(と、毎回思ってるような気がしないでもない)


色々やろうとしたものの、

		template <typename Obj>
		void operator () ( Obj &obj ) {
			inc_pos( obj );
			right_bound( wid, player_score )( obj );
			left_bound( 0, enemy_score )( obj );

			if ( ((obj.x < player_pos.x+board_wid) && (obj.x > player_pos.x)) &&
			     ((obj.y < player_pos.y+board_size) && (obj.y > player_pos.y)) &&
			     (obj.xspeed < 0 ) ) {
				obj.xspeed *= -1;
				obj.xspeed += player_pos.dx;
			}

			if ( ((obj.x < enemy_pos.x+board_wid) && (obj.x > enemy_pos.x)) &&
			     ((obj.y < enemy_pos.y+board_size) && (obj.y > enemy_pos.y)) &&
			     (obj.xspeed > 0 ) ) {
				obj.xspeed *= -1;
				obj.xspeed -= enemy_pos.dx;
			}

		}

結局ひとつの関数で全部書いてしまってたり。

求婚してくる女子

なんていなくても、日々掃いて捨てるくらいの「Re: あなたは選ばれました」メールがきてるのでむしろ…というようなのはもはや古典的。


いや、真面目な話、迷惑メール対策をしてると、ついうっかり本物の求婚メールを捨ててしまう、というようなことがあったりするのじゃなかろうか、という気がしたので、ブロガーな人達は今すぐスパムフィルタを止めるべきだと思った。

オブジェクトとか

いや、真面目な話、「オブジェクト指向もわからんやつは全員死ね」っていうような風潮はどうかと、思う。


まず、僕の理想とする世界が「地球人全員ダラダラ生きててもそれなりに生活していける。技術というのは、ダラダラと生きていくのを目標に進歩すべきであり、努力が必要なものは技術ではない」というような感じで、そこらへんが間違いなんだけど、まあ、ここでは、それが正しいとしておいて。


あー、なんていうか。
オブジェクト指向を理解して生産性を上げられるような人は、どんな方法を使っても生産性を上げられるだろうて。だから、まあ、技術というのは、そうでない人を救済するためにあるんじゃないか、と。
それがどんなものかはわからんけど、でも、他に方法が無いからといって、それができない人を罵るというのはどうなのか、いや、うん、まあ。
関連するかも


でも、だからといって、これを推しすすめすぎると、「真面目に勉強した人が損をする」っていうような感じになるわけだけど。

いや、むしろ、真面目に勉強してる人が真面目に勉強するのをやめてしまえばいいんだ。愚痴を言いながら勉強するんじゃねーよ、って感じで。

…というのは、決っしてネタではなく。

日本においてプログラマの地位が上がらないのは、結局のところ、待遇が悪くてもそれなりに成果を出してしまう人がいるのも原因の一部であると思う。
そういう人達がいなくなって、「与えられた待遇に対して、適度な成果を出せる人」ばかりになれば、「それなりに成果を出せる人」が貴重な存在として、きちんとした待遇を受けられるようになる…かもしれない。


と、いうわけで、真面目に勉強して損するような立場にいる人は今後一切真面目に勉強しないこと!!


今後、そういう人達が増えていけば、「このままではいけない」と考えた経営者達はなんらかの対策を考えはじめることだろう。

そうすれば、日本のプログラマの待遇は良くなるどころか、オフショア開発をさらに加速することになって、技術は海外へ流れ、日本人達は仕事も技術も無くすに違いない。
そして、いつしか一億総NEET時代へ。


一億総NEET!!素晴らしい響き!!
ニートとは「モノは豊かだけど心は豊かじゃない」と言われ続けた日本における救世主であり、いわば、「モノはなくとも心は豊か」とでもいうべきであって、NEETにネガティブなイメージ持ってる奴は心が豊かじゃねーんだよ!!


心の豊かさのためにモノの豊かさを捨てること!それが我々の目指すオブジェクト指向です!!

snapshot

http://d.hatena.ne.jp/w_o/20060613#p1
テスト実行前にメモリダンプって簡単そうじゃないか、ということで、gdbのソースをぐちょぐちょやってみた。


グローバル変数の差分をダンプします。

int test_var;

int
main (int argc, char **argv)
{
	unsigned char *dump;
	snapshot_init( argv[0] );

	test_var = 0;
	dump = snapshot_get_current(); /* ここでダンプ取得 */

	test_var = 3;  /* 変数書きかえ */
	snapshot_dump_difference( dump ); /* 差分出力 */

	return 0;
}

こういうふうにすると、

test_var differd. old=0, current=3

こういう表示が出ます。


GDB 6.4とのdiff
makeしたら、中にlibgdb.aができま。その後、gdb-6.4/以下にある*.aを全部どっかに持ってきて、
そののち、こんな感じで

gcc -g test.c libgdb.a libreadline.a libopcodes.a libbfd.a  libiberty.a  -lncurses -lm  libiberty.a  -ldl -rdynamic -ldl

コンパイルすればあとは実行するだけ。


いまのところ、グローバル変数の整数値しか出ないです。とりあえず、

  • スタックフレーム辿ってローカル変数の差分とか
  • ポインタ辿ってとか

はいるかなー、といったところで。やる気が出れば続く。


GDBのソースは結構読みやすいような。