2010-05-31

HMV でよく買い物をする人は HMV VISA Card がお得

HMV 専用の Visa Card に HMV VISA カードというものがある。

HMV でよく買い物をする人は、普通のメンバー・カードではなくこちらのカードも視野に入れると良いと思う。

ぼくは半年以上使ってみて、メリットを感じた。簡単な説明と注意点、それからぼくの使いこなし方を書いてみる。

概要

  • 入会時に 300 ポイント付与
  • 誕生月に 500 ポイント付与
  • HMV ポイントとは別に同時にスマイルポイント (1000 円につき 1 ポイント) が付く。
  • 年会費は初年度無料。年一度の利用で翌年も無料。利用がなければ 1,312 円。
  • 一定の条件を満たすと「ダイヤモンド会員」にランクアップ

スマイル・ポイントと HMV ポイントはポイントの交換が可能。スマイルポイント 100P で HMV ポイント 500P。スマイル・ポイント 100P を貯めるには 10 万円の買い物が必要。10 万円に対して HMV ポイント 500P。

500 / 100,000 * 100 = 0.2%

普通の HMV ポイントが 1% のポイント (100 円で 1P) だから、スマイルポイントと合わせると 1.2% のポイントを受けることになる。ただし、十万円も買い物をするという前提があってだけれども。

ダイヤモンド会員

HMV VISA カードの特典として、スマイルポイントよりも現実的でかつ効果が高いのが「ダイヤモンド会員」へのランクアップ。この特典がなかったら、HMV VISA カードの魅力などほとんどないと言っていい。

ダイヤモンド会員の特典はただ一つ。

  • もらえるポイントが倍になる

普通の日なら 2 倍ポイント、2 倍ポイント・デーなら 4 倍ポイント、予約購入 (3倍ポイント) に対しては 6 倍ポイント、そしてキャンペーンで時々実施される 10 倍ポイントなら 20 倍ポイントがもらえる!! 当然 10 倍ポイントにダイヤモンド会員特典を組み合わせた時が最強。(15 倍ポイント・キャンペーンが実施された時もあった。しかし、残念ながらその時はこのダイヤモンド会員特典は適用されなかった。実質の最大ポイントは 10x2=20 倍ポイントと考えれば良さそう)

ダイヤモンド会員にランクアップするための条件は、直近半年間で次の二つを同時に満たすこと。すると、翌月「ダイヤモンド会員になる。

  • 5 回以上の買い物をすること
  • 3 万円以上の買い物をすること

10 万円ためないと交換できないスマイルポイントより、3 万円は現実的なラインだと思う。

使いこなし

回数を増やすには、書籍購入がアナ。千円以下の買い物でも一回にカウントされる。しかも、今は書籍送料無料キャンペーンや、5000 円以上購入で +500 ポイント・キャンペーンなども実施しているので、賢く使うとよりポイントが増える。

あと、(既にダイヤモンド会員なことが前提だけど) ぼくは気に入った CD があったら「お気に入り」に入れてじっと待つ。待つのは、10 倍ポイント・キャンペーン。その時に、「お気に入り」に入れてた CD を一気に買う。枚数が多かったら、「在庫があるもの」「取り寄せに 2-5 日かかるもの」「取り寄せに 5-9 日かかるもの」「取り寄せに 10 日以上かかるもの」という風に注文をばらけさせておく。すると、ここでも回数をかせぐことが出来る。商品の受け取りも、日にちが分散するので、大量の CD を一気に受け取って聞くのが大変というのを少しでも緩和できる。

あとがき

ぼくはクラシック音楽の輸入盤を中心に買い物をする。クラシック音楽に限ると、Amazon より HMV の方が圧倒的に品揃えが良かった。ただ、最近は Amazon も品数・価格ともに HMV に迫り始めている。下手をすると、Amazon の方が安い時もある。

けれど、ダイヤモンド会員 + 10 倍ポイントのパワーには、さしもの Amazon もかなわない。特に「輸入盤マルチバイ 30% オフ」+「4 点以上購入で 10 倍ポイント」のように大きなキャンペーンが 2 つ重なると、威力は絶大! 逆に、この機を上手く使えない人は他のカード (例えば楽天カード: 100 円につき 1 ポイントのポイント付与がある) を使う方がイイ。

