<?xml version="1.0" encoding="euc-jp"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>ItsMemo::IT</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/" />
    <link rel="self" type="application/atom+xml" href="http://www.itsmemo.com/it2/atom.xml" />
    <id>tag:www.itsmemo.com,2007-12-15:/it2//5</id>
    <updated>2008-07-21T01:48:03Z</updated>
    <subtitle>IT関係のニュースやTipsの覚え書です。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>Excel、SUMPRODUCT：２つの配列の各要素を掛けて合計値を求める方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0721-1046.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.241</id>

    <published>2008-07-21T01:46:37Z</published>
    <updated>2008-07-21T01:48:03Z</updated>

    <summary> Excel 2007で、２つの配列の各要素を掛けて合計値を求める方法をメモって...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="excel" label="Excel" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Excel 2007</strong>で、２つの配列の各要素を掛けて合計値を求める方法をメモっておく。
</p>]]>
        <![CDATA[<h2>方法</h2>
<p>
これを実現するには、<strong>SUMPRODUCT</strong>関数を使用すれば良い。
</p>

<p>
以下の図の例を用いて、SUMPRODUCT関数の使い方を説明する。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel SUMPRODUCT" src="http://www.itsmemo.com/it2/img/080721_excel1.png" width="239" height="184" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
上図では、A列(赤で囲った部分)とB列(青で囲った部分)の各要素を掛けて合計した値をセルB6で計算している。セルB6の式は、以下の通りである。
</p>

<blockquote>
=SUMPRODUCT(A1:A5,B1:B5)
</blockquote>

<p>
これは、以下の計算を行っているのと同じことを意味する。
</p>

<blockquote>
=A1*B1+A2*B2+A3*B3+A4*B4+A5*B5
</blockquote>

<p>
このように書いても良いが、ちょっと面倒。こういうときにSUMPRODUCT関数を使うと便利である。
</p>

<p>
また、SUMPRODUCT関数を使う場合、行数と列数が同じであれば良いので、以下のような配列の各要素を掛けて合計することもできる。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel SUMPRODUCT" src="http://www.itsmemo.com/it2/img/080721_excel2.png" width="306" height="124" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
上図の例では、セルF4で合計値を計算している。式は以下の通りである。
</p>

<blockquote>
=SUMPRODUCT(A1:B3,D1:E3)
</blockquote>

<p>
これは、以下の計算を行っているのと同じことを意味する。
</p>

<blockquote>
=A1*D1+A2*D2+A3*D3+B1*E1+B2*E2+B3*E3
</blockquote>
]]>
    </content>
</entry>

<entry>
    <title>クッキー（Cookie）の容量とパラメータ数の制限</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0706-0850.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.240</id>

    <published>2008-07-05T23:50:20Z</published>
    <updated>2008-07-05T23:51:25Z</updated>

    <summary> クッキー（Cookie）の容量とパラメータ数の制限をメモっておく。 ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="メモ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="html" label="html" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>クッキー（Cookie）</strong>の容量とパラメータ数の制限をメモっておく。
</p>
]]>
        <![CDATA[<p>
クッキーは、クライアント側に一時的にデータを蓄えるための仕組みである。一時的であるがゆえにか、蓄積可能なデータ量にも制限がある。公式な文書としては見つけられなかったが、Google先生に聞いた範囲では、以下の通りであった。
</p>

<table border="0" cellpadding="3" cellspacing="1" class="tb_type1">
<tbody>
<tr><th>容量制限</th><td>４KB</td></tr>
<tr><th>パラメータ数</th><td>２０個</td></tr>
</tbody>
</table>

<p>
これを調べた経緯としては、表面的に動いているように見せかけるデモ用のシステム（紙芝居）を開発していてクッキーの問題にぶつかったのがきっかけである。通常であれば、サーバ側にデータを蓄えて処理するところを、サーバとは通信せずに、本当に動いているように見せかけるためにクッキーをデータベース代わりに使っていた。ところが、いくつかデータを蓄積した段階で、過去のデータが表示されないことがわかり、調べた結果、クッキーに制限があることがわかった。
</p>

<p>
結局、クッキーを使うことはあきらめ、javascriptのみでなんとか対応することにした。紙芝居を作るのもなかなか大変である。
</p>]]>
    </content>
</entry>

<entry>
    <title>Excel フィルタ：特定の条件に一致する行のみ表示する方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0614-0937.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.238</id>

    <published>2008-06-14T00:37:29Z</published>
    <updated>2008-06-14T00:37:23Z</updated>

    <summary> Excel 2007で、特定の条件に一致する行のみを表示する方法をメモっておく...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="excel" label="Excel" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Excel 2007</strong>で、特定の条件に一致する行のみを表示する方法をメモっておく。
