弊社ではメインのJSフレームワークとしてjQueryを利用しています。
なのですが、jQueryを選択するまでには、
Prototype.js、MooTools、YUIなど他のフレームワークの使用感や実行速度などを計測し
総合的にjQueryを選択するに至りました。

同じようなプログラムを違うフレームワーク間で速度を計測するのはなかなか面倒です。
全てのJSフレームワークで細かいプログラムを作らないといけないのですが
そのような面倒な手間をかけることなく、一気に計測してくれるツールが公開されています。

http://dante.dojotoolkit.org/taskspeed/

basic task test for frameworks.

との事ですので、自分のブラウザでの動作スピードを確認してみてはいかがでしょうか。

自分で試してみたところ、jQueryはおおよそのケースで速い部類に入っていましたので一安心です。
特にjQuery1.2.6よりもjQuery1.3.2の方が飛びぬけて速いケースもあったのが気になります。

(未だにjQuery1.2.6から移行できずにいます・・・早くしないと!)

2009年4 月20日  |  Written by matsumoto  |  under Perl, 未分類 Yahoo!ブックマークに登録    はてなブックマーク - [perl] ありんくTOPページをSledgeで作り直しました。

ありんくTOPページをSledgeで作り直しました。

弊社ではWebアプリケーションを開発する際にはほとんどのケースでMVCをベースに開発しています。
Perlの場合はSledgeかCGI::Applicationが多いですが、今回はSledgeで書き換えて作り直しました。

今までが完全スタティックなHTML+CGIでしたので、MVC(TT)に変更になり、かなり運用が楽になったと思います。

主な仕様(というか利用方法なのですが・・・)は以下の通りです。

Apache フロントのProxy(2.0.x)、アプリケーションサーバ(1.3.x)
mod_perl (アプリケーションサーバで)version 1.30
Sldege 1.11
文字コード UTF8
Sledgeで利用している主なプラグイン S::P::Email::Japanese、S::P::AutoTmplDirname
テンプレート TemplateToolKit 2.20
セッション管理 memcached 1.2.6
ORマッパ Class::DBI、DBIx::MoCo
フォームのバリデータ FormValidator::Simple
JS jQuery1.3.2

SledgeをUTF8環境で利用するために、Bundle::Sledge::I18Nを利用しながら、諸々仕込んでいます。

CSS圧縮をしたかったのですが、圧縮後のCSSファイルがどうもうまく動かず・・・
再度調査してトライ&エラーをしてみたいと思います。

文字コードをUTF8で作成していますので、Perlならではの「utf8フラグが有ったり無かったり・・・」周りで少々ハマりました。

また、FormValidator::Simpleがとても便利です。こちらのモジュールについては、別途Wikiにまとめたいと思います。

2009年4 月22日  |  Written by matsumoto  |  under Perl, サーバー Yahoo!ブックマークに登録    はてなブックマーク - [perl] ディスク使用量をチェックする 「diskcheck.pl」

サーバのディスク使用量は中々把握しづらく、MRTGやMuninなどでグラフ化して監視する方法などがあるのですが、
弊社では diskcheck.plというスクリプトを作成し、これを cronのジョブに登録しています。

アラートメールの送信先、アラートの対象とするディスク使用量のしきい値(パーセント)、サーバ名を設定すると
しきい値以上の使用量になった場合、利用状況をメールで知らせてくれます。

アラートメールの例

hostname www01.example.com

/dev/mapper/VolGroup00-LogVol00 ( / ) is 2 % full -- 3.9G of 287G used, 269G remain

----
-- df result
----
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00  287G  3.9G  269G   2% /
/dev/hda1              99M   13M   82M  14% /boot

弊社ではこれをcronに登録していまして、1時間おきに動作し、ディスクの使用量をチェックしています。

cronの登録例

0 * * * * /usr/local/bin/diskcheck.pl > /dev/null 2>&1

または、同スクリプトを /etc/cron.hourly 以下に設置することでも同様に動作します。

お使いになってみてはいかがでしょうか。

2009年4 月23日  |  Written by matsumoto  |  under サーバー Yahoo!ブックマークに登録    はてなブックマーク - CentOS(Linux)でのSRPMのインストール・設定

FedoraやCentOSの古いバージョンにはdiskcheckというツールがありまして、
ディスクの利用状況を監視し、設定した数値以上の利用量になるとアラートメールを出してくれるものです。

