月別アーカイブ: 2012年4月

出来事だけ書かれていると、「何で?」という疑問でモヤモヤする

他人が書いたソースコードを読んでいて、ふと思う。ソースコードにコメントを残すときにメソッドや一連の処理の前に、そこでどういう処理をしているのかということを書くのは誰でも良くやるけど、(極端に汚いコードを書いている場合は例外として)実はあんまり役にはたたないと思う。

なぜそういう処理をしているのか、なぜそういう実装になっているのかという理由やその背景が書かれていないと、コードだけ見てその意図を理解することが途端に難しくなる。処理の理由がわからないから、結果としてその箇所には手を入れられなくなってしまう。

ブログやツイートのように他人も読む文章はもちろんのこと、たとえ日記のように自分しか読まないものでもあっても同じことが言えると思う。例えばこういうことをした、あるいは誰々にひどい言葉を投げかけてしまった、などといった出来事やあるいはそこから思ったことだけが書かれていると「何で?」という疑問が解消されずに何だかモヤモヤする。

なまじ書いているときは背景などの記憶が鮮明のためついつい忘れがちだけど、ソースコードも文章も、なぜそう感じたのか、なぜそういう行動を取ったかという背景や理由を書き残しておかないと、いずれ行動の意味がわからなくなってしまう。


アドバルーンによる空中撮影

会社に向かって歩いていると、駅前のマンション建設予定地のちょうど上空あたりにアドバルーンが浮いているのが見えた。そんなに珍しいものじゃないんだろうけど、何だかちょっと違和感を感じた。

普通のアドバルーンよりも一回り以上小さく、およそ大人が手を広げた位のサイズ。飛んでいる場所も明らかに普通のものよりも低いところだし、そもそもやたらフラフラしていて今にも落ちてきそう。もしかして上空の風が強くて飛ばされそうになっているのかもしれないな、と思いながら駅の方へ歩いて行く。

近づいていくにつれて、アドバルーンが黒と白の紐で繋がれていて、その先を二人の人が引っ張ったりしながら細かくコントロールしていたのに気づいた。気球の表面にはサンシャインIIと書かれている。あとで調べてみたら、株式会社サンシャイン という会社のサービスみたい。気球による空撮を専門とする撮影会社。

今までマンションとかを建てた後の、日当たりや景色などは予想や計算で出しているとばかり思っていたけど、そうじゃなかったんだな。これはテストマーケティングやABテストのように、頭で考えててもわからないことを実際にやってみてその結果で判断する、という考えと同じだな。

ビルを建てるときには試しに小さいビルを建ててみるというわけにもいかないから、そのかわりとして実際に上空まで行ってみて、そこから空撮していたとは。そういう発想は全然思いつかなかった。


【移動】Mac版Evernoteからランダムにノートを選んで表示

今まではEvernoteのユビキタスキャプチャ用のノートブックからノートを定期的にピックアップして見返していましたが、偶然 Evernote からランダムにノートを選ぶ(AppleScript) という記事を見つけました。

これはイイですね。今までは適当にノートをピックアップしてたため、どうも偏りがちだったんですが、これならランダムにできる。

tell application "Evernote"
set query to query string of window 1
set notelist to find notes query

repeat 5 times
set rand to random number from 1 to length of notelist
open note window with item rand of notelist
end repeat

end tell

どうせならランダムで5つピックアップして欲しいんで、こんな感じにループするようにしました。いやー、便利になったな。


郵便ポストとして使うEvernoteの共有ノート

夫婦で共有する情報を置く場所が欲しいと言うので、evernoteの共有フォルダを用意して、奥さんに自由に使わせてみた。

少し経ってから中を見てみると、週末のスケジュールだったり買い物のメモだったり、時には何か買って欲しい物とかが書かれていて、時々中をのぞいてみるのが楽しみになってきた。