</p>
]]>
        <![CDATA[<h2>方法</h2>
<p>
これを実現するには、<strong>フィルタ</strong>機能を使えば良い。ここでは、以下の簡単な例により、フィルタ機能の利用方法を説明する。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Exce 2007 フィルタ適用サンプル" src="http://www.itsmemo.com/it2/img/080614_excel1.png" width="417" height="154" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
フィルタ機能を利用するには、「データ」−「フィルタ」を選択すれば良い。それだけである。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel 2007フィルタ" src="http://www.itsmemo.com/it2/img/080614_excel2.png" width="345" height="115" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
あとは、タイトル行のリストから表示したい行の条件を指定すれば良い。たとえば、「A店」のデータのみを表示する場合には、リストから「A店」を選択すれば良い。
</p>

 <span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel 2007 フィルタ、条件指定" src="http://www.itsmemo.com/it2/img/080614_excel3.png" width="234" height="388" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
また、もっと複雑な条件を指定したい場合には、上図の「テキストフィルタ」を選択して条件をしてすることもできる。データ内容が数値の場合には、「数値フィルタ」と表示される。例えば、「価格」のところのリストボタン（▼）をクリックすると、以下のようなメニューが表示され、「数値フィルタ」を選択すれば、「指定の値に等しい」「指定の値に等しくない」「指定の値より大きい」などさまざまな条件を指定することが可能となる。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel 2007 フィルタ、数値フィルタ" src="http://www.itsmemo.com/it2/img/080614_excel4.png" width="410" height="385" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>]]>
    </content>
</entry>

<entry>
    <title>MS Office 2007でPDF出力する方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0608-1005.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.236</id>

    <published>2008-06-08T01:05:46Z</published>
    <updated>2008-06-08T01:05:52Z</updated>

    <summary> Excel 2007、Word 2007、PowerPoint 2007などO...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="excel" label="Excel" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="microsoftoffice" label="Microsoft Office" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Excel 2007</strong>、<strong>Word 2007</strong>、<strong>PowerPoint 2007</strong>などOffice 2007で<strong>PDF</strong>出力する方法をメモっておく。Adobe AcrobatをインストールしてもPDF出力することもできるが、ここでは、Office 2007のオプション機能を利用する方法を紹介する。
</p>]]>
        <![CDATA[<h2>方法</h2>
<p>
Office 2007をインストールしただけではPDF出力機能は利用できないので、別途、対応するためのアドインをインストールする必要がある。アドインをインストールしてPDF出力するまでの手順を以下に示す。
</p>

<h3>1. アドインのダウンロード</h3>
<p>
以下のMicrosoftのページからアドインをダウンロードする。
</p>

<blockquote>
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&displayLang=ja" target="_blank">2007 Microsoft Office プログラム用 Microsoft PDF/XPS 保存アドイン</a>
</blockquote>

<h3>2. アドインのインストール</h3>
<p>
ダウンロードしたファイル(SaveAsPDFandXPS.exe)を実行し、アドインをインストールする。表示される指示に従ってインストールするだけであり、オプションなどを選択する画面はない。
</p>

<p>
たったこれだけで、これでインストールは完了である。
</p>

<h3>3. PDF出力する</h3>
<p>
Office 2007のファイルを開く。ここでは、Excel 2007の場合を説明する。他のアプリも手順は同じである。
</p>

<p>
メニューから「名前を付けて保存」−「PDF または XPS」を選択する。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Excel 2007 名前を付けて保存(PDF)" src="http://www.itsmemo.com/it2/img/080608_office_pdf1.png" width="524" height="443" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
通常のファイル保存と同じ方法で、「ファイルの種類」のところで「PDF」を選択して保存すれば、PDFで保存される。
</p>

<p>
なお、PDF以外にXPSというフォーマットでも保存できる。XPSとは、XML Paper Specification の略でMicrosoftが開発したフォーマットである。
</p>
]]>
    </content>
</entry>

<entry>
    <title>Amazon Webサービス：XSLファイルサンプル 2</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0607-0933.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.235</id>

    <published>2008-06-07T00:33:43Z</published>
    <updated>2008-06-18T12:16:33Z</updated>

    <summary> Amazon Webサービスで指定するXSLファイルのサンプルである。キーワー...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazon" label="Amazon" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Amazon Webサービス</strong>で指定するXSLファイルのサンプルである。キーワードに関連する売れ筋書籍を表示するサンプルである。
