<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>ぶログ＠天狗屋敷.jp</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/" />
   <link rel="self" type="application/atom+xml" href="http://tenguyasiki.jp/blog/atom.xml" />
   <id>tag:tenguyasiki.jp,2009:/blog//1</id>
   <updated>2007-10-12T11:28:40Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.31</generator>

<entry>
   <title>だれどこの新しいバージョンを公開</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/10/post_12.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.41</id>
   
   <published>2007-10-12T11:24:10Z</published>
   <updated>2007-10-12T11:28:40Z</updated>
   
   <summary>以前公開してから一年近く放置していたフェニックス版のだれどこを新しく差し替えました。 追加機能としてめぼしいモノは、 スロット形式の伝言板を追加 プレイヤーのクラスを表示 混雑状況の投稿機能 こんなところ。時間表示ができなくなったりなどのデグレードもあります。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<a href="http://tenguyasiki.jp/blog/2006/12/post_10.html">以前公開してから</a>一年近く放置していたフェニックス版のだれどこを新しく差し替えました。

追加機能としてめぼしいモノは、

<ul>
<li>スロット形式の伝言板を追加</li>
<li>プレイヤーのクラスを表示</li>
<li>混雑状況の投稿機能</li>
</ul>

こんなところ。時間表示ができなくなったりなどのデグレードもあります。

]]>
      <![CDATA[一式まとめたアーカイブをこちらからダウンロードできます。

■<a href="http://tenguyasiki.jp/files/daredoko_20071012.zip">だれどこ</a>

自前のサーバーに設置する際には、daredoko.cgiをエディタで開いてサンプルにしたがって自分のカードデータを登録します。100行目くらいにこんな部分があります。

<pre>
		{
			index=> '川',
			shop => 'ファンキータイム川内店',
			shopid => 519,
			id   => '',
			pw   => '',
			board => 3,
		},
</pre>

indexは一覧表示のアイコン代わり、shopに店舗名、idとpwはカード番号とパスワード、boardはその見せに置いてある台の数を指定します。

このうちshopidはちょっと面倒ですが各自で調べて下さい。ブラウザでフェニックスのサイトにアクセスして、マイページ→ホームショップと移動して『私が行ったショップリスト』の該当店舗名をクリックすると

http://www.dartsjapan.jp/mypage/shopmain.php?shopid=519

とかのURLにジャンプします。ここのsohpid=の部分がショップIDです。面倒だったら今のところIDとしてしか使っていないので適当な通し番号とかでも多分大丈夫です。

このアーカイブ以外に必要な非標準のモジュールは以下の2つ。

<ul>
<li>HTML::Template</li>
<li>HTML::TableExtract</li>
</ul>

このあたりは無ければCPANから持ってきて入れて下さい。

Digest::MD5って標準でよかったっけ？

「だれどこ」に関してはmixiでもコミュニティを作ったので良かったらこちらも見て下さい。

<a href="http://mixi.jp/view_community.pl?id=2649779">mixiコミュ：だれかがどこかでなげている</a>

]]>
   </content>
</entry>
<entry>
   <title>もののためし：Webページの個人的なキャッシュを全文検索したい。</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/02/web.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.40</id>
   
   <published>2007-02-20T04:39:00Z</published>
   <updated>2007-02-20T10:38:16Z</updated>
   
   <summary>いかにもありそうなだけど、こんなサービスがあったらなあ、という思いつきをエントリしてみます。動機付けは別の理由だけど、一般化するならこんな感じ？　とイメージしたもの。フィード経由で外部のWebページをキャッシュ化キャッシュしたページを対象に全文検索付箋を貼るなどしてコメントを付けられる１番は、例えばLivedoor Clipなどのソーシャルブックマークで特定のタグを付けたページを対象にキャッシュ化できればいい。ブックマークしたらそのページ全体が検索対象になる感じ。２番は、そのキャッシュを対象にNamazuで。３番はお好みで、あってもいいしなくてもいい。キャッシュを何らかのWikiに取り込むようにすればコメントも付けられるかな。キャッシュに画像も取り込むようにしてしまうと容量を喰いそう。元エントリの画像を見に行くようにURLを書き換えるとかかな。画像は検索対象にしないから消えたら消えたで構わない。このページは xfy Blog Editor を利用して作成されました。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>いかにもありそうなだけど、こんなサービスがあったらなあ、という思いつきをエントリしてみます。動機付けは別の理由だけど、一般化するならこんな感じ？　とイメージしたもの。</p><ol><li>フィード経由で外部のWebページをキャッシュ化</li><li>キャッシュしたページを対象に全文検索</li><li>付箋を貼るなどしてコメントを付けられる</li></ol><p>１番は、例えばLivedoor Clipなどのソーシャルブックマークで特定のタグを付けたページを対象にキャッシュ化できればいい。ブックマークしたらそのページ全体が検索対象になる感じ。</p><p>２番は、そのキャッシュを対象にNamazuで。</p><p>３番はお好みで、あってもいいしなくてもいい。キャッシュを何らかのWikiに取り込むようにすればコメントも付けられるかな。</p><p>キャッシュに画像も取り込むようにしてしまうと容量を喰いそう。元エントリの画像を見に行くようにURLを書き換えるとかかな。画像は検索対象にしないから消えたら消えたで構わない。</p><p><small>このページは <a href="http://www.xfy.com/jp/blog/">xfy Blog Editor</a> を利用して作成されました。</small></p>]]>
      
   </content>
</entry>
<entry>
   <title>変なもの</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/02/post_11.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.39</id>
   
   <published>2007-02-11T14:24:00Z</published>
   <updated>2007-02-20T10:25:52Z</updated>
   
   <summary>最近公開されたYahoo! Pipesとかでもしかしたら簡単にできるのかもしれないんだけど、フィードでフィードを絞り込むという変なもの作ってみました。  Tengu Feed ：はてブとLDCのホットエントリに共通したフィードをLivedoor Readerに登録する。 XML::FeedPPを使わせてもらいました。モジュールを試してみようと作っただけのものです。 2007/2/20 追記 フィード作成用のページを設置。あんまり深く考えずに天狗フィードという落とし文っぽい名前にしてみました。 ソース公開はもうちょいあとで。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[最近公開されたYahoo! Pipesとかでもしかしたら簡単にできるのかもしれないんだけど、フィードでフィードを絞り込むという変なもの作ってみました。

<a href="http://reader.livedoor.com/subscribe/http://tenguyasiki.jp/cgi/cofeed/cofeed.cgi?feed1=http%3A%2F%2Fclip.livedoor.com%2Frss%2Fhot&feed2=http%3A%2F%2Fb.hatena.ne.jp%2Fhotentry%3Fmode%3Drss&feed3=&feed4=&feed5=&threshold=2&type=atom"><img src="http://reader.livedoor.com/img/icon/add.gif" /> Tengu Feed ：はてブとLDCのホットエントリに共通したフィードをLivedoor Readerに登録する。</a>

<a href="http://www.kawa.net/works/perl/feedpp/feedpp.html">XML::FeedPP</a>を使わせてもらいました。モジュールを試してみようと作っただけのものです。

<span style="text-decoration:underline;font-weight:bold">2007/2/20 追記</span>
<a href="http://tenguyasiki.jp/Tengufeed/">フィード作成用のページを設置</a>。あんまり深く考えずに天狗フィードという落とし文っぽい名前にしてみました。
ソース公開はもうちょいあとで。]]>
      
   </content>
</entry>
<entry>
   <title>ネットラジオが聞ければいいんじゃないの？</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/01/post_2.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.38</id>
   
   <published>2007-01-09T17:37:53Z</published>
   <updated>2007-01-09T17:43:15Z</updated>
   
   <summary>深夜にいらないことを思いついて機能追加。 ねとらじを聞きながらWiipediaできます。 Wiipediaを見てると無音が寂しくなるので、ネットラジオが聞けたらいいんじゃないだろうか？ なんてふと思いついてプレイヤーをFrameで追加してみた。 ちょっと空白部分が無駄。なんか適当なFrashでも追加できたらいいな。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Wii" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[深夜にいらないことを思いついて機能追加。

<a href="http://tenguyasiki.jp/wiipedia/index_withstreaming.html">ねとらじを聞きながらWiipediaできます。</a>

Wiipediaを見てると無音が寂しくなるので、ネットラジオが聞けたらいいんじゃないだろうか？ なんてふと思いついてプレイヤーをFrameで追加してみた。