この感じは何かに似ているなと思ったら、小学生の時に学研の教材が届くのを待っていた時の感覚に似ていることに気づいた。まさに「まだかなまだかな~、学研の、おばちゃんまだかな〜」というあの歌の通り。そろそろ来るはずなんだけどまだ来ないのかな〜、と待ち遠しく待っていた気持ちを思い出す。

夫婦や恋人同士、あるいは恋人未満の友達でもいいんだけど、共有フォルダを二人のコミュニケーションに使ってみるというのはなかなかいいアイデアだと思う。

親と子供、もしくは自分と親の間でもいいし、何人かの仲間同士でもかまわない。メールのように相手に対して直接何かを伝えるというわけでもなく、今日あったことや感じたことなどを気軽に書いてノートとして置いておいたり、仲間内の雑記帳のようにみんなで好きに書く場所という使い方もある。何ならサイトや画像をただクリップしたものだけでも十分。きっとそこからコミュニケーションが始まる。

ネット上のコミュニケーションは、メッセンジャーやLINEのようなリアルタイムのコミュニケーションの方向へどんどん進んできたけれど、いつ何が入ってくるかわからないというのが、逆に価値があるように思える。

待ち遠しく待つ気持ちや、不意に家族から送られてきたハガキを楽しむような「あの感覚」がそこで再現できるんじゃないかな。


時間の衝動買い

休みの夜になるといつも、一日を無駄に使ってしまったような、もったいないような気持ちになる。確かにそういう時間の使い方をしてしまう日もあるけれど、実は結構充実していたような一日を過ごした時であっても、この気持ちはあまり変わらない。

今日やらないといけない用事は全て済ませた。でもあまった時間は何に使ったのか良くわからない。

買わないといけないものは買った。でも余ったお金で余計なものを衝動買いしてしまい、何でそんな物を買ってしまったのかと後悔するのと同じ気持ちなのかもしれない。

時間をその場その場でしょうもないことに使ってしまい、夜になる。一日の時間を使い切ってから振り返ってみると、後悔するような後ろめたいような気持ちになる。

たぶんこれは時間を何に使って、その結果がよく見えないからじゃないだろうか。「自分の時間」というものを使ってそのかわりに手に入れたものが目の前で形として見えたら、この気持ちはどうなるんだろうか。もっと落ち込んでしまうかもしれない。

頼られる喜び

会社でも家庭内でも、人に頼られるとそれだけで喜びを感じる。

知識や意見、あるいは労働力。その人に不足しているものがあって、「自分はそれを助けることが出来る、と思われている」から喜びがあるのかと思ったけど、どうもそうではないみたい。

質問に対して単に話を聞いてあげる。たとえそれだけで勝手に自己解決したとしても、助けてあげられた感じがして少し嬉しく思える。だから自分が実際に手を動かして何かをやったかどうかとは関係無いようだ。

その人が「何か問題がある」状態から「解決した」状態へと変わる。その時に自分自身が何らかの方法で関わっていて、かつ「解決した」状態へと変わる時に何らかの役割を果たしてさえいれば、それでいいと思う。


手のつけやすさ

品質やサービスレベルの高さは、日本の売りの一つと言われている。例えば野菜や果物などの生鮮食品。例えば色や大きさなどが均一で、不揃いなものが一切無いイチゴのパックなど。見た目もそろって綺麗ではあるんだけど、海外のスーパーなどを見慣れると、ちょっと過剰品質じゃないかと思う時がある。

高級レストランなどのように雰囲気や見栄えなど、味以外も求められる場は別だけど、普通のスーパーで得られているような普段使いのものの場合、「これで勝負する」という目的ありきでは行動していない。電車の社内アナウンスでのちょっとした遅延の謝罪なども同じだけど、手っ取り早く手をつけやすい所に手をつけているだけではないかと感じる。

戦中の日本軍の話を読むと、あちこちで小さな勝利を重ねているだけで、何目的の戦いなのか、つまりそこで勝利をすると目指す目的・ゴールに対してどういう意味があるのか、という戦略がまったく無かったということが書いてある。