</p>]]>
        <![CDATA[<h2>サンプル</h2>

<h3>XSLソースコード</h3>

<p>
<a href="http://www.itsmemo.com/it2/img/aws_key2.xsl">aws_key2.xsl</a>
</p>

<p>
Amazon Webサービスのバージョンは、<b>2008-03-03</b>を利用している。他のバージョンで利用できるかは未確認であるが、おそらく大丈夫なはず。
</p>

<h3>利用方法</h3>
<p>
このサンプルは、XSLを適用することで、<strong>Javascript</strong>のコードを返すようにしている。そのため、表示したい場所に以下のコードを記述すれば良い。
</p>

<blockquote>
<pre>
&lt;script type="text/javascript"
    src="http://webservices.amazon.co.jp/onca/xml?
       Service=AWSECommerceService&amp;
       Version=2008-03-03&amp;
       AWSAccessKeyId=[<span style="color:red;">アクセスキーID</span>]&amp;
       AssociateTag==[<span style="color:red;">アソシエイトID</span>]&amp;
       Operation=ItemSearch&amp;
       Keywords=[<span style="color:red;">キーワード</span>]&amp;
       SearchIndex=Books&amp;
       ResponseGroup=Small,Reviews,OfferFull,Images&amp;
       Sort=salesrank&amp;
       Style=[<span style="color:red;">XSLファイルのURL</span>]&amp;
   charset="utf-8"&gt;
&lt;/script&gt;
</pre>
</blockquote>

<p>
キーワードがアルファベットだけの場合は特に問題ないが、日本語やスペースが混ざる場合にはUTF-8でURLエンコードする必要がある。URLエンコードでGoogle検索すれば、方法がいろいろと出てくる。例えば、以下のサイトでは、指定した文字列を指定した文字コードでURLエンコードしてくれる機能を提供している。
</p>

<ul>
<li><a href="http://home.kendomo.net/board/decode/decode2.php" target="_blank">URL エンコード/デコードフォーム 2</a></li>
</ul>

<p>
また、Movable Typeを利用する場合には、当サイトの以下のページを参考にするのも良いと思います。
</p>

<ul>
<li><a href="http://www.itsmemo.com/it2/2008/0413-1618.html">Movable TypeでAmazon Webサービスを利用する</a></li>
</ul>

<h3>表示サンプル：「XML」に関連する売れ筋書籍</h3>

<script type="text/javascript" charset="UTF-8" src="http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&Version=2008-03-03&AWSAccessKeyId=0WWX1CAD3K2VNNDBA8G2&AssociateTag=itmemo-22&Operation=ItemSearch&Keywords=xml&SearchIndex=Books&ResponseGroup=Small,Reviews,OfferFull,Images&Sort=salesrank&Style=http%3a%2f%2fwww%2eitsmemo%2ecom%2fit2%2fimg%2faws_key2%2exsl"></script><noscript>サンプルを表示するためにはJavascriptを有効にする必要があります。</noscript>

<h3>ちょっと解説</h3>
<p>
上のサンプルは、以下のように<b>table</b>を用いて、表示している。スタイルシート(CSS)を利用して、デザインをカスタマイズ可能なようにしている。
</p>

<blockquote>
<pre>
&lt;table border="0" cellpadding="5" class="aws_items"&gt;
&lt;tr&gt;
&lt;td valign="top" class="aws_img"&gt;本の画像データ&lt;/td&gt;
&lt;td valign="top" class="aws_attr"&gt;
タイトル、著者、価格
&lt;div class="aws_review"&gt;
レビュー内容
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;

(２冊目の紹介）

&lt;/table&gt;
</pre>
</blockquote>

<p>
なお、上記のサンプルは、以下のようなスタイルシートを適用している。aws_reviewの部分だけスタイルシートを新たに記述し、他の要素については、このサイト（ItsMemo）全体のスタイルシートが適用されている。
</p>

<blockquote>
<pre>
div.aws_review{
  margin-top:5px;
  padding-top:5px;
  border-top:1px dotted #C0C0C0;
}
</pre>
</blockquote>

<p>
また、サンプルでは売れ筋書籍の上位２冊を表示しているが、変更したい場合には、12行目の"position() &amp;lt;= 2"の部分の数字を表示したい冊数に変更すれば良い。
</p>

<blockquote>
<pre>
11: &lt;xsl:template match="aws:ItemSearchResponse/
                              aws:Items/aws:Item"&gt;
12:  &lt;xsl:if test="position() &amp;lt;= <b>2</b>"&gt;

</pre>
</blockquote>


<h2>補足</h2>
<p>
上記のXSLファイルのサンプルは自由に利用して頂いて構いません。ただし、自分のサイトにダウンロードしてから利用してください。
</p>

<h2>関連記事</h2>
<ul>
<li><a href="http://www.itsmemo.com/it2/2008/0518-1021.html">Amazon Webサービス：XSLファイルサンプル</a> (ASIN番号指定版)</li>
<li><a href="http://www.itsmemo.com/it2/2008/0413-1618.html">Movable TypeでAmazon Webサービスを利用する</a></li>
<li><a href="http://www.itsmemo.com/it2/2008/0525-1053.html">Movable Type：encode_urlの文字コードをUTF8へ変換する方法</a></li>
</ul>]]>
    </content>
</entry>

<entry>
    <title>JavaScript：document.writeで書かれる場所</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0531-1108.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.234</id>

    <published>2008-05-31T02:08:02Z</published>
    <updated>2008-06-18T12:20:05Z</updated>

    <summary> JavaScriptでよく使用するメソッドとして、document.write...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>JavaScript</strong>でよく使用するメソッドとして、<strong>document.write</strong>がある。このメソッドを呼び出したときに文字列が書かれる場所についてメモっておく。
</p>]]>
        <![CDATA[<p>
<strong>document.write</strong>は、関数の中に記述するか、そうでないかで文字列が書かれる場所が異なる。
</p>

<ul>
<li>関数の中に記述した場合：ページの最初から書かれる。（元々の文書は消える）</li>
<li>関数の外に記述した場合：document.writeを記述した場所に文字列が書かれる。（元々の文書は残る）</li>
</ul>

<p>
具体的に例を用いて説明する。
</p>

<h2>関数の中に記述した場合</h2>

<p>
次のサンプルは、「クリック」ボタンが押された際に、hello()関数が呼び出され、"Hello"という文字を書くという例である。
</p>

<blockquote>
<pre>
&lt;html&gt;
&lt;meta http-equiv="Content-Script-Type"
    content="text/javascript"&gt;
&lt;title&gt;document.write&lt;/title&gt;
&lt;body&gt;
&lt;p&gt;最初から書かれている文章。&lt;/p&gt;
&lt;input type="button" value="クリック" onclick="hello()"&gt;

&lt;script type="text/javascript"&gt;
function hello(){
  document.write("Hello");
  document.close();
}
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</blockquote>

<h3>ページを開いた直後</h3>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="JavaScript document.writeを関数の中に書いた場合のページを開いた直後" src="http://www.itsmemo.com/it2/img/080531_javascript1.png" width="297" height="259" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<h3>クリック後</h3>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="JavaScript document.writeを関数の中に書いた場合のクリック後" src="http://www.itsmemo.com/it2/img/080531_javascript2.png" width="297" height="259" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
元の文章が消え、"Hello"という文字のみが表示される。
</p>

<h2>関数の外に記述した場合</h2>

<p>
次の例は、関数を使わずに、document.writeを使用する例である。
</p>

<blockquote>
<pre>
&lt;html&gt;
&lt;body&gt;
&lt;p&gt;最初から書かれている文章。&lt;/p&gt;

&lt;script type="text/javascript"&gt;
  document.write("Hello");
  document.close();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</blockquote>

<h3>ページを開いた直後</h3>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="JavaScript document.writeを関数の外に書いた場合" src="http://www.itsmemo.com/it2/img/080531_javascript3.png" width="297" height="259" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
元々の文章は消えず、document.writeを書いた場所に文字列が挿入される。
</p>

<h2>補足</h2>
<p>
ちなみに、元々の文書を消さずに、イベントドリブンで特定の場所に文字列を追加するには、<strong>DOM</strong> (Document Object Model) を使えば可能である。詳細は、今回は省略する。
</p>]]>
    </content>