ちょっと空白部分が無駄。なんか適当なFrashでも追加できたらいいな。
]]>
      
   </content>
</entry>
<entry>
   <title>Wiipediaのソースコード晒し</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/01/wiipedia_1.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.37</id>
   
   <published>2007-01-09T12:08:15Z</published>
   <updated>2007-01-09T12:21:45Z</updated>
   
   <summary><![CDATA[先日エントリしたWiipedia & Unwiipediaのコードを晒しておきます。 やってることといえば、 ページを取ってきて&lt;!--&nbsp;start&nbsp;content&nbsp;--&gt;から&lt;!--&nbsp;end&nbsp;content&nbsp;--&gt;までを抜き出す。 元ページのリンクを自分自身(wiipedia.cgi)を通すように差し替える。 ヘッダとフッタを付ける。 だけなので、CSSさえ書き換えれば携帯向けにもなんにでもなります。 試してないけど英語版のWikipediaやUncyclopediaを見るのもできるはず。...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="Wii" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p><a href="http://tenguyasiki.jp/blog/2007/01/wiiwikipedia_1.html">先日エントリしたWiipedia & Unwiipedia</a>のコードを晒しておきます。</p>

<p>やってることといえば、</p>

<ol>
<li>ページを取ってきて&lt;!--&nbsp;start&nbsp;content&nbsp;--&gt;から&lt;!--&nbsp;end&nbsp;content&nbsp;--&gt;までを抜き出す。</li>
<li>元ページのリンクを自分自身(wiipedia.cgi)を通すように差し替える。</li>
<li>ヘッダとフッタを付ける。</li>
</ol>

<p>だけなので、CSSさえ書き換えれば携帯向けにもなんにでもなります。</p>

<p>試してないけど英語版のWikipediaやUncyclopediaを見るのもできるはず。</p>

]]>
      <![CDATA[■<a href="http://tenguyasiki.jp/files/wiipedia_cgi.txt">wiipedia.cgi</a>
<pre>
#!/usr/bin/perl
#
#&nbsp;-&nbsp;Wikipedia&nbsp;Gateway&nbsp;-&nbsp;
#&nbsp;要はCSSを書き換えてるだけなので、それさえ書き換えれば携帯向けにでもなんにでも。
#&nbsp;by&nbsp;ぶ&nbsp;at&nbsp;天狗屋敷.jp
#

use&nbsp;strict;
use&nbsp;warnings;

use&nbsp;Jcode;
use&nbsp;LWP::UserAgent;
use&nbsp;CGI;#&nbsp;qw(-debug);
use&nbsp;CGI::Carp&nbsp;qw(fatalsToBrowser);

my&nbsp;$srcurl&nbsp;=&nbsp;'http://ja.wikipedia.org';				#&nbsp;見に行くサイトURL
#my&nbsp;$srcurl&nbsp;=&nbsp;'http://ja.uncyclopedia.info';		#&nbsp;Uncyclopediaを見に行くならこっち。

my&nbsp;$script&nbsp;=&nbsp;'wiipedia.cgi';						#&nbsp;スクリプトのファイル名。
my&nbsp;$siteurl&nbsp;=&nbsp;'http://tenguyasiki.jp/wiipedia/';	#&nbsp;設置URL。リンクの張り替えに使います。

#&nbsp;引数無しで呼び出したときに表示するページ
my&nbsp;$defaultpage&nbsp;=&nbsp;'Special:Random';	

#&nbsp;プロキシ指定
my&nbsp;$proxy	=&nbsp;&quot;&quot;;

#
####&nbsp;設定ここまで
#

my&nbsp;$charset&nbsp;=&nbsp;'utf-8';

my&nbsp;$cgi&nbsp;=&nbsp;CGI-&gt;new();
my&nbsp;$page&nbsp;=&nbsp;$cgi-&gt;param('index');

my&nbsp;$ua&nbsp;=&nbsp;LWP::UserAgent-&gt;new;&nbsp;
$ua-&gt;proxy(['http']&nbsp;=&gt;&nbsp;$proxy);

unless(defined&nbsp;$page){
	$page&nbsp;=&nbsp;$defaultpage;
}

my&nbsp;$res&nbsp;=&nbsp;$ua-&gt;get(&nbsp;$srcurl.'/wiki/'.$page&nbsp;);
my&nbsp;($t,&nbsp;$c)&nbsp;=&nbsp;pickup_content($res-&gt;as_string,&nbsp;$srcurl);

my&nbsp;$html&nbsp;=&nbsp;make_html($t,&nbsp;$c);
print&nbsp;$cgi-&gt;header(-charset=&gt;&quot;$charset&quot;);
print&nbsp;$html;

exit;

#&nbsp;文字列と補完用URLを渡すと、タイトルとページ本体（リンク先変更済み、画像URLの補完済み）を返す。
sub&nbsp;pickup_content{
	my&nbsp;$str&nbsp;=&nbsp;$_[0];

	my&nbsp;($title,&nbsp;$content)&nbsp;=&nbsp;(&quot;&quot;,&nbsp;&quot;&quot;);
	my&nbsp;($begin,&nbsp;$end)&nbsp;=&nbsp;(0,&nbsp;0);

	my&nbsp;@lines&nbsp;=&nbsp;split(/\n/,&nbsp;$str);

	#&nbsp;&lt;!--&nbsp;start&nbsp;content&nbsp;--&gt;　～　&lt;!--&nbsp;end&nbsp;content--&gt;の間を抜き出してテンプレートに挟み込むだけ。
	foreach&nbsp;my&nbsp;$line&nbsp;(@lines){
		$title&nbsp;=&nbsp;$1		if(&nbsp;$title&nbsp;eq&nbsp;&quot;&quot;&nbsp;and&nbsp;$line&nbsp;=~&nbsp;/&lt;h1&nbsp;class=\&quot;firstHeading\&quot;&gt;(.+)&lt;\/h1&gt;/);
		$begin&nbsp;=&nbsp;1		if(&nbsp;$begin&nbsp;==&nbsp;0&nbsp;and&nbsp;$line&nbsp;=~&nbsp;/&lt;\!--\s+start\s+content\s+--&gt;/);
		if(&nbsp;$begin&nbsp;==&nbsp;1&nbsp;and&nbsp;$end&nbsp;==&nbsp;0){
			$line&nbsp;=~&nbsp;s/&lt;a&nbsp;href=\&quot;\/wiki\//&lt;a&nbsp;href=\&quot;$script\?index\=/g;
			$line&nbsp;=~&nbsp;s/&lt;a&nbsp;href=\&quot;\/index\.php\?title=/&lt;a&nbsp;name=\&quot;/g;
			$line&nbsp;=~&nbsp;s/&lt;img&nbsp;src=\&quot;\//&lt;img&nbsp;src=\&quot;$srcurl\//g;
			$content&nbsp;.=&nbsp;$line;
		}
		$end&nbsp;&nbsp;&nbsp;=&nbsp;1		if(&nbsp;$end&nbsp;==&nbsp;0&nbsp;and&nbsp;$line&nbsp;=~&nbsp;/&lt;\!--\s+end\s+content\s+--&gt;/);
	}
	
	return&nbsp;($title,&nbsp;$content);
}

#&nbsp;サイト表示のテンプレート
sub&nbsp;make_html{
	my&nbsp;($t,&nbsp;$c)&nbsp;=&nbsp;@_;

	#ヘッダ
	my&nbsp;$html&nbsp;=&nbsp;&lt;&lt;&nbsp;&quot;_EoHEAD&quot;;
	&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&nbsp;xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&nbsp;xml:lang=&quot;ja&quot;&nbsp;lang=&quot;ja&quot;&nbsp;dir=&quot;ltr&quot;&gt;
&lt;head&gt;
&lt;meta&nbsp;http-equiv=&quot;Content-Type&quot;&nbsp;content=&quot;text/html;&nbsp;charset=utf-8&quot;&nbsp;/&gt;
&lt;link&nbsp;rel=&quot;stylesheet&quot;&nbsp;href=&quot;styles.css&quot;&nbsp;type=&quot;text/css&quot;&nbsp;/&gt;
&lt;title&gt;Wikipedia&nbsp;:&nbsp;$t&nbsp;(&nbsp;Wiipedia&nbsp;/&nbsp;tenguyasiki.jp&nbsp;)&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;このページはNintendo&nbsp;Wii向けに再レイアウトされています。本来のサイトは&lt;a&nbsp;href=&quot;$srcurl&quot;&gt;$srcurl&lt;/a&gt;です。&lt;/div&gt;
_EoHEAD

	$html&nbsp;.=&nbsp;&quot;&lt;h1&gt;$t&lt;/h1&gt;\n&quot;;
	$html&nbsp;.=&nbsp;$c;

	#フッタ	
	$html&nbsp;.=&nbsp;&lt;&lt;&nbsp;&quot;_EoFOOT&quot;;
&lt;hr&nbsp;/&gt;
by&nbsp;&lt;a&nbsp;href=&quot;http://tenguyasiki.jp/&quot;&gt;天狗屋敷.jp&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;
_EoFOOT

	return&nbsp;$html;
}
</pre>

■<a href="http://tenguyasiki.jp/files/styles.css">styles.css</a>
<pre>
body&nbsp;{
	font-size&nbsp;:&nbsp;28px;
	line-height:1.1em;
}

div.content{
	overflow:&nbsp;hidden;
}

span.editsection&nbsp;{
	visibility&nbsp;:&nbsp;hidden;
	float&nbsp;:&nbsp;right;
}

h1&nbsp;{
	display:block;
	margin:20px&nbsp;0&nbsp;10px&nbsp;10px;
	padding:10px;
	font-family:&quot;Trebuchet&nbsp;MS&quot;,arial,sans-serif;
	font-size:1.8em;
	color:#c00;
	border-color:#ddd;
	border-style:solid;
	border-width:0&nbsp;0&nbsp;1px&nbsp;0;
	text-align&nbsp;:&nbsp;right;
}
h2&nbsp;{
	display:block;
	margin:20px&nbsp;0&nbsp;0&nbsp;30px;
	padding:0;
	font-family:&quot;Trebuchet&nbsp;MS&quot;,arial,sans-serif;
	font-size:1.1em;
	color:#000;
	border-color:#c00;
	border-style:solid;
	border-width:0&nbsp;0&nbsp;1px&nbsp;0;
}

h3&nbsp;{
	display:block;
	margin:20px&nbsp;0&nbsp;0&nbsp;30px;
	padding:0;
	font-family:&quot;Trebuchet&nbsp;MS&quot;,arial,sans-serif;
	color:#000;
	border-color:#c00;
	border-style:solid;
	border-width:0&nbsp;0&nbsp;1px&nbsp;0;
}
	
	
div.uncyclopedia{
	float&nbsp;:&nbsp;right;
	width&nbsp;:&nbsp;40%;
	height&nbsp;:&nbsp;200px;
	margin&nbsp;:&nbsp;5px;
	padding&nbsp;:&nbsp;5px;
	background-color&nbsp;:&nbsp;#cccccc;
}

div.wikipedia{
	float&nbsp;:&nbsp;left;
	width&nbsp;:&nbsp;40%;
	height&nbsp;:&nbsp;200px;
	margin&nbsp;:&nbsp;5px;
	padding&nbsp;:&nbsp;5px;
	background-color&nbsp;:&nbsp;#cccccc;
}

div.info{
	clear&nbsp;:&nbsp;both;
}
</pre>
]]>
   </content>
