Diary?::2006-09-16

11:51

今のところ scribes はまだ存在していないファイルをコマンドラインから指定して開けないっぽい。つまり、

scribes hoge

とした場合、 hoge は既に存在するファイルである必要があり、存在し無ければエラーとなってしまう。

そのうち直されると思うので、とりあえず回避用のシェルスクリプトでも。

#!/bin/bash
if [ ! -f $1 ]
then
  touch $1
  if [ -f $1 ]
  then
    echo $1
  fi
fi

scribes $1

while [ -n "`ps t | grep scribes | grep $1`" ]
do
  sleep 1
done

if [ `stat -c %s $1` -eq 0 ];
then
  rm $1
fi

引数で与えたファイルが存在しなければ touch で作り、 scribes 終了時にファイルが空だったら削除。別に scribes のコードに手を入れても良かったけど、まあこの程度ならシェルスクリプトでいいでしょう。

15:13

scribes でコードや文章をゴリゴリ書いているのだが、思った以上に快適。入力支援とまともなインターフェースの恩恵はやはり大きい。やっぱいい加減 vim や emacs に拘るのはやめた方がいいな。たとえまだ未完成な部分を多く残しているとしても、圧倒的に scribes のインターフェースは優れている。ソフトウェアは機能の多さなんかよりもユーザインターフェースで語るべきだというのが持論なのだが、さらにその傾向が強まったな。

同じ事はプログラミング言語にも言えて、つまりプログラミング言語において俺がもっとも重要視しているのはまともな文法かどうか、酷く回りくどいコードにならないかどうかというところ (機能に関しては最近の言語はしょぼすぎって事はあんまり無いのでわりと寛大)。それらのポイントはってのは他のソフトウェアのユーザインターフェースなわけで、そこがダメだったらどんなに機能的に優れていてもダメだろう。だから文法は (そして言語は) 重要ではないってのはユーザインターフェースが重要ではないといってるのと同じで、ソフトウェアの開発者としては最悪だろうね。過去の日記を編集するのに回りくどい操作を要求される mixi のインターフェースはバカとしか思えないし、単純な事をするのにいくつもインスタンスを生成しなければならず、 API リファレンスと深い中にならざるを得ない Java のようなものは到底まともではない。

そしてまともなインターフェースかどうかというのは、なるべく少ないルールで使えること、直観をサポートすること、ユーザが望まないあるいは考えてもいない操作を簡単にはできなくすることで決定されると思う。直観については Tanabe Satoshi さんの強引ニーモニックのすゝめを読めば、何が直観的で何がそうでないのかがわかるだろう。例えば Ctrl + a で行頭に移動というのはどう考えても直観的ではない (無理矢理弁護すればアルファベットの最初の文字だから行頭へ移動だが、多分そこに z があったら Ctrl + z が使われただろうな)。

少ないルールについては、例えば Linux のターミナルも Windows のコマンドプロンプトも、俺の知る限りでは Ctrl + v でペーストが出来ない。ペーストを行うためのショートカットは前者が Shift + Insert で後者についてはわからない (ていうか Windows の話を俺にさせるな! あんな負け犬の話を聞きたがっている奴がどこの世界にいるってんだ!) が、どっちにしろ普段多くの人が使っているキーボードショートカットとは別物だ。もちろん多くのソフトウェアは Shift + Insert でもペーストが出来るのでそっちを常に使えば問題ないのだが、これはやはり良くないことじゃないかと思う。それに Ctrl + Hoge でテキスト操作というのは少ないルールを実現しているしね。

そしてユーザが望まない操作をできなくすることは恐らく一番重要で、例えば俺は Eclipse でデバッガのウィジェットを間違って消してしまって復活させるのに時間を費したという経験がある。でもこれ、普通に考えたらデバッガ見ながらそのインターフェースを弄れることが問題じゃない? Opera のインターフェースでまともだと思うもの一つは、この手のウィジェットを消したり移動させるには右クリックなどのメニューから操作する必要があるって事。そういう風にある場面で主として行いたい操作以外の事を誤ってやってしまえるインターフェースには、相当改善の余地があるといってよい。つまり下手に触れたらまずいものは触れ難くしておけって事で、もしも Web アプリで送信とリセットが近い位置にあるインターフェースを見掛けたら、その開発者というかデザイナーの知性を疑ってよい。

ところで俺はなるべく少ないルールとは書いたが単一のルールとは書いていない。直観をサポートするとは書いたが直観だけで使えるとは書いていない。ユーザの望まない操作を簡単にできなくするとは書いたが禁止するとは書いていない。

どうでもいいが、未だに文書を保存するのに「Esc, :w」と打ってしまうことのある俺は今のところ負け犬でいいです。

15:41

何一つ根拠のないことを書かせてもらうと、 JASRAC 的な意味で著作権にうるさくなればなるほど、その人の創造性はちんけな物になっていく。

21:26

コンコルド錯誤は至るところに存在している。

22:28

今までの習慣から抜け出すのが難しいことの一例。

このサイトでは CSS で段落の頭には空白を一つ入れるよう指定している。でもこれ、どこで段落が分かれているかは段落間の空白で分かることだから、別に要らないような。それで読み易くなってるかなーとか思って他のサイトを ユーザ CSS でもって段落の頭に空白を入れるようにしてみたけど、別に変わらなかった。これは俺の主観なので他の人はどうだかわからんが、まあそんなに劇的に変わりはしないだろうな。サイトを模様替えするとき、覚えていたら書き換えるかもしれない。

もう一つの例。

俺は大学の四年間、大学の最寄りの駅から大学まで歩いて通っていた (片道 30 分弱。良い運動になったと思うよ)。実は俺の使っていた道よりも早く着ける道があったのだが、俺は最初に覚えた道を使い続けた。新しい道の方が少し覚えにくかったが、別に覚えられないわけではなかった。ただ惰性で気が付いたらいつもの道を使っていた。

最後にもう一つ。

俺は何故かこの日記の更新がやめられない。

あ、最後のは単なる中毒症状だ。

Written by Kuwata Chikara
Creative Commons