Archive for the 'tech' Category

6月 02 2008

読了: ハイパフォーマンス Webサイト

Published by HoLY under tech

ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール

Webサイトの高速化をするための14のルールを提示した本。 主にWebサーバのレスポンスの方法、レンダリングの概要のあたりに関係した手法が紹介されている。JavaScript の高速化などには触れていないので注意。

基本的には「リクエスト数を減らしましょう」「通信量を減らしましょう」「レンダリング回数を減らしましょう」 という話。Webアプリ作ってる人はやるやらないはともかく存在を把握しておくのがいいのでは。

自分のRailsアプリである程度実行に移してみる。

簡単だったのは 「ルール3 Expires ヘッダを設定する」 および 「ルール13 ETag の設定を変更する」。

すべて mongrel でやっていたところを、静的ファイルは apache で返すようにして、その部分でmod_expires による Expires ヘッダの設定をする。

ETag に関しては “FileETag None” を全体に設定。

「ルール4: コンポーネントをgzipする」。 Apache で返すものに関しては mod_deflate でいいとして、rails で返すものは(用意されてないので?)やや面倒。

Rails 1.2.x で動くものとしては、 [http://blog.craz8.com/articles/2005/12/17/rails-outputcompressionfilter] や [http://craz8.com/svn/trunk/plugins/output_compression/] がある。2.x に関しては必要になったら調べる。

また、StyleSheet は先、JavaScript は後、というルールを適用。基本的にはlayoutを変更して終わりだったが整合性を取るのがやや面倒なので最初からそうしておくようにしたい。

最後に JavaScript や CSS のファイル数を減らす、というのをやる。こいつは Rails なら task 作っておくのがよさそう。あるいは production と development で読み込むファイルを変えて、 capistrano の task で後処理をするのでもよい。

Rakeでやるならこんなのを lib/tasks に置いたり。

extjs = %w|
  public/javascripts/ext/jquery-1.2.3.min.js
  public/javascripts/ext/foo.js 
  public/javascripts/ext/bar.js 
|
task :extjs => "public/javascripts/ext/all.min.js"
file "public/javascripts/ext/all.min.js" => extjs do |t|
  sh "cat #{t.prerequisites} | ruby script/jsmin.rb > #{t.name}"
end

この例ではついでに JSMIN で縮小化してる。

そんな感じで軽くしたりしたけど、広告が重いままで最終的にはあまり変わらなかったりして。トホー。

あとは ajax でもってくる/レンダリングする部分をやっぱり軽くするってところの方が、 ajax なアプリでは重要ですねー。

まだコメントはありません

6月 01 2008

capistrano メモ - ROLES,HOSTS

Published by HoLY under tech

capistrano で deploy する際、あるホスト、あるいはあるロールだけに適用させたい場合はこうする。

“hoge.example.com” というホストに対し deploy:setup

$ cap deploy:setup HOSTS=hoge.example.com

:role => :web なホストに対し deploy:setup

$ cap deploy:setup ROLES=web

ここで指定するものは「,」 区切りで複数指定できる。

$ cap deploy:setup ROLES=web,db

HOST 指定に関しては、user および port を同時に指定できる。

$ cap deploy:setup HOSTS=username@fuga.example.com:port

後からホスト付け足す時にいちいちハマらないように。

まだコメントはありません

5月 18 2008

ドロップシャドウをつけるRubyスクリプト

Published by HoLY under tech

三国志大戦3Master のデータを作っていて、既存の大量の画像にドロップシャドウを付けたものが必要になったので、RMagick を使ったRubyスクリプトなどを書いてみた。

続きを読む »

まだコメントはありません

4月 03 2008

VMware Server Console でリモートの OS にアクセスするための1つの手順

Published by HoLY under tech

VMware Server Console では、こんなダイアログが毎回出ます。 たいていは Local host のものを使うのでそちらを選択してスルーしますが、 Remote host という項目があるからには外部の ゲストOS にアクセスできるはず! vmwareserverconsole.JPG

でもそのままアクセスしようとしても良くわからない…。

ということで、どのようにすればリモートにある VMware Server にアクセスできるかを書きます。

続きを読む »

まだコメントはありません

3月 10 2008

jquery-tablesorter でソート可能なテーブル

Published by HoLY under tech

ソート可能なテーブルの実装が欲しかったので、jQuery のプラグイン(?)として実装されている tablesorter を試してみた。

サンプルとして三国志大戦3の武将データリスト

続きを読む »

まだコメントはありません

3月 06 2008

DNS amp 対策

Published by HoLY under tech

snowland.net に先にネタにされてしまったけど、DNS amp 対策、端的に言うと DNS サーバへの DDos 対策をようやく行ったよ。

要するに信頼できない相手には自分の管理しているゾーン以外の問い合わせに答えないように変更する。

うちではBind9なので、optionsに

allow-query { localnet; };

を追加 (localnet は別途 acl localnet で指定)し、また各 zone の設定すべてに

allow-query { any; };

を追加した。

allow-transfer については基本的に(スレーブサーバ以外へは)転送しないようにもともとしてる。

まだコメントはありません

1月 02 2008

WavPack 形式で CD をリッピング

Published by HoLY under tech

WavPack形式でCDを(トラックごとに分けずに)ファイル一つにまとめてリッピングする方法についてメモ。

続きを読む »

まだコメントはありません

12月 27 2007

pkill を使うようにした

Published by HoLY under tech

サーバ管理とかでの話。

FreeBSDやLinuxで、あるプロセス(例えばvim)を調べる/殺す際に、今までは

$ ps auxww | grep vim 

なんて process id を調べてから kill、なんてやってたんだけどいい加減やめようと思って意図してpkill, pgrep を使うようにする。

pgrep を使えば process id は

$ pgrep vim

で調べられる。もし引数も含めて調べるなら

$ pgrep -f tiarra

などする必要がある。(-f で引数まで含めてパターンマッチングする)

-l で出力する情報を少しだけ増やせる。

また、最後に起動した tiarra だけ調べたい、などという場合なんかは

$ pgrep -fn tiarra

とすればよい。-n で最後に起動したプロセスだけ抽出する。-o なら最初。

んで、pgrep で調べた後に かわりに pkill にすれば、kill の動作をしてくれる。 (いきなりpkill食らわせるのはまだ怖い)

ちなみに killall は solaris でアレなのでなるべく使わないようにしてる。

自分の環境は主に FreeBSD6 なので、ports で sysutils/pkill を入れて使用した。 Linux では最初から入ってることも多そう。(最近の事情はよく知らないけど)

あと似たコマンドで skill があって (sysutils/skill)、 interactive mode があったり、正規表現でプロセス名を指定できたりする。 またこっちには nice 相当の snice がある。

skill と pkill ではかなりオプションが違うので要注意。-v とかうっかり skill に使うとまずいことうけあい。どちらかをメインで使って残りはちゃんと man を引いて使う方がよさそう。

まだコメントはありません

12月 14 2007

doxygen でデストラクタのチルダ(~)が消える問題

Published by HoLY under tech

doxygen は C++(など)のドキュメントを吐いてくれるツール。フリーでそれなりに手軽なのでいろんなところで使われてます。

ある日バージョンアップして設定をいじったら、デストラクタについてる頭の「~」が消えてしまった。

なぜ?

原因はこいつ。

INPUT_ENCODING = SHIFT_JIS

Shift_JIS は「~」を「 ̄(OVERLINE, U+203E, UTF8だとe280be)」にマッピングしてしまい、結果として落としてしまうから。

INPUT_ENCODING = CP932

ならうまくいく。こいつは UTF-8 に変換しても 7e のままにしてくれる。

まだコメントはありません

12月 03 2007

WordPress: Amazon ISBN Anchor プラグイン

Published by HoLY under tech

Amazon の アソシエイトリンクをお手軽に使える Amazon ISBN Anchor version 1.1.0 を公開しました。Amazon ISBN Anchor のページも作りました。

XML レベルですがキャッシュしたのでとりあえず現実的な速さになりました。前のはひどかった。:(

同種のプラグインに Amazon Linkage プラグイン もありますが、よりシンプルなものが欲しかったため結局自作しました。

(本体と同じ)GPL で公開していますので、必要ありましたら(ライセンスの範囲内で)ご自由にご利用ください。

まだコメントはありません

« Prev - Next »