雑記


2003-08-25 (Mon)

はてなアンテナ - THE MAN HIMAZINE ÅNTENNA経由 NOT WILD STYLE 経由で, DHTMLなレミングス ・・・ があったんだけど, 閉じたっぽい。

ホントは計画してたんだよね, こんなゲーム。つっても, もっと単純な画面 ・・・ PackManみたいなものをアレしてたんだけど。
んで, やっぱしコレってオブジェクト指向って感じの作りなのかな。そんな気がするんだけど。でも案外ベタベタだったりして。

> そ、そうか! 層化とはそうか (はやまさんとこより)
そーか, そーなのか。なーんて。 ・・・ てゆーか, 単にメンバーに加えるってだけじゃアレかもだけど, methodもそれなりに置き換えるとよいかも。

class Triangle {
  private Point centerPos;

  public int getCenterX() { return this.centerPos.getX(); }
  public int getCenterY() { return this.centerPos.getY(); }
}

もっと短い名前がよいかもだけど。あはは。


2003-08-20 (Wed)

RFIDの, てゆーか 固定のIDを返すタグの問題 ・・・ コレは, シロートが勝手に騒いでいるだけじゃアレだけど, それでも, 細かい部分を少しばかし具体的にすることで, 何か見えてくるものがあるかも ・・・ なーんて。

で, 問題にしているのは, IDタグを読み取られて「何番の人」だとか識別されてしまうこと。 しかも無線で。

てことで, まず 【RFIDカード】基礎とおさらい大事典 によると,

そして, ()で 例として取り上げているのはスーパー。 つまり, 靴や服, かばん, 時計, いろんなものを扱っているとこ, ってこと。 んで, 全国展開してるとこだったらもっとアレかも。 そーゆーアレからすると, 本屋さんでも構わないかもね。
で, 展示品のアレ, それから出入り口でのチェックに, ゲートのよーなものを用意するとしたら, 13.56MHz帯のラベルのよーなブツが使われるかも, とか想定した訳にょ。 つーことで, コレの通信距離は 70cm程度らしいだよ。

(スーパーに品物を収めているとこで, RFIDを使っている可能性もあるかも。 で, そこでは在庫管理のため, やっぱし同じくらいの通信距離のものが使われていたりして。)

もしも, IDタグが値札についていて(つーか値札そのものだったりして), 外すことが可能なら, 購入後に剥がすことができるかもだけど, ソレを付けたまま忘れてたり, あるいはシャツの首の後ろのとこみたいに, 剥がすことできないよーだとアレかも。 てゆーか, 万引き防止だとすると, たぶん, 簡単に剥がせないよーになってるはずだよね。 ・・・ 家具はともかく 小物のばーい。

そして, 街なかにひそむリーダー。
思い描いたのは, ゴツイPDAくらいの大きさ。そして比較的手軽に入手できそーな値段のもの。 つっても, コレは想像上のものなんだけどね。ついでに上のゲートっぽいものも想像上のもの。
んで, 誘導電流ってことらしーから, 何メートルも離れてってのはアレだけど, 70cm, あるいは改造リーダーによって 1メートル前後まで読み取られるよーだとアレかも。
70cmまで不気味な人が近づいてきたら そりゃ警戒するよ ・・・ そー思うかもだけど, すれ違う人があるたび しかめっつらしてたら, ソレがデフォルトになっちゃうよね。 一種 弊害って言えるかも。 つーか人じゃなく, 狭い道に こっそりとソレが設置されていたら困るかも。そう, 『道路工事中! ここを通って下さい』 みたいなとこ。

てことで, あんまし具体的じゃなかったかもだけど, σ(^^) が想像していたのはこんな感じだお。 で, これまた想像の産物を一部アレしてるけど, 解決策はこんな感じかも。

はてなアンテナ - THE MAN HIMAZINE ÅNTENNA経由 capsctrldays経由で, ishinao.netさんとこの 「そんなこと俺が知るか!
電波人間タックルってのもアレだけど, ヒーローがそんな感じなのもすごいかも。

最近 T.V.で見た トリビアの泉。 その中に, トンコツスープで怪人を倒した, ってのがあったんだけど ・・・ アレ? とりがらスープだっけ。 衝撃度からすると, ソレに勝るとも劣らないって感じかも。


2003-08-18 (Mon)

継承 vs 委譲 (Averageさんとこより)
スーパーオブジェクト指向大戦FX (はやまさんとこより)

委譲は, たぶん 委譲イベントモデル (Delegation Event Model)みたいなアレなのかな, きっと。 違うかもだけど。あはは。
層化は, (layering, leveling) てとこから, こーゆー意味だと思うでし。

