2009/12/30

FavTun Timer 開発で参考させていただいた書籍群の紹介

先日公開させていただいたiPhone 用タイマーアプリのFavTun Timerですが、皆様のおかげで、AppStore Utilities カテゴリの TOP FREE APPS で86位というランクをいただくことができました!

ダウンロードしてくださった皆様、ご利用くださっている皆様、しかも Review まで投稿してくださった皆様、本当に感謝しております。有難うございました。なんであれ、使ってくださっている方々がいる、ということが大変に嬉しいです。

FavTun Timerは初めて書いた iPhone 用アプリケーションです。「iPhone OS 3.0 で膨大な数のAPIが追加される」という Apple からの説明を受け「どんなAPIが追加されるんだろう」と興味本位でAPIリストを覗いたことが発端でした。リストやドキュメントを見ているうちに「折角 Mac と iPhone を持っているのだから..」と、サンプルコードの改変を進めているうちに、完成された Framework の魅力へと引き釣りこまれていきました。当時は、ともに C で始まるから、という理由だけで Cocoa と Carbon とを混乱しているような初心者っぷりだったように記憶しています。

こんな状態で開発を始めたので、完成までは非常に様々な書籍、ドキュメントへお世話になりました。ここでは、参考になった書籍群の作者様へ感謝しつつ、それらを紹介させていただきたいと思います。なお、私が書籍を購入したのは主に2009年夏位で、まだiPhone OS 3.0に関する書籍が存在していなかった頃です。現在は改版されているものもあるかと思いますので参考にされる際にはご注意ください。またリンク先は、出版社のページです。

まずは、基礎となる Objective-C に関する書籍です。

詳解 Objective-C 2.0(荻原剛志)

Objective-C 2.0に関する包括的な言語解説書であり、リファレンスでもあります。Objective-C に於けるメモリ管理から、リフレクションの利用方法、Foundation ライブラリの概要やネーミング規約、また、2.0で導入された宣言プロパティ/アクセサまで、すべての内容が網羅されています。もしより深い内容を知るために、Appleの言語マニュアルを参照する場合でも信頼の於ける道標として利用できるでしょう。


次に iPhone アプリケーションの概念を学ぶ際に利用させていただいた書籍です。当時は Xcode での新規 Project 作成方法すらわからなかったので、それらの書かれている書籍を探しました。

iPhone SDKの教科書—Cocoa Touchプログラミング、最初の一歩(赤松 正行)

iPhone アプリケーション作成方法の概説を勉強させていただいた書籍です。数時間で読める解りやすい概説書です。Xcode や Interface Builder の概要を知った書籍で、Xcode と IB との連携方法などが実際に参考となりました。

基礎からのiPhone SDK(鶴薗 賢吾)

Cocoa Touch の規約などに関して勉強させていただいた書籍。こちらも数時間で読みこなすことが可能なサイズです。私は、先の本と併せて基本クラスを勉強させていただくとともに、Application Delegate など、各種実際に利用されている Delegate の概要などを学びました。


上記2冊が概念をつかむまでに参考にさせていただいた書籍です。今振り返ると、NSTimerや AVAudioPlayer など、FavTun Timer の基礎となるクラスの使い方は、ここで勉強したのかな、と思います。

アプリケーションへの機能追加など、開発が本格化してきた際にお世話になった書籍が以下の2冊です。

はじめてのiPhoneプログラミング(デイヴ・マーク、ジェフ・ラマーチ(著)/マーク・ダルリンプル(監修)/鮎川 不二雄)

非常に多くのコードが順を追って書かれている実用的な解説書。単一アプリケーション内での MutiView をどのように取り扱うべきか、また iPhone アプリケーションで数多く利用されている UITableView や、UINavigationCtonroller を実際のコードでどのように利用するのか、など、実開発で直ぐに利用可能な情報が数多く散りばめられています。FavTunTimer では3つのタイマーを切り替えていますが、その基礎はここで学びました。米国では OS3.0 対応版が発刊されているためか、現在この書籍は Amazon では入手が困難になっているようです。良い書籍であるだけに大変残念です。

iPhoneアプリケーションプログラミング(新居 雅行) / サポートページ

iPhone OSの基本クラスに関するリファレンス的な書籍。主要クラスを概説し、その使い方をシンプルなコードで説明しています。この本の素晴らしい点は、メモリ管理など、現実の実装で重要となる概念が、非常に詳しく書かれている点です。残念ながら、このあたりの解説が曖昧な書籍が多い中、この本では、例えば、「IB で作られたインスタンスの release 管理はどうすべきか」に関し、その onwer 権限の考え方も踏まえ、詳しく書かれています。Appleのドキュメントに散逸している情報がひとまとめにされており、何度もこの本に助けられました。非常に素晴らしい本であり、大変におすすめしたい書籍です。惜しむらくは、書籍名からは、その素晴らしさがわかりにくいことでしょうか...。


上記刊行書籍以外に参考になったのは、もちろん Apple Developer Connection で公開されているドキュメントとサンプルコードです。Apple のドキュメントは非常に丁寧に整理/維持されており、また、Xcode と緊密に統合されているため、開発途中に於いても、簡単に各種ドキュメントへたどり着くことが可能です。記載内容も、まずは概説のち詳細と順を追って書かれており、ドキュメントの内で説明されているコードは、実行可能なサンプルとして提供されています。PDFとHTMLの両フォーマットで閲覧可能な点もポイントが高く、私は多くのドキュメントを印刷し、通勤中に読んでいました。一部のドキュメントは日本語訳も公開されています

最後に「Google Objective-C スタイルガイド 日本語訳」を紹介します。Google の定めた Obj-C のコーディングルールがまとめられたもので、Takashi Sasaiさんが日本語へ翻訳してくださっています。私はここに書かれている内容を何度も読み砕くことで、ようやく Objective-C で正しいコードを書く糸口を発見できたような気がしました。

以上、私が参考にさせていただいた書籍、ならびにドキュメントです。作者の方々へ感謝しつつ、他デベロッパの方々の参考になれば嬉しく思います。



2009/12/22

FavTun Timer が AppStore の UTILITIES に並びました & 公開までの日数

昨日公開させて頂いた FavTun Timer ですが、無事 App Store 内の UTILITIES カテゴリへ表示されました。



ありがたい事に、早速お使いくださっている方もいらっしゃり、更に、レビューを書いてくださっている方もいらっしゃって、本当に有り難い限りです。皆様へ深く感謝させて頂きます。小さなアプリですが要望など、可能な限り、応えていければ、と思っています。

さて、AppStore 公開時のハードルと言えば Review の期間がまちまちだ、という点がしばしばあげられます。例えば1ヶ月間以上認可が下りなかった、という話は度々聞きますし、5日で公開されました、という話を聞いた事もあります。Apple曰く、12月17日付け公開の情報では、
97% of applications are being approved within 14 days.

とのことです。

ということで、今回の FavTun Timer 公開にあたり、かかった日数です。

December 17, 2009 11:44   Ready for Sale
December 11, 2009 10:38   In Review
December 10, 2009 08:16   Waiting For Review

有り難い事に、私の場合は7日間で Ready for Sale として頂くことが出来ました。私は、公開申請にあたり、公開予定日をずっと遅くの日程へ設定していたため、昨日この日程の再設定を行い、21日に公開された、という流れになっています。

わずか1アプリケーションの公開スケジュールに過ぎませんが、御参考まで。

Blog のタイトルを短く変更しました

唐突ですが Blog のタイトルを短くしました。

この Blog では Google の Bloggerサービスを使わせて頂いているのですが、Blogger では HTML の title を、「Blogのタイトル」:「記事のタイトル」という形式で生成します。例えば、こんな感じです。
Tempus - 今日は明日で昨日: FavTun Timer 1.0.0 リリースしました

しかしこの形式は、肝心の記事名が、付加情報的な扱いになってしまっており、一瞥性がそれほど高くありません。例えば Google などの検索結果一覧でこの状況は顕著になり、肝心の検索ワードを探す為のお視線移動量が増えてしまいます。

