2008-01-01から1年間の記事一覧
前回の分散レイトレースは、ピクセル毎にプロセスに依頼を出して結果を受け取るという 実装だったためメッセージが多すぎで分散による並列の恩恵を受けることができなかった。 これを改善するため行毎に依頼を出す方式に改めた。 結果はこんな感じ。いちおう…
分散版のレイトレースベンチができたので実験してみた。ローカルマシン1並列 (xp1@192.168.0.10)23> timer:tc(dist_ray, start, ["tmp.bmp", 200, 3, [node()]]). waiting for boot servants...['xp1@192.168.0.10'] start rendering[<0.113.0>] finished! {…
1台のマシンでのマルチコア並列のようにプロセスを大量生産して、 さばくのはシステム任せというわけにはいかないのに気づいた。 処理をどう割り当てるのかを制御するスケジューラみたいなものが必要です。 今回はレイ一つ毎にプロセスを作るのではなく、 コ…
プログラミングErlangの20章にlists:mapを置き換えるだけで並列化できますよ、 と書いてあったのでやってみた。置き換えたのはこのレイを飛ばす部分。 % オーバーサンプリング(N x N倍サンプリングして平均する) sampling({PIXEL_X, PIXEL_Y}, Scene, N, GET…
シャドウレイの判定を作っているところで、いろいろ間違っている部分が発覚して直すのに手間取ってしまった。 後ろ向きにレイートレースしていたりとか、 画素の順番がおかしかったりとかいろいろな罠にはまった。 リスト内包表記で複数のリストを組み合わせ…
レイトレースベンチの移植の続きをしていたのだけど、 ベクトルの和にすらパターンマッチで[X, Y, Z]=LISTという感じで展開してから 個々に計算するという状況に強いストレスを感じたので一旦作業を中断して他の方法を調べた。 lists:zipとリスト内包表記の…
とりあえず知っている範囲の構文を使ってやっつけで書いてみた。 まだ未完成だけど更新。 あたらしい言語なのでわりとデバッグに苦労してしまった。 最大の落とし穴はlists:nthが1originなこと。VBかw あとは3要素ベクトルの操作をリスト内包表記で書こうと…
32bitのDIBを出力する実験。真っ白だけど。 -module(write_test). -export([write_list/2, create_dib32/2]). % リストをファイルに出力 write_list(F, L)-> {ok, IO}=file:open(F, [write]), io:put_chars(IO, L), file:close(IO). % ビットマップイメージ…
前回書いたビットマップ出力をリライトしつつレンダラの一番外側の枠を作った。 各ピクセルのリストにmap関数でray_shooting関数を適用するとRGBAのリストになるという寸法。 処理の本体たるrenderer:rayshooting/1はただのスタブで常にRGBA(0,0,0,0)を返す…
先日、家に積んであったErlang入門を何となく手に取ったら今の興味に合った 言語だったので非常にやる気が出た。 Gauche本もHaskell本も途中までしか読んでないが、 Erlangいいよw 本自体は、薄かったのでさくっと斜め読みして改めて分厚い本も入手してきた…
とりあえずトラックバックを消しといた
出先からストリームでmp3を直接聞くべくセッティングしてみた。 はじめはshoutcastを使おうとしていたのだが、これは頓挫(Linuxのサーバのみで完結する方法がわからなかった)。そこで、類似のicecastを使ってみることにした。まずサーバをインストール。 # …
ここのところしつこくplaggerを弄っていたのだけど ようやく安定して運用できるようになってきました。 長い道のりだった。 仕組みも多少わかってきたのでGoogle News(RSS)用の Subscriptionプラグインを書いてみた。 package Plagger::Plugin::Subscription…
ぎゃー Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Data failed: 550 5.4.5 Daily sending quota exceeded.
$args->{content}=~m/(.*)…
perlとかrubyと比べて若干使いにくいpythonの正規表現についてメモ。 とりあえずはmatchじゃなくてsearchを使う。 繰り返しが入る場合は、findall。 場合によってはsubをコールバックと一緒に使う。 import re # -*- encoding: utf-8 -*- html=""" <html> <head> <title>サンプル</title></head></html>…
昔よりインストールは楽になっていてgentooの場合 # emerge g-cpan # g-cpan -i Plagger で一応はインストールできた。ただ、このままだと動作時に足りないライブラリがあった。 追加で以下のものをいれた(うろ覚え)。 # g-cpan -i HTML::TreeBuilder::XPath…
噂に違わぬ変態ぶりに感動しつつ、mqoを読むだけの実験コードを書いてみた。 これはいいものだ。 bison, flexの勉強しないといかんなぁと常々思っていたのだが むしろこっちの方が使うの簡単だし申し分ないです。http://luxla.net/project/mqo のblenderのmq…
何故かvimがutf-8で保存したときにbomを付加するようになってしまい、 そのせいで正規表現がうまくマッチしないのに悩まされた。 とりあえずutf-8のBOMを削除するコード。 text=open('utf8.txt').read() import re re_bom=re.compile('^\xEF\xBB\xBF') text=…
時々必要になるんだけどいつも忘れて調べなおすのでメモ。 WindowsではAPI、それ以外ではiconvが環境に備わっているのでそのまま使える。 ただ、WindowsAPIはcp932とutf8とucs2?くらいしか使えないのでそれ以外が要るときはなんか用意する必要がある。 icon…
()で囲んでおくことと見つけたり。 long_long_string=( # この括弧でindentを無視する。隣あう文字列は勝手に連結されるので+無しでも可 "long long long very long long long long long long string" + "long long long very long long long long long long…
新しいマシン環境でいつも忘れるので手順を書いておく http://peak.telecommunity.com/DevCenter/EasyInstall から ez_setup.py をダウンロード。 > python ez_setup.pyと実行。 windowsなら C:\Python25\Scriptsにpathを通しておく。コマンドラインで > eas…
数値演算とか行列向きの低レベルなコンテナ(STLではない)らしいvalarrayを使ってみたかったので使ってみた。 試しに浮動小数点の頂点配列を想定した配列に行列をかけるのと行列同士の積をやってみた。 要するに内積。 いつの間にかvalarrayの嬉しさの中心た…
Connection-DataのTermial-type stringをvt100とかにすれば回避できるのだが カラー表示ができなくなるなどの弊害もあるのでいい方法を探していたのだが、 http://wikiwiki.jp/redstrange/?%C4%EA%B5%C1%BA%D1%A4%DF%A5%DE%A5%AF%A5%ED によると.screenrcで …
環境判別の方法が知りたくなったので調べてみた gccの場合は一覧が直接取得できる。 $ touch a.h; cpp -dM a.hvcではどうやるかわからなかったがとりあえず _MSC_VERを見ればvcであることはわかりそう。http://support.microsoft.com/kb/65472/ja詳しいとこ…
premakeというのはプロジェクト管理ツールで、 define, includeパス, libraryパス, linkするライブラリ, 出力する実行ファイルやライブラリ,含まれるソースなどのプロジェクトの情報をluaスクリプトに書いておき、そこからコマンド一発でvcソリューションやM…
http://premake.sourceforge.net/ 簡単なスクリプトからMakefileやvcのソリューションを生成できるらしい。 うまくすればMakefileやautoconf、vcやmanifestに煩わされるのが軽減できるかも。後で調べる。
/var/log/apache2/error_logに No such file or directory: could not open mime types config file /etc/mime.typesとか書いてある。 な、なんだってーw 最初はServerNameのエラーメッセージが出ていたのでその辺りかと思っていたのだが意表をついた罠だ・…
先日、インストールしたZenwalkなのだが、 Synergyが頻繁に操作を受け付けなくなってしまう症状が出てしまった。 どうも原因がわからないので諦めていつものGentooに入れ替えることにした。 他のところは特に不満は無いのだが。