class HelloWorld1 extends Frame {
    public HelloWorld1() {
        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                System.exit(0);
            }
        });
        this.add(new Label("Hello World!!"));
        this.pack();
    }

    public static void main(String[] args) {
        HelloWorld1 app = new HelloWorld1();
        app.setVisible(true);
    }
}

動きとしては同じよーなプログラム。 どちらも, importとか 省いてるけどね。

class HelloWorld2 {
    private static Frame frame;

    public static void main(String[] args) {
        frame = new Frame();
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                System.exit(0);
            }
        });
        frame.add(new Label("Hello World!!"));
        frame.pack();
        frame.setVisible(true);
    }
}

単に, extendsって感じで拡張するのは, is-a関係とか何とか, そんな風に表現するかも。 そのばーい, (ここでは HelloWorldとかクラス名付けてるけど) Frameの一種として扱うことになるはずだお。 動物 → ほ乳類 → 馬 ・・・ みたいな関係かも。

2番目のは, レイヤリング(layering)とかゆーソレ。has-a関係とかゆーかも知れない。そのクラスが Frameクラスの一種って訳じゃないばーい, こんなかも。 んで, 縦に広げてくか横に広げてくか, そんな違いになるのかも。


2003-08-17 (Sun)

結城浩の日記 経由で, 固有IDのシンプル・シナリオ。 んで, RFIDカード (の基礎)。 それから, 高木浩光@茨城県つくば市 の日記
そのなかに, 「読取機を持ち歩く人」てのが紹介されていて, そーゆーパターンが有り得るのなら, ちとアレかも, なーんて思っただよ。

とあるスーパーで RFIDが全面的に使われてて, で, 街なかで読み取り機を使ってみる, と ・・・ 反応する人が見つかる。その人が所有する, いくつかのブツの IDが表示される。なんとなくその人物を見てみる。
後日, その人を見かけ, ためしに読み取り機を使ってみると, またいくつかの IDが表示される。 同じ番号も見つかるけれど, 違う番号もあったりして, 「もしかして このIDは服のIDかも」とか推測してみたりする。 なにも, 付け狙ってる訳じゃないんだけど, 何度かその人に遭遇するうち, 情報が補完されてきて ・・・

そしていつしかそーゆー集団が現れはじめる。 街角ウォッチングとかゆって, 面白半分に 街に流れる IDを読み取る。 「その ID, ここでも getしたよ」だとか掲示板に投稿されたり・されなかったり。 そのうち IDデータベース用意しちゃう人が現われるかも知れない。

ま, ↑で書いていることは, そーなってしまうゾってことじゃなく, 単なる想像のひとつでしかないんだけど, もし, 読み取り機ってのが簡単に手に入るのなら, 起こりうる出来事なのかも。 そーいや, 盗聴器ってシロモノさえ, どこかに売ってあったりするんだよね?

こんな感じで, いつも同じ値を返すタグなら そのうち社会問題になって, だから, 今後変なことに利用できないよーに, そのうち真っ当なものに置きかわるかも知れない。 でも, それまでに犠牲にならないよーにしなくちゃだけど。
『発信器取り付けられた野生動物みたく扱われるのがイヤなら, RFID採用しているコンビニ(無人コンビニ?)とかで買物しないよーに』
・・・ 知人にはそう勧めるネ, きっと。


2003-08-13 (Wed)

> 思った以上に強力ですね。あとは処理系間の互換性が高ければ、 (はやまさんとこより)
Rhino With Continuations てのを読んでみたです。(読むよーに努力したっつーか)
_| ̄|●

「Continuations(継続)」て何者? て感じアルヨ。 たぶん, C言語でゆーとこの longjumpみたいなものかな? て気がするけど ・・・。 で, 改造がほどこされているらしきその Rhinoだけど, 試しに downloadしてみよーにも, js.jarが見つからない。ぐはー。

ECMAScriptとの関係はとゆーと, 仕様と実装て感じで あってるはずだと思うでし。 SpiderMonkey, Rhino は, 実装されたブツのコードネーム, かな。 んで, ブラウザーに組み込まれていれば, そのブラウザーによって挙動が異なるかもだけど, 単体で動かす分には困らないかも。Java 1.1.x と Java2で(実行環境で), 動きに差があるけど。

てとこで, さらに Rhino資料。 → http://www.felix.jp/~yugo/js/rhino/


2003-08-12 (Tue)

IDEの便利さってのもあったりする。そう, コレは昨日の続きにょ。
IDEだからこそ, って機能に, コンパイルエラーになったら エディターが開いて, そこにカーソルが移動したりするのがあるだよ。 ほかにめぼしいものは, 構文によって色づけしたり, ものによっては補完してくれたり, ヘルプ画面出してくれたり ・・・

