<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>ミワラボ</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/" />
<link rel="self" type="application/atom+xml" href="http://miwa.offside.ne.jp/resources/feed/atom.xml" />
<id>tag:miwa.offside.ne.jp,2008-04-13://1</id>
<updated>2010-05-24T04:20:35Z</updated>

<generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
<title>IP Messenger for iPhone が配信開始されました</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2010/05/ip-messenger-for-iphone-1.html" />
<id>tag:miwa.offside.ne.jp,2010://1.18</id>

<published>2010-05-24T04:17:07Z</published>
<updated>2010-05-24T04:20:35Z</updated>

<summary>IP Messenger for iPhone が無事配信開始されました。 よろ...</summary>
<author>
<name>miwalab</name>

</author>

<category term="ipmessengerforiphone" label="IP Messenger for iPhone" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>IP Messenger for iPhone が無事配信開始されました。<br />
よろしければ、ダウンロードしてみてください。<br />
<a href="/ipmsg/">http://miwa.offside.ne.jp/ipmsg/</a><br />
 <br />
iTunes に自分の名前が出てるのも不思議な感じですね。</p>]]>

</content>
</entry>

<entry>
<title>IP Messenger for iPhone</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2010/05/ip-messenger-for-iphone.html" />
<id>tag:miwa.offside.ne.jp,2010://1.17</id>

<published>2010-05-14T06:39:40Z</published>
<updated>2010-05-14T07:41:11Z</updated>

<summary>iPhone 用のアプリケーションの「IP Messenger for iPho...</summary>
<author>
<name>miwalab</name>

</author>

<category term="ipmessengerforiphone" label="IP Messenger for iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="iphone" label="iPhone" 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://miwa.offside.ne.jp/">
<![CDATA[<p>iPhone 用のアプリケーションの「IP Messenger for iPhone」が、Apple の審査も通り、24日から配信開始されます。<br />
無料ですので、iPhone をお持ちの方は是非ダウンロードしてみてください。</p>]]>

</content>
</entry>

<entry>
<title>Safari RSS を Hack してデザインを変える方法（Leopard）</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2007/11/safari-rss-hack-leopard.html" />
<id>tag:miwa.offside.ne.jp,2007://1.11</id>

<published>2007-11-15T01:48:31Z</published>
<updated>2008-04-14T06:54:40Z</updated>

<summary>Safari RSS を Hack してデザインを変える方法の、Leopard ...</summary>
<author>
<name>miwalab</name>

</author>

<category term="leopard" label="Leopard" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="safari" label="Safari" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>Safari RSS を Hack してデザインを変える方法の、Leopard 対応版です。</p>

<ul class="type-b"><li>Mac OS X Tiger（10.4）の場合は<a href="http://miwa.offside.ne.jp/blog/2006/08/safari-rss-hack.html">こちら</a>をご覧ください。</li></ul>

<p>Mac OS X Leopard（10.5）用のカスタマイズ例の紹介です。</p>

<p><a href="http://miwa.offside.ne.jp/blog/2007/11/safari-rss-hack-leopard.jpg" class="lightview" rel="gallery[safari-rss-hack-leopard]"><img alt="image" src="http://miwa.offside.ne.jp/blog/2007/11/safari-rss-hack-leopard_s.jpg" /></a></p>

<p>設定すると、こんな感じになります。<br />
</p>]]>
<![CDATA[<p>設定方法は、「com.apple.safari.RSS.plist」の「Theme.UserParam.Styles」をこのように設定します。（一行です）</p>

<p><code class="prettyprint">$ defaults write com.apple.safari.RSS Theme.UserParam.Styles -string '&lt;/style&gt;&lt;script language=JavaScript src="file:///Users/Shared/Library/Application%20Support/SafariRSSHack/Articles.js"&gt;&lt;/script&gt;&lt;style type="text/css"&gt;@import url(file:///Users/Shared/Library/Application%20Support/SafariRSSHack/Articles.css);'</code></p>

<p><a class="download" href="http://miwa.offside.ne.jp/blog/2007/11/SafariRSSHackL.zip" onclick="javascript:pageTracker._trackPageview('/download/SafariRSSHackL.zip');">SafariRSSHackL.zip</a></p>

<p>あとは、こちらをダウンロードして、解凍したもの（SafariRSSHack）を、</p>

<p><code>/Users（ユーザ）/Shared（共有）/Library/Application Support/</code></p>

<p>この中に入れれば完了です。</p>

<ul class="type-b"><li>カスタマイズは自己責任でお願いします。不具合が起きても一切保障しません。</li></ul>]]>
</content>
</entry>

