Browse Month: May 2008

LL Future

LL Future というイベントが開催されます。チケットは、ローソンで L コード「35591」で購入すことができます。

さっそくチケットを買ってきました!

オープニングの動画がかなり気合が入っている!

mod_deflate を試してみた

Apache HTTPD Server のチューニング記事を読んでいて、ふと mod_deflate がよく分かっていないことに気がついたので試してみた。

まず、環境は FreeBSD 7.0 Release 上の Apache 2.2.8。ports から普通に入れると mod_deflate が有効になっている。

テスト環境は、Firefox 3.0 rc1 に User Agent Switcher と Live HTTPD Header をインストールして確認した。

設定の方は、Apache 本家のドキュメントを見ると詳しく書いてある。本家のドキュメントでは、すべてのコンテンツに対して圧縮する方法と特定のコンテンツに対して圧縮する方法の二つの方法が解説されている。

また、圧縮するとき過去のブラウザにおいて圧縮の取扱いに問題があるブラウザもあるので、ユーザエージェントごとに判断しないといけない。典型的な設定は、次のようになる。

  SetOutputFilter DEFLATE
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
  SetEnvIfNoCase Request_URI \
     \.(?:gif|jpe?g|png|exe|zip)$ no-gzip dont-vary
  Header append Vary User-Agent env=!dont-vary

SetOutputFilter ですべてのコンテンツに対して圧縮する設定になる。その下の BrowserMatch は過去のブラウザで圧縮の取扱いに問題があるブラウザを考慮している。no-gzip や gzip-only-text/html という環境変数は mod_deflate.c の中で定義されている。no-gzip は圧縮をしない、gzip-only-text/html はコンテンツタイプが HTML のときだけ圧縮するという意味になる。

次の SetEnvIfNoCase はすでに圧縮がかかっているコンテンツに圧縮する意味はないので、すでに圧縮されているコンテンツは除外するという意味にになる。

次に、特定のコンテンツのみに圧縮をかける場合は、上の SetOutputFilter 設定を次のようにおきかえる。

  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

AddOutputFilterByType ディレクティブで、圧縮するコンテンツを設定することができる。

 

インターネットですこし他の人の mod_deflate の設定を調べてみると、中には次のような設定があった。

  SetOutputFilter DEFLATE

 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

SetEnvIfNoCase Request_URI \

\.(?:gif|jpe?g|png|exe|zip)$ no-gzip dont-vary

Header append Vary User-Agent env=!dont-vary
この設定では、AddOutputFilterByType が無意味になってすべてのコンテンツに対して圧縮をかけているのでよく意味を理解していない設定だと思う。

 

実際に Firefox で、ユーザエージェントを切り替えながら確認をしたが、Firefox は必ずキャッシュがきいてしまって、304 が常に返ってきてしまう。そのため、mod_deflate をテストするときは、キャッシュを無効にしておいた方が便利。Firefox のキャッシュを無効にするには、about:config して次の設定を切り替える。

 

Firefox Disable Cache
 

このスクリーンショットだと分かりにくいかもしれないが、次のリファレンス名です。

  • browser.cache.disk.enable
  • browser.cache.memory.enable
この二つの値を false に設定しておく。そして、Live HTTP Header の画面を開いて Content-Encoding に gzip が含まれていることや jpg などでは gzip が含まれていないことを確認した。
この件とはあまり関係ないが、mod_deflate を設定すると ETag が「ハッシュ+-gzip」となってしまうのはちょっといただけない。
mod_deflate は今さらという感じがあるが、僕は今までちゃんと調べたことがなかったので調べてみた。一つずつちゃんと調べて今ある技術を一つずつ自分のものにしていって応用していきたい。

本に紹介されているアイテムをまとめてみた

よく本にはさまざまなアイテムが紹介されているけれど、まとめてみると面白いかもと思って作ってみた。
まず、第1弾「効率が10倍アップルする新・知的生産術 – 自分をグーグル化する方法 -」に紹介されていたアイテム一覧を作ってみた。

