Entries from 2009-01-01 to 1 month

Scheme の R6RS ライブラリ置き場が欲しい

R6RS という共通仕様があるので、CPAN のようなライブラリを集めた場所が欲しいですね。 必要なものは 場所 ライブラリの配布形式 処理系依存の分離方法 これはほぼデファクトスタンダードがある くらい。やったらとても面白いと思うのですが手が回らない状…

特定共有ライブラリに依存した Scheme コードのインストール方法

FFI の機能を提供するようになったので、特定の共有ライブラリに依存した Scheme コードのインストール方法を考えなければならない。 例えば (dbd mysql) というライブラリは libmysqlclient に依存するが ユーザーの環境で libmysqlclient.so がどこにイン…

Re: Mosh で絵を描く

# FFI testがconfigureのHOST(やCFLAGS)を尊重しないのでクロスコンパイル時にFFIのテストが通らない # double引数に対して正確数を渡せない。下のサンプルで1.0とかいちいち指定しているのはこのため。おお。絵がでている。ありがとうございます。configure…

今日の復習

10割 Join Set and Aggregation Projection (3D) 仮想記憶 B+-Tree

今日の英語

次の課題についてじっくり検討。InfoQ: InfoQ Book: Domain Driven Design Quickly の PDF を読もうかと。 読んだ事がある人がいればぜひ感想をお聞かせ下さい。

Mosh の FFI を浮動小数引数に対応する

実際の動作を見る まずは浮動小数引数がどのように扱われるかを手元の環境(i686 GNU/Linux)でチェックする。 hage.c を書いて double add(double a, double b, double c) { return a + b + c; } void call_add() { add(1.0, 2.0, 3.0); } gcc -c hage.c -S…

Record の sealed のバグを修正

