トップ «前の日記(2005-09-24) 最新 次の日記(2005-09-26)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2005-09-25

_ 属性

属性というのはつくづく面白い概念だと思った。

でも何が要素で何が属性かっていうのは、そんなに簡単には決められない。

属性=メタデータと決めたとしても、昨日のメタデータは今日の要素ってこともあるだろうし。逆も真で、synchronizedとかvolatileというのは今日では属性だ。というか元々属性かも。でも、それが元々属性なら型だって属性じゃなかろうか。名前は属性だろうか。多分、属性だろう。

コンパイルが完了したら、ソースは属性かな。その前から属性だったり。すると、メタデータしかなくてデータが無いという状態を作ってることになるのかも。それはとても不安定な話だ。

といったようなこと。

_ メモ

オブラートがいろいろかかっている(糸井メソッドなのか?)ので真意が読めないが、それはそれとして一理も二理も九里よりうまい十三里半もあるように読める自分で作る話

関心事は「作る」か「使わないか」なのだが、コンテキストによって「自社の分離独立王国が作ったものを使わせられる(ヒント:使えない)」「おれさまおれさま」「どこかの馬の骨が作ったものを使わせられる(ヒント:結構使える)」「どこかの牛の骨が作ったものを使わせられる」「作るのかったるいじゃん」「奴等が作ったものは意地でも使わない」「とりあえずあるんだから使っとけ(ヒント:使えない)」とかいろいろからむのでウィービングできるかどうかは技術だけでも政治だけでも気分だけでも決められない。ちなみに余の辞書にはジョイントポイントは無い。

非常に興味深い話なので、後で革めて能書きを垂れてみるかも。

サイボーグ戦士経由。

ちなみに最初サイボーグ戦死と誤変換されてたorz。

_ NerdTV続報

福盛さんのところでhirさんによる全文翻訳が紹介されていた。

すげー。すげーよ。

確かに

CC(Creative Commons)のご利益は思ったよりもありそうですよ、

だ。

_ 部分ということ

Bob: Bill GatesはEclipseに相当金を出していると思うよ。

Andy: だからWindows NTで動いているんじゃないか?

NerdTV翻訳/1-Andy hertzfeldから

部分的な引用は人を戸惑わせる。

_ 年を取るということ

Bob: 今から10年後のあなたは何をしていると思う?

Andy: うわあ。もう60過ぎだよ - 今51歳だからね。

Bob: 僕もだ。僕らカッコイイと思わないか?

NerdTV翻訳/1-Andy hertzfeldから

年を取るってのもそう悪いことではない(し、どっちにしたってそうなる決まりだ)。

つまり、世界はそれでも進歩はしている。牡蠣の食中毒の原因がウイルスによるものだとわかったってことは進歩だ。Googleを利用できるようになったのはやはり進歩だ。今はだめだったり夢だったりしても10年後には実現してるかも知れない。それに力を貸せるかも知れない。そんなことだ。

_ pThis

Java/StaticInnerClassを見ていて、Visual C++(というかMFC)のkludgeの最たるものpThisを思い出した。(URLとはまったく関係ないけど)

いや、あれは本当にひどい仕組みだった。名前もひどいもんだが。pThis。しかし無ければ困るし、他に手段を考えると、thisをコンストラクタに与えてそれを利用させるくらいしか考えつかない。多重継承を利用するATLと異なって、MFCではCOM用のクラスは内部クラスとして実装することになる(マクロを利用しているため気付かない人は永遠に気付かなくて済むハッピーな仕様)。ところが、このクラスのインスタンスはCOMのコンポーネントとしてはともかく、MFC上は母艦と連絡を取る必要がある。というわけで利用するのがpThis。

class Outer {
  int m_refCount; // 参照カウンター
  class Nested  {
      Outer* pThis;
      Nested() { pThis = ((Outer*)(LPBYTE)this - offsetof(Outer, nested)); }
      ...
      UINT Release() 
      {   // こんな感じかな。
          UINT u = --pThis->m_refCount;
          if (u == 0)
          {
              delete pThis;
          }
          return u;
      }
      ...
  } nested;
  ...
}
// まじめに書いてみると、まともな仕組みで、ポータビリティもありそうだな。
// というか、MAC兼用のはずだからポータビリティはあるのか。

Javaのインナークラスを見て、やっと子機というか着陸船(母船と紐付き)というかが言語仕様に入ったんだなと思ったら、C#にはDelegateにこそthisが入るけど、内部クラスは単に名前空間だけが提供されるだけのJavaのstatic nested class相当だったんで相当がっかりした。

ちなみに、ATLではpThisは不要なかわりに、今さわっているthisはどの基底クラスでのthisなんだ? 問題というのが結構出てきてどこかへ吹っ飛ばしてしまったり、それはそれで厄介であった。

本日のツッコミ(全3件) [ツッコミを入れる]
_ wildcats (2005-09-25 19:58)

いきなり玉砕って感じですかね(^^;<br><br>今回のリンク先のエントリには思うことが相当あるので<br>今晩にでもボクもなんか書きます。

_ (2005-09-27 12:13)

彼らはみんな、同じことを言う。> ぐるっとおみとおし!

_ arton (2005-09-27 21:37)

っていうか、使えない場合に「それはお前が悪い」となるのか、「そりゃすまんかった、直す」のどちらに転ぶのか、と、実際に使えない場合に使えないほうが(能力不足によって)悪いのか、使えないものを作ったほう(作りが悪いによって)が悪いのかの、4つの象現それぞれがあるから、単純じゃないんだよね。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|

ジェズイットを見習え