ここで使ってるtDiaryを2.3.1にアップデートした / estraier-searchではまる / Hyper-Estraierちょっぱや

ここで使ってるtDiaryを2.3.1にアップデートした

2.2系から大きく変わったのはEUC-JPからUTF-8になったこと。

ところどころ文字化けしてるけど(゜ε゜)キニシナイ!!

estraier-searchではまる

estraier-search/estraier-register.rbを実行したらメモリを500MB以上食いつぶして止まってた。

最初はHyper-Estraier側が食いつぶしてたんだと思ってたので時間をロスしてた。

多分これ↓と同じ現象で「squeeze.rbを50sp.rbでもロードしているのが原因」ではないかと推測。

http://www.cozmixng.org/retro/projects/tdiary/tickets/120

似たようなパッチを書いたら直ったっぽい。

こういうときどんな経路で伝えるのがいいのかか迷ったけど、とりあえずtdiary-develに報告してみた。

あー、あとrast-search/rast-register.rbも同じ現象が発生したので、多分同じ原因と思われ。

Hyper-Estraierちょっぱや

rast比で体感ですが、パネェ。

しかも類似検索がある!(;゜Д゜)

…rast-searchにもあったんだっけ(;・∀・)

うろ覚え。

最終更新時刻: 2009年03月09日

Google Chromeの最新開発版でNTLM認証がサポートされた

http://googlechromereleases.blogspot.com/2009/03/201680-has-over-150-bug-fixes-new.html

  • NTLM auth without automatic logon (Issues 6567, 6824)

自動ログオンにはセキュリティの問題も絡むので慎重にならざるを得ないけど、実装を期待したい。

最終更新時刻: 2009年03月11日

estmaster落ちてdbが壊れてた / Chromeのmonospaceフォントを変更

estmaster落ちてdbが壊れてた

$ sudo estmaster start casket/
2009-03-18T00:26:10Z    ERROR   startup failed: another process (pid:12943) has opened the database

プロセスを探すも見つからず。

$ ps aux|grep est

しょうがないので_pidファイルを削除して起動を試みる。

$ sudo rm casket/_pid
$ sudo estmaster start casket/
2009-03-18T00:27:25Z    ERROR   startup failed: the database (/hoge/casket/_node/tdiary) could not open

データベースが壊れているっぽいので、復旧を試みる。

$ sudo estcmd repair casket/_node/tdiary/
$ sudo estmaster start casket/

無事起動した。

Chromeのmonospaceフォントを変更

Chromeのmonospaceフォントが小さくて読みづらかったので変更した。プロポーショナルフォントは明朝/ゴシック共に16ptだったのに対して、なぜかmonospaceだけは13ptになっていた。

変更前: MSゴシック 13pt 変更後: MeiryoKe_Gothic 16pt

MeiryoKe_Gothicについては下記URL参照。

http://blog.hushlogue.com/?eid=409323

最終更新時刻: 2009年03月18日

Poundをインストール / CentOSのRubyをソースからインストール / Railsをインストール / mod_rpafをインストール

Poundをインストール

$ wget http://www.apsis.ch/pound/Pound-2.4.4.tgz
$ tar xvfz Pound-2.4.4.tgz
$ cd Pound-2.4.4
$ ./configure
$ make
$ sudo make install

CentOSのRubyをソースからインストール

パッケージのRubyを削除

$ sudo rpm -e ruby-devel
$ sudo rpm -e ruby-rdoc
$ sudo rpm -e ruby-irb
$ sudo rpm -e ruby
$ sudo rpm -e ruby-libs

Rubyをインストール

$ cd /usr/local/src/
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.g
$ tar xvfz ruby-1.8.7-p72.tar.gz
$ cd ruby-1.8.7-p72
$ ./configure
$ make
$ sudo make install
$ sudo ln -s /usr/local/bin/ruby /usr/bin/

RubyGemsをインストール

$ cd /usr/local/src/
$ wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
$ tar xvfz rubygems-1.3.1.tgz
$ cd rubygems-1.3.1
$ sudo ruby setup.rb

RDToolをインストール

$ wget http://www.moonwolf.com/ruby/archive/rdtool-0.6.22.tar.gz
$ tar xvfz rdtool-0.6.2
$ cd rdtool-0.6.22
$ sudo ruby setup.rb

HyperEstraierのRubyバインディングをインストール

$ cd /usr/local/src/hyperestraier-1.4.13/rubypure
$ ./configure
$ make
$ sudo make install

Railsをインストール

$ sudo yum install sqlite-devel
$ sudo gem install rails
$ sudo gem install sqlite3-ruby

demoをセットアップ

# rails demo
# ruby script/server

mod_rpafをインストール

mod_rpafをインストール

$ wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
$ tar xvfz mod_rpaf-0.6.tar.gz
$ cd mod_rpaf-0.6
$ sudo /usr/local/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

httpd.confに下記を追記

LoadModule rpaf_module        modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1
最終更新時刻: 2009年03月22日