こちらのツールですが、yumやRPMが無く、CentOS2のSRPMしかありませんので、
SRPMからのインストールが必要になります。

以下、このツールの導入をモデルにした、SRPMをビルドし、CentOS5にインストールするチュートリアルです。

SRPMのインストールの流れ

SRPMは

  • ソースを展開し(=SRPMのインストール)
  • そのソースを元にビルドし
  • できたパッケージ(RPMファイルなど)をインストールする

という流れになります。

SRPMのダウンロード

SRPMをダウンロードします。
ディレクトリ名からして、CentOS2用でしょうか。

 wget http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/2.1/source/i386/SRPMS/diskcheck-1.1-1.src.rpm

ソースを格納するディレクトリを作成

ソースをインストールするために格納用のディレクトリを作成します。
(既に存在するのであれば、作成は必要ありません)

今回は該当のディレクトリが無かったので作成します

# mkdir /usr/src/redhat

続いてSRPMファイルをインストールします。

# rpm -ivh diskcheck-1.1-1.src.rpm 

SPECファイルの修正

/usr/src/redhat 以下にインストールされるのですが
昔のSPECファイルは現在のものと書式が異なり、このままビルドしてもエラーが発生します。

/usr/src/redhat/SPECS/diskcheck.spec を修正します。
「Copyright」の部分を「License」に変更します。

vim /usr/src/redhat/SPECS/diskcheck.spec 

-- Copyright: GPL
++ License: GPL

rpmbuildの確認

CentOSにSRPMをBuildする「rpmbuild」がインストールされていなかったのでインストールします。

「rpmbuild」をインストールするためには「rpm-build」のパッケージが必要です。
※間に「-(ハイフン)」を必要とします

# yum install rpm-build

rpmのビルド

全て揃いましたので、diskcheckをインストールします。

# rpmbuild -ba /usr/src/redhat/SPECS/diskcheck.spec

完成したRPMパッケージをインストール

BuidされたのでRPMパッケージをインストールします。

# rpm -ivh /usr/src/redhat/RPMS/noarch/diskcheck-1.1-1.noarch.rpm

Preparing...                ########################################### [100%]
   1:diskcheck              ########################################### [100%]

以上でSRPMからのインストールが完了しました。


diskcheckについて

2つのファイルがインストールされました。

/etc/diskcheck.conf
/etc/cron.hourly/diskcheck

/etc/cron.hourly以下にインストールされ、
1時間おきにcronのタスクとして実行されます。(diskがチェックされます)

diskcheck.confの設定は以下のサイトで詳細が掲載されています(外部リンク)

diskcheckはpythonで動作しています。perl版のdiskcheck.plはこのツールをperlに移植したものです。
(若干機能削減していますが・・・・)

2009年4 月26日  |  Written by matsumoto  |  under Perl, web技術 Yahoo!ブックマークに登録    はてなブックマーク - [perl] mod_perl起動時のstartup.plでの便利な手法

mod_perl の起動時に startup.pl というスクリプトを読み込むことで、
初回ロード時に必要なモジュールをhttpdに取り込み、あらかじめコンパイルできるという機能があります。

mod_perlを利用している httpd.conf (Apacheの設定ファイル)に
以下のように記述します。

PerlRequire /path/to/startup.pl

「startup.pl」のファイル自体は例えばこのように記述できます。
perlを実行しますので、perlでかけることはほぼ何でも書けます。

use strict;
BEGIN {
   use Apache ();
}
use Apache::DBI ();
use DBI ();

また、自家製のperlモジュールをstartup.plで取り込む場合、
1つ1つ書いていくのも中々面倒ですし、メンテナンス性の面からも避けたいところです。

こういった、動的にモジュールが増えていく中でそれらをstartup.plに取り込めるようなスクリプトを
マツモブログさんが開発されています。

startup.plに書いておいた方が良い事。マツモブログ

サイト用のモジュールのパッケージ名をベッタ~とstartup.plに書いてたんですが、
モジュールを追加したり、削除したりいくうちにstartup.plのメンテナンスが追いつ
かなくなってきました。こりゃいかんという事でもう一発で読み込んでしまおうという
事で次のように書いてます。 (マツモブログより引用)

File::Findを使ってディレクトリ内を調べ、*.pmファイルを requireする構造です。

この手法だと、いくらモジュールが増えても矛盾することなくstartup時にモジュールをロードできます。
激しく便利ですね。

是非お試し下さい。

関連リンク

私はチーム・マイナス6%です