</entry>

<entry>
    <title>Movable Type：encode_urlの文字コードをUTF8へ変換する方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0525-1053.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.232</id>

    <published>2008-05-25T01:53:22Z</published>
    <updated>2008-05-25T01:54:29Z</updated>

    <summary> Movable Typeで、&quot;encode_url&quot;モディファイアを使用した場...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="メモ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazon" label="Amazon" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Movable Type</strong>で、"encode_url"モディファイアを使用した場合、Movable Type側の文字コードで変換される。たとえば、Movable Typeの文字コードをeuc-jpに設定していた場合には、encode_urlでエンコードした場合もeuc-jpとなる。ここでは、エンコードした結果をutf-8に変換する方法を解説しているページを見つけたのでご紹介する。
</p>]]>
        <![CDATA[<blockquote>
<a href="http://tech.bayashi.jp/archives/entry/movabletype-plugin/2008/002061.html" target="_blank">Movable Typeのutf8_encode_urlプラグイン</a>
</blockquote>

<p>
導入方法は、上記のサイトにあるソースコードをコピーして、Movable Typeのpluginsフォルダに格納すれば良い。あとは、"encode_url=1"と書くところを、"<b>utf8_encode_url=1</b>"と書けば良い。
</p>

<h2>導入理由</h2>
<p>
私は、このプラグインを導入させてもらった理由としては、Amazon Webサービスで利用するためである。カスタムフィールドを使って、キーワードを指定して、関連する書籍の一覧を取得するようにしているが、日本語だとうまくいかなかった。原因は、このサイトの文字コードがeuc-jpなのに対して、Amazon Webサービスに送信するデータはutf-8である必要があったからである。今回、このプラグインを導入して、キーワードが日本語でもうまくいった。
</p>]]>
    </content>
</entry>

<entry>
    <title>Amazon Webサービス：XSLファイルサンプル</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0518-1021.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.231</id>

    <published>2008-05-18T01:21:07Z</published>
    <updated>2008-06-18T12:17:30Z</updated>

    <summary> Amazon Webサービスで指定するXSLファイルのサンプルである。ASIN...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazon" label="Amazon" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Amazon Webサービス</strong>で指定するXSLファイルのサンプルである。ASIN番号を指定して、個別の本を表示するサンプルである。
</p>]]>
        <![CDATA[<h2>サンプル</h2>

<h3>XSLソースコード</h3>

<p>
<a href="http://www.itsmemo.com/it2/img/aws_asin.xsl">aws_asin.xsl</a>
</p>

<p>
Amazon Webサービスのバージョンは、<b>2008-03-03</b>を利用している。他のバージョンで利用できるかは未確認であるが、おそらく大丈夫なはず。
</p>

<h3>利用方法</h3>
<p>
このサンプルは、XSLを適用することで、<strong>Javascript</strong>のコードを返すようにしている。そのため、表示したい場所に以下のコードを記述すれば良い。
</p>

<blockquote>
<pre>
&lt;script type="text/javascript"
    src="http://webservices.amazon.co.jp/onca/xml?
       Service=AWSECommerceService&amp;
       Version=2008-03-03&amp;
       AWSAccessKeyId=[<span style="color:red;">アクセスキーID</span>]&amp;
       AssociateTag==[<span style="color:red;">アソシエイトID</span>]&amp;
       Operation=ItemLookup&amp;
       ResponseGroup=Small,Reviews,OfferFull,Images&amp;
       Style=[<span style="color:red;">XSLファイルのURL</span>]&amp;
       ItemId=[<span style="color:red;">ASIN番号</span>]"
   charset="utf-8"&gt;
&lt;/script&gt;
</pre>
</blockquote>

<h3>表示サンプル</h3>

<script type="text/javascript" src="http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&Version=2008-03-03&AWSAccessKeyId=0WWX1CAD3K2VNNDBA8G2&AssociateTag=itmemo-22&Operation=ItemLookup&ResponseGroup=Small,Reviews,OfferFull,Images&Style=http%3a%2f%2fwww%2eitsmemo%2ecom%2fit2%2fimg%2faws_asin%2exsl&ItemId=4798109096" charset="utf-8"></script><noscript>サンプルを表示するためにはJavascriptを有効にする必要があります。</noscript>

<h3>ちょっと解説</h3>
<p>
上のサンプルは、以下のように<b>table</b>を用いて、表示している。スタイルシート(CSS)を利用して、デザインをカスタマイズ可能なようにしている。
</p>

<blockquote>
<pre>
&lt;table border="0" cellpadding="5" class="aws_items"&gt;
&lt;tr&gt;
&lt;td valign="top" class="aws_img"&gt;本の画像データ&lt;/td&gt;
&lt;td valign="top" class="aws_attr"&gt;
タイトル、著者、価格
&lt;div class="aws_review"&gt;
レビュー内容
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
</pre>
</blockquote>

<p>
なお、上記のサンプルは、以下のようなスタイルシートを適用している。aws_reviewの部分だけスタイルシートを新たに記述し、他の要素については、このサイト（ItsMemo）全体のスタイルシートが適用されている。
</p>

<blockquote>
<pre>
div.aws_review{
  margin-top:5px;
  padding-top:5px;
  border-top:1px dotted #C0C0C0;
}
</pre>
</blockquote>

<h2>補足</h2>
<p>
上記のXSLファイルのサンプルは自由に利用して頂いて構いません。ただし、自分のサイトにダウンロードしてから利用してください。
</p>

<p>
（当サイトへのリンクを貼って頂くと、非常にうれしいです。）
</p>

<h2>関連記事</h2>
<ul>
<li><a href="http://www.itsmemo.com/it2/2008/0607-0933.html">Amazon Webサービス：XSLファイルサンプル 2</a>（キーワード指定版）</li>
<li><a href="http://www.itsmemo.com/it2/2008/0413-1618.html">Movable TypeでAmazon Webサービスを利用する</a></li>
</ul>]]>
    </content>