<entry>
<title>PostgreSQL で DELETE してしまったデータを復旧する方法</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2007/04/postgresql-delete.html" />
<id>tag:miwa.offside.ne.jp,2007://1.9</id>

<published>2007-04-20T11:12:40Z</published>
<updated>2008-04-13T14:34:22Z</updated>

<summary>ML に流れていたのでメモ。 有益な情報に感謝。...</summary>
<author>
<name>miwalab</name>

</author>

<category term="postgresql" label="PostgreSQL" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>ML に流れていたのでメモ。<br />
有益な情報に感謝。</p>]]>
<![CDATA[<p><a href="http://ml.postgresql.jp/pipermail/pgsql-jp/2007-April/021904.html" target="_blank">[pgsql-jp: 38276] Re: データの復旧について</a></p>

<p><code>：<br />
&nbsp;<br />
VACUUM していなければ、データベースファイル内に残っている可能性があります。<br />
トランザクションIDをDELETE 文を発行した時点よりも昔に「巻き戻す」ことで、<br />
削除したデータが再び見えるようにできるかもしれません。<br />
ただし、DELETE 実行前後の多少の操作が失われることは覚悟してください。<br />
&nbsp;<br />
0. 状況再現<br />
    # select count(*) from accounts; → 500000<br />
    # delete from accounts;          → DELETE 500000<br />
    # select count(*) from accounts; → 0<br />
&nbsp;<br />
1. データベースを停止します。<br />
   安全のため、ここでバックアップ（ファイルコピー）をしておくのが良いでしょう。<br />
&nbsp;<br />
2. pg_controldata で現在のトランザクションIDを確認します。<br />
        $ pg_controldata<br />
        Latest checkpoint's NextXID: 0/74007<br />
&nbsp;<br />
3. pg_resetxlog でトランザクションIDを巻き戻します。<br />
        $ pg_resetxlog -x 74000 $PGDATA ← 2.で確認したXIDよりも小さな値。<br />
&nbsp;<br />
4. データベースを再起動します。<br />
&nbsp;<br />
5. 確認<br />
    # select count(*) from accounts; → 500000<br />
&nbsp;<br />
6. うまくいったら、すぐに pg_dump で全データをダンプします。<br />
   トランザクションを幾つか実行して、ID 削除したトランザクションまで<br />
   進んでしまうと、再びデータが見えなくなってしまいます。</code></p>]]>
</content>
</entry>

<entry>
<title>YouTube で削除された動画を探すシェルスクリプト</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2006/09/youtube-delete-shell-script.html" />
<id>tag:miwa.offside.ne.jp,2006://1.8</id>

<published>2006-09-08T02:17:22Z</published>
<updated>2008-04-13T14:34:21Z</updated>

<summary>YouTube では、公開されていた動画が大人の事情で削除されることがあります。...</summary>
<author>
<name>miwalab</name>

</author>

<category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="youtube" label="YouTube" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>YouTube では、公開されていた動画が大人の事情で削除されることがあります。<br />
ですが、ここで削除されるのは動画のタイトルなどの「付加情報」のみで、動画の実体が削除されるタイミングとはタイムラグがあるようです。<br />
ですので、「This video has been removed ...」と赤文字で表示されていても、分散されたサーバーを探せば見つかる場合があります。</p>]]>
<![CDATA[<p>具体的にはこんな感じ。</p>

<p><code class="prettyprint">#!/bin/sh
id=$1
func() {
i=${2}
while [ $i -le ${3} ]; do
buf=`curl -I -v http://${1}$i${4}.youtube.com/get_video?video_id=$id 2>&1 | grep 'HTTP/1\.1 200' -c`
if [ $buf -gt 0 ]; then
echo http://${1}$i${4}.youtube.com/get_video?video_id=$id
curl -o $id.flv http://${1}$i${4}.youtube.com/get_video?video_id=$id
exit
fi
i=`expr $i + 1`
done
}
while read PARAM ; do
func ${PARAM}
done << EOF
sjl-casing 1 20 .sjl
sjl-v 1 152 .sjl
lax-v 1 80 .lax
v 1 228 
EOF</code></p>

<p>例えば「salvage.sh」というファイル名で保存して、</p>

<p><code class="prettyprint">$sh ./salvage.sh <strong>video_id</strong></code></p>

<p>このように実行します。</p>

<ul class="type-b">
	<li>HEAD でステータスをチェックして、200の場合はダウンロードが始まります。</li>
	<li>curl が無い場合は、wget などで書き換えてください。</li>
	<li>最大で500近いサーバにアクセスするので、時間がかかる場合があります。</li>
	<li>YouTube 側にもかなりの付加がかかります。連続使用はやめましょう。</li>
	<li>実行は自己責任でお願いします。問題、不具合が起きても一切保障しません。</li>
</ul>]]>
</content>
</entry>