</entry>
<entry>
   <title>WiiでもWikipediaを見たい！</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2007/01/wiiwikipedia_1.html" />
   <id>tag:tenguyasiki.jp,2007:/blog//1.36</id>
   
   <published>2007-01-06T03:07:49Z</published>
   <updated>2007-01-06T03:52:52Z</updated>
   
   <summary>デジモノに埋もれる日々さんのWii用に最適化されたウェブページを作ってみるテストに触発されてこんなものを作ってみました。 Wii用ゲートウェイ：ぐだぐだWiipedia＆Unwiipedia WikipediaとUncyclopediaを、２８ポイントで平べったく再レイアウトします。 まだちょっと表示がおかしいところがあるのは御愛嬌。あとWiiからブックマークしてもスクリーンショットが作成されないのは何が原因だろう。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="Wii" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<a href="http://c-kom.homeip.net/review/blog/">デジモノに埋もれる日々</a>さんの<a href="http://c-kom.homeip.net/review/blog/archives/2006/12/wii_1.html">Wii用に最適化されたウェブページを作ってみるテスト</a>に触発されてこんなものを作ってみました。

<blockquote>
<a href="http://tenguyasiki.jp/wiipedia/index.html">Wii用ゲートウェイ：ぐだぐだWiipedia＆Unwiipedia</a>
</blockquote>

<a href="http://ja.wikipedia.org/">Wikipedia</a>と<a href="http://ja.uncyclopedia.info/">Uncyclopedia</a>を、２８ポイントで平べったく再レイアウトします。

まだちょっと表示がおかしいところがあるのは御愛嬌。あとWiiからブックマークしてもスクリーンショットが作成されないのは何が原因だろう。]]>
      <![CDATA[ところで画面幅の指定に付いて、

<blockquote>
・画面サイズは 800×512 ピクセル。それに収まってスクロールしないように、
　780×480 のdiv枠を作って、その中ですべてのコンテンツを描写する。
</blockquote>

とのことですが、幅780pxはワイド設定が４：３の場合にはぴったりだけど１６：９の場合に余白部分が大きくなってしまうようです。

今回はとりあえずwidth指定をしないままにしておきました。width指定をしたい場合は…えーと、CSSだけで解決できるのだろうか？]]>
   </content>
</entry>
<entry>
   <title>データベースを壊してしまってMTを再構築</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/12/mt.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.34</id>
   
   <published>2006-12-21T08:22:47Z</published>
   <updated>2006-12-21T10:04:50Z</updated>
   
   <summary>データベースをいじっていたらついうっかりMovableTypeで使っていたデータベースを削除してしまいました。 バックアップも取ってないのに。 仕方ないのでMovableTypeのstaticなhtmlからXML-RPCを使ってエントリし直すプログラムを書いて対処。なんとかうまく行ってる？ 後々また使うことになるかも知れないのでついでに晒しておきます。 ※注意：とても適当なプログラムです。もし使おうとする場合は十分テストしてからご利用下さい。...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>データベースをいじっていたらついうっかりMovableTypeで使っていたデータベースを削除してしまいました。</p>

<p>バックアップも取ってないのに。</p>

<p>仕方ないのでMovableTypeのstaticなhtmlからXML-RPCを使ってエントリし直すプログラムを書いて対処。なんとかうまく行ってる？</p>

<p>後々また使うことになるかも知れないのでついでに晒しておきます。</p>

