2008-02-01から1ヶ月間の記事一覧

ruby-postgresとssleay32.dll

ruby で PostgreSQL を使うには ruby-postgres か postgres-pr (pure ruby版)があって、私の Windows 環境だとこれまで前者がなぜか動かなかった。gem で公開されているわけだから、私の環境の問題なんだろうと postgres-pr を使っていたんだけど、なんとな…

インストーラのテスト

メーリングリストで snapshot に足りないファイルがあると指摘してもらったので、snapshot を作り直すついでにインストール用のスクリプトの動作テストをする。さらに足りないファイルを見つけたり、スクリプト自体のバグを取ったり。あとはドキュメントの更…

影舞のFastCGI化ができたっぽい

一通り動作を確認してコミット。Windows 上で影舞を動かさないといけない場合は、CGI よりだいぶいいんじゃないかと思う。

指定されたモジュールが見つかりません。

FastCGI で遊んでるんだけど、RMagick と MySQL まわりでエラーが。 126: 指定されたモジュールが見つかりません。 - C:/ruby-1.8.6/lib/ruby/site_ruby/1.8/i386-msvcrt/RMagick2.so (LoadError)RMagick2.so とか mysql.so とかを読み込めないみたいだ。い…

Windows + Apache + FastCGI

実は昔チャレンジして何時間も粘ったあげく挫折した記憶があるのだけど、再挑戦。 Apache は 2.2.4、Ruby は One Click Installer版 (fcgi.soがついてくるから)まず、http://www.fastcgi.com/ から mod_fastcgi-2.4.6-AP22.dll をダウンロード。名前を mod_f…

影舞のFastCGI化

まだコミットできる段階じゃないけど。 $ cat guest.fcgi #!C:/ruby/bin/ruby.exe require 'fcgi' load 'guest.cgi' FCGI.each_cgi {|cgi| execute(Kagemai::Mode::GUEST, cgi) }通常のCGIの場合 $time w3m -dump_source 'http://localhost/kagemai-0.8/gues…

mod_ruby でのセッション

どうも mod_ruby 環境で動かすとセッションまわりの挙動がおかしいのでデバッグ。 書き換えたはずのデータを次にちゃんと読めていなかったり、デッドロックしたりする。データが正しく読み込めないから Session#close 関係だろうと思っていたけど、やっぱり…

SQL Server

SQL Server 2005 Express をダウンロードしてきてインストール。BaseDBIStore3 を使って SQL Server 用にデータ保存クラスを書く。昔もらった SQL Server用のパッチというかデータ保存用クラスは、DBI を使ってなくて自前で ADO を叩く力作なんだけど、今後…

セッションの利用

画像認証の都合でセッションを使うようになったので、二重投稿のチェックと(認証失敗時などの)添付ファイルのキャッシュを実装。画像認証に失敗したときとかに、添付ファイルを再度指定し忘れるのはよくありそうな気がする。自分で添付ファイルまわりのテ…

マージ作業

影舞のリポジトリの HEAD はまったく変更していないと思っていたんだけど、今日 stable-0_8 を HEAD にマージしようとするとけっこうコンフリクトが発生した。ログをみてみると5ヶ月ぐらい前に少し変更していたらしい。しかも最近やった修正と同じような修…

いろいろキャッシュ

CGI 動作時の動作を少しでも軽くするために、設定ファイルや文字列リソースなんかのテキストデータのバイナリ形式をキャッシュしたり、*.rhtml のコンパイル結果をキャッシュする修正をしていたんだけど、一段落したので本当に 0.8.6 と比べて速くなっている…

バグ修正

Ruby 1.8 で obsolete な機能を代替するパッチをもらったので取り込む。影舞は、1.6 でも動くようにしてあったんだけど、さすがにもう 1.6 を使ってる人はいないだろう。まあ、今日のパッチをもらう前から 1.6 では動かない修正を入れていたし、1.6 用に入っ…

kconv.rbとMIMEのデコード

正確にどのバージョンからかは知らないけど、Ruby の nkf が UTF-8 をサポートしてくれるようになったので、影舞の中から Iconv にかかわるコードを消す作業をしたのが2日前のこと。そのとき影舞のコードの中に kconv.rb という nkf のラッピングをしている…

Starbug1

せっかくなので、Starbug1 を手元の Fedora7 にインストールして触ってみることに。インストールは手順どおりに進めて特に問題なし。とても簡単だった。Windows上だとどうなんだろう。cygwinでいけるかな・・・?少し触った感じでは速いしインタフェースもい…

復活?

Starbug1というバグ管理システムを作っている方に捕捉されている。復活、なのかなあ。結局はコードを書いてリリースできるかってことなんだろうけど。まあ、放置してたバグなどを清算する 0.8.7 は近いうちにリリースする予定。

テスト中

daifukuya.com上の影舞を最新の状態に更新。動作を確認していると、レポートの最終更新日がページを表示した日時になっているのに気が付く。dbistore3.rbを修正。あとは、ruby-dbiの最新だとMySQLが動かない問題を調べる必要があるかもしれない。

DBまわり再実装

ベンチマークの結果がひどいのでPostgresStore3、MySQLStore3を書く。共通部分はほぼBaseDBIStore3にまとめることができた。count_reports レポート数 Pg3 My3 100 0.09 0.01 1000 0.06 0.06 10000 0.53 0.54 50000 2.83 2.50 collect_reports レポート数 Pg…

Ruby/DBI 0.1.1 + MySQLでのエラー

以下のような単純なスクリプトでも、Ruby/MySQL 0.2.6 (MySQL API の pure ruby 版)と Ruby/DBI 0.1.1 の組み合わせではエラーになるっぽい。 $cat mytest.rb #!/usr/bin/ruby require 'dbi' DBI.connect('DBI:Mysql:database=kagemai', 'kagemai', 'pass') …

ベンチマーク

レポート数10万は時間がかかりすぎるので5万で妥協。 実行環境はWinXP(Pen4 3.4GHz)上のcoLinuxのFedora7で割り当ててるメモリは512MBytes。count_reportsの結果(単位は秒) レポート数 Pg Pg2 My My2 100 0.02 0.03 0.01 0.01 1000 0.09 0.12 0.14 0.14 10…

ベンチマーク準備

DBの構造を変更するなら、先にベンチマークをとってみるしかない。影舞のDBのベンチマーク用に各保存方式で多数のレポートを突っ込んだプロジェクトを準備してみる。影舞自身のBTSのデータからメッセージをランダムで選んでレポート、リプライとして入れるス…

影舞

残っていた最後のバグを修正。これで一区切りだけど、どうせならMySQLとPostgreSQLのDBの構造を少し直そうか。今日仕事でも感じたことだけど、ユニットテストはかなり重要。3年間放置してたコードを、壊れるのを怖がらずにいろいろいじれるのはユニットテス…

日記再開

かなり久しぶりに日記を再開させてみる。 いまさら自分でCGIなりを設置するのも馬鹿らしいのではてなでいいかなと。