id:leque さんからご指摘いただいたバグ。いつもありがとうございます。 (import (rnrs)) (define-record-type a (sealed #t)) (define-record-type b (parent a)) (make-b) sealed な Record a が extend できてしまっています。 以下のようにエラーになる…

今日のギター

とりあえずカポを買おう。なくしてしまったみたい。

Shibuya.lisp Tech Talk #2 開催します

2009年2月28日(土) 14:30- に Shibuya.lisp Tech Talk #2 を開催します。 前回と同じく会場は渋谷の 価格比較サイト / ECナビ さんに提供していただきます。ありがとうございます。 今回は前回と同等かそれ以上の豪華な Tech Talker 陣です(自分以外は。。…

今日の復習

B+-Tree 5割 Duplicate handling すっかり失念 以下 10割 OS vs DBMS Heap file format Projection 加算・減算 Breakout Method Object

Mosh で R6RS の tex から情報を抜き取る

ドキュメントに必要な情報を R6RS の tex ファイルから抜き取るスクリプト。 書き捨てに近いのできれいではないが、Mosh はこの手の用途には普通に使えるレベルになってきたな。うれしいぞ。 (import (rnrs) (mosh) (srfi :1) (srfi :26) (srfi :98)) (inclu…

今日の復習

Selection 10割 BUS 10割 Break out Method Object 0割 Projection 0割 数が少ないのはついに黒字復習を達成したから。地味にうれしい。

Set and Aggregate - Evaluating Relational Operation - Database Management Systems

Database Management Systemsの14章。 マインドマップから再構成したまとめ Set Union と Difference 方法 2つ Sort & Merge Partitioning (h & h2) Aggregate AVG, MIN, MAX など。 group by が付加する事も。 Basic な方法:Scan + 必要な情報を保持 Group…

Join - Evaluating Relational Operation - Database Management Systems

Database Management Systemsの14章。 マインドマップから再構成したまとめ Nested Loop Join simple, but slow I/O 多すぎる Block Nested Loop Join 前提:B バッファページ利用可能 R を B に読み込み、S の tuple と比較 R を読み込むのではなく B にメ…

技術書を読むときにやってはいけない、たった1つの事

本当は理解できていないのに、自分をだまして分かったふりをする事。そのまま読み進め最後までたどり着き、自分はこの本を読んだと勘違いしてしまう事。 分からないなら分かるまであきらめずに何度も読む。もしくは「分からなかった」と心の中に留めておく事…

次の課題曲は Julia

Half of what i say is meaningless.

アヒルと鴨のコインロッカー

気の利いた会話、多少の驚くような展開、個性豊かな登場人物。だがしかし物足りなさを感じる。舞城王太郎を読んだあとに佐藤友哉を読んだときの気持ちに似た何かを感じる。

今日の復習

External Sorting 10割 クォータニオン 10割 CPU パイプライン 10割 Intel 浮動小数 10割 プロセッサ入出力 I/F 10割 WEwLC 変更が永遠に終わらない 10割 Selction 2割

Common Lisp の print

Common Lisp の print は表示したオブジェクトをそのまま返すらしい。id:g000001 さんに教えてもらった。 (and hoge hige) の print デバッグは (and (print hoge) hige) と書ける。面白い。 ちなみに Scheme の display は未定義値を返す仕様。 追記 多値に…

「Java 並行処理プログラミング 」入手

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―が届いた。 コメントで入手可能な書店を教えてくださった皆さんありがとうございました。結局ジュンク堂で購入。 帯に「結城浩氏推薦」と書いてある。楽しみ。

ドキュメント書きを開始

ドキュメントツールを選定。必要な機能が揃っている事が確認できたので書き始める。まずは Mosh 特有のものからということで FFI のドキュメントを書いた。 (rnrs) ライブラリなど R6RS の部分はぶっこぬいて作りたいな。

今日の復習

External sorting 4割 CPU パイプライン 5割 乗算 10割 I/O コスト比較 10割 光 10割 Pull up features 10割 Rasterize 10割 メモリクリア比較 10割 Query plan と最適化 10割 メモリクリア比較 10割

今日の英語

Flexible and efficient storage management for dynamically-typed languages. を読み始めたが期待していたものとは違ったのでやめる。 論文とその参考文献を中心に Abstract を読み漁ったが興味があるものはなかった。 さてどうしようか。無理に論文を読む…

Projection - Evaluating Relational Operation - Database Management Systems

Database Management Systemsの14章。 マインドマップから再構成したまとめ Projection の手順 不要 attribute を削除 重複 tuple の削除 Projection based on Sorting Scan して attribute 削除 tuple を Sort sort result を scan して重複を削除 External…

ドキュメント生成ツール

ソースコードからドキュメント生成するツール、doxygen, Texinfo, JavaDoc などの列挙と機能の比較をまとめていたが、以下の Wikipedia のページに気付き途中でやめた。 大変良くまとまっている。 Comparison of documentation generators - Wikipedia, the …

DBI 実装完了

MySQL に関しては select, insert, create table など動いた。PostgreSQL は必要になったらにしよう。気が向いたら誰かがやってくれるかもしれないと期待。 ちなみに CLOS は楽しい。まだ浅くしか使っていませんが。ソースは http://code.google.com/p/mosh-…

今日の復習

光 0割 Query Plan と最適化 0割 ファイル別コスト比較 10割 Hash-based Indexing 10割 マルチコア 10割 WEwLC 時間がない 10割 性能の定義 10割 WEwLC 僕のアプリは API 読んでいるだけ 10割 記憶の階層の利用 10割

今日の英語 - An Incremental Approach to Compiler Construction その5

速読の練習。速読はしない。文の構造を意識しつつ読み進める習慣をつける。方法論はTOEFLテスト速読・速聴大特訓 基礎編で。ルールは以下の通り。 トピックセンテンスは黄色いマーカーで シグナルワードは緑の線 読み終わった。内容は分かりやすい。一度 VM …

Selection - Evaluating Relational Operation - Database Management Systems

Database Management Systemsの14章。 マインドマップから再構成したまとめ 簡単な Selection reserves (100件/page, 1000 pages) select * from reserves where rname = 'Joe' 何も考えない方法:1000 I/O No Index, Sorted Data: log2(1000) = 10 I/O prac…

DBI 実装 - select 完成

(import (rnrs) (dbi) (mosh) (mosh test) (clos core)) (let ([conn (guard (c (#t (display "mysql not supporeted\n") #f)) (dbi-connect "dbi:mysql:mysql:127.0.0.1:3306" "root" ""))]) (when conn ;; conn is sub-class of <connection> (test/t (if (memq <connection> (clas</connection></connection>…