</entry>

<entry>
    <title>PowerPoint:表の列の幅／行の高さを揃える方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0516-2229.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.230</id>

    <published>2008-05-16T13:29:21Z</published>
    <updated>2008-05-16T13:30:27Z</updated>

    <summary> PowerPointで表を挿入した際に、列の幅や行の高さを揃える方法をメモって...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="powerpoint" label="PowerPoint" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>PowerPoint</strong>で表を挿入した際に、列の幅や行の高さを揃える方法をメモっておく。
</p>

<p>
意外と簡単なところに機能があったのだが、これまで全く気がつかなかった。。
</p>]]>
        <![CDATA[<h2>方法</h2>

<p>
PowerPointの<strong>罫線</strong>ツールバーを利用する。罫線ツールバーには、「行の高さを揃える」「列の幅を揃える」というボタンがあり、揃えたい列または行を選択して、ツールバーのボタンを押せば良い。それだけ。
</p>

<p>
例えば、以下の表の「列１」「列２」「列３」を揃える場合について述べる。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="表の例" src="http://www.itsmemo.com/it2/img/080516_ppt1.png" width="285" height="141" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>


<ol>
<li>揃えたい列「列１」「列２」「列３」を選択する。</li>
<li>「罫線」ツールバーが表示されるので、「列の幅を揃える」ボタンを押す。ツールバーが表示されない場合には、「表示」−「ツールバー」−「罫線」を選択することで表示される。<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="罫線ツールバー１" src="http://www.itsmemo.com/it2/img/080516_ppt2.png" width="320" height="305" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>

<li>なお、「罫線」ツールバーは、メニューの下あたりに表示される場合もある<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="罫線ツールバー２" src="http://www.itsmemo.com/it2/img/080516_ppt4.png" width="233" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>

<li>「列の幅を揃える」ボタンを押すと、下図のように列幅が揃う。<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="列の幅が揃った状態" src="http://www.itsmemo.com/it2/img/080516_ppt3.png" width="271" height="145" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>
</ol>

<p>
行の高さを揃える場合もどのようの手順で実現できる。
</p>

<p>
この方法を知るまでは、手動で感覚的に揃えていた・・・（汗
</p>
]]>
    </content>
</entry>

<entry>
    <title>Excel：特定の文字を含むセルの書式を変更する方法</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0515-2244.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.229</id>

    <published>2008-05-15T13:44:22Z</published>
    <updated>2008-05-15T13:44:46Z</updated>

    <summary> Excelで特定の文字を含むセルの書式を自動的に変更する方法をメモっておく。 ...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="excel" label="Excel" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Excel</strong>で特定の文字を含むセルの書式を自動的に変更する方法をメモっておく。
</p>]]>
        <![CDATA[<h2>方法</h2>

<p>
Excelの<strong>条件付き書式</strong>を利用する。ここでは、私の手元にあるExcel 2007での設定方法を述べる。
</p>

<p>
以下の表で「○」となっているセルの背景色を青色に、「×」となっているセルの背景色を赤色にする例を説明する。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="表の例" src="http://www.itsmemo.com/it2/img/080515_excel1.png" width="271" height="101" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<ol>
<li>背景色を変更させたいセルの範囲を指定する。(B2:C4)</li>
<li>「ホーム」−「条件付き書式」−「新しいルール」を選択する。<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="新しいルール" src="http://www.itsmemo.com/it2/img/080515_excel2.png" width="231" height="327" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>
<li>「ルールの種類を選択してください」の一覧の中から「数式を使用して、書式設定するセルを決定」を選択する。</li>
<li>「次の数式を満たす場合に値を書式設定」の欄に以下の通り数式を入力する。FIND関数の2つ目の引数には、選択した範囲の左上のセルを指定する点に注意！<br  />
<blockquote>=FIND("○",B2)&gt;0</blockquote>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="ルールの指定" src="http://www.itsmemo.com/it2/img/080515_excel3.png" width="410" height="357" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

</li>
<li>「書式」ボタンを押し、「塗りつぶし」のところで背景色を指定する。</li>
<li>「×」となっているセルの背景色を赤色にするために、２から５の操作をもう一度行う。ただし、４の処理では以下の通り数式を入力する。<br />
<blockquote>=FIND("×",B2)&gt;0</blockquote></li>
</ol>

<p>
以上の操作を行えば、以下のように表示されるはずである。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="080515_excel4.png" src="http://www.itsmemo.com/it2/img/080515_excel4.png" width="246" height="93" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
ちなみに、FIND関数は、指定した文字列が最初に現れた位置を返す。"&gt;0"と指定することで、「どこかに『○』があれば」という条件になっている。「先頭に『○』がある場合」と条件を指定する場合には、"FIND("○",B2)=0"と指定すれば良い。
</p>
]]>
    </content>
</entry>

<entry>
    <title>VMware Playerでサーバ環境を構築する</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0427-2227.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.227</id>

    <published>2008-04-27T13:27:43Z</published>
    <updated>2008-06-18T12:19:29Z</updated>

    <summary> VMware Playerでテスト用のサーバ環境を構築する方法をメモっておく。...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>VMware Player</strong>でテスト用のサーバ環境を構築する方法をメモっておく。CGIとかのプログラムを書いた際のテスト用である。
