iPhone 買いました。周りに遅れる事1週間。日曜日に入手してからずっっっっと使い続けてます。

まず。最高です。いろいろと不満はあるけど「技術者の勘」というヤツで、いまの不満は近い将来ちゃんと改善してくれそうですね。それも想像以上の改善を。その種はあちこちに見て取れます。

友人から、iPhone 3Gは「Mac OS X v10.1.x 相当だ」という名言が出ました。まさにその通り。不安定だったり、ポリシーが一貫されていないところがあったり、そもそもアプリがバギーなところなんてまさに Mac OS X v10.1 時代を思い出します。

あの頃はまだ Mac OS 9.x がメインで、Mac OS Xは切り替えながら使っていたけど毎日楽しかったなぁ。バグを見つけたり、新しい機能を発見したり。

人には勧めません。「IT部長の生活の知恵袋」みたいなものがとても要求されるデバイスです。

だけど、こんなに面白いデバイスがいままであったでしょうか。

iPhone は Mac OS X。UI、Flamework、デザインは Mac OS X v10.0のころからの蓄積がたっぷり詰め込まれています。つまり、iPhoneの開発は Mac OS X v10.0 のころから培われて来てたんですね。

そこまで遡れば、携帯/モバイル市場の中でもっとも開発リソースと時間とお金がかかった最高のデバイスですよ。そして更に先を匂わせる数々の機能と不都合。

楽しくってしかたないです。
いまさらですが、wine projecバージョン1.0リリースおめでとう!

ひさしぶりにwineのMac OS X向けportであるDarwineを入れてみました。sourceforgeのDarwineはまだ1.0になっていないので、mikesMassiveMessのDarwine  Builds  for OS Xを使います。こっちは1.1.1です。

MacportsFinkで入れたり頑張って自分でビルドしていたのがウソのように、インストールはドラッグ&ドロップだけです。

Darwine1.1.1.pngインストールしたら、基本的にWineHelper.appにWindowsバイナリなexeをドラッグ&ドロップするだけでX11.app経由でWindowsバイナリがそのまま動きます。手持ちのアプリをいくつか動かしてみましたがちゃんと動いてびっくりしました。進化してますね〜。

インストーラー形式のWindowsアプリケーションをインストールしたい場合には、インストーラーのexeをWineHelper.appに渡せば、ちゃんとインストーラーが起動してインストール処理されます。

その際のインストール先は、wineの仮想Windows環境(?)に入ります。実態は ~/.wineです。ドットフォルダでFinderからは見えないので、シンボリックリンクでも張っておくと幸せになれるかもしれません。

$ ln -s ./.wine ./wine

基本的には、この.wineフォルダの中に仮想Windows環境がファイルベースで作られます。たとえばProgram Filesは~/.wine/drive_c/Program Files/にあります。
この仮想Windows環境は、wineの実装方式によってまちまちで、CrossOver Macなら~/Library/Application Support/CrossOver/Bottles/、MikuInstallerなら~/Library/Application Support/MikuInstaller/prefix以下になります。

CrossOver MacMikuInstallerはアプリケーション毎に仮想Windows環境をつくる形になっていて面白いので、その辺はまた今度。

さて、デフォルトでは日本語が表示できないので、Darwineに付属のbundleにMSゴシックやMS明朝をいれておくと日本語のアプリケーションもばっちり表示できるようになります。

フォントのインストールは、/Applications/Darwine/Wine.bundle/Contents/share/wine/fontsへ行います。

Darwine_fonts.pngMS Office 2008付属のものを入れてみましたが、ばっちり日本語表示されるようになりました。

HDBENCH_on_Wine.pngで、HDBENCH.exeを動かしてみたらちゃんと動きました。すごいなぁ。ベンチもちゃんと取れます。値が信用できるのかどうかは知りません。

ゲームはDirectX関係があるので、そのままでは動かないものが多いようですが、DLL入れたり必要なランタイムなどを入れれば動くものもあるそうです。ゲームはあまり得意じゃないのですが今度また試してみます。
半日ほどかけて Xen 3.0.3 を試してみましたが、VMware Server のままでいいやという結論に達しました。