<p>※注意：とても適当なプログラムです。もし使おうとする場合は十分テストしてからご利用下さい。</p>
]]>
      <![CDATA[<pre><code>
use&nbsp;strict;
use&nbsp;warnings;
use&nbsp;Net::MovableType;
use&nbsp;Jcode;

#staticページからデータを取り出すための正規表現。
my&nbsp;$re_title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;'&lt;h2&nbsp;id=&quot;archive-title&quot;&gt;(.+)&lt;/h2&gt;';
my&nbsp;$re_entrybody&nbsp;=&nbsp;'&lt;div&nbsp;class=&quot;entry-body&quot;&gt;';
my&nbsp;$re_entrymore&nbsp;=&nbsp;'&lt;div&nbsp;id=&quot;more&quot;&nbsp;class=&quot;entry-more&quot;&gt;';
my&nbsp;$re_entrydate&nbsp;=&nbsp;'Posted&nbsp;on&nbsp;(\d+)&amp;#24180;(\d+)&amp;#26376;(\d+)&amp;#26085;&nbsp;(\d+):(\d+)';
my&nbsp;$re_entryend&nbsp;&nbsp;=&nbsp;'^&lt;/div&gt;\n';	#&nbsp;←これでentrybodyとentrymoreの終了を検知してます。適当すぎ！

#XML-RPCの設定
my&nbsp;$mt&nbsp;=&nbsp;new&nbsp;Net::MovableType('http://tenguyasiki.jp/MT/mt-xmlrpc.cgi');
$mt-&gt;username('username');
$mt-&gt;password('password');
$mt-&gt;blogid(1);

my&nbsp;$dir&nbsp;=&nbsp;'entries';	#&nbsp;htmlファイルを探索するディレクトリ。

tree($dir,&nbsp;'.');	#探索開始

exit;

#&nbsp;指定したディレクトリ以下にあるファイルを探索します。
sub&nbsp;tree{
	my&nbsp;$dir&nbsp;=&nbsp;$_[0];
	my&nbsp;$current&nbsp;=&nbsp;$_[1];

	opendir&nbsp;DH,&nbsp;&quot;$current/$dir&quot;&nbsp;or&nbsp;die&nbsp;&quot;$current/$dir:$!&quot;;
	my&nbsp;@list&nbsp;=&nbsp;readdir&nbsp;DH;
	close(DH);

	foreach&nbsp;my&nbsp;$file&nbsp;(@list)&nbsp;{
		next&nbsp;if&nbsp;$file&nbsp;=~&nbsp;/^\.{1,2}$/;	#&nbsp;'.'や'..'も取れるので、スキップする
		next&nbsp;if&nbsp;$file&nbsp;=~&nbsp;/index\.html/;	#&nbsp;index.htmlもスキップ
		if(-d&nbsp;&quot;$dir/$file&quot;){
			tree($file,&nbsp;&quot;$current/$dir&quot;);
		}
		else{
			my&nbsp;$filename&nbsp;=&nbsp;&quot;$current/$dir&quot;&nbsp;.&nbsp;&quot;/&quot;&nbsp;.&nbsp;$file,&nbsp;&quot;\n&quot;;
			print&nbsp;&quot;$filename\n&quot;;

			my&nbsp;$ent&nbsp;=&nbsp;parseEntry($filename);

			my&nbsp;$entry&nbsp;=&nbsp;{
			&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$ent-&gt;{title},
			&nbsp;&nbsp;&nbsp;&nbsp;description&nbsp;&nbsp;=&gt;&nbsp;$ent-&gt;{body},
			&nbsp;&nbsp;&nbsp;&nbsp;mt_text_more&nbsp;=&gt;&nbsp;$ent-&gt;{more},
			&nbsp;&nbsp;&nbsp;&nbsp;mt_convert_breaks&nbsp;=&gt;&nbsp;'0',
			&nbsp;&nbsp;&nbsp;&nbsp;dateCreated&nbsp;&nbsp;=&gt;&nbsp;$ent-&gt;{date},
			};

			my&nbsp;$new_id&nbsp;=&nbsp;$mt-&gt;newPost($entry,&nbsp;0)&nbsp;or&nbsp;die&nbsp;$mt-&gt;errstr;
			$mt-&gt;setPostCategories($new_id,&nbsp;&quot;perl&quot;)&nbsp;or&nbsp;die&nbsp;$mt-&gt;errstr;
			$mt-&gt;publishPost($new_id)&nbsp;or&nbsp;die&nbsp;$mt-&gt;errstr;
		}
	}
}


sub&nbsp;parseEntry{
	my&nbsp;$filename&nbsp;=&nbsp;$_[0];

	my&nbsp;%text;
	my&nbsp;$mode&nbsp;=&nbsp;'';

	open(IN,&nbsp;&quot;$filename&quot;);
	while(&lt;IN&gt;){
		my&nbsp;$line&nbsp;=&nbsp;$_;
		$line&nbsp;=~&nbsp;s/^\s+//g;

		if($line&nbsp;=~&nbsp;/$re_title/){
			$text{title}&nbsp;=&nbsp;$1;
		}
		elsif($line&nbsp;=~&nbsp;/$re_entrydate/){
			$text{date}&nbsp;=&nbsp;&quot;$1-$2-$3T$4:$5:00+0900&quot;;
	#&nbsp;ISO-8601&nbsp;format
	#&nbsp;ex.&nbsp;2001-08-02T10:45:23+0900
		}
		elsif($line&nbsp;=~&nbsp;/$re_entrybody/){
			$mode&nbsp;=&nbsp;'body';
		}
		elsif($line&nbsp;=~&nbsp;/$re_entrymore/){
			$mode&nbsp;=&nbsp;'more';
		}
		elsif($line&nbsp;=~&nbsp;/$re_entryend/){
			$mode&nbsp;=&nbsp;'';
		}
		else{
			if($mode&nbsp;eq&nbsp;'body'){
				$text{$mode}&nbsp;.=&nbsp;$line;
			}
			elsif($mode&nbsp;eq&nbsp;'more'){
				$text{$mode}&nbsp;.=&nbsp;$line;
			}
		}
	}
	close(IN);

	return&nbsp;\%text;
}
</code></pre>
]]>
   </content>
</entry>
<entry>
   <title>誰どこ：フェニックスの『今ホームショップにいる人』を列挙する</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/12/post_10.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.32</id>
   
   <published>2006-12-07T12:10:00Z</published>
   <updated>2006-12-22T05:17:59Z</updated>
   
   <summary>ダーツマシンのフェニックスには今そのショップで1時間以内に投げた人を『今ホームショップにいる人』として表示できる機能があります。 これがPCから見る場合にはいちいちログインする必要がある上に登録カード1枚当たり一店舗しか見ることができなくて不便だったり、携帯サイトからだとブックマークはできるものの携帯のブラウザで何ページも見るのも面倒。 で、まとめて表示できるようにしてしまうスクリプトを書いてみました。 ※制限事項：ＰＣサイトからデータを取得している関係上、「1時間以内に投げた人」ではなく「30分以内に投げた人」だけが表示されます。携帯サイトからデータを取れるなら1時間以内に投げた人、ってできるんですけどね…。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>ダーツマシンのフェニックスには今そのショップで1時間以内に投げた人を『今ホームショップにいる人』として表示できる機能があります。</p>
<p>これがPCから見る場合にはいちいちログインする必要がある上に登録カード1枚当たり一店舗しか見ることができなくて不便だったり、携帯サイトからだとブックマークはできるものの携帯のブラウザで何ページも見るのも面倒。</p>
<p>で、まとめて表示できるようにしてしまうスクリプトを書いてみました。</p>
※制限事項：ＰＣサイトからデータを取得している関係上、「1時間以内に投げた人」ではなく「30分以内に投げた人」だけが表示されます。携帯サイトからデータを取れるなら1時間以内に投げた人、ってできるんですけどね…。
]]>
      <![CDATA[<p>なお、設置の際には表示したいホームショップを登録しているカードが必要です。<a href="http://tenguyasiki.jp/cgi/daredoko/daredoko.cgi">設置例はこちらをご覧下さい。</a></p>
エムロジック放課後プロジェクトさんの<a href="http://labs.m-logic.jp/2006/12/movabletypeentityrefbutton_v00.html">MovableType用EntityRefButtonプラグイン v0.0.2</a>を使わせていただきました。超便利！
<p>■<a href="http://tenguyasiki.jp/files/daredoko_cgi.txt">daredoko.cgi</a></p>
<pre>
#!/usr/local/bin/perl
#
# 『だれどこ？』：登録したカードで指定しているホームショップに今いるプレイヤーを一覧する
# 
# 2006/12/7 公開	/Daisuke Motohashi
#

use strict;
use warnings;
use LWP::UserAgent;
use CGI;#  qw(-debug);
use CGI::Carp qw(fatalsToBrowser);
use HTTP::Request::Common qw(POST);
use HTTP::Cookies;
use HTML::Template;
use HTML::TableExtract;


#
#ユーザー設定（必須）
#

#フェニックスのアカウント情報
my @cardinfo	= (
		{
			shop => '川内ファンキータイム',
			id   => '',
			pw   => ''
		},

		{
			shop => '沖浜ファンキータイム',
			id   => '',
			pw   => ''
		}
	);

#プロキシの指定
my $proxy	= "";

#
# ↑ここまでユーザー設定 ここからシステム設定↓
#
my $charset		= "Shift_JIS";
my $cookie_file = "Cookie.txt";

# フェニックスPCサイトのURL
my $url_login = 'http://www.dartsjapan.jp/login.php';				#ログイン
my $url_homeshop = 'http://www.dartsjapan.jp/mypage_homeshop.php';	#いまどこ

# いまどこページ(mypage_homeshop.php)のテーブルで使われているヘッダー。
my @headers_mypage_homeshop = ('プレイヤーネーム', '性別', '年齢', 'Last Time', '状態' );
# その中から表示するヘッダを指定
my @th = ('プレイヤーネーム', '性別', 'Last Time');

#
# 設定ここまで
#
my $cgi = CGI->new;
print $cgi->header(-charset=>"$charset");

#  UserAgentの生成と、cookie_jarのセット 
my $cookie_jar  =  HTTP::Cookies->new(file  =>  $cookie_file,  autosave  =>  1,  ignore_discard  =>  1); 
my $ua = LWP::UserAgent->new; 
$ua->cookie_jar($cookie_jar); 
$ua->proxy(['http'] => $proxy);

my $template = HTML::Template->new_scalar_ref( template(), option => 'value');

my $line;
foreach my $card (@cardinfo){
	my @players = getActivePlayers($ua, $card->{id}, $card->{pw});
	$line .= "<tr><td colspan=3>$card->{shop}</td></tr>";
	foreach my $p (@players){
		$line .= "<tr>";
		foreach my $key ( @th){
			if(defined $p->{$key}){
				$line .= "<td>$p->{$key}</td>\n";
			}
			else{
				$line .= "<td></td>\n";
			}
		}
		$line .= "</tr>\n";
	}
}
$template->param(playerslist => $line);
print $template->output;

exit;

sub getActivePlayers{
	my ($ua, $id, $pw) = @_;

	# UserAgentを生成してログイン処理
	my $url      = $url_login;
	my %formdata = ('cardno' => $id, 'pw' => $pw);
	my $request  = POST($url, [%formdata]);
	my $res = $ua->request($request);

	# いまどこを取得
	$url = $url_homeshop;
	$res = $ua->get($url);
	my @players = parse_mypage_homeshop( $res->as_string );

	return @players;
}

#
#Phoenixいまどこページ(html)からのデータ抽出。ハッシュの配列を返す。
#
sub parse_mypage_homeshop{
	my $html = $_[0];

	my $te = HTML::TableExtract->new(
								depth     => 0,
								subtables => 0,
							);
	$te->parse( $html );

	my (@players);
	foreach my $ts ($te->tables) {
		foreach my $row ($ts->rows) {
			my %rowHash;
			for my $x (0..$#headers_mypage_homeshop){
				$rowHash{ $headers_mypage_homeshop[$x] } = $row->[$x] unless($row->[$x] && $row->[$x] eq "\xA0");
			}
			push(@players, \%rowHash) if($rowHash{'Last Time'} && $rowHash{'Last Time'} =~ /\d+:\d/);
	    }
	}
	return @players;
}


#テンプレートのリファレンスを返す。
sub template{
	my $temp = << "END_OF_TMPL";
<html>
<head><title>Are there?</title>
<body>
<TMPL_VAR NAME=modecomment>
だれどこ
<table border=1px>
	<tr><th>player</th><th>sex</th><th>Last Time</th></tr>
	<TMPL_VAR NAME=playerslist>
</table>
<hr>
by ぶ (tenguyasiki.jp)
</body>
</html>

END_OF_TMPL

	return \$temp;
}
</pre>
]]>
   </content>
