著作一覧 |
嘉平さんにAbout Face 3をもらったので、読み始めた。全部で570ページくらいある大著だが、とりあえず100ページほど読んで十分におもしろかったので、まずはそこまでについて。
About Face 3 インタラクションデザインの極意(Alan Cooper/Robert Reimann/David Cronin)
著者はVBの父ことアラン・クーパーを筆頭としたCooper社の人たち。デザインコンサルタントという感じかな。問題は、この「デザイン」の対象領域ということになる。ペルソナはこのあたりから出てきた考えらしいし、本書の中でも大きく扱われているのだが、それは100ページを越えたあたりからなので、まだ読んでない。
最初に、テーゼがある。脱工業化の時代であるという時代規定だ。脱工業化において重要となるのは、デザインが物理モデルを伴わないことだ、つまり、押したら押される引いたら引かれるということは、もう、ない。そこで、インタラクションデザインという考えを提唱することになる。
というわけで、この本は、顧客要件から実際の製品(ただしユーザービリティ検証まで含むかどうかは微妙)の間で、絶え間ないフィードバックを開発者(いわゆる上流から下流まで、まんべんなく)へ送り続けるデザイナー(コンサルタントと言っても良いね)のための本ということになるのだが、これはアーキテクトの仕事でもあるべきだなぁ。
次に、ターゲットを明確にする。
ユーザーのゴールを2つに分類する。Blogとか日記システム(tDiaryもそのひとつだ)を製品と仮定する。ユーザーのゴールは表面的には、日記をつけて、それが日付で分類され、どうしたこうした、なのは論を待たないけど、そこはあまり重視しない。自明だし。ユーザーのゴールは、「私はバカではない」と感じ、征服感を満足し、気持ちを高揚させることだ、と想定する。明言してないが、どんなものであってもゴールは、ユーザーがバカにされたような惨めな気持ちになるのではなく、征服感、達成感、おれってスゲー感を味わうこと、と決めているようだ。
そういう目で、ソフトウェアを見ている?
したがって、デザインのためのインタビューアプローチも、そこまで踏み込む。顧客とユーザーの区別もしている。かつ、ユーザーのことは一切、信用しない。彼らのアイディア(不満があるはずなので山ほど出てくる)、デザイン要求(同じく)、テクノロジー要求(同じく)、全部、せいぜい参考にするくらいで無視する(とまでは書いていないが)。ではなんのために、それをやるのかといったら、モデルを得るためだ。
ここで、3種類のモデルが示される。
1つは実装モデル。XXという機能を持つYYと聞かされたとき、頭に浮かんでくるあれだ。3で割り切れたらFizz、5で割り切れたらBazz……というプログラムを作れ、と聞いたら出てくるものが実装モデル。
で、これはデザインの参考には、いっさいしてはならない、とする。
実装モデルが極北であれば、極楽に来るのは、脳内モデルである。これが重要で、いかにこれに近づけるかが、デザインに決定的となる。
脳内モデルは、ユーザーの心象だ。つまり、おれってスゲーを味わっている姿のイメージである。
心象なので、そんなものは伺い知ることもできず、かつ、千差万別であり、言葉にすれば、「おれってスゲーを感じて満足しているわたし=ユーザー」というパターンであるが、もちろんそれをデザインに落とし込む必要がある。ちなみに、謝辞にはアレグザンダーが筆頭に出てくる。パターンランゲージからの影響は大きい。
かくして、デザイナーは、実装モデルと脳内モデルの間をつなぐ表現モデルを作ることになる。
ここは、興味深い。
プログラマー的な発想とは逆だからだ。抽象度が高いのは脳内モデルで、抽象度が低いのは実装モデルだからだ。プログラムはもっとも抽象度が低い存在である。
つまり、一段上のレベルの界面を扱っているということだ。
はい。すぐ頭に2人のスティーブが浮かぶ。ウォズは実装モデルしか持たない。すがやみつるのこないだ公開されたマンガだと、えーケースに入れるの? なぜ? というやつだな。(ちょっと違うかも)この男の表現モデルはApple Iの生ボードだろう。
一方ジョブズは、脳内モデルに極めて忠実な表現モデルを作れる男だ。そういうことだ。
ここでユーザーを正しくセグメンテーションする必要がある。もし、Appleのユーザーがホームブリュークラブの連中だけならば、脳内モデルはウォズの実装モデルとほぼ等しいはずだ。したがってジョブズはそれほど必要ない。
かくして、この本がターゲットとしているのは、マスを相手にするためのデザインということになる。
そのために、この本は次の切り口を使う。初心者ユーザー、中級者ユーザー、上級者ユーザー。
そして、コアデザインは中級者をターゲットにしなければならない、と規定する。
なぜならば、初心者は、次の2つの行動を取る。あきらめてユーザーにならないか、あるいは中級者に移行する。したがって必要なことは、あきらめずにちょっとがんばれば中級者になれるというビジョンを与えることだ。
一方、上級者は必要なので上級者になったのだから(しかし、その数はごく少ない)、適当なエサを与えておけば良い。しかし、上級者は実に重要で、彼らが勧めると、初心者は、自分たちの利用方法とはまったく異なり、確実にそこへ到達することはあり得なくとも、それを基準に判断するし、初心者がいなければ中級者も生まれない、したがって高級者をつなぎとめる策略は必要だ。
つまり、ユーザーは基本的に中級者で、かれらは怠惰なので上級者にはなれないし、しかし自分たちは初心者ではなくおれってスゲー感にあふれて幸せでなければユーザーではなくなってしまう。だから、中級者のためにデザインするのだ。
うむ、ジョブズだね。(Lispの人や関数言語の人−プログラミング言語市場における上級者-がRubyを評する視点もここらへんにありそうだ)
うまいたとえとしてスキー場経営の話が出ている。
初心者用のなだらかな斜面は用意が絶対に必要。しかしすぐに中級者になってもらうために、かれらが中級者の視線を意識せざるを得ないように追い込み、かつ、本当に簡単に征服できるように仕込んでおく。
ゲレンデのほぼすべてをいくつかの段階をつけた中級者用のバラエティに富んだゲレンデで構成する。そんな彼らがふと気づくと、そびえ立つ崖のような急斜面とそこを滑降する上級者を眺めざるを得ないようにし、いつかはああなれれば良いけど、あそこまでいかなくとも、(と初心者用ゲレンデを眺めて)おれは十分にいかしているし、でももう少しがんばると、あっちの上級者用ゲレンデで滑ることも可能かも知れないなぁ、とか考えられるように設定する。もちろん上級者は、きわめて冒険的で、しかもほとんど人が来ないゲレンデを思う存分滑降して楽しめるようにする。でも、元々人口が少ないのでほんのちょっと作れば十分だ。
と、こういった内容で、いかにデザインを決定するのか、そもそもデザインは何をターゲットとした誰をターゲットとするのか、についてレクチャーしてくれる。
扱う領域は定量化できない領域なので、いかに定性的に分析するか、そのためには民族誌アプローチが有効とまでしている。
この本は説得力がある。しかし、内容を極めるのは無理っぽい。かくして、本書を手にして中級者となったクーパー社の潜在的な顧客は上級者たるクーパー社に仕事を依頼することになる、という入れ子構造の本だな、とも思うが。
なかなかそうは思っても怪しく感じることでもあるので、実装モデルと脳内モデルが直結している人(おれもそうだ)にこそ、この本はお勧めのように思う。
一般的に解釈すると一般的という言葉は広く一般的に見られる一般的なオブジェクトのことを示すと一般的に解釈できる。
とすると、一般的なCPUとは現時点では一般的なインテルの一般的にi386あるいはAMD64という言葉で一般的に示されるところの一般的なアーキテクチャを持つ一般的ななCPUを一般的に指し示していると一般的に想定するのが一般的であろう。特に一般的にコンピュータという一般的な言葉を一般的に利用しているのであれば一般的になおさら一般的である。というのは一般的な利用者において一般的にケータイや炊飯器のような一般的な機器は一般的にコンピュータとは一般的にみなさないことが一般的だからである。
とすると、一般的なCコンパイラという一般的な言葉が一般的にさし示すものは一般的に考えるに、一般的にみられるWindows(一般的に32ビットまたは一般的に64ビットのどちらのバージョンであるかを一般的に問わず)を一般的に搭載した一般的なコンピュータにおける一般的なVisual C++か、あるいは一般的なLinux(一般的な32ビット、一般的な64ビットを問わず)を搭載した一般的なコンピュータにおける一般的なgccをさすものと一般的に考察できる。
一般的にどうでも良いことについては一般的という一般的な形容がつくことが一般的に一般的である。
と一般的に思った。
でも、一般的にlongが64ビットというのは一般的に知らないし、それについては一般的ではないと一般的には考えるものである。
引用部に1箇所しか出てこないが、一般的という言葉がよくよく考えてみるとおもしろいので一般的に考えてみた。というか「多くの」とか書いてあるんだから(一部の)反例は別の話題ですな。
なんとなく上の話題と関連して、本当にintって16ビットだったっけ? とVC++1.5のマニュアルを探そうとしたが見つからず、代わりにMANX AZTEC Cの分厚いマニュアルが見つかったので、しょうがないのでちょっと眺めた。
ううむ、面倒であるな。
欧州はいざ知らず、北米でAZTEC Cを利用するということは、PCで成功して(投資を回収した)ソフトをAmigaにも移植するためだ。
そのため、intをデフォルトの32ビットではなく、16ビットに変えるオプションがある。
引数が値の場合の関数呼び出しについては、intの幅はほとんど意識する必要はない。すべて32ビット幅にしてスタックへ積めば良いからだ。
問題は、intポインタで、
ああ、そうか。このあたりもリトルエンディアンが世界制覇した理由のひとつかも知れないなぁ。
と気づいたから、いいや。
リトルエンディアンだとビット幅の扱いにバグあっても動く可能性があるのだな。
たぶん、ビッグな世界だとうまく動かないはず。
#includevoid print(short* p) { printf("%d ", *p); } int main(int argc, char* argv[]) { int params[] = { 1, 2, 3, 4, 5, 0 }; int* p; for (p = params; *p; p++) { print(p); } return puts(""); }
コンパイルすると警告が出る。
arton@pop:~/tmp$ gcc end.c end.c: In function 'main': end.c:11: warning: passing argument 1 of 'print' from incompatible pointer type
無視して実行。
arton@pop:~/tmp$ ./a.out 1 2 3 4 5 arton@pop:~/tmp$
警告意味ないじゃん、と考えてはいけない。
あわせて観たい。
ビッグ (ベストヒット・セレクション)
鍵盤床で社長と踊るシーンが好きだ。
githubは未経験ですが頑張ります。というわけで手元の作りかけをコミットしてみた。
で、内容は、emacs-lispネットワークプログラミングは未経験(というかelispは初心者)ですが頑張りますなうえにWassr APIは未経験ですが頑張りますなので、送ることしか考えてなかったり。というか、バッファを作っても、そのバッファ限定でキーをアサインする方法を調べている最中だったりするもので(モードを作るのが先に来るのか)いちいちeval-bufferしていたりして。
base64.elってデフォルトで入っているのかと思ったら、sudo aptitude install w3-el-e21が必要だったのか。Meadowは楽だな。
思うんだが、リージョナルって地理的なリージョンの必要はないよな。
で、仮想的な地図のひとつに、こんなのがあるわけじゃん。と書いてから探したけど見つからなかったけど、OSをマップしたやつ。ユーラシア大陸がWindowsで、UKがDOSで、オーストラリアがLinuxで、北米がSYSV、南米がBSD(ガラパゴスがOS Xね)、北極がPlan9とか。もちろん日本はTRONだ。
で、上の例だとユーラシア大陸リージョンの住人(ぱっと思いつくだけでも8人くらいはいるし)で集まって手分けしてread、writeの置き換えをするってようなリージョナル会議。それしかないんじゃないかなぁ。
#言うだけ番長なんで自分では先頭を切らないけど、尻馬には乗ります。
ちょっと耳にした言葉であるが、ある程度の量の、なんか似合わないというか馴染んでないスーツ姿の男女が次々と、ITは未経験ですが頑張りますとか、ITは初心者ですが頑張りますとか口にしているのを見て、猛烈な違和感に気持ち悪くなった。一人二人ならともかくほぼ全員だからな。
日本語で、「情報技術」とすれば、確かに、未経験だったり初心者(この言葉そのものが嫌いなのはおいておくとして)そんなにおかしくはないかなとは思う。少なくとも頭では理解できる。別の言葉に置き換えてみて、「旋盤加工(技術)」は初心者ですが頑張ります、とかはそんなにおかしくはない。だが、大学を出たばかりの人間が、工場で「旋盤加工は初心者ですが頑張ります」ってのはやはり変だろ。だって、そんな技術は教えられていないはずだから、あまりに自明だ。まして、ITってなんだ? そんなものを教えているところがあるのだろうか。CSなら教えるだろうが、だからといって「CSは経験者ですが頑張ります」ってもっと妙だ。つまるところ、口に出す言葉じゃないんじゃないか。
というか、それが職掌ではないから違和感があるのかも。業界の分類名だよな。
初当選の議員の初登院のところにマイクを向けたら、「政治は未経験ですが頑張ります」いやもっと端的に「先進国は未経験ですが頑張ります」とか答えているところを想像してみる。業界の分類名としたらそんなところだろう。だが、こんなことをいうバカに投票したやつは愚民に違いない。
職掌ならどうだろうか。「議員は未経験ですが頑張ります」……やっぱり投票したやつは愚民だな。「未経験のパワーで旋風を巻き起こします」というようなたわごとのほうがまだましに聞こえる。
まったく日本語は難しい。
そんなに頑張りたいのなら、もっと単純に、「右も左もわかりませんが、精一杯頑張りますので、よろしくお願いいたします」とか当たり障りも意味もないことを言えば良いのだ。それが紋切型メソッドという伝統芸だし。
つまりは、未経験だの初心者だのという言葉は差別用語として禁止してしまえば良いのだな。言い換え候補としては「へなちょこ」とか「すっとこどっこい」あたりだろう。
MLで「Rubyはへなちょこですが頑張ります」とか。
でもLinuxについては「タコ」という言い換えが推奨されているらしいけどな。「Linuxはタコですが頑張ります」とか。
そうか。「〜はXXです」というのは〜が主語に聞こえるから異常な言葉に感じるのか。「あなたはカスですが頑張ります」とか。これで自分のことを卑下したつもりなんだからめでたいことだ。
「あけましてはおめでとうございますが頑張ります」これなら良い。
あと、気づいたが、どうせ紋切型の無意味な科白なんだから「頑張ります」より「踏ん張ります」のほうが気が利いていて良いかも。
インドで留学生してあっちで数年就職してた人とちょっと話して、長年の疑問というか不思議について別の見方が聞けて納得感があったのでメモ。
おれ:子供(たぶん、小学高学年か中学)のころに、インドってカーストとかのせいでえらく非効率だって聞いた。んだけど、なんかそれは偏見じゃないかって疑ってるんだけど。その例に出てきた話ってのは。ホテルに泊まったら電灯が切れている。フロントに電話したら、しばらく待っててくれと言われた。しばらくするとノックの音がした(エヌ氏じゃないけど)。開けるとインド人が4〜5人入ってきた。梯子を用意する係が梯子を電灯の下に置いた。電灯を外す係が切れている電灯をはずした。電灯を付ける係が……
インド帰り:ああ、それはわかりやすくて良い例ですね。もっとも、8人から10人くらい来ると思いますけど。
おれ:えー、これは良い例……というか、もっと多いのか!
インド帰り:だって、それ確かにカーストもあるとは思いますけど、ワークシェアリングですから。
おれ:ワークシェアリング……なるほど、そう考えるのか。
インド帰り:だからJavaを書く人ってのは本当にJavaばかり書いている。そりゃすごい。仕様から何からすべて押さえている。でも、OSのインストールすらできない。知らない。それは別の人。ネットワークの調子が悪くても何もできない、そもそもしない。それも別の人。でもJavaはすごく書ける。
おれ:どのあたりまで細分化してるの? たとえばMVCフレームワークを使うとして、Mの人はひいひいで、Cの人はCばかりできもちいいとか、Vの人はAはしないとか。それは稲垣足穂の分類か。
インド帰り:さすがにそれはないなぁ。JavaはJavaですねぇ。ただし、HTMLはまったく書けない。もしかしたら書けるのかも知れないけど絶対に書かない。それはHTMLの人。ワークシェアリングですから。
というような感じで、話半分としても、おれにはカースト云々よりもワークシェアリングという切り口に納得した。
A感覚とV感覚 (河出文庫―稲垣足穂コレクション)(稲垣 足穂)
追記:いや、書かなくても良いだろうけど一応蛇足つけとくと、だから日本人はジェネラリストの役回りでいいんじゃない、というように続く。
木村さんのところのリストの話を読んでいて、(そこで語られている内容とは関係なく)JavaではなくCをやらせろというのがなんとなくわかるように思えた。
以下、Javaで単方向リスト
public class List {
List(int x) {
value = x;
}
void chain(List list) {
if (next == null) {
next = list;
} else {
next.chain(list);
}
}
List next;
int value;
public String toString() {
return value + ((next == null) ? "" : ", " + next.toString());
}
public static void main(String[] args) {
List top = new List(0);
List last = top;
for (int i = 1; i < 10; i++) {
List list = new List(i);
last.chain(list);
last = list;
}
System.out.println(top);
}
}
実行すると
d:\temp>java List 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
で、こういうのは書ける人なのだが、Cを使うと
#includestruct List { struct List next; int value; }; int main(int argc, char* argv[]) { // }
先生、コンパイルできません! とか。
MacBook Proの液晶が壊れたみたいなので、アップルストア銀座に行った。
で、ジーニアスバーで順番待ちながら考える。
geniousって天才以外にどんな訳があるんだろうか? 意味がわかったようでわからんなぁ。
というか、バーの向こうとこっち、どっちを指しているのだろう。場、そのものかな。
どんな質問でも答えるという意味なら、向こうだし、持ち込むべきものを持っていることを称えるというのでも意味が通る。
多分、何も考えてないのだろうけど。
とか考えてたら順番を飛ばされた。さすがだ。
日本語読めるのかなぁ。今度はキーワードを空にして送ってきた。
たださんのところで見かけて読みたくなって買って読んだ。わりと厚いが読み始めるとあっという間だ。
(「本泥棒 site:sho.tdiary.net」 で結果が0だ。たださんのところはグーグルのbotを蹴ってるのか?)
この作品は絶妙だ。
物語は、ナチ政権下の1939年頃から1943年頃までの数年間に、貧乏なペンキ屋の養女になった女の子を中心に回る。貧乏だけど文句ないドイツ人なので(父親は文句のあるドイツ人なので家族離散、弟は(多分栄養失調に伴う)病死という羽目になるのだが、少なくとも養子に出た子供にまではたたらないようだ。良かったね)、最悪に悲惨ではなく、家があってベッドがあり、学校に通って友達と遊べる。友達はクラスで一番の成績で、トップクラスの運動能力を持ち、しかし天性のアナキストで、黒人指向で、腹ぺこだ(追記:熊のエピソードがとても好きだ)。
とはいえ、実の父親のスタンスの問題から教育を受ける機会が得られなかったらしくて、最初は文盲だ。そこを養父のおかげもあって(しかし、この養父は良い人なのだが、それほどは学がないので教えるのも難儀なのだが)他人に夜の長さの慰めを与えられるほどの読書人に成長するのであった。この養父との夜の勉強の物語はすばらしく美しい。このての話におれは弱いのだ。
その言葉を子供に教える親父は、かって危ういところ(つまりは第一次世界大戦なのだが)で死神から逃れることができたのだが、それは彼が上手に字を書ける(なんてことはないのだが)おかげであったというように、言葉、紙、ペンキ、鉛筆、書物、新聞紙、書物そのもの、壁、辞書、図書室、そういった文字(本)にまつわる種々のメディアが複雑に人々に絡み合う。
だが、それは主題ではない。
クリスタルナハトに始まる時代から60年以上過ぎて、欧州からオーストラリアへやって来た(逃れてきたのではなさそうだが)人の子供が、両親や、謝辞に出てくる近所のおばあさんたち(だと思う)から聞かされた/聞いたエピソードを消化して昇華してすばらしい作品に仕上げる。
しかし、ナチスやそれにコラボした人たちを糾弾することは主題ではない。結局のところ、誰一人として正しくはありえなかったので、しかもそれはどうしようもないことなのだ。すべてはうまくいかないからだ。
語り手は死神であり、主人公の女の子がオーストラリアで天寿をまっとうするところで邂逅し、プレゼントを与えるところからさかのぼって語られる。したがって、すべては語り手にとって既知である。そこで章のはじめに語られる物語のあらすじを説明してみたり、ある時点にまかれた種がどのように未来において実を良くも悪くも結ぶかほのめかしてみたり、はっきり書いてみたり、しかし、それらがその時点になると、軽く想像を裏切るかたちで、常に最悪の事態を逃れて進められたり、というような手法的な実験も多少はある。
しかしそれも主題ではない。
ナチスとドイツ軍の関係について、子供のころ読んだアンネの日記(ダイジェストでもなく、たぶん、伝記のようなやつだと思う)で、一家を連行しに来た軍人が、父親の第一次世界大戦のときの写真と勲章を見て、すごく複雑な気分になるというエピソードを思い出した。今、目の前に立っている男(つまりアンネの父親)は、まちがいなしのうじむしなのだが、しかしまちがいなく自分の大先輩でしかも英雄だ、いったいおれはどういう態度をとるべきなのか……英雄は英雄だ。敬意を払おう。
この温度差を思い出して、読んでいてほっとするところがあったりもするのだが、もちろん、それも主題ではないだろう。
この作品が優れているのは、正しく、一面的でなく、種々の技法を総動員して、過去の記憶を持ち込むことさえして、ある種の極限的な状況と、極限的な語り手を用意さえして、生きるということを、くそまじめに描いていることだ。もちろん、それが優れた文学というものだ。
記録:おれがなんとなく感情移入して読んだのは、親父は当然のこととして、本を盗まれる人なんだな。で、その行動がまさにその通りに思える点も、この本を評価できるところなのかも知れない。まったく、本を読む人は好きだ。
| ジェズイットを見習え |
_ きむら(K) [>反例は別の話題ですな。 ぐはっ。 確かに。 >MANX AZTEC Cの分厚いマニュアル 貴重な資料ですね..]
_ arton [>この手のものを処分したりはしないのですか? たまに処分しますが、つい、とっておいたりもして、いろいろです(VC..]
_ arton [地震だ!]