そこで、根本的な解決策ではないですが、Blog のタイトルを短くする事で対策してみよう、と思いたち、今回の変更を行いました(そもそも長い名前は、何かと不便ですし)。

ちなみに Google の検索結果一覧ページでは、検索ワードを含んだ title が生成されています。しかしその生成順番は Blogger と異なっており、例えば foo を検索すると
foo - Google 検索

のように、検索ワードが先頭にくる形式になっています。

Blog の場合、過去記事タイトルを一度に集めて並び替える、ということが行われる事も少なくないでしょうから、一概にどちらが良いとは言えませんが、少なくとも Blogger では選択できると良いなぁ、と感じました。

2009/12/21

FavTun Timer 1.0.0 リリースしました

iPhone 用アプリケーションである FavTun Timer をリリースしました。本日よりAppStore から入手する事ができます。価格は無料です。

アプリケーションとしては、非常にシンプルなタイマーです。




アラーム音に iPod ライブラリに入っている任意の音楽が指定できるのですが、加えて、任意の「フレーズ」を指定できる点が特徴です。



一般的にタイマーのアラーム音は10秒も聴かないと思いますので、任意の曲が指定できたとしても、お気に入りのサビへ到達する前に止めてしまう事が多いのでは、と思います。このアプリケーションでは、アラームとして利用するフレーズを自由に設定できますので、サビをアラームに使える、という点が大きな特徴になっています。

FavTun Timer公開にあわせサポートページを公開しました。細かな特徴なども併記してありますので、あわせてアクセスして頂ければ嬉しいです。

裏話になりますが、当初は、iPhone OSの構造やAPIセットを勉強しようと、小さなサンプルプログラムを幾つか作って遊んでいたのですが、折角なので、ということでアプリケーションという形式にまとめようと考えました。構想は結構前で、当初は、VFD(FLディスプレイ、家電のフロントパネルなどで利用されているもの)を模したデザインの小さなアプリケーションを作る予定だったのですが、絵心が無いため、七転八倒を繰り返し、出来上がった物は、当初とずいぶん違ったものとなりました。参考書籍などは、忘れる前に、追って、まとめていきたいと思っています。

ご意見、ご感想など、お待ちしております。お気軽にご連絡ください。

2009/12/06

KBC-L2ASを購入しました

USB出力付きリチウムイオンバッテリーKBC-L2ASを購入しました。eneloop universe products シリーズに属する商品です。

主な目的は、先に購入したD25HWの外部バッテリです。

従来、ノートPCのバッテリが不足しがちな状況にありながら、且つD02HWなどによる接続をを行うと、あっという間に電池不足に陥るケースが多くありましたので、少しでも通信可能時間が伸びれば良いな、と購入しました。

人気商品なようで、なかなか店頭で目にする機会がありませんが、私は秋葉原のヨドバシカメラで入手する事が出来ました。やはり店頭には置いておらず、店員さんに尋ねた所、レジ奥から持ってきてくれました。感謝です。

ブリスターパックパックに入っています。本来は他の eneloop 同様、店頭に吊るされているのでしょうね。



重量は138g。手に、ずしり、とくる重さです。



付属品は充電用のACアダプタと、接続用のUSBケーブル。USBからの充電も可能です。



例えば、iPhone 3Gへ給電するとこんな感じ。給電中はランプが光ります。



給電時間は、USB1端子接続で約240分。一方充電時間はなかなか時間が必要で、フル充電にかかる時間は、ACアダプタ利用時で7時間、USB経由では倍の14時間です。夜中に充電開始して、朝に回収という使い方になる気がします。なお、充電中でも外部機器へ給電可能です。

比較的重量があるため、万人へ常時の持ち運びをお勧めする訳ではありませんが、モバイル機器のバッテリ切れに悩まされている方は、鞄の片隅に忍び込ませておくと良いかもしれません。

D25HWを購入しました

イー・モバイルのD25HW(Pocket WiFi)を購入しました。

今までモバイル用には、同じくイー・モバイルのD02HWを使っていましたが、そろそろ長期契約割引の「新にねん」が切れるので、そのリプレース目的です。

外箱はおしゃれに黒一色。



本体はD02HWなどと同じ楕円形で、上1/3くらいはディスプレイが付いています。視認性は高いです。モックやWeb上の写真よりもメタリックな感じが強く、MacBook ProやiMacなどの色味に近いです。



D02HW と大きさはそれほど変わりません。少し横に太いですね。



重量は79g。



今までのD02HWは36gですから2倍くらいあります。



D02HWがタダの「プラスチックボックス」、という位の軽かったのに比べ、D25HWは「中に機械が詰まっている」と感じる重さです。

裏蓋を開けたところ。大きな電池があります。



SIMカードは電池を外して差し込みます。上に写っているのは、横向きに置いた電池。



D25HWの特徴は、それ自身が802.11gのアクセスポイント機能を有したNAT(NAPT)ルータである点です。今までのブリッジ的なD02HWなどとは、商品カテゴリが大きく違います。ブリッジとして使うことは出来ませんので、クライアントPCへ割り当てられたIPアドレスを用いて直接外部へ接続したい場合などには適していません。

電源投入から使える状態になるまで概ね20秒弱。取扱説明書を見ると、OSはLinux 2.6.25、その他 BusyBoxやNetFilterなどを使っているようで、典型的な最近の家庭用ルータと同様の構成だと言えるでしょう。

設定項目も家庭用ルータ同様で、DHCPサーバ機能やパケットフィルタ機能は勿論、ゲームコンソールからの利用を強く想定しているのでしょうか、UPnPやSIPのアプリケーションゲートウェイ機能も有しています。マニュアルにも、ニンテンドーDSやPSPなどのゲームコンソールと接続する方法が詳しく書かれています。

無線アクセスポイントとしては、WPSやWPA2-PSK、MACアドレスフィルタリングなど、一般的な機能がひととおり揃っています。

3G性能は、下り7.2Mbps、上り5.8Mbps。今まで使っていたD02HWは、上り384kbpsでしたので、この点は嬉しい進化です。

対応OSとしては、Windows系はWindows7まで、MacOSXは10.6(SnowLeopard)までがうたわれています。Windows7 ならびに Snow Leopard から接続実験を行いましたが、ドライバのインストールから接続性まで、良好でした。

注意点としては、デフォルトで幾つかパケットフィルタリングが設定されていることです。137、139、445 など、狙われやすいポート番号に対する外部アタックを防ぐ設定ですが、ネットワーク接続性に問題が生じた際には確認してみることをお勧めします。

実際の取扱説明書がイー・モバイルのサイトで配布されていますので、機能詳細を知りたい人は、事前に参照してみると良いでしょう

こんな小さな筐体でありながら、3G接続可能であり、バッテリ駆動だけで動作可能な無線アクセスポイントを備えたルータである、という点には、素直に驚いてしまいます。特に私にとっては、外出先からノートPCでネットワーク接続する際、わざわざUSBを使った物理結線を行わずにすむ、という点だけでも、大きく利便性が向上しそうです。

2009/11/15

MacOS X から Linux のディスクを NFS mount する方法

Mac OS X には NFS 機能がシステムへと統合されています。

クライアント機能に関しては、各種設定を GUI から行う事も可能で、例えば NFS で export されているディスク領域を mount する為には、Finder の「Go」メニューにある「Connect to Server...」、または、「Disk Utility」の「File」メニューにある「NFS Mounts...」が利用できます。勿論 Terminal からコマンドラインで mount -t nfs する事も可能です。

但し主に Linux で export した NFS ディスク領域を Mac OS X から mount するには、すこしコツがあります。

多くの Linux distribution へ含まれている NFS サーバでは、「1024 より小さなポート番号から発行されたリクエストのみを受け付ける」設定がデフォルトで有効になっています。Mac OS X から発行される NFS 要求は、この仕様に合致しません。そのため、特に何も指定せずに NFS の mount 要求を発行すると、「Operation not permitted」エラーになってしまいます。

% sudo mount -t nfs server:/home /Volumes/server
mount_nfs: /Volumes: Operation not permitted

