<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>tf::blog</title>
    <link rel="alternate" type="text/html" href="http://blog.on-net.jp/tf/" />
    
    <id>tag:blog.on-net.jp,2010-07-31:/tf//6</id>
    <updated>2011-02-23T14:35:44Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.03</generator>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/tf_blog" /><feedburner:info uri="tf_blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Catalyst 5.8へのアップグレード</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/NjaQp164t_Y/catalyst-58.html" />
    <id>tag:blog.on-net.jp,2011:/tf//6.51</id>

    <published>2011-02-23T14:35:34Z</published>
    <updated>2011-02-23T14:35:44Z</updated>

    <summary>会社の業務で使っているシステムのアップグレードをそろそろ手をつけなきゃなと思いつ...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="catalyst" label="Catalyst" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="psgi" label="PSGI" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="shellscript" label="shellscript" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        &lt;div&gt;会社の業務で使っているシステムのアップグレードをそろそろ手をつけなきゃなと思いつつ、どんどん時間が過ぎていった。&lt;/div&gt;&lt;div&gt;変更点などを大まかに頭に入れつつ、熟慮した結果が「作り直したほうが早い」だったため、先延ばしにしていたがそろそろ限界です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;「動いているものには手を出すな」が鉄則だけど、あとあとメンテナンスしなければいけなくなった時に古すぎて手の施しようもなくなってしまう可能性が高いからな・・・。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table width="100%"&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;th&gt;&lt;/th&gt;&lt;th&gt;現状&lt;/th&gt;&lt;th&gt;アップグレード後&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Language&lt;/td&gt;&lt;td&gt;perl 5.8&lt;/td&gt;&lt;td&gt;perl 5.12&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Flamework&lt;/td&gt;&lt;td&gt;Catalyst 5.7&lt;/td&gt;&lt;td&gt;Catalyst 5.8&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Web Server&lt;/td&gt;&lt;td&gt;Apache2&lt;/td&gt;&lt;td&gt;Apache2&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Application Server&lt;/td&gt;&lt;td&gt;Apache2 + mod_perl&lt;/td&gt;&lt;td&gt;Starman&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;/div&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一番大きいな変化はMooseベースになったことと、使っていたPluginなどの多くが非推奨になっていること。&lt;/div&gt;&lt;div&gt;ビジネスロジック自体は変える必要がないが、土台だけをきれいサッパリかえることにする。&lt;/div&gt; 
        &lt;div&gt;Catalystの5.8へのアップグレードはTest::WWW::Mechanizeがうまく入らなかった以外はほぼノンストップでいけた。&lt;/div&gt;&lt;div&gt;Apache2 + mod_perlからStarmanにする際にCatalystをPSGI経由で起動するように変更するのだが、これが一癖あった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;StarmanはStart::Server経由で下記のような感じで起動してみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;sudo /usr/local/bin/start_server \
    --port=PortNo \
    -- starman \
    --workers X \
    /path/to/MyApp.psgi
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Myapp.pmでは@INCから見つけられない、Myapp.psgiでは設定ファイルが見つからないというエラーになる。&lt;/div&gt;&lt;div&gt;どちらもFindBinモジュールで現在のPath情報を取得して、その位置から相対的に自分のモジュールのパスや設定ファイルの位置を指定していた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;エラー出力をみてみると、どうやら/usr/local/binが入っている。もしや・・・。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;$ file /usr/local/bin/start_server
/usr/local/bin/start_server: a /usr/local/bin/perl script text executable
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;start_server自体が最初にKickされるperlのスクリプトなので、start_serverの位置が入ってしまったということか・・・。&lt;/div&gt;&lt;div&gt;このままでは本番環境やテスト環境によってプロジェクトのパスが変わるたびに内容を書き換えないといけなくなってしまう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cwd::getcwdなどでも現在のパス情報を取得できなかったため、起動スクリプトでhostnameで振り分け、環境変数を経由してプロジェクトのルートのパスを渡すことにした。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;hostnameでの切り分け部分&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;
HOST=$(hostname)

if [ $HOST = 'production' ]; then
    HOME='/path/to/production/home'

elif [ $HOST = 'development' ]; then
    HOME='/path/to/development/home'

else
    echo "Please set infomation of host!"
    return 0

fi
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;start_serverの起動部分&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;sudo CATALYST_HOME=$HOME /usr/local/bin/start_server \
    --port=8080 \
    -- starman \
    --workers 5 \
    $HOME/script/MyApp.psgi &amp;amp;
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それに伴い、MyApp.pmとMyApp.psgiのライブラリのパスと設定ファイルの位置も下記のように変更した。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MyApp.pm&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: perl"&gt;__PACKAGE__-&amp;gt;config('Plugin::ConfigLoader' =&amp;gt;
                    {file =&amp;gt; "$ENV{CATALYST_HOME}/aquos-web.yml"});
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MyApp.psgi&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: perl"&gt;use lib "$ENV{CATALYST_HOME}/lib";
use aquos::Web;
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;最終的に下記のwikiを参考に、start_serverの起動スクリプトを作成し、MyApp.psgiはとりあえずアクセスログ、エラーログ、セッション、Basic認証を有効にして最小限の環境で開発をスタートしていくことにした。&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.catalystframework.org/wiki/deployment/perlbal-starman-psgi"&gt;perlbal-starman-psgi - Catalyst::Wiki&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;starmanctl.sh&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;#!/usr/bin/env bash

PIDFILE='/tmp/start_server.pid'
START_SERVER=/usr/local/bin/start_server
APP=MyApp.psgi
PORT=8080
WORKERS=5
CATALYST_HOME=
HOME=
DEBUG=0 

check_host() {
    HOST=$(hostname)

    if [ $HOST = 'production' ]; then
        HOME='/path/to/production/home'

    elif [ $HOST = 'development' ]; then
        HOME='/path/to/development/home'
        DEBUG=1

    else
        echo "** Please set the infomation of this host!"
        exit 1

    fi
}

check_running() {
    [ -s $PIDFILE ] &amp;amp;&amp;amp; sudo kill -0 $(cat $PIDFILE) &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
}

_start() {

    sudo CATALYST_HOME=$HOME \
        CATALYST_DEBUG=$DEBUG \
        $START_SERVER \
        --port=$PORT \
        --pid-file=$PIDFILE \
        -- starman \
        --workers $WORKERS \
        $HOME/script/$APP &amp;amp;

    return 1
}

case "$1" in
    start)
        if check_running ; then
            echo "** Already running."
            exit 1;
        fi

        check_host

        _start
        ;;
    stop)
        sudo killall start_server
        ;;
    restart)
        sudo kill -HUP `cat $PIDFILE`
        ;;
     *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MyApp.psgi&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: perl"&gt;#!/usr/bin/env perl

use strict;
use warnings;
use Plack::Builder;

use lib "$ENV{CATALYST_HOME}/lib";
use MyApp;

my $access_log = "$ENV{CATALYST_HOME}/script/log/access_log";
my $error_log  = "$ENV{CATALYST_HOME}/script/log/error_log";

# Main
MyApp-&amp;gt;setup_engine('PSGI');
my $app = sub { MyApp-&amp;gt;run(@_) };

# Extention
builder {
    my $logfh;
    open $logfh, "&amp;gt;&amp;gt;", $access_log or die $!;
    open STDERR, "&amp;gt;&amp;gt;", $error_log or die $!;
    $logfh-&amp;gt;autoflush(1);

    enable "AccessLog", logger =&amp;gt; sub { print $logfh @_ };
    enable "Auth::Basic", authenticator =&amp;gt; \&amp;amp;authen_cb;
    enable 'Session';
    enable 'Debug';
    $app;
};

