<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>6krpm</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/" />
    <link rel="self" type="application/atom+xml" href="http://www.6krpm.jp/atom.xml" />
    <id>tag:www.6krpm.jp,2008-06-11://6</id>
    <updated>2009-12-18T06:38:32Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>メール転送できない、と思ったら、パーミッションだった</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/server/2009/12/18/1527/" />
    <id>tag:www.6krpm.jp,2009://6.649</id>

    <published>2009-12-18T06:27:09Z</published>
    <updated>2009-12-18T06:38:32Z</updated>

    <summary>会社のメール、ずーっとメール転送が出来てませんでした。 いっくらWebmin(U...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="Server" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>会社のメール、ずーっとメール転送が出来てませんでした。<br />
いっくらWebmin(Usermin)から設定しても、何しても、まったく駄目でした。</p>

<p>「手動で設定しよう」と、「.forward」を直書きしたりもしたんですが、駄目でした。</p>

<p>そんなこんなで２年。</p>

<p>たまたま、自分のユーザーディレクトリのパーミッションが、<br />
何故か「757」になっていたので「？」と思いつつ、「755」に設定。</p>

<p>そしたら、メール転送も復活しました。</p>

<p>要するに同一サーバ上の他人が改変できるところに置いた<br />
「.forward」は、生きない、ということですね。</p>

<p>他にも同様の設定ファイルもあるんでしょうねぇ。恐い恐い。</p>

<p>っていうか、新管理者！何やったんだ！？</p>]]>
        
    </content>
</entry>

<entry>
    <title><![CDATA[[PHP]: You don't have permission to access /php/php.exe/index.php on this server. =&gt; Windowsで、PHP4のCGIモードが動かないのは、Apacheのバージョン]]></title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/08/27/2005/" />
    <id>tag:www.6krpm.jp,2008://6.196</id>

    <published>2008-08-27T11:05:19Z</published>
    <updated>2008-08-27T11:09:30Z</updated>

    <summary> 結論から言うと、Windows上にインストールした「Apache2.2 + P...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Server" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
結論から言うと、Windows上にインストールした「Apache2.2 + PHP4.4.9」では、"CGIモード"はおろか"モジュールモード"でも動きませんでした。<br />
で、Apacheを、「2.2」から「2.0」にバージョンダウンさせたら、"CGIモード" も "モジュールモード" も、難なく動作しました。
</p>
<p>
PHP5では「php5apache2_2.dll」があるんでモジュールモードのときは"httpd.conf"からこいつをロードしてあげればいいわけですが、PHP4.4.9には「php4apache2_2.dll」がありません。<br />
「php4apache2_2.dll」をダウンロードできるサイトを紹介しているブログもいくつかありましたが、該当するファイルは削除されてしまったようでしたので、「Apache2.0」へのバージョンダウンで対応。
</p>
<p>
なんでこんなことで、今日一日はまってたか、と言うと・・・
</p>
<p>
普通、PHPでシステム組むときに共有サーバなんて使いませんよね。<br />
でも今回はお客さんの都合（稟議がどうたら、とか、決済がどうたら、とか）で「どうしても現在借りてるホスティングサーバで」と押し切られ、
当然と言えば当然ですが共有サーバのPHPはCGIモードで、モード切り換えも不可。<br />
しかもPHPは、「PHP4」とのこと。
</p>
<p>
んで、CGIモードで動くテスト環境を作ろう、として「はまった」わけです。
</p>
<p>
具体的には、
</p>
<p>Apache 2.2.9 (apache_2.2.9-win32-x86-no_ssl-r2.msi)<br />
PHP 4.4.9 (Windows Binaries)
</p>
<p>
で普通にXPにインストール。<br />
で、Apacheまでは普通に動作確認して、PHPの設定をCGIモード用に、httpd.confで、
</p>
<pre><code>ScriptAlias /php/ "c:/php4/"
AddType application/x-httpd-php .php .html
Action application/x-httpd-php "/php/php.exe"
</code></pre>
<p>
として、Apache再起動して、"http://localhost/index.php"にアクセスしたら、
</p>
<pre><code>Forbidden
    You don't have permission to 
        access /php/php.exe/index.php on this server.
</code></pre>
<p>
になっちゃいました。
</p>
<p>
ちゃんと、「<code>php.exe/index.php</code>」で実行しようとしてる、ってことは"CGIモード"で動こうとはしてるってこと？<br />
と思いながらも、「環境変数が～！」とか、「MIMEタイプが～！」とか、「ディレクトリは"/"か"&yen;"か～！」とか、さんざっぱら試行錯誤したあげく、
ググってるうちに前述の「php4apache2_2.dllじゃないと動かないっぽい」という情報にたどりつき、
「要するに、Windows上でApache2.2にPHP4.4.9を入れなければいいだけじゃん？」という結論に達したわけです。
</p>
<p>
あ～、めんどかった。<br />
他にも共有サーバの落とし穴がありそうで怖いです。<br />
頼むからうちで借りてるサーバに引越してくれ～！
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[JavaScript]: IEでは、&quot;id&quot;や&quot;name&quot;属性の値をオブジェクト名には使えない</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/javascript/2008/08/13/1230/" />
    <id>tag:www.6krpm.jp,2008://6.181</id>

    <published>2008-08-13T03:30:34Z</published>
    <updated>2008-08-13T03:32:12Z</updated>

    <summary> 大したネタではないんですが、「へ～」っと思ったのでエントリー。 要するにタイト...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
大したネタではないんですが、「へ～」っと思ったのでエントリー。
</p>
<p>
要するにタイトルのままなんですが、
</p>
<pre><code>&lt;input type="text" id="hoge" /&gt;
</code></pre>
<p>
みたいなのに対して、JavaScriptで、
</p>
<pre><code>hoge = document.getElementById('hoge');
</code></pre>
<p>
と、ID名と、オブジェクト名を同じにすると、IEではエラーになります。<br />
自分は Firefoxでデバッグなんですが、Firefoxでは普通に動いてたので、<br />
IEで動作確認したときに戸惑いました。
</p>
<p>
横着せずに、<code>hogeObj</code>みたいにちゃんと名前付けなさいよ、と<br />
神様が言ってるんでしょうね。
</p>
<p>
ちなみに、<code>"name"</code>属性も同じでした。<br />
他のブラウザは確認してませんが、まぁ、それほどの問題でもないので、パス、です。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>[PHP]: 404で、リダイレクトPHP</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/07/28/1148/" />
    <id>tag:www.6krpm.jp,2008://6.163</id>

    <published>2008-07-28T02:48:37Z</published>
    <updated>2008-07-28T02:55:23Z</updated>

    <summary> とあるウェブサイトのリニューアルで、次のような問題がありました。 リニューアル...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
とあるウェブサイトのリニューアルで、次のような問題がありました。
</p>
<ol>
<li>リニューアル後、リニューアルするページと、しないページがある。</li>
<li>リニューアルしないページの中には、ディレクトリ構成だけが変わる箇所がある。</li>
<li>ということは、各ページからのリンク付けで、「旧ページのままなのに、ディレクトリ（URL）だけ変わるところがある、ということ。</li>
</ol>
<p>
みたいな、整理するだけで面倒だなぁ、という問題です。<br />
で、こういう時って<code>.htaccess</code>で、
</p>
<pre><code>Redirect permanent /old/ http://www.example.com/new/
</code></pre>
<p>
とかやる訳ですが、これだと、ディレクトリ配下の全ファイルがリダイレクトされてしまいます。<br />
今回は、リダイレクトさせたいファイルと、させたくないファイルが有るわけです。<br />
（諸般の事情により・・・。まぁ、色々ありますよね。）<br />
じゃあ<code>.htaccess</code>で、個別のファイルに指定すればいいじゃん、と言われそうですが、これがまた大量で。。。<br />
しかも動的なページも有ったりして。
</p>
<p>
で、１時間考えた末、PHP、5行で解決しました。<br />
どうしたか、と言うと、
</p>
<ol>
<li>リンク付けは古いまま維持</li>
<li>古いリンク付けで飛んでくるディレクトリに、「404 Not Found」向けのページを設定し、そのページをPHPで作る。<br />具体的には、
<pre><code>ErrorDocument 404 /404.php
</code></pre>
みたいにする。
</li>
<li>404.php 内で、どんな古いURLでアクセスしようとしているかを取得</li>
<li>新しいURLに変換。</li>
<li>新しいURLのHTMLファイルが存在するかチェック。</li>
<li>存在したら、そのページへリダイレクト。存在しなかったら、404のメッセージ（「見つかりません」、とか）を表示。</li>
</ol>
<p>
としました。<br />
404.php内で書いたPHPの内容は、
</p>
<pre><code>&lt;?
//どこのURLにアクセスしようとして404になったかを取得
$redURL = htmlspecialchars($_SERVER["REDIRECT_URL"]);

//新しいURLに変換
$path = str_replace( '/old/', '/new/', $redURL );

//該当するパスのファイルが有ったらリダイレクト
if ( file_exists( $path ) ) {
   header("Location: ".$path);
   exit;
}
?&gt;
&lt;html&gt;
･･･
以下、「見つかりません」のHTML文書。
&lt;/html&gt;
</code></pre>
<p>
これで、<br />
・旧リンクのまま維持するページは、そのまんま。<br />
・ディレクトリ構成を変更しちゃったページは、404経由で、リダイレクト。<br />
と、処理を分けることができました。
</p>
<p>
こんな、意味不明なソースは残したくないんですが、完全リニューアルまでの暫定処置として採用しました。<br />
これで、泣いてたデザイナー兼コーダーの子の作業が、３日分は節約できたんじゃないか、と。
</p>
<p>
1時間、本気でPHPを書けば数十行～数百行は書けるんでしょうが、<br />
1時間悩んで、PHP5行で解決して、手間を数日分省けた、ってのが、<br />
「ああ、プログラムって、こういうことのために有るんだよな」と感慨にふけった日でした。
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[PHP]: JavaScriptで「escape」された文字列をデコードする関数「unescape」</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/07/22/1542/" />
    <id>tag:www.6krpm.jp,2008://6.156</id>

    <published>2008-07-22T06:42:47Z</published>
    <updated>2008-07-22T06:46:46Z</updated>

    <summary> と言いつつ、実はJavaScript、というよりActionScript関連で...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="<![CDATA[Flash (<abbr title="Flash Media Server">FMS</abbr>, <abbr title="Action Script">AS</abbr>)]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
と言いつつ、実はJavaScript、というよりActionScript関連です。
</p>
<p>
最近 <a href="http://www.adobe.com/jp/products/air/">Adobe Air</a>の、とあるツールを作ってます。<br />
<abbr title="Action Script">AS</abbr>は、Flashのオーサリング専門でやってる人間に任せてるんですが、<br />
自分は彼の作ったAirアプリから、サーバーサイド（PHP）に送信されるデータの処理を担当してます。
</p>
<p>
で、そのAirアプリから送信されるデータの取り合いを<abbr title="Extensible Markup Language">XML</abbr>にしたんですが、<br />
文字化け防止のために、エンコードして送ってくれました。<br />
それ自体は問題ないんですが、何に変換してくれたかというと、JavaScriptにしかない「escape」関数を使ってくれました。
（やっぱり<abbr title="Action Script">AS</abbr>の関数は、基本JavaScriptなんですよね。）
</p>
<p>
うぅ、PHPには「unescape」無いんだよー、「encodeURI」使って欲しかったよー、<br />
つっても彼は本当にFlashしか知らないので、仕方がありません。<br />
このままでどーにかならないものか、と調べてたら、ちゃんとデコーダを作ってくれた人が居ました。
</p>
<p>
<a href="http://dozo.matrix.jp/pear/index.php?PEAR%2FHTML_AJAX%2Funescape">「unescape(PHP)関数 Javascript版escape日本語POST対応」</a>で紹介されてる、<br />
PHPマニュアルの、<a href="http://jp2.php.net/utf8_encode#58442">「utf8_encode」のページの「User Contributed Notes」の中の１人</a>　。
</p>
<p>
おぉ、すばらしい！<br />
なんか、
</p>
<blockquote cite="http://www.goinkyo.jp/isaoa/?i=2007/09/10-180222" title="Lupin's Weblog: PHP: Javascriptのescapeに対応したunescape関数のバグ">
<p>文字列に"－"(ダッシュ)が含まれると、それ以降が抜けるらしい。</p>
<cite><a href="http://www.goinkyo.jp/isaoa/?i=2007/09/10-180222" target="_blank">Lupin's Weblog: PHP: Javascriptのescapeに対応したunescape関数のバグ</a></cite>
</blockquote>
<p>
というバグもあるらしいので、こちらも参照してみて下さい。
</p>
<p>
何にせよ助かりました。
</p>
<p>
使い方も簡単ですね。<br />
記載されてるfunctionを定義して、
</p>
<pre><code>$str = unescape($str);
</code></pre>
<p>
で、デコードされます。
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[PHP]:PHPファイルを保存に行っちゃうのは、Firefoxのキャッシュでした</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/07/22/1106/" />
    <id>tag:www.6krpm.jp,2008://6.155</id>

    <published>2008-07-22T02:06:16Z</published>
    <updated>2008-07-22T03:43:28Z</updated>

    <summary> ローカルで開発して、サーバにアップすると動かない、ってことは良くあります。 今...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
ローカルで開発して、サーバにアップすると動かない、ってことは良くあります。<br />
今回は、「.htaccess」で、
</p>
<pre><code>AddType application/x-httpd-php .php .html
</code></pre>
<p>
な設定のサイトだったんですが、最初にアップした時、「.htaccess」をアップし忘れて、<br />
HTML（実体はPHP）ファイルをブラウザがダウンロード（保存）しに行きました。<br />
（Firefoxでは、「Firefox Document」として保存しようとします。）
</p>
<p>
んで、忘れてた「.htaccess」をアップしたんですが、一向にPHPとして処理されません。<br />
そこで格闘１時間。<br />
Apacheの設定変えたり、PHPのバージョンやら環境やらチェックしたり・・・
</p>
<p>
もういい加減いやになってきたころに、他のブラウザで見てみたら、普通に動いてました。<br />
なんじゃこりゃ、ってんで、Firefoxの該当するページのキャッシュを消したら、無事解決。
</p>
<p>
ちゃんと動いてないページでも、キャッシュってされてるんですねぇ。あぁ、脱力。。。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>[Server]:DNSを「外出し」したら、動作を確認するのに手間取りました</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/server/2008/07/04/1844/" />
    <id>tag:www.6krpm.jp,2008://6.137</id>

    <published>2008-07-04T09:44:30Z</published>
    <updated>2008-07-04T10:00:28Z</updated>

    <summary> 社内に、10年くらい前に会社が引き受けて設置したらしいWebサーバと、DNSサ...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="Server" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
社内に、10年くらい前に会社が引き受けて設置したらしいWebサーバと、<abbr title="Domain Name System">DNS</abbr>サーバがあります。
まだ会社が小さく（今でも充分小さいけど）、幼かったころ（今でも全然成長してないけど）の遺産です。
</p>
<p>
一応<abbr title="Uninterruptible Power Supply">UPS</abbr>が付いてるんですが、ビルごと停電の時とか、当然止まってます。
サイトが小規模、ユーザーさんもライトユーザー、ということで今まで放置していたんですが、さすがによろしくないんじゃないかということで、外出しすることにしました。
</p>
<p>
サーバ管理者がメインで作業してるんですが、デザイナがほとんどの我が社では「プログラミングが出来る理系」ってだけで、この辺の作業のお鉢が回って来ます。
</p>
<p>
で、しゃーないのでやりました。
最近のホスティング会社の設定画面は、簡単ですねぇ、なんて設定したはいいんですが･･･
</p>
<p>
動作確認ができない･･･
</p>
<p>
新しいWebサーバのApacheに、移植したいドメインのバーチャルドメイン追加して、そのドメインのドキュメントルートにデータをアップして、<abbr title="Domain Name System">DNS</abbr>の設定を新しいWebサーバのIPアドレスに設定して、、、待ちました。<br />
「<abbr title="Domain Name System">DNS</abbr>の設定は、情報が浸透するまで時間がかかります」とは良く聞きますが、設定して、どんだけ待っても新サーバの情報を見に行ってくれない。<br />
ひたすら古いWebサーバを見に行く。（稚拙だけど、新旧それぞれ、ちょっとだけ表示するテキストを変えたんですよ。）
</p>
<p>
なぜ？<br />
と思いながらも家に帰って、家から見たら、ちゃんと変わってる！<br />
なぜ？<br />
会社の<abbr title="Domain Name System">DNS</abbr>サーバだけ仲間はずれにされてるの？<br />
ん？<br />
会社の<abbr title="Domain Name System">DNS</abbr>サーバ！？<br />
</p>
<p>
そうか！<br />
会社から見てるときは、ルータの外に出ないで、ローカルで直接社内<abbr title="Domain Name System">DNS</abbr>を見に行ってるわけか。
それで今回設定した社外の<abbr title="Domain Name System">DNS</abbr>の設定が、社内からは反映されないのか。<br />
なるほろ。<br />
でもこんなんじゃ面倒ですねぇ。
</p>
<p>
で、サーバが良く分からないなりに、調べたので、以下にメモ。
</p>

<h4>方法1．外部の関係ないところに設置した、ドメインチェックフォームで確認する</h4>
<p>
要は、外から見ればいいってことで、<a href="http://www.6krpm.jp/shelf/hostCheck/">こういうフォーム</a>を作りました。
こんなの他所にいくらでも有りますけど、まぁ何事も自分でやってみる、ってことで。
</p>
<p>
で、今回のドメインも、ちゃんと移設先のサーバで稼働していることが確認できました。
</p>

<h4>方法2．nslookupで調べる</h4>

<p>
いろいろググッたら、「nslookup」とか「dig」とかのコマンドで調べる方法がありましたが、Windowsのプロンプトから使えるのは「nslookup」だけだったので、これでやってみました。<br />
仮に、条件を以下とします。
</p>
<p>
調べたいドメイン：www.example.com  (新IP:aaa.aaa.aaa.aaa／旧IP:bbb.bbb.bbb.bbb)<br />
社外に新設のDNS：ns.example-new.net (IP:ccc.ccc.ccc.ccc)<br />
ローカルのルータ：local.router (IP:192.168.0.1)
</p>
<p>
んで、コマンドプロンプトで、「nslookup」と打つと、
</p>
<pre><code>&gt;nslookup
Default Server:  local.router
Address:  192.168.0.1
</code></pre>
<p>
と帰ってきます。<br />
ここで、調べたいドメイン「www.example.com」と打つと、
</p>
<pre><code>&gt; www.example.com
Server:  local.router
Address:  192.168.0.1

Non-authoritative answer:
Name:    www.example.com
Address:  bbb.bbb.bbb.bbb
</code></pre>
<p>
となりまして、やっぱり古いサーバのIPで見に行ってます。<br />
でもここで、ネームサーバを設定してあげることができるので、「server」で新設のネームサーバを設定してあげます。
</p>
<pre><code>&gt; server ns.example-new.net
Default Server:  ns.example-new.net
Address:  ccc.ccc.ccc.ccc

&gt; www.example.com
Server:  ns.example-new.net
Address:  ccc.ccc.ccc.ccc

Name:    www.example.com
Address:  aaa.aaa.aaa.aaa
</code></pre>
<p>
これで、「ns.example-new.net」では「www.example.com」に対して、新しいIPアドレス「aaa.aaa.aaa.aaa」が引き当てられているのが見れました。
</p>
<p>
でも、サーバ素人な自分的には、どうもこの内容よりも、「1．」の方が感覚的で、「OK！大丈夫！」な感じが得られました。
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[MT4]:アーカイブページで表示される年月表示を変える</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/movabletype/2008/07/01/1234/" />
    <id>tag:www.6krpm.jp,2008://6.132</id>

    <published>2008-07-01T03:34:30Z</published>
    <updated>2008-07-01T04:28:39Z</updated>

    <summary> やっとGoogle君にも引っかかる様になってきて、検索結果を見て忘れ物に気付き...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="MovableType" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
やっとGoogle君にも引っかかる様になってきて、検索結果を見て忘れ物に気付きました。<br />
アーカイブページ！！！<br />
テンプレートがあるからページ自体はあるのに、まったく手をつけてなくて、CSSの抜けた、まぁなんとも殺風景なページが存在しておりました。
</p>
<p>
ま、ご愛嬌ってことでさっそくテンプレートを編集（デフォルトをカスタマイズしただけですけど）。<br />
でも一点気に食わない。
</p>
<p>
<img src="/blog/_img/20080701.gif" />月別アーカイブへのリンクのタイトルが「2008年6月」みたいになってます。<br />
個人的には、「2008.06」にしたい。<br />
つまり、右の画像みたいにしたい、ということです。
</p>
<p>
きっと、<code>&lt;mt:ArchiveTitle /&gt;</code>の属性をいじればいいのかな～、と思いきや、そんな属性は存在しません。<br />
まぁ当然といえば当然<br />
（タイトルなんですもんね。アーカイブ自体の持ってるプロパティならなきにしも･･･とは思いますが。）
</p>
<p>
で、どうやったかと言うと、単純でした。
</p>
<pre><code>&lt;mt:ArchiveTitle /&gt;
</code></pre>
<p>
のところを、
</p>
<pre><code>&lt;mt:ArchiveDate format="%Y.%m" /&gt;
</code></pre>
<p>
にするだけでした。<br />
つまり、このアーカイブ（月別）に含まれるエントリーが「何年何月から始まるのか」を表示してしまえばよかった、ということですね。<br />
めでたし、めでたし。
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[F1]:Williams という哲学 - 2009年を見据えて</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/f1/2008/06/25/1500/" />
    <id>tag:www.6krpm.jp,2008://6.125</id>

    <published>2008-06-25T06:00:28Z</published>
    <updated>2008-07-02T08:46:09Z</updated>

    <summary>F1キンダーガーデンで、面白い記事を見つけました。 欠席したサム・マイケルの代わ...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="F1" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p><a href="http://www.auto-web.co.jp/F1/">F1キンダーガーデン</a>で、面白い記事を見つけました。</p>
<blockquote cite="http://www.auto-web.co.jp/F1/view/entry.php?id=539" title="F1キンダーガーテン:ウィリアムズのレース哲学に期待!?">
<p>欠席したサム・マイケルの代わりに、技術部門の最高責任者であり、チームの創立時代から信頼を寄せられているパトリック・ヘッドが陣頭指揮を取った。彼が指示したのは「とにかく最高速を高くしろ」だった。</p>
<p>･･･中略･･･</p>
<p>そこで最高速に振ったマシンでデータを取る。それをガレージで構えるサム・マイケルに届ける。ウィリアムズは、そこで集積したデータを24日から始まるシルバーストンのテストに投入するのではないか。</p>
<cite><a href="http://www.auto-web.co.jp/F1/view/entry.php?id=539" target="_blank">F1キンダーガーテン:ウィリアムズのレース哲学に期待!?</a></cite>
</blockquote>
<p>
なるほど。高速サーキット連戦に対する戦略の可能性、ですか。<br />
現代F1において、１レースをある意味捨ててテストする、ってのは勇気が要りそうですが、目先の成果ではなく先を見た成果を追えるのも、安定したスポンサーを確保しているWilliamsならではじゃないでしょうか。<br />
（SuperAguri消滅前は、全戦テストみたいでしたが・・・）
</p>
<p>
だけど自分には、高速サーキットへの対策だけではないような気がします。<br />
ずばり、対2009年！<br />
</p>
<p>
みなさんご存知の通り、来年はダウンフォース量を制限されるわけですが、<br />
必然的にメカニカルグリップと、ストレートスピード＋ストレートエンドでのブレーキングのスタビリティーが重要になってきます。<br />
記事中にあった「Williamsの得意なサーキットがモナコやカナダ」、というのは公道を利用したサーキットでスリッピーなわけで、
そこが得意ということはメカニカルグリップは及第点と考え、「ストレートスピード＋ブレーキングのスタビリティー」に焦点を絞ってきたんではないでしょうか。
</p>
<p>
長年、良い時も悪い時も、常に技術屋・レース屋として開発し続けてきたWilliamsだからこそ、<br />
目先の成果を追わず「継続」開発での将来のコンストラクターチャンピオンを見据えているからこそ、<br />
そしてプライベーターだからこそ（プライベートテストし放題とは行かないからこそ）、<br />
実戦をテスト、というか「実験」の場にしてしまったのだとしたら･･･
</p>
<p>
そう考えられたら、かっこいい！　そして渋い！<br />
</p>
<p>
でも、この今回のレースペースに対する分析、Williamsだからこそ、ですね。<br />
他のチームだったら、「遅い！」の一言で終わっちゃいそうです。
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[FMS]:Flash Media Server 2 の Debug Mode 設定</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/flash/2008/06/24/1731/" />
    <id>tag:www.6krpm.jp,2008://6.123</id>

    <published>2008-06-24T08:31:12Z</published>
    <updated>2008-07-01T04:24:12Z</updated>

    <summary> FMS2の コンソール（fms2_console）を利用すると、サーバーサイド...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="<![CDATA[Flash (<abbr title="Flash Media Server">FMS</abbr>, <abbr title="Action Script">AS</abbr>)]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
<abbr title="Flash Media Server 2">FMS2</abbr>の コンソール（fms2_console）を利用すると、サーバーサイドスクリプトのtrace内容とかをデバッグできますが、Shared Objectsの中身もデバッグできるみたいです。<br />
「Veiw Applications」タブの中で、アプリケーションを選択後、「Shared Objects」タブを選択すると、Shared Objectの一覧が表示されます。
</p>
<p>
でも、個別のShared Objectを選択すると、
</p>
<p>
Failed to make a debug connection, please check that the application is in debug mode
</p>
<p>
とエラーが出て、中身が見れません。<br />
「debug mode」かどうか確認、と言われても、そんなことスクリプトで設定できるのかな？ と、数少ない書籍（しかも、<abbr title="Flash Communication Server">FCS</abbr>向け）を熟読するも、そんなことはどこにも書いてません。
</p>
<p>
<abbr title="Flash Media Server">FMS</abbr>関連の情報は、ググってもなかなか情報が無いので、仕方なく<a href="http://www.adobe.com/support/documentation/jp/flashmediaserver/">Flash Media Serverのリソース</a>をひたすら検索したら、わかりました。
</p>
<p>
基本的に、デフォルトではデバッグ不可になっていたようです。<br />
「デバッグモードか確認しろ。」じゃなくて、「デバッグの設定が true になってるか確認しろ。」と言ってくれれば、早かったのにorz
</p>
<p>
で、許可する方法ですが、「Application.xml」という設定XMLファイルで行います。<br />
Application.xmlは、「インストールディレクトリ /conf/_defaultRoot_/_defaultVHost_」の中にあります。<br />
サーバ丸ごとデバッグを許可するなら、こいつの
</p>
<pre><code>&lt;AllowDebugDefault&gt;false&lt;/AllowDebugDefault&gt;</code></pre>
<p>
を、「true」にして、サーバ再起動。<br />
</p>
<p>
特定のアプリケーションだけ許可するなら、Application.xmlを、そのアプリケーションディレクトリにコピーして、同様に編集するだけ。<br />
サーバの再起動が面倒だったので、アプリケーションをリロードだけで行けるかな？<br />
と思ったけど、反映されませんでした。<br />
でも、「明日でいっか。」と放っておいて、ブラウザからのテストのコネクションも全部切断、コンソールも終了、で他の仕事して、また戻ってきたら有効になってました。
</p>
<p>
何がトリガーなのか不明ですが、まぁＯＫってことで。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>[PHP]:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/06/21/1306/" />
    <id>tag:www.6krpm.jp,2008://6.119</id>

    <published>2008-06-21T04:06:13Z</published>
    <updated>2008-07-01T04:22:00Z</updated>

    <summary>またもや、PHPのWarning 「header already sent by...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>またもや、PHPのWarning 「header already sent by (...)」 ネタです。</p>

<p>今度は別の個人で受けた案件で、「超特急で、メール送信フォームをお願いします！」というのがありました。<br />
まぁ、メールフォームくらいならすぐ出来ますよ、ってなもんで、<br />
既存でサーバに上がってたHTMLをダウンロードしてきて、PHP化して、<br />
ちゃちゃっと終わらせようとしたら、またもや Warningで、 「header already sent by (...)」が！</p>

<p>詳細はこれ。<br />
<pre style="overflow-x:scroll;"><code>Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at hoge.php:1) in hoge.php on line 5</code></pre></p>

<p>line 5 に書かれているのは「 <code>session_start();</code> 」。</p>

<p>むむむ？<br />
<a href="http://www.6krpm.jp/blog/web/php/2008/06/17/2146/">前回の記事</a>のように、ファイルの頭に、余分な改行も、空白もありません。</p>

<p>で、今回の「超特急」でお願いされた仕事でもあり、いろいろ確認をすっとばしてたところを、<br />
真面目に再確認。</p>

<p>おお！UTF-8 だ！これか？！<br />
普段、PHPはEUCで書いてて、UTFなんかで書かないですもん。</p>

<p>でも、content の宣言もUTF-8で、ファイル保存形式も・・・、「UTF-8」！<br />
これか？<br />
日本語、使ってるぞ！？</p>

<p>で、「UTF-8N」に保存し直して、一件落着。</p>

<p>でも、なぜ「 SESSION 」についてのエラーなんでしょう？<br />
2行目から4行目は、なんでエラーにならないんでしょう？<br />
（行数が違うってことは、当然、改行コードも入ってるし。）</p>

<p>あぁ、そうか。処理の中で一番最初に日本語が出てくるのは、セッション内に<br />
格納された、日本語文字列か orz</p>

<p>なるほど。焦点が間違ってましたね。<br />
「なぜ、セッションでのエラーなのか」、じゃなかったんだ。<br />
「スクリプトの中で、セッションが、一番最初に扱うものにエラーがある。」、だったんだ。</p>

<p><a href="http://ja.wikipedia.org/wiki/%E6%A3%AE%E5%8D%9A%E5%97%A3">森博嗣</a>が、書いてました。<br />
<blockquote cite="臨機応答・変問自在">人は、どう答えるかではなく、何を問うかで評価される。<br />
<cite><a href="http://www.amazon.co.jp/%E8%87%A8%E6%A9%9F%E5%BF%9C%E7%AD%94%E3%83%BB%E5%A4%89%E5%95%8F%E8%87%AA%E5%9C%A8%E2%80%95%E6%A3%AE%E5%8A%A9%E6%95%99%E6%8E%88VS%E7%90%86%E7%B3%BB%E5%A4%A7%E5%AD%A6%E7%94%9F-%E9%9B%86%E8%8B%B1%E7%A4%BE%E6%96%B0%E6%9B%B8-%E6%A3%AE-%E5%8D%9A%E5%97%A3/dp/4087200884">臨機応答・変問自在</a></cite><br />
</blockquote></p>

<p>デバッグの基本、ですね。</p>]]>
        
    </content>
</entry>

<entry>
    <title>[PHP]:Warning: Cannot modify header information - headers already sent by</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/06/17/2146/" />
    <id>tag:www.6krpm.jp,2008://6.114</id>

    <published>2008-06-17T12:46:24Z</published>
    <updated>2008-07-01T04:22:18Z</updated>

    <summary> 先日、会社をやめちゃったプログラマ（初心者）からある案件を引き継ぎました。 P...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>
先日、会社をやめちゃったプログラマ（初心者）からある案件を引き継ぎました。<br />
PHP + MySQL（+ JavaScript使いまくり！）。<br />
そしたら、バグの雨あられ。<br />
</p>
<p>
で、今日はまったのが、このエラー。
</p>
<p>
Warning: Cannot modify header information - headers already sent by (output started at hogehoge.php:7) in unyaunya.php on line 28
</p>
<p>
う～ん、header情報がすでに出力されてるって言っても、「hogehoge.php」に相当するファイルのどこでも「header("Content-Type:・・・);」みたいなことはやってる形跡がありません。
</p>
<p>
しかし、やっぱりヒントは、「header」なのでした。<br />
「hogehoge.php」で定義されてるfunctionの前に、改行やら、タブやらが転がってました。<br />
つまり、改行やら、タブやらが「出力」されてしまっていて、「unyaunya.php」で吐きたいheader情報が上書きできてなかったみたいです。
</p>
<p class="nb">
↓これは駄目。
</p>
<pre><code>&lt;?
	
	function hoge(){
	}
?&gt;
</code></pre>
<p class="nb">
↓当然これはＯＫ。
</p>
<pre><code>&lt;?
function hoge(){
}
?&gt;
</code></pre>
<p>
普段、いきなりファイルの冒頭でインデントなんてしたことなかったので、分かりませんでした。<br />
これも勉強！、ですかね？
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>[Smarty]:Linux へのインストール メモ</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/06/17/1355/" />
    <id>tag:www.6krpm.jp,2008://6.113</id>

    <published>2008-06-17T04:55:25Z</published>
    <updated>2008-07-01T04:22:41Z</updated>

    <summary> 	 		解凍したファイルを全部アップロードするのは面倒なので、「tar.gz」...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<ol>
	<li>
		解凍したファイルを全部アップロードするのは面倒なので、「tar.gz」版をダウンロード。<br />
		2008年6月17日現在の最新版は、2.6.19。<br />
		ダウンロードサイト：<a href="http://www.smarty.net/download.php">http://www.smarty.net/download.php</a>
	</li>
	<li>
		ダウンロードしたファイル（Smarty-2.6.19.tar.gz）をライブラリディレクトリへアップロード。<br />
		今回は、「/usr/local/lib/」。
	</li>
	<li>
		Telnetして、アップしたディレクトリへ移動して、解凍。
<pre><code># cd /usr/local/lib/
# tar xvzf Smarty-2.6.19.tar.gz
</code></pre>
	</li>
	<li>
		解凍できたか確認。
<pre><code># ls
# Smarty-2.6.19  Smarty-2.6.19.tar.gz
</code></pre>
	</li>
	<li>
		インストールは以上で完了。<br />
		あとは、Smartyを利用するPHPファイルから、
<pre><code>define('SMARTY_DIR', '/usr/local/lib/Smarty-2.6.19/libs/');
require_once(SMARTY_DIR . 'Smarty.class.php');
$hoge = new MySmarty();
</code></pre>
		でＯＫ。
	</li>
</ol>]]>
        
    </content>
</entry>

<entry>
    <title>[Smarty]:Smarty のソースをDreamWeaverで</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/web/php/2008/06/13/1937/" />
    <id>tag:www.6krpm.jp,2008://6.102</id>

    <published>2008-06-13T10:37:04Z</published>
    <updated>2008-07-01T04:22:55Z</updated>

    <summary>とある新規のお客さんから、 「Webデザイン会社にサイトを作ってもらったけど、管...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>とある新規のお客さんから、<br />
「Webデザイン会社にサイトを作ってもらったけど、管理が大変で仕方がないので、テンプレート化＆管理画面化して欲しい。」<br />
とのお仕事を頂きました。</p>

<p>お客さんとしては、若干PHPの知識があるようなので、PHP＋Smartyに決定。<br />
だけど、普段の更新作業はDreamWeaverを使っている模様。</p>

<p>自分は全くと言っていい程DreamWeaverを使わない（コーディングからプログラムまで、何でもかんでもTerapadです）ので、DreamWeaver上でSmartyのソースがどうなるやら想像も付きませんでした。</p>

<p>で、Google先生に教えて頂いたのが、こちらのページ。<br />
<a href="http://www.ironhearts.com/diary/archives/001235.html">SmartyをよりスマートにDreamweaverで編集する (Nega Diary)</a></p>

<p>その発展版ソリューションがこちら↓<br />
<a href="http://www.ironhearts.com/diary/archives/2006/11/smartysssmarty.html">Smarty×Smarty (Nega Diary)</a></p>

<p>PhotoshopのJavaScriptプラグイン書く人とか、Firefoxのアドオン作る人とかもそうですが、こういう風に、アプリケーションに突入して行けるってすごく羨ましいです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>[F1]:SuperAguriを応援したかった...</title>
    <link rel="alternate" type="text/html" href="http://www.6krpm.jp/blog/f1/2008/06/12/1454/" />
    <id>tag:www.6krpm.jp,2008://6.103</id>

    <published>2008-06-12T05:54:23Z</published>
    <updated>2009-06-02T06:22:42Z</updated>

    <summary>もっとブログを早く始めていれば、SuperAguriの足跡を追えたのに... 後...</summary>
    <author>
        <name>hiro</name>
        
    </author>
    
        <category term="F1" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.6krpm.jp/">
        <![CDATA[<p>もっとブログを早く始めていれば、SuperAguriの足跡を追えたのに...</p>

<p>後の祭りとは、まさにこのことです。</p>]]>
        
    </content>
</entry>

</feed>