「それは何を目的としているのか」ということを常に意識してないと、手段がいつの間にか目的に変わってしまう。時間をかけて見栄えのいい資料になってるけど肝心の中身がイマイチで、何の役にも立たずに使い捨てられる資料とか、何か目的があって起業したはずが起業していることそれ自体が目的となってしまい、いつの間にか受託開発だけをひたすらこなしているだけ、といった例をいっぱい見た。

ビジネスをやるときも同じことが言えると思う。目先のコストを節約することは利益を確保するためには重要だけれど、適正なコストを使うことで、利益をさらに拡大することが出来る。その出費が何目的なのかということを意識しないと、コストを掛けるのが怖くなるためにお金を使うことができなくなる。

これって何目的だっけ? ということを気にする視点を持つようになったら、周りのものの見方が変わった。ただ、本質的じゃなく誰にとっても何の得もないズレた方向のサービスに気がつくようになってしまい、モヤモヤイライラするようになったのはデメリットかもしれない。

 


ギャップがあるから怒りが生まれる

駅のホームで、何が原因かわからないけれど物凄い勢いで駅員に向かって怒っている人を見た。その後、電車に乗るために並んでいたら、乗り込む直前に横から割り込みしてくるおばさんが居た。ムカつく。

ふと、人はどういう時にムカついたり怒ったりするのか気になった。

・失礼な店員に当たった時。
・電車がえらく遅れた時。
・図書館で騒いでいる子供が居た時。
・自分の欠点などを指摘された、つまり図星を付かれた時。
・やろうと思っている時に、やれよと言われた時。
・ルールを守らない人がいる時。
・表示が遅いサイトにアクセスした時。

「自分が期待/想定している状況」と「現状」とにズレがあるときに、人は怒るのかもしれない。

いったん冷静になる。別のことを考える。意識を別に向けることで一時的に怒りを鎮めることはできるけれど、意識を元に戻すと、怒りは戻ってきてしまう。現状を変えることは難しいけれど、自分の期待値や認識の方を変えることは出来ないだろうか?

昔、7つの習慣で読んだ話。電車の中で大騒ぎしている子供を注意しない親。周りの乗客は子供を注意せずにぼーっとしている親に対して、イライラしながら話しかける。親はその時初めて、子供が騒いでいることに気づいて答える。

「今朝、妻が亡くなったばかりなんです。小さい子供と二人、これからどうしていけばいいのかわからないんです」

周りの認識が一気に変わる。あんなにイライラしていたのに、一気にお悔やみの気持ちに切り替わる。

「電車の中では騒がない」という認識とギャップがあるからイライラする。でも妻が亡くなって茫然自失ということがわかった瞬間、その認識が変わる。騒いでもしょうがないという認識に変わったことで、騒いでいる現状との間に合ったギャップが埋まり、怒りがおさまる。

これを意識して起こすことはできるだろうか? 例えば何かにイライラさせられた場合、そんなものだ、と思うことは出来るだろうか。

現状に対して、逆に期待値の方を合わせに行くとどうだろうか。例えば順番待ちの列に割り込まれた場合、そもそもどんな手を使ってもいいから乗り込んだ者勝ちなんだ、と思うようにする。

怒りはおさまるかもしれないけれど、なんかやだな、そんな社会。


【移動】PHPから任意のbacklog APIを呼び出す

最近、Backlog を会社で使うようになりました。まだベータ版とは言え APIがあるようなので、PHPからAPIへのアクセスを試してみました。

Backlogアプリケーション を見てみると PHP用のライブラリがありましたが、2009年から更新されておらず、また対応しているAPIの数が圧倒的に少ないようです。ただ中身を見ると単なるXML-RPCコールに過ぎないので、こんな感じの関数を追加して任意のAPIを呼び出せるように改造しました。