<entry>
<title>Safari RSS を Hack してデザインを変える方法</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2006/08/safari-rss-hack.html" />
<id>tag:miwa.offside.ne.jp,2006://1.7</id>

<published>2006-08-04T06:09:19Z</published>
<updated>2008-04-14T06:57:32Z</updated>

<summary>Safari RSS を Hack してデザインを変える方法です。 Mac OS...</summary>
<author>
<name>miwalab</name>

</author>

<category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="safari" label="Safari" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>Safari RSS を Hack してデザインを変える方法です。</p>

<ul class="type-b"><li>Mac OS X Leopard（10.5）の場合は<a href="http://miwa.offside.ne.jp/blog/2007/11/safari-rss-hack-leopard.html">こちら</a>をご覧ください。</li></ul>

<p><a href="http://miwa.offside.ne.jp/blog/2006/08/safari-rss-hack.gif" class="lightview" rel="gallery[safari-rss-hack]"><img alt="image" src="http://miwa.offside.ne.jp/blog/2006/08/safari-rss-hack_s.gif" /></a><br />
</p>]]>
<![CDATA[<p>Safari RSS（Syndication） の初期設定ファイルの「com.apple.Syndication.plist」の中身を覗いてみると、「Theme.UserParam.SafariPrefStyles」というプロパティがあります。<br />
これが Hack のポイントになるのですが、どんな値が入っているか確認してみましょう。</p>

<ul class="type-b"><li>Safari を終了してから実行してください。</li></ul>

<p><code class="prettyprint">$ defaults read com.apple.Syndication Theme.UserParam.SafariPrefStyles
&nbsp;
.unread .author { color: rgb(99.607841%,52.549023%,14.509805%); } .unread .date { color: rgb(99.607841%,52.549023%,14.509805%); }</code></p>

<p>プロパティには、スタイルシート（CSS）のデータが入っていました。<br />
ということは、この値を変えることで、デザインをカスタマイズ出来ることがわかります。<br />
試しに、サイト名の部分を影付きにする場合はこのようにします。</p>

<ul class="type-b"><li>元のデータの後ろに追加しています。</li></ul>

<p><code class="prettyprint">$ defaults write com.apple.Syndication Theme.UserParam.SafariPrefStyles -string '.unread .author { color: rgb(99.607841%,52.549023%,14.509805%); } .unread .date { color: rgb(99.607841%,52.549023%,14.509805%); } <span class="green">#banner #title { text-shadow: 0px 1px 4px #505050; }</span>'</code></p>

<p>実はこのようにすると、Javascript も実行出来てしまいます（セキュリティホール？）。</p>

<p><code class="prettyprint">$ defaults write com.apple.Syndication Theme.UserParam.SafariPrefStyles -string '&lt;/style&gt;&lt;script language=JavaScript&gt;alert(1);&lt;/script&gt;&lt;style type="text/css"&gt; .unread .author { color: rgb(99.607841%,52.549023%,14.509805%); } .unread .date { color: rgb(99.607841%,52.549023%,14.509805%); }'</code></p>

<p>これを利用して、カスタマイズしてみました。<br />
機能的には、リンクがすべて新規ウィンドウで開くようになったりします。</p>

<h4>2006/8/8 追記</h4>

<ul class="type-b"><li>RSSを表示したときに、デフォルトだとフォーカスが検索フィールドにあってスペースキーで読み進めないので、フォーカスを外すようにしてみました。</li></ul>

<p>設定方法は、「Theme.UserParam.SafariPrefStyles」をこのように設定します。（一行です）</p>

<p><code class="prettyprint">$ defaults write com.apple.Syndication Theme.UserParam.SafariPrefStyles -string '&lt;/style&gt;&lt;script language=JavaScript src="file:///Users/Shared/Library/Application%20Support/SafariRSSHack/Articles.js"&gt;&lt;/script&gt;&lt;style type="text/css"&gt;@import url(file:///Users/Shared/Library/Application%20Support/SafariRSSHack/Articles.css);'</code></p>

<p><a class="download" href="http://miwa.offside.ne.jp/blog/2006/08/SafariRSSHackT.zip" onclick="javascript:pageTracker._trackPageview('/download/SafariRSSHackT.zip');">SafariRSSHackT.zip</a></p>

<p>あとは、こちらをダウンロードして、解凍したもの（SafariRSSHack）を、</p>

<p><code>/Users（ユーザ）/Shared（共有）/Library/Application Support/</code></p>

<p>この中に入れれば完了です。</p>

<ul class="type-b"><li>カスタマイズは自己責任でお願いします。不具合が起きても一切保障しません。</li></ul>]]>
</content>
</entry>