sub authen_cb {
    my($username, $password) = @_;
    return $username eq 'username' &amp;amp;&amp;amp; $password eq 'password';
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MyApp.pm(抜粋)&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush: perl"&gt;
package MyApp;

use Moose;
use namespace::autoclean;

use Catalyst::Runtime 5.80;
                                                                                                                                                    
use Catalyst;
extends 'Catalyst';

our $VERSION = '0.01';

__PACKAGE__-&gt;config('Plugin::ConfigLoader' =&gt;
                    {file =&gt; "$ENV{CATALYST_HOME}/aquos-web.yml"});

our @plugins = qw/                                                                                                                                                                 
                     ConfigLoader                                                                                                                                                  
                     Unicode                                                                                                                                                       
                     Unicode::Encoding                                                                                                                                             
                     Static::Simple                                                                                                                                                
                 /;

if ("$ENV{CATALYST_DEBUG}") {
    push(@plugins, 'Log::Colorful');
    push(@plugins, 'StackTrace');
}
                                                                                                                                                           
__PACKAGE__-&gt;setup(@plugins);
&lt;/pre&gt;
&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=NjaQp164t_Y:35QDB7jcYAg:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=NjaQp164t_Y:35QDB7jcYAg:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=NjaQp164t_Y:35QDB7jcYAg:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/NjaQp164t_Y" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2011/02/catalyst-58.html</feedburner:origLink></entry>

<entry>
    <title>Emacsでsimplenote-modeを使ってみる。</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/bc-WGDFAJJc/emacssimplenote-mode.html" />
    <id>tag:blog.on-net.jp,2011:/tf//6.48</id>

    <published>2011-01-23T01:25:05Z</published>
    <updated>2011-01-24T12:46:28Z</updated>

    <summary>最近スマートフォンの性能が上がって、ほとんどPCを開かなくても済むようになった。...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="emacs" label="Emacs" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        &lt;div&gt;&lt;div&gt;最近スマートフォンの性能が上がって、ほとんどPCを開かなくても済むようになった。そうなっていくとスマートフォンとの相性がいいサービスばかり利用するようになってくる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;DropboxやEvernoteはもちろん使っているが、スマートフォンではどちらも扱いたいデータをダウンロードしてから編集するとプロセスを踏むので、気軽に編集、更新という使い方はしにくかった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;気軽にテキストデータだけを扱い、Emacsから扱えるサービスを探していたのだが、simplenoteというテキスト情報のみを扱うクラウド的なサービスがあったので使ってみた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;simplenote&lt;/div&gt;&lt;div&gt;&lt;a href="http://simple-note.appspot.com/"&gt;http://simple-note.appspot.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;simplenote.el&lt;/div&gt;&lt;div&gt;&lt;a href="https://github.com/cefstat/simplenote.el"&gt;https://github.com/cefstat/simplenote.el&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まだ書きかけの文章やプログラムのコードの一部などを書きためておいて、ある程度完成したらEvernoteなどに保存している。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;色々なメモをEmacsからsimplenoteに直接書き込め、それがPCやスマートフォンからも簡単に閲覧、編集、同期ができるということでしばらく使ってみたのだが、simplenoteのサーバーと手動で同期しないといけないので、それを忘れてしまうと意味が無い。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;やはりDropboxのように同期することを意識しないでできるようでないと。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そこで、simplenoteでメモをとっているときに、bufferをsaveしたらsimplenoteのサーバーと同期するようにしてみた。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
        &lt;div&gt;大まかな処理の流れはこんな感じ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;
(defun simplenote-sync-after-save ()
  "If there is the buffer on simplenote-directory, sync the buffer to simplenote."
  (interactive)
  (when (simplenoteを使っている時)
    (simplenoteの同期処理)
    その他の処理...
    ))
&lt;/pre&gt;&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;通常simplenote-modeでsimplenote上のノートを扱っているときは、simplenote-directory/notes/以下にbufferを作成し、それを編集している。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;simplenoteとの同期はsimplenoteのbufferを扱っているときのみ同期して欲しいので、それを判断する条件として現在のディレクトリがsimplenote-directory(初期設定値は "~/.simplenote")にマッチするかどうかで判断することにする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;pre class="brush: bash"&gt;
(string-match simplenote-directory default-directory)
&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;また、simplenoteの同期処理は(simplenote-sync-notes)なので、上記を踏まえてlispで書くとこうなる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;

&lt;pre class="brush: bash"&gt;(defun simplenote-sync-after-save ()
  "If there is the buffer on simplenote-directory, sync the buffer to simplenote."
  (interactive)
  (when (simplenoteを使っている時)
    (simplenoteの同期処理)
    その他の処理...
    ))
&lt;/pre&gt;&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ちなみに新しくノートを作ったときは、"note-[0-9]+"という名前のbufferをsimplenote-directory/new/以下につくる仕様になっている。このままだとsaveする度に新しいノートを追加してしまうので、その時は同期したあとにbufferを消去して、simplenote-browseを呼び出すようにする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;simplenoteの新規ノートのディレクトリの変数を定義して&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;(let (simplenote-new-note-dir)
  (setq simplenote-new-note-dir (concat (file-name-as-directory simplenote-directory) "new")))
&lt;/pre&gt;&lt;/div&gt;

&lt;div&gt;--&amp;gt; 初期設定値では"~/.simplenote/new"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;現在のディレクトリが新規ノートのディレクトリにマッチするかどうかを判断して、マッチする場合はbufferを消去後、simplenote-browseを呼び出す。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush: bash"&gt;(when (string-match simplenote-new-note-dir default-directory)
  (kill-buffer (get-buffer (current-buffer)))
  (simplenote-browse))
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;最終的にはこのように。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;pre class="brush: bash"&gt;(defun simplenote-sync-after-save ()
  "If there is the buffer on simplenote-directory, sync the buffer to simplenote."
  (interactive)
  (when (string-match simplenote-directory default-directory)
      (simplenote-sync-notes)
      (let (simplenote-new-note-dir)
        (setq simplenote-new-note-dir (concat (file-name-as-directory simplenote-directory) "new"))
        (when (string-match simplenote-new-note-dir default-directory)
          (kill-buffer (get-buffer (current-buffer)))
          (simplenote-browse)))))
&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;あとはafter-save-hookに引っ掛けてしまえば、完成。&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush: bash"&gt;(add-hook 'after-save-hook 'simplenote-sync-after-save)
&lt;/pre&gt;&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これでsimplenoteのサーバーと同期することを意識しないでメモをどんどん取っていける環境ができた。&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=bc-WGDFAJJc:ynh58VnvqqY:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=bc-WGDFAJJc:ynh58VnvqqY:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=bc-WGDFAJJc:ynh58VnvqqY:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/bc-WGDFAJJc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2011/01/emacssimplenote-mode.html</feedburner:origLink></entry>

<entry>
    <title>ドコモコネクションマネージャー</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/gN-FVyrr9jY/post-2.html" />
    <id>tag:blog.on-net.jp,2009:/tf//1.27</id>

    <published>2009-09-17T12:19:57Z</published>
    <updated>2009-09-17T12:24:13Z</updated>

    <summary>Snow Leopardにはまだ対応してないみたい・・・。起動してもちゃんと動か...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="docomo" label="docomo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        Snow Leopardにはまだ対応してないみたい・・・。&lt;br /&gt;起動してもちゃんと動かないし、新規でインストールもできない。&lt;br /&gt;&lt;br /&gt;ただし、過去のドライバーなどの動作は問題ないようなので、環境設定のネットワークの項目で直接つなげば問題ないようだ。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="a2502.jpg" src="http://blog.blog.on-net.jp/tf/a2502.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="398" width="459" /&gt;&lt;/span&gt;&lt;br /&gt; &lt;div&gt;ドコモコネクションマネージャーでつなげていると、アカウント名とパスワードは空白になっているが、プロバイダのアカウント情報を入れると手動で接続ができる。&lt;br /&gt;&lt;/div&gt;
        
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gN-FVyrr9jY:TLzYiH_oyQY:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gN-FVyrr9jY:TLzYiH_oyQY:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gN-FVyrr9jY:TLzYiH_oyQY:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/gN-FVyrr9jY" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2009/09/post-2.html</feedburner:origLink></entry>

<entry>
    <title>Catalyst 5.7x on Snow Leopard</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/ToRylZkrSw8/catalyst-57x-on-snow-leopard.html" />
    <id>tag:blog.on-net.jp,2009:/tf//1.26</id>

    <published>2009-09-10T13:11:26Z</published>
    <updated>2011-02-21T16:09:33Z</updated>

    <summary>MacBookでCatalystの開発をしていて、Snow Leopardにアッ...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        MacBookでCatalystの開発をしていて、Snow Leopardにアップグレードしたら、案の定手間取った。&lt;br /&gt;&lt;br /&gt;本番環境は下記の通り。&lt;br /&gt;&lt;br /&gt;OS: i386 GNU/Linux&lt;br /&gt;Perl: v5.8.x built for i686-linux&lt;br /&gt;Aplication Server : Apache/2.2.x (Unix) with mod_perl 2.x&lt;br /&gt;DB: PostgreSQL 8.x&lt;br /&gt;&lt;br /&gt;なるべくこの環境に近い開発環境をSnow Leopardで作ろうと思ったが、なかなかうまくいかない・・・。&lt;br /&gt;&lt;br /&gt;問題点を整理してみるとうまくいかない原因は、&lt;br /&gt;&lt;br /&gt;・デフォルトで64bitでコンパイルされている、またはコンパイルしてしまうので、アーキテクチャがそろわないため、不具合が起きる&lt;br /&gt;・CPANのモジュールが意図せずバージョンがあがってしまう&lt;br /&gt;・Universal仕様でコンパイルされていると、Dinamicにlinkする場合にどのアーキテクチャ用にすべきかわからずに停止してしまう&lt;br /&gt;&lt;br /&gt;などなど。64bitへの布石がウリであるSnow Leopardならではの不具合。&lt;br /&gt;&lt;br /&gt;解決の方向性としては、&lt;br /&gt;1. 関連するものをすべてi386, 32bitに統一する&lt;br /&gt;2. CPANのモジュールを本番環境と同じバージョンに保持する&lt;br /&gt;&lt;br /&gt;っと決めるのは簡単なのだが、これがまたなかなか大変・・・。&lt;br /&gt;  
        まずは、Perl。
&lt;br /&gt;&lt;br /&gt;
デフォルトのPerlは5.10.0で、しかも64bitでモジュールをコンパイルしてしまう。
&lt;pre class="brush: bash"&gt;$ file `which perl`
/usr/bin/perl.org: Mach-O universal binary with 3 architectures
/usr/bin/perl.org (for architecture x86_64):    Mach-O 64-bit executable x86_64
/usr/bin/perl.org (for architecture i386):      Mach-O executable i386
/usr/bin/perl.org (for architecture ppc7400):   Mach-O executable ppc
&lt;/pre&gt;
今回はバージョンを本番環境とあわせるため、5.8.xを使用したい。/usr/binには、perl5.10.0とperl5.8.9も用意されているのだが、
&lt;pre class="brush: bash"&gt;$ file /usr/bin/perl5.8.9
/usr/bin/perl5.8.9.org: Mach-O universal binary with 2 architectures
/usr/bin/perl5.8.9.org (for architecture i386): Mach-O executable i386
/usr/bin/perl5.8.9.org (for architecture ppc7400):      Mach-O executable ppc
&lt;/pre&gt;
となっているため、CPANのモジュールをコンパイルする際に、
&lt;pre class="brush: bash"&gt;Can't load 'lib/auto/File/Glob/Glob.bundle' for module File::Glob: dlopen(lib/auto/File/Glob/Glob.bundle, 1): no suitable image found.  Did find:
        lib/auto/File/Glob/Glob.bundle: mach-o, but wrong architecture at lib/XSLoader.pm line 73.
 at lib/File/Glob.pm line 96
