Python,Ruby,PerlのMicroframework
Scalaプログラミング入門 6-9章
一通り読んだ。
次の2章は内容がついて行けないとこがあったので、また読み返すことになると思う。
- 6章 アクターと並行処理
- 7章 トレイトと型、アーキテクトの秘密道具
7章でドウェムジーのRubyのやつをScalaに移植するっていう話があったんだけどRubyの元ネタ知らんかったので。
8章はパーサーで、よくある四則演算だったのでわかりやすかった。後半でJSONパーサ書いてtwitterにアクセスするというサンプルがあったのだけど、後で手動かしてみる。
入門ってかいてあるけど、最初に読む本としてはつらいかも。Scalaスケーラブルプログラミングのほうが入門には適してる。
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)Martin Odersky,Lex Spoon、Bill Venners
インプレスジャパン / ¥ 4,830 ()
在庫あり。
ゼロから学ぶOAuth
hikiにコードを貼付けるためのちょっとしたコマンドのメモ
markdownだとspace4つだがhikiの場合はspace一つなのでrubyで
#!/usr/bin/env ruby
File::open(ARGV[0]) {|f| f.each {|line| print " " + line}}
コードを貼付けるためにスペース入れたりするのは結構めんどうなのではてなの記法はなかなか便利(ただ忘れやすい)
wikiの記法をつくる記法(metaな記法)があるとよいんではなかろうかとか思う。wiki記法ってDSLみたいだもんね。
amazon認証プロキシ
amazonの認証に対応するためにhikiのバージョンを0.8.8.1にあげたついでにamazonプラグインを覗いてみたらプロキシで対応していた。
drkcoreのほうはNet::Amazon使っているので、ローカルでSignature組み立ててるんだけど、wikiりたいだけのユーザーがわざわざsecret_keyとか取得すんのもあほくさいからwikiみたいのはプロキシーでいいのかと。
Rubyによるデザイン・パターン
気になる本。
Bolic
再帰下降パーサを利用して、Unicodeを利用した言語を実装
- 式と文の違い
- 変数の実装
というわけで、一通り読了。Rubyの初級者向けの本としても良かった。コードの解説が丁寧だったので、たいしてRubyを知らなくてもすっと入っていけた(素晴らしい!)
言語実装的には、特にスタック型の言語を実装してみたおかげで、なんでも継続がかなり理解できて、満足の一冊。
あと読み終えたら、SICPで飛ばしていた、レジスタ計算機の実装のところがちょっと気になり始めた。
さらに、実践Common Lispも読んでおくかなぁという気にさせられた。
Starry
ゲノム言語ATGC
プログラムとして実行できるfasta形式のプログラミング言語を作ってみた。いちおうチューリング完全(なはず)。
>HELLO_WORLD
ccggaccgcg gggcaccgcc ggcggaccgc cgccggaccg cccggcgacc gccgccccac
cgcccgccca ccgcggggga ccgccgcccc accgccgccg gaccgccgcc ggaccgccgg
cgcaccgcgg cgggaaccga cacatccata ccacagaacc caaaa
これはatgcというコマンドで解釈して実行します。
$ bin/atgc hello_world.fasta
Hello world!
ゲノム的にGCリッチなほうがいいだろうということで0と1にg,cをそれぞれ割り当てて数字を表現するようにしてる。exitコマンドには終止コドンを割り当てようかとも思ったが、なんとなくaaaにしてみた(polyA)。
しかも(というか当たり前だけど)blastでホモロジーサーチがかけられるし、multifastaにしておけばソース管理もできるうえに、データベース化してインデックスはっておけば、NCBIのツール群でコマンド一発で取り出せる。
ただ今回作ったHELLO_WORLDの配列はblastnだといい感じにヒットしなくて悲しかったので、blastxかけたらブラックコットンウッドからなんかひっかかった。
>gb|ABK94795.1| unknown [Populus trichocarpa]
Length=229
Score = 33.5 bits (75), Expect = 5.9
Identities = 14/21 (66%), Positives = 15/21 (71%), Gaps = 0/21 (0%)
Frame = +1
Query 100 GPPPDRRRTAAGTDTSIPQNP 162
GPPPDRRRT GT S P +P
Sbjct 209 GPPPDRRRTRQGTTKSEPASP 229
コンパイラ側のソースはこんな感じでほとんどWhitespaceだ。
VMとかは特にいじってないのでEsotericの本を参照のこと。
VMを使った中間言語方式の強力さを理解した。
Brainf*ck
Brainf*ckの実装を通して、チューリングマシンに対する理解が深まった。
この本おもしろいですのう。



Scalaプログラミング入門
パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)
Rubyによるデザイン・パターン
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
計算機プログラムの構造と解釈
実践Common Lisp