<entry>
<title>カテゴリーごとにテンプレートを切り替える</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2006/07/movable-type-category.html" />
<id>tag:miwa.offside.ne.jp,2006://1.6</id>

<published>2006-07-05T10:32:37Z</published>
<updated>2008-04-13T14:34:21Z</updated>

<summary>カテゴリーごとにテンプレートを切り替える方法です。 導入例（MT 3.2-ja-...</summary>
<author>
<name>miwalab</name>

</author>

<category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>カテゴリーごとにテンプレートを切り替える方法です。<br />
導入例（MT 3.2-ja-2 で確認）</p>]]>
<![CDATA[<p>カテゴリーごとのテンプレートをモジュールに登録しておいて、カテゴリー・アーカイブのテンプレートをこのようにします。</p>

<p><code class="prettyprint"><strong>&lt;MTIfIsDescendant parent="News"&gt;</strong>
&nbsp;&nbsp;&lt;$MTInclude module="NewsArchive"$&gt;
&lt;MTElse&gt;
&nbsp;&nbsp;<strong>&lt;MTIfIsDescendant parent="Software"&gt;</strong>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTInclude module="SoftwareArchive"$&gt;
&nbsp;&nbsp;&lt;MTElse&gt;
&nbsp;&nbsp;&nbsp;&nbsp;<strong>&lt;MTIfIsDescendant parent="Topics"&gt;</strong>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTInclude module="TopicsArchive"$&gt;
&nbsp;&nbsp;&nbsp;&nbsp;<strong>&lt;/MTIfIsDescendant&gt;</strong>
&nbsp;&nbsp;&lt;/MTElse&gt;
&nbsp;&nbsp;<strong>&lt;/MTIfIsDescendant&gt;</strong>
&lt;/MTElse&gt;
<strong>&lt;/MTIfIsDescendant&gt;</strong></code></p>

<p>この例だと、「News」カテゴリーには、モジュールの「NewsArchive」というように、&lt;$MTInclude module="..."$&gt; を使って読み込んでいます。</p>

<h4>2006/07/05 追記</h4>

<p>サブカテゴリーはどうするの？と質問を頂きました。</p>

<p>MTIfIsDescendant タグは、「現在のカテゴリーが、指定したカテゴリーの子孫であるかどうかを判定する条件タグ」です。<br />
例えば、上記の例の「News」カテゴリーのサブカテゴリーに「Sports」があるとします。<br />
&lt;MTIfIsDescendant parent="News"&gt;...と最初にしてしまうと、「News」の子孫である「Sports」にもマッチしてしまう為、「階層が下のものから条件分岐」となるわけです。</p>

<p><code class="prettyprint"><strong>&lt;MTIfIsDescendant parent="Sports"&gt;</strong>
&lt;$MTInclude module="NewsSportsArchive"$&gt;
&lt;MTElse&gt;
&nbsp;
&lt;MTIfIsDescendant parent="News"&gt;
&nbsp;&nbsp;：
&lt;/MTIfIsDescendant&gt;
&nbsp;
&lt;/MTElse&gt;
<strong>&lt;/MTIfIsDescendant&gt;</strong></code></p>]]>
</content>
</entry>