</entry>
<entry>
   <title>細かすぎて伝わらないlifehack選手権(Todo管理編)</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/12/lifehacktodo.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.31</id>
   
   <published>2006-12-06T17:53:00Z</published>
   <updated>2006-12-21T08:03:42Z</updated>
   
   <summary>突然ですが何人かの協働で進めてるTodoの共有をWikiでやってます。毎度毎度そのWikiを参照すれば良いんだけど、そもそもWikiの存在を忘れがちなのでメールで定期的に送信するようにしました。 ※この手法はページの内容をplain textで保存するWikiエンジン限定です。僕はサーバーのスペックがアレなので軽そうなfswikiliteを使ってます。 ※メールヘッダを直接記載するので、当然イントラネットでの運用推奨です。sendmailとか使ってるし、そもそもページのメール送信機能のあるWikiも既にありそう。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>突然ですが何人かの協働で進めてるTodoの共有をWikiでやってます。毎度毎度そのWikiを参照すれば良いんだけど、そもそもWikiの存在を忘れがちなのでメールで定期的に送信するようにしました。</p>
<p>※この手法はページの内容をplain textで保存するWikiエンジン限定です。僕はサーバーのスペックがアレなので軽そうなfswikiliteを使ってます。<br />
※メールヘッダを直接記載するので、当然イントラネットでの運用推奨です。sendmailとか使ってるし、そもそもページのメール送信機能のあるWikiも既にありそう。</p>
]]>
      <![CDATA[<p>まず定期送信したいwikiページの先頭に平文でメールヘッダを書きます。</p>
<pre>
From: jibunno_adr@intra.hogehoge.co.jp
To: darekano_adr@intra.hogehoge.co.jp,jibunno_adr@intra.hogehoge.co.jp
Subject: 【定期配信】project関連Todo
</pre>
<p>ヘッダをダイレクトに書くのでブラウザからwikiを見ると崩れてしまいますが気にしません。</p>
<p>Toの行にメールアドレスを加えればそれだけで定期配信メールの受信者に追加されます。wikiなので、「このページは自分にも配信して欲しい」とか「あいつも巻き込もう」と思ったら誰でも勝手に書き加えることができます。</p>
<p>で、そのwikiを置いているマシンのcronにこういう内容で登録します。</p>
<pre>
00 09 * * Mon /usr/sbin/sendmail -t < /home/jibunnno/public_html/fswikilite/data/project%B4%D8%CF%A2Todo.wiki
</pre>
<p>これで毎週月曜日の朝9:00にページの内容が自動で配信されます。このページにはメンバー共通のTodoを書くようにして、完了したら削除するといった運用をしてます。</p>
<p>最後にwikiページの末尾に以下の内容を書き込めば完了。</p>
<pre>
////////////
//■ブラウザでのアクセス先はこちら
// http://intra.hogehoge.co.jp/~jibunno/fswikilite/wiki.cgi?p=project%B4%D8%CF%A2Todo
</pre>
<p>fswikiは//がコメントアウトなのでこうしてます。wikiページへのリンクをメールに記載したいだけなので、コメントアウトしないでおいても無害。</p>
<p>スクリプトを書くこともなく使ってたツールの応用でできたのが嬉しかったのでエントリーにしてみました。</p>
]]>
   </content>
</entry>
<entry>
   <title>WWW::Mixiを勝手に機能追加</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/12/wwwmixi.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.33</id>
   
   <published>2006-12-01T15:41:00Z</published>
   <updated>2006-12-26T08:02:54Z</updated>
   
   <summary> WWW::Mixiを使ってmixiコミュニティのトピックから記事を取得しようとしたところ、そのままだとどうも写真が取れないみたいなので追記してみました。 0.48版のparse_view_bbs()に変更を加えています。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>
