028. ベーコンとたまねぎのトマトソース

トマト缶の中身が入ったボールを床にひっくり返してしまって大惨事に。ボールに残った分にトマト2個を足したものの、写真でもわかるとおりソースが不足気味でしたよと。

まあおいしかったけどね。久しぶりに料理でドジっちゃったーってかんじ。

VMWare Fusion入れてみた

メモリ4GBに増設したので、いよいよVMWare FusionVistaの登場。

VMWare Fusionのインストール

CDを入れてインストールスタート。Macインストーラにもやっとなれてきた。

とくにカスタマイズ項目もなくすんなりインストール完了。

バージョンが1.1.1と古かったので、最新版を落としてくる。

仮想マシンWindows Vista

  1. VMWare Fusionを起動
  2. 仮想マシンの「新規作成」
  3. はじめに
    • きたな
  4. オペレーティング システムの選択
  5. 名前
  6. 仮想ハード ディスク
    • ディスクサイズ: 20GB(変更なし)
    • 詳細オプション変更せず
  7. Windows 簡易インストール
    • プロダクトキーを入力して進む
      • 小文字で打っても自動で大文字に!
      • 5文字ごとに自動的にハイフンが!
        • 便利な世の中ですわね
  8. 終了
    • Windows Vistaのディスクを入れるとOSのインストールが自動でスタート

Vistaのインストール画面初めて見た。それにしてもWindowsのフォントは汚いな。

iMacセットアップ2日目

Xcode Tools インストール

  1. 起動した状態で Mac OS X Install Disc 2 を入れる
    • Xcode Tools」ダブルクリック
    • 「XcodeTools.mpkg」ダブルクリック
  2. ようこそ Xcode Tools インストーラ
    • わー
    • 「続ける」クリック
  3. 使用許諾契約
    • 読んだ!
    • 「続ける」クリック
    • 使用許諾契約の条件に同意する必要が〜
    • 「同意する」クリック
  4. "Macintosh HD"に標準インストール
    • 「インストール」クリック
  5. パスワードを入力してください
    • はい
    • パスワード入力して「OK」クリック
  6. インストール開始
    • がんばれ!
    • がんばれ!
    • けっこうかかるなあ
  7. インストールに成功しました
    • やったね

Terminal とか

  1. 「アプリケーション」→「ユーティリティ」→「ターミナル」で起動
    • あれ、Macなのにデフォルト設定がなんか素っ気ない
  2. 「環境設定」クリック
    • 黒背景がいいなあ
    • 「設定」から選んでみる→「Pro」かな
    • 字ちっちゃいな、カスタマイズしよう
    • 「Pro」で「設定を複製」→「Balibali Pro」を作成
      • テキスト
      • ウィンドウ
        • 背景:黒、不透明度 90%
        • 列:120、行:36
  3. LANG設定
    • $ echo $LANG → 「ja_JP.UTF-8」 不要だった!
  4. zsh
    • $ zsh --version → 「zsh 4.3.4」 お、そのまま日本語いけそう
    • $ chsh →「Shell: /bin/zsh」に変更してセーブ
    • Command + N → 新規ウィンドウが zsh になってる!やったー
    • % vim .zshrc
      • Debian から設定コピってくる

Mac OS X 再インストール

iMac 買って OS 再インストールしてみている記録。Mac はじめてなのでよくわからんです、ハイ。

id:amachang:20080318:1205824212 が大変参考になりました。ありがとうございます!

インストール準備

  1. ふつうに起動した状態で、Mac OS X Install Disc 1 を入れる。
  2. 「Install Mac OS X and Bundled Software」ダブルクリック
  3. 「再起動」クリック

インストール開始

  1. 言語選択
    • 「主に日本語を使用する」ダブルクリック
  2. ようこそ
    • どもです。
    • 「続ける」クリック
  3. ソフトウェア使用許諾契約の条件がうんたら
    • 読んだ(ことになっている)読んだとも
    • 「同意する」クリック
  4. Mac OS X をどこにインストールしますか?
    • 「オプション」クリック
      • 「消去してからインストール」選択
      • ディスクフォーマット?うーんよくわかんないけど、せっかくWindowsじゃないの買ったんだから大文字小文字を区別してみるっかなあ
      • Mac OS 拡張(大文字・小文字を区別、ジャーナリング)」選択
      • 「OK」クリック
    • 「続ける」クリック
  5. Mac OS X はボリューム"Macintosh HD"にインストールされます。
    • うわ「Macintosh」って今生まれて初めてタイプしたかも
    • 「カスタマイズ」クリック
      • プリンタドライバ → プリンタなどない → チェック外す
      • 追加フォント → んーたぶん使わない → チェック外す
      • 言語環境 → んーきっと使わない → チェック外す
      • X11 → まあ入れておこう
      • バンドルアプリケーション → んーーーとりあえず全部残してみる(あとで消せるよね?ね?)
      • 「完了」クリック
    • 「インストール」クリック
    • Disc 2 が必要ですよ警告
      • 持ってるよん
      • 「インストールを続ける」クリック
  6. インストールDVDのチェック
    • 「スキップ」クリック
  7. インストール中
    • がんばれ!
    • がんばれ!
    • 長いので風呂入ってくる
    • Disc 1 終わったよ
    • 「再起動」クリック
    • Disc 2 を入れる
    • インストール中...
    • インストールが完了しました。
    • やったー
    • 「続ける」クリック