以下、Xen を使わないいくつかの理由。

  • デフォルトでは Xen は Domain を扱のに root アカウントが必要になる。
  • kernel-xen は CPU リソースをめいっぱい使ってくれる。
    • 印象として Xen はサーバーのリソースをフルに稼働させて各 Domain に割り当ててくれる。
      そのせいで CPU への負荷はそうでもないけど CPU の温度が高めのままになる。
      アイドル時でもCPUの温度が +10℃になった。
    • cpuspeed サービスが使えないのが痛い。まぁ走らせる方法はあるかもしれない。Cpufreq Driver for Linux 2.10.00とか。要検討。
  • 完全仮想化ではVMware Server 1.0.6とパフォーマンスに大きな差はない。
    お互いに得意、不得意分野が出るかと思ったがそうでもない。

  • Xen付属のVNC Serverが全然使えない。
    • Chicken of the VNC.appからの接続不可
      設定が間違ってました。ディスプレイの色数を適切に設定すればOKです。
    • 複数のVNCクライアントからの接続が出来ない(らしい)
    • 誤っ た設定をしたVNCクライアントから接続すると仮想マシンマネージャー(virt-manager)からも接続できなくなる(複数のVNCクライアントの 接続が出来ないから)。そうなると、特に Windows 系 OS だとDomain Uをdestroyするしかない。
    • X.app(Mac OS X)から接続(Xquartz -query または SSH -X)して仮想マシンマネージャー使ってるとマウスがグラブされて、デタッチできなくなるコトがよくある。Exposé で抜けるしかなかった。
ただ、今回試したのは Xen 3.0.3 で、XenServer 4.1あたりだとまた事情が変わってくると思うので機会があれば試してみたい。そういえば、VMware Server も 2.x のRCがリリースれているのでこれも試してみたいなぁ。

以下、Xenに期待しているポイントをまとめてXenへのチャレンジおしまいです。

  • 物理デバイスの取り扱いがウマそうな印象がある。
    VMware Serverでは物理デバイスを直接扱うには不安があるのでXenに期待。
  • 友達の Xen Server 4.1 のインストールメモをみると GUI がかなりVMwareっぽいので使いやすくなってほしい。
  • 準仮想化でのパフォーマンスがどの程度アドバンテージがあるのかLinux/BSDなDomain Uで試してみたい。

Windows 2000 のセットアップが終わったので、iSCSI が kernel-xen でも動くかチェック。
kernel-xen のソースをインストールしてから、iscsitarget-0.4.16 をソースから make、make install。

# yum install kernel-devel
# cd /usr/src/redhat/SOURCE/iscsitarget-0.4.16
# make && make install

問題なくインストール完了。

# /etc/init.d/iscsi-target start

して、イニシエータからマウントして正常動作を確認。よしよし。

cpuspeed サービス が xen カーネルでは動かないので C'n'Qが効かないCpufreq Driver for Linux 2.10.00問題でなんとかならないかな。
まぁそれは今度試してみる事にして VMware Server 1.0.6 と Xen 3.0.3 の Domain U に Windows 2000 をインストールしてベンチ取ってみました。
どちらも、ファイルイメージに Windows 2000 をインストール、メモリは 1GB、cpuspeed サービスは停止した状態で HDBENCH.EXE を3回実行した平均値です。

CPU
CPU.jpgMemory
Memory.jpg
Disk
disk.jpg
な んだか、どっこいどっこいな結果になりましたね。ディスクパフォーマンスで VMware Server がちょっとリードしていますが、大きく差の出る結果になりませんでした。完全仮想化の状態なら Xen も VMware Server も変わらないという印象です
仮想マシンマネージャー(virt-manager)から、Windows 2000 をインストールしてみます。

xen_install_w2k_2.png

Localhost の domain 0 に接続して新規に Domain U を作成。