効果が10倍アップルする新・知的生産術 – 自分をグーグル化する方法 – に紹介されたアイテム

ThinkPad x61 がお買い得

ThinkPad x61 が、\119,910 とかなりお買い得です。そろそろ、ThinkPad x200 が登場するので、一斉在庫処分といったところでしょうか。まわりでは、かなりの人たちが ThinkPad x61 を購入しているので、かなりほしいのですが、そんなにプレイベートの PC は使っていないので迷うところです。

yum でグループ単位でまとめてインストールする

yum で、X Windows System や GNOME などグループ単位でまとめてインストールしたいときがある。まず、yum でグループを取得するために次のコマンドを実行する。

  $ sudo yum grouplist

    Loading “installonlyn” plugin

    Setting up Group Process 

   Setting up repositories

   Installed Groups:

     MySQL Database

     System Tools  

     Dialup Networking Support

     Network Servers

     Web Server

     Ruby

     Printing Support

     Mail Server   

     Graphical Internet

  Available Groups:

     Tomboy

   (略)

 

必ず、sudo する必要がある。例えば、X Windows System だけインストールしたいときは、次のコマンドを実行する。

  $ sudo yum groupinstall “X Window System”

GOME もインストールしたいときは、次のコマンドを実行する。

  $ sudo yum groupinstall “GNOME Desktop Environment”

そうすると、次のエラーが出てしまった。

Error: Missing Dependency: libgaim.so.0 is needed by package nautilus-sendto

この問題らしい、ということで次のコマンドを実行する。

  $ sudo yum install yum-utils
  $ sudo yumdownloader nautilus-sendto
  $ sudo rpm -Uvh –nodeps nautilus-sendto[タブキーを押して補完する]

もう一度 groupinstall すると問題なくインストールが始まった!

GNOME は、パッケージ数が 60 個くらいあるのでインストールに時間がかかる。

最後に、日本語フォントをインストールする。

  $ sudo yum install fonts-ja* ttfonts-ja*

 

Software Design 6月号に執筆しました

Software Design 6月号(今月号)の特集「管理者必見!システムトラブル一刀両断」ー障害の発見から原因切り分け、解決までーの第3章システム編に執筆しました。

僕が管理者になってから、実際に体験したシステムまわりのトラブルとその解決方法について書きました。

よろしければ、ごらんください。

Software Design (ソフトウエア デザイン) 2008年 06月号 [雑誌]

memcached を nagios で監視する方法

memcached のサービス監視を nagios で監視するにはどうしたらいいかなと思っていたら、先日の YAPC のレポートの memcached in mixi で mixi は check_tcp を使っていることを知ってさっそくサーバに設定してみた。/etc/nagios/commands.cfg に、次の設定を追加して localhost.cfg に対象サーバの設定を変更した。

define command{

        command_name    check_memcached

        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 11211

        }

この他にも nagios の memcahed プラグインもあるようです。

wp-amazon プラグインが動作しない

WordPress で、かなり使い易い wp-amazon プラグインですが、ECS 3.0 が終了してしまった影響力だとは思いますが検索できなくなっています。

具体的には、Wp-amazon 2.1にあるように修正すれば WordPress 2.5 でもちゃんと動作する。

wp-amazon.php の差分は、次の通りになります。

 

— wp-amazon.php-org   Fri May 16 10:14:14 2008

+++ wp-amazon.php       Fri May 16 12:44:44 2008

@@ -141,7 +141,7 @@

                             <option value=”fr” <?php echo $var[‘fr’]; ?>><?php _e(‘France’, ‘wpamazon’); ?></option>

                             <option value=”co.uk” <?php echo $var[‘co.uk’]; ?>><?php _e(‘Great Britain’, ‘wpamazon’); ?></option>

                             <option value=”de” <?php echo $var[‘de’]; ?>><?php _e(‘Germany’, ‘wpamazon’); ?></option>

