“tips” カテゴリのアーカイブ


こんな些細なことにはまったのでメモです。
次のようにtitleタグが「。」で終わるHTMLだとIE7で表示されません。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>タイトル。</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Hello World</h1>
</body>
</html>

XML宣言が無いとだめなのか!?と疑ってみたが関係なし。

解決方法はなんとも簡単。
Content-typeの設定をtitleタグより上に書くようにしたら問題なく表示されるようになった。
これまでtitleタグはheadの先頭に書くようにしていたけれどもContent-typeのmetaタグを先に書くように習慣付けておいたほうが無難そうだ。

Comments [tips] titleタグが「。」で終わるとIE7でコンテンツが表示されない罠 はコメントを受け付けていません。


概要

WebアプリケーションやWebサイトを構築するときにヘッダーやサイドバー領域などにメニューやタブを(アコーディオンや短冊型など)配置するデザインが一般的かと思います。
このようなデザインでは現在表示されているページのメニューには class=”active” などと指定してフォーカスを当てるようになっていることが多いですね。
全てのページをべたで静的HTMLとして作る場合はいいですがメニューやサイドバーを共通部品としてSSIやサーバーサイドのテンプレートエンジンでインクルードしている場合はどうやってメニューにフォーカスを当てようか思案のしどころです。

このような場面で使えそうなアイディアを紹介します。

アイディア

jqueryを使ってonload時にメニューにフォーカスを当てる(classを追加する)ようにします。
まず、メニューのフォーカスを当てたい要素には menu_ではじまるidをつけます。
つぎに、各ページのbodyのクラス属性に activeにしたいメニューのid名を列挙します。(メニューが多段構造になっている場合を考慮。)
このようにすることで全ページを共通処理できます。

jqueryコードサンプル


jQuery(function($){
	// メニューアクティブ
    var classes = $('body').attr('class');
    if (classes) {
        var class_ar = classes.split(' ');
        for (i=0; i<class_ar.length; i++) {
            if (class_ar[i].match(/^menu_/)) {
                var obj = $("#"+class_ar[i]);
                obj.addClass("active");
            }
        }
    }
});

Comments メニューやタブをjavascriptでactiveにするちょっとしたアイディア はコメントを受け付けていません。


svn: Can't open activity db: No such file or directory

などというエラーが出てコミットできない場合は作成したリポジトリ直下にdavディレクトリが存在するか確認してください。
どうやら1.5から作成されなくなったようで、手動で作成してやらないといけません。

http://www.synapz.jp/mrsy/2009/05/webdavsvn/

Comments [tips] 新しく作成したSVNリポジトリにファイルが追加できなくなった場合は はコメントを受け付けていません。


  • 空メールを受信したい
  • ケータイからメールで画像アップロードを受け付けたい

など、複数のアドレスを1つの宛先(パイプ経由でプログラムに渡す)にまとめたい時にpostfixでは正規表現でのalias_mapが使えます。
しかし、この正規表現の指定方法が曲者でした。

エイリアスで正規表現を使うには main.cf に以下のように設定をして、

alias_maps = hash:/etc/aliases,regexp:/etc/postfix/aliases.reg

/etc/postfix/aliases.reg に正規表現と宛先のペアを書いていくだけです。

さてここで問題の正規表現の書き方ですが、例えば hogexxxx@example.com (xxxxは数字4桁) というアドレスを hogeに転送したい場合、

/^hoge[1-9]{4}$/ hoge

でも

/^hoge[1-9]{4}@example.com$/ hoge

でも期待通りになりません。

正解は

/^hoge[1-9]{4}(@example.com)?$/ hoge

です。
つまり「ドメイン付でもドメインなしでもヒットするように正規表現を書かなければいけない」のです。

なぜかというとpostfixの仕様が以下のようになっているためです。

  • local_recipient_mapsでのユーザの存在確認の際、正規表現テーブルではドメイン付きで検索している
  • それに対してlocalがalias_mapsとして検索する時にはローカルパートのみで検索している

なんだか悲しい仕様ですね。。

参考

Comments postfix の alias を正規表現で指定したいときの注意点 はコメントを受け付けていません。


Unix/Linux系サーバーでどのディレクトリ配下が容量を食っているかを調べるには。
例えば /var 配下のディレクトリを調べたい場合、

# du -ks *

とすればOK。各ディレクトリごとの容量(kbyte単位)が確認できる。

Comments [tips] Linuxで容量を食ってるディレクトリを調べる はコメントを受け付けていません。