<a href="http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FWWW%3A%3AMixi">WWW::Mixi</a>を使ってmixiコミュニティのトピックから記事を取得しようとしたところ、そのままだとどうも写真が取れないみたいなので追記してみました。
</p>
<p>0.48版のparse_view_bbs()に変更を加えています。</p>
]]>
      <![CDATA[<pre><code>
#&nbsp;写真も取得するように変更
sub&nbsp;parse_view_bbs&nbsp;{
	my&nbsp;$self&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;shift;
	my&nbsp;$res&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;(@_)&nbsp;?&nbsp;shift&nbsp;:&nbsp;$self-&gt;response();
	my&nbsp;$res&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;shift;
	return&nbsp;unless&nbsp;($res&nbsp;and&nbsp;$res-&gt;is_success);
	my&nbsp;$base&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$res-&gt;base-&gt;as_string;
	my&nbsp;$content&nbsp;=&nbsp;$res-&gt;content;
	my&nbsp;@items&nbsp;&nbsp;&nbsp;=&nbsp;();
	my&nbsp;$re_date&nbsp;=&nbsp;'&lt;td&nbsp;rowspan=&quot;3&quot;&nbsp;width=&quot;110&quot;&nbsp;bgcolor=&quot;#ffd8b0&quot;&nbsp;align=&quot;center&quot;&nbsp;valign=&quot;top&quot;&nbsp;nowrap&gt;(\d{4})年(\d{2})月(\d{2})日&lt;br&gt;(\d{1,2}):(\d{2})&lt;/td&gt;';
	my&nbsp;$re_subj&nbsp;=&nbsp;'&lt;td&nbsp;bgcolor=&quot;#fff4e0&quot;&gt;&amp;nbsp;(.+?)&lt;/td&gt;';
	my&nbsp;$re_desc&nbsp;=&nbsp;'&lt;/table&gt;(.+?)&lt;/td&gt;';
	my&nbsp;$re_c_date&nbsp;=&nbsp;'&lt;td&nbsp;rowspan=&quot;2&quot;&nbsp;width=&quot;110&quot;&nbsp;bgcolor=&quot;#f2ddb7&quot;&nbsp;align=&quot;center&quot;&nbsp;nowrap&gt;\n(\d{4})年(\d{2})月(\d{2})日&lt;br&gt;\n(\d{1,2}):(\d{2})';
	my&nbsp;$re_c_desc&nbsp;=&nbsp;'&lt;td&nbsp;class=&quot;h120&quot;&gt;(.+?)\n&lt;/td&gt;';
	my&nbsp;$re_link&nbsp;&nbsp;&nbsp;=&nbsp;'&lt;a&nbsp;href=&quot;?(.+?)&quot;?&gt;(.*?)&lt;\/a&gt;';

	my&nbsp;$re_phot&nbsp;&nbsp;=&nbsp;'&lt;a.+(show_bbs_comment_picture.pl\?bbs_id=\d+\&amp;id=\d+\&amp;number=\d+).*&gt;';

	if&nbsp;($content&nbsp;=~&nbsp;s/&lt;!--&nbsp;TOPIC:&nbsp;start&nbsp;--&gt;.*?${re_date}.*?${re_subj}.*?${re_link}(.*?)${re_desc}(.*?)$//is)&nbsp;{
		my&nbsp;($time,&nbsp;$subj,&nbsp;$link,&nbsp;$name,&nbsp;$imgs,&nbsp;$desc,&nbsp;$comm)&nbsp;=&nbsp;(sprintf('%04d/%02d/%02d&nbsp;%02d:%02d',&nbsp;$1,$2,$3,$4,$5),&nbsp;$6,&nbsp;$7,&nbsp;$8,&nbsp;$9,&nbsp;$10,&nbsp;$11);
		($desc,&nbsp;$subj)&nbsp;=&nbsp;map&nbsp;{&nbsp;s/[\r\n]+//g;&nbsp;s/&lt;br&gt;/\n/g;&nbsp;$_&nbsp;=&nbsp;$self-&gt;rewrite($_);&nbsp;}&nbsp;($desc,&nbsp;$subj);
		my&nbsp;$item&nbsp;=&nbsp;{&nbsp;'time'&nbsp;=&gt;&nbsp;$time,&nbsp;'description'&nbsp;=&gt;&nbsp;$desc,&nbsp;'subject'&nbsp;=&gt;&nbsp;$subj,&nbsp;'link'&nbsp;=&gt;&nbsp;$res-&gt;request-&gt;uri-&gt;as_string,&nbsp;'images'&nbsp;=&gt;&nbsp;[],&nbsp;'comments'&nbsp;=&gt;&nbsp;[]&nbsp;,&nbsp;'name'&nbsp;=&gt;&nbsp;$name,&nbsp;'name_link'&nbsp;=&gt;&nbsp;$self-&gt;absolute_url($link,&nbsp;$base)};
		foreach&nbsp;my&nbsp;$image&nbsp;($imgs&nbsp;=~&nbsp;/&lt;td&nbsp;width=130[^&lt;&gt;]*&gt;(.*?)&lt;\/td&gt;/g)&nbsp;{
			next&nbsp;unless&nbsp;($image&nbsp;=~&nbsp;/&lt;a&nbsp;[^&lt;&gt;]*'show_picture.pl\?img_src=(.*?)'[^&lt;&gt;]*&gt;&lt;img&nbsp;src=([^&nbsp;]*)&nbsp;border=0&gt;/);
			push(@{$item-&gt;{'images'}},&nbsp;{'link'&nbsp;=&gt;&nbsp;$self-&gt;absolute_url($1,&nbsp;$base),&nbsp;'thumb_link'&nbsp;=&gt;&nbsp;$self-&gt;absolute_url($2,&nbsp;$base)});
		}
		while&nbsp;($comm&nbsp;=~&nbsp;s/.*?${re_c_date}.*?${re_link}(.*?)${re_c_desc}.*?&lt;\/table&gt;//is){
			my&nbsp;($time,&nbsp;$link,&nbsp;$name,&nbsp;$imgs,&nbsp;$desc)&nbsp;=&nbsp;(sprintf('%04d/%02d/%02d&nbsp;%02d:%02d',&nbsp;$1,$2,$3,$4,$5),&nbsp;$6,&nbsp;$7,&nbsp;$8,&nbsp;$9);

			my&nbsp;@comment_picture&nbsp;=&nbsp;();
			my&nbsp;@comment_picture_small&nbsp;=&nbsp;();
			foreach&nbsp;my&nbsp;$line&nbsp;($desc&nbsp;=~&nbsp;/&lt;td&nbsp;width=&quot;130&quot;[^&lt;&gt;]*.+&lt;\/td&gt;/ig)&nbsp;{
				$line&nbsp;=~&nbsp;/&lt;td&nbsp;width=&quot;130&quot;[^&lt;&gt;]*&gt;&lt;a.+(show_bbs_comment_picture.pl\?bbs_id=\d+\&amp;id=\d+\&amp;number=\d+).*&gt;&lt;img&nbsp;src=&quot;(.+?)&quot;[^&lt;&gt;]*&gt;&lt;\/a&gt;&lt;\/td&gt;/isg;#&nbsp;($1,&nbsp;$2);
				my&nbsp;($large,&nbsp;$small)&nbsp;=&nbsp;($1,&nbsp;$2);
				push(@comment_picture,&nbsp;'http://mixi.jp/'&nbsp;.&nbsp;$large);
				push(@comment_picture_small,&nbsp;$small);
			}

			($name,&nbsp;$desc)&nbsp;=&nbsp;map&nbsp;{&nbsp;s/[\r\n]+//g;&nbsp;s/&lt;br&gt;/\n/g;&nbsp;$_&nbsp;=&nbsp;$self-&gt;rewrite($_);&nbsp;}&nbsp;($name,&nbsp;$desc);

			push(@{$item-&gt;{'comments'}},&nbsp;{
					'time'&nbsp;=&gt;&nbsp;$time,&nbsp;'link'&nbsp;=&gt;&nbsp;$self-&gt;absolute_url($link,&nbsp;$base),&nbsp;'name'&nbsp;=&gt;&nbsp;$name,&nbsp;'description'&nbsp;=&gt;&nbsp;$desc,
					'photos'&nbsp;=&gt;&nbsp;\@comment_picture,
					'thumbnails'&nbsp;=&gt;&nbsp;\@comment_picture_small
				}
			);
		}
		push(@items,&nbsp;$item);
	}
	return&nbsp;@items;
}
</code></pre>

<p>
ハッシュの構造は、<a href="http://digit.que.ne.jp/work/product/module/WWW/Mixi/WWW-Mixi-0.48.htm#_item____mixi_parse_view_bbs____response____">WWW::Mixiのドキュメントの記載</a>に従うとこんな感じ。photosとthumbnailsを追加しています。
<p>
<pre>
トピック（view_bbs.plのメイン部）を解析します。&nbsp;返り値は、以下のようなハッシュリファレンスです。
{
	'link'&nbsp;=&gt;&nbsp;'http://mixi.jp/view_bbs.pl?id=xxxxxx',
	'images'&nbsp;=&gt;&nbsp;[
		{
			'thumb_link'&nbsp;=&gt;&nbsp;'http://img1.mixi.jp/photo/bbs/xx/xx/xxxxxxx_xxs.jpg',
			'link'&nbsp;=&gt;&nbsp;'show_picture.pl?img_src=http://img1.mixi.jp/photo/bbs/xx/xx/xxxxxxx_xx.jpg'}
		},
	],
	'subject'&nbsp;=&gt;&nbsp;'リリース情報',
	'time'&nbsp;=&gt;&nbsp;'2005/09/01&nbsp;00:00',
	'name'&nbsp;=&gt;&nbsp;'walrus',
	'name_link'&nbsp;=&gt;&nbsp;'http://mixi.jp/show_friend.pl?id=xxxxx',
	'description'&nbsp;=&gt;&nbsp;'リリース情報はこのトピックに掲載していきます。'
	'comments'&nbsp;=&gt;&nbsp;[
			{
				'photos'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;[&nbsp;],&nbsp;#写真の枚数だけ入ります。無ければ空の配列。
				'thumbnails'&nbsp;=&gt;&nbsp;[&nbsp;],&nbsp;#同上
				'link'&nbsp;=&gt;&nbsp;'http://mixi.jp/show_friend.pl?id=xxxxx',
				'time'&nbsp;=&gt;&nbsp;'2005/09/01&nbsp;05:34',
				'name'&nbsp;=&gt;&nbsp;'walrus',
				'description'&nbsp;=&gt;&nbsp;'1.00版をリリースしました。'
			}
	]
}
</pre>
一応現状は動いているようです。
]]>
   </content>
</entry>
<entry>
   <title>FORM ACTION METHOD=&apos;GET&apos;</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/11/form_action_methodget.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.29</id>
   
   <published>2006-11-30T12:20:00Z</published>
   <updated>2006-12-21T08:03:38Z</updated>
   
   <summary>先日のput、携帯からだと普通に動いてたんですが、ＰＣからだとはてなグラフへの登録が動作しないことに気づきました。 はまってたのは、GETメソッドでformのURLに直接引数を書いてしまえばいいとばかり思っていたところ。こんなフォームを発行していた。 動作テストではこのＵＲＬをanchorタグに直接書いていたので動いていたようで、ブラウザからこのformを実行すると&apos;?&apos;以降が無視されてします。この場合、呼び出されるURLは&apos;http://tenguyasiki.jp/put.cgi?&apos;まで。 ↓こうすれば意図通りに動作しました。 当たり前と言えば当たり前の話で、method属性を省略したらダメだよね、という話。でも携帯からはちゃんと動いてたのに。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p><a href="http://tenguyasiki.jp/blog/2006/11/post_8.html">先日のput</a>、携帯からだと普通に動いてたんですが、ＰＣからだとはてなグラフへの登録が動作しないことに気づきました。</p>
<p>はまってたのは、GETメソッドでformのURLに直接引数を書いてしまえばいいとばかり思っていたところ。こんなフォームを発行していた。</p>
<p><textarea rows=4 cols=50><form action="http://tenguyasiki.jp/put.cgi?ago=1">
<input type=submit />
</form></textarea></p>
<p>動作テストではこのＵＲＬをanchorタグに直接書いていたので動いていたようで、ブラウザからこのformを実行すると'?'以降が無視されてします。この場合、呼び出されるURLは'http://tenguyasiki.jp/put.cgi?'まで。</p>
<p>↓こうすれば意図通りに動作しました。</p>
<p><textarea rows=5 cols=50><form method=GET action="http://tenguyasiki.jp/put.cgi">
<input type=hidden name=ago value=1 />
<input type=submit />
</form></textarea></p>
<p>当たり前と言えば当たり前の話で、method属性を省略したらダメだよね、という話。でも携帯からはちゃんと動いてたのに。</p>
]]>
      
   </content>