<entry>
<title>Mac OS X の Mail.app でメールボックスの表示を早くする方法</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2006/05/mac-os-x-mailapp.html" />
<id>tag:miwa.offside.ne.jp,2006://1.5</id>

<published>2006-05-29T08:28:53Z</published>
<updated>2008-04-13T14:34:21Z</updated>

<summary>メールの数が増えてくると、メールボックスの表示がだんだん遅くなってしまいますが、...</summary>
<author>
<name>miwalab</name>

</author>

<category term="macosx" label="Mac OS X" scheme="http://www.sixapart.com/ns/types#tag" />
<category term="mail" label="Mail" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>メールの数が増えてくると、メールボックスの表示がだんだん遅くなってしまいますが、スマートメールボックスを使って細分化してやると改善する場合があります。</p>]]>
<![CDATA[<p>例えば、</p>

<p><code>スマートメールボックス名: 2005年のメール<br />
「すべての」条件に一致<br />
「受信日時が」「05/01/01」から「05/12/31」「の期間内」<br />
「メッセージが特定のメールボックスにある」「受信」<br />
「メッセージが特定のメールボックスにない」「迷惑メール」</code></p>

<p>のように2005、2006と作っていくと、普通に表示するよりは早くなります。<br />
受信日時で区切るのがポイントです。<br />
<ul class="type-b"><li>対象のメールボックスは目的のものに変えてください。</li></ul></p>

<p>おすすめは、</p>

<p><code>スマートメールボックス名: 最近のメール<br />
「すべての」条件に一致<br />
「受信日時が」「7日」「以内」<br />
「メッセージが特定のメールボックスにある」「受信」<br />
「メッセージが特定のメールボックスにない」「迷惑メール」</code></p>

<p>こんな感じ。古いメールはあんまり見ないですからね。</p>

<p>また、早くするのとは違いますが、</p>

<p><code>スマートメールボックス名: 未読<br />
「すべての」条件に一致<br />
「メッセージが未開封になっている」<br />
「メッセージが特定のメールボックスにない」「迷惑メール」</code></p>

<p>これはかなりおすすめ。</p>

<ul class="type-b"><li>Mac OS X 10.4 の Mail.app（2.0.7）で確認しました。</li></ul>]]>
</content>
</entry>

<entry>
<title>Javascript で gif 画像を生成</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2006/05/javascript-gif.html" />
<id>tag:miwa.offside.ne.jp,2006://1.4</id>

<published>2006-05-27T10:17:21Z</published>
<updated>2008-04-13T14:34:21Z</updated>

<summary>Dataスキーム(RFC)を利用して、Javascript のみで gif画像を...</summary>
<author>
<name>miwalab</name>

</author>

<category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>Dataスキーム(<a href="http://www.faqs.org/rfcs/rfc2397.html" target="_blank">RFC</a>)を利用して、Javascript のみで gif画像を生成するライブラリを作ってみました。</p>]]>
<![CDATA[<p><a class="download" href="http://miwa.offside.ne.jp/blog/2006/05/MLgifLib.js" target="_blank" onclick="javascript:pageTracker._trackPageview('/download/MLgifLib.js');">MLgifLib.js</a></p>

<p>Dataスキーム対応ブラウザで動作します。（Firefox、Safari など）<br />
今のところ、2-256色、無圧縮のgif画像（アニメーションgifにも対応）が生成出来ます。<br />
遅いです。マシンパワーに依存するので、スペックの低いマシンではもっさり動きます。<br />
ぼちぼち更新していく予定。とりあえずソースをきれいにします。</p>

<h3>使用例</h3>

<p><a href="http://miwa.offside.ne.jp/blog/2006/05/javascript-gif.demo1.html?w=16&h=16" target="_blank">MLgifLib.js Demo | Simple GIF Editor</a></p>

<ul class="type-b clearfix">
<li>カラーパレットから描画色を選択して、キャンバスにクリックして描画します。</li>
<li>描画したgif画像を保存する場合は、キャンバス左上のプレビュー画像を右クリック（controlクリック）して保存を選んでください。</li>
<li>カラーパレットのグレーの四角は透過色です。</li>
<li>「/javascript_gif.demo1.html?w=32&h=32」とアクセスすると、画像のピクセル数を指定出来ます。（最大50px）</li>
<li>Shiftキーを押しながらキャンバスのドットをクリックすると、その色を取得出来ます。</li>
<li>プレビューの枠をクリックすると、前背面を切り替えることが出来ます。</li>
</ul>

<p><a href="http://miwa.offside.ne.jp/blog/2006/05/javascript-gif.demo2.html" target="_blank">MLgifLib.js Demo | Animation GIF Sample</a></p>

<ul class="type-b clearfix">
<li>矢印ボタンを押すとアニメーションのスピードを5段階に変更出来ます。</li>
<li>プレビューをクリックすると、再生・停止が出来ます。</li>
<li>描画したgif画像を保存する場合は、プレビュー画像を右クリック（controlクリック）して保存を選んでください。</li>
</ul>

<h3>バージョン履歴</h3>

<dl class="type-a clearfix">
	<dt><strong>0.3.4</strong></dt><dd>メソッドチェインに対応しました。<span class="param">(20060526)</span></dd>
	<dt><strong>0.3.3</strong></dt><dd>2-256色に対応しました。<span class="param">(20060523)</span></dd>
	<dt><strong>0.3.2</strong></dt><dd>すこしだけ早くなりました。8-256色にも対応しました。<span class="param">(20060522)</span></dd>
	<dt><strong>0.1</strong></dt><dd>最初のリリース<span class="param">(20060520)</span></dd>
</dl>]]>
</content>
</entry>