だけど 「こんなの直接操作すりゃ, ちょちょいのちょいなのにぃ」て感じで, じだんだ踏んだりすることもよくあるにょ。 こーゆーことするだけなのに, メニューにソレが見つからない。あちこち探しても, オプションのダイアログひとつひとつ調べてみても出てこない。 そんなとき, なんつーか, マニピュレーター使って積み木 組み上げてくみたいな, 目の前にあるのにガラスに阻まれているみたいな, すんごくもどかしい気分になるだよ。

そして, 苦労してそれなりに操作を覚えたとしても, IDEが違うと操作や概念が異なったりして, また最初から覚え直したりってこともあったりする。 言語を覚えるとゆーのなら分かるけど, IDEの操作を種類ごとに覚えて何になるんだろ, そー思ったりもするだよ。

結局, 使いたい人, 使ったことがない人だけ IDE使うとよいかも? とか思うにょ。


2003-08-11 (Mon)

> 所でちらほら見かけるコピペ「何回も言うがIDEを使えよ。〜」 (はやまさんとこより)
σ(^^) だったら, 車の運転に例えてみるかも。

この人がゆってることは, こんなことなのかも ・・・
「古めかしい車(に相当するのかな?) なんか運転するんじゃなく, もっと最新の車を使えよっっ。
最近の車なんか, カーナビまで付いていて, 『次左折です』なんてゆってくれんだゾ。どーだ。 それから, トラフィック情報も知らせてくれて便利なんだゾ。まいったか。」
「新しい車, 使おうとしないのはカワイソーな人だからじゃない? 貧乏人。」

相手を怒らせよーとしてるのかもだけど, 論点がおかしい気がするにょ。
運転することが職業だとすると, そーゆー機能で道具を選ぶってのは変かも。 たしかに便利なとこもあるかもだけど, ソレは付加機能なんだよね。
それに, デバッガー=IDEじゃないし, リファクタリングのツール=IDEでもないもんね。

> _| ̄|● (nii.nさんとこより)
「ガックシ」マークなのかな。あはは。 はやまさんとこでも見たけど, そのときには分からなかったアルヨ。 んで, ソレが 後半のことなら, ちょっち追加にょ。

ここ読むと分かりやすいかも → JavaScriptにおけるオブジェクトの基本的性質を知る (Web Prog [Starry Night])

構文が似ていることもあって, σ(^^) の使い方は, もっぱらインタプリタ Javaって感じにょ。 Javaの visibilityとか, ほかの修飾子のこと, ある程度分かっていれば, コレって便利かも。


2003-08-10 (Sun)

オブジェクト指向祭り (はやまさんとこより) ・・・ まだ多少はアレできるかも

どれだけ, すべてのものをオブジェクトとして捉えることができるか ・・・ ソレが, プログラミング言語のオブジェクト指向としての優劣 として扱われることが多いかも知れない。
primitive type すらオブジェクトになっているもの(?), とか, "if" instruction も, if(condition, then-part, else-part) みたく 関数に, ひいてはオブジェクトにってのもあるみたいだし。 それに, などの演算子も, 型定義の中に含まれるってのもあったりする。

これは, プログラミング言語の 高級言語と低級言語の分類にも似ているのかも。 どれだけ機械側か・それとも人間側か, で アレするのであって, 作りやすさ・理解しやすさ・単純さとは 微妙に異なるとこあるよね。

オブジェクト指向言語つーと, σ(^^) のばーい ・・・ スクリプト言語としてなら, そーゆーのを突き詰めるのもよいかも。 でもスクリプト言語じゃないのなら, あまし凝ったアレになって速度が落ちたりするのは ヤかも。 つまり, オブジェクト指向としてのウツクシサにはこだわってない訳だお。
オブジェクト指向として, fieldを・methodを, こー表現すべき, てのがあるとしたら, これから作るプログラムに対してのソレが大半って感じかも。 もっとも, 言語に対してのソレを感じることない訳じゃないけど。エヘ。

で, JavaScriptがオブジェクト指向かどーか, 言語上にそーゆー機能が備わっているのかとゆーと, ちゃんとあったりする。 でもオブジェクト指向としてのウツクシサはほとんどないかも。あはは。
だから, ホントはこーゆー風にするとこだけど JavaScriptではこう, てのを知らないばーいは 避けた方が無難かも。

function Square(width, height) {
  this.width = width
  this.height = height
  return this   // ← コレは指定しなくてもオケ
}
/* インスタンス・メソッド (instance method) */
Square.prototype.getArea = function () {
  return this.width * this.height
}