</p>]]>
        <![CDATA[<h2>動作環境</h2>

<p>
私が動作を確認した環境は以下の通りである。
</p>

<table border="0" cellpadding="3" cellspacing="1" class="tb_type1" width="100%">
<tbody>
<tr>
<th>(ホスト)OS</th><td>Windows Vista Home Premium</td>
</tr>
<tr>
<th>CPU</th><td>Core2 Duo T7300 2.00GHz</td>
</tr>
<tr>
<th>メモリ</th><td>2048MB</td>
</tr>
</tbody>
</table>

<h2>構築手順</h2>

<p>
VMware Playerを使ったサーバ環境構築手順は以下の通りである。
</p>

<ol>
<li>VMware Playerのインストール</li>
<li>仮想マシンの入手</li>
<li>環境設定</li>
</ol>

<h3>1.VMware Playerのインストール</h3>
<p>
まずは、VMware Playerをインストールする必要がある。VMware Playerは以下のサイトから<big>無料</big>でダウンロードできる。
</p>

<blockquote>
<a href="http://www.vmware.com/jp/" target="_blank">VMware</a>
</blockquote>

<p>
VMware Playerは、すでに作成された仮想マシンを動かすことはできるが、仮想マシン自体を作ることはできない。でも、仮想マシンはいろいろなOSの仮想マシンは無料で配布されているので、テスト環境で使う分にはVMware Playerでも十分である。
</p>

<p>
ダウンロードしたら、早速インストールしよう。
</p>

<h3>2.仮想マシンの入手</h3>
<p>
次に仮想マシンを入手する必要がある。こちらは、VMwareの以下のサイトに多数置かれている。
</p>

<blockquote>
<a href="http://www.vmware.com/jp/appliances/" target="_blank">Virtual Appliance</a> (英語サイト)
</blockquote>

<p>
私がダウンロードしたのは、<big><strong>Fedora 8</strong></big>である。選んだ理由は、上記のサイトを見たときに、"Most Downloaded"の列の欄で、上から見ていった際に目に止まっただけ。。
</p>

<p>
ファイルは圧縮されているが、それでも800MBぐらいある。回線速度によっては相当な時間がかかる。ダウンロード後は、解凍。3GBぐらいのデータサイズになるので、それなりに空き容量のあるディスクで解凍しよう。
</p>

<p>
解凍したら、VMwareで、"*.vmx" というファイルを開けばよい。
</p>

<h3>3.環境設定</h3>

<p>
ここからは、自分がやりたいことによって、設定内容が異なる。
</p>

<p>
私がやりたいのは以下の通り。
</p>

<ul>
<li>Movable Typeの動作テスト</li>
<li>自分で作成したCGIプログラムのテスト</li>
</ul>

<p>
上記を実現するために、以下の設定を行った。
</p>

<ul>
<li>ネットワークの設定<br />
単なるテスト環境のため、VMwareのネットワーク設定は<big>NAT</big>にし、ゲストOSのIPアドレスを固定IPに設定した。（デフォルトではDHCP）
</li>
<li>Apache2のインストールとhttpd.confの設定<br />
Webサーバーを立ち上げないことにはテストができないのでインストール。httpd.confでは、CGIが使えるように設定。設定方法はVMwareだからと言って特殊なことをやるわけではないので、ここでは省略。Googleとかで検索すればたくさんヒットするので、そちらにおまかせ。
</li>
<li>Sambaのインストールと設定<br />
設定方法は省略するが、Sambaを使用する理由は、ホストOS側から直接perlなどのファイルを編集したいがためである。Linuxを使うのは久々だｋが、最近のはGUIで設定できて非常に簡単になっていることにビックリした。
</li>
</ul>

<p>
以上で設定は終わり。設定の部分は、かなり簡単に書いたが、VMware固有の設定というのはせいぜいネットワークの設定程度。
</p>]]>
    </content>
</entry>

<entry>
    <title>デジカメ写真から証明写真を作る</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0423-2216.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.226</id>

    <published>2008-04-23T13:16:46Z</published>
    <updated>2008-05-25T01:56:53Z</updated>

    <summary> デジカメで撮った写真を証明写真へ加工する方法をメモっておく。情報処理の試験を受...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="メモ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
デジカメで撮った写真を証明写真へ加工する方法をメモっておく。情報処理の試験を受けるのに必要だったので、手元にあるデジカメ写真で作ってみた。
</p>]]>
        <![CDATA[<p>
そんなニーズは高いのか、Googleで検索するとたくさんヒットし、簡単に作れるツールまで存在していた。今回私が使ったのは、「<big>証明写真をつくろう！</big>」というソフト。ソフト作者のホームページは以下の通り。
</p>

<blockquote><a href="http://nico2soft.com/main/" target="_blank">ニコニコソフト</a></blockquote>

<p>
基本的な使い方はサイトにあるのでそちらを参考にしてほしい
</p>

<p>
このソフトは、基本機能は無料なのだが、印刷機能を使うにはライセンスを購入する必要がある。購入すればなんてことはないのだろうけど、私は購入せずに自力で印刷した。
</p>

<p>
と言っても方法はいたって簡単。JPEGに保存する機能があるので、証明写真用にデジカメ画像をこのソフトを使って加工し、あとは他の画像ビューアで印刷すればよい。
</p>

<p>
私が使用したのは、Vistaでは標準搭載のWindowsフォトギャラリーの印刷機能で印刷した。十分にきれいに印刷できたし、サイズも指定したとおり、各写真のサイズは３×４cmで印刷できた。
</p>]]>
    </content>
</entry>

<entry>
    <title>Movable TypeでAmazon Webサービスを利用する</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0413-1618.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.224</id>

    <published>2008-04-13T07:18:35Z</published>
    <updated>2008-04-13T07:20:09Z</updated>

    <summary> Movable Type でAmazonのWebサービスの利用方法をメモってお...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazon" label="Amazon" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Movable Type</strong> でAmazonのWebサービスの利用方法をメモっておく。「Movable Typeだから」特殊な設定が必要というわけではないが、Movable Typeの機能を利用すると、「こんなことができるよ」という内容である。