Compilation failed in require at installperl line 133.
BEGIN failed--compilation aborted at installperl line 133.
make[1]: *** [install.perl] Error 255
make: *** [install] Error 2
&lt;/pre&gt;
というようになってしまう。もしSnow Leopard付属のPerlを利用する場合は、
&lt;pre class="brush: bash"&gt;
$ cd /usr/bin
$ sudo lipo ./perl5.8.9 -thin i386 -output ./perl.5.8.9.i386
$ sudo mv perl{,.org}
$ sudo ln -s ./perl.5.8.9.i386 ./perl
&lt;/pre&gt;
もしくは
&lt;pre class="brush: bash"&gt;$ sudo cat &amp;gt; /usr/bin/perl5.8.9.i386
#!/bin/sh
/usr/bin/arch -i386 /usr/bin/perl5.8.9
^D
$ sudo chmod 755 /usr/bin/perl5.8.9.i386
$ sudo ln -s /usr/bin/perl5.8.9.i386 /usr/bin/perl
&lt;/pre&gt;
というように、i386のみのバイナリにしておく。&lt;br /&gt;
&lt;br /&gt;
自前でPerlを入れる場合は、/usr/bin/perl5.8.9 -Vの出力を参考に、
&lt;pre class="brush: bash"&gt;$ sh ./Configure ¥
    -ds -e ¥
    -Accflags="-arch i386 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include" ¥
    -Aldflags="-arch i386 -L/usr/local/lib" ¥
    -Alddlflags="-arch i386 -bundle -undefined dynamic_lookup -L/usr/local/lib"
$ make; make test
$ sudo make install
&lt;/pre&gt;
i386 32bitバージョンのみのバイナリを作成しておく。&lt;br /&gt;
&lt;pre class="brush: bash"&gt;$ file /usr/local/bin/perl
/usr/local/bin/perl: Mach-O executable i386
&lt;/pre&gt;

&lt;br /&gt;
&lt;br /&gt;
Snow Leopard付属のApacheは例のごとくUnivarsalで、デフォルトが64bitで起動する・・・。
&lt;pre class="brush: bash"&gt;$ file /usr/sbin/httpd
/usr/sbin/httpd: Mach-O universal binary with 3 architectures
/usr/sbin/httpd (for architecture x86_64):  Mach-O 64-bit executable x86_64
/usr/sbin/httpd (for architecture i386):    Mach-O executable i386
/usr/sbin/httpd (for architecture ppc7400): Mach-O executable ppc
&lt;/pre&gt;

Apacheも同様にi386 32bitバージョンを作成するか、lipoコマンドで32bitバイナリを作成する。&lt;br /&gt;
自前でコンパイルする場合は、CFLAGSとARCHFLAGSを指定するとよい。
&lt;pre class="brush: bash"&gt;$ CFLAGS="-arch i386" ARCHFLAGS="-arch i386" ¥
./configure ¥
     --prefix=/usr/local/apache2 ¥
     --enable-module=so ¥
     --enable-proxy ¥
     --enable-dav ¥
     --enable-dav-fs ¥
     --enable-dav-lock ¥
     --enable-rewrite ¥
     --with-included-apr ¥
     --enable-ssl ¥
     --with-ssl=../openssl-$(OPENSSL_VERSION) ¥
     --enable-suexec ¥
     --with-suexec-caller=$(APACHE_USER) ¥
     --with-mpm=prefork ¥;
     make;
$ sudo make install
&lt;/pre&gt;
fileコマンドで確認。
&lt;pre class="brush: bash"&gt;$ file /usr/local/apache2/bin/httpd
/usr/local/apache2/bin/httpd: Mach-O executable i386
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
mod_perlも32bit版のApacheで。
&lt;pre class="brush: bash"&gt;$ perl Makefile.PL ¥
MP_APXS=/usr/local/apache2/bin/apxs; ¥
make; sudo make install

$ file /usr/local/apache2/modules/mod_perl.so
/usr/local/apache2/modules/mod_perl.so: Mach-O bundle i386
&lt;/pre&gt;

&lt;br /&gt;
&lt;br /&gt;
DBもCFLAGSとARCHFLAGSを同様に指定してコンパイルするか、バイナリ版を利用する場合は、fileコマンドで32bitバージョンかどうか確認すること。
&lt;br /&gt;
ちなみに、PostgreSQLは下記のようにした。
&lt;pre class="brush: bash"&gt;$ ARCHFLAGS='-arch i386' ¥
CFLAGS='-arch i386' ¥
PERL=/usr/bin/perl ¥
./configure ¥
--prefix=/usr/local/pgsql ¥
--with-perl ¥
--with-pam ¥
--with-bonjour ¥
--with-libxml ¥
--enable-debug ¥
&lt;/pre&gt;
ここまでで、必要なすべての物がi386、32bitバージョンでそろうはず。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CPANモジュール。これが一筋縄ではいかない。まずバーションをあわせるため、本番環境の.cpanディレクトリをローカルにコピーし、ミラーを作成しておく。モジュールのダウンロード先をローカルのミラー二向ければ、理論上は同じバージョンでそろうはず。&lt;br /&gt;
&lt;pre class="brush: bash"&gt;$ mv .cpan ~/cpan
$ sudo cpan
&amp;gt; o conf urllist unshift file:///path/to/cpan/sources/
&amp;gt; o conf commit
&lt;/pre&gt;
o confコマンドで、urllistがローカルに置いたミラー先に向いていることを確認し、install Task::Catalystすればよいのだが、上記の設定で指定しても、あくまでも一次参照先でしかないので、ちょっと気を許すとftp.cpan.orgに取りにいってしまう。&lt;br /&gt;
&lt;br /&gt;
そのため、ネットに接続しない環境にしておき、モジュールをインストールするほうがよい。たとえばHoge::Fugaというモジュールをインストールする場合、下記のような優先順位でインストールするとよい。
&lt;pre class="brush: bash"&gt;&amp;gt; install Hoge::Fuga
&amp;gt; install H/HF/HOGEFUGA/Hoge-Fuga.tar.gz
&lt;/pre&gt;
これでもできない場合は、しょうがなくcpan.orgからダウンロードする。tar玉の指定が大変なので、下記のようにリストを作っておいて、grepすると楽。
&lt;pre class="brush: bash"&gt;$ find /path/to/cpan -name '*.tar.gz' | sed -e 's!/path/to/cpan/sources/authors/id/!!' &amp;gt; cpan.txt
$ grep Hoge cpan.txt
&lt;/pre&gt;
理論上バージョンがそろうはずなのだが、実際にやってみるといつのまにかCatalyst::Runtimeが5.8にあがっていたりする・・・。そういう場合は、
&lt;pre class="brush: bash"&gt;&amp;gt; install M/MR/MRAMBERG/Catalyst-Runtime-5.7014.tar.gz
&lt;/pre&gt;
というように、強引に上書きするしかない。&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
Snow Leopardならではのトラブル。あとから思いかえすと簡単なことなんだけどねぇ・・・。
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=ToRylZkrSw8:ezw-lxjBDM8:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=ToRylZkrSw8:ezw-lxjBDM8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=ToRylZkrSw8:ezw-lxjBDM8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/ToRylZkrSw8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2009/09/catalyst-57x-on-snow-leopard.html</feedburner:origLink></entry>

<entry>
    <title>Apache2がMac OS X 10.5.5 アップデートでおかしくなった件</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/gL73b6PZv-g/apache2mac-os-x-1055.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.23</id>

    <published>2008-10-11T00:52:53Z</published>
    <updated>2011-02-21T16:08:23Z</updated>

    <summary>Mac OS X 10.5.5 アップデートを当てた後、Catalystで動かし...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        &lt;p&gt;Mac OS X 10.5.5 アップデートを当てた後、Catalystで動かしていたアプリケーションが動かなくなった・・・。&lt;/p&gt;

&lt;p&gt;いつかまとめてその辺の環境は書いていくつもりだけど、もともとMac(Leopard)に入っていたApache2にmod_perlをいれて、下記のURLの通りに32bitのバイナリを作って運用していたのだが、&lt;/p&gt;

&lt;a href="http://www.goodfeelin.net/2008/06/mac_os_x_105_php5.php"&gt;Leopard で PHP5 を再構築できなかった話&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;p&gt;どうやら64bitバージョンに置き換えられていたようで、再度作り直すはめに・・・・。&lt;br /&gt;
アップルのサイトにはApache2についての記述は全くないので、少しハマった。&lt;/p&gt;

&lt;a href="http://support.apple.com/kb/HT2405?viewlocale=ja_JP"&gt;Mac OS X 10.5.5 アップデートについて &lt;/a&gt;
        
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gL73b6PZv-g:wvZnxUU1NiE:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gL73b6PZv-g:wvZnxUU1NiE:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=gL73b6PZv-g:wvZnxUU1NiE:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/gL73b6PZv-g" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/10/apache2mac-os-x-1055.html</feedburner:origLink></entry>