解決策は、Linux Server 側で 1024 以上のポート番号を受け付けるようにする、または、Mac OS X 側で 1023 以下のポート番号を使うようにする、のいずれかです。

前者の場合 Linux 側で、/etc/exportfs へ insecure オプションを付加することで達成できます(exportfs(8)でも達成可能です)。/etc/exportfs ファイルを修正した場合には、exportfs -a コマンドを実行し、再 export をしましょう。

linux% sudo vi /etc/exportfs # insecure オプションを付与する
linux% sudo exportfs -a

後者の場合、MacOS X 側で mount を実行する際に resvport オプションを指定します。

% sudo mount -t nfs -o resvport server:/home /Volumes/server

NFS mount の設定を Disk Utility から行う場合、Disk Utility の「NFS Mounts...」を選択し、左下にある「+」ボタンを選択、「Remote NFS URL」へ「nfs://server/home」、「Mount location」へ「/Volumes/server」と入力した後、その下にある「Advanced Mount Parameters」へ「resvport」と書きます。最後に「Verify」ボタンを押し、「Save」で完了です。

残念ながら、Finder の「Connect to Server...」からは NFS オプションを指定することは出来ないようです。オプション指定の必要なNFS サーバへ接続する必要がある場合には Disk Utility を利用すると良いでしょう。

Apple Wireless Keyboard 購入しました

ここ暫く iMac では、標準で付属している USB 接続タイプのApple Keyboardを使っていました。テンキー付きのフルキーボードです。

慣れもあり、キータッチには特に違和感を感じなかったのですが、如何せん私の小さな机の上では、その大きさが厄介なことに。特に私はテンキーを全く使わないので、余計に右半分が邪魔に感じていました。

この問題への対処として、先日の Magic Mouse 導入で Bluetooth 機器への接続性疑念が払拭された記念(?)に、Apple Wireless Keyborad(US)を導入してみる事にしました。型式はMC184LL/Aで、レイアウトは従来からの慣れでUS配列です。

箱はこんな感じで、大変シンプルです。パッケージにキーボードの配列が印刷されていないのは、薄さを前面に押し出すと同時に、各種キー配列によらずに外箱を共通化する為なのかもしれません。



レイアウトはフルキーボードとほとんど変わりません。左下に fn、右下にカーソルキーを設置する関係上、control や command、option が小さくなっているのが目につく差異です。



フルキーボードと並べてみました。大きさ2/3位の印象です。



横から見た所。高さはほぼ変わりません。丸い部分が電源です。電池は逆サイドから、この円筒の中へ入れることになります。単三電池を2本使います。



Magic Mouseと並べてみました。キーボードの小ささが分かります。



iMac からのキーボード認識は、キーボード右横の電源スイッチを押し、キーボードの電源を入れる事で行われます。認識後、数字8文字からなる passkey を入力すれば、接続は完了です。

使い勝手ですが、打鍵感覚などは、フルキーボードと全く同一です。USBによる有線接続から Bluetooth による無線接続に変わったものの、違和感は全くありません。小型化し、また、無線になったことで、レイアウトの自由度が高まった点が大変嬉しく感じています。

最新の iMac では、このキーボードとマウスの組み合わせを標準で選択できますから、使い勝手の点でも、お買い得度という点でも、魅力的だと思いました。

変更コードが手元にある場合の git svn dcommit 方法

git は大変使い勝手の良い分散バージョン管理システムです。

様々な利点がありますが、私にとっては Subversion との連携機構が、標準機能とも呼べる位置づけで提供されている点が、いぶし銀のような渋さで、git の魅力を引き立てています。この機能のおかげで、Subversion を利用しているプロジェクトでも、手元では git を使って開発をすすめることが可能です。