設定アシスタント

  1. Welcomeムービー
    • ちょっと長くね?
    • Command + Q! Q! Q!
    • 無駄だった(´・ω・`)
  2. ようこそ
    • まいど。
    • 「続ける」クリック
  3. キーボード入力環境
  4. すでに Mac をお持ちですか?
    • いいえ
    • 「情報を今すぐ転送しない」選択(デフォルトでされてた)
    • 「続ける」クリック
  5. Apple ID を入力
    • 入力
    • 「続ける」クリック
  6. ユーザ登録の情報
    • 埋まってる!こわっ
    • 「続ける」クリック
    • 適当に質問に答える
    • 「続ける」クリック
  7. ローカルアカウントの作成
    • 適当に入力する
    • 「続ける」クリック
  8. 写真
    • カメラはいやん
    • 適当に選ぶ
  9. Macの楽しさをインターネットにも
    • いらなーい
  10. .Macのフリートライアル
    • いらなーい
  11. ご登録ありがとうございました
    • 長かったよ(100質の最後みたいな気分)
    • 「Go」クリック

ということで再インストール完了。

疲れたので、ソフトウェア・アップデートだけやって寝るー。

recursiveIteratorIteratorでinner iteratorのメソッドが呼べるのはなぜ?

以前のエントリ id:balibali:20080518:1211129576 でオーバーライドがどうとか言っていた件ですが、いまだよくわからず、もうちょっとシンプルなサンプルコードを書いてみました。

<?php
class Sample extends recursiveArrayIterator
{
  function test() { echo 'This is a test.' . "\n"; }
}

$iterator = new recursiveIteratorIterator(new Sample());
$iterator->test();

で実行結果が、

$ php -f sample.php
This is a test.

Sample::test() はどうやって呼ばれているのでしょう??

リフレクション使って中身確認。

<?php
...
ReflectionObject::export($iterator);
Object of class [ <internal:SPL> <iterateable> class RecursiveIteratorIterator implements Iterator, Traversable, OuterIterator ] {

  - Constants [4] {
    Constant [ integer LEAVES_ONLY ] { 0 }
    Constant [ integer SELF_FIRST ] { 1 }
    Constant [ integer CHILD_FIRST ] { 2 }
    Constant [ integer CATCH_GET_CHILD ] { 16 }
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Dynamic properties [0] {
  }

  - Methods [18] {
    Method [ <internal:SPL, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <required> Traversable $iterator ]
        Parameter #1 [ <optional> $mode ]
        Parameter #2 [ <optional> $flags ]
      }
    }

    Method [ <internal:SPL, prototype Iterator> public method rewind ] {
    }

    Method [ <internal:SPL, prototype Iterator> public method valid ] {
    }

    Method [ <internal:SPL, prototype Iterator> public method key ] {
    }

    Method [ <internal:SPL, prototype Iterator> public method current ] {
    }

    Method [ <internal:SPL, prototype Iterator> public method next ] {
    }

    Method [ <internal:SPL> public method getDepth ] {
    }

    Method [ <internal:SPL> public method getSubIterator ] {

      - Parameters [1] {
        Parameter #0 [ <optional> $level ]
      }
    }

    Method [ <internal:SPL, prototype OuterIterator> public method getInnerIterator ] {
    }

    Method [ <internal:SPL> public method beginIteration ] {
    }

    Method [ <internal:SPL> public method endIteration ] {
    }

    Method [ <internal:SPL> public method callHasChildren ] {
    }

    Method [ <internal:SPL> public method callGetChildren ] {
    }

    Method [ <internal:SPL> public method beginChildren ] {
    }

    Method [ <internal:SPL> public method endChildren ] {
    }

    Method [ <internal:SPL> public method nextElement ] {
    }

    Method [ <internal:SPL> public method setMaxDepth ] {

      - Parameters [1] {
        Parameter #0 [ <optional> $max_depth ]
      }
    }

    Method [ <internal:SPL> public method getMaxDepth ] {
    }
  }
}

このリストには、test() というメソッドはない。

マジックメソッドの __call()*1 とか定義してあるなら話は早いのですが、それもなさげ。

んーんーーんーーーということで悩み中です。