<entry>
<title>Amazon 商品画像のカスタマイズ</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2005/12/amazon-image.html" />
<id>tag:miwa.offside.ne.jp,2005://1.3</id>

<published>2005-12-27T17:54:21Z</published>
<updated>2008-05-12T03:02:20Z</updated>

<summary>Amazon の商品画像は、URLの書き方によって回転させたり影をつけたりといっ...</summary>
<author>
<name>miwalab</name>

</author>

<category term="amazon" label="Amazon" scheme="http://www.sixapart.com/ns/types#tag" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>Amazon の商品画像は、URLの書き方によって回転させたり影をつけたりといったことができます。<br />
独自に調べたものなので、正確ではない（推奨されていない）かもしれませんが、分かったものを簡単に解説していきます。</p>]]>
<![CDATA[<h3>URLについて</h3>

<p>商品画像のURLはこのようになっています。</p>

<p><code>http://<strong>images-jp</strong><sup>1</sup>.amazon.com/images/P/<strong>B0000AIRN3</strong><sup>2</sup>.<strong>09</strong><sup>3</sup>.<strong>_OU09_PE20_SCTZZZZZZZ_</strong><sup>4</sup>.jpg</code></p>

<p>各パートはこのようになっています。</p>

<ul class="type-a clearfix">
<li><strong>リクエストを送るサーバ</strong><br />サブドメインは、「images」、「images-eu」などがあります。amazon.co.jp の商品を扱うのであれば、「images-jp」にしておくのが無難です。</li>
<li><strong>ASIN</b>、本の場合は ISBN</strong><br />「ASIN」 は Amazon Standard Identification Number の略です。</li>
<li><strong>カントリーコード</strong><br />「01」は、アメリカ（amazon.com）とカナダ（amazon.ca）「02」は、イギリス（amazon.co.uk）「03」は、ドイツ（amazon.de）「09」は、日本（amazon.co.jp）</li>
<li><strong>加工コマンド</strong><br />「_」で区切って、画像を加工するコマンドを記述します。</li>
</ul>

<h3>同じ商品のその他の画像</h3>

<p>商品画像には、パッケージなどのメインの画像の他に、ディスクレーベルや特典などの画像がある場合があります。<br />
それらを表示する場合は、<strong>IN[01-0N]</strong> を使います。</p>

<p><code>http://images-jp.amazon.com/images/P/B0000AIRN3.09.<strong>IN01</strong>._OU09_PE20_SCTZZZZZZZ_.jpg</code></p>

<p>例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09.IN01._OU09_PE20_SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">その他の画像1を見る</a>、<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09.IN02._OU09_PE20_SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">その他の画像2を見る</a></p>

<ul class="type-b clearfix">
<li><a href="http://www.amazon.co.jp/exec/obidos/redirect?tag=miwalab-22&path=subst/associates/join/webservices.html" target="_blank">Amazon Web Service</a> を利用すれば、一覧を得ることが出来ます。</li>
<li><a href="http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=10WGCAD7WP8R9W09ECG2&AssociateTag=miwalab-22&Operation=ItemLookup&ItemId=B0000AIRN3&ResponseGroup=Medium" target="_blank">取得した XML</a> の &lt;ImageSet Category="variant"&gt; にあります。</li>
</ul>

<h3>加工コマンド</h3>

<h4>画像サイズ</h4>

<ul class="type-a clearfix">
<li><strong>SCTHUMBZZZ</strong><br />画像サイズ（サムネイル）。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SCTHUMBZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">サムネイル画像</a></li>
<li><strong>SCTZZZZZZZ</strong><br />画像サイズ（小）。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">小画像</a></li>
<li><strong>SCMZZZZZZZ</strong><br />画像サイズ（中）。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">中画像</a></li>
<li><strong>SCLZZZZZZZ</strong><br />画像サイズ（大）。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SCLZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">大画像</a></li>
</ul>

<h4>バッジ関連</h4>

<ul class="type-a clearfix">
<li><strong>PE[01-99]</strong><br />プライスオフバッジを付ける。<br />カントリーコードによってバリエーションがあります。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PE30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">30%off のバッジ画像</a><br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.03._PE30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">カントリーコード03のバッジ画像</a></li>
<li><strong>PD[01-99]</strong><br />プライスオフバッジを左に付ける。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PD35_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">35%off の左バッジ画像</a></li>
<li><strong>PF</strong><br />ディスクの画像を付ける。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PF_SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">ディスクの画像</a></li>
<li><strong>PIsitb-st-arrow,TopLeft,[X],[Y]</strong><br />「なか見！検索」バッジ（1）を付ける<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PIsitb-st-arrow,TopLeft,80,-20_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">「なか見！検索」バッジ（1）画像</a></li>
<li><strong>PIsitb-sm-arrow,TopLeft,[X],[Y]</strong><br />「なか見！検索」バッジ（2）を付ける<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PIsitb-sm-arrow,TopLeft,70,-30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">「なか見！検索」バッジ（2）画像</a></li>
</ul>

<h4>カントリーコード</h4>

<ul class="type-a clearfix">
<li><strong>OU[01,02,03,09]</strong><br />カントリーコードを強制的に変更する。<br />加工コマンドに影響を与えます。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._OU01_PIsitb-sm-arrow,TopLeft,70,-30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">カントリーコード09から01に変更</a></li>
</ul>

<h4>フィルタ</h4>

<ul class="type-a clearfix">
<li><strong>BL[N]</strong><br />ぼかし。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._BL5_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">画像をぼかす</a></li>
<li><strong>SH[1-99]</strong><br />シャープ。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PIsitb-sm-arrow,TopLeft,70,-30_SH40_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">画像をシャープにする</a></li>
<li><strong>PA[M],[X],[Y],[N]</strong><br />ドロップシャドウ。[M] は画像周りの余白、[N] はぼかしの強さ。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PA10,2,2,10_SH30_SCLZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">画像に影をつける</a></li>
<li><strong>PB</strong><br />ドロップシャドウの簡易版。左下に影を付ける<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PB_SH30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">画像の左下に影をつける</a></li>
<li><strong>PC</strong><br />ドロップシャドウの簡易版。右下に影を付ける<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PC_SH30_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">画像の右下に影をつける</a></li>
<li><strong>BO[N],[R,G,B]</strong><br />枠線。[N] は枠線の太さ、[R,G,B] は枠線の色です。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._BO10,255,102,0_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">オレンジの枠線をつける</a></li>
</ul>

<h4>回転</h4>

<ul class="type-a clearfix">
<li><strong>PV[1-99]</strong><br />右回りに回転。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PV45_SH30_SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">右回りに45度回転</a></li>
<li><strong>PU[1-99]</strong><br />左回りに回転。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._PU45_SH30_SCTZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">左回りに45度回転</a></li>
</ul>

<h4>リサイズ</h4>

<ul class="type-a clearfix">
<li><strong>SS[N]</strong><br />[N] px の正方形の中に収まるようにリサイズします。<br />画像よりも大きい値を指定した場合は余白を追加します。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SS100_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">100px にリサイズ</a></li>
<li><strong>SX[N]</strong><br />[N] px の幅になるようにリサイズします。高さも同じ比率でリサイズされます。<br />画像よりも大きい値を指定した場合はリサイズしません。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SX50_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">幅を 50px にリサイズ</a></li>
<li><strong>SY[N]</strong><br />[N] px の高さになるようにリサイズします。幅も同じ比率でリサイズされます。<br />画像よりも大きい値を指定した場合はリサイズしません。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SY100_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]">高さを 100px にリサイズ</a></li>
<li><strong>SL[N]</strong><br />[N] px の幅または高さになるようにリサイズします。<br />画像よりも大きい値を指定した場合はリサイズしません。<br />例：<a href="http://images-jp.amazon.com/images/P/B0000AIRN3.09._SL100_SCMZZZZZZZ_.jpg" class="lightview" rel="gallery[amazon-image]"> 100px にリサイズ</a></li>
</ul>]]>
</content>
</entry>