<entry>
    <title>Emacs org-mode</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/jRdtYFVH3ok/emacs-orgmode.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.18</id>

    <published>2008-04-11T14:18:47Z</published>
    <updated>2008-04-17T11:48:08Z</updated>

    <summary>普段文章を書くときには、Emacsのoutline-modeを使っていて、内容は...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="emacs" label="Emacs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="orgmode" label="org-mode" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        普段文章を書くときには、Emacsのoutline-modeを使っていて、内容はWikiにまとめる、という流れで情報はまとめていた。&lt;br /&gt;
&lt;br /&gt;
WikiはPuki-wikiを使っているので、見出しがout-lineモードの*(アスタリスク)と共通。&lt;br /&gt;
特に問題は感じていなかったのだが、ショートカットをど忘れしたので、ググっていたら見つけたのがorg-mode。&lt;br /&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="Org-Mode Homepage" href="http://orgmode.org/" target="_blank"&gt;Org-Mode Homepage&lt;/a&gt;&lt;/div&gt;

Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing project planning with a fast and effective plain-text system.

&lt;/blockquote&gt;

        普段文章を書くときに必要な要素といえば、だいたい以下のようなものがあれば事足りる。&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;見出し&lt;/li&gt;
&lt;li&gt;表&lt;/li&gt;
&lt;li&gt;強調&lt;/li&gt;
&lt;li&gt;リンク&lt;/li&gt;
&lt;li&gt;引用&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;h3&gt;見出し&lt;/h3&gt;
見出しはPukiwikiの見出しと同じ、*(アスタリスク)なので都合がいい。&lt;br /&gt;
見出しの開閉はTABキーで行う。&lt;br /&gt;

&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org1.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org1.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="82" width="275" /&gt;&lt;/span&gt;

&lt;h3&gt;表&lt;/h3&gt;
これはみてもらうしかないのだが、区切りは「|-」をつかう。&lt;br /&gt;
その後は、「|」で区切るのだが、入力が終わると自動で整形してくれる。&lt;br /&gt;

&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org2.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org2.png" width="372" height="80" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org3.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org3.png" width="329" height="71" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org4.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org4.png" width="372" height="93" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org5.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org5.png" width="345" height="98" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="org6.png" src="http://blog.blog.on-net.jp/tf/2008/04/17/org6.png" width="376" height="116" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;残りは次回・・・・
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=jRdtYFVH3ok:mk7AkW28Q10:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=jRdtYFVH3ok:mk7AkW28Q10:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=jRdtYFVH3ok:mk7AkW28Q10:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/jRdtYFVH3ok" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/04/emacs-orgmode.html</feedburner:origLink></entry>

<entry>
    <title>FeedBurnerをTypePadに導入したが</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/Be2E5OBdYTE/feedburnertypepad.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.17</id>

    <published>2008-03-22T14:42:59Z</published>
    <updated>2008-03-22T14:43:14Z</updated>

    <summary> TypePadにて、feedburnerを導入する際のやり方はFeedBurn...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="feedburner" label="FeedBurner" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="typepad" label="TypePad" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
         TypePadにて、feedburnerを導入する際のやり方はFeedBurnerに説明があるのだが、&lt;br /&gt;&lt;br /&gt;
 
 &lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="FeedBurnerヘルプTypePadにフィードフレアを導入する手順" href="http://blogs.feedburner.com/ja_JP/help/feedflare/adding_feedflare_to_your_typep/popup/" target="_blank"&gt;FeedBurnerヘルプTypePadにフィードフレアを導入する手順&lt;/a&gt;&lt;/div&gt;

TypePadにフィードフレアを導入する手順

FeedBurnerとTypePadは驚く程親和性が高く、FeedFlareのブログへの導入はこれ以上ない程簡単なものとなっています。

&lt;/blockquote&gt;

その通りにやった結果がこちら・・・・。

        &lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="feedburner14.png" src="http://blog.blog.on-net.jp/tf/2008/03/20/feedburner14.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="236" width="560" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;orz....&lt;br /&gt;&lt;br /&gt;説明ではMain Index Templateのentry-list-stickyに追加するようになっている。
entry-list-stickyは下記のような構造になっていて、

&lt;pre&gt;				 
&amp;lt;!-- entries --&amp;gt;&lt;br /&gt;&amp;lt;MTBlogIfHasSticky&amp;gt;&lt;br /&gt;    &amp;lt;MTBlogStickyEntry&amp;gt;&lt;br /&gt;			Sticky（いつも上に表示するもの）の内容&lt;br /&gt;    &amp;lt;/MTBlogStickyEntry&amp;gt;&lt;br /&gt;&amp;lt;/MTBlogIfHasSticky&amp;gt;&lt;br /&gt;&amp;lt;MTEntries&amp;gt;&lt;br /&gt;    &amp;lt;MTEntryIsSticky&amp;gt;&lt;br /&gt;			通常のエントリーの内容&lt;br /&gt;  &amp;lt;/MTEntryIsSticky&amp;gt;&lt;br /&gt;&amp;lt;/MTEntries&amp;gt;
&lt;/pre&gt;
&lt;p&gt;

そこのフッターの部分に下記のようなコードを埋め込め、と書いてあるけど、
	
&lt;/p&gt;
&lt;pre&gt;&lt;br /&gt;&amp;lt;MTEntries&amp;gt;&lt;br /&gt;&amp;lt;script src="http://feeds.feedburner.jp/YOUR-FEED-URI-HERE?flareitem=&amp;lt;$MTEntryPermalink$&amp;gt;" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/MTEntries&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
&lt;p&gt;
エントリーごとに繰り返すタグである&amp;lt;MTEntries&amp;gt;の中でもう一度繰り返すのだから、考えてみれば当たり前の結果。&lt;br /&gt;
どう考えてもヘルプの内容がよくないと思う・・・。&lt;br /&gt;
&lt;br /&gt;
単純に&amp;lt;MTEntries&amp;gt;を抜いて、stickyと普通のエントリーのfooterに記述しまえばいい。&lt;/p&gt;&lt;p&gt;これでトップページのすべての記事ごとににfeedflareが出力される。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;すべてのページのエントリーにfeedflareを埋め込むとなると、もう一手間必要。&lt;br /&gt;
&lt;br /&gt;残りのページは下記のようになっている。
&lt;/p&gt;&lt;ul&gt;
	&lt;li&gt;Category Archives......カテゴリーから参照した場合のページ&lt;/li&gt;
	&lt;li&gt;DateBased Archives.....日や月別アーカイブから参照した場合のページ&lt;/li&gt;
	&lt;li&gt;Individual Archives....個別のページのリンクから参照した場合のページ&lt;/li&gt;
	&lt;li&gt;Pages..................Webページ&lt;/li&gt;
&lt;/ul&gt;
それぞれのfooter部分に

&lt;pre&gt;	
&amp;lt;script src="http://feeds.feedburner.jp/YOUR-FEED-URI-HERE?flareitem=&amp;lt;$MTEntryPermalink$&amp;gt;" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
	のコードを埋め込めば、ページすべてにfeedflareが出現する。
&lt;/p&gt;
この方がRSSの出力結果に近いと思う。&lt;br /&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Be2E5OBdYTE:gUnU5Eg0jHM:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Be2E5OBdYTE:gUnU5Eg0jHM:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Be2E5OBdYTE:gUnU5Eg0jHM:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/Be2E5OBdYTE" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/03/feedburnertypepad.html</feedburner:origLink></entry>

<entry>
    <title>RSSフィードをFeedBurnerへ</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/HVyX94Qb1E8/rssfeedburner.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.14</id>

    <published>2008-03-05T12:08:13Z</published>
    <updated>2008-03-05T14:38:54Z</updated>

    <summary>RSSフィードをFeedBurnerに委譲しようと思う。他のBlog等でも紹介さ...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rss" label="RSS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="seo" label="SEO" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        RSSフィードをFeedBurnerに委譲しようと思う。&lt;br /&gt;&lt;br /&gt;他のBlog等でも紹介されているように、下記のような理由です。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RSSフィードへのトラフィックの軽減&lt;/li&gt;&lt;li&gt;Movable TypeでのRSSフィード作成の負荷軽減&lt;/li&gt;&lt;li&gt;フィードの購読者などの情報の把握&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;手順としては、下記のような手順になる。&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;FeedBurnerへの登録&lt;/li&gt;&lt;li&gt;RSSフィードの生成方法の変更&lt;/li&gt;&lt;li&gt;RSSフィードへのアクセスをFeedBurnerへ転送&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;
        &lt;h4&gt;FeedBurnerへの登録&lt;/h4&gt;Feedburnerでアカウントを作成し、Feedburner側へはfeedburner.xmlを送信するようにする。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="feedburner5.png" src="http://blog.blog.on-net.jp/tf/2008/03/05/feedburner5.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="201" width="443" /&gt;&lt;/span&gt;Movable Type側で、Atomを生成しているテンプレートの生成ファイル名を変更し、保存、再構築する。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="feedburner3.png" src="http://blog.blog.on-net.jp/tf/2008/03/05/feedburner3.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="270" width="513" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="feedburner4.png" src="http://blog.blog.on-net.jp/tf/2008/03/05/feedburner4.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="264" width="443" /&gt;&lt;/span&gt;念のため、生成したatomがちゃんと読めるか、ブラウザーでアクセスし、問題なければFeedburner側の設定情報を更新する。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;RSSフィードの生成方法の変更&lt;/h4&gt;Movable Type 4.1では、RSSの作成部分は「テンプレートモジュール」の「ヘッダー」の最初の方、&amp;lt;mt:setvatblock&amp;gt;タグの部分になる。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;mt:setvarblock name="html_head" prepend="1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MTIf name="main_template"&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;link rel="alternate" type="application/atom+xml" title="Atom" href="&amp;lt;$MTLink template="atom"$&amp;gt;" /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;link rel="alternate" type="application/rss+xml" title="RSS" href="&amp;lt;$MTLink template="rss"$&amp;gt;" /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MTUnless name="main_index"&amp;gt;&lt;br /&gt;&amp;lt;link rel="start" href="&amp;lt;$MTBlogURL$&amp;gt;" title="Home" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MTUnless&amp;gt;&lt;br /&gt;&amp;lt;$MTCCLicenseRDF$&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MTIf&amp;gt;&lt;br /&gt;&amp;lt;/mt:setvarblock&amp;gt;&lt;/pre&gt;
