エラーメッセージについての愚にもつかない考察
Webアプリの一行入力欄で、入力が制限の長さを超えたときに出すメッセージを考える。
例0。「タイトルが制限文字数を超えています」
例1。「タイトルは半角255文字以内で入力してください。」
例2。「タイトルが長すぎます。120文字以内でお願いします。」
例3。「ぎゃー!タイトル長すぎ!あと28文字減らしてちょ。」
さてこの中だとどれが好きですか?
とりあえず例0は制限が何文字なのか分からないのでアウト。読点がついていないのもホスピタリティー上よくない。
例1は一見普通だが、「半角」という表現を使っていいものかどうかは怪しい。半角と全角が混ざっていたらどうカウントするの?それに、255文字ってなんでそんな中途半端なの?データベースに入る文字数が255だからといってユーザに課す文字数制限が255である必要は全くないだろう。
加えて、この一文はおそらくユーザの脳内でこう変換される。「タイトルが長すぎるのか」
そこで例2に着地する。タイトルが長すぎるという事実を単刀直入に突きつけ、その補足として120文字以内で入れろということを明確にする。文字数もキリがよくてなんとなく納得できる。
例3考えようによっては例2よりもなお良い。冒頭にやや余計なものがくっついているが、長すぎることと短くしなければいけないこと、どれだけ短くしなければいけないかが全て伝わる。「不適切だ」という声がもう聞こえてくるが、では適切とはなんなのか。落ち着いて例3のメリットとデメリットを挙げてみると次のようになる。
メリット:シンプルである。伝えるべきことを伝えている。カジュアルで楽しげである。
デメリット:ネットバンキングなどのシステムには向かない。
ということは、ネットバンキングなどのシステムでなければ例3を採用すべきだということだ。というのは言いすぎだが、例3を「不適切」だと即座に決め付けてしまうのはいくらか性急、判断に適切さを欠いているのではないだろうか。
Antで任意のバッチファイルを実行する
exewrapというソフトを使うと、jarファイルを実行可能な.exeファイルにラッピングしてくれる。
このソフトはコマンドラインで使うのでバッチファイルを書いておくのが現実的なのだが、AntでJavaアプリをJarにパックした後で自動的にexeへの変換をしてくれるとと素敵だ。というわけでそのやり方は以下のとおり。
Exewrap.bat
c:\programs\dev\exewrap\exewrap.exe -g MyApp.jar
Antのbuild.xml
(略) <target name="exewrap" depends="packtojar"> <exec executable="cmd"> <arg value="/c"/> <arg value="Exewrap.bat"/> </exec> </target>
antではexecタスクを使うと任意のコマンドを実行できる。executable属性で実行ファイルを指定するのだが、バッチファイルの場合はcmdを実行し、それに /c batch.bat という形でパラメータとしてバッチファイル名を渡す必要があるようだ。
これはもちろんWindows環境でしか動かない。他のOSでexecタスクを使う場合についてはAntマニュアルで説明がある。
ちなみにexewrapではJavaアプリからサービスとして動くアプリまで作れてしまうので面白い。
現代美術?
Marcel Duchampは美に死をもたらした。
それまでの美術においては美そのものが美術の中核をなしていた。表現されるもの自体が美しい必要もなきにしもあらずだったが、それをいかに美しく表現するかに芸術家は腐心してきた。
20世紀以降の「現代美術」と呼ばれるものにおいては美よりも意味が専ら興味の対象である。であれば僕が現代美術の全般の理解から遠ざかっていたのも当然だ。それを美術と呼ぶこと自体に問題があるではないか。
Re: Yahoo!がPHPエンジニアを雇う時に聞く質問
20問ほど正解してしまった。
そろそろPHPから離れたほうがよさそうだ。少なくともPHP6が出るまでは。
しかし、こういう質問で採用される職には就きたくないなぁとつくづく思う。使い古されて捨てられるのが目に見えるようだ。業界を知らないから憶測の域を出ないが。