2010年4月22日木曜日

山本陽平君の「Webを支える技術」

やっと昨日読み終えました。素晴らしい労作です。Web開発に関わる人は必読の本です。

昨今これだけWebが普及し、Webサービス開発が注目されている割には、Webに関するまとまった良い資料はなかなかありません。実際、昨年の講義でWebを取り上げたときにも、下調べと講義資料作りにかなり苦労しました。

URIにせよHTTPにせよAtomにせよ、簡単な紹介か、さもなくば仕様書という状態ではないでしょうか。中間がないのですね。また、これら個別の技術を俯瞰し、Web全体を説明する資料というのは、私の知る限り、W3CのArchitecture of the World Wide Web, Volume Oneしかありませんでした。この文書はもちろん貴重ですが、最初の導入の資料としては、記述が細かすぎるのと、どうしても関連仕様を芋づる式に参照しなければならないのが欠点であったように思います。芋づるをたどっていくときりがないので、どこかで打ち切らなければならないわけですけど、どこで打ち切るかの見極めが難しい。特にWebの場合、開発の現場での使われ方というのが要不要を決定する主要因になるように思っていて、私のように、仕様から技術を眺めてしまいがちな大学教員からすると、なおのこと見極めが難しいのです。

yohei君の新著「Webを支える技術」は、上に述べた空白地帯を埋め、Webを俯瞰することのできる、素晴らしい書籍です。技術者としてWebに関わるときに最低限知っておいてほしいことを、簡潔かつ分かりやすくまとめています。

何が書かれているか、も大事ですが、それと同じくらい、何が書かれなかったか、何が省かれたか、その取捨選択の適切さが、現場を良く知っているyohei君ならではの視点であり、本書の素晴らしい点です。取捨選択の過程で、どれほど芋づるをたどり、また捨てていったのか、その労力を想像するに、頭が下がる思いです。(自分も苦労しただけに…)

もう一つ素晴らしいのが、バックボーンに情報科学の視点がちゃんとあるところです。表面上あまり出てきませんが、11.2節のセマンティクスの説明とか、17章のリソース設計の辺りが、ちゃんと情報科学を学んだ人ならではの書き方だなあと思いました。こういう記述があると全体が引き締まった感じがするのは私だけでしょうか。

理論と現場の両面から長くWebと関わってきたyohei君だからこそ書けた本だと思います。


2010年4月15日木曜日

初めての人のためのLISP [増補改訂版] (竹内郁雄)

初めての人のためのLISP[増補改訂版]
竹内 郁雄
翔泳社 (2010-03-10)
売り上げランキング: 1779
おすすめ度の平均: 5.0
5 この本を読まずしてなんとする!
5 Lispのおすすめテキストです

なんといってもあの竹内先生の書いたLisp本ですから、買わねばならんだろう…と思って購入しました。ぱらぱらとめくってみてピンと来たので、他の積ん読本を差し置いて読み始めて、一気に読んでしまいました。

恥ずかしながら、旧版は読んでません。もともと「Computer Today」誌に連載された頃(1983年)は中学生から高校生あたりで、プログラミングには興味すら持っていませんでした。大学に入ってからも実験はFortran, Pascal, PL/1, アセンブラあたり、研究室でもC言語、講義でも関数型言語に触れる機会はなく(大学院でラムダ計算の講義があったんですけど、初回をやむを得ず欠席したら輪講形式になっていて、入り込めなかった)、旧版が出た頃(1986年)は、Lispは関心はあっても縁がない言語でした。そんなわけで、この有名な本に触れるのは今回が初めてです。

オビに「天下の奇書」とありますけど、まさにその通りですね。竹内先生の語り部の部分が存分に発揮されてて、実に面白い読み物になってます。想像ですが、竹内先生の講義って、何をやってもこんな感じだったんじゃないかなあ。

講義を連想したのにはいくつか理由があります。まず、17章構成で、講義の標準回数(15回)に近いこと。17章のうち、最後の章は増補改訂版のときに加筆された部分で、さしづめ、竹内先生の最終講義といったところでしょう。そうすると、残りは16章。「15回講義やったんだけど、終わらなかったから、もう1回補講するわ」という感じです。もう一つは、本文中の随所に出てくる、「細かいところはいいから、Lispの心をつかんでほしい」というメッセージです。これって、自分が講義をやってるときにいつも思うことなんですよね。講義という場の性格上、学生に飽きさせないように内容を構成するというのは重要なことで、そのためには詳細に立ち入らなかったり、場合によっては多少ゴマカシを交えて話を単純化する、ということをよくします。竹内先生の手法はまさにそれなんだろうと思いました。

そういう同業者の視点で見ると、この本が偉いなあと思うのは、Lispの泥臭い部分をあえて盛り込んでるところです。理論的な内容ほど講義はやりやすくなり、泥臭い話ほど講義はつまらなくなりがちです。自分もそれでいっぱい失敗してきました。竹内先生は、そこを面白い話術で軽々とクリアしてるんですよね。すごい語り部の能力だなあと思いました。

一度、竹内先生の講義を受けてみたかったなあ。


2010年4月13日火曜日

遠距離通勤生活4週目

明石に引っ越してから3週間経った。自宅は明石、職場は総社ということで、新幹線と在来線による遠距離通勤生活も、はや4週目である。岡山駅での接続がよい組合せを見つけたので、実質、自宅から職場まで1時間半というところである。

よく「1時間半も通勤にかかるのでは、大変でしょう?」と言われるのだが、実はそうでもない。いや、むしろ、この1時間半は誰からも干渉されない貴重な時間であって、ここを有効に活用しないともったいない、という気持ちのほうが強い。結果として、「この通勤時間を最大限に生かすには、それまでに何をしておけばよいか?」とか「仕事場に着いたらすぐに仕事に取りかかれるようにするには、この時間に何をすればよいか?」というような考え方をするようになってきた。例えばフィードリーダ(Google Reader)のチェックをするなら、あらかじめフィードのタイトルだけ見て面白そうな記事をEvernoteに全部放り込んで、オフラインの通勤の間に読む(このときにタグ付けも行う)といった感じである。引っ越す前からOmniFocusを使ったGTDを実践しているのだが、それが活きている。

ほかにも、いろいろ生活パターンが変わった。プラスの効果としては、読書量がぐっと増えてきた。それに、出勤・帰宅の時間がほぼ決まって、それによって生活にリズムが出てきた。一方で、ブログの更新や物書きをいつどういう形でやるか、その辺りの生活パターンはまだつかめていない。ブログの更新が滞ってるのは、そのせいもある。

私の場合は、自家用車で近距離通勤するより、列車で遠距離通勤するほうが、性に合っているみたいである。

追記: Google Readerから記事をEvernoteに放り込むのは以下の記事を参考にしている。