&lt;br /&gt;今回の場合、AtomとRSSの両方をFeedBurnerに変更するため、&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;mt:setvarblock name="html_head" prepend="1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MTIf name="main_template"&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;link rel="alternate" type="application/atom+xml" title="Atom" href="http://feeds.feedburner.jp/tf_blog" /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.jp/tf_blog" /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MTUnless name="main_index"&amp;gt;&lt;br /&gt;&amp;lt;link rel="start" href="&amp;lt;$MTBlogURL$&amp;gt;" title="Home" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MTUnless&amp;gt;&lt;br /&gt;&amp;lt;$MTCCLicenseRDF$&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MTIf&amp;gt;&lt;br /&gt;&amp;lt;/mt:setvarblock&amp;gt;&lt;/pre&gt;
&lt;br /&gt;に変更する。Feedburner側でRSSとAtomの両方の形式に対応してくれるので、同じものを指定している。&lt;br /&gt;&lt;br /&gt;Movable TypeはRSD、RSS、Atomの3種類のフィードをインデックステンプレート再構築時に生成しているので、RSDとRSSは生成しないようにチェックを外しておく。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;RSSフィードへのアクセスをFeedBurnerへ転送&lt;/h4&gt;Webサーバー側でRSSフィードへのアクセスをFeedBurnerへ転送するのだが、Apacheを使っているのでmod_rewriteで対応する。&lt;br /&gt;&lt;br /&gt;で、この処理をどこでやるのかが悩ましい・・・。&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Apacheの設定ファイル側で指定する。&lt;/li&gt;&lt;li&gt;.htaccessで指定する。&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;上記のどちらでもできるが、サーバー管理者の視点から考えると、Rewriteルールをみるのにディレクトリの.htaccessにまとめられても見逃す可能性があるので、設定ファイルで指定するのがいいでしょう。&lt;br /&gt;&lt;br /&gt;ちなみに、設定ファイルは以下のように分けています。整理整頓は大事です・・・。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;$APACHE_ROOT/conf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache全体の設定、読み込む追加ファイルの指定&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /conf.d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 読み込むモジュールなどの個別の設定&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /virtualhost&amp;nbsp;&amp;nbsp;&amp;nbsp; Virtural Host毎の設定
&lt;/pre&gt;
設定ファイル側に下記のように設定し、apachectl configtestでエラーがないか確認して、stop &amp;amp; start。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;RewriteEngine on&lt;br /&gt;RewriteRule ^/tf/index\.rdf$ http://feeds.feedburner.jp/tf_blog [R=permanent,L]&lt;br /&gt;RewriteRule ^/tf/index\.xml$ http://feeds.feedburner.jp/tf_blog [R=permanent,L]&lt;br /&gt;RewriteRule ^/tf/atom\.xml$&amp;nbsp; http://feeds.feedburner.jp/tf_blog [R=permanent,L]&lt;/pre&gt;
&lt;br /&gt;Redirect時に恒久的に移動した旨を伝えてもらうために、permanentを指定する。&lt;br /&gt;&lt;br /&gt;ちなみに、こういう感じの返答を返します。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;&lt;strong&gt;$ telnet blog.on-net.jp 80&lt;/strong&gt;&lt;br /&gt;Trying 59.106.25.213...&lt;br /&gt;Connected to blog.on-net.jp.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;&lt;strong&gt;GET /tf/index.xml HTTP/1.0&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;HTTP/1.1 301 Moved Permanently&lt;br /&gt;Date: Wed, 05 Mar 2008 14:07:49 GMT&lt;br /&gt;Location: http://feeds.feedburner.jp/tf_blog&lt;br /&gt;Connection: close&lt;br /&gt;Content-Type: text/html; charset=iso-8859-1&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&amp;gt;&lt;br /&gt;&amp;lt;HTML&amp;gt;&amp;lt;HEAD&amp;gt;&lt;br /&gt;&amp;lt;TITLE&amp;gt;301 Moved Permanently&amp;lt;/TITLE&amp;gt;&lt;br /&gt;&amp;lt;/HEAD&amp;gt;&amp;lt;BODY&amp;gt;&lt;br /&gt;&amp;lt;H1&amp;gt;Moved Permanently&amp;lt;/H1&amp;gt;&lt;br /&gt;The document has moved &amp;lt;A HREF="http://feeds.feedburner.jp/tf_blog"&amp;gt;here&amp;lt;/A&amp;gt;.&amp;lt;P&amp;gt;&lt;br /&gt;&amp;lt;/BODY&amp;gt;&amp;lt;/HTML&amp;gt;&lt;br /&gt;Connection closed by foreign host.&lt;/pre&gt;&lt;br /&gt;期待通りの動作をしているのが確認できる。&lt;br /&gt;&lt;br /&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=HVyX94Qb1E8:o-dRCGGY0V0:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=HVyX94Qb1E8:o-dRCGGY0V0:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=HVyX94Qb1E8:o-dRCGGY0V0:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/HVyX94Qb1E8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/03/rssfeedburner.html</feedburner:origLink></entry>

<entry>
    <title>TypePadでのSitemapの作成</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/8yX7ahztAD4/typepadsitemap.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.13</id>

    <published>2008-03-04T15:13:57Z</published>
    <updated>2008-03-04T15:40:52Z</updated>

    <summary> 仕事で使っているTypePadでは、Sitemapはナレッジベースに載っている...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="google" label="Google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="seo" label="SEO" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="typepad" label="TypePad" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
         仕事で使っているTypePadでは、Sitemapは&lt;a href="http://support.typepad.jp/cgi-bin/typepad_jp.cfg/php/enduser/std_adp.php?p_faqid=1233"&gt;ナレッジベース&lt;/a&gt;に載っているものをすこし手を加えたものを利用することにした。&lt;br /&gt;&lt;br /&gt;しかし、ここでトップレベルのSitemapに問題が発生。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
        現状、下記のような構成になっているのだが、&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;example.domain /corp/           本社のブログ&lt;br /&gt;              |&lt;br /&gt;              +/branch_A/       支店Aのブログ&lt;br /&gt;              |&lt;br /&gt;              +/branch_B/       支店Bのブログ&lt;br /&gt;              |&lt;br /&gt;              .&lt;br /&gt;              .&lt;br /&gt;              .&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
このドメインは本社のブログに割り当てているのだが、TypePadの仕様上ブログはサブディレクトリ以下に作ることが望ましい、とのことなので、corpディレクトリ以下に作っている。&lt;br /&gt;&lt;br /&gt;インデックステンプレートを作成すると、corpディレクトリ以下に作成されてしまい、トップレベルのsitemapが自動生成されない。また、作成されたとしても、各支店のsitemap.xmlをどうやって読んでもらうようにすればいいのか。&lt;br /&gt;&lt;br /&gt;まあ、こういうときの基本は本家のドキュメントをしっかりと読む、ということにつきる。&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="sitemaps.org - プロトコル" href="http://www.sitemaps.org/ja/protocol.php" target="_blank"&gt;sitemaps.org - プロトコル&lt;/a&gt;&lt;/div&gt;

サイトマップ インデックス ファイル (複数のサイトマップ ファイルのインデックス) を使用する場合

&lt;/blockquote&gt;
つまり、こう記述すればよいわけだ。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; /* 本社のサイトマップ */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sitemap&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;http://example.dmain/corp/&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/sitemap&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /* 支店Aのサイトマップ */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sitemap&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;http://example.dmain/branch_A/&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/sitemap&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; /* 支店Bのサイトマップ */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sitemap&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;http://example.dmain/branch_B/&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/sitemap&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; .&lt;br /&gt;&amp;nbsp;&amp;nbsp; .&lt;br /&gt;&amp;nbsp;&amp;nbsp; .&lt;br /&gt;&amp;lt;/sitemapindex&amp;gt;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
トップレベルのsitemapは各ブログが自動生成するsitemap.xmlへのポインタだけの役割に徹する、各ブログのsitemap.xmlはTypePadが更新の旅に自動生成するため、最新の状態が保てるという仕組みになる。&lt;br /&gt;&lt;br /&gt;あとはrobots.txtにサイトマップの位置を記述して、各検索エンジンのクローラーに教えてあげればよい。&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="The Web Robots Pages" href="http://www.robotstxt.org/robotstxt.html" target="_blank"&gt;The Web Robots Pages&lt;/a&gt;&lt;/div&gt;
About /robots.txt
In a nutshell
Web site owners use the /robots.txt file to give instructions about
their site to web robots; this is called The Robots Exclusion Protocol.
&lt;/blockquote&gt;
こんな感じの内容になる。&lt;br /&gt;
&lt;pre&gt;$ cat ./robots.txt&lt;br /&gt;User-agent: *&lt;br /&gt;&lt;br /&gt;Sitemap : http://example.domain/sitemap.xml&lt;br /&gt;&lt;/pre&gt;
Google Webmaster ToolsのURLの合計値が、支店のsitemap.xmlで記述されたURLの合計になっていることを確認できる。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap10.png" src="http://blog.blog.on-net.jp/tf/2008/03/05/google_sitemap10.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="330" width="496" /&gt;&lt;/span&gt;数時間後にはGoogleのクローラーがきて、いろいろ収集してくれる。
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=8yX7ahztAD4:bUrUV9ZbTs4:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=8yX7ahztAD4:bUrUV9ZbTs4:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=8yX7ahztAD4:bUrUV9ZbTs4:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/8yX7ahztAD4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/03/typepadsitemap.html</feedburner:origLink></entry>