% diff -u org/Backlog.php Backlog.php
--- org/Backlog.php     2009-05-20 12:05:53.000000000 +0900
+++ Backlog.php     2012-04-08 11:46:09.434337869 +0900
@@ -75,6 +75,16 @@
         $this->client->setCredentials($user, $password);
     }

+
+    public function callAPI($method, $params = NULL) {
+               if ($params == NULL) {
+                    $message = new XML_RPC_Message(self::PREFIX . $method);
+               } else {
+                    $message = new XML_RPC_Message(self::PREFIX . $method, $params);
+               }
+               return $this->_send($message);
+    }
+
     /**
      * 参加プロジェクトを取得する
      *

APIの呼び出し自体は非常に簡単です。ID/Passwordを指定してライブラリのインスタンスを作成して、メソッドを呼び出すだけです。

<?php
require_once 'Services/Backlog.php';

define('FQDN', 'hogehoge.backlog.jp');
define('ID', 'apiuser');
define('PASSWORD', 'password');

$backlog = new Services_Backlog(FQDN, ID, PASSWORD);

echo '<pre>';

# getProjectsの呼び出し
$result = $backlog->callAPI('getProjects');
print_r($result);

# getProjectの呼び出し
$params = new XML_RPC_Value('TESTProjectKey', 'string');
$result = $backlog->callAPI('getProject', array($params));
print_r($result);

# countIssueの呼び出し(ProjectID=12345, 状態=未対応、担当者未設定)
$params = array();
$params['projectId'] = new XML_RPC_Value('12345', 'string');
$params['statusId'] = new XML_RPC_Value(1, 'int');
$params['assignerId'] = new XML_RPC_Value(-1, 'int');
$result = $backlog->callAPI('countIssue',
  array(new XML_RPC_Value($params, 'struct')));
print_r($result);

echo '</pre>';

当たり前ではありますが、管理者権限じゃない限り、任意のプロジェクトの情報などを取得することはできません(人間ができないことはAPIでもできない)。

いずれは自動投稿なども試しては見たいですが、最初はプロジェクトや課題の状態を表示するダッシュボードのようなものが作れれば十分なので、ビューアー権限でAPI用のユーザ(例えばapiuser)を作成して、全プロジェクトに追加するという運用にしました。


映画館でアーティストを観てきた

半年ぶりぐらいに、久々に映画館で映画を観てきました。

実は マーガレット・サッチャー 鉄の女の涙 を観るはずだったんですが、開始時間を間違えてしまい、映画館に着いた時には既に始まってしまっていました。その代わりとして、たまたま開始時間が近かった アーティスト を観ることになりました。

事前知識がまったくなかったので、始まるまでまさか白黒で、かつサイレント映画仕立てだったとは思いませんでした。映画自体はストーリーは良くある内容で予想できる展開、結末でしたが、音がすごいです。厳密に言うと映画において音の果たす役割・影響を物凄く感じさせられました。

実際の音は基本的にはBGMだけで、効果音も台詞もありません。そのため、たまに無音になった時の緊張感が物凄いです。映画の途中でボリボリ・ガサガサ音を出している他の観客も含め、無音になった時には映画館全体が完全に無音になり、全体の一体感のようなものを感じさせられました。

当時の人達とは逆に、トーキーしか知らないでサイレントを観たわけですが、サイレントにはサイレントの良さがありますね。台詞はここぞと言うところでしか出ない上に台詞だけが画面に表示されるため、ほとんどの場面ではセリフ無しです。役者には演技力が求められますし、また観客側にも想像力やその時の状況を汲み取る力が必要とされます。

延々とサイレント映画だったので、最後に音声が聞こえた時には、サイレントしか見たことがない観客がトーキーを観たときの新鮮さや驚きのようなものを追体験出来たような気がします。

ただ、サイレントの役者はその圧倒的な演技力でトーキーでも活躍できないんだろうか? という疑問点は残りました。