–                            <option value=”co.jp” <?php echo $var[‘co.jp’]; ?>><?php _e(‘Japan’, ‘wpamazon’); ?></option>

+                            <option value=”jp” <?php echo $var[‘jp’]; ?>><?php _e(‘Japan’, ‘wpamazon’); ?></option>

                             <option value=”com” <?php echo $var[‘com’]; ?>><?php _e(‘United States’, ‘wpamazon’); ?></option>

                         </select>

 本家にも報告していこうと思って、Wp Aamzon の Google Group を見てみたら、すでに同じ問題が報告されていました。すばらしいと思って、僕も返信してパッチを投げておきました。

次のバージョンで改善されるとうれしいという人は、たくさん返信することできっとなおしてくれるはず。

 

あと、カタカナで検索すると検索結果が表示されないっぽい。amazon の方からはちゃんと検索結果が返ってきているみたいだし、検索結果がすべて表示されていたあと、Loading… が消えない。

なお、ブラウザは Safari。

前者の問題は、Firebug でデバッグしてみるとこの問題なので、Accordion Plugin をインストールすればいいのかなと思ってインストールしたらカタカナでは検索できるようになったが、Firebug で次のエラーが出てしまう。

jQuery(rslt).appendTo(“#wpa”).Accordion is not a function

wp-amazon/js/wp-amazon.js

Line 177

 

どうも、jQuery の Accordion プラグインがちゃんと組み込まれていないだ。最新版だとうまく動作しなかったのでこのサイトから、jquery.accordion.pack.js をダウンロードしてきて wp-amazon/js に accordion.js にリネームする。

さらに、amazon.php を次のように accordion.js を読み込むように変更したらちゃんと Loading… も消えました。

 

@@ -200,6 +200,7 @@

     </script>

             <script type=”text/javascript” src=”../wp-content/plugins/wp-amazon/js/wp-amazon.js”></script>

             <script type=”text/javascript” src=”../wp-content/plugins/wp-amazon/js/dimensions.js”></script>

+            <script type=”text/javascript” src=”../wp-content/plugins/wp-amazon/js/accordion.js”></script>

 <?php

   }

無事解決してよかった。この件も報告しておいた。(現在メッセージの承認待ちっぽい)

めでたし、めでたし。

Yahoo! サイトエクスプローラーを試してみた

Yahoo! のサイトエクスプローラーをこのサイトに組み込んでみた。ブログのサイトなので、ファイルのアップロードはめんどくさいので、META タグを記述して、現在認証待ち。Google のとは違ってすぐには認証されないのは、Yahoo! らしさというところでしょうか?
認証中は、META タグを消すことができないので、しばらく様子をみてみようと思います。

Mac OSX の Mail.app の文字エンコードについて注意

最近、仕事マシンを MacBook に移行して、晴れてマカーとなりました。メールは、もちろん付属の Mail.app を使っているのですが、今日メールの文字コードがおかしいと指摘されました。

具体的には、次のようになっていました。

 

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
X-Mailer: Apple Mail (2.919.2)

 

なぜか、UTF-8 です。前から携帯電話宛にメールを送ると文字化けがするのが気になっていて、ISO-2022-JP に文字エンコードを設定すると文字化けは発生していませんでした。携帯電話宛にはたまにしか送らないのでほおっておいたのですが、修正方法を探してみました。

そうすると、外国語モードの Mac OS X の Mail.app の文字エンコードを ISO-2022-JP にする方法に設定方法が書かれていました。

どうやら、優先言語を日本語以外に設定するとおかしくなってしまうようです。さっそく、Terminal.app から、次のコマンドを実行して設定してみました。

 

defaults write com.apple.mail NSPreferredMailCharset “ISO-2022-JP”

 

そのあと、Mail.app からメールを送信すると次のようになっていました。

 

Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
X-Mailer: Apple Mail (2.919.2)

 

これで問題なしです。無事解決できてよかったです。
めでたし、めでたし。
  • 1
  • 2