</entry>
<entry>
   <title>フェニックスのスコア自動入力ツール</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/11/post_9.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.30</id>
   
   <published>2006-11-23T12:37:00Z</published>
   <updated>2006-12-21T08:03:40Z</updated>
   
   <summary>フェニックスのスコア自動入力ツール公開します 個人用ツールとしてはまぁ使えるところまでできたのでここでいったん公開。 平均制席をボタンひとつではてなグラフに登録できます。 ■Phoenix userdata Transfer(zip)(※2006/11/30 Updated) 機能としては以下のとおり。 ・フェニックスからデータを取り出す。 ・その日のスコアの平均（最大／最小）を一覧表示する。 ・スコアをはてなグラフに登録する。 携帯から使いたかったので極力シンプルに。 そのわりに時間が掛かってしまったのは、今後ダーツ関連のスクリプトを組むときの再利用性を心がけてモジュール化してたためです。おかげでBAR-NETやDARTSLIVEの成績を取り込むのもちょっとの変更でできそう。 フェニックスのアカウント情報とはてなグラフのアカウント情報はスクリプトに直接書き込むことになるので、公開サーバーに設置する場合はアクセス権の設定に注意してください。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>フェニックスのスコア自動入力ツール公開します</p>
<p>個人用ツールとしてはまぁ使えるところまでできたのでここでいったん公開。<br />
平均制席をボタンひとつではてなグラフに登録できます。</p>
<p><img alt="putss.jpg" src="http://ddssk.s222.xrea.com/blog/images/putss.jpg" width="247" height="214" /></p>
<p>■<a href='http://tenguyasiki.jp/files/put.zip'>Phoenix userdata Transfer(zip)</a>(※2006/11/30 Updated)</p>
<p>機能としては以下のとおり。</p>
<p>・フェニックスからデータを取り出す。<br />
・その日のスコアの平均（最大／最小）を一覧表示する。<br />
・スコアをはてなグラフに登録する。</p>
<p>携帯から使いたかったので極力シンプルに。</p>
<p>そのわりに時間が掛かってしまったのは、今後ダーツ関連のスクリプトを組むときの再利用性を心がけてモジュール化してたためです。おかげでBAR-NETやDARTSLIVEの成績を取り込むのもちょっとの変更でできそう。</p>
<p>フェニックスのアカウント情報とはてなグラフのアカウント情報はスクリプトに直接書き込むことになるので、公開サーバーに設置する場合はアクセス権の設定に注意してください。<br />
</p>
]]>
      
   </content>
</entry>
<entry>
   <title>はてなグラフのスナップショットを撮る</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/10/post_8.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.28</id>
   
   <published>2006-10-19T13:23:00Z</published>
   <updated>2006-12-21T08:03:36Z</updated>
   
   <summary> 思いつきを形にしてみた。 10月10日のぶるつぶての一周年記念トーナメント → 川内リーグで、 調子グラフは動的に変化するから、今現在はスコンと下がってる所だね。 スナップショットを撮って貼り付けるような機能が無いと本文とグラフが一致しなくてイマイチだなあ。 Posted by U-SK at 2006年10月13日 02:51 という指摘があったので、はてなグラフのスナップショットを撮るスクリプト。10/16の更新で限りなく無価値になったけど、グラフの名前を変更したりすると過去のリンクがダメになるので使い道がないわけでもない。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p><a href="http://tenguyasiki.jp/cgi/hgss/cache/20061018_33133.html"><img src="http://tenguyasiki.jp/cgi/hgss/cache/20061018_33133.png" width="130" height="90" alt="GridBugの01 maxとGridBugの01 minとGridBugの01 ave( 2006-10-18 )"></a></p>
<p>思いつきを形にしてみた。</p>
<p>10月10日のぶるつぶての<a href="http://blog.livedoor.jp/gridbug/archives/50778524.html">一周年記念トーナメント → 川内リーグ</a>で、<br />
<blockquote><br />
調子グラフは動的に変化するから、今現在はスコンと下がってる所だね。<br />
スナップショットを撮って貼り付けるような機能が無いと本文とグラフが一致しなくてイマイチだなあ。<br />
Posted by U-SK at 2006年10月13日 02:51<br />
</blockquote></p>
<p>という指摘があったので、はてなグラフのスナップショットを撮るスクリプト。<a href="http://hatena.g.hatena.ne.jp/hatenagraph/20061016/1160972423">10/16の更新</a>で限りなく無価値になったけど、グラフの名前を変更したりすると過去のリンクがダメになるので使い道がないわけでもない。<br />
</p>
]]>
      <![CDATA[<div><a href="http://tenguyasiki.jp/files/hgss_cgi.txt">[hgss_cgi.txt]</a></div>
<div><iframe src="http://tenguyasiki.jp/files/hgss_cgi.txt"  width="500" height="150"></iframe></div>
<p>使い方は、まずcgiを呼び出すとフォームが表示されるので、そこにはてなグラフの”イメージタグ”を貼り付けます。<a href="http://graph.hatena.ne.jp/detail?id=GridBug&graphname=normalized%20cri%20ave&id=GridBug&graphname=normalized%2001%20ave">いくつかのグラフを比較しているようなグラフ</a>のイメージタグでも大丈夫。</p>
<p>submitするとグラフのサムネイルとグラフ詳細を両方とも手元にコピーしてキャッシュページを作るので、あとはキャッシュに書かれているイメージタグを自分のブログなりに貼り付ければＯＫ。固定されたグラフ画像を貼り付けることができます。</p>
<p><a href="http://blog.livedoor.jp/gridbug/archives/50786686.html">使用例はこちらのエントリー</a>で。</p>
<p><a href="http://tenguyasiki.jp/cgi/hgss/sample/sample.cgi">動作サンプルも用意したので触ってみたい方はどうぞ</a>。ただしファイルは同じ名前で上書きされていくので残りません。</p>
<p>■注意点１<br />
　認証とか何も考えないで作ったので、お使いの際は.htaccsessとかで認証を掛けるなり推測されにくいファイル名にするなりして隠しといてください。</p>
<p>■注意点２<br />
　スナップショットを管理する仕組みがありません。個別に削除して下さい。ファイル名は日付＋時刻なのでそれを参考に。</p>
<p>あとはサーバー使わなくても済むように、グラフのスナップショットをはてなフォトライフにアップロードするようにもしておきたい。</p>
<p>この辺は週末にでも。<br />
</p>
]]>
   </content>