function Cube(v, h, z) {
  this.constructor(v, h)   // 上位クラス (super class) をアレする
  this.z = z
  return this   // ← コレは指定しなくてもオケ
}
Cube.prototype = new Square   // 継承 (inheritance)
Cube.prototype.getVolume = function () {
  var area = this.width * this.height
  return area * this.z
}


var box = new Cube(10, 20, 30)
print(box.width, box.height, box.z)   // print は, shell独自のアレ
print(box.getArea(), box.getVolume())

ついでに, つったらアレだけど, Javaの Iterator interfaceを implementしたもの。

importPackage(java.lang, java.util)

var ar = [ 100, 200, 300 ]
var elem = new Iterator() {
  idx: 0,
  elements: ar,

  hasNext: function() { return this.idx < this.elements.length },
  next: function() {
    if (this.hasNext()) return this.elements[this.idx++]
    throw new NoSuchElementException()
  },
}

for (var i = 0; elem.hasNext(); i++)
  print(i, elem.next())

どう, オブジェクト指向っぽくなくなくない? (← だれにゆってんだ)


2003-08-06 (Wed)

> JavaはV.B.の3倍手強い印象でした。 (nii.nさんとこより)
どちらかとゆーと, 大規模開発に向いているよーな気がするです。 >Java
なぜかっちゅーと, クラス名・メソッド名がやたら長く, なるべく重複しないよーになってるっぽいから。 それに, 一般的に, ひとつのクラスは 1ファイル, クラス名=ファイル名になっているから。
Javaは小さな機器用に準備されたって話らしーけど, 小さな機器に重装備開発? みたいに感じただよ。

オブジェクト指向言語にもいろんなものがあって, 中でも Javaは学ぶにはちょーどよいのかも。 interfaceとか abstract, それに Threadとか monitorの仕組み, そりから try〜catch とかあって, 言語の進化ってとこからアレすると, 先端ってゆー雰囲気あるにょ。 (← 雰囲気だけかい)
NetRexx にも注目してたんだけど, Javaの成長についてけなかった感じするだよ。(T-T)

んで, 実際に作るにしては, Javaって ちょっち形式が硬くってアレかも。あはは。
でも, なにか新しいことをアレするのなら, 左足と右足を交互に出してくみたいじゃないとダメかも。 てゆーのも, 実際に使ってみないと, なぜその機能が必要なのか分からないことも多いから。 逆に, 使ってみるだけで理念を放っておくと, ソレはソレで(無駄や間違いが増えたりして)大変だけど。

Stringが classになっていて, そして, 知らぬところで StringBufferが勝手にアレしている。 それから primitive typeがそのままだったりするとこは, 理想と現実を秤にかけて, その結果なのかも。
てことで, 覚えておくことは クラス名は先頭が大文字で, そーでないもの (メソッド名とか, primitive type) は, 先頭は小文字ってことくらい, かな。 (← ホントにソレだけぇ?)


2003-08-04 (Mon)

nii.nさんとこ経由で, OOP。 ちゃんと「データとそれを操作する手続きをオブジェクトと呼ばれるひとまとまりの単位として一体化し」て書いてある。 データって表現は同じだぁ。わーい。 ロジック ⇔ 手続き, てとこが違うけどぉ。って, そんなことゆってるばーいじゃないね。

構造化 ってのが, 構造化プログラミングのことを指すのなら,

みたいな種類があったと思うけど, ソレを捨て去る必要はないと思うですよ。 ミクロの世界ではそんな感じだし, でも マクロ的に見ると, ソレ以外の概念が加わる, みたいな感じ, なのかな。
たとえば, event driven (イベントドリブン) にしても, 次になにが来るのか分からない → その何かをアレして → 元に戻る ・・・ てゆー, 単純に上から下に流れる制御構造とは違っていて, 新しいパラダイムとしてのソレが必要になったりする訳にょ。

オブジェクト指向も, 明らかに新しいパラダイムなのだから, 学習するとしたら 初めてプログラミング言語に携わるときみたく, それはもーカルチャーショックバキバキなのかも。 そう, だから, 言葉でいくらつくろったとしてもアレかもにょ。

「A = 10 は, 変数 Aに 10を代入することだよん」
「何ソレ」
「や, だから, Aは変数で, ソレに 10をセットする, みたいな」
「A と 10は等しいって意味?」
「違うって」

はじめて プログラミング言語を覚えよーとしたときには混乱したことあったはず。 コレは, 練習プログラムとか 自分なりに作ってみないと, 分かりづらいと思うだよ。
動物だ, ほ乳類だ, と, クラス分けの説明されても, ソレは 理解しはじめている人への説明だから。