</p>]]>
        <![CDATA[<h2>Amazon Webサービスとは</h2>

<p>
<strong>Amazon Webサービス</strong>とは、Amazonがソフトウェア開発者向けに、Amazonの商品データにアクセスできるようにしたサービスである。詳しくは、以下のAmazonのサイトを参考にしてほしい。
</p>

<blockquote>
<a href="http://www.amazon.co.jp/gp/feature.html?docId=451209" target="_blank">Amazon Webサービス</a>
</blockquote>

<p>
なお、無料で利用できるが、あらかじめ登録が必要である。上記のサイトにアクセスすれば登録できる。
</p>

<p>
また、ここでは、Amazon Webサービスの利用方法の詳細は、省くので、上記のAmazonのドキュメントを参照するか、下記サイトを参考にしてください。Amazonのドキュメントは英語なので、下記のサイトをとりあえず見て、足りない部分をAmazonのドキュメントを参考にすれば良いと思います。基本的には以下の日本語のサイトで十分だと思う。
</p>

<ul>
<li><a href="http://www.rfs.jp/sb/perl/10/aws02.html" target="_blank">RESTでAmazon Web サービスを使い倒す</a></li>
<li><a href="http://www.ajaxtower.jp/ecs/index.html" target="_blank">Amazon Web サービス入門</a></li>
</ul>

<h2>私がやりたいこと</h2>

<p>
とりあえず、私が実現したかったことは、ブログ記事毎に関連する書籍の一覧を表示し、自分好みのスタイルで表示することであった。
</p>

<ul>
<li>ブログ記事毎に関連する書籍の一覧を表示する</li>
<li>自分好みのスタイルで表示する</li>
</ul>

<p>
このうち、前者の「ブログ記事毎に関連する書籍の一覧を表示する」を実現するために、Movable Typeの機能を利用する。後者については、Amazon WebサービスではXSLファイルを指定して表示内容をカスタマイズできる。ここでは、前者について述べる。
</p>

<h2>Movable Typeでの実現方法</h2>
<p>
Movable Type 4.1を前提として述べる。
</p>

<p>
Amazon Webサービスでは、キーワードを指定して、キーワードにマッチする書籍の一覧を取得することができる。Movable Type でやることは、「<b>キーワード</b>」を指定することである。
</p>

<p>
方法としては、既存のMTタグ（例、キーワード、タグ、概要）の利用が考えられるが、すでにいろいろな用途で使用しており、Amazon Webサービスの検索キーワードとして利用するには問題があった。そこで、Movable Type 4.1からデフォルトで利用できるようになった<strong>カスタムフィールド</strong>を利用する。カスタムフィールドでは、独自にフィールドを定義できる。そこで、「Amazon検索キーワード」というフィールドを定義した。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Movable Type カスタムフィールドの設定" src="http://www.itsmemo.com/it2/img/080413_mt1.png" width="457" height="360" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
次に、テンプレートの中のAmazon Webサービスを利用している部分に先程のカスタムフィールドの値が読み込まれるように設定する。
</p>

<blockquote>
（設定例）<br />
<code>
http://webservices.amazon.co.jp/onca/xml?<br />
Service=AWSECommerceService<br />
&amp;Version=[バージョン]<br />
&amp;AWSAccessKeyId=[アクセスキーID]<br />
&amp;AssociateTag=[アソシエイトID]<br />
&amp;Operation=ItemSearch<br />
&amp;Keywords=<b>&lt;$MTentrydataamazonkeyword encode_url="1"$&gt;</b><br />
&amp;SearchIndex=Books<br />
&amp;ResponseGroup=Small,Reviews,OfferFull,Images
</code>
</blockquote>

<p>
あとは、ブログ記事を書く際に、先程設定したカスタムフィールドの値を指定すれば良い。
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Amazon検索キーワードの指定" src="http://www.itsmemo.com/it2/img/080413_mt2.png" width="345" height="459" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>


<h2>あとがき</h2>
<p>
Movable Typeのカスタムフィールドを利用する方法はすぐ思いついたのだが、一番大変だったのは、XSLファイルの作成。XSLに関する知識はほとんどなかったので、基本的なところから勉強した。ちょっとしたことが、どうすればいいのかわからず苦戦した。。
</p>]]>
    </content>
</entry>

<entry>
    <title>ランキングアップのための不正なアクセス</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0406-0905.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.223</id>

    <published>2008-04-06T00:05:49Z</published>
    <updated>2008-04-06T00:06:01Z</updated>

    <summary> 私が管理している別のサイトには逆アクセスランキングを設置している。やたらとアク...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="メモ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
私が管理している別のサイトには<strong>逆アクセスランキング</strong>を設置している。やたらとアクセスを送ってくれるサイトがあり、「ありがたいな〜」と思っていたのだが、そのサイトを訪れると、どう考えてもそんなに人気のありそうなサイトでもないし、自分のサイトが貼られているリンクの位置も別に目立つ場所ではないし、おかしいなと思って、アクセスログを細かく見てみた。
</p>]]>
        <![CDATA[<p>
すると、おかしなことが判明。そのサイトからのアクセスの特徴を整理すると以下の通り。
</p>

<ul>
<li>単にIPアドレスが異なるだけで同じドメインからアクセスしている</li>
<li>15分間隔で24時間まんべんなくアクセスしている</li>
<li>イメージデータなど余計なデータは取得せず、単にトップページのindex.htmlだけを取得している</li>
</ul>

<p>
自分でそういうプログラムを書いたのか、そんなツールが流通しているのか知らないけど、そこまでしてアクセスアップをしたいんだ〜。でも、申し訳ないけど、そんな不正なことをしてランキングトップにいるのはどうかと思うので、一切、カウントアップされないように細工した。
</p>

<p>
具体的には、特定のリファラを持つアクセスはカウントアップせずに無視するようにした。
</p>]]>
    </content>