xen_install_w2k_4.png

名前を決めて(コマンドラインから Domain U を起動するときの呼び名なので短い方が良かった)

xen_install_w2k_5.png

Windows OS なので完全仮想化を選択して、メモリやら CPU を割り当てて

xen_install_w2k_10.png

完成。完了をクリックすると Domain U に作成が始まります。

xen_install_w2k_11.png

Domain U の作成が終わると、指定した Windows 2000 のインストールイメージからインストールが始まり、あとはいつも通り。Windows のセットアップを進めて行きます。

xen_install_w2k_13.png

Windows 2000 はこの後自動的に再起動しますが、仮想マシンマネージャーがインストールイメージを再起動したときに外してしまいます。



仮想マシンマネージャーの「仮想マシンの詳細」からインストールイメージを指定してインストールを続ければOK。

ここから、Windows お決まりの Windows Update と Service Pack パッチ当てです。しんどー。

Xen と VMware Server とどちらがサーバーのリソースを効率的に扱えるのか、興味が出て来たので Xen のインストールと環境を構築してみました。

まず、VMware Server 上で動いている Virtual Machine を停止、VMware Server のサービスも停止して、chkconfig で VMware Server サービスの自動起動も外します。

# chkconfig vmware off

終わったら、おもむろに yum で

# yum install xen

これだけで、必要最低限のパッケージは一発で入ります。

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
xen x86_64 3.0.3-64.el5_2.1 updates 1.8 M
Installing for dependencies:
bridge-utils x86_64 1.1-2 base 28 k
dnsmasq x86_64 2.39-2.el5 base 151 k
gtk-vnc x86_64 0.3.2-3.el5 base 51 k
kernel-xen x86_64 2.6.18-92.1.6.el5.centos.plus centosplus 19 M
libvirt x86_64 0.3.3-7.el5 base 915 k
libvirt-python x86_64 0.3.3-7.el5 base 74 k
python-virtinst noarch 0.300.2-8.el5 base 161 k
virt-viewer x86_64 0.0.2-2.el5 base 25 k
xen-libs x86_64 3.0.3-64.el5_2.1 updates 138 k
自動的に GRUB の設定も書いてくれます。ただしデフォルトのブートカーネル指定は変更されません。とりあえず起動時に GRUB で kernel-xen を選んで起動。

ここで、ウチの環境特有のいくつかの懸念事項発生。

  • kernel-xen 向けの XFSファイルシステムのカーネルモジュールが無い
    ファイルの倉庫は XFS でフォーマットした LVM パーティションに置いているのです。積極的に XFS 使って来たことが仇に。

    ちゃんとパッケージありました。
    # yum install kmod-xfs-xen
    でOK。

  • kernel-xen では cpuspeed サービスを使った C'n'Q が機能しない
    負荷に合わせて CPU のクロックを動的にコントロールしてくれる cpuspeed サービスですが、xen カーネル上では動きません。確かに Domain 0 用にはいらないんでしょう。
    CPUの温度が高いよー。サーバールームに置いているわけじゃないのでなんとかしたい。
まぁともかく Xen で DomainU を動かしてみるのが目的なのでしかたない。気にせず進みます。

今回は GUI から設定等も済ませるので、GUIの設定ツールをインストール。

#yum install virt-manager

これで、[アプリケーション]-[システムツール]-[仮想マシンマネージャー]にアクセスできるようになります。

virt-manager.jpg


ものっすごくシンプルにして行こうと思ってます。たぶん白黒で、必要最小限の構成にしておきたい。

MTちゃんといじったの久しぶりなんですが、ずいぶんと複雑になりましたね。
テンプレートモジュールとかいらないと思うんだけどなぁ。

MT4の時みたいにシンプルでながーいテンプレートいっぱつの頃が懐かしくも正しい姿のような気がします。
2007年4月からほったらかしにしていたのですが、色々思うところもあってXOOPSからMTに移行しました。