オブジェクト指向って, 構造体をアレする みたいなものなのかも。なーんて思ってみたりなんかして。
それはつまり, この部分(データ・情報)を構造体として保持しよう, そんな風に考えることできたら, ソレはたぶん オブジェクトにしても構わない, とゆーことなのかも。

構造体つっても, ときどき, なにかの構造をそのまま構造体に埋め込もうとしているのを見かけて, ソレちょっち違うんでないかい? とか考えたりするだよ。
そーゆーアレじゃなく, 互いに関連する何か ・・・ コレはアレに影響を受け, ソレに変化があったとき 関連してアレすることが多い。 多少例外もあるかもだけど。 ・・・ そんな風なとき, ソレら情報をグループ化し, ひとまとまりに扱うことで, 情報に変化があったときの処理に 記述漏れがないよーにする。 整合性を保つ。 それから エート, 取扱いも(バラバラよか)便利。

構造体のメンバーとして, fieldだけじゃなく, methodも加わることができたりして, それは, ソレら fieldに対するアレだったり, ソレら情報全体に関する処理(procedure)だったり, そゆことにょ。 同じメンバーとして 一緒に扱うことに抵抗がないよーなブツだね。

ちなみに 「switchで分岐するのではなく」てのは, event drivenでの, event typeごとの処理を ・・・ ソレを指しての話れすね, コレは。 だから, switch文はソレなりに使うです。少なくとも σ(^^) は。


2003-08-02 (Sat)

