Entries from 2008-10-01 to 1 month

ダン・シモンズ

書棚からハイペリオンを取り出し再読。今週は雨のため電車通勤のお供に。これほどまでに面白かったか?というのが正直な感想。すっかり魅了されてしまう。一度読んだはずなのだが全く覚えていないのは得。続きを読もう。

Fasl で幸せ

プリコンパイルして Mosh バイナリに埋め込まれる コンパイラ パターンマッチライブラリ psyntax を全て Fasl で読み込むようにした。 g++ でのコンパイル速度、Mosh 起動時のライブラリ読み込みともに速くなり幸せ。前者は予想していたが後者は予想外のうれ…

今日の復習

WEwLC 6章時間がない 10割 WEwLC 3章 Sensing and Separation 3割 WEwLC 15章 僕のアプリはAPI Callだけ 10割。 Sensing and Separation 忘れているなあ。

22. I Need To Change Monster Method And I Can't Write Tests For It - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 22章 I Need To Change Monster Method And I Can't Write Tests For It。 マインドマップから再構成したまとめ モンスターメソッドを変更したいんだけどテスト書けないよ。 モンスターメソッドの種類 Bulleted Meth…

Gauche と Mosh の read/write の違い

はまったのでメモ。 #\null と #\nul |...| と ... :hoge Gauche ではキーワード。Moshでは識別子 (import (srfi :1)) 的なときに注意。

Re: 自分との協調

現在の自分だけでなく、明日の自分、明後日の自分、という大勢の自分と力を合わせよう、という共同意識なのではないか。他人との協調と同様に、人間は自分とも協調しなければならない。いつか気が変わるようなことがあるが、そこでどれだけ説得できるか、と…

今日の復習

今日はなぜだかさぼりたい気持ちでいっぱいだったが、結果としてはいつも通り。 WEwLC 17章 僕のアプリは構造なんてない 前回は10割だったが1週間経って0割に WEwLC 6章 時間がない 変更に時間がかかるという章と間違えて0割 投資信託にだまされるな 10割。

アナログ時計の絵を描いてみる

アナログ時計の絵を描いてみる。

21. I'm Changing the Same Code All Over the Place - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 21章 I'm Changing the Same Code All Over the Place。 マインドマップから再構成したまとめ あちこちで同じコードを変更しているんだ 小さいコードが重複しているだけだよ。リファクタリングする価値はあるの? リ…

Fasl にたどり着かない

Mosh にたくさんバグが見つかった。がんがん修正中。 バグその1 現象:GC の malloc に対して巨大なブロック割当を要求し warning 発生。 原因:unbound variable 例外の発生時に例外内容を表示しようとしたら更に例外発生。(ダブルフォルト的) こういうの…

とても長い vector の read が遅い

とても長い vector の read が遅い。プロファイラで見たら yyparse の中で遅い。うわ。これは調べるの難しそうだ。 試しに gdb で実行して適当に SIG_INT で止めてみたら。getLastPair() だった。リストを読み出すときに append を使っているのが原因。 appe…

今日の復習

高校生の勉強方法 7割 声に出す声に出す WEwLC フィードバックを生かす 7割 エンディアン 10割

Fasl reader/writer 実装

Fasl の reader/writer を実装した。これからテスト。

論文読みに

kzkさんに教えていただいた。 http://www.citeulike.org/user/higepon タグで検索できるのが良いな。Schemeや言語処理系界隈で論文たくさん読みそうな人が公開してくれたらうれしいなあ。 公開してもらえると RSS を購読して watch できる。

fasl

fasl 実装してみようかなあ。とりあえず g++ でのコンパイルが速くなるのは確実なのだよな。 それ以外の速度がどうなるかが分からない。達人だと経験的に分かるのだろうなあ。

今日の復習

WEwLC 20章 クラス大きすぎ 2割 これは最大のマインドマップなので覚えるのに時間がかかるかも WEwLC 11章 どこのメソッドテストすべき 0割。ありゃ。

だましだまし

今日は明らかに体調が悪い。頭が働いていない。スーパーでの買い物もあちこちウロウロするわりには何も見つけられなかったりとか。

Clojure 大人気

13 hours of Lisp | LispCast ところでこのプレゼン聞きたかったな。 William Clinger gave a great presentation on Scheme. He was eloquent and honest about the strengths and weaknesses of Scheme and its community. He was very sharp.

Ypsilon vm boot 時のコード埋め込み

Scheme で書かれたコンパイル済みのコンパイラを C++ に埋め込む形で Mosh は書かれている。しかしながら2つほど問題がある。 g++ でビルドするときに遅い(環境によってはコンパイルが終わらない) コードを取得するときに重い 静的に決まらない部分の初期…

今日の一言

驚きのあまりひっくり返った人をいまだかつて見たことがない。

プロファイラが落ちるのを修正

unbound variable のエラーがうまくハンドル出来ていなかった。

今日の復習

WEwLC 5章 Tools やっと10割。 WEwLC 9章 クラスをテストで使えない 10割 WEwLC 10章 メソッドをテストで使えない 0割

Record の eqv?

Record の eqv に実装漏れがあったので修正。

REPL 対応完了

REPL で出る unbound variable の識別子が G24 のように gensym 由来の変数。ユーザーにはさっぱり理解できない。psyntax 側で何か仕組みを用意しているに違いない。 しかし見つからない。困った。と思ったら分かった。psyntax は gensym に識別子を渡してシ…

REPL 対応

re2c は入力をバッファリングするので (eval (read) ...) 的な事が構造上難しい。 そこで苦肉の策として get-line を使用し (eval (call-with-port (open-string-input-port (get-line (current-input-port))) read) (environment '(rnrs))) のように REPL …

今日の復習

WEwLC 19章 プロジェクトがオブジェクト指向じゃない 10割 世界一分かりやすい株 7割

20. This Class Is Too Big and I Don't Want It to Get Any Bigger - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 20章 This Class Is Too Big and I Don't Want It to Get Any Bigger。 マインドマップから再構成したまとめ このクラス大きすぎだろ。これ以上大きくしたくないな。 典型的なパターン 変更は微調整が多い。その場に…

R6RS Bytevector ほぼ実装完了

utf16->string なども実装が終わり、Bytevector の実装はほぼ完了。今回のリリースでは Bignum を含む Numeric Tower は実装しないので一部実装不可能なものがあるので「ほぼ」。残すは REPL psyntax.cpp などのプリコンパイル速度向上

とびっきり優秀な人に共通していると肌で感じる事

良い人である。誠実である。人間としてのバランスが良い(大きな欠点がない)。 いわゆる神レベルの人にはこのような共通性があると感じる。

時間割更新・家計簿更新

これで今日のノルマは終了。さすがにちょっと疲れ気味。