<entry>
    <title>Movable TypeでのGoogle Sitemapの自動生成</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/Ejo5G4k26J8/movable-typegoogle-sitemap.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.12</id>

    <published>2008-03-03T09:01:06Z</published>
    <updated>2008-03-04T15:24:53Z</updated>

    <summary>Blogも書いてみたことだし、SEO対策も研究してみるかと思い立ち、Google...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="google" label="Google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="seo" label="SEO" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        Blogも書いてみたことだし、SEO対策も研究してみるかと思い立ち、Googleを調べてみると、&lt;br /&gt;&lt;br /&gt;

&lt;blockquote&gt;&lt;div class="quotetitle"&gt;
&lt;a title="ウェブマスター向けガイドライン" href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769" target="_blank"&gt;ウェブマスター向けガイドライン&lt;/a&gt;&lt;/div&gt;

ウェブマスター向けガイドライン

下記のガイドラインに沿ってサイトを作成すると、Google のインデックスに登録されやすくなります。 ガイドラインでは、Google のインデックスから完全に削除されるか、ペナルティが科せられる可能性のある不正なサイトについて説明しています。 ペナルティが科せられたサイトは、Google.co.jp や Google のパートナー サイトの検索結果に表示されなくなることがあります。

    * デザイン、コンテンツ、および技術に関するガイドライン
    * 品質に関するガイドライン

サイトの準備ができたら

    * 他の関連するサイトをリンクします。
    * 下記の URL から Google に送信します。 http://www.google.co.jp/addurl.html
    * Google ウェブマスター ツールを使用してサイトマップを送信します。 Google では、サイトマップを使用してサイトの構造を認識し、ウェブページを検出しやすくします。
    * 必要なすべてのサイトにサイトが公開されたことを連絡します。
    * Open Directory プロジェクト、Yahoo!、その他の業界専門サイトなど、適切なディレクトリにサイトを登録します。

&lt;/blockquote&gt;
GoogleのSEO対策として、推奨されるガイドラインでは、URLを登録した後にサイトマップなるものを送信する必要があるらしい・・・。&lt;br /&gt;

        &lt;blockquote&gt;&lt;div class="quotetitle"&gt;
&lt;a title="サイトマップとは何ですか。サイトマップが必要なのはなぜですか。" href="http://www.google.com/support/webmasters/bin/answer.py?answer=40318&amp;amp;topic=13450" target="_blank"&gt;サイトマップとは何ですか。サイトマップが必要なのはなぜですか。&lt;/a&gt;&lt;/div&gt;

サイトマップを使用すると、サイトの追加情報を Google に送信して、通常のウェブ クロール機能をさらに強化することができます。 サイトマップにより Googleでサイトのより多くのページをより迅速にクロールできますが、サイトマップの URL が Google のインデックスに追加されるかどうかは保証できません。 サイトマップを送信することで、サイトにとってデメリットとなることは一切ありません。

&lt;/blockquote&gt;
へぇ〜、しばらくこの分野から離れていたので浦島状態です・・・orz。&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="Google ウェブマスター ツール" href="https://www.google.com/webmasters/tools/docs/ja/protocol.html" target="_blank"&gt;Google ウェブマスター ツール&lt;/a&gt;&lt;/div&gt;

サイトマップ プロトコルを使うと、ウェブ サイト内のクロールさせたい URL を検索エンジンに知らせることができます。 サイトマップ プロトコルを使用した場合は、サイトの URL リストを含む簡単な形式の XML ファイルでサイトマップを作成できます。 このプロトコルは高い拡張性を持つため、どのような規模のサイトでも使用できます。また、最終更新日、更新頻度、URL の優先度など、各 URL の詳細情報を含めることができるため、検索エンジンでサイトをより正確にクロールできるようになります。

サイトマップは、ウェブ サイトのインターフェースやリンクからアクセスできないページがある場合に特に効果的です。 たとえば、検索フォームを使った場合にのみアクセスできるページがある場合は、サイトマップを作成して、検索エンジンに送信することができます。

ここでは、サイトマップ ファイルの形式と、検索エンジンに提供するサイトマップ ファイルの配置場所について説明します。

&lt;/blockquote&gt;
ここに詳細に仕様が載ってるね。ここまでドキュメントが充実しているのはすばらしいなぁ。&lt;br /&gt;あとはMovable Typeで自動生成されるようにやるだけですなぁ。&lt;br /&gt;&lt;br /&gt;
&lt;a href="https://www.google.com/webmasters/tools/sitemaps"&gt;Google Webmaster Tools&lt;/a&gt;にログインし、「サイトを追加」の部分に目的のサイトのURIを入力し、コンテンツを識別するキーを生成する。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap1.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap1.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="183" width="504" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap2.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="537" width="634" /&gt;&lt;/span&gt;&lt;div&gt;Moovable Typeで、テンプレートモジュールを作成し、Metaタグの中身を追加。&lt;br /&gt;ヘッダーモジュール内で、&amp;lt;$MTInclude module="モジュール名"$&amp;gt;で呼び出すようにする。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap3.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap3.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="309" width="470" /&gt;&lt;/span&gt;ヘッダーモジュールに直接書いてもいいけど、メンテナンス性や可読性を考えると面倒だけど参照するやり方の方がわかりやすい。&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap4.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap4.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="449" width="545" /&gt;&lt;/span&gt;&lt;/div&gt;再構築してサイトに反映した後に確認ボタンを押すと、下記のような画面になりGoogle側に更新の情報がいく。これによって、クローラーに対して詳細な情報がいくようだ。&lt;br /&gt;&lt;br /&gt;続いて、Movable Type側で自動でサイトマップが作成されるようにしなければならない。&lt;br /&gt;&lt;br /&gt;Movable Typeの&lt;a href="http://www.movabletype.jp/documentation/appendices/tags/"&gt;テンプレートタグリファレンス&lt;/a&gt;を確認しながら、以下のようなサイトマップのひな形を作成していく。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;MTほげほげ lastn="9999"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;文書のURI&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;priority&amp;gt;プライオリティ&amp;lt;/priority&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;changefreq&amp;gt;更新頻度&amp;lt;/changefreq&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastmod&amp;gt;最終修正日をW3C Datetime形式で&amp;lt;/lastmod&amp;gt;&lt;br /&gt;&amp;lt;/MTほげほげ&amp;gt;&lt;/pre&gt;っていう感じで作っていけばよさそう。&lt;br /&gt;&lt;br /&gt;注意するようなところとしては、&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/TR/NOTE-datetime"&gt;W3c Datetime&lt;/a&gt;は原文を見れば一目瞭然。&lt;/li&gt;
&lt;li&gt;MTほげModifiedDateの&lt;a href="http://www.movabletype.jp/documentation/appendices/date-formats.html"&gt;出力フォーマット&lt;/a&gt;だが、下記のどちらのアトリビュート指定でも大丈夫だった。&lt;/li&gt;
&lt;pre&gt;&amp;lt;$MTほげModifiedDate format="%Y-%m-%dT%H:%M:%S+09:00"$&amp;gt;&lt;br /&gt;&amp;lt;$MTほげModifiedDate format_name="iso8601"$&amp;gt;&lt;/pre&gt;
もちろん後者のほうがスマートなのはいうまでもないけど。&lt;br /&gt;
&lt;li&gt;URIはファイル名に平気で日本語をつけてしまう担当者がいるかもしれないリスクを考慮して、&lt;a href="http://www.movabletype.jp/documentation/appendices/modifiers/encode_xml.html"&gt;encode_xml&lt;/a&gt;のアトリビュートを指定しておく。&lt;/li&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;urlset&lt;br /&gt;&amp;nbsp; xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&lt;br /&gt;&amp;nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;&amp;nbsp; xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9&lt;br /&gt;&amp;nbsp; http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"&amp;gt;&lt;br /&gt;&amp;nbsp; /* Title */&lt;br /&gt;&amp;nbsp; &amp;lt;url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;&amp;lt;$MTBlogURL encode_xml="1"$&amp;gt;&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;priority&amp;gt;1.0&amp;lt;/priority&amp;gt;&lt;br /&gt;    &amp;lt;MTEntries lastn="1" sort_by="modified_on"&amp;gt;&lt;br /&gt;      &amp;lt;lastmod&amp;gt;&amp;lt;$MTEntryModifiedDate format_name="iso8601"$&amp;gt;&amp;lt;/lastmod&amp;gt;&lt;br /&gt;    &amp;lt;/MTEntries&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp; /* Category&amp;nbsp; */&lt;br /&gt;&amp;nbsp; &amp;lt;MTCategories&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;&amp;lt;$MTCategoryArchiveLink encode_xml="1"$&amp;gt;&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;changefreq&amp;gt;weekly&amp;lt;/changefreq&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;priority&amp;gt;0.5&amp;lt;/priority&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/MTCategories&amp;gt;&lt;br /&gt;&amp;nbsp; /* Entry */&lt;br /&gt;&amp;nbsp; &amp;lt;MTEntries lastn="9999"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;&amp;lt;$MTEntryPermalink encode_xml="1"$&amp;gt;&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;changefreq&amp;gt;daily&amp;lt;/changefreq&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastmod&amp;gt;&amp;lt;$MTEntryModifiedDate format_name="iso8601"$&amp;gt;&amp;lt;/lastmod&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;priority&amp;gt;0.8&amp;lt;/priority&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/MTEntries&amp;gt;&lt;br /&gt;&amp;nbsp; /* Web pages */&lt;br /&gt;&amp;nbsp; &amp;lt;MTPages lastn="9999"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loc&amp;gt;&amp;lt;$MTPagePermalink$&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;$MTPagePermalink encode_xml="1"$&amp;gt;&amp;lt;/loc&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;changefreq&amp;gt;weekly&amp;lt;/changefreq&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastmod&amp;gt;&amp;lt;$MTPageModifiedDate format_name="iso8601"$&amp;gt;&amp;lt;/lastmod&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;priority&amp;gt;0.5&amp;lt;/priority&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/MTPages&amp;gt;&lt;br /&gt;&amp;lt;/urlset&amp;gt;&lt;/pre&gt;&lt;/ul&gt;あとはMovable Typeのほうでインデックステンプレートを新規作成し、「出力ファイル名」に「sitmap.xml」などと指定して、保存と再構築をすれば生成される。&lt;ul&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap6.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap6.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="448" width="535" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Google Webmaster Toolsの方で、「確認」ボタンを押して確認すると登録される。&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap5.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap5.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="260" width="542" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;メニューのサイトマップのリンクをたどり、「サイトマップを追加」画面で先ほど生成したxmlを指定する。&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap7.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap7.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="306" width="489" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap8.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap8.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="482" width="649" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="google_sitemap9.png" src="http://blog.blog.on-net.jp/tf/2008/03/04/google_sitemap9.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="327" width="782" /&gt;&lt;/span&gt;あとはGoogle側からクロールしてくるまでじっと待つだけ。&lt;br /&gt;&lt;br /&gt;しばらく様子を見てみよう。&lt;br /&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Ejo5G4k26J8:sQXf38_nXgY:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Ejo5G4k26J8:sQXf38_nXgY:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=Ejo5G4k26J8:sQXf38_nXgY:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/Ejo5G4k26J8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/03/movable-typegoogle-sitemap.html</feedburner:origLink></entry>

<entry>
    <title>Polipoを導入</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/UBzb-jULK-Y/drift-diary12-dolipo-polipo-pr.html" />
    <id>tag:blog.on-net.jp,2008:/tf//1.11</id>

    <published>2008-03-01T12:10:57Z</published>
    <updated>2008-03-02T04:24:52Z</updated>

    <summary>Drift Diary12: dolipoで更に加速するインターネット : po...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="network" label="network" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        &lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="Drift Diary12: dolipoで更に加速するインターネット : polipo proxy用GUIアプリを作りました。" href="http://blog.drikin.com/article/87449268.html" target="_blank"&gt;Drift Diary12: dolipoで更に加速するインターネット : polipo proxy用GUIアプリを作りました。&lt;/a&gt;&lt;/div&gt;

ごく一部で話題になり初めてるようですが、polipoは個人用にネットワークの高速化に特化したプロキシーサーバーで、実際試してみたところ、光の自宅回線ですら、mixiやFlickrが劇的に快適になったので、感動のあまり、Mac用GUIを作成しちゃいました。

&lt;/blockquote&gt;
ということなので、polipoを導入してみました。&lt;br /&gt;&lt;br /&gt;Mac OS用のGUIはこちらのページに任せるとして、polipoのインストールの方を・・・。&lt;br /&gt;&lt;br /&gt;

        &lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="Polipo -- a caching web proxy" href="http://www.pps.jussieu.fr/%7Ejch/software/polipo/" target="_blank"&gt;Polipo -- a caching web proxy&lt;/a&gt;&lt;/div&gt;

Polipo is a small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server). While Polipo was designed to be used by one person or a small group of people, there is nothing that prevents it from being used by a larger group.

&lt;/blockquote&gt;
&lt;br /&gt;
tarballをとってきて、解凍した後に、
&lt;pre&gt;$ make all
$ sudo make install
&lt;/pre&gt;
であっさりインストールできてしまう。&lt;br /&gt;
&lt;br /&gt;このままだと再起動時にサービスが起動しないので、ドキュメントを確認してみる。&lt;br /&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="System Startup Programming Topics: Creating a Startup Item" href="http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/StartupItems.html" target="_blank"&gt;System Startup Programming Topics: Creating a Startup Item&lt;/a&gt;&lt;/div&gt;

The /System/Library/StartupItems directory is reserved for startup items that ship with Mac OS X. All other startup items should be placed in the /Library/StartupItems directory. Note that this directory does not exist by default and may need to be created during installation of the startup item.

&lt;/blockquote&gt;
しばらくMacを使っていない間に、launchdで管理するようになっていたとは・・・。&lt;br /&gt;lookupdとかは、過去の遺物ですか。&lt;br /&gt;&lt;br /&gt;気を取り直して、起動スクリプトを書いてみる。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;$ sudo mkdir /Library/StartupItems/Polipo&lt;br /&gt;$ cat &amp;gt; /Library/StartupItems/Polipo&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;. /etc/rc.common&lt;br /&gt;&lt;br /&gt;PATH=$PATH:/usr/local/bin; &lt;br /&gt;&lt;br /&gt;# The start subroutine&lt;br /&gt;StartService() {&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; polipo daemonise=true logFile="/var/log/polipo.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; polipo logFile="/var/log/polipo.log" &amp;amp;amp;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# The stop subroutine&lt;br /&gt;StopService() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; killall polipo&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; killall -9 mydaemon&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# The restart subroutine&lt;br /&gt;RestartService() {&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; killall -HUP polipo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StopService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartService&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;RunService "$1"&lt;br /&gt;^D&lt;br /&gt;&lt;br /&gt;$ cat &amp;gt; /Library/StartupItems/Polipo/StartupParameters.plist &lt;br /&gt;&amp;lt;plist version="1.0"&amp;gt;&lt;br /&gt;&amp;lt;dict&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;Description&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;a caching web proxy&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;Messages&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dict&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;start&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;Starting Polipo&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;stop&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;Stopping Polipo&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dict&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;OrderPreference&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;None&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;Provides&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;array&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;Polipo&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/array&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;Uses&amp;lt;/key&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;array&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;string&amp;gt;Network&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/array&amp;gt;&lt;br /&gt;&amp;lt;/dict&amp;gt;&lt;br /&gt;&amp;lt;/plist&amp;gt;&lt;br /&gt;^D&lt;br /&gt;&lt;br /&gt;$ chmod 755 /Library/StartupItems/Polipo/Polipo&lt;/pre&gt;&lt;br /&gt;操作はSystemStarter経由でするのが正しいらしい。&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;$ /sbin/SystemStarter start "Polipo"
$ ps awx|grep polipo
53075   ??  S      0:01.28 polipo logFile=/var/log/polipo.log
53148 s000  R+     0:00.00 grep polipo

$ sudo /sbin/SystemStarter restart "Polipo"

$ ps awx|grep polipo                  
53153   ??  S      0:00.00 polipo logFile=/var/log/polipo.log
53155 s000  S+     0:00.00 grep polipo
&lt;/pre&gt;
後はdolipoを起動していれば、ネットワークが切り替わったらpolipoのdaemonを再起動してくれるらしい・・・が、Dolipoがうまく動いていない。&lt;br /&gt;&lt;br /&gt;RestartをしてもpolipoのPIDが変わっていない。普通に考えて、一般ユーザーがSuperユーザーのプロセスをコントロールできるとも思えない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;と、ここまで書いてて気がついた・・・。一般ユーザーであげればいいじゃん！&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;$ polipo &amp;amp;
[1] 528
 Disabling disk cache: No such file or directory
Established listening socket on port 8123.

$ ps awx|grep polipo
  528 s000  SN     0:00.00 polipo
  530 s000  R+     0:00.00 grep polipo
&lt;/pre&gt;
ここで、DolipoでRestartしてみる。
&lt;pre&gt;[1]  + done       polipo
$ ps awx|grep polipo
  535   ??  Ss     0:00.01 /Applications/dolipo.app/Contents/Resources/polipo -c config 
  537 s000  R+     0:00.00 grep polipo
&lt;/pre&gt;
DolipoはただのGUIのフロントエンドではなく、polipoを内蔵していたという落ちですか。&lt;br /&gt;
&lt;br /&gt;
しかも、某データセンターで働いていたときに刷り込まれた、「再起動時にもちゃんとあがるよう起動スクリプトを設置して、再起動時にちゃんとdaemonが上がるか確認する」という鉄則が今でも抜けないらしい・・・。&lt;br /&gt;&lt;br /&gt;今後の方針としては、&lt;br /&gt;&lt;br /&gt;1. polipoはSystemStarter経由で起動し、ネットワークが切り替わったときに自動的にRestartさせる&lt;br /&gt;2. 一般ユーザーでDolipoのパッケージ内のpolipoを使用する&lt;br /&gt;&lt;br /&gt;が考えられるけど、1の方が好きだな・・・。ネットワークが切り替わる時のhookにあたるようなものを探さねば。&lt;br /&gt;&lt;br /&gt;普通に考えればDolipoで何にも問題ないんだけど、&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;メニューバーが埋まるのが少し嫌&lt;/li&gt;
&lt;li&gt;どうせならCUIで完結したい&lt;/li&gt;
&lt;/ul&gt;
という一般的でない理由のために、もう少しがんばってみようかな・・・。&lt;br /&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=UBzb-jULK-Y:_Sc9R-_hOPY:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=UBzb-jULK-Y:_Sc9R-_hOPY:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=UBzb-jULK-Y:_Sc9R-_hOPY:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/UBzb-jULK-Y" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/03/drift-diary12-dolipo-polipo-pr.html</feedburner:origLink></entry>

<entry>
    <title>Youtubeのダウン、の衝撃</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/AnkvnlMSZhE/youtube.html" />
    <id>tag:blog.on-net.jp,2008:/taiyu//1.8</id>

    <published>2008-02-27T01:00:06Z</published>
    <updated>2008-03-04T15:39:37Z</updated>

    <summary>［WSJ］ YouTubeの世界的障害、原因はパキスタンの検閲を読んだとき、衝撃...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="network" label="network" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="youtube" label="YouTube" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="つぶやき" label="つぶやき" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        &lt;a href="http://www.itmedia.co.jp/news/articles/0802/26/news028.html"&gt;［WSJ］ YouTubeの世界的障害、原因はパキスタンの検閲&lt;/a&gt;を読んだとき、衝撃だった・・・。&lt;br /&gt;&lt;br /&gt;詳細は、こちらに詳しく書いてるが、&lt;br /&gt;

&lt;blockquote&gt;&lt;div class="quotetitle"&gt;&lt;a title="Insecure routing redirects YouTube to Pakistan" href="http://arstechnica.com/news.ars/post/20080225-insecure-routing-redirects-youtube-to-pakistan.html" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="quotetitle"&gt;&lt;a title="Insecure routing redirects YouTube to Pakistan" href="http://arstechnica.com/news.ars/post/20080225-insecure-routing-redirects-youtube-to-pakistan.html" target="_blank"&gt;Insecure routing redirects YouTube to Pakistan&lt;/a&gt;&lt;/div&gt;
In the case of YouTube and Pakistan Telecom, YouTube injected the
address block 208.65.152.0/22 (208.65.152.0 - 208.65.155.255) in the
Internet's routing tables, while Pakistan Telecom advertised the
208.65.153.0/24 (208.65.153.0 - 208.65.153.255) block. So even though
YouTube's routing information was still there, packets would flow
towards Pakistan Telecom because of the longest match first rule.&lt;/blockquote&gt;&lt;br /&gt;つまり、Youtube側がアドバタイズしている内容が、208.65.152.0/22、パキスタンの技術者が208.65.153.0/24を国内のネットワークだけにアドバタイズして、そのネットワークの通信を破棄して、Youtube側へのアクセスをブロックしようとした。&lt;br /&gt;&lt;br /&gt;しかし、間違って外にもアドバタイズした結果、longest matchの法則により、208.65.153.0/22より208.65.153.0/24のほうが優先され、事実上のネットワークの乗っ取りが成立してしまった、という話。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A&amp;gt; ルーティングの設定の効率化を考えるとlongest matchだと思うけど、それって、結局インターネットが良心で成り立っているってことだよね。&lt;br /&gt;&lt;br /&gt;B&amp;gt; そんなの前からわかってたことじゃん。&lt;br /&gt;&lt;br /&gt;A&amp;gt; じゃあ、この記事に書いてあるようにルーティングの情報はフィルタリングして入れれば？&lt;br /&gt;&lt;br /&gt;B&amp;gt; でも多くの管理者が自分のネットワークの情報を登録してないし。意味ないな・・・。&lt;br /&gt;&lt;br /&gt;A&amp;gt; なら細かいネットワーク範囲でアドバタイズすれば？&lt;br /&gt;&lt;br /&gt;B&amp;gt; いやいや、登録するレコードが多すぎて、経路の最適化の計算の負荷で反応できない→落ちたと判断した他のルーターが経路の再計算→ふりだしに戻る、の連鎖地獄でBフレッツのネットワークのルーターが落ちて障害になったじゃん・・・。&lt;br /&gt;&lt;br /&gt;A&amp;gt; じゃあ、どうしろと・・・。&lt;br /&gt;&lt;br /&gt;B&amp;gt; ・・・。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;という内容が各地で話されたことだろう・・・・。&lt;br /&gt;前々からわかっていたことだし、実際におこるとみんな思っていたこと。&lt;br /&gt;&lt;br /&gt;でも、やっぱり実際おこると衝撃だよな・・・・。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
        
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=AnkvnlMSZhE:bAWEbk3ekbQ:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=AnkvnlMSZhE:bAWEbk3ekbQ:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=AnkvnlMSZhE:bAWEbk3ekbQ:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/AnkvnlMSZhE" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/02/youtube.html</feedburner:origLink></entry>

<entry>
    <title>Movable Typeの高速化・・・・(2)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/sLEqxGctx5M/movable-type2.html" />
    <id>tag:blog.on-net.jp,2008:/taiyu//1.7</id>

    <published>2008-02-22T13:51:51Z</published>
    <updated>2008-03-02T04:26:59Z</updated>

    <summary>Apache 1.xの環境の再構築とDBの移行が完了したので、早速試してみる。M...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        Apache 1.xの環境の再構築とDBの移行が完了したので、早速試してみる。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.movabletype.jp/documentation/using_mode_perl_1.html"&gt;Movable Type を mod_perl 1.x で高速化する&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;とりあえず、Apache::Requestのインストールか・・・と、インストールしようとすると、&lt;br /&gt;&lt;br /&gt;&lt;font size="-1"&gt;&lt;b&gt;mod_perl&lt;/b&gt; 1.x ( &amp;lt; &lt;b&gt;1.99&lt;/b&gt;) is required at Makefile.PL line 34.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; というエラーが・・・。Makefile.PLをみてみると、怪しい・・・。&lt;br /&gt;多分他の人も引っかかっているなと思って、ググってみると@INCに&lt;br /&gt;mod_perl2.pmがあると読み込んでしまい、判定されてしまうようだ。&lt;br /&gt;&lt;br /&gt;最初はApache2環境だったからな・・・。気を取り直し look Apache::Request して、apxsとhttpdを指定して、Make install。&lt;br /&gt;後はドキュメントを参考に設定をしてapachectl stop &amp;amp; start。&lt;br /&gt;&lt;br /&gt;気になるスピードは、ひとりしか使っていないので早くなったとは思うがROIを考えるとかなり微妙な所か・・・。&lt;br /&gt;&lt;br /&gt;モチベーションが落ちたので、mod_perlハンドラにするのは、また今度に。&lt;br /&gt;
        
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=sLEqxGctx5M:XUkKxZtn_SI:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=sLEqxGctx5M:XUkKxZtn_SI:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=sLEqxGctx5M:XUkKxZtn_SI:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/sLEqxGctx5M" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/02/movable-type2.html</feedburner:origLink></entry>

<entry>
    <title>Movable Typeの高速化・・・・</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tf_blog/~3/BwN5dpkGKjM/movable-type.html" />
    <id>tag:blog.on-net.jp,2008:/taiyu//1.5</id>

    <published>2008-02-18T01:55:01Z</published>
    <updated>2008-02-22T15:51:00Z</updated>

    <summary>Movable Typeのマニュアルを読んでいると、高速化のやり方が書いてある。...</summary>
    <author>
        <name>Taiyu Fujii</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="php" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="postgresql" label="PostgreSQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://blog.on-net.jp/tf/">
        Movable Typeのマニュアルを読んでいると、高速化のやり方が書いてある。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.movabletype.jp/documentation/using_mode_perl_1.html"&gt;Movable Type を mod_perl 1.x で高速化する&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;mod_perl 1.xのみ対応ですか・・・・・。&lt;br /&gt;Apache 2.xじゃだめなようだけど、別に2.xじゃないといけない訳でもないので、これを機会に入れ替えるか、と作業を始めたところ、apache, openssl, mod_ssl, mod_perlのインストールが済んだところで、気がついた・・・。&lt;br /&gt;&lt;br /&gt;あれ、他のCMSで使っているphpも作り直し? うーん、それって、mysql, postgresql作り直し&amp;amp;すべてのテーブルのバックアップ、リストア祭り??・・・・orz。&lt;br /&gt;&lt;br /&gt;やり始めると./configure オプションも見直したり、雪だるま式に作業が増えていく・・・。&lt;br /&gt;&lt;br /&gt;Movable Typeの高速化はまだまだ先になりそう。&lt;br /&gt;&lt;br /&gt; 
        
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=BwN5dpkGKjM:XuxA0oMO1fU:NxMb_nMRk0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=NxMb_nMRk0A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=BwN5dpkGKjM:XuxA0oMO1fU:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tf_blog?a=BwN5dpkGKjM:XuxA0oMO1fU:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tf_blog?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tf_blog/~4/BwN5dpkGKjM" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.on-net.jp/tf/2008/02/movable-type.html</feedburner:origLink></entry>

</feed>