朝日新聞のデタラメHTML入門に対する抗議 ・・・ 「これ最強」 (void GraphicWizardsLair( void ); //) 経由, 狐の王国 より。

最初の一歩をあさっての方向に向かって踏み出させよーとした「asahi.com」だけど, 次の一歩は, はたしてどっちを向いているだろーか。みたいな。

間違ったことを教えることがまかり通ってしまうと, 教えられた人はソレをほかの人にも教えてしまう。 それだけじゃなく, その人に対し間違いを指摘して正しいことゆっても, ソレを疑いのまなざしでみよーとする。 いくらゆっても信じちゃくれないし, よーやく理解したころには, そんな人が増殖している。なんだかゾンビみたい。

にしても, 一部, (端から見ると)笑えるほどに冷静さを欠いたとこもあるけど, その論点はよいと思うにょ。
ましてや自然言語ではないのですから、文法無くしてははじまりません」てとこは, もしかしたら(asahi.comは)読み飛ばしている可能性もあるかもだけど, しっかり理解してほしいと思うだよ。ウン。


2003-08-01 (Fri)

ところで, なぜ データと(その)処理とをセットにするのかとゆーと, セットにすると便利だし, まとまってると分かりやすいかもだから。 (← 説明になってないっつーの)

getSec: procedure
   parse arg hh':'mm':'ss
   res = hh *3600 + mm *60 + ss
   return res

getSec: procedure
   tm = this.getTime()   /* ← 仮想的に ソレっぽく表現してみたばーい */
   parse var tm hh':'mm':'ss
   res = hh *3600 + mm *60 + ss
   return res

前者は, hh:mm:ssの形式の時刻から秒数を求める汎用の関数。 汎用つっても, 引数はそーゆー形式じゃないとエラーになっちゃうけどね。 んで, 後者は, あるクラスが持つ instance method。 データ項目は, すでに, memberとして 正しい形式で保持しているはず。

ちなみに, JavaScriptでの似たよーなソレはこっちだお(↓)。Rhino.zip があると簡単に試すことできるもん。

Date.prototype.getSec = function () {
  var res = this.getHours()*3600 +this.getMinutes()*60 +this.getSeconds()
  return res
}

var now = new Date()
print(now.getSec())   // 00:00:00 からの秒数を表示する

間違った形式で呼び出そーにも, ソレができないってとこがよいのかも。 (← ソレって, なんだか後ろ向きぃ)

もうひとつは, 似ているけど処理内容が微妙に異なるデータ, ソレをアレするとき便利かも。 event driven (イベントドリブン) なときに力を発揮する, みたいな。

オブジェクト指向じゃなかったら, どーなるのかっつーと ・・・ 全体的にはイベントごとの違いはないとして, ほとんどの処理は同じとこを通る。 だけど, 処理のそこここ, いくつかの個所で, イベントのタイプを調べて switch文で分岐したりするのかも。
オブジェクト指向のばーい, イベントのタイプで別のクラスにしてしまって, だから, 自動的に処理が分岐される, みたいな感じかも。 てゆーか, そーなるよーに methodをうまく作らないとダメだけど。

んで そのとき, そのイベントを扱うクラス(Type_A), そして(Type_A)を拡張したサブクラス(Type_B), 同じく(Type_C) があるとして, 共通のとこは (Type_A)で記述して, んで, 違うとこはそれぞれでアレする感じにょ。

class Type_A {
  private Event event_data;   // 型(クラス)はてきとー (^^;
  public void method01() {}
  public void method02() {}
  public void method03() {}
}

class Type_B extends Type_A {
  public void method02() {}
}

class Type_C extends Type_A {
  public void method02() {}
}

「差分プログラミング」って, たぶんこーゆーことなんだと思うけど, 「オブジェクト指向は難しい (Matzにっきとこより)」 にもあるよーに, 「差分〜」てのが強調されてるっぽく感じるだよ。 つーか, 強調てゆーより誤解もあったりして。 新しく開発するときに, 差分で済むから手間がかからない, そんなニュアンスでゆってる人見かけたことあるよーな ・・・。

σ(^^) が思うに, オブジェクト指向プログラミングは, ソレが必要なときに使うとよいと思うだよ。
たとえば, 再帰を使うことができる言語で, おもいっきり再帰使ったら見にくくなったりするよね。 ループ使うのがいいじゃん, みたいな。 再帰を使うのが適当な個所なら再帰を (ソレが不可能な言語ならループで何とか), そして, オブジェクト指向プログラミングが適当な個所ならソレを, と。
(そーいや, クラス継承の必要がないとこまで継承使ったりってのを聞いたことあるにょ)

でも, 使うことができなきゃ, 選択もできない訳だけど。


2003-07-31 (Thu)

> 「オブジェクト指向て何?」と問わざるを得ないのであった。 (nii.nさんとこより)
んじゃ, オブジェクト指向のプロがお答えいたしましょー。・・・ なーんつって。ウソ。あはは。

数々の「オブジェクト指向とは」な 入門書を読んだってことは, そこに載ってたことを繰り返しちゃうかもだけど ・・・, まずは, データをそーゆー風に扱うことができるってことがひとつ。

Rhino 1.5 release 4.1 2003 04 21
js> obj = { fieldA: 100, fieldB: 200 }
[object Object]
js> obj.fieldA
100
js> obj.fieldB
200

これくらいなら, どんな言語もオッケーかも。 んで, オブジェクト指向のばーい, 従来の データの集まり + ロジックの集まり → プログラム(ができる) て感じじゃなく ・・・

  1. データ + (データに関する)ロジック → オブジェクト
  2. いくつかのオブジェクトの集まり (オブジェクトを作ったり消したりアレしたり) → プログラム
てな感じ? 従来の考え方では ソレが 二大要素だった訳だけど, オブジェクト指向では渾然一体となっている, みたいな。 この, データのグループに合わせた処理を用意できるってのが, もうひとつの特長かも。

だから, たとえ C言語でも, そのよーにアレすればオブジェクト指向みたくできるのら。 ただし, 言語レベルでのサポートがあるのとないのとでは, プログラム修正するにしても, ソレなりに手間が違ったりするにょ。

/* てきとーだけど */
struct Sinamono_ST { int tanka, kingaku; FILE *fp; } syohin = { 150 };
(*method_calc)(&syohin, 20);
printf("金額: %d\n", syohin.kingaku);

構造体を関数に引き渡すことは, 定型化した引数の固まりを 比較的単純な扱いにできるってことで, それなりに使うことあるけど, さらに (必要なばーいには)関数テーブル用意したり, 引数の数を考慮したり ・・・
さらにその上, オブジェクトのコピーのこと考慮する(必要がでてくる)のなら, こんな感じかな。 (つーか, C言語 知っているのなら, new は内部で mallocしていると覚えておくと分かりやすいかも〜)

obj = malloc(sizeof (struct Sinamono_ST));   // obj = new Sinamono(150);
obj->tanka = 150;

開発言語でゆーと, JavaScriptはオブジェクト指向言語れす。 てゆーか, 輪郭っつーか境界線 (← 何の?) があいまいな言語も多いから「強いてゆーとこっち側」って言語もあるけど ・・・ オブジェクト指向でなかったころの仕様を引きずっている, みたいなものとか。

JavaScriptのばーいは, オブジェクト指向つっても クラスを元にアレするんじゃなく, プロトタイプベース ・・・ てゆーんだっけ? つまり, 「早く人間になりたい妖怪人間」て感じかな。 (← 分かりにくいって, ソレ)
でも (現在の JavaScript 1.5 の次の) JavaScript 2.0 ではクラスベースになるっぽいけど。


2003-07-30 (Wed)

HDD&DVDレコーダー持ってんだけど, 使っていて落胆すること多いだよ。 そりゃ, テープに比べてよい点も多いんだけどさぁ, でも, テープから HDDに変わったことで不便になったってんじゃなく, 家電としてのソレの操作性だとか 信頼性ってゆーか, そんなことだお。

まずは, リモコンの操作性。東芝のブツなんだけど, やたら似通ったボタンが多いにょ。 もしかしたら DVD Playerとして 「こーゆーボタンを最小限装備してないとダメだよ規格」てのがあるかもだけど, それにしても使いづらい。 それこそ, マンマシンインターフェースってのをちっとは考慮してほしいと思うだよ。

んで, 応答性も悪かったりする。PCでゆーところの, ディスクアクセス中にキーボードをタイプしてもまったく無視される, みたいな, そんな感じにょ。 タイミングを合わせれば(?), リモコン連打してもまったく無反応になっちゃうことあるし, 逆にそれなりに反応よくなったりもする。 何かの処理の途中, 赤外線からの割り込みを無視してるっぽい感じだね。そしてソレが 入力を受付けた確認音 が鳴ってるってとこが また分かりづらいとこ。 音をならすロジックと コマンド(?)受付けロジックが別になってるっぽい。

さらに, この OSの出来も悪いだよ。

もしかして, 組み込みウインドーズでできてるの?, コレ。

HDD書き込み不可になったときの対処 ・・・ 『DVDにバックアップして HDDを初期化して下さい』
数十GBもあるものをバックアップ〜〜〜? 数十枚の DVDメディアって, いったい幾らすんのー。ぐはー。


2003-07-27 (Sun)

> HTML 関係で久々に頭に来ました。 (えび日記「やってしもうた」より)
それによると, 「asahi.com : Be on Saturday」に とんでもない HTML入門記事が載っているっぽい。 んで, しかも記事を書いた人は本さえ出しているって話。

Strict-HTML スレッド14 でも紹介されていたりして。 さらにそこには, 「論理構造や約束事を知ることよりも取りあえず作ってみることの方が重要かと考えました。英会話をするには、文法を習うより実際に話してみた方が良いのと同じ理屈です。」とか返事があったらしいだよ。

外国の言葉を習うのに, ある意味ソレは正しいかも知れない。 文法的に多少間違ったとこがあろーとも, 伝えよーとする意志があれば案外伝わったりするものだから。
でも, ソレと, プログラミング言語やマークアップ言語とは異なるものにょ。 その意を汲んで, 正しく実行してくれたり正しく表示してくれたりはしない。 たとえうまくいったっぽくても, 正しくない文法ではどこかに歪みがあると思うだよ。 その言語を理解するのは こんぴーた, あるいはその上で動くソフトウェアなのだから。

でも, 問題点を指摘したとしても, 「asahi.com」は理解できないかも知れないね。 記事に対して問題点を指摘したことへの, ↑がその返事らしいから。

ホントは, だから, 正しいあり方ってのを示すのがよいのかも。
ごく簡単なHTMLの説明 ・・・ ここは, 分かりやすくしかも正確に書いてあるみたいだし, なにより, 「なんのために, どーあるべき」と, 理由も書いてあったりするにょ。
世の中に, しかもこれから HTMLを学ぼうとする人たちに, 「asahi.com」はウソを教えるんじゃなく, 正しいことを教えてほしいと思うだよ。(URLだけ載せるのでもよいから)


2003-07-25 (Fri)

> Javaで、あるオブジェクトobjが配列かどうかを調べる方法 (プログラマーのためのプログラマー日記より)
引数が配列かもしれないってばーいに, よくこんな風に使ったりなんかして。

if (obj.getClass().isArray()) {
  // 配列だったら
}

あとほかに, instanceof の動的な(?)アレとして, isInstance() だとか。


2003-07-24 (Thu)

> 学校で習ったんぢゃない気がしてきました。何で持ってんだろ。 (nii.nさんとこより)
計算尺 習うのは, 中学くらいらしいれすね。なんとなく。

でも, 計算尺ってもちっと普及しててもよい気するだよ。 てゆーのも計算尺って, 電気を使わずに計算できて とってもエコロジーな感じ。 ソーラー電卓でさえ光が必要だとゆーのに, 計算尺なら光がなくても大丈ぶいっ。 暗やみじゃ, 文字盤読めないけどね。 (← ダメじゃん)

そして, 交通計算尺 2000 とかゆーブツもあったりする訳だから, いざとなれば手作り計算尺ってのも可能かも。誤差大きいだろーけど。 (← 作るためにも計算が必要なんじゃない?)

てゆーか, 昭和 40年代生まれの人は, すでに知らない可能性が高いかも。 つまり 1960年代後半。


2003-07-23 (Wed)

> それは桂銀淑だ。ま・まさか計算尺を知らんと言わんだろね (nii.nさんとこより)
白くて長い板で, 中にある芯がスライドするよーになっていて, んで, 透明板に線が入っていてソレを目盛りに合わせ数字を読みとって計算する ・・・ って思っていたら, 円盤形だの円筒形だの 計算尺にもいろいろあるっぽい。 初めて知ったこの事実。 なーんちて。

でも, 学校で教えるかっつーと, まず明らかにソレを使うことはないだろーし, 習うとしたら電卓の使い方・PCの使い方, ってことになっちゃうのかも。やっぱ。
で結局 流れとしては, 手回し計算機 みたいな感じで 伝説となって語り継がれていくのかも。

だとしたら, 三角定規とかコンパスも, そのうち 液晶(とは限らないだろーけど)ディスプレイで授業を受けるよーになったら, その後 数年で同じ道をたどるのかも。 つまり, 「計算尺なんて使ってた時代もあったんですね」とか言われても, 少しは反論できるかもってことで ・・・ (← 負け惜しみにしかならないネ)


2003-07-19 (Sat)

よーやく復活するかもしれない。・・・ はぁ。
てゆーのも, HDDが壊れて, HTMLとかプログラムとかすべて消失したっぽいのら。(T-T)
vectorのサイトに残ってるつったら残ってるんだけど, 一部はプログラムからのアレなので, オリジナルデータがないとダメなのら。 それでも, ま, 努力のかいあって, 完全に復元するのは無理だけど, ソレなりにそろってきただよ。 RSP をコントロールするプログラムも, 一から作り直して, 前より機能豊富になった感じ。エヘヘ。

考えてみるとゆーと, 例えば CLIEのばーい 落としたら壊れるけど, よほどのことじゃないと壊れない。 上下ボタンが壊れたとしても普通は酷使したから, だよね。 少なくとも HDDのよーな「何が起きるか分からない」てブツじゃないと思うだよ。

もしかしたら HDDは, 一個いくらで買うものじゃなく, セットで買うものなのかも知れない。 靴を片方だけ買ったりしないよーに, HDDも, メインとサブって感じでアレするのがホントかも。 そー考えてみると, HDDって割高なのかもね。

ってところでニュースだお。→ 電源を切ってもデータが消えない次世代RAM、来年にも製品化へ
σ(^^) としては, やっぱし今の HDDの壊れ方はおかしいと思うし (今だからそう思うのかもだけど), もっと信頼できる別の媒体か, あるいは HDDの信頼性がアップしなきゃダメだと思うだよ。 そんな訳で, コレには少し期待しているんだけど, でも記事にはすこし疑問もあるだよ。 ・・・ OSが不安定では仕方無いんじゃないのかな?


2003-07-02 (Wed)

十二国記 「月の影 影の海」が終わったっぽい。 んで, その次の「風の海 迷宮の岸」も そのうち始まりそーな予感。 てゆーか, 放送予定 って書いてあるんだけどね。

国を治める王になる/ならない, ってのは, 一介の高校生に突きつけられるものとしては あまりにもアレだけど, でも結局, 王になることを選ばなければ 仕方ないって感じするよね。
元の世界に戻ってみても, 数年のうちに麒麟が倒れちゃったりしたら 陽子もそれに続いてしまう訳で, だったら もういちどやり直すも何もないもんね。

んで, その決心ってゆーか, 自分が納得できるよーな そんな何かを探してるのかもだけど, でもホントは, そこからがもっと大変になると思うだよ。
国を治める・舵を取るってゆーと 大変そーなのは伝わるけど, 実際には あまりに漠然としていて, つかみ所がなくって, 潜在的な素質を認められた王であっても, ソレはアレな気がするんだよね。
だいたい, 剣を振り回してりゃ国が動くって訳でもないもんね (政治家がチャンバラやってる訳ないし)。 確かに最初は内乱があるかもだけど, それも数年って感じだろーし, 問題はそのあと みたいな ・・・

ところで, よく考えてみると 巧国(の王)って, 陽子にとって ある意味 恩人になるかも知れない。 試練を与えてくれたってゆーか, 考えを改める機会を与えてくれたってゆーか, 塙王 本人はとんでもないけど この逆境ってのがなければ, もし 何ごともなく王位についていたとしたら, 先の慶国の予王と同じくらいしか 国が持たなかったかも知れないよね。 つか, まだ結果はでてないんだけど。
ある種の逆境は前に進むチャンスになり得るのかも。なんとなく ことわざに出てきそーなアレだけど。あはは。


Rexx使いの織華
email: ori@drive.co.jp