トップ 最新 追記

誰も褒めてくれないから自画自賛する日記

nu-chon.org  「ぬ」あんてな  「ぬ」wiki  RSS
2000|01|02|03|04|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|06|07|
2012|01|03|05|06|08|09|
2013|01|08|09|
2014|01|03|05|08|12|
2015|01|04|09|10|
2016|01|
Sapporo RubyKaigi 02
Sapporo RubyKaigi 03
RubyKaigi
Sapporo RubyKaigi 2012
RubyKaigi 2013
2013年
9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

2013-09-11 [長年日記]

Land of Lisp 読了

ようやく読み終わりました。途中でしばらく放置していた期間がありましたが、この一週間くらい気合を入れなおし、なんとか読了しました。githubのcommit log見てみたら3/14からになっているので6ヶ月もかかってしまったようです。普通の人なら、もっと短期間で終わると思います、はい。

総評としては、

  • Lispの言語パラダイムに興味がある人
  • Lispにほとんど触れたことがなく、なんとなく抵抗感を持っている人
  • AIに興味があるけど、実際には触れたことのない人

に一度騙されたと思ってトライしてほしい本です。

良かった点

  • 漫画を読みつつ、ゲームを作りながらCommon Lispを学ぶ、という感じで、楽しみながらCommon Lispやその周辺について触れることができました。
  • 先に読み進める前に覚えておく必要がある事物についての説明がとても丁寧で、すんなり理解できました。
  • 公式サイトのコンテンツがステキ
  • 最後に作るゲームが結構本格的に遊べて、しかも簡単なAIのロジックも体験できて、ワクワク感がありました。

残念だった点

僕は原書のKindle版を読んだのですが、

  • Kindle版だと、サンプルコードのインデントが見事に崩れていて、特にLISPのコードを読むにはこれは致命的で、カッコを追うのに苦労しました。実際にはEmacsをつかって写経していたので、対応するカッコの強調のサポートのお陰でだいぶ助かりましたけど。
  • 後半部分のコードにバグがいくつかあり、しかも、公式サイトのErrataにも出ていないためForumを見てみると、同じ事象で悩んでいる人がいたため、自分で修正したりしました。(Forumにも修正したコードを投稿しておきました。 )
  • サンプルのコードでは、データ構造に依存するコードがメインのロジックにも入り込んでしまうため、複雑なデータ構造(ListとかPairが入れ子になって大変なことになっている)になると、丁寧に読んでいても途中で混乱することが多々ありました。

もっと抽象化して、データ構造はアクセサのようなprimitiveな関数の内部でしか意識させないようにして隠蔽してやれば、ゲームのロジックがもっと読みやすくなるのになぁ、と思いました。これはSICPではしつこいほどに取り上げられることですが、その重要さを認識させられました。

その他の感想

個人的には英語のコミックはスラングや省略された表現や、技術書では見ない単語がたくさん出てくるので、読んでてもよくわからなくてちょっぴり悲しかったです。翻訳本を読むとその辺は楽しめると思います。

今、ようやく一冊読み終えて、少し肩の荷が降りた感じですが、まだ中途半端なところで止まっている書籍が2冊ほどあるので、気が抜けません。Amazonのリンクをつけていて知りましたが、この本、ペーパーバックでは、482ページもあるんですね。そりゃ、時間かかりますねぇ。でも、大きな絵(しかも楽しい)が多いので、ボリューム的には、ページ数から受けるイメージほどではありませんでした。

写経の成果

本家のサイトから書籍中のコードをすべてダウンロードできるので、あまり重要ではないですが、 http://github.com/kaznum/land_of_lisp_exercise に写経の成果物を公開してあります。僕が気が付いたバグの修正も反映済みです。


2013-09-26 [長年日記]

Test-Driven JavaScript Development 読了

結構有名な本でなのですが、ようやく読み終わりました。とても良い本でした。

本書では、Javascriptでのテスト駆動開発の方法についてサンプルを書きながら学んでいきます。

テスト駆動開発のメリットや気をつける点についても、簡潔かつわかりやすい言葉で書かれているので、テスト駆動開発自体の経験が少ない人にとってはUnit Testやテスト駆動開発の利点や注意点が身につきますし、それなりに経験がある人にとっては脳内整理ができて、チームのメンバーとTDDのノウハウを共有するための便利な「言葉」が得られるのが良いなぁ、と思いました。特に最後の2章は、本書に書かれていたことやそれを補足するテスト駆動開発に関するエッセンスがまとめられており、バイブル的に使えそうです。

もちろんJavaScriptのようなイベントが重要な要素となる言語のテスト手法も学べます。僕はいつも手続き型のコードのテストばかり書いているので、新鮮に感じましたし、とても勉強になりました。

その他、とても良かったと感じた点は、本書の後半部分で作り上げていくサンプルプロジェクトがクライアントMVCの仕組みをイチから作っていくもので、ここでクライアントMVCの内部的な動きに触れることができ、興味深かったです。

Node.jsも使っていますし、それもとても嬉しかったです。

この本、原書(英語)は、無料で手に入るんですよね。この本の英語は我々日本人には結構読みやすい英語でしたので、英語が苦手な人もトライしてみるのも良いと思います。

http://it-ebooks.info/book/2134/

それにしても、Githubの写経レポジトリのlogを見ると、

 commit cf9cef2004015ab993788d97d8d600fe4f0eff82
 Author: Kazuya NUMATA <xxxx@example.com>
 Date:   Wed Aug 29 04:38:14 2012 +0900
   initial commit

となっているので、この本を読み終わるまでに1年と1ヶ月かかったことになります。

ただ、

 Date:   Wed Jan 16 09:41:12 2013 +0900

と、

 Date:   Fri Sep 13 08:39:08 2013 +0900

の間に空白期間が8ヶ月あり、なんというか、随分ご無沙汰してたのに良く帰ってきたなぁ、という気分です。(苦笑)

写経しながら読み進めましたが、幾つかサンプルコードで気になった点(上手く動かなかった箇所)があったので、それも修正したものも付け加えたものを一応、Githubにさらしておきます。

本家のサイト

テスト駆動JavaScript(Christian Johansen/長尾高弘) Test-Driven JavaScript Development (Developer's Library)(Christian Johansen)


2000|01|02|03|04|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|06|07|
2012|01|03|05|06|08|09|
2013|01|08|09|
2014|01|03|05|08|12|
2015|01|04|09|10|
2016|01|

2013年
9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Copyright (C)2005-2015 nu-chon.org.