<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xml:lang="ja" xml:base="http://jinim.jp/wp-atom.php">
	<title type="text">#8</title>
	<subtitle type="text">from Tokyo</subtitle>

	<updated>2012-01-07T10:50:48Z</updated>

	<link rel="alternate" type="text/html" href="http://jinim.jp" />
	<id>http://jinim.jp/feed/atom</id>
	

	<generator uri="http://wordpress.org/" version="3.3.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/jinim/CHcc" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jinim/chcc" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[WordPressテーマ Codium Extend の日本語翻訳ファイル]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2343" />
		<id>http://jinim.jp/?p=2343</id>
		<updated>2011-09-09T13:22:21Z</updated>
		<published>2011-09-09T03:04:12Z</published>
		<category scheme="http://jinim.jp" term="Tech" /><category scheme="http://jinim.jp" term="WordPress" />		<summary type="html"><![CDATA[頼まれてセットアップしたサイトで使ったCodium Extendテーマがシンプルでいいなあと思ったので、ここでも使ってみることにしました。 そのサイトではできるだけ英語は出てきて欲しなくて、日本語の翻訳ファイルを作ったの <a href="http://jinim.jp/archives/2343"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2343">&lt;p&gt;頼まれてセットアップしたサイトで使った&lt;a href="http://wordpress.org/extend/themes/codium-extend" title="Codium Extend"&gt;Codium Extend&lt;/a&gt;テーマがシンプルでいいなあと思ったので、ここでも使ってみることにしました。&lt;/p&gt;
&lt;p&gt;そのサイトではできるだけ英語は出てきて欲しなくて、日本語の翻訳ファイルを作ったのでここで公開しておきます。&lt;/p&gt;
&lt;p&gt;   Codium Extend ver.1.0.9用の日本語翻訳ファイル： &lt;a href='http://jinim.jp/wp-content/uploads/2011/09/codium-extend_ja.zip'&gt;codium-extend_ja.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このzipファイルを解凍して、ja.moファイルをwp-content/themes/codium-extend/languages/に置けば使えるはずです。ja.poファイルの最新版は&lt;a href="https://gist.github.com/1205390"&gt;Gist:1205390&lt;/a&gt;で公開しておきます。どうぞ自由にお使い下さい。&lt;/p&gt;
&lt;p&gt;バージョンアップに追随できるかどうか心配なのでこのサイトは英語にするかも。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/841SDReYP7Rd0prtS76Wy7UhjAU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/841SDReYP7Rd0prtS76Wy7UhjAU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/841SDReYP7Rd0prtS76Wy7UhjAU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/841SDReYP7Rd0prtS76Wy7UhjAU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2343#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2343/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[Podcastの面白さを知るの巻]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2327" />
		<id>http://jinim.jp/?p=2327</id>
		<updated>2010-11-17T02:54:26Z</updated>
		<published>2010-11-17T02:47:48Z</published>
		<category scheme="http://jinim.jp" term="Life" />		<summary type="html"><![CDATA[まったくあたらしい分野についての読書をしようと思うことがもうずいぶんない。もう読んだことのある作家の新刊や未読の古本、技術書ぐらいにしか手が出なくなっている。 40過ぎてから、なんだか停滞してるなあ、オレ。という感じはこ <a href="http://jinim.jp/archives/2327"> read more <span class="meta-nav">&#187;</span></a>
Related posts:<ol>
<li><a href='http://jinim.jp/archives/405' rel='bookmark' title='びっくりしたぞ、AKIRA。'>びっくりしたぞ、AKIRA。</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2327">&lt;p&gt;まったくあたらしい分野についての読書をしようと思うことがもうずいぶんない。もう読んだことのある作家の新刊や未読の古本、技術書ぐらいにしか手が出なくなっている。&lt;/p&gt;
&lt;p&gt;40過ぎてから、なんだか停滞してるなあ、オレ。という感じはこの読書傾向に端的にあらわれている。&lt;/p&gt;
&lt;p&gt;僕は毎日自分で自動車を運転して通勤している。ここ1年ぐらいは通勤中のカーオーディオから流れているのは、ワンセグのNHK総合テレビ。画面は表示されないけれど、天気予報とかニュースとか朝の連続テレビ小説とかバラエティもあるしね。&lt;/p&gt;
&lt;p&gt;でもまあ、なんていうかなあ、停滞してるなあ、と。&lt;/p&gt;
&lt;p&gt;そんなときに、&lt;span id="more-2327"&gt;&lt;/span&gt;ふとiTunesでPodcastというのをちょっといじってみたら、あれれなんだ、いろいろ面白そうだな。でも聴いたり見たりする時間ないしなあ。。。。&lt;/p&gt;
&lt;p&gt;あれ、2年前に車買いかえたときに、カーオーディオにiPodつなげられるようにした記憶が。。。どうやってつなぐんだろ。。。ん！&lt;/p&gt;
&lt;p&gt;グローブボックスを開けて奥の方をみてみるとUSBの接続端子があった。おおっ、日の目を見るのに2年かかったUSB端子。&lt;/p&gt;
&lt;p&gt;さっそくiPodをつないでみると、ちゃんとカーオーディオが「iPodを読み込み中」と出るよ。&lt;/p&gt;
&lt;p&gt;それ以来、iPodに持ってきたPodcastを聴いている。やっぱり音だけを前提に作られたコンテンツは耳に心地よい。そして、勉強になるコンテンツがたくさんあるじゃないか。&lt;/p&gt;
&lt;p&gt;今、毎日聴いているのは、&lt;a href="http://j.mp/ckDso4"&gt;ラジオ版　学問ノススメ　Special Edition&lt;/a&gt;。たーくさんコンテンツがあるから、古いものを聞き終わって最新に追いつくには今月一杯ぐらいかかりそう。&lt;/p&gt;
&lt;p&gt;これまで聴いた中では、安田登、高橋源一郎、内田樹、柴田元幸あたりは特に刺激的だった。&lt;/p&gt;
&lt;p&gt;この番組は基本的にゲストの著書のプロモーション。話の面白さはおいといて、へーっと魅かれて3冊買った。まだ読んでないけど、とても楽しみ。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href='http://jinim.jp/archives/405' rel='bookmark' title='びっくりしたぞ、AKIRA。'&gt;びっくりしたぞ、AKIRA。&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n5VCr_AwwXFSWiJVYmuIKIsSTe4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n5VCr_AwwXFSWiJVYmuIKIsSTe4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n5VCr_AwwXFSWiJVYmuIKIsSTe4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n5VCr_AwwXFSWiJVYmuIKIsSTe4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2327#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2327/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[Linodeからさくらインターネットへ（一部）移行した理由]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2308" />
		<id>http://jinim.jp/?p=2308</id>
		<updated>2010-10-12T11:25:15Z</updated>
		<published>2010-10-12T09:01:24Z</published>
		<category scheme="http://jinim.jp" term="Tech" /><category scheme="http://jinim.jp" term="Linode" /><category scheme="http://jinim.jp" term="さくらインターネット" />		<summary type="html"><![CDATA[今年の3月にさくらインターネットからLinodeへ移行した理由というエントリを書いた。内容は専用サーバを解約してLinodeにすべてのサイトを移行した理由を連ねたもの。このエントリでは半年後の9月に一部のサイトをさくら（ <a href="http://jinim.jp/archives/2308"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2308">&lt;p&gt;今年の3月に&lt;a href="http://jinim.jp/archives/1829"&gt;さくらインターネットからLinodeへ移行した理由&lt;/a&gt;というエントリを書いた。内容は専用サーバを解約してLinodeにすべてのサイトを移行した理由を連ねたもの。このエントリでは半年後の9月に一部のサイトをさくら（のVPS）に戻した理由を書いておくことにした。次に何か別のサービスが出てきたときに見返すためにも。&lt;br /&gt;
&lt;span id="more-2308"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.linode.com/?r=e9b1eb595b0c21f969438f1efb5e862df08d5f7f"&gt;Linode&lt;/a&gt;は管理するための機能が洗練されていてとても使いやすい。&lt;a href="http://itunes.apple.com/jp/app/linode-manager/id352861751"&gt;iPhone/iPod Touch用の管理ツール&lt;/a&gt;まであってこの出来もすばらしい。&lt;/p&gt;
&lt;p&gt;が、日本に一番近いデータセンターでもやはり遅延が気になる。AdSenseで稼ぎ頭のサイトが4月以降20％ほど稼ぎが減ったのは、遅延が理由じゃないかと推測している。特にたくさんのアクセスがあるサイトほど（＝稼ぎのいいサイトほど）、遅延が影響しているように感じる。感じる、気になるばかりだけれど、ちゃんと計測したわけではないので。&lt;br /&gt;
将来Linodeが日本にデータセンターを設置することも考えにくい。&lt;/p&gt;
&lt;p&gt;7月にさくらインターネットがVPSサービスのベータテストを始めたときに、すぐに申し込んだ。一番アクセスの多いサイトのシステムをセットアップして、負荷テストをしてみたところかなり速いことがわかった。特にネットワークはさすがに速い。移行に乗り気になっていたのだけれど、この時点では価格が公表されていなかったので様子見。&lt;/p&gt;
&lt;p&gt;その後、サービス名がVPS980ということがわかって、一気に乗り気になる。だって980円/月ってことだよね。サービスはこの円高の中でもLinodeの一番安いメモリ、ディスクが同程度のサービスのだいたい半額かあ。9月の正式発表を待って移行決定。&lt;/p&gt;
&lt;p&gt;結局、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linodeに移行したサイトのうち一番稼いでいるサイトだけをさくらのVPSに移行。&lt;/li&gt;
&lt;li&gt;Linodeで借りていたメモリ2GBのコースを1GBのコースに変更。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という構成に落ち着き、9月4日にはさくらのVPSで本番稼働をはじめた。&lt;/p&gt;
&lt;p&gt;この移行作業で、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;月々の支払いは約8千円弱から約5千円弱に圧縮できた。&lt;/li&gt;
&lt;li&gt;某サイトのアクセスが8月よりも30％ほど伸びた＝今年最高（季節要因もある）。&lt;/li&gt;
&lt;li&gt;某サイトの9月のAdSenseの稼ぎが今年最高を記録した（季節要因もある）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という成績。概ね移行は成功だった模様。&lt;/p&gt;
&lt;p&gt;さくらのVPSに全部移行していないのは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LinodeのDNS Manager（とDNSサーバの管理）が秀逸で千円/月ぐらいはこのシステムの使用料のつもり。&lt;/li&gt;
&lt;li&gt;他にも6つ運用しているサイトは遅延がそれほど問題にはならない（そんなにAdSenseにもアクセス数にも影響していない）。&lt;/li&gt;
&lt;li&gt;VPS980では全部のサイトを動かすにはメモリが足りない。VPSを分けると増えすぎて今度は管理が面倒。&lt;/li&gt;
&lt;li&gt;今後さくらのVPSで別メニューがでてきたら、再考すればいいよね。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった感じ。&lt;/p&gt;
&lt;p&gt;先のエントリにも書いたけれど、そもそも、VPSの利点を生かせないこととコストの問題を除けば、さくらインターネットの品質、サービスには満足していた。さくらのVPSのサービス開始で先のエントリに書いた僕の不満はほぼ解消された。管理インターフェースのブラッシュアップと、早期の上位サービスの提供は期待したいところだけれど。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3b8MCqH7VMDykfQ1r9PFNv-r_cw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3b8MCqH7VMDykfQ1r9PFNv-r_cw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3b8MCqH7VMDykfQ1r9PFNv-r_cw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3b8MCqH7VMDykfQ1r9PFNv-r_cw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2308#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2308/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[恐怖対談 &#8211; 吉行 淳之介]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2283" />
		<id>http://jinim.jp/?p=2283</id>
		<updated>2010-11-15T21:22:24Z</updated>
		<published>2010-10-07T06:04:02Z</published>
		<category scheme="http://jinim.jp" term="Book" />		<summary type="html"><![CDATA[ほうろうの棚で見かけてなんだかとても懐かしくなって、吉行淳之介の「恐怖対談」を買ってみた。100円だし。 四半世紀前、大学生の頃に吉行淳之介の新潮文庫はほとんど全部読んだと思う。叔母が持っていたのを端から読んでいった。  <a href="http://jinim.jp/archives/2283"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2283">&lt;p&gt;ほうろうの棚で見かけてなんだかとても懐かしくなって、吉行淳之介の&lt;a href="http://www.amazon.co.jp/gp/product/4101143102?tag=jinim-22&amp;#038;linkCode=as1" target="_blank"&gt;「恐怖対談」&lt;/a&gt;を買ってみた。100円だし。&lt;br /&gt;
&lt;span id="more-2283"&gt;&lt;/span&gt;&lt;br /&gt;
四半世紀前、大学生の頃に吉行淳之介の新潮文庫はほとんど全部読んだと思う。叔母が持っていたのを端から読んでいった。&lt;/p&gt;
&lt;p&gt;内容は今となっては全然覚えていない。あんなに読んだのに、もの凄く面白かったと思った印象がない。大人が読んでる日本の現代小説はどういうものなんだろ、と勉強していたような感じだったのかも。他には立原正秋とか。&lt;/p&gt;
&lt;p&gt;小説の内容はほぼまったく覚えていないけれど、この恐怖対談は読んだのを覚えている。１０人との対談のほとんどを、吉兆で食事しながらしゃべってるんだよ！淀川長治さんさえも吉兆で食事できることを喜んでいる。&lt;/p&gt;
&lt;p&gt;作家になりたいと思ったことはなかったけれど、こんなにしょっちゅう吉兆で飯食ってしゃべってられるんなら、作家はいいなあ、なんて思ったんだった。&lt;/p&gt;
&lt;p&gt;今回、読み直してみた感想。やっぱりうらやましいなあ。吉兆で飯食ってしゃべくって。&lt;/p&gt;
&lt;p&gt;淀川長治さんと吉行淳之介が対談の少し前に、日曜洋画劇場で放映された&lt;a href="http://j.mp/annYyJ"&gt;「激突」&lt;/a&gt;を絶賛しているのを、当時の僕は全然何とも思わなかったのかな。&lt;/p&gt;
&lt;p&gt;北杜夫との対談で北条民雄の名前を出したところはぞくっとした。&lt;/p&gt;
&lt;p&gt;今東光との対談も面白い。本郷菊富士ホテルに谷崎潤一郎を訪ねたときの話なんて、ホントかよ。その頃菊富士ホテルには、泉鏡花があの絵のモデルの彼女と暮らしてて。。。&lt;/p&gt;
&lt;p&gt;内容とは関係ないけれど、昭和５５年発行のこの文庫本にはどこにもISBNが書いてない。カバーにも奥付にも。ISBNがほとんどすべての書籍についたのって結構最近の話なんだよね。&lt;/p&gt;
&lt;p&gt;バーコードとなるともっと後。&lt;br /&gt;
１７年ほど前に出版流通の仕事を始めた頃に、バーコードがデザインの邪魔だから入れないという話を会議の場で聞いた覚えがある。こっちは物流が仕事でそういうのが困るんだよなあ、と思ったけれど口には出さなかった。確か営業が反対してしぶしぶバーコードが入ったんだった。&lt;/p&gt;
&lt;p&gt;今では取次流通する本でISBNバーコードのついていないものを探すのは難しいけれど。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uBCi9lQytf1rmn-5V1GH_mYZEWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uBCi9lQytf1rmn-5V1GH_mYZEWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uBCi9lQytf1rmn-5V1GH_mYZEWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uBCi9lQytf1rmn-5V1GH_mYZEWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2283#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2283/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[今週末は、秋も一箱古本市2010]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2262" />
		<id>http://jinim.jp/?p=2262</id>
		<updated>2010-10-06T08:17:06Z</updated>
		<published>2010-10-06T08:14:19Z</published>
		<category scheme="http://jinim.jp" term="Book" /><category scheme="http://jinim.jp" term="Life" /><category scheme="http://jinim.jp" term="不忍ブックストリート" />		<summary type="html"><![CDATA[５月のゴールデンウィークと１０月始めのこの時期は、自転車で近所を走り回るのが恒例になってもう５年。この５年は個人的には激動の５年でもあってちょっとした感慨が。 秋も一箱古本市2010、開催決定！ 2010年10月9日（土 <a href="http://jinim.jp/archives/2262"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2262">&lt;p&gt;５月のゴールデンウィークと１０月始めのこの時期は、自転車で近所を走り回るのが恒例になってもう５年。この５年は個人的には激動の５年でもあってちょっとした感慨が。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;a href="http://d.hatena.ne.jp/seishubu/"&gt;&lt;strong&gt;秋も一箱古本市2010、開催決定！&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2010年10月9日（土）11:00～16:30&lt;br /&gt;
雨天の場合は10月10日（日）に順延&lt;/p&gt;
&lt;p&gt;会場&lt;br /&gt;
古書ほうろう／コシヅカハム／古書 信天翁／谷中 松野屋&lt;br /&gt;
ライオンズガーデン谷中三崎坂／大円寺／往来堂書店／宗善寺
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span id="more-2262"&gt;&lt;/span&gt;&lt;br /&gt;
僕は実行委員とかいわれながらも、ほとんど事前準備には参加していなくて、いつも当日の自転車部隊だけ。今年はいっつもこっちを見てる子供が３人と会社勤めの生活があいまって、例年以上に事前準備に参加できなかった。&lt;/p&gt;
&lt;p&gt;気がつくと、当日の仕事が割り振られていない！ちょっと寂しい気がしたけれど、まあいいか。初めてすべての会場をちゃんと本を見ながらまわってみることにする。&lt;/p&gt;
&lt;p&gt;今のところ天気もなんとかなりそうな気配。&lt;/p&gt;
&lt;p&gt;ToDo&lt;br /&gt;
- 予算確保。&lt;br /&gt;
- ２歳児を連れてまわるからルートを確認しておくこと。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SnSiEWywoGixbgE1vAik4PkIMZQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SnSiEWywoGixbgE1vAik4PkIMZQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SnSiEWywoGixbgE1vAik4PkIMZQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SnSiEWywoGixbgE1vAik4PkIMZQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2262#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2262/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[-（ハイフン）で始まるファイルがrmで消せない]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2255" />
		<id>http://jinim.jp/?p=2255</id>
		<updated>2010-11-01T22:26:05Z</updated>
		<published>2010-09-17T00:21:13Z</published>
		<category scheme="http://jinim.jp" term="Tech" /><category scheme="http://jinim.jp" term="Tips" />		<summary type="html"><![CDATA[ちゃちゃっとWEBサーバの出力を確認しようとしてwgetの出力を標準出力にするつもりを、手が滑って”&#8211;”としてしまった。結果、”&#8211;”というファイルができてしまった。 $ wget http://l <a href="http://jinim.jp/archives/2255"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2255">&lt;p&gt;ちゃちゃっとWEBサーバの出力を確認しようとしてwgetの出力を標準出力にするつもりを、手が滑って”&amp;#8211;”としてしまった。結果、”&amp;#8211;”というファイルができてしまった。&lt;br /&gt;
$ wget http://localhost/ -O &amp;#8211;&lt;br /&gt;
削除しようにも、rm &amp;#8211;ではシェルがオプションと解釈してしまって削除できない。&lt;br /&gt;
どうすべぇと調べてみたら、”&amp;#8211;”の後にファイル名(&amp;#8211;)を指定するといいみたい。&lt;/p&gt;
&lt;pre class="brush:bash"&gt;
$ touch -- -cantremove
$ ls
-cantremove
$ rm -cantremove
rm: invalid option -- 'c'
Try `rm ./-cantremove' to remove the file `-cantremove'.
Try `rm --help' for more information.
$ rm *
rm: invalid option -- 'c'
Try `rm ./-cantremove' to remove the file `-cantremove'.
Try `rm --help' for more information.
$ rm -- -cantremove
$ ls
$
&lt;/pre&gt;
&lt;p&gt;を、rmのメッセージによると、「rm ./- 」でも良かったんだ。&lt;br /&gt;
まだまだ知らないことがたくさんある。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rLHm4ijoECFm0tac0jGbd-9I5S4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rLHm4ijoECFm0tac0jGbd-9I5S4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rLHm4ijoECFm0tac0jGbd-9I5S4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rLHm4ijoECFm0tac0jGbd-9I5S4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2255#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2255/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[Ubuntu 10.04にaptでRedmineをセットアップ]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2242" />
		<id>http://jinim.jp/?p=2242</id>
		<updated>2010-09-10T04:04:50Z</updated>
		<published>2010-09-10T04:03:19Z</published>
		<category scheme="http://jinim.jp" term="Tech" />		<summary type="html"><![CDATA[管理しているリポジトリをささっと見渡したり、プロジェクトのタスク管理にRedmineはとても便利。しばらくサーバの移転やなんやかんやでちゃんと動く自前のRedmineを持っていなかった。 今回、Linodeで借りているU <a href="http://jinim.jp/archives/2242"> read more <span class="meta-nav">&#187;</span></a>
Related posts:<ol>
<li><a href='http://jinim.jp/archives/1646' rel='bookmark' title='Ubuntu 9.04 serverを9.10へアップグレード'>Ubuntu 9.04 serverを9.10へアップグレード</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2242">&lt;p&gt;管理しているリポジトリをささっと見渡したり、プロジェクトのタスク管理に&lt;a href="http://www.redmine.org/" target="_blank"&gt;Redmine&lt;/a&gt;はとても便利。しばらくサーバの移転やなんやかんやでちゃんと動く自前のRedmineを持っていなかった。&lt;br /&gt;
今回、&lt;a href="http://www.linode.com/?r=e9b1eb595b0c21f969438f1efb5e862df08d5f7f"&gt;Linode&lt;/a&gt;で借りているUbuntuにRedmineをセットアップすることにした。&lt;br /&gt;
一人で使うのであんまり凝ったこともしたくないので、aptでさくっといれよう。&amp;#8230;が、２０分ぐらいハマった。&lt;br /&gt;
ソースから最新版を入れる手順はあちこちで見つかるのだけど、aptでUbuntuのパッケージからMySQLの環境に入れるときの注意点としてメモ。&lt;br /&gt;
&lt;span id="more-2242"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MySQLの照合順序がデフォルトではlatin1_swedish_ciになる。&lt;/li&gt;
&lt;li&gt;aptのRedmine設定ではMySQLの照合順序を意識していない。&lt;/li&gt;
&lt;li&gt;latin1_swedish_ciのデータベースにテープルを作るので、テーブルの照合順序もlatin1_swedish_ciになる。&lt;/li&gt;
&lt;li&gt;データベース作成、テーブル作成が済んだ後で、初期投入されるトラッカーやロールの日本語文字が化ける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということらしい。&lt;/p&gt;
&lt;p&gt;結局、以下の手順でなんとかなった。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;apt-get install redmineで一旦最後まで導入。次にテーブルを全部削除。データベースは削除しない。（あるいはデータベース毎削除しておいてCREATE DATABASEしてもいいと思う。）&lt;/li&gt;
&lt;li&gt;データベースの照合順序をutf8_general_ciに変更する。
&lt;pre&gt;
ALTER DATABASE  `redmine_default` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;dpkg-reconfigure redmine を実施。データベースの作成の処理はすでに存在しているので、スキップされ、テーブルが作成される。このとき、先に指定したデーベースの照合順序utf8_general_ciが使われる。&lt;/li&gt;
&lt;li&gt;reconfigureによって正しい照合順序が設定されたテーブルに初期データが投入される。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;aptのMySQLのデータベース作成、テーブル作成スクリプト部分に照合順序をutf8_general_ciにするように書いといてもらうことはできないものかな。&lt;br /&gt;
latin1で問題がでる場合はあっても、utf8で問題がでる場合はほとんどないような気がするのだけど。なんか理由があるのかもしれない。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href='http://jinim.jp/archives/1646' rel='bookmark' title='Ubuntu 9.04 serverを9.10へアップグレード'&gt;Ubuntu 9.04 serverを9.10へアップグレード&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oR33GIa1X2J_cR7mZAXOq1GK1zI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oR33GIa1X2J_cR7mZAXOq1GK1zI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oR33GIa1X2J_cR7mZAXOq1GK1zI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oR33GIa1X2J_cR7mZAXOq1GK1zI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2242#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2242/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[春宵十話 － 岡潔]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2192" />
		<id>http://jinim.jp/?p=2192</id>
		<updated>2010-10-07T06:05:00Z</updated>
		<published>2010-04-22T01:19:29Z</published>
		<category scheme="http://jinim.jp" term="Book" /><category scheme="http://jinim.jp" term="おすすめ本" />		<summary type="html"><![CDATA[長く読まれているようだけれど、僕は今回初めて読んだ。と思う。ちょっと既視感があるけれど、たぶん気のせい。 最近新潮文庫からでた小林秀雄との対談「人間の建設 」を読んだのがきっかけ。ことばの使い方が独特でもっと読んでみたく <a href="http://jinim.jp/archives/2192"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2192">&lt;div style="float:right;margin:0 0 0 1em;"&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4334741460?tag=jinim-22&amp;#038;linkCode=as1" target="_blank" title="春宵十話 随筆集/数学者が綴る人生1 (光文社文庫)"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/31257BEHYBL._SL160_.jpg" width="111" height="160" alt="春宵十話 随筆集/数学者が綴る人生1 (光文社文庫)" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;長く読まれているようだけれど、僕は今回初めて読んだ。と思う。ちょっと既視感があるけれど、たぶん気のせい。&lt;br /&gt;
最近新潮文庫からでた小林秀雄との対談「&lt;a href="http://www.amazon.co.jp/gp/product/410100708X?tag=jinim-22&amp;#038;linkCode=as1" target="_blank"&gt;人間の建設 &lt;/a&gt;」を読んだのがきっかけ。ことばの使い方が独特でもっと読んでみたくなった。ちなみにこの「人間の建設」もとても面白い。今ならどこの書店でもすぐに手に入るしおすすめ。&lt;br /&gt;
&lt;span id="more-2192"&gt;&lt;/span&gt;&lt;br /&gt;
この「春宵十話」は、岡潔が話したことを文章にまとめたもの。それはないだろう、という発言もたくさんあるのだけれど、岡潔の正直さが心地よくて、とてもよい気分になる。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;春の野に咲くスミレはただスミレらしく咲いているだけでいい。&lt;br /&gt;
咲くことがどんなによいことであろうとなかろうと、それはスミレのあずかり知らないことだ。&lt;br /&gt;
咲いているのといないのとではおのずから違うというだけのことである。
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;存在を全肯定していると勘違いしてしまうかもしれないけれど、そういう文脈じゃない。でもそういう勘違いとして受け取っても気持ちいい。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;職業にたとえれば、数学に最も近いのは百姓だといえる。種をまいて育てるのが仕事で、そのオリジナリティーは「ないもの」から「あるもの」を作ることにある。数学者は種子を選べば、あとは大きくなるのを見ているだけのことで、大きくなる力はむしろ種子のほうにある。
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;この後、物理学者は指物師だ、と続く。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;戦争中を生き抜くためには理性だけで十分だったけれども、戦後を生き抜くためにはこれだけでは足りず、ぜひ宗教が必要だった。その状態はいまもなお続いている。&lt;br /&gt;
宗教はある、ないの問題ではなく、いる、いらないの問題だと思う。
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;いる、いらないの問題。僕はまだいまのところはいらない。&lt;/p&gt;
&lt;p&gt;しかし、春のぽかぽか陽気にのろうと昨日読み出した訳だけど、読み終わった今日の寒いことよ。気温差１５度ってどうなんだ。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EMRhXSyBYYjRg1sggOX8xMvK-Uo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EMRhXSyBYYjRg1sggOX8xMvK-Uo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EMRhXSyBYYjRg1sggOX8xMvK-Uo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EMRhXSyBYYjRg1sggOX8xMvK-Uo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2192#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2192/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[Xperiaは見送り。iPod Touch + WiMAXルータでiPad待ち？]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2163" />
		<id>http://jinim.jp/?p=2163</id>
		<updated>2010-04-05T04:25:24Z</updated>
		<published>2010-04-05T02:51:12Z</published>
		<category scheme="http://jinim.jp" term="Life" /><category scheme="http://jinim.jp" term="Tech" /><category scheme="http://jinim.jp" term="Apple" /><category scheme="http://jinim.jp" term="WiMAX" />		<summary type="html"><![CDATA[43歳の誕生日。自分プレゼント、どうしようかなあ。 Xperiaは見送り決めたし、iPhoneはいまさら感もあってのれないし。 それなら、iPod Touch + WiMAXルータで、iPadが出てくるのを待ってみるのは <a href="http://jinim.jp/archives/2163"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2163">&lt;p&gt;43歳の誕生日。自分プレゼント、どうしようかなあ。&lt;br /&gt;
Xperiaは見送り決めたし、iPhoneはいまさら感もあってのれないし。&lt;br /&gt;
それなら、iPod Touch + WiMAXルータで、iPadが出てくるのを待ってみるのはどうだ。&lt;br /&gt;
時々持ち出すMacBookでも使えるじゃないか。&lt;br /&gt;
僕の使い方ならWiMAXはとてもいいのは、もうすでに&lt;a href="http://jinim.jp/archives/1357"&gt;Try WiMAX&lt;/a&gt;で経験済みなんだから。&lt;br /&gt;
ちょっと書き出してみよう。&lt;br /&gt;
&lt;span id="more-2163"&gt;&lt;/span&gt;&lt;br /&gt;
初期： 18,810円 iPod Touch + 16,749円 AtermWM3300R = 35,559円&lt;br /&gt;
月額： 4,480円 UQ WiMAX&lt;/p&gt;
&lt;p&gt;月額でマイナスできるのは、ドコモの基本料、通話料以外の約5,400円 （パケホーダイダブル4,200円 + Ｕスタンダードプラン500円 + その他 700円）。&lt;br /&gt;
単純に月々の通信費は1,000円ぐらいマイナスにできるな。ワイヤレスゲート（380円/月）もあった。&lt;/p&gt;
&lt;p&gt;この分をSkypeにまわせるなあ。アレ、ドコモは止めてもいいのかも。通話料が毎月200円以下なんて。ああ、待ち受け時間の問題が残るか。WiMAXルータにケータイみたいなバッテリの持ちは期待できないなあ。なんかしらケータイはもっとかないとダメか。&lt;br /&gt;
あとカメラは&amp;#8230;WiFiカメラっ。&lt;br /&gt;
そうだ、GPSが使えないか。ってことは、GoogleマップとGPSの連動したやつも使えないのか。ちょっと残念。&lt;br /&gt;
あと、荷物増えるな。&lt;/p&gt;
&lt;p&gt;持ち運ぶデバイスと回線を分離できるのは、エンジニアとしては良い感じがするなあ。心地よい。&lt;br /&gt;
Kindleが欲しくなっても、iPadにしても、ほかのAndroid端末でも追加できるもんなあ。&lt;br /&gt;
でも、やっぱりいろいろひっかかるところも多い。どうしたものか。&lt;/p&gt;
&lt;p&gt;p.s.&lt;br /&gt;
今ふと、はっ、僕はこんなにがんばってネット接続が必要なのか？これはなんだかがんばりすぎじゃないか？と思った。&lt;/p&gt;
&lt;table style="border:0;"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=jinim-22&amp;#038;o=9&amp;#038;p=8&amp;#038;l=as1&amp;#038;asins=B002OB3FJQ&amp;#038;fc1=000000&amp;#038;IS2=1&amp;#038;lt1=_blank&amp;#038;m=amazon&amp;#038;lc1=0000FF&amp;#038;bc1=000000&amp;#038;bg1=FFFFFF&amp;#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=jinim-22&amp;#038;o=9&amp;#038;p=8&amp;#038;l=as1&amp;#038;asins=B002UUQ8B8&amp;#038;fc1=000000&amp;#038;IS2=1&amp;#038;lt1=_blank&amp;#038;m=amazon&amp;#038;lc1=0000FF&amp;#038;bc1=000000&amp;#038;bg1=FFFFFF&amp;#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uOPd4gI1vQ8t8UWX5smvRIOtOx8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uOPd4gI1vQ8t8UWX5smvRIOtOx8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uOPd4gI1vQ8t8UWX5smvRIOtOx8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uOPd4gI1vQ8t8UWX5smvRIOtOx8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2163#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2163/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[Simple HTTP Checker &#8211; シンプルなHTTPサーバの監視ツール]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2136" />
		<id>http://jinim.jp/?p=2136</id>
		<updated>2010-03-26T02:58:54Z</updated>
		<published>2010-03-25T06:33:38Z</published>
		<category scheme="http://jinim.jp" term="Code" /><category scheme="http://jinim.jp" term="Tech" /><category scheme="http://jinim.jp" term="Python" />		<summary type="html"><![CDATA[WEBサイトの死活監視のサービスはいろいろあるけれど、どれも監視できるURL数に制限があったり、制限を解除してもらうには費用がかかるわけなのだけれど求める以上の機能があってちょっと高くついたり。なかなかピッタリこない。  <a href="http://jinim.jp/archives/2136"> read more <span class="meta-nav">&#187;</span></a>
Related posts:<ol>
<li><a href='http://jinim.jp/archives/511' rel='bookmark' title='urllib2でプロキシを参照しないようにする'>urllib2でプロキシを参照しないようにする</a></li>
<li><a href='http://jinim.jp/archives/519' rel='bookmark' title='urllib2.quote()ってアリなんだ'>urllib2.quote()ってアリなんだ</a></li>
<li><a href='http://jinim.jp/archives/1527' rel='bookmark' title='Flickrから自分のアップロードした写真を全部ダウンロードする'>Flickrから自分のアップロードした写真を全部ダウンロードする</a></li>
</ol>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2136">&lt;p&gt;WEBサイトの死活監視のサービスはいろいろあるけれど、どれも監視できるURL数に制限があったり、制限を解除してもらうには費用がかかるわけなのだけれど求める以上の機能があってちょっと高くついたり。なかなかピッタリこない。&lt;/p&gt;
&lt;p&gt;仕方がない、さくらのレンタルサーバが1つあるのでそこで監視するようにしてみよう。社内のサーバ監視をしているNagiosは便利なんだけれど、さくらの500円/月のレンタルサーバに入れるのはちょっとアレだし、必要最小限のスクリプトをPythonで書くことにする。&lt;/p&gt;
&lt;p&gt;求めた要件としては、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTPで接続できなかったらメールでお知らせが届く。&lt;/li&gt;
&lt;li&gt;一回メールを送ったら、しばらくはメールしないで欲しい。&lt;/li&gt;
&lt;li&gt;HEADとGETとPOSTに対応。&lt;/li&gt;
&lt;li&gt;HTTPステータスコードだけをチェックする（レスポンスに含まれるコンテンツのチェックは不要）。&lt;/li&gt;
&lt;li&gt;設定ファイルで複数のURLをまとめてチェックして欲しい。&lt;/li&gt;
&lt;li&gt;（さくらなので）常駐するデーモンではなくて、単独のコマンドで実行できる（cronで繰り返し実行）。&lt;/li&gt;
&lt;li&gt;お知らせメールはcrontabのMAILTOで送るからstderrに出力してくれればいい。&lt;/li&gt;
&lt;li&gt;OKだったときのログはstdoutに出力してくれればいい。&lt;/li&gt;
&lt;li&gt;スクリプトは1ファイルで完結させる。&lt;/li&gt;
&lt;li&gt;Python2.4以降、標準ライブラリだけで動く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id="more-2136"&gt;&lt;/span&gt;&lt;br /&gt;
使い方は、&lt;br /&gt;
1. python htpchk.py URL&lt;br /&gt;
とURLを引数に指定する方法。これだと細かい設定はできませんが、HEADでチェック、お知らせメールは多くて10分に1回、となります。&lt;/p&gt;
&lt;p&gt;2. python htpchk.py htpchk.conf&lt;br /&gt;
と引数に設定ファイルを指定する（あるいは引数指定を省略して、htpchk.pyと同じディレクトリにhtpchk.confという設定ファイルを置いておく）と、複数のURLを一括してチェックできるようになります。&lt;br /&gt;
設定ファイルは、Windowsのiniファイルに良く似た書き方です。DEFAULTセクションは全セクションのデフォルト値として使われます。あとはチェックするURL毎にセクションを作ってurlパラメータを書いておくだけで1と同様にチェックはできます。セクション毎にDEFAULTセクションの値を上書きできるので、細かい変更がしたい場合はセクションに値を書きます。詳しい設定ファイルの書き方は後の方のサンプルをご覧ください。&lt;/p&gt;
&lt;p&gt;cronにこのスクリプトを実行するように登録しておく（さくらのレンタルサーバではこんな感じ）。&lt;br /&gt;
/home/example/bin/にhtpchk.pyとhtpchk.confを置いたとするとこんな感じ。&lt;/p&gt;
&lt;pre&gt;
MAILTO=alert@example.com, mobile@example.com
# NAME: htpchck
*/5     *       *       *       *       /usr/local/bin/python /home/example/bin/htpchk.py &gt;/dev/null
&lt;/pre&gt;
&lt;p&gt;これで、5分に一回htpchk.confに書いてあるサイトをチェックして、HTTPステータスが200じゃなければ、標準エラーにメッセージが出力されて、そのメッセージはMAILTOに書いたメールアドレスに送られます。標準出力は/dev/nullに向けてあるので捨てられます。&lt;/p&gt;
&lt;p&gt;手元では47のURLをチェックする設定ファイルを書いて運用中。概ね良好なんだけれど、まだチェックするURLを増やしたいのでもう少しチェックにかかる時間を短縮したい。HTTPのリクエストを送る部分をスレッドにして同時実行すれば速くなるのはわかっているので、困ったらスレッド化するかも。&lt;/p&gt;
&lt;p&gt;以下はスクリプト本体（htpchk.py）と設定ファイル（htpchk.conf）のサンプルです。最新版は&lt;a href="http://gist.github.com/343248"&gt;Gist:343248&lt;/a&gt;に置いてあります。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;htpchk.py&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="brush:python"&gt;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""#8 Simple HTTP Checker
  Usage:
       htpchk (htpchk.conf is needed at same directory.)
       htpchk URL
       htpchk config-file
"""
__NAME__ = '#8 Simple HTTP Checker'
__VERSION__ = '1.0'
__ABOUT__ = 'http://jinim.jp/archives/2136'
__USER_AGENT__ = 'Mozilla/5.0 (compatible; %s/%s; +%s)' % (__NAME__, __VERSION__, __ABOUT__)
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"

import os
import sys
import time
import urllib2
from urllib2 import HTTPError
import urlparse
import tempfile
from ConfigParser import ConfigParser

#url to filename with sha hash.
try:
    import hashlib
    def _urlhash_filename(url): return hashlib.sha224(url).hexdigest()
except:
    import sha
    def _urlhash_filename(url): return sha.new(url).hexdigest()

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', __USER_AGENT__)]
urllib2.install_opener(opener)

class ParamError(Exception): pass

class HeadRequest(urllib2.Request):
    def get_method(self): return "HEAD"

class Site(object):
    def __init__(self, name, url, notify_interval=60*10, method="HEAD", data=None, wait_seconds=0):
        """When medhod is POST, data is requred."""
        self.name = name
        self.url = url
        self.method = method
        self.data = data
        self.notify_interval = notify_interval
        self.wait_seconds = wait_seconds
        self.notified = os.path.join(tempfile.gettempdir(), "htpcheck-%s" % _urlhash_filename(self.url))

    def check(self):
        if self.method=="HEAD":
            u = urllib2.urlopen(HeadRequest(self.url))
        elif self.method=="POST":
            u = urllib2.urlopen(self.url, data=self.data)
        elif self.method=="GET":
            u = urllib2.urlopen(self.url)
        else:
            raise ParamError, "method: %s not supported. Supported methods are (HEAD,GET,POST)." % self.method
        return u.info()

    def recovered(self):
        os.rename(self.notified, os.path.join(os.path.dirname(self.notified), os.path.basename(self.notified) + time.strftime("-recovered.%Y%m%d%H%M%S")))

    def notify(self, err):
        msg = log_message(self, err)
        last_notified = 0
        if os.path.exists(self.notified):
            try:
                last_notified = time.mktime(time.strptime(file(self.notified).readlines()[-1].split("\t")[0], DATETIME_FORMAT))
            except ValueError:
                last_notified = 0
        if time.time() &gt; (last_notified + self.notify_interval):
            sys.stderr.write(msg)
            file(self.notified, 'a').write("%s\tnotified\n" % msg[:-1])
        else:
             sys.stdout.write(log_message(self, "[SUPPRESSED] %s" % err))

def log_message(site, msg=None):
    """if msg is not None, message means error.
    """
    if msg:
        format = '%s\tNG\t%s\t%s\t%s\t%s\n'
        return format % (time.strftime(DATETIME_FORMAT), site.name, site.method, site.url, msg)
    else:
        format = '%s\tOK\t%s\t%s\t%s\n'
        return format % (time.strftime(DATETIME_FORMAT), site.name, site.method, site.url)

def config_parse(conf):
    parser = ConfigParser()
    parser.readfp(open(conf))
    sites = list()
    for section in parser.sections():
        url = parser.get(section, 'url')
        method = parser.get(section, 'method')
        if method=="POST":
            data = parser.get(section, 'data')
        else:
            data = None
        notify_interval = parser.getfloat(section, 'notify_interval')
        wait_seconds = parser.getfloat(section, 'wait_seconds')
        sites.append(Site(section, url, notify_interval, method, data, wait_seconds))
    return sites

def main(sites):
    for site in sites:
        try:
            site.check()
            sys.stdout.write(log_message(site))
            if os.path.exists(site.notified):
                site.recovered()
        except HTTPError, err:
            site.notify(err)
        if site.wait_seconds&gt;0: time.sleep(site.wait_seconds)

if __name__=='__main__':
    if len(sys.argv)&gt;1: config = sys.argv[1]
    else: config = os.path.splitext(__file__)[0]+'.conf'

    if not os.path.exists(config):
        if config.startswith('http://') or config.startswith('https://'):
            name = urlparse.urlparse(config)[1].split(':')[0]
            sites = (Site(name, config), )
        else:
            raise ParamError, "config file %s not found." % config
    else:
        sites = config_parse(config)

    main(sites)
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;htpchk.conf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="brush:plain"&gt;
[test_HEAD]
url: http://example.com/

[test_GET]
url: http://example.com/
method: GET

[test_POST]
url: http://example.com/
method: POST
data: Hello World

[test_notfound]
url: http://example.com/notfound.html
notify_interval: 10

[DEFAULT]
#************************************************
;  DEFAULT values
#************************************************

#Target URL.
#url=http://example.com/

#HTTP method
method: HEAD

#POST data
#data: Hello World

#When HTTP error occuered, repeatedly notified with interval seconds.
notify_interval: 600

#after checking, wait bellow seconds.
wait_seconds: 0
&lt;/pre&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href='http://jinim.jp/archives/511' rel='bookmark' title='urllib2でプロキシを参照しないようにする'&gt;urllib2でプロキシを参照しないようにする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://jinim.jp/archives/519' rel='bookmark' title='urllib2.quote()ってアリなんだ'&gt;urllib2.quote()ってアリなんだ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://jinim.jp/archives/1527' rel='bookmark' title='Flickrから自分のアップロードした写真を全部ダウンロードする'&gt;Flickrから自分のアップロードした写真を全部ダウンロードする&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1W4gfQddFf2dYMqh8yL8rQm9POI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1W4gfQddFf2dYMqh8yL8rQm9POI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1W4gfQddFf2dYMqh8yL8rQm9POI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1W4gfQddFf2dYMqh8yL8rQm9POI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2136#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2136/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[代替医療のトリック － サイモン・シン]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2105" />
		<id>http://jinim.jp/?p=2105</id>
		<updated>2010-03-24T02:37:05Z</updated>
		<published>2010-03-24T02:32:35Z</published>
		<category scheme="http://jinim.jp" term="Book" /><category scheme="http://jinim.jp" term="おすすめ本" />		<summary type="html"><![CDATA[読了。必読の書。 読みやすく、重点ポイントが繰り返し語られるから読書になれていなくても心配なし。こういう科学読み物に慣れていないひとにもおすすめ。面白いミステリー小説を読んでいるように、どんどん先が読みたくなる。 プラセ <a href="http://jinim.jp/archives/2105"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2105">&lt;p&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;#038;bc1=000000&amp;#038;IS2=1&amp;#038;bg1=FFFFFF&amp;#038;fc1=000000&amp;#038;lc1=0000FF&amp;#038;t=jinim-22&amp;#038;o=9&amp;#038;p=8&amp;#038;l=as1&amp;#038;m=amazon&amp;#038;f=ifr&amp;#038;asins=4105393057" style="float:right;width:120px;height:240px;margin-left:1em;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;読了。必読の書。&lt;/p&gt;
&lt;p&gt;読みやすく、重点ポイントが繰り返し語られるから読書になれていなくても心配なし。こういう科学読み物に慣れていないひとにもおすすめ。面白いミステリー小説を読んでいるように、どんどん先が読みたくなる。&lt;/p&gt;
&lt;p&gt;プラセボが何故ダメなの？効くならいいじゃんプラセボでも。というのがなぜマズいのか、最後まで読んでよく理解できた。説得された。はあー、面白かった。&lt;/p&gt;
&lt;p&gt;ホメオパシーがプラセボ以上の効果がないなのはなんとなく知っていた。けれど、鍼治療もかあ。&lt;span id="more-2105"&gt;&lt;/span&gt;&lt;br /&gt;
あとカイロプラクティックも。これは日本で言う骨接ぎ、整体とは少し歴史的な経緯が違うけれど、例えば&lt;a href="http://j.mp/9TySLd"&gt;Wikipediaの柔道整復術&lt;/a&gt;をみてみると、自然治癒能力、伝統医療という言葉が並んでいる。代替医療の宣伝文句として頻繁に用いられる言葉として、自然（ナチュラル）、伝統（トラディショナル）、全体（ホーリスティック）の３つを挙げているのだけど、そのうち２つが最初のパラグラフにでてくる。ピンポーン。&lt;/p&gt;
&lt;p&gt;こういった個々の代替治療が効くとか効かないとかを知るのも大切だけれど、この本のおもしろさ、すごさはそこじゃない。マニュアル的に参照するだけなら付録としてたーくさん書いてあるリスト（浪越徳次郎の指圧も出てくる）を立ち読みすれば済んじゃう。&lt;/p&gt;
&lt;p&gt;この本のすごさの中心は、科学的な根拠（臨床試験）に基づく治療を選ぶことがなぜ重要なのかを教えてくれること。歴史のエピソードを交えて緻密に論理を積み重ねながら、ぐいぐい引き込む文章の力と合わさって。&lt;/p&gt;
&lt;p&gt;周囲の子を持つ親には身銭で買い与えたいぐらい。でもそういう熱心が詐欺的な代替医療の特徴でもあってね。クールに薦めるにはどうすればいいんだろ？この種の健康に関する話はとても難しい。できれば友人とは話しあいたくない（家族は別。ちょっとモメてもよく話し合ったほうがいい）。知的な読み物として面白いから読んでみたら？ぐらいか。&lt;/p&gt;
&lt;p&gt;しかし、世界レベルはすいごいなあ。&lt;/p&gt;
&lt;p&gt;あ、そうだ。サイモン･シンの本はどれもそうだけれど、この本も翻訳がとてもいい。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eF-LDq10S7n6rh3XskdfGERPpmY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eF-LDq10S7n6rh3XskdfGERPpmY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eF-LDq10S7n6rh3XskdfGERPpmY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eF-LDq10S7n6rh3XskdfGERPpmY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2105#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2105/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>eight</name>
					</author>
		<title type="html"><![CDATA[卓上照明]]></title>
		<link rel="alternate" type="text/html" href="http://jinim.jp/archives/2049" />
		<id>http://jinim.jp/?p=2049</id>
		<updated>2010-03-12T05:33:45Z</updated>
		<published>2010-03-11T22:30:05Z</published>
		<category scheme="http://jinim.jp" term="Life" /><category scheme="http://jinim.jp" term="Kids" />		<summary type="html"><![CDATA[アニキの小学校入学準備。机の配置を変えて兄弟妹３人並んで勉強するそうで。でも配置を変えると手元が暗くなるから手元を照らすための照明が必要だろうということで、LEDの卓上照明を物色してみた。 まず最初にアシストオンで探して <a href="http://jinim.jp/archives/2049"> read more <span class="meta-nav">&#187;</span></a>]]></summary>
		<content type="html" xml:base="http://jinim.jp/archives/2049">&lt;p&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B00352W4F4?ie=UTF8&amp;#038;tag=jinim-22&amp;#038;linkCode=as2&amp;#038;camp=247&amp;#038;creative=1211&amp;#038;creativeASIN=B00352W4F4"&gt;&lt;img src="http://jinim.jp/wp-content/uploads/2010/03/1978_01-241x300.jpg" alt="LEDICEXARM &amp;quot;mono&amp;quot;" title="LEDICEXARM &amp;quot;mono&amp;quot;" width="241" height="300" class="alignright size-medium wp-image-2050" /&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=jinim-22&amp;#038;l=as2&amp;#038;o=9&amp;#038;a=B00352W4F4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;アニキの小学校入学準備。机の配置を変えて兄弟妹３人並んで勉強するそうで。でも配置を変えると手元が暗くなるから手元を照らすための照明が必要だろうということで、LEDの卓上照明を物色してみた。&lt;/p&gt;
&lt;p&gt;まず最初にアシストオンで探してみたら&lt;a href="http://www.assiston.co.jp/?item=1180"&gt;BALMUDA design &amp;#8220;Highwire Smooth&amp;#8221;&lt;/a&gt;が見つかった。39,900円。んー、ちょっと高い。1万円台だよな。&lt;/p&gt;
&lt;p&gt;と次へ。&lt;a href="http://www.assiston.co.jp/?item=1978"&gt;LEDICEXARM &amp;#8220;mono&amp;#8221;&lt;/a&gt;。価格的にもこれなら良さそう。妙にスタイリッシュなのが気になるといえば気になるけど、設置面積が小さいのはいいね。&lt;/p&gt;
&lt;p&gt;今回はAmazonのポイントがけっこう貯まっていたので、Amazonでポチっと。ごめんアシストオン。&lt;/p&gt;
&lt;p&gt;僕の小学校の頃に比べると隔世の感。照明も購入までの手順も。&lt;/p&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/02YijBXr8Jq2m3NkfUIcG4Oum2Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/02YijBXr8Jq2m3NkfUIcG4Oum2Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/02YijBXr8Jq2m3NkfUIcG4Oum2Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/02YijBXr8Jq2m3NkfUIcG4Oum2Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<link rel="replies" type="text/html" href="http://jinim.jp/archives/2049#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://jinim.jp/archives/2049/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
	</feed>