</entry>
<entry>
   <title>”検索エンジン”はAmazonにも客を連れてくるか</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/08/amazon.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.26</id>
   
   <published>2006-08-22T13:38:00Z</published>
   <updated>2006-12-21T08:03:33Z</updated>
   
   <summary> グーグル―Google 既存のビジネスを破壊する 文春新書 (501)posted with amazlet on 06.08.22佐々木 俊尚 文藝春秋 (2006/04)Amazon.co.jp で詳細を見る この本の中に、羽田空港駐車場の話とメッキ職人の話があった。こっちの本は、その類話をもう９つ集めて一冊の本にしたものだ。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p></p>
<div class="amazlet-box" style="margin-bottom:0px;float:left;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4166605011/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://images-jp.amazon.com/images/P/4166605011.09.MZZZZZZZ.jpg" alt="グーグル―Google 既存のビジネスを破壊する  文春新書 (501)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4166605011/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank">グーグル―Google 既存のビジネスを破壊する  文春新書 (501)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4166605011/bibrirkbr-22" title="グーグル―Google 既存のビジネスを破壊する  文春新書 (501)" target="_blank">amazlet</a> on 06.08.22</div></div><div class="amazlet-detail">佐々木 俊尚 <br />文藝春秋 (2006/04)<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4166605011/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>
<div style="clear:both">
この本の中に、羽田空港駐車場の話とメッキ職人の話があった。こっちの本は、その類話をもう９つ集めて一冊の本にしたものだ。
]]>
      <![CDATA[<p>ただ同じ流れではあっても、業種が違って、業態が違うので、読む人には多様な示唆を与えてくれる。</p>
<p>また、ストーリーごとに、”ポイント”というセクションを設けて１～２ページでの要約もつけてある。この要約だけを拾い読みして、気になった話があれば内容を読んでもいいし、短い本なので頭から通して読んだってそれほど時間は掛からない。</p>
<p>９つある類話は以下の通り。</p>
<p>-老舗・鯖寿司の挑戦<br />
-日本のアートの底力<br />
-パソコン関連のサポートを一手に<br />
-伝統ある金庫店のモデルチェンジ<br />
-屋形船、電網界を泳ぐ<br />
-モノと情報の流通を読むセンス<br />
-客のニーズに応じる弁当<br />
-伝統の味をネット通販で全国に<br />
-注文の絶えない江戸切子</p>
<p>この本の面白さは、「事例集＝問題集」として読めるところにあった。</p>
<p>９つが全て実話で、既に出来上がっている商売の基盤に対して大きな問題（水害で店が流されただとか、観光の目玉が焼失しただとか）が生じる。続いて店の主人が解決策を考え出して、”検索”を軸とした立て直しを図る。</p>
<p>本書の中で、この”お約束”が破られることはない。だから、問題が起こるところまで読み進めながら、自分ならああするだとかこうするだとか考えて楽しめる。また少し読み進めて、なるほど当人はそうしたのか、では次はこうしたらどうだろ？　と、後追いしながらの追体験もできる。</p>
<p>何より解決策は必ず検索エンジンと密接に関わってくるわけで、ネットに慣れている人ならなおのこと体感的な楽しみ方ができると思う。それぞれの話の主人公たちも、突飛な発想と人外の才能とでいきなり問題を取り除くような真似はしないし、回答は身近な努力から出してくる。</p>
<p>痛快なのはそれが全部成功につながっているところでもある。そういう事例だけを集めているとはいえ、キーワード広告が今現在示せているすばらしい未来を感じることは十分にできると思う。</p>
<p>本書の内容からまったく無関係に妄想してみると、アマゾンがキーワード広告をやったら面白いんじゃないだろうかという考えが出てきた。検索キーワードに広告料を払うのは一緒だけど、その広告料の支払いはアフィリエイトの売り上げから支払うことができるわけだ。</p>
<p>いっそのことアフィリエイトの売り上げからだけ支払えるようにしても面白いかもしれない。アフィリエイトで大きく売り上げているサイトであるほど競争率の高いキーワードを購入でき、競争率の高いキーワードを持っているサイトほどアフィリエイトの売り上げにつなげられる可能性が高くなる。amazonにしてもフトコロは痛まない（どころかアフィリエイトの報酬を自社のサービスで代替できてしまう）し、アフィリエイトする側からしてもトラフィックをよりたくさん集められる。</p>
<p>これはAmazonに限らず、アフィリエイトサービスを行っていて、お客さんに検索エンジンを提供しているならどのショッピングモールなら（規模にもよるだろうけど）適用できそうだ。そしたらGoogleなんかはキーワード広告サービスを提供するサービスを始めたってかまわないわけだ。メタメタ。</p>
<p>そんな妄想をしてしまうほど、キーワード広告はまだまだ面白くなりそうだと考えさせられる本でした。</p>
<div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873111811/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://images-jp.amazon.com/images/P/4873111811.09.MZZZZZZZ.jpg" alt="Amazon Hacks 世界最大のショッピングサイト完全活用テクニック100選" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873111811/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank">Amazon Hacks 世界最大のショッピングサイト完全活用テクニック100選</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4873111811/bibrirkbr-22" title="Amazon Hacks 世界最大のショッピングサイト完全活用テクニック100選" target="_blank">amazlet</a> on 06.08.22</div></div><div class="amazlet-detail">ポール・ボシュ 篠原 稔和 ウェブ・ユーザビリティ研究会 <br />オライリー・ジャパン (2004/04/24)<br />売り上げランキング: 34,249<br /></div><div class="amazlet-review" style="margin-top:10px; margin-bottom:10px"><div class="amazlet-review-average" style="margin-bottom:5px">おすすめ度の平均: <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-3-5.gif" alt="3.57" /></div><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> ユーザがクリックするたびにページを生成するプログラムの集合体<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-4-0.gif" alt="4" /> amazonアソシエイトの人にも、そうでない人にも<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-1-0.gif" alt="1" /> 翻訳する価値があったかどうか疑問<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873111811/bibrirkbr-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>
]]>
   </content>
</entry>
<entry>
   <title>アマゾン・インスタントストア</title>
   <link rel="alternate" type="text/html" href="http://tenguyasiki.jp/blog/2006/08/post_7.html" />
   <id>tag:tenguyasiki.jp,2006:/blog//1.25</id>
   
   <published>2006-08-19T13:30:00Z</published>
   <updated>2006-12-21T08:03:31Z</updated>
   
   <summary>アマゾンがインスタントストアというのを始めたというので作成してみた。 現在の積ん読本を乗っけています。 天狗屋敷の積ん読本 一回作ったら商品の入れ替えはできないらしい。積ん読本、という使い方をするには向いてないようなので、他の使い方を考えた方がいいみたい。 作りっぱなしで、しかも９冊までという限定付き。 作成自体は楽なのでその都度作るという使い方をしてもよさそうだ。...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://tenguyasiki.jp/blog/">
      <![CDATA[<p>アマゾンがインスタントストアというのを始めたというので作成してみた。</p>
<p>現在の積ん読本を乗っけています。</p>
<p><a href="http://astore.amazon.co.jp/bibrirkbr-22/503-9287645-1115939">天狗屋敷の積ん読本</a></p>
<p>一回作ったら商品の入れ替えはできないらしい。積ん読本、という使い方をするには向いてないようなので、他の使い方を考えた方がいいみたい。</p>
<p>作りっぱなしで、しかも９冊までという限定付き。</p>
<p>作成自体は楽なのでその都度作るという使い方をしてもよさそうだ。<br />
</p>
]]>
      
   </content>
</entry>

</feed>
