Entries from 2009-03-01 to 1 month

R6RS メモ

(rnrs enums) は不要かも (file-options) は仕様があいまいで分かりづらい (eol-style) は分かりづらい binary-port/textual-port/transcoder/codec は設計がきれい codec は BOM の扱いに不明点がある codec の eqv? 等価は微妙。 codec と transcoder の役…

今日の復習

並行プログラム試験 3割 以下10割 タスクキャンセル スレッドプールの利用 並列化すべき場所 例外

Volume Texture など - Real-Time Rendering

Real-Time Renderingの 6章 。 マインドマップから再構成したまとめ Volume texuture parameter space が (u, v, w) と3次元に volmetric ligths 等に使われる(霧や煙の中の光) Texture caching 同期 速度 メモリ使用量 LRU, prefetch Texture compression…

18. valgrind で PostgreSQL のメモリリークをみつけよう - PostgreSQL のソースコードを読む

db

valgrind については、C(++)言語: valgrindの使い方 を参照。 準備 % sudo apt-get install valgrind % sudo apt-get install libreadline-dev libz-dev PostgreSQL 8.3.6 のインストール。 % ./configure --prefix=/tmp/local % make % make check PostgreS…

S式1つ分コメントアウトが便利

(import (rnrs) #;(mosh test)) let 全体コメントアウトしたいとか色々便利だよね。

休日

午前中はコードを書き eol-style の対応完了。 昼から千駄ヶ谷門から新宿御苑へ。裸足で芝生の上を歩く。寝るなど。入園料を払う価値は十分にある。妻もまた来たいと言っていた。 夕方から高島屋へ。帰宅後、勉強する。あとは寝るだけ。 1週間分の家計簿をつ…

今日の復習

Changing Software Buffer management OS vs DBMS クォータニオン 明示的なロック Introduction to Lock management

R6RS の eol-style

R6RS の eol-style の仕様は以下の通り。分かりにくい。 textual-input-port none : 変換なし none 以外 : lf, cr, crlf, nel, crnel, ls が現れたら lf に変換される textual-output-port none : 変換なし。 none 以外 : lf は eol-style で指定された eol …

Re:なあ、moshでもMeCabを使ってみようか

紫ログ:なあ、moshでもMeCabを使ってみようか - livedoor Blog(ブログ) おお。動いている。素晴らしい。文字列の read が無限ループになるバグはあとで修正しておきます。ありがとうございます!

Windows - 既存のドライバモデルを調べよう

os

Mona のドライバモデルをきちんと決めるべく既存の OS のドライバモデルを調べていこう。 まずは Windows 。ほとんど Wikipedia からの情報。求む詳しい人の声。 WDF(Windows Driver Foundation) WDM の後継 less complicated and less code WDM は細部まで…

今日の復習

Introduction to Lock management 5割 明示的なロック 3割 以下10割 Bus Image Texturing ロックで concurrent control

Volume Texture など

Real-Time Renderingを読む。 Cube Texture のイメージがつかめない。Web上にも良い資料が見つからず。 Volume Texture は volumetric ligthts の意味が分からず苦戦したが理解した。 Texture Caching では LRU とか Prefetch とか、DB と同じような苦労をし…

作業効率の話

その瞬間に抱えているモノの種類が少なく、量が少ないほど作業効率が良い。それはミクロでもマクロでも変わらない。 細かな ToDo リストが頭にある状態で作業するよりも、紙などに ToDo リストを頭から吐き出すことで、頭が作業自体に専念できる。 広範囲な…

R6RS file-options は enumeration ?

R6RS test suite を見ると file-options は enumeration であることが期待されるようだ。R6RS の file-options の項にはそのような記述はない。どこか別の場所に書いてあるのだろうか。

Mosh の Port クラスの継承関係図

Mosh の Port クラスの継承関係図を doxygen と dot で生成してみました。視覚的に確認するのは楽で良いですね。まずいところが見つかった気がする。 http://img.f.hatena.ne.jp/images/fotolife/h/higepon/20090313/20090313224740.png

textual custom port 実装完了

textual custom port の実装完了。 custom binary port と read! や write! の引数が違うということに今さらながらに気付く。 naive な実装なので速度は期待できないがまあ良いか。あまり使われなさそうだし。 Ypsilon はどうやら custom port の中で buffer…

続 Julia

BRIDGE の後半の「in the sun」あたりのコード進行で薬指がつりそうになる。歌わないと演奏はマシだなあ。

次回 Shibuya.lisp Tech Talk #3 の 講演者を募集中

次回 Shibuya.lisp Tech Talk #3 の 講演者を募集中です。 TT/LT ともに募集していますので興味のある方はリンク先をご参照下さい。熱いお話、冷めたお話、ネタなど何でも歓迎です。 Shibuya.lisp » Blog Archive » Shibuya.lisp テクニカルトーク#3 発表者…

今日の復習

ロックで concurrent control 0割 Introduction to lock management 0割 以下10割 dealing with deadlocks aggregates 実行性能とスケーラビリティ 並行プログラムを試験する

Minification Image Texturing - Real-Time Rendering

Real-Time Renderingの 6章 。 マインドマップから再構成したまとめ 貼り付け先が texture よりも小さい場合縮小が必要 nearest neighbor は aliasing がひどい bilinear filter は 4 つの texel をブレンド Mip Mapping texel を filter で徐々に縮小してい…

17. clustered のコードを読む9 - PostgreSQL のソースコードを読む

db

前回紹介した cluster コマンド高速化パッチを読む。 HeapScanDesc hscan; IndexInfo *ii; ScanKey scanKeys; int i; Tuplesortstate *tuplesort; bool shouldfree; HeapScanDesc、IndexInfo, ScanKey, Tuplesortstate が初登場。 HeapScanDesc heap を読ん…

手強いバグ修正完了

過程と結論は Wiki にまとめた。解決方法が美しくないのが難点。

今日の復習

aggregates 3割 実行性能とスケーラビリティ 5割 以下10割 texture mapping buffer management storage indexing テストコードが邪魔

Dealing with Deadlocks - Database Management Systems

Database Management Systemsの16章。 マインドマップから再構成したまとめ デッドロックの検出 2つの方法 タイムアウト waits-for graph を維持 サイクルになったらデッドロック ロックの少ないものを abort デッドロックを防ぐ 2 つの方法 Conservative 2P…

sourceforge.net のソースコード管理システム

SourceForge.net now supports five SCM platforms: Bazaar, Mercurial, Git, Subversion (SVN) and CVS, providing projects the freedom to choose the development tools most suitable for their team. 知らなかった。svn から別のに乗り換えたら速くな…

16. clustered のコードを読む8 - PostgreSQL のソースコードを読む

db

Our CLUSTER implementation is pessimal のスレッドに cluster コマンドが遅い理由とパッチが投稿されている。 指摘されている問題点をまとめてみる。 CLUSTER コマンドの実装は遅い。とても遅い。 index を full scan して key 順に sort する random I/O …

R6RS Records の議論

Records の議論で Abdulaziz Ghuloum さんが書いている、シリアライズにおける rtd と record が持つ rtd の問題はうなずける。 "expand-time generative" vs "run-time generative" で言うと、run-time generative で使った事はないなあ。 shiro さんが挙げ…

15. clustered のコードを読む7 - PostgreSQL のソースコードを読む

db

MemoryContext とは? y-asaba日誌(2006-02-12)さんの解説が良くまとまっている。 heap のコピー copy_heap_data で heap のコピーが実行される。 入力は from Oid to Oid コピー順序を指定するための Index Oid の3 つ。 tuple descriptor を見て column 数…

spon のコードを少々

spon のコードを少し書いた。書きかけ。spon のエラー処理を R6RS 例外システムで書こうかと。 どのような形がきれいかを見極める良い練習になりそう。

不可解バグの原因判明

id:mjt:20090310:p3 などでお騒がせしている trunk 版 Mosh の不可解なバグの原因が分かった。 現象 シリアライズされた (mosh test) ライブラリを import すると &condition-rcd を指していたはずの参照が別のものに置き換わる 原因 Fasl シリアライズ時に …