Mongrelをインストール / Railsのscript/serverで起動するWebサーバを選択する / DNSキャッシュをクリアする

Mongrelをインストール

$ sudo gem install mongrel
$ sudo gem install mongrel_cluster

/usr/local/bin/以下にインストールされるため/usr/bin/以下にリンクを作っておく。あんまりお行儀良くない。

$ sudo ln -s /usr/local/bin/mongrel_rails /usr/bin
$ sudo ln -s /usr/local/bin/mongrel_cluster_ctl /usr/bin

起動スクリプトをコピーして自動起動するように設定する

$ sudo cp /usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster \
          /etc/init.d/
$ sudo chmod 755 /etc/init.d/mongrel_cluster
$ sudo chkconfig --level 345 mongrel_cluster on

起動ユーザを作成する

$ sudo groupadd mongrel
$ sudo useradd -g mongrel mongrel

設定ファイルディレクトリおよびPID作成ディレクトリを作成する

$ sudo mkdir /etc/mongrel_cluster
$ sudo chown mongrel.mongrel /etc/mongrel_cluster
$ sudo mkdir /var/run/mongrel_cluster
$ sudo chown mongrel.mongrel /var/run/mongrel_cluster

Railsアプリを作成してみる。サンプルとして「demo」アプリを作成。

$ su - mongrel
$ cd /var/www/
$ rails demo

Railsアプリにmongrel_clusterの設定ファイルを作成する。下記コマンドで/var/www/config/mongrel_cluster.ymlが生成される。

$ mongrel_rails cluster::configure \
 --environment=development \
 --port=3000 \
 --log=/var/www/demo/log/production.log \
 --pid=/var/run/mongrel_cluster/demo.pid \
 --chdir=/var/www/demo \
 --user=mongrel \
 --group=mongrel \
 --num-servers=3

生成された設定ファイルのシンボリックリンクを作成する

$ sudo ln -s /var/www/demo/config/mongrel_cluster.yml /etc/mongrel_cluster/demo

mongrel_clusterを起動する

$ sudo service mongrel_cluster start

http://localhost:3000/にアクセスできればOK。

Railsのscript/serverで起動するWebサーバを選択する

http://d.hatena.ne.jp/clayfish/20070519/1179587606

Mongrelをインストールしたらscript/serverで起動するWebサーバがMongrelになってるのが不思議だったので調べてみた。

Mongrelを検出したらWEBrickより優先してMongrelが起動するようになっているのが答え。

対象コードが古いけど最新版でも一緒。lighhtpdがないような気もする。

DNSキャッシュをクリアする

Windowsクライアント

ipconfig /flushdns

Windowsサーバ

GUI(dnsmngmt.exe)を使って名前単位で削除可能。

http://www.atmarkit.co.jp/fwin2k/win2ktips/415dnscache/dnscache.html

Linux(bind)サーバ

bind9.3以降であれば名前単位で削除可能。

rndc flushname example.com (bind9.3以降)
rndc flush (bind9.2以降)
最終更新時刻: 2009年03月24日

Rails疲れた

環境を用意するところまでで大分疲れて、redmineをバージョンアップしようとして失敗したところで諦めた。

  • db:migrateでPostgreSQLの文字コード関連のエラーが出たのでSQL叩いて修正。
  • Rails 2.3環境でのエラーを2、3カ所修正。
  • Mongrel Clusterでの起動に失敗。

コードを追っかけて判る範囲は直してみたけど、心が折れた。コードの見通しは良かったと思うが、慣れない言語と慣れないフレームワークなので限界がある。 あと、環境の構築にも手間がかかったし。

既存コード追っかけるのはちょっとやめて、新規アプリでも作ってみるか…。

最終更新時刻: 2009年03月25日

Rails考察

いろんな人が使っていたり楽天に採用されたり、Railsを使うメリットは大きいのだと思う。

が、現状は自分の案件に採用することは見送ろうと思う。

理由はいくつかあるが、発展途上であるため互換性の低さが気になる。フレームワークだけでなく、アプリケーションサーバ、言語も過渡期であるように感じる。

  • フレームワーク本体(Rails)
    • Rails 2.2系と2.3系の互換性。少なくともredmineは前回書いたように修正点がちらほらあったし結局動かすことはできなかった。
    • Rails 3.0も遠くはない。
  • アプリケーションサーバ
    • 今まではMongrelが使われてたみたいだけど、開発がストップしている。
    • ポストMongrelは?
  • 言語
    • Rubyが1.8系から1.9系への過渡期。
    • RailsのRuby1.9対応は現在進行形?(2.3.0時点ではパッチが必要)

それは、活発に開発が行われていると言うことであるので決して悪いことではない。 Mongrelはともかく、フレームワークと言語は日々素晴らしい進化を遂げているのだと思う。

ただ、自分は快適に開発したいためにRailsを使いたかったのであって、非互換からくるバッドノウハウを追いかけたいわけじゃない。

最終更新時刻: 2009年03月25日