さて git svn で Subversion リポジトリからコードを取得し、手元のコードを変更したとします。一部改変したコードを残したまま、つまり git add などで staging することなしに 既に git へ commit とした改変点を Subversion リポジトリへ push ようと、svn dcommit コマンドを使うと、
% git svn dcommit
Cannot dcommit with a dirty index.  Commit your changes first, or stash them with `git stash'.
 at /opt/local/libexec/git-core/git-svn line 485
とエラーになり dcommit できません。

この場合、エラーメッセージにも出ている通り、一旦 stash コマンドで現在の改変内容を脇へ押しやり、その後に dcommit、そして stash apply で押しやった内容をもとに戻す、という手順を経る事で問題へ対処できます。

% git stash
% git svn dcommit
% git stash apply

svn dcommit 時のエラーメッセージそのままなのですが、エラー発生時には動転するのか、心が読み飛ばしてしまうことが多いように感じます。

stash は svn との連携時以外でも大変便利なコマンドですので、頭の片隅においておくと良いのでは、と思いました。

2009/11/01

VMware Fusion 3 上での Windows7 を稼働させてみました

VMware Fusion 3が発売されました。

「50 を超える新機能を搭載」と説明されている通り、2.0 と比較して、様々な機能拡張がなされていますが、私は、
  • Snow Leopard 対応で、64bit kernel 上でも稼働できるようになった
  • グラフィックドライバの進化により、Windows7 をゲストOSにした場合でも、Aero を利用できるようになった。
に興味を惹かれたため、アップグレードするとともに、Windows7 を稼働させてみる事にしました。

まずは、MacOS X を 64bit Kernel で起動します。これは、起動時に「6」「4」を押し続けることで達成できますが、私は SixtyFourSwitcherをインストールすることで切り替えています。

次に VMware Fusion 3を起動し、ゲストOSとして Windows7 Home Premium の 64bit 版をインストールします。Windows 7 は VMware Fusion 自身で正式サポート対象になっているので、簡単にインストールすることが可能です。

待つ事数分、なんの問題も無く MacOS X、Windows 7 とも 64bit モードで起動させる事が出来ました。左上のゴミ箱が透けて見えていることからも分かるように、Aero も機能しています。



VMware Tools 更新後の Windows エクスペリエンスインデックス値は、こんな感じ。ホストマシンは、昨年購入した iMac(Early 2008)です。




IdeaPad S9e へインストールした Windows7 Home Premiumよりも最低スコア値は上でした。

使い込んだ訳ではないですが、普通の用途使用する分には特に問題ないような気がしましたので、常用を検討してみようと思っています。

Firewall で遮断されたネットワーク内から MacPorts を利用する

MacPortsは Mac OS X 上でのオープンソースソフトウェア活用を便利にしてくれるプロジェクトです。port コマンド一つで、各種ソフトウェアのパッケージ管理や依存性の解決、また MacOS X 特有パッチの適用など、適切に取り仕切ってくれます。

port コマンドは必要なファイルの取得時にインターネット上のサイトへアクセスに行きますが、HTTP Proxy の用意されている環境であれば、適切に設定を行うことで、Firewall を超えることも可能です。

Firewall 越えの設定に対し、注意すべき点は以下の2点です。なお、この情報は、Mac OS X 10.6.1(Snow Leopard)に基づいています。他のOSバージョンでは異なるかもしれません。

1) RSYNC_PROXY 環境変数で HTTP Proxy を設定する

port コマンドは rsync(1) を使って自身の情報更新などを行います。そこで rsync コマンドが Firewall を超えられるように、RSYNC_PROXY 環境変数へ HTTP Proxy サーバの情報を設定します。

例えば、HTTP Proxy のサーバ名が、proxy.example.com、待ち受けポート番号が8080 であるとします。bash や zsh を使っている場合には、次のように設定すればよいでしょう。
% export RSYNC_PROXY=proxy.example.com:8080
Proxy サーバを URL 形式で指定してはいけません。例えば、proxy.example.com の前に http:// をつけたり、また、8080 の後ろに / をつけたりすると、rsync が適切に処理できないので、注意しましょう。詳しくはrsync のマニュアルページを参照してください。

2) RSYNC_PROXY を sudo 実行時に引き継げるようにする

port コマンドでは、sync アクションなどの実行を sudo 経由で行うことが一般的です。しかし、デフォルトの sudo 設定では、RSYNC_PROXY 環境変数の値は引き継がれません。引き継がせる為には、sudo の挙動を管理している /etc/sudoers ファイルを変更する必要があります。具体的に、このファイルへ以下の行を追記します。
Defaults        env_keep += "RSYNC_PROXY"
/etc/sudoers の変更には visudo コマンドを使いましょう
% sudo visudo
変更を行う際、適当なエディタを使って /etc/sudoers を直接変更してはいけません。このファイルのパーミション設定を間違えると sudo が使えなくなってしまいます。

万が一設定を間違えてしまい、sudo が使えなくなった場合には、/Applications/Utilities にある Disk Utility アプリケーションを使って、パーミションの修復を行いましょう。 /etc/sudoers ファイルを含むディスク(例えば、Macintosh HD)を選択し、「Repair DiskPermissions」ボタンを選択することで、パーミションを適切に戻す事ができます。

以上の設定を行うことで、Firewall で区切られたネットワーク内からも MacPorts が利用できるようになります。

なお、上記のうち、特に visudo 関連の情報に関しては、勤務先の同僚から情報を頂きました。感謝いたします。

Magic Mouse を導入してみました

先日、Appleより、マウスへマルチタッチテクノロジーを組み込んだMagic Mouseが発表されました。

機能的になかなか面白く、デザインも素敵です。面白そうなので購入してみることに。10/28頃、出荷され、週末に受け取る事ができましたので、早速試してみました。

梱包ケースは、ほぼマウスと同じ大きさの、小さくシンプルなプラスチック箱です。一般のマウスはブリスターパッケージにおさめられている事が多ので、新鮮に感じます。ドライバCD-ROMなどが付属していない点が大きいのかもしれません。



それぞれ箱の底面、前から、後ろから。底面には使用方法が書かれています。前後は、一見すると区別がつきません。



今まで使用していたMicrosoft Laser Mouse 6000と比べたところ。



大きさは Laser Mouse とほぼ同様。くびれが無い分、スマートには見えます。一方で厚みは相当薄く半分位しかありません。被せ式でマウスを握る人にとっては、多少使い勝手が異なるでしょう。

マウスの底面は、シンプルにアップルマーク。右にあるのは電源で、on/offの機械式です。電池はあらかじめ単三が2本おさめられていました。



さて、使用感です。

iMac 付属の Apple Mouse は赤外線を用いた光学式トラッキングであり、私の机はうまく認識する事ができず、早々に使用を断念せざるを得なかったのですが、Magic Mouse ではレーザーを用いたトラッキングエンジンに変わったことで、同じ机でも全く問題なく認識できるようになりました。従来の Laser Mouse 6000同様の操作感を得る事ができます。

Bluetooth による認識も良好です。一時期ワイヤレスマウスを使っていたこともありますが、PCを置いている部屋のネットワーク環境が劣悪な為か、接続が失われてしまう事が多々あり、その後は有線マウスを使い続けていました。Magic Mouseはそのような切断もなく、有線のような安定さを保ちながら、ケーブルレスの自由を手に入れる事が出来ました。

重量や手を置いた感じでに付いては、特に違和感はありません。購入前は、薄すぎるかな、という懸念を持っていたのですが、私の使い方では気になりませんでした。却って物理ボタンが存在しない事から、手を置くポジションをボタン位置に縛られることなく自由に設定できるようになり、結果、マウスの真ん中あたりを掴むようになった事で、この薄さが良い使用感をもたらしています。

また、表面をなでることで機能するスクロールも、従来のホイール操作と変わりません。物理的な機構が無い分、滑らかさが増した感じです。一番興味を抱いていた2本指を使った Swipe 動作によるスクロールも、購入前の想定とは異なり、軽く操作するだけで的確に認識してくれる事から、非常に使いやすい機能です。例えばジェスチャー機能を持っていない Safari などでは、使用感が大きく向上しました。

一方で、底面ソールが固いせいか、多少机との摩擦が気になります。細かく操作すると、机の表面が削られてしまうのではないか、という気がします。

サイドボタンが存在しない点も、不便です。Laser Mouse 6000では、左右ボタンに、それぞれ Dashboard と Exposé の呼び出しを割り当てていたたのですが、その機能が使えなくなりました。キーボードのファンクションキーを使えば良いのですが、まだ、慣れません。MacBook など同様、複数指でのスクロール動作などを認識してくれるようになり、そこへ各種機能を割り当てられるようになればな、と思っています。

総じて、このマウスは私の環境では、大変満足行くものでした。数日しか使用していませんが、違和感無く、既に私の手に馴染んでいます。

スクロールなど、従来のホイールマウスとは異なる操作感を楽しむ事ができますので、是非、機会がありましたら、一度店頭などで触れてみると面白いかと思います。

2009/10/24

IdeaPad S9e へ Windows7 をインストールしました

10月22日、Windows7 リリース版が発売されました。

β、RC と VMware Fusion 上で試用してみましたが、なかなか良い感触を得たので、Windows XP Home のインストールされている IdeaPad S9e へ、Windows 7 Home Premium(32bit) をインストールしてみることにしました。



XP 環境を復活させる可能性を考慮し、今回はディスク自体を換装した上で新規インストールすることにしました。なお、XPから7へのアップグレードでは、必ず新規インストールが必要になります

換装したディスクは SSD で Intel X25-M の SSDSA2MH080G2C1。Intel MLC版SSDのバルク品で、「茶箱」と呼ばれているモデルです。



 また、インストールにはUSB接続の DVD ドライブを使いました。モデルはBUFFALO の DVSM-P58U2/B-WHです。

Windows 7 のインストールは非常に簡単で、一番始めに「インストールする言語」、「時刻と通貨の形式」、「キーボードまたは入力方式」、「キーボードとその種類」を選べば、後は僅かな「次へ」の選択だけですすみます。インストール形態を選ぶ箇所では「新規インストール(カスタム)」を選択しました。インストールにかかった時間は、概ね30分弱です。

インストール後、Windows Update が行われたので、終了後、念のために Reboot。

ここまで完了した時点で、デバイスマネージャ上には、不明なデバイスが一つ。概ね良好に使えます。

一方、全てのドライバがインストールされているわけではありませんので、タッチパッドの右端で指を滑らせても、スクロールしない、などの問題があります。そこで、コモノ堂さんの「Lenove IdeaPad S9e へ Windows 7 製品版をインストール」を参考にさせて頂き必要なドライバをインストールしました(コモノ堂さん、ありがとうございました)。


まず、「Lenovo 電源管理ドライバー Windows XP - IdeaPad S9e, S10e, S10 3G (4329)」をインストールしました。コモノ堂さんの記事を参考に、インストールするファイルは「utility」だけ選択を残し「Energy Management」は外しました。このドライバのインストールにより、デバイスマネージャから不明なデバイスが消えました。

その後は、Realtek の Audio、ならびに Card Reader ドライバをインストールし、あわせてタッチパッド用の Synaptics ドライバをインストールしました。

Synaptics ドライバは、Windows7用のドライバが公開されていましたので、それをインストールすることにしました。これにより、タッチパッドの右端を使ったスクロール機能なども復活します。

これらを全てインストールした時点で、ディスクの使用量は10Gbyteくらいです。

最後に、私は CTRL キーが「A」キーの左にあるキーボード配列を好むので、CAPS キーを CTRL キーとして使う為の設定を行いました。

いろいろな Tool がありますが、今回はWindows Server 2003 Resource Kitへ含まれている remapkey を使いました。実行には、管理者権限が必要であることに注意してください。最も簡単な方法は、remapkey.exe を Explorer 上で選択し、右クリックで表れるコンテキストメニューから、「管理者として実行」を選ぶ事だと思います。

上記インストールが済んだ素の状態のデスクトップはこんな感じです。



さて、暫く使った感想ですが、非力なマシンでも重いといった印象はなく、Windows XPを使用していた時と同等の感覚で使う事が出来ました。XPに比べ、各 Widget が多少修飾過多議未なので、画面が狭いかな、とも感じられますが、この点は個々にチューニングを行うことになるのでしょう。今後のアプリケーションでのOSサポート状況などを考慮すれば、今回の入れ替えは正解だな、と感じました。

Windows エクスペリインデックス値はこのようなスコアになっています。



また、CrystalDiskMark の結果は次の通りです。



IdeaPad へ Windows7 インストール考えている方は参考にしてみてください。

2009/10/20

ssh で HostBased 認証を行うには ssh-keysign に setuid する必要がある

ssh で特定ホストからの login を、ユーザに依存せずに許可する場合には、HostBased 認証を使うと便利です。

例えば「他のマシンへ root ユーザとして ssh で login し、rsync でバックアップを取る」などの場合に利用したりします。

HostBased 認証の設定ですが、ssh プロトコルバージョン2を利用する場合、基本的には、「login される側(サーバ)」では、
  • /etc/ssh/sshd_config で HostbasedAuthentication yes に設定
  • /etc/ssh/ssh_known_hosts へクライアントホストの公開鍵を登録
  • /etc/ssh/shosts.equiv へクライアントのホスト名(またはIPAddress)を記載
と設定し、一方「login する側(クライアント)」では、「/etc/ssh/ssh_config」へ該当サーバ限定用の設定として、
EnableSSHKeysign yes
Host foo.example.com
 HostbasedAuthentication yes
 PreferredAuthentications hostbased,publickey,password
と書きます(2011/05/02: 上記EnableSSHKeysignの位置を修正しました)。

ssh プロトコルバージョン2 を使った HostBased 認証を有効にする場合、クライアント側 ssh_config の EnableSSHKeysign が1つのポイントです。この指示により、ssh コマンドが ssh-keysign コマンド経由でローカルホストキーへアクセスすることが可能になります。

ただし、ssh-keysign が適切にホストキーを読み込むためには、ssh-keysign が root へ setuid されている必要があります。ここが第2のポイントです。

少なくとも FreeBSD 6.4 ならびに 7.2 では、デフォルトでは、このコマンドは setuid されていません。すなわち、sshd/ssh 側の設定を適切に行っても、上記 FreeBSD をクライアントにした場合、デフォルトのままでは、HostBased 認証を使って login 出来ない、ということになります。

対応は簡単で、該当コマンドを setuid するだけです。
# chmod u+s /usr/libexec/ssh-keysign
# ls -l /usr/libexec/ssh-keysign 
-r-sr-xr-x  1 root  wheel  23308 Nov 26  2008 /usr/libexec/ssh-keysign
これで上記FreeBSD でも HostBased 認証で login 出来るようになります。

このあたりは、ssh(1)FILES や、ssh-keysign(8)DESCRIPTIONで丁寧に言及されているのですが、一部 Linux では ssh-keysign がデフォルトで root へ setuid されていたため、今まで気がつきませんでした。

もし FreeBSD で HostBased認証がうまくいかない、とハマった場合には、/usr/libexec/ssh-keysign の permission を確認してみてください。

2009/10/12

Language Switcher は Snow Leopard では特に便利

私は MacOS X を原則英語モードで利用していますが、特定アプリケーションだけは日本語モードで利用したい、と思う事があります。

MacOS X 10.5(Leopard)では、Finder から該当アプリケーションを選択し「Get Info」で Info を表示させた後「Languages」で希望言語を選択する事で、該当アプリケーションを特定言語モードで起動させることが出来ていました。

残念ながら、この「Info」内の「Languages」は、MacOS X 10.6(Snow Leopard)には存在せず、言語変更を行う事が出来なくなってしまっていました(resource などを書き換えれば可能なのかもしれませんが分かりません)。

そんなとき、偶然「わかばマークのMacの備忘録」さんの紹介記事から、Language Switcherを知りました。

Language SwitcherはTJ-HD Softwareさんによって作成されている、アプリケーションの言語設定をグラフィカルに変更可能な Tool です。

この Tool は Snow Leopard でも動作しますので、この Tool により Leopard 以前同様、アプリケーションの言語を変更できるようになりました。

なお、「わかばマークのMacの備忘録」さんの記事では、
「常にこの言語で起動」の項目にチェックを入れていても機能しませんでした。
との紹介がありますが、私の環境では正しく機能しました。

恐らく「わかばマークのMacの備忘録」さんが、v.1.1 を御紹介してくださった後、2009/09/20 に Snow Leopard への対応が明記された v.1.1.1 がリリースされていますので、その際に対応が行われたのかな、と思います。

便利なソフトウェアの御提供、ならびに、御紹介、どうも有り難うございました。

2009/10/11

iPhone の Voice Memos アプリケーションは OS 3.1.2 でも30分以上記録できない

iPhone では OS 3.0 から、標準アプリケーションとして、音声を記録できる Voice Memos アプリケーションが付属しています。

機能自体は通話口や、ヘッドフォン付属のマイクを通して音声を記録できるシンプルなものですが、iTunes Sync 時、記録したデータを iTunes へ自動保存してくれる点が大変に便利です。

この Voice Memos ですが、OS 3.1 から、30分を超える記録ができなくなってしまいました。特にきっちりときまった制限時間がある、というわけではありませんが、概ね35分程度で録音が自動的に止まってしまいます。この現象は、例えば、Apple Discussionsの該当スレッドでも報告されています。

この時間制限は、OS 3.0 には存在しませんでした。一方、今日時点での最新版である OS 3.1.2 でもこの問題は解決していません。

iPhone User's Guide には、記録時間制限に関する記述は存在しません。

音声記録アプリケーションは、iTunes Store 上で幾つか公開されており、それを利用すれば今回の制限時間を超えて録音を行う事は可能ですが、標準アプリケーションの持つ iTunes への自動保存機能は便利であるため、ぜひとも、この記録時間制限が撤去されてくれれば、と思います。

2009/10/08

CEATEC JAPAN 2009 はヤマハが凄い

CEATEC JAPAN 2009を見学へ行ってきました。今年で10周年だそうです。

さて、今年のCEATEC、目玉ブースは何処でしょう? こぞって3Dテレビを展示している大手メーカ? いえいえ、違います。

今年は、Life Contents Frontierコーナーへ出展しているヤマハへ注目です(会場コマ番号は3A61)。



ヤマハの展示では、産総研の開発したロボット、「HRP-4C」が、MIDI制御されたピアノ「disklavier」の生音演奏にあわせ、表情豊かに、また、リップシンクも見事に、VOCALOID技術を用いて歌いあげる姿を見る事ができます。

しかも歌う楽曲は、指定された楽曲群の中から、その場にいるユーザが「セカイカメラ」で投稿することにより決定されるのです。なんというバーチャルとリアルの融合...。

更に素晴らしいおまけ(?)として、このロボット、音声データ提供ソフトキャラのコスプレまでしちゃっているのです!



こんな展示、日本のCE展でなければ、なかなか見る事はできないのでしょうか?

今回私が見た展示では Megpoid の音声データを用いていましたので GUMI の衣装を着ていましたが、IT mediaによれば日によって、初音ミクと交互に出てくるようですが、ミクの動画を見る限りは GUMI の方が多少は自然に見える気がしないでも...。

今回、ヤマハ全体の出展テーマは「PLAY iT」で「少し先の世界での音楽の楽しみ方をご提案」が趣旨です。VOCALOIDの展示は、この中の「ソウゾウを超える」というテーマで扱われていました。「無機質な機械のはずなのに、奏でる音には感動があります」との説明通り、デジタルとアナログがぶつかり合うのではなく、相互に溶け合う世界です。

ヤマハの展示は他のテーマも面白く、例えば「空間を超える」というコーナーでは、YouTubeの動画再生に同期して、手元の生ピアノが自動演奏されたり、「演奏の枠を超える」コーナーでは iPhone アプリである「Finger Piano Share」を用いて、生ピアノ演奏と同期したり。また、その演奏を「セカイカメラ」で記録して「Finger Piano Share」連携させてみたりもします。

更に隣のステージでは、TENORI-ONの生演奏も行われていました。はじめて生演奏を見たのですが、ネット上の動画で見るよりも、光と音のコラボレーションをより新鮮に感じられ、新しい楽器の概念をより強く感じられます。

このような展示を「最先端IT・エレクトロニクス総合展」と銘打った、ある意味「おぢさん」方をターゲットにしたCEATECで行うという英断をし、それを実現したヤマハならびに関連会社・団体の方々へ心からの賞賛をお送りしたいと思います。

ちなみに CEATEC 全体としては、最近の景気動向に加え台風の影響もあるのでしょうか、例年よりも人の出がだいぶ少なめに感じました。展示をゆっくり見るには良い環境なのでは、と思います。

ぜひ、CEATEC JAPAN 2009へ足を運び、ヤマハブースで素敵な未来のひとときを!

2009/10/04

HTML5 Tech Talk へ参加してきました

10月2日、HTML5-Developers-jp主催のHTML5 Tech Talkへ参加してきました。

会場は Google 本社。最初、案内メイルに書かれていた「渋谷セルリアンタワー2Fロビー」が分からず、ホテル内をさまよっていたのは内緒。無事10分ほど前に会場入りしたのですが、会場はほぼ満席状態になっていました。

今回の内容は2点で、1点は、HTML5-Developers-jp主催者である、白石@あゆたさんによる「HTML5で作るオフラインWebアプリケーション」。もう1点は、html5.jp運営者である、羽田野@futomiさんによる「Canvasチュートリアル」。

白石さんのスライドならびに羽田野さんのスライドともに Web から閲覧できます。また、今回の公式タグである#html5_dev_jpを Twitter で追いかけると、当時の状況がつかめるかもしれません。

白石さんの主な内容は、マイコミジャーナルへ執筆してくださった内容を実際のデモを交えながら説明してくださる、というものでした。

今回の見所は「Alexing Framework」で、白石さんの言わく「Open Web Architecture に従ったアプリケーションのひな形を数分で作成できます」というもの。基本「クラウド向けRESTfulライブラリ+HTML5 O/Rマッパーライブラリ」であり、「基本的な準備作業は、クラウド上でデータモデルを定義するだけ」、「@OfflineCapable(というアノテーション)を付与するだけ」。

デモも見せて頂きましたが、なるほど、これは、
  • モデル情報の解析結果をもとに、
  • remote/local でのデータベース & テーブル生成
  • ActiveRecord パターンに基づく O/R マッパ生成
  • 両 O/R マッパ間の Proxy オブジェクト生成
  • それらの上に、両データベース間の conflict 検出を備えたsync モジュール生成
を自動で行ってくれるフレームワークのようです。これは素晴らしい! 本年中にオープンソースとして公開してくださるとの事ですので、楽しみに待たせて頂きたいと思います。

羽田野さんのお話は、初心者でも分かる、Developer 向けの Canvas 説明でした。

プレゼン資料が、実コードの示された簡潔な内容であり、また、説明もゆっくり、はっきりとした口調で行ってくださったおかげで、良く理解できました。特に適切なデモを随所に盛り込みながら説明してくださったことで、より深い理解を得る事ができました。

私は Canvas を制御する JavaScript メソッドの詳細を、今回初めて勉強したのですが、基本概念や機能が原則 PostScript 同様であり、個人的に、すんなりと飲み込めました。

説明の中、羽田野さんは「マンデルブロ、集合をこんなにも高速に、しかもブラウザ上で書く事ができるのは、素晴らしい」と感心しきりで語っていましたが、歳の近い私もまさに同感です。凄い世界になりましたねぇ...。

今回、白石さんの「Open Web Architecture」論を伺い、今後のアプリケーションは祖結合を前提とした分散オブジェクトモデルの上に作られるのかもしれないな、と感じました。

或るオブジェクトに対してアクセスが行われると、そのオブジェクトは現在のネットワーク接続状態に応じ、Proxy オブジェクトを通じて、手元/リモートの適切な箇所からデータを返答、両実データは暗黙的に/明示的に sync されてゆく、といった世界です。

さて、このような世界に於いて、アプリケーションの作り様を簡易化する目的で、何層にも重ねられた抽象化モジュールが生みだされると、結局その行く先はORB(object request broker)になるのでは、という思いが...。

Java 黎明期の HORB を、ふと懐かしく思い出しながら、最近のRESTful 台頭までの分散技術が次々と脳内をよぎり、また、メインフレーム時代から昨今のCloudという流行語までも流れて行き、技術の振り子は面白いな、と一人シミジミしてしまったのでした。

Tech Talk 主催の皆様、ならびに、参加者の皆様どうもありがとうございました。

2009/09/20

ReadyNAS を使ったTime Machine 設定で OSStatus error 2 などが出た場合

ReadyNAS を Time Machine の保存先として設定するのはWebコンソールから簡単に設定できるようになりました

MacOS X 上の Time Machine 選択コンソールで「Select Backup Disk...」を選択し、ReadyNAS 領域を選択すると、ユーザ名とパスワードを求められます。この値は、ReadyNAS 側で設定したユーザ名/パスワードと一致させる必要がありますが、ReadyNAS 側ではユーザ名は「ReadyNAS」で固定ですから、実際に設定可能な項目はパスワードだけです。

ここでユーザ名やパスワードを入力し間違えると、通常は「You entered an invalid username or password. Please try again.」と表示され、再入力が促されます。

しかし、Name 欄へ ReadyNAS 上の共有領域へ割り当てた「共有名」を入力してしまうと、「Time Machine can't access the backup disk "ReadyNAS". The operation couldn't be completed. (OSStatus error 2.)」という、大変分かりにくいエラーが表示されることになります。この場合、ユーザ名/パスワードの再入力も促されません。

該当領域へパスワードが設定されている場合、パスワードが合致しなければ「You entered an invalid username or password.」エラーになるので、気がつく事ができるのですが、パスワードを設定していない場合、直接「Time Machine can't access the backup disk "ReadyNAS". 」エラーとなってしまうので、やや混乱しがちです。

さて、Time Machine 用Backup領域へアクセスする為のユーザ名/パスワードは、一度正しく設定すればOS側で記憶してくれますが、もし、ReadyNASにあるパスワードの設定された「共有」へアクセスし、且つその認証が失敗し、更に、その後に正しい認証情報を入力した場合、Time Machine 側の設定情報がその値へ切り替わってしまうことがあるようです。

例えば、ReadyNAS 上へ backup と foo という共有が用意されていたとします。backup は Time Machine 用の領域で、共有としてのパスワードは設定してません。但し、ReadyNASの「バックアップ」メニューから選択できる「タイムマシン」の項目ではPasswordは設定されているものとします。一方 foo は通常の領域であり、共有としてパスワードを設定していたとします。

ここで、もし foo のパスワードを変更した場合、Mac OS X側では認証を促すダイアログボックスが表示されます。ここで foo へアクセスする為のユーザ名/パスワードを正しく入力すると、この情報が Time Machine 領域である backup へのアクセスでも使われてしまうようです。多くの場合、この認証情報は「タイムマシン」項目で設定した値とは異なるでしょうから、バックアップが失敗してしまうことになります。

この場合、MacOS X 側の TimeMachine Preference から正しいユーザ名とパスワードを入力する事で、問題は解決可能です。

上記はなかなか特殊な状況でしかおこりにく事象ではありますすが、ReadyNAS を使った Time Machine バックアップがうまくいかない場合などには、参考にしてみてください。

MacOS X 10.6.1 で Canon MP970 がネットワーク越しに利用可能に

我が家では、プリンタ兼スキャナとしてCanonのMP970を利用しています。

2年ほど前の製品ですが、標準で有線ネットワーク端子を装備している点や、給紙がカセットタイプである点などが大変に便利です。

残念なことに、MacOS X 10.6に入れ替えてから、MP970をネットワーク越しに発見することが出来なくなってしまいました。System Preferences の Print&Fax で Add Printer を実行すると、Bonjour Scanner としては発見してくれるのですが、どうにもプリンタとして認識してくれません。



 一方 USB で接続した場合にはプリンタとしても認識してくれます。2chなど読むと、問題なく動作している人がいる一方で、同じように認識できてない人もいるようです。アドバイスに従い Apple のサイトから Canon Printer Drivers(CanonPrinterDrivers2.0.dmg)を別途入手し再インストールしてみたのですが、残念ながら状況は変わりませんでした。

本日 Software Update として Canon Printer Drivers Update 2.1 が配布されていることに気がついたのでインストールしてみたところ、無事にプリンタとしても認識されるようになりました。



インク残量のチェックなども問題なく動作します。



tcpdumpを使って、新旧バージョンのプリンタ探索パケットを読み比べてみましたが、新バージョンでは追加の探索パケットが送出され、プリンタからも、それへの新規応答が送出されている様子を見る事が出来ました。

この新しいドライバはAppleのサイトからも入手可能です。投稿日をみると、どうも私が2.0ドライバをAppleのサイトか入手した当日のようです。ぎりぎり、タイミングが悪かったのかもしれません。

もし、同様の問題を抱えている方がいらっしゃいましたら、ドライバを更新してみては如何でしょうか。

2009/09/16

SnowLepardはパスワードを要求する Windows 共有へ接続できない

メインの iMac へ SnowLeopard をインストールして快適に利用しています。

しかし、Snow Leopard では、パスワードの設定された「Windows 共有」ディレクトリに対し、CIFS(または、SMB)で接続できないようです。

例えば Finder の「SHARED」から該当共有領域へ接続を試みると「The operation can't be completed because the original item for "foo" can't be found.」のようなエラーになります。

Finder の Go メニューから Connect To Server を選択し、Server Address へ「cifs://server/foo」と入力し、ユーザ名とパスワードを正しく設定しても「You entered an invalid username or password」になりますし、Terminal から
% sudo mount_smbfs //user@server/foo /mnt
と入力しても Authentication error となってしまいます。

この問題は Apple Discussion でも「Topic: SMB Shares not working」「Topic : can not connect to NAS box(es) 」で取り上げられていますが、残念ながら、何れも正しい解決策は示されておらず、回避策として「パスワードを全て数字にする」「パスワードを設定しない」があげられている程度です。

この現象は、MacOS X 10.6.1 でも同様です。

バグレポートを出しつつ、次のバージョンで修正されることを祈りたいと思います。

VirtualBox OSE 2.1.4 へ Ubuntu 9.04 を Guest としてインストールする方法

Native PC 上へインストールした Ubuntu 9.04(jaunty) 上へ、仮想的にUbuntu 9.04 環境を構築する必要がでてきました。

Ubuntu 9.04 へは、VirtualBox の Open Source Edition である virtualbox-ose 2.1.4 のパッケージが提供されていますので、仮想環境を構築するには、このパッケージを使うのが簡単です。

ただし、VirtualBox OSE 2.1.4 上へセットアップした Ubuntu 9.04 へ、Guest Additionsをインストールするには、1点注意が必要でしたので、参考のため以下にまとめておきます。

なお、Ubuntu 9.10(karmic)の VirtualBox OSE パッケージは、3.0.4になっているようですので、この問題は発生しないかもしれません。

今回、私が参考にさせていただいたのは Ubuntu Geek さんのUbuntu 9.04(Jaunty) and Virtualbox video driver for X(Guest Additions)です(有り難うございます)。

VirtualBox の Guest Additions とは、VirtualBox Guest の使い勝手を高めてくれるツールです。例えば、より高い解像度設定を行えるように、グラフィックデバイスドライバを更新してくれたり、Guest/Host OS間でマウスをシームレスに移動させたりできるように取り計らってくれます。VMware をお使いの方には、VMware Tools のようなもの、と言った方がわかりやすいかもしれません。

今回の問題点は、Guest Additons のインストーラで X のバージョン認識がうまくいかず、X のドライバが適切にインストールされない点にあります。そこで、X のバージョンを正しく認識できるようにインストーラを修正し、再度インストールを行うことで、この問題を回避させます。

VirtualBox 上で動いている Ubuntu 9.04 へ Guest Additions をインストールするためには、VirtualBox の Devices メニューから Install Guest Additions メニューを選択します。VirtualBox Guest Addition CD image が存在しない場合には download するか
を尋ねるダイアログが出ますのでそれに従えばよいでしょう。または、以下のURLからISOを取得して mount させます。

http://download.virtualbox.org/virtualbox/2.1.4/VBoxGuestAdditions_2.1.4.iso

自動では /cd-rom へ mount されるはずです。
$ ls /cdrom
32Bit        VBoxLinuxAdditions-amd64.run  VBoxWindowsAdditions-amd64.exe
64Bit        VBoxLinuxAdditions-x86.run    VBoxWindowsAdditions.exe
AUTORUN.INF  VBoxSolarisAdditions.pkg      VBoxWindowsAdditions-x86.exe
インストーラには VBoxLinuxAdditions-amd64.run または VBoxLinuxAdditions-x86.run を使用します。お使いのホスト環境にあわせて適切なパッケージを選んでください。私は、VBoxLinuxAdditions-x86.run を使いました。

インストーラを修正してインストールをする手順は以下の通りです。

1) 展開ディレクトリを指定してインストーラを実行する

ここでは、再インストールも考え、/usr/local/vbox へ展開することにします。
% cd /cdrom
% sudo ./VBoxLinuxAdditions-x86.run --target /usr/local/vbox
実行直後、次のメッセージが表示されるはずです。
Creating directory /usr/local/vbox
続いて kernel module の build が行われ、インストールも実行されます。ただし、インストール処理の最後に次の Warning が表示され、X のドライバはインストールされなかったことが示されます。
Warning: unknown version of the X Window System installed.  Not installing
X Window System drivers.
Successfully installed the VirtualBox Guest Additions.
You must restart your guest system in order to complete the installation.

2) インストーラを修正する

先ほど指定した /usr/local/vbox には build した kernel module、ならびにインストールスクリプトが出来上がっているはずです。この中の install.sh を修正します。

変更内容は、415行目にある、
       1.5.99.* | 1.6 )
の 1.6 を、1.6.0 に改めます。例えばこんな感じでしょう。
% cd /usr/local/vbox
% sudo sh -c "cp -p install.sh install.sh.ORIG && sed '415s/1.6/1.6.0/' < install.sh.ORIG > install.sh"

3) 再度インストールを行う

再度インストールを行います。今度は X の Warning が表示されず、インストールが終了するはずです。
% sudo ./install.sh

4) reboot します

OS を reboot しましょう。

以上で Guest Additons のインストールは終わりです。

今となって 2.1.4 は、いささか古く感じる向きもあるかもしれませんが、サポートパッケージとしてインストールできる点は大変に便利です。また、使用感も得に問題なく、大変便利に利用出来ています。

2009/08/31

Hatsune Miku Orchestra 発売

初音ミクが歌うYMO

中の人のページではトラックの解説なども読めます。

YMOを聞いて育った人としては、もう、何も言うことはありません、そうだよ、これこそが夢だったんだ、という感じです。聞いていて鳥肌たちまくりです。

私がYMOを知ったのは、既に散会後でした。非常に衝撃的で、且つ、リアルタイムに聞けなかったことを悔やんだものです。今回は、このアルバムをリアルタイムに聞けたことに対し、大変感動しています。

HMOの名義でニコ動へあげてくださった時から「こういう楽曲がアルバムとなって発売されたら素敵だな」と思っていたのですが、その夢が現実となったことへの驚きととともに、関係者の方々への努力へ深く感謝です。

音源に FAMILY BASIC が使われていたり、アレンジが進化していたり、ブックレットが遊び心満載だったり、トラック間のつながりが美しかったりと、各種動画サイトで見たかたも、これは、ぜひ!

「20世紀に想像した21世紀の声がここにある。」

本当に素晴らしいアルバム、どうもありがとうございました。

ReadyNAS を TimeMachine 機器に使う簡単な方法

今までもReady NAS NV+Time Machine のデータ格納先として利用することは可能でしたし、また、それを用いてOSの入れ替えを行うことも出来ました。

一方で、如何せんその手順が面倒であったことも事実です。

しかし、RAIDiator-4.1.5以降をインストールした ReadyNAS では、Webの管理画面を通じて、非常に簡単にTime Machine の設定を行うことが可能になりました。これにより、Terminal から user defaults を設定する必要もありませんし、直感的に設定を行うことが可能です。

Time Machine は使い勝っても良く、簡単に利用できます。簡易バックアップ機構だと揶揄されることもありますが、簡易保険だとしても役に立つこともあるでしょう。

MacOS X と ReadyNAS をお持ちで、Time Machine を使ったことの無い方は、ぜひ、一度試してみては如何でしょうか。

MacOS X 10.6 を ReadyNAS の TimeMachine を使ってインストール

MacOS X 10.6 Snow Leopard が発売になりました。

常用しているマシンの OS ですから、各種動作確認情報が出そろうまで導入する気がなかったのですが、正式発売日が発売日1週間ほど前に急に発表となり、プチお祭り状態に乗る形で、結局購入してしまいました。

パッケージがかわいいです。


最近 OS の調子にいまいちなところが出てきていたこともあり、クリーンインストールを敢行してみることに。

ただし、バックアップ情報として、普通の Time Machine 媒体へ格納されたデータではなく、ReadyNAS NV+ へ格納し続けているデータを使うところが、普通と違います。

いつもの注意事項ですが、御自身の貴重なデータを失う可能性がありますので、以下は自己責任でお願いします。

インストール対象マシンは昨年6月に購入したiMac 8.1(iMac Early 2008)。

Webを調べてみると、Leopard までとは異なり、Snow Leopard でクリーンインストールをするには、事前にボリュームを消去する必要があるようです。

さっそく Disk Utility を起動し、ボリュームの消去を行おうとしたのですが、なぜかディスクを選択できません。なぜ、と戸惑いましたが、当然稼働中の Volume を消去することは出来ませんから、消去は Install メディアを起動してから行うのでした...。

というわけで Install メディアを挿入し 一旦 Shutdown。電源を落としてから c キーを押しながら電源投入し、メディアから起動させます。Apple マークの出てくるのタイミングがいつもよりも遅ければ正しく起動できてるはずです。起動にはそれなりの時間がかかります。

まずは言語選択(私は English を選択しました)。

Mac OS X Install の画面が表示されたら、Menubar の Utilities から Disk Utility を選択します。

左側のペインからインストール対象のディスクを選択し、Erase タブを選択。ファイルシステムのフォーマットが希望通りになっていることを確認し、Erase...ボタンを押します。私は、フォーマットに「MacOS Extended(Case-sensitive, Journaled)」を選択し、Erase を実行しました。完了したら Disk Utility を閉じます。

その後は、Continue 押下で、普通にインストールを継続。画面には30分程度、と表示され、いつものように動作中は数値が増減するものの、正しく30分で終わりました。早いですね。

自動 Reboot が終わると、Migration Tool が立ち上がり、そこで「Time Machine からデータを復元する」が選択できるようになります。

しかし、私のようにReadyNAS Communityの情報に基づいて、user defaults 値を変更することでReadyNAS を Time Machine 機器に使っている場合、この時点では ReadyNAS を Time Machine 機器として選択することはできません。ここでは Migration せず、新規ユーザを作成することで進めます。

この際、Time Machine から全情報をそのまま Migration しようと考えている場合には、移行元のデータとは異なるダミーアカウントを作成し、インストール作業を進めることをお薦めします。これにより、後の Migration 処理が簡単に行えるようになります。

さて、全てのインストール作業が完了し無事 login が完了したら、Finder で Applications/Utilities へ移動し Terminal.app を起動し、User defaults を設定します。
% defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
この時点で System Preferences を起動している場合にはいったん Quit しておきます。また、念のため、ReadyNAS の Time Machine volume を Finder で選択し、適切に mount できることを確認しておきましょう。

また、Time Machine を起動し、volume が正しく認識されていることも確認しておきます。Select Backup Disk で ReadyNAS volume を選択できれば大丈夫です。Migration には時間がかかりますから、ディスクアクセスを軽減する為にも、移行が終わるまで Time Machine 自体は Off にしておくのがお薦めです。

Applicaions/Utilities の中にある Migration Assist を起動します。「From a Time Machine backup or other disk」を選択しましょう。Install時とは異なり、今度は ReadyNAS 上の Volume が選択できる筈です。

「Select Items to Migrate」で移行したいデータを選択しましょう。私は、全てのデータを移行することにし、全ての項目にチェックマークを入れたままにしました。

ここで各項目の容量がチェックされることになりますが、私は「Calculating」状態のまま、全く応答が戻ってこない、という状況を何度か経験しました。最終的には Mac と、ReadyNAS の両者を reboot することで、この状況はなくなりましたが、本質的な原因は不明です。

Calculating が済むと、Continue が押せるようになりますので、クリック。ReadyNAS と Mac は有線ネットワークで接続されているとはいえ、非常に時間がかかります。気長に待ちましょう。

移行が終わったら、logout して、移行したアカウントで login。ほぼすべての設定が復活している筈です。お疲れさまでした。

今回、移行を通じて改めて Time Machine の偉大さを知りました。大変使いやすく、また便利な機能です。

さて、Snow Leopard に移行した感想ですが、多くの方がコメントされているように 64bit Kernel では、非常に動作がキビキビしています。

常用しているソフトウェアでは、VMware Fusion だけが、64bit Kernel では実行できず 32bit Kernel で起動する必要がります。VMWare を常用している身としては、少し残念です。また、私はマウスにMicrosoft Laser Mouse 6000を常用しているのですが、たまにサイドボタンが認識されなくなることがあります。これは Snow Leopard 対応ドライバ待ちなのかもしれません。それ以外には、特に問題を感じる場面はありませんでした。

OSの入れ替えは、お薦めしにくいものではありますが、64bit モードを常用できる環境にいる方は、購入しやすい価格であることもあり、試してみる価値はあるかと思います。

2009/08/12

1/1 ガンダム再び(「2016 東京オリンピック・パラリンピック 招致サポートバージョン」)

今年の夏休みは、家族と予定が合わない予定だったのですが、急遽1日だけ予定を合わせることが出来ました。また、偶然お台場のホテルが格安で宿泊出来るプランを提供しているのを見つけ、突発的に骨休みに。

この時期「お台場」といえば勿論(?)「1/1 スケールガンダム」

「工事中バージョンを見たでしょ」
という家族の声にもめげず、再度見てきました。

丁度イベント開始時でライティング消えた時の姿。手持ちなので、増感したのですが、ぶれまくってます。胸や足から出ているのは、演出の水蒸気。



顔のアップ。光る目が素敵です。でも、こうやってアップで見ると、結構垂れ目なんですね...。


握りしめた左手。ライティングの為でしょうか、夜間は質感がアップしたように感じます。


背後から2枚。ランドセルのライトが奇麗に光っています。実物も、本物の宇宙ではこういう感じに見えるのでしょうか?(実物ってなんだよ)


さて、8/1からのガンダムは、それまでと少し変わって「2016 東京オリンピック・パラリンピック 招致サポートバージョン」になりました(別にマグネットコーティングしたわけではありません)。

というわけで、翌日昼間に正面から。うーん、ちょっとガンダムに描くにしては、このロゴ、派手かもなぁ。しかし背景が明るいと、CCDのゴミが目立ちますね...。


ちなみに足下まで寄り、下から広角(APS-C/16mm)で撮るとこんな感じになります。なかなかの迫力です。


実は2009/7/27にも正式公開版を少し見てきているので(生憎この日は天気が余り良くありませんでした)、ぶれてますが、それも合わせて。この時には、まだ肩にオリンピックマークがない、おとなしいバージョンです。1枚目、頭の上にカラスが乗ってます...。


なお、お台場からの夜景はこんな感じで、大変奇麗です(一部後処理しています)。


なおガンダムの展示は、予定では、8/31までとなっているようです。
是非、夕涼みがてら、遊びに行かれてみては如何でしょうか?