XOOPS Wordpress ModuleからMTに移行するのは結構大変でした。色々と格闘した結果、以下の手順でblog記事だけ移行する手順を確立。

  1. Wordpress Meをどこかにインストールする
  2. XOOPSのWordpress Moduleの記事をRSS2形式でXMLファイルに書き出し
    書き出しといってもwp-rss2.phpへブラウザでアクセスして保存するだけ
  3. Wordpressから書き出したRSS2形式のXMLファイルをWordpress Meへインポート
  4. WordpressでeXtended RSS fileとして記事をエクスポート
  5. eXtended RSS fileをMTへインポート
というワケで間にWordpressを挟むことで記事の移行を果たしました。コメントなどは持って来れませんでしたが、まぁしかたありません。Wordpress MeがRSS形式のXML記事をインポートするという、反則技を持っていたのがキモです。

たいしたアクセス数も記事数もなかったんですが、マニアックなネタへリンクを張ってくださっている方がいらっしゃったので、各記事の旧URLを移行後の記事へリダイレクトしたかったのですが、うまくいっていません。

はじめは.htaccessで各記事をRedirectPermanentすればいいやと思ってたのですが、XOOPS時代のURLは.*php?p=[0123456789]といったURLで引数が入っちゃうんです。

QUERY_STRING入りURL→スタティックURLというリダイレクトは出来ないコトが発覚。
とりあえず、以前の.*php?p=[0123456789]といったURLはすべてアーカイブにリダイレクトするように設定してお茶を濁してます。

RewriteRule使えばなんとかなるかもしれません。また調べてみます。

なんとなく惰性で残していた X Window を Cent OS 4 な社内サーバーから削除した。ランレンベル 5 なんてほとんど使っていなかったし、ディスクももったいない。

余計なサービスはなるべく止めていたつもりだったんだけど、X を削除したら Load average、CPU usage ともに下がった。何が動いていたのだろ。嘘でした。ランレベルの設定ミスで、ランレベルを下げたことでいくつかのサービスが止まったのが原因です。

CPU 利用率

Load average

アンインストールは深夜に仕掛けておいたので、1時以降下がっているのがよくわかる。Load average が 1前後に収まったのはすばらしい。

しかし、検証用に VMware で VM を動かしているので、相変わらずの CPU 利用率。オンタイムは仕方ないにしても常時 50% 超えっというのはなんとかしたいなぁ。VM で動いている OS でも処理を軽減するような対策をしないといけないなぁ。

サーバー増やせればいいんだけどねぇ。

Adium で、ステータスに iTunes で再生している曲の情報を出す方法を調べてみました。最新バージョンには、始めから「iTunes」っていうステータスが用意されているからか、変数を説明しているページが少なかった。意外だな。

便利に使えそうな変数は以下のとおり。

%_track
iTunes で再生している曲名を表示
%_album
iTunes で再生している曲のアルバム名を表示
%_artist
iTunes で再生している曲のアーティストを表示
%_composer
iTunes で再生している曲の作曲家を表示
%_genre
iTunes で再生している曲のジャンルを表示
%_iTMS
iTunes で再生している曲の iTunes Store へのリンクを表示
%_iTunes
iTunes で再生している曲名とアーティストを表示
%_music
「*%_artist の %_track を聞いています*」と表示
%_status
iTunes の状態を表示(Play、Stopなど)

当然、曲に関するデータは ID3 タグの情報。ID3 タグに入っていない情報は表示されない。

上記の変数をカスタムステータスに入れておけば自動的に変わってくれる。変数は通常のメッセージでも使えるので、内容を確かめたければ、誰かとチャットしているときにこの変数を打ち込んでみるといい。

なお、MSN にはステータス機能がないので、アカウント設定のディスプレイ名にこの変数を書いておく。

最近のブログ記事

theme を修正
やっと、というかなんというか、Wind…
Parallels Desktop build 3036 Beta のCoherency モード
いつも素早い情報でお世話になっている田…
ssh tips:X11 転送する
意外とやっている人を見かけませんが、ク…