<entry>
<title>Movable Type を Google Sitemap に対応させる</title>
<link rel="alternate" type="text/html" href="http://miwa.offside.ne.jp/blog/2005/11/movable-type-google-sitemap.html" />
<id>tag:miwa.offside.ne.jp,2005://1.2</id>

<published>2005-11-18T16:34:09Z</published>
<updated>2008-04-13T14:34:21Z</updated>

<summary>Movable Type を Google Sitemap に対応させます。 導...</summary>
<author>
<name>miwalab</name>

</author>

<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" />

<content type="html" xml:lang="ja" xml:base="http://miwa.offside.ne.jp/">
<![CDATA[<p>Movable Type を Google Sitemap に対応させます。<br />
導入例（MT 3.2-ja-2 で確認）</p>]]>
<![CDATA[<ul class="type-a clearfix">
<li>メイン・メニュー > テンプレート へ移動。</li>
<li>「インデックス」にテンプレートを新規作成する。</li>
<li>テンプレート名「Sitemap」、出力ファイル名「sitemap.xml」、テンプレートの内容に以下の内容をペースト。</li>
</ul>

<p><code class="prettyprint">&lt;?xml version="1.0" encoding="&lt;$MTPublishCharset$&gt;"?&gt;
&lt;urlset xmlns="http://www.google.com/schemas/sitemap/0.84"&gt;
&lt;MTEntries lastn="1"&gt;&lt;url&gt;
&lt;loc&gt;&lt;$MTBlogURL$&gt;&lt;/loc&gt;
&lt;lastmod&gt;&lt;$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S"$&gt;&lt;$MTBlogTimezone$&gt;&lt;/lastmod&gt;
&lt;changefreq&gt;weekly&lt;/changefreq&gt;
&lt;priority&gt;1&lt;/priority&gt;
&lt;/url&gt;&lt;/MTEntries&gt;
&lt;MTEntries lastn="1000"&gt;&lt;url&gt;
&lt;loc&gt;&lt;$MTEntryPermalink encode_xml="1"$&gt;&lt;/loc&gt;
&lt;lastmod&gt;&lt;$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S"$&gt;&lt;$MTBlogTimezone$&gt;&lt;/lastmod&gt;
&lt;changefreq&gt;monthly&lt;/changefreq&gt;
&lt;priority&gt;0.5&lt;/priority&gt;
&lt;/url&gt;&lt;/MTEntries&gt;
&lt;/urlset&gt;</code></p>

<ul class="type-a clearfix">
<li>インデックス・テンプレートを再構築して完了。</li>
</ul>

<p>次に <a href="https://www.google.com/webmasters/sitemaps" target="_blank">Google Sitemap</a> （アカウントが必要）の設定。</p>

<ul class="type-a clearfix">
<li>ログインして「追加」タブをクリック。</li>
<li>「ウェブ ページのサイトマップ」を選択して「次へ」。</li>
<li>MT で作成した「sitemap.xml」の URL を入力して、「ウェブ ページのサイトマップを追加」で完了。</li>
</ul>

<h4>2005/11/21 追記</h4>

<p>&lt;lastmod&gt;-...&lt;/lastmod&gt; で「無効な日付」とエラーが出る場合があるようです。<br />
原因は面倒いので追っかけませんが、スタティックHTMLでパブリッシュしてるなら、ファイルの更新日がとれる（ダイナミック・パブリッシングでも「Last-Modified」を正しく出力させればOK）ので外してしまっても問題ないでしょう。</p>]]>
</content>
</entry>

</feed>