iPad/iPhone のカレンダーと Google Calendar を同期させる

iPad を買って最初にした設定が、iPad のカレンダーと Google Calendar を同期させることだった (この方法は、Google Contacts と連絡帳、Gmail とメールの同期も同時に行なえる)。

同期には、iPad 側と Google 側の両方の設定が必要。

iPad 側の設定

  1. iPad の「設定」アプリを開く
  2. 「メール/連絡先/カレンダー」 > 「アカウントの追加」より「Microsoft Exchange」を選ぶ
  3. 「メール」に Gmail のメール・アドレス (@gmail.com を含めて) を入力、「ドメイン」は空のまま、「ユーザ名」と「パスワード」はアカウント名 (@gmail.com を含めない) とパスワードを入力する
  4. 「証明書が検出できません」とメッセージが出るので「了解」をタップする
  5. サーバ欄が現れる。「m.google.com」と入力する
  6. 同期する項目が現れる。「カレンダー」をオンにする (連絡帳の同期もしたい時は「連絡先」もオンにする)

メールは Gmail を Safari から見ていて十分なので、同期をぼくはしていない。

Google Sync 側の設定

  1. iPad の Safari アプリを開く
  2. 「m.google.com/sync」へアクセスする
  3. 「ご使用の端末はサポートされていません」と表示される。気にせず左下の「言語を変更」をタップする
  4. 「English」を選択する
  5. Google アカウントを入力してログインする
  6. 「Manage devices」から「iPad」を選択する
  7. Google Calendar の一覧が表示される
  8. iPad のカレンダーと同期したいカレンダーにチェックを入れる (最大 25 個まで!)

以上。

あとがき

昔からこの方法で iPhone のカレンダーと Google Calendar の同期が出来た。ただし、昔は同期できるカレンダーが 5 つまでだった。いつの間にか 25 個に増えてる。せっかくなので、iPhone の同期カレンダーも設定を変更した。

だけど、やっぱり画面の大きな iPad でカレンダーを同期している方が使い勝手がいい。

連絡先の同期は、「よみがな」に (Google Contacts 側が) 対応していないので、並びがめちゃくちゃになる問題がある。ただ、メール・アプリでメールを送ったりする時にこのデータが使われるので、同期するメリットはある。人を探す場合は、五十音で探すより検索を使う方が便利。

2010-05-28

iPad 3G (16GB) を買った

今日、iPad を買った。購入場所はビックカメラ ラゾーナ川崎。2010-05-11 の夜に予約をして、今日 (2010-05-28 の朝一に購入手続きを行なった (朝一で予約者待ちの列に並んだけど、受け付けは予約者順だったので、早く来て並ぶ意味はなかった)。

事前書類のチェックを済ませて、最終確認サインをするまでに 15 分ほど。その後、アクティベーション作業に入る。アクティベーション終了直後の状態では、デフォールト・アプリのみインストール済み (当然だね)。つまり、Safari でウェブが見られるし、電卓・時計・メモ帳・カレンダー、そしてマップ・アプリなどが使える。

3G 回線が使えない

デフォールトでは Wi-Fi が ON になっていたので気が付かなかったのだけど、3G 回線でネットに接続できなかった。Safari を起動するとこんなエラー・メッセージが出た。

モバイルデータ通信機能を起動できませんでした

PDP 認証に失敗しました

ビックカメラの人に聞いてみたところ、アクティベーションを (店内で) 行なっているので、もう 3G 回線が使えるようになっているはず。しかし、稀にこのような不具合に遭遇することもある、という。この場合、iTunes に接続し直せばちゃんと使えるやうになる。

iTunes に接続

家に帰って MacBook の iTunes と接続したら、同意書云々が現れた。アンケート等に答えて、先へ進む。最後は、iPad の設定。iPad を「新しい iPad として設定」するか「バックアップから復元」(ぼくが既に持っている iPhone からのバックアップ) するかを選べる。

ぼくはバックアップからの復元を選んだ。復元後、iPhone に入れていたアプリ・音楽がインストールされた。

この後、3G 回線でネット接続を試みたところ成功した (ホッ)。

iPad と iPhone

ようやく iPad の設定を終えたばかりで、まだまだ使いこなしているなど言えない。それでも、iPhone と iPad について、現時点で言うことはできる。ただ、それを一言でまとめるとなると難しい。

そんな時、こんな Tweet に出会った。短いし本質を突いてはいないが、今、iPhone と iPad の違いについて知りたがっている人達への最良の答えになっていると思うので引用する。

いま道行く男女が「iPadってiPhone大きくしただけやろ?昨日テレビで見た。」という女の人に対して男の人が「全然違うよ!AカップとDカップぐらい違う!」って言ってた。ふいた。w

この Tweet が言うやうに全然違う。しかし、その違いを良しとするか悪しとするかはその人次第。小さい方が良いと思う人もいれば、大きい方が良いという人もいる。両方とも良いという人の中でも、まずは iPhone OS が素晴らしいと言う人もあれば、小さい方には小さい方の大きい方には大きい方の良さがある、という人もあろう。もしかしたら、大きさは問題ではない。Android だ! と別世界へ行く人もいるかもしれない。

今のぼくはこれ以上語れない。ただ、iPad を持った時の感動はひとしおだったとだけ書いておく。

WiFi と 3G

今日は期せずして、3G 回線の使えない iPad を持ち歩いた。

感想。iPhone のユーザーとしては、とても使い勝手の悪いものだった。電車の中、お店で注文を待つ間、家で少しリラックスしたい時。色々な隙間時間に iPad を使おうにもネットが使えない。こと iPad の Safari は iPhone 3G より高速で画面が大きい。とてもウェブ・ブラウジングに向いている。それが出来ないことのフラストレーションは大きかった。何故、小さな iPhone で見なければならないのかと! (むろん、電車の乗り換えのやうに慌しい中、ネット・アクセスする分には iPhone の方が良いのだけど)。

iPad を使うなら、何時でもネット・アクセスできる方法を確保できる方がいい。iPad だけを考えれば 3G は最良の選択肢だと思う。複数モバイル機器を持つなら、どこでも WiFi も良いと思う。

2010-05-13

実用 Common Lisp を買ってしまった

「実用 Common Lisp」が昨日届いた。原著は「Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp」。作者は Peter Norvig。初版は 1992 年に発売されたという。今、2010 年だから、18 年も前。プログラミングの本では古典の部類に入るかもしれない。推薦の言葉は、あの竹内郁雄氏。

Common Lisp という題名だけ見て注文した。

届いた箱のサイズに驚いた。大きい。こんな大きな包装必要なの? 箱を空けて納得。893 ページの大著だった。値段が 9,200 円 (税抜) もするから変だとは思っていたんだ...

目次はこんな感じ

  1. Common Lisp 入門
  2. 初期の AI プログラム
  3. ツールと技法
  4. 高度な AI プログラム
  5. LISP の続き

この本の凄いとされるところを竹内氏の推薦の言葉から引用する。

Common Lisp の解説書の枠を完全に飛び出している。入門書としてはちょっと敷居が高いかもしれないが、経験を積んだプログラマだったら最初の部分がちょうどいいレベルの導入になっており、そこから先一気に、多くのプログラマには未体験の領域のプログラミングの世界へ踏み込ませる。

第一部の「Common Lisp 入門」が既に「入門書としてはちょっと敷居が高い」というのは恐れ入る。

サブタイトルには AI のケーススタディと謳われているが、実音は一般の問題解決の手段としての (問題記述からデバッグまでをカバーする) 広義のプログラミングの指導書になっている。問題をどう整理し、どう記述すれば、設計とプログラミングが容易になり、プログラムの構造がきれいになるかを、お題目ではなく、具体例でしっかり学ぶことができる。

邦題は「実用 Common Lisp: AI プログラミングのケーススタディ」となっているが、原題を直訳すると「AI プログラミングのパラダイム: Common Lisp によるケース・スタディ」となっている。むしろ、原題直訳の方がよろしかったんじゃないかな?

あとがき

そんな訳で、また Common Lisp の本が一冊本棚に並んでしまった。まだ読んでない沢山の本をどうしよう? この本も、きっとそんな積読の一冊になるんだらうなぁ。Common Lisp 熱は上がるばかりで、身に入っていない。もう少しプログラミングで遊ぶ時間を作らないと...

実用 Common Lisp (IT Architects’Archive CLASSIC MODER)

2010-05-11

iPad を予約した

2010-05-10 (月) から日本での予約が開始になった iPad。一日遅れながら、今日、予約をしてきた。

  • 予約品: iPad 16 GB (3G) + データ定額
  • 必要なもの: 運転免許書 (自分を証明できるもの)、クレジット・カード
  • 場所: ビッグカメラ ラフォーレ川崎
  • 納期: 発売日 (2010-05-28) に入るかどうかは微妙とのこと

iPad の基本スペックについては、過去記事を参照のこと。

購入にあたって

iPad WiFi は Apple のオンライン・ショップで予約可能。

一方、iPad 3G は店舗での予約が必要。この予約可能な店舗が少なくて困る。ソフトバンク・ショップは全国でもたったの 16 店舗。家電量販店は全国で 158 店舗。よっぽどのことがなければ、家電量販店の方が近い。予約可能店のリストはソフトバンクのウェブページに掲載されている。

ぼくは、iPad における WiFi 版と 3G 版は iPod Touch と iPhone ほどの開きがあると考えている。どこでもネットに繋がるのと、そうでないのでは使い勝手に大きな差が、少くとも iPod Touch と iPhone の間には、あったから。

「どこでも WiFi」などのツールも出回っているけれど、WiFi 版には GPS が付かないこと。iPad の他に「どこでも WiFi」を持ち歩き、かつそちらのバッテリーも心配しなければいけないこと。を考えると、「今は」 3G 版の方が良いと選択した。あと二年、もしかしたら一年したら、状況は激変しているかもしれない。

3G 料金体系

iPad の 3G 用の料金体系は 2 種類。一つはプリペイド式で、もう一つはデータ定額式。

データ定額は基本料金が 4,410 円。新規加入から 2 年間は 1,500 円の割引が受けられ、月々 2,910 円となる。その他、ウェブ使用料として基本料金 315 円が必須。

最初の 2 年は毎月 3,225 円が月々引き落とされる。おそらく 2 年後には iPad 次世代 (次々世代?) を買うことになるので、ここら辺の料金に目くじら立てる必要はないと感じている。

あとがき

ビッグカメラには 19 時頃に到着。待機客用の椅子が整然と並んでいたが、そこに座っている人はなく、すぐに予約ブースへと通された。土日よりも、平日に予約しに行く方が時間節約になるかもしれない。申請にかかった時間は 30 分程。

2010-04-23

Binary Tree を作ってみた

C 言語のアルゴリズムでは、初歩として勉強する二分木 (Binary Tree)。

思い返してみたら、実は一度もソースコードを書いたことがない。いくら何年もプログラム書いてるからって、それはないだろう! といふことでサンプル・コードを書いてみた。

/**********************************************************************************/
/* Sample Source of Binary Tree                                                   */
/**********************************************************************************/
#include <stdio.h>
#include <stdlib.h>

typedef struct node
{
  struct node* left;
  struct node* right;
  int count;
  int num;
} node_t;

static node_t* add_node(node_t* node, int num)
{
  if (node == NULL){
    node = (node_t*)malloc(sizeof(node_t));
    if (node == NULL){
      fprintf(stderr, "No nodes\n");
      exit(1);
    }

    /* Set data */
    node->num = num;
    /* Child node is not available. */
    node->left = node->right = NULL;
    node->count = 1;
  } else {
    if (num < node->num){
      node->left = add_node(node->left, num);
    } else if (num > node->num) {
      node->right = add_node(node->right, num);
    } else {
      node->count++;
    }
  }
  return node;
}

static node_t* make_btree(int num[], int n, node_t* node)
{
  for (int i=0; i<n; i++){
    node = add_node(node, num[i]);
  }

  return node;
}

static void print_btree(node_t* node)
{
  if (node == NULL){
    return;
  }

  print_btree(node->left);

  printf("%d(%d), ", node->num, node->count);

  print_btree(node->right);
}

#if DEBUG
int main(void)
{
  int n[] = { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, };
  int m[] = { 1, 1, 1, 3, 5, 9, 17, 31, 57, };
  
  node_t* nodes = NULL;
  nodes = make_btree(n, sizeof(n)/sizeof(int), nodes);
  nodes = make_btree(m, sizeof(m)/sizeof(int), nodes);

  print_btree(nodes);
  printf("\n");

  return 0;
}
#endif  /* DEBUG */

数字を二分木に追加していって、その重複度を数えるプログラム。

実行例はこの通り。

$ make
gcc -W -Wall -g -O2 -std=c99 -DDEBUG  -c -o btree.o btree.c
gcc -W -Wall -g -O2 -std=c99 -DDEBUG -o btree btree.o
$ ./btree
1(5), 2(1), 3(2), 5(2), 8(1), 9(1), 13(1), 17(1), 21(1), 31(1), 34(1), 55(1), 57(1), 

与えた引数は、フィボナッチ数列とトリポナッチ数列の最小の数項。1 が 5 回。3 と 5 が 2 回。それ以外の数字は 1 回ずつ現れているのが見てとれる。

Source Codes

ソースコードの一式 (Makefile 含む) は、gist に上げてある。

git clone git://gist.github.com/375570.git btree

もしよければ、改変などご自由に。

参考文献

C言語アルゴリズム+徹底入門 (標準プログラマーズライブラリ)

参考にはしたけれど、分かりにくい本なのであまりお勧めできない。

2010-04-19

Closure (クロージャー) って何だろう?

何年か前に Closure って何? って質問を受けた。当時、ぼくはその質問に答えることは出来なかった。今も出来る自信がない。だから少し勉強してみた。

初歩の初歩を噛じっただけだけど、考えをまとめるためにエントリーにしてみる。

参考文献

Closure と言えば Lisp ということで、Common Lisp の本を参考にした。

  • 「ANSI Common Lisp」(Paul Graham) pp.96-99
  • 「実践 Common Lisp」(Peter Seibel) pp.66-67

Closure

クロージャは「関数と環境を一緒にしたもの」。これがクロージャーの説明として一番良く聞く文言。

クロージャを知っている人にはこれで十分なのでせう。でも、ぼくにはこの説明はまるで霞を掴むように思える。

更に、「ANSI Common Lisp」から引用する。

関数が外部で定義された変数を参照するとき、その変数をフリー変数と呼ぶ。フリー・レキシカル変数を参照する関数はクロージャ (closure) と呼ばれる。そこでは関数が有効である限り、変数も有効であり続ける。

まだ良く分からない。でも一つ分かった。クロージャは関数だということ。その関数は、フリー・レキシカル変数を参照している。

レキシカル変数とは何か? 今度は「実践 Common Lisp」を引用してみる。

レキシカルなスコープを持つ変数は、束縛フォームの内部にあるコードだけが参照できる。Java、C、Perl、Python にはレキシカルなスコープを持つ「ローカル変数」があるので、こういった言語でプログラムした経験があるならレキシカルスコープにもなじみが深いはずだ。

レキシカル・スコープとは何ということはない。ありふれたスコープのこと。C 言語なんかで「ローカル変数は括弧の中でしか生きられない」とさんざ言っている。難しいことじゃなかった。レキシカル・スコープという名前に馴染みがなかったというだけの話。

クロージャはレキシカル・スコープな変数を参照するけど、その変数は関数の外部で定義されている。

ここで、「ANSI Common Lisp」のサンプル・コードを見てみる。

(let ((counter 0))
  (defun reset ()
    (setf counter 0))
  (defun stamp ()
    (setf counter (+ counter 1))))

関数 reset と stamp が定義されている。この 2 つの関数は、関数の外側の let 式で定義された変数 counter を参照している。なるほど、確かに counter という変数は let 内のレキシカル・スコープに収まっている。その counter を、関数外部の変数として関数 reset と stamp は呼んでいる。この時、関数 reset と stamp はクロージャになる。クロージャが関数と環境 (この場合、外の変数を指しているのだよね?) を一緒にしたもの、というのも何となく分かる気がする。

せっかくなので、stamp と reset を呼んでみやう。こんな感じに使うことができる。

> (list (stamp) (stamp) (reset) (stamp))
(1 2 0 1)

「ANSI Common Lisp」は「同じことは大域カウンターを使ってもできるが、上のようにすると、カウンタが不注意による書き換えから保護される」と続ける。なるほど。奥が深い。

Ruby で書いてみる

同じコードを Ruby で書いてみる。

class Counter
  def initialize
    @count = 0
  end
  def stamp
    return @count += 1
  end
  def reset
    return @count = 0
  end
end

c = Counter.new()

p c.stamp
p c.stamp
p c.reset
p c.stamp

実行例はこちら。

$ ruby count.rb 
1
2
0
1

Object 型の言語を見て思うのは、まずメンバー変数ありきで、そこにメソッド (関数) が付いているということ。昔、どこかで「Object 言語は構造体に関数を足したもの、クロージャは関数に変数を足したもの」というのを見た記憶がある。当時はよく分からなかったけど、今なら少し分かる気がする。

ANSI Common Lisp (スタンダードテキスト)実践Common Lisp

2010-04-17

Google Chrome Extension TechTalk に参加した

Google Chrome の拡張機能 (Extension) に関する TechTalk が先週開かれた。まずは概要:

アジェンダ及び資料へのリンクは上記案内ページにまとまっている。あまりに完璧なので、このブログで書くことがない程に。

と、リンク先参照だけで終わっては身も蓋もないので、コピペになるけどアジェンダを写しておく。

括弧で囲んだのは、当日の発表資料等へのリンク。

見ての通り内容は盛り沢山。全部を説明する気力もないので骨子だけ。

Google Chrome と HTML5

最近、HTML5 の動きが活発。HTML5 の先には、デスクトップ・アプリと同等のものがウェブ・ブラウザー上で動く世界が待っている。という及川氏の話で TechTalk はスタートした。Google Chrome も HTML5 対応をどんどんと進めていく。

田村氏の話は、特に Opera でサポートが進んでいる HTML5 Forms の Google Chrome における対応状況について。HTML5 Forms については HTML5 TechTalk の過去レビューを読んでもらうとして、Chrome が Opera に追いつこうと頑張っている状況が分かった (とは言っても、まだ Opera には及ばないけれど)。

白石氏の話は、HTML5 で策定中の Web Notifications の解説。何故、Web Notifications を取り上げるかと言うと、この仕様を提案しているのが Google 自身であり、唯一実装しているブラウザーが Google Chrome だから。Web Notifications は Google Calendar などで使われ始めている。

Google Chrome 拡張について

「Google Chrome 拡張入門」と銘打たれた太田氏の発表が、今回の TechTalk のメイン・ディッシュだった。時間にして 60 分。ただただ圧倒されるばかり。メモは追いつかない。嬉しいことに、説明ページを HTML5 で書いていて、内容のほとんどはそのページに書いてある。

このページ、右上に「目次」と薄く書いてある。カーソルを持っていくと、Chrome 拡張入門の「目次」がポップアップ (?) する。また右下には「設定」ボタンがあり、クリックすると font-size の変更及び背景色の変更ウィンドウ (?) が現れる。フォント・サイズ変更がスライド・バーなのも格好良い。Chrome の拡張とは関係ないけれど、HTML5 の未来を感じる素晴らしいサンプルになっている。

なお、2010-04-17 発売の Software Design 5 月号で「Chrome ブラウザ拡張実践入門」を書き下ろしているとのこと。上記ウェブページと併せて持っておけば、一通りの入門になるんじゃないかと思う (ので、ぼくは SD 5 月号を予約した)。

Software Design ( ソフトウェアデザイン ) 2010年 05月号 [雑誌]

あと、「Google Calendar for Todayの紹介と拡張内ページ間通信の実例」では Chrome 拡張に使われる background.html と popup.html でライフタイムが前者が長く後者が非常に短いとの話があった。そこで、取得したデータを何度もポップアップ表示するやうな拡張は、background.html でデータを取得・保存し、popup.html に渡すとポップアップの度にデータを取りに行かないので良い、という Tips を教わった。

他のライトニング・トークも面白いもの、興味深いものが多かった。基本 Google Chrome 拡張の実例だったけれど、内容を咀嚼しきれていないので割合。

あとがき

とにかく楽しかった。一年以上会っていない友人にも会えて、テンションが高くなった。かういふ技術講演には、できるだけ足を運びたい。そして何か成果を出したい。気持ちばかり焦って、何も出来ていないのが痛いところ。。。

2010-04-09

iPhone 4.0 プレビュー・イベント開催

2010-04-09 午前 2 時から、Apple は iPhone 4.0 のプレビュー・イベントを開いた。新しい iPhone OS は、今夏リリース。開発者用のプレビュー版は今日 (2010-04-09) リリースされる。

iPhone 4.0 の対象は iPhone 3GS と iPod touch 第 3 世代。iPhone 3G と iPod touch の第 2 世代では一部の機能 (マルチタスク!) が使えない。けれどアップデートは可能。iPhone OS 4.0 の iPad への提供は今秋を予定。

iPhone で追加される新機能は 100 以上。今回のプレビュー・イベントでは 7 つの機能に絞って招介が行なわれた。もちろん一番手は、お待ちかねのマルチタスク機能!!

1. マルチタスク機能

遂にマルチタスク機能が iPhone に搭載される。アプリの切り替えは、ホーム・ボタンのダブル・クリックから。すると、Mac のドック機能のように起動中のアプリのアイコンが現れる。一度に現れるアイコンの数は 4 つまでみたいだけど、そこは横スクロールが可能。

開発者向けの話をすると、マルチタスク機能は API として提供される。肝は 7 つの API。

  1. Background Audio
  2. VOIP
  3. Background Location
  4. Push Notification
  5. Local Notification
  6. Tast Completion
  7. Fast App Switching

Background Audio は、バックグラウンドに回っても音楽を鳴らせる機能。Pandora を始めとするインターネット・ラジオ用アプリでの利用が期待される。

VOIP は Voice Over IP の略で、Skype のやうな IP 電話の機能。着信があると、画面のトップに赤い帯が出て、電話がかかってきたことを知らせてくれる。このお知らせバーをダブル・タップすると、他のアプリを動かしながらでも通話が可能。

Background Location は、バックグラウンドでも GPS を動かし続ける機能。カーナビ・アプリなんかは、この機能がないと、バックグラウンド中に自分の位置を見失ってしまう。また、Loopt (Google Latitude と同種のアプリ) なんかも GPS の情報をバックグラウンドで取得できるやうになる。GPS の利用については気配りがされていて、アプリごとに GPS 利用の是非が問われる。ユーザーが OK を返すと、24 時間、そのアプリは GPS をバックグラウンドで利用可能になる。

Push Notification は、前のバージョンで実装された機能。バックグラウンドでお知らせ通知を受け取ることができる。Local Notification は、その GPS 限定版かな?

Task Completion は、処理 (タスク) をバックグラウンド中でも実行する機能。例えば、Flickr の写真アップロード機能を走らせたり、なんてことができる。

Fast App Switching は、アプリ切替時にその時のアプリの状態を保存できる機能。ゲームの途中でアプリを切り替えたりする時には、必須な機能だね。この API がないと、またゲームを最初からやり直さなくちゃいけなくなる。

2. フォルダー機能

フォルダー機能は、ホーム画面で提供される。Windows や Mac のフォルダーと同じやうに、アプリのアイコンをその中に入れられる。

今まで、アプリ・アイコンは画面一杯に配置されていた。アプリの数が増えると、画面をいくつもまたいで移動する必要があった。フォルダー機能はその煩わしさから解放してくれる。

フォルダーは、ドックの中にも配置可。フォルダーの名前はアプリのジャンルから自動生成される。もちろん、後で手で編集することも可能。フォルダー機能のおかげで、インストールできるアプリの数は 180 から大きく増えて 2160 個になる。

3. メーラー機能の強化

  • United inbox。複数のメール・サービスのメールを、一つの受信箱として表示する機能。
  • Organize by thread。メッセージのスレッド化。デモでは、どう見えるかまではよく分からなかった。
  • Open Attachments。添付ファイルを開く機能。添付ファイルを開くアプリは、App Store で購入したものの中から選べる。

4. iBooks

iPhone OS にも iBooks が来る!

5. 企業向けの機能

あまり興味もないので、機能の列挙だけ:

  • Even better data protection (データ保護機能の強化)
  • Mobile Device Management (?)
  • Wireless app distribution (?)
  • Multiple Exchange accounts (複数の Exchange アカウントをサポート)
  • Exchange Server 2010 (Exchange Server 2010 に対応)
  • SSL VPN Support (VPN が使えるようになる?)

6. Game Center

Social Game 機能が付いた。ゲームの中で、次のことができるやうになる。

  • 友人の招待
  • Matchmaking (?)
  • リーダー・ボード (ハイ・スコア達成者のリスト表示?)
  • Achievements (?)

ごめん。最後にやったゲームはスーパーマリオ 4 なので、ゲームのことはよく分からない。

7. iAd

モバイル広告!! この iAd の良い所は、広告からウェブ・ページへと飛ばされるということがないこと (本当に本当かなぁ?)。基本、アプリ内アプリとして動作するらしい。

それ以外の機能

  • Bluetooth キーボードのサポート
  • ホーム・スクリーンの壁紙変更
  • ビデオでタップしてフォーカス
  • 5 倍のデジタル・ズーム
  • ギフト・アプリ (?)
  • カレンダーへのアクセス
  • 写真ライブラリーへのアクセス
  • 写真に GPS 情報付与
  • Geotagging
  • プレイリストの作成
  • アプリケーション内 SMS
  • スペル・チェッカー

あとがき

今回、第 4 世代 iPhone (iPhone HD?) の発表はなかった。iPhone OS 4.0 の機能は、きっと新 iPhone でこそフルに発揮されると思う。

ぼくは iPhone 3G を使っている。今年の 7 月には 2 年縛りが解ける。マルチタスクの使えないとう iPhone 3G とはおさらばして、新 iPhone に乗り換えたい。夏までに第 4 世代 iPhone の発売はあるのか?

iPhone OS 4.0 はぼくの期待を膨らませ、ちょっと iPhone HD へと心を馳せさせた。

2010-04-07

フリー <無料> からお金を生みだす新戦略 (クリス・アンダーソン)

「ロングテール」という言葉を生みだした Chris Anderson (クリス・アンダーソン) が、新著「Free (フリー)」を発売した。読みたいと思っていたところ、知人が買ったというので借りて読ませてもらった。

フリー

「フリー」は、ロングテールの時と同じく、ネットの特殊性に注目して「フリー (無料)」で物やサービスを提供できるやうになったことを数多くの事例を混えながら説明している。

「ロングテール」の時のポイントは、ネットの世界では在庫が無限に持てることだった。在庫を持つことの費用が限りなくゼロに近いことが、現実世界と違っていることがポイントだった。

「フリー」のポイントは、ハードディスクとネットワーク帯域が無限に持てるようになってきたこと。保存と運搬 (通信) に対して、費用が限りなくゼロに近づき始めたことがポイントと言う。

まあ、これは話の序の口。データ保存と通信の費用がゼロになる。というだけでは、お金もうけは出来ない。そこで、どう知恵を絞って「無料」から「お金」を生みだすか? その工夫を読むところが本書の面白いところ。例えば、価格の下落スピードが以前とは比べものにならなくなったので、先を見越して特売価格を付けても (その時は赤字のように見えて) 安価の見返りに得られる膨大なシェアなどに後押しされて、最終的には黒字になった、という風に話が進んでいく。通して読むと、「フリー (無料)」の大枠が見える構成になっている。

もしちょっと立ち読みしたいなら、本のところどころに入っている一ページ・エッセイがおすすめ。実際の企業を取り上げていて、「フリー」から金儲けしたエピソードがまとめられている。その中には、ネットの世界に限った話ではなくて、新聞社のエピソードだったり、自転車レンタル会社の話なんかもある。ロングテールは、かなりネットの中で閉じた概念だったけど、今回のフリーはネットの世界に限らない。同じやうな産業構造を見つければ、一工夫できてしまう。本書の魅力は、その間口の広さもあるかもしれない。

フリー~〈無料〉からお金を生みだす新戦略