2009/02/06

C++ memo

以下のようなことはどのようなC++本にも書いてある。スルー推奨。
意識したとき(再認識したとき)に書き留めるのは「個人的に」重要なので書いておく。

----
  • クラスメンバとしてポインタを定義する場合は、コピーコンストラクタと operator= に注意
  • クラスメンバとしてポインタを定義する場合は、これらを暗黙のうちに定義させると、コピー元 が消えた際に、コピー先のポインタメンバの実体も消えてしまう。必ず意識し、定義すること
  • コンストラクタとデストラクタは比較的注意がいくが、この二つは見落とされがちである
----
  • (ポインタではない)実体として定義されたメンバは、そのメンバが含まれたクラスのコンストラクタが呼ばれるたびに初期化され、破棄される際に消える
  • 実体として定義すると、そのクラスのインスタンスのサイズが大きくなる。通常、クラスには他のオブジェクトもメンバとして含められるので、ポインタよりサイズが大きいから。
  • 実体として定義されたメンバは、そのメンバが含まれたクラスのインスタンスが生存している間存在する。よって、メンバ関数からその参照を返しても構わないが、そのインスタンスの生存期間は参照を使う側が意識する必要が出てくる

2009/02/03

Ethna DBLayer Discussion

http://ethna.jp/ethna-dblayer-discuss.html

Ethna ではUTF-8化と並ぶ大手術になりうる DBレイヤの変更。これまで変更に対して比較的保守的だった動きともあいまって、議論が比較的熱くなっている。

俺はこの議論が炎上するくらいで丁度いいと思っているので、このブログにもORMに関するエントリを書きまくって、火に油を注ぐつもりです。造詣がない部分なんて、補えばいいんです。チャレンジするのが技術者でしょう?(*゜ー゜)

2009/02/02

Happy Birthday id:[hkn|scinfaxi]!

id:hkn が企画した誕生日オフに参加してきた。
俺は事前に本人の欠席投票により、なぜかスケスケの服を着てこいと言われていた。

出席者は10人。俺はそのうちロリ系の服を着てくる人が二人いると事前に認識していた。ちょっくら遅れて(← 申し訳ない)会場に行くと確かに二人いたんだけど、そのうちのひとりが男だったのでびっくらこいた。この人物がテクニカルな面でも、それ以外の面でも一番面白い漢だったことは間違いない。lisp「コンパイラ」を書いているそうだ。しかしニート。不思議な人が世の中にはいる。タバコや性的倒錯の話でえらく盛り上がってしまった。

twitter や IRC で少ないながらも人々のつぶやきやURLを追いかけていると、それなりに注目する人が決まってくる。以前からの知り合いばかりでなく、そうやって眼をつけた人たちが多く出席していた。id:hayamiz さんや、id:Ubuntu さん、美女撮影会以来の lovalottaもじら組くみちょ。「ガキの使い」が縁で運命の出会いを果たした hasami さん、「中止ボタンがしいたけに見えて困る」 であまりにも有名な裸電球さん、サッカー大好き Makoto1987 さん、など。旧交を温める的な話をしたり、「おおーこれで俺はおまいに眼をつけたんだよ」的な話で盛り上がったりした。

最後に誕生日ケーキが出てきたんだけど、それなりの大きさだったのと、運ばれてきた時に鳴り響く大音量のバースデーソングに余計にびっくらこいた。写真がそのケーキである。いや、本当にめでたいことです。

----

それなりに年齢を重ねた人が「age++」なエントリをブログに書いているのを見ると、果たして素直に「おめでとう」と書いてよいのか迷うことがある。年齢を多く重ねるにつれ、思うところやその人に起こった出来事などから「本当にめでたいと本人が思っているのかどうか」がわからないことがあるからだ。

だけど、今日の主賓であった id:hknid:scinfaxi については、そんな心配は無用だ。彼らは十分に若く、心からおめでとうと言い、それを祝える会であった。屈託なく、心からそう言える間柄。そう思える場をこれからも持ちたいと思うし、維持したいと思う。

2009/02/01

mod_chxj

http://sourceforge.jp/projects/modchxj/
http://www.amazon.co.jp/Apache-Modules-Book-Application-Development/dp/0132409674

mod_chxj は、Cookie が効かない携帯、キャリアごとにバラバラなHTML、対応画像、絵文字等、たくさんのバッドノウハウを埋めるために開発された Apache module である。maru_cc がIRC でひょんなことから話題にしたことで知った。

・・・とはいえ俺は携帯向けコンテンツ開発に詳しい訳ではない。だが、それでも mod_chxj のソースコードは比較的綺麗で、どんなノウハウが詰まってるのか、という部分で、非常に良い学習材料になるから、敢えてここで取り上げた。

基本的には様々な携帯の capability を etc/device_data.xml に持っておいて、そこに定義されたルールと、ディレクティブに基づいて変換ルールを適用するという方法をとっている。Cookieのシミュレートについては、やはりといえばやはりOne time ID または固定ID を URLに埋め込むことで実現している。

絵文字データは etc/emoji.xml にある。こんなノウハウの塊がオープンになるなんて、いい時代に生まれたものだ。

----

閑話休題。mod_chxj は、Apache module の良いサンプルでもある。以下に当てはまる方は、是非お読みになってみると良いだろう。Apache module については、moriyoshi さんにも酔ってお勧めしたものだが、The Apache Modules Book が素晴らしい本である。
  • mod_[php|python|perl] なんて読んでられるか!
  • C言語が読める
  • 携帯コンテンツにも興味がある