読んでいたのだが、中断して内容を忘れてしまっていたので最初から一気に読み直した。Lispのアドバンスドなマクロのテクニックが解説されている非常にためになる本。マクロを定義するためのdefmacro自体を拡張するマクロや、aletやalambdaといった代表的なアナフォリックマクロ、パンドリックマクロでクロージャを開くといったLispマクロならではの技術が詰まっている。これらのマクロに共通して見られることだが、本書は一貫して構文を共通化することの重要性を説いていたのが印象的であった。lambdaフォームにはシャープクォート#'をつけないとか、スペシャル変数には耳当てをつけないとか。筆者の主張としては最初から最後までLispを賛美するのだが、客観性に欠ける部分があったり、効率性に関しては他言語との正当な比較をしていない等、気になるところがないわけではないが、それ以上にマクロの面白さに引き込まれて読んでいて楽しかった。Lispと並び、個人的にはかなりのヒット本。行列積が必要になったので書いてみた。最初は配列に対する操作にしようと思ったけど、手っ取り早く使いたかったのでリストにした。loopマクロを使うとsumしてcollectするだけだから簡単に書けてよい。Hexo年末年始にOctopressからHexoに移行したときのメモ。Octopressで書いていたMarkdownの記事をHexo用のフォーマットに変換するスクリプトを書いた。"$i".markdown.newdoneHexoは1行目に---は書かないらしいので削除している。comments等のタグもHexoでは不要なので削除し、OctopressのcategoriesはHexoではtagsとして扱うようなので変換している。最後に、Octopressでつけていたtitleのダブルクォーテーションを削除している。*.markdown.newの内容が問題なさそうであれば*.markdownにリネームしておく。各記事のPermalinkの設定もOctopressに合わせる必要があるが、これはHexoの_config.ymlに設定することで対応できる。blog/:year/:month/:day/:title/先頭のblog/がミソで、最初これを設定していなかったが故にOctopressとPermalinkの構造が変わってしまい、記事へのリンクが切れてしまった。(そしてしばらく気がつかなかった...)テーマはCodelandというテーマをforkして、右のサイドペインにAboutウィジェットが表示されるようにしてみた。forkしたテーマはGithubに登録しておいた。2015V8V8をソースコードからビルドしてみるテスト。V8のビルドにはdepot_toolsが必要なのであらかじめcloneしておく。https://chromium.googlesource.com/chromium/tools/depot_tools.gitcloneしたディレクトリをPATHに追加しておく。下記のコマンドが動作すればOK。gclient続いてV8のソースコードをcloneする。あとはmakeするだけなのだが、コンパイラにclangを使うにはあらかじめ次のように設定しておく。nativeでビルドが始まる。makeのターゲットにnativeを指定すると、ホストマシンのアーキテクチャをターゲットとしたリリースビルドが指定される。Proで大体25分くらいで完了した。結果はoutディレクトリに出力されており、例えばout/native/shellを実行するとV8を組み込んだサンプルシェルが起動する。shell]>以上の手順含め詳細は下記サイトに説明がある。2015Hexo今までブログはOctopressという静的サイトジェネレータを使っていたが、毎回サイトの生成に時間がかかるためなんとかしたいと思っていた。探した中で良さそうだったのがHexoというNode.jsベースのジェネレータ。サイト構築までの手順も少なく、処理速度もそれなりに速くて快適だ。アクセスしてプレビューが見れるようになる。new_post["title"]よりはだいぶ簡潔になっている。構成もシンプルなのでテーマのカスタマイズもやりやすい。_config.ymlの設定がグローバルなJavaScriptオブジェクトとして扱われ、EJSテンプレートから参照できるというコンセプトもシンプルでいいと思う。dですぐにdeployできる。いうわけでしばらくはHexoを使ってみます。いうブログアプリを作ってみました。用に移植したものになります。