</entry>

<entry>
    <title>Movable Typeのトラックバックスパム対策</title>
    <link rel="alternate" type="text/html" href="http://www.itsmemo.com/it2/2008/0405-1128.html" />
    <id>tag:www.itsmemo.com,2008:/it2//5.222</id>

    <published>2008-04-05T02:28:37Z</published>
    <updated>2008-06-18T12:18:50Z</updated>

    <summary> Movable Type のトラックバックスパム対策をメモっておく。 この記事...</summary>
    <author>
        <name></name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.itsmemo.com/it2/">
        <![CDATA[<p>
<strong>Movable Type</strong> のトラックバックスパム対策をメモっておく。
</p>

<p>
この記事を執筆する段階では、これだけやれば９０％以上のトラックバックスパムを阻止できると考えている。ただ、いたちごっこ的なところもあるので、将来に渡って有効な方法ではないかもしれない、という点だけ留意して読んで頂ければと思う。
</p>
]]>
        <![CDATA[<h2>トラックバックスパムとは</h2>

<p>
まず最初に、<strong>トラックバックスパム</strong>について整理しておく。人によって考え方が違うかもしれないが、私の定義は以下の通りである。
</p>

<blockquote>
宣伝目的であり、ブログ記事とは関係のないトラックバック
</blockquote>

<p>
トラックバックスパムの問題点を挙げると以下の通りである。
</p>

<ul>
<li>スパムでないトラックバックが埋もれてしまう</li>
<li>トラックバックスパムの処理で無駄に時間が費やされる</li>
<li>データベースが無駄に消費される</li>
</ul>

<h2>トラックバックスパムへの対策</h2>

<p>
トラックバックスパムへの対策としてはいくつかあるが、ここでは私が実践している方法を述べる。(1)の方法で弾けないトラックバックスパムを(2)(3)の方法で弾くというのが効果的だと思う。
</p>

<h3>(1) .htaccessの利用</h3>

<p>
トラックバックスパムの大半は、なんらかのツールを利用して機械的に送っている。ツールの場合、通常とは違うUser-Agentを使用している。そのため、User-Agentによって、アクセスを拒否すれば良い。これを実現するには、<b>.htaccess</b>を利用すれば良い。ここでは、私が現時点で実際に記述している内容を掲載する。これでほとんどのトラックバックスパムがMovable Typeのログに記録されることなく弾かれている。どのUser-Agentが怪しいかは、アクセスログを見ればわかる。
</p>

<blockquote>
<pre>
SetEnvIf User-Agent "^USERAGENT$" Spam
SetEnvIf User-Agent "^Jakarta Commons-HttpClient/" Spam
SetEnvIf User-Agent "^NP_Trackback/" Spam
SetEnvIf User-Agent "^Mozilla/" Spam
SetEnvIf User-Agent "^Opera/" Spam
SetEnvIf User-Agent "^User-Agent" Spam

&lt;Files ~ "mt-tb\.cgi"&gt;
&lt;Limit POST&gt;
Order allow,deny
allow from all
deny from env=Spam
&lt;/Limit&gt;
&lt;/Files&gt;
</pre>
</blockquote>

<p>
なお、<b>Mozilla</b>や<b>Opera</b>などメジャーなブラウザを含んでいるが、通常、トラックバックは、クライアントのブラウザから直接送られるのではなく、サーバーから送られる。たとえば、Movable Typeがトラックバックを送信する場合は、User-Agentは、Movable Typeになっているし、一般のブログサイトからのトラックバックはFC2とかlivedoorとかUser-Agentに含まれている。
</p>

<h3>(2) SpamLookupプラグインの利用</h3>
<p>
(1)の方法ですり抜けたトラックバックもSpamLookupでほとんどがスパムとして判定される。ただ、データベースに蓄積されるため定期的な削除が必要である。
</p>

<p>
あと、特定のサイトからのトラックバックもSpamLookupを利用すればスパム指定することができる。これを行うには、<strong>SpamLookup Keyword Filter</strong>を利用すれば良い。設定方法は、「スパムにするキーワード」にスパム判定してほしいサイトのURLを追加すれば良い。例えば、こんな感じである。
</p>

<blockquote style="font-size:8pt;">
<pre>
# Your Junk keyword list can contain words, phrases, patterns,
# and domain names. Each item must be on a separate line.
#
# Words and phrases can be listed plainly. They are tested in a
# case-insensitive manner and match against "whole" words:
cialis

# Patterns are Perl regular expressions.
/online-?casino/i

# You can optionally place a score at the end of the line to adjust
# the penalty applied for matching that item.
phentermine 4

# Spam URL List
<b>http://blog.hoge.com/</b>
</pre>
</blockquote>

<h3>(3) 禁止IPアドレスの指定</h3>
<p>
特定のIPアドレスからのトラックバックを指定したい場合には、「設定」−「IP禁止リスト」に追加すれば良い。デフォルトではこの機能は使用できないようになっているので、もしIP禁止リストを設定する場所が見つからない場合は、<b>mt-config.cgi</b>に以下の一文を追加すればよい。
</p>

<blockquote>
ShowIPInformation 1
</blockquote>

<h2>実際にやってみて</h2>
<p>
効果が大きいのはやはり、(1)である。User-Agentで弾くだけで、ほとんどトラックバックスパムが来なくなった。処理的には、.htaccessで弾くの一番軽く、IPアドレスで弾く場合も、実際には.htaccessを利用した方が良いでしょう。
</p>

<p>
今後、トラックバックスパムを送る側も新たな方法を考える可能性は大であり、アクセスログの分析するなどして適宜対策を取っていきたいと思う。
</p>

<p>
ただ、本当であれば、こんなことに労力を裂きたくないんですけどね・・
</p>]]>
    </content>
</entry>

</feed>
