2010-01-29
■[電脳]iPadはコンピュータではないが、コンピューティングを変える
とうとうiPadが発表されたので、iPhone3GSととKindle2を持っている僕がひとこと言ってみるテスト。
コンピュータがコンピュータ足るための条件の一つとして、僕は「自分で自由にプログラムを作り利用できること」があると考えています。iPhone/iPod touch/iPad用のプログラムに関しては、開発ソフトが無料で配布されていることもあり、自由に作ることができます。ところが利用する点になると、そのままではシミュレータ上でしか実行できず、Appleに年会費(約1万円)を支払わないと実機で使うことができません。また、自作ソフトを他の人に渡そうというときにも問題が立ちはだかります。アプリの配布はApp Store経由でのみ行われるので、Appleに認可されないと配布ができないのです。そのため、自由なプログラムの利用ができないのです。そのため、iPadは薄型コンピュータであるというよりも情報端末と言ったほうがピンと来ます。
常にネット接続されていて、限られたアプリケーションしか使えない点において、無線のシンクライアントというイメージです。Googleが「ほぼウェブブラウザ」のChrome OSを発表し、AppleはiPadを発表し、ようやく一般人が使えるシンクライアントが登場したと言えます。僕らがむかし夢に見た*1、どこでもコンピュータの世界がすぐそこに来ています。ガラパゴス日本で進化した携帯電話はかなり高機能ですが、それだけではマジな仕事には使えません。でも、iPadにiWork 2010を入れたら、十分仕事に使えるでしょう。
結局のところ、ハードウェアとして見たらiPadは基本的には大きなiPod touchにすぎません。画面が大きくて操作性が良くなってiWorkも動きますが、iBookStoreが熟成してコンテンツ量がAmazonと拮抗するくらいになるまではKindle2+iPhone > iPadだと思いますし、コンピュータとして考えると各種ネットブック > iPadでしょう。しかし、iPadをとりまくMac本体、App Store、iBookStore、iWork、料金プランなどの有機的なつながりによって、iPhoneアプリが普及して携帯電話にまつわるライフスタイルが変化したように、僕はiPadが普及することによってコンピューティングの在り方そのものが変わると考えています。
(個人的には、常に持ち歩いているMacBookPro+iPhone+Kindle2でiPad的なことは実現できているので、初期モデルは見送りますが。)
*1:映画『ブレードランナー』にも主人公が街角の公衆情報端末を操作しているシーンが出てきますね。
2010-01-19
■Ubuntu Studio
空いてるマシンにUbuntu Studio 9.10を入れてみました。なかなか良いです。Ubuntuの自動ハードウェア認識による導入のしやすさに加え、音楽・音響系のソフトがかなりそろっていて、すぐにハードディスク・レコーディングが始められます。動作も軽いし、これだったらネットブックでもなんとかなりそう。ほんと、Macじゃなくても、という気になってしまいます。
導入するとなったらVAIO Type PやLOOX Uなどの小型マシンに導入して持ち歩きたいです。個人的に英語キーボード必須なので、海外モデルの逆輸入とか考えないと。
2010-01-18
■[電脳]NSLogメモ
CocoaのFoundationフレームワークで使うNSLog()のメモ。
printfとほとんど同じ使い方。
NSLog(@"hogehoge %d %f %@", intNum, floatNum, anObject);
行頭に日付時刻とプロセス名が、行末に\nが、自動的に付加されます。%〜の意味は以下の表の通り。(Hillegass本第3版より)
| 記号 | 表示する型 |
|---|---|
| %@ | id |
| %d, %D, %i | long |
| %u, %U | unsigned long |
| %hi | short |
| %hu | unsigned short |
| %qi | long long |
| %qu | unsigned long long |
| %x, %X | unsigned long (16進数で表示) |
| %o, %O | unsigned long (8進数で表示) |
| %f, %e, %E, %g, %G | double |
| %c | unsigned char (ASCII文字) |
| %C | unsigned char (Unicode文字) |
| %s | char * (終端NULLのASCII文字によるC文字列) |
| %S | unichar * (終端NULLのUnicode文字によるC文字列) |
| %p | void * (先頭0xの16進数で表示されるアドレス) |
| %% | %そのもの |
NSLogの引数として渡している文字列は@"〜"の形式になっていますが、これはNSString型の文字列であることを表しています。単に"〜"だとC文字列 (すなわちchar *型)。C文字列からNSString文字列への相互変換は以下の通り。
const char *cstr = "hoge"; NSString *nsstr; nsstr = [NSString stringWithUTF8String:cstr]; cstr = [nsstr UTF8String];
2010-01-10
■ベテルギウスの超新星爆発
今日の朝日新聞一面に、オリオン座のベテルギウスに超新星爆発の予兆があるという記事が載っていました。「爆発は数万年後かもしれないが、明日でもおかしくない」とする専門家の言葉が紹介されていました。
ただ、ベテルギウスまでは約600光年の距離があります。光の速度で移動しても600年かかるという遠い場所です。つまり現在、地球上で観測しているベテルギウス表面の様子というのは600年前のもので、それより最近の様子を知ることはできません。地球の観測者にとって「明日爆発してもおかしくない」という時間は、ベテルギウスにとっては「600年前に爆発していてもおかしくない」時間です。もしかしたら600年前の室町時代にはベテルギウスは超新星爆発を起こし、すでに恒星はなくなっているのかもしれず、我々が観測しているのはベテルギウスが死の直前に放った最後っ屁なのかもしれないのです。
2010-01-09
■[Clojure]たらいまわし関数
竹内郁雄氏のたらい回し関数をClojureで書いてみました。とは言っても、ClojureもLISPファミリーの一員なので、定義を単純に式に置き換えるだけ。めんどくさいことは皆無です。中で何をしているかが知りたいので、複数の関数を逐次実行させるためのdo命令*1を用いて、prnで値を表示させています。
(defn tak [x y z]
(do
(prn x y z)
(if (<= x y)
y
(tak
(tak (- x 1) y z)
(tak (- y 1) z x)
(tak (- z 1) x y)))))
*1:Common Lispで逐次実行はprognなのですが、それに相当するClojureの命令を見つけるのに手間取ってしまいました。
2010-01-02
■[遊び]PS3でPS1
初代PS3ではPS1とPS2両方のゲームが遊べましたが、それ以降はチップセットの簡略化などでエミュレーション部分が省略されて、遊べなくなりました。そのため、20GB/60GBのPS3は現在でも高価で取引がされています。
先日、PS3を購入したばかりの友人と飲んでいたときに、「いまオールドゲームをやってるんだ」という話になりました。過去の名作を発掘してきては遊んでいるとか。初代PS3で遊んでいるのかと思いきや、最新の薄型PS3とのこと。てっきりPS3ではPS1とPS2両方の対応がなくなったのだと思っていましたが、PS2が遊べなくなっただけで、PS1のゲームは遊べるのだとか。PS3購入から1年半、まったく気づきませんでした。ショック。


