丸井綜研 このページをアンテナに追加 RSSフィード

2010-01-30

[]関数の定義

まずマニュアルを読まずにCommon LispやSchemeのようにdefunやdefineを試してみましたが、ダメ。しょうがないのでマニュアルを読むと、defnだとか。

(defn times2 [x]
  (* x 2))

ひっかかりそうなのが引数指定の部分。引数はvectorとして与えてやる必要があります。

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 PLOOX Uなどの小型マシンに導入して持ち歩きたいです。個人的に英語キーボード必須なので、海外モデルの逆輸入とか考えないと。

2010-01-18

[]NSLogメモ

CocoaのFoundationフレームワークで使うNSLog()のメモ。

printfとほとんど同じ使い方。

NSLog(@"hogehoge %d %f %@", intNum, floatNum, anObject);

行頭に日付時刻とプロセス名が、行末に\nが、自動的に付加されます。%〜の意味は以下の表の通り。(Hillegass本第3版より)

記号表示する型
%@id
%d, %D, %ilong
%u, %Uunsigned long
%hishort
%huunsigned short
%qilong long
%quunsigned long long
%x, %Xunsigned long (16進数で表示)
%o, %Ounsigned long (8進数で表示)
%f, %e, %E, %g, %Gdouble
%cunsigned char (ASCII文字)
%Cunsigned char (Unicode文字)
%schar * (終端NULLのASCII文字によるC文字列)
%Sunichar * (終端NULLのUnicode文字によるC文字列)
%pvoid * (先頭0xの16進数で表示されるアドレス)
%%%そのもの

NSLogの引数として渡している文字列は@"〜"の形式になっていますが、これはNSString型の文字列であることを表しています。単に"〜"だとC文字列 (すなわちchar *型)。C文字列からNSString文字列への相互変換は以下の通り。

const char *cstr = "hoge";
NSString *nsstr;
nsstr = [NSString stringWithUTF8String:cstr];
cstr = [nsstr UTF8String];

2010-01-17

荒川から東京スカイツリー

f:id:amarui:20100116140041j:image:right:medium

JR北千住駅から千代田線町屋駅まで荒川沿いを歩き、都電荒川線でガタゴトと早稲田まで。荒川の堤防から浅草の方向を見ると、建設中の東京スカイツリーの姿が見えます。現在264m。完成すると634mなので、ここらへんではめっぽう高い建物になりますね。どこに行くにしても、「あっちが浅草(というか押上)」という目印となってくれそうです。

2010-01-13

ジェネリック医薬品・・・なわけないよねー

f:id:amarui:20100113152027j:image:medium:right

いつだったかの新聞の折り込みチラシにこんな商品が掲載されていましたマキオールとバッサニンエース。シュパッと殺菌できるコレや、半分は優しさで出来ているアレのジェネリック医薬品版かとも思いましたが、どうもそうではないような気もします。ここまで似ていて大丈夫なんでしょうか? Abibas、Louis Vuittom、Channel、Aqqle、Gooqleなどとも似た、とても危険な香りがします。

2010-01-11

建設中の東京スカイツリー見てきた

f:id:amarui:20100110153740j:image:right:medium

墨田区押上に建設中の電波塔東京スカイツリーを見てきました。昨日時点で254mまで完成しているとのこと。完成すると634mになるので、現時点ではまだ半分以下。周囲に高い建物があまりないので、スカイツリーは現時点でもかなり目立つ建物です。これが600mを越えたら、と思うとワクワクします。

スカイツリーを見たあとは浅草界隈をぶらぶらしました。神谷バーはいつも満席で座れず、まだデンキブラン飲んだことないです。そのまま帰りました。

2010-01-10

ベテルギウスの超新星爆発

今日の朝日新聞一面に、オリオン座のベテルギウスに超新星爆発の予兆があるという記事が載っていました。「爆発は数万年後かもしれないが、明日でもおかしくない」とする専門家の言葉が紹介されていました。

ただ、ベテルギウスまでは約600光年の距離があります。光の速度で移動しても600年かかるという遠い場所です。つまり現在、地球上で観測しているベテルギウス表面の様子というのは600年前のもので、それより最近の様子を知ることはできません。地球の観測者にとって「明日爆発してもおかしくない」という時間は、ベテルギウスにとっては「600年前に爆発していてもおかしくない」時間です。もしかしたら600年前の室町時代にはベテルギウスは超新星爆発を起こし、すでに恒星はなくなっているのかもしれず、我々が観測しているのはベテルギウスが死の直前に放った最後っ屁なのかもしれないのです。

2010-01-09

[]たらいまわし関数

竹内郁雄氏のたらい回し関数を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年半、まったく気づきませんでした。ショック。