<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feed.yk55.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>Yoichi Kawasaki's Web</title>
	
	<link>http://yk55.com/blog</link>
	<description>the place to organize and record my ideas ...</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:16:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<!-- google_ad_section_end --><!-- google_ad_section_start(weight=ignore) -->	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feed.yk55.com/yokawasa/syndication" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="yokawasa/syndication" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>35.7094911</geo:lat><geo:long>139.7829511</geo:long><item>
		<title>Good Will Hunting – Wonderful Idiosyncrasies</title>
		<link>http://yk55.com/blog/2012/02/05/good_will_hunting_wonderful_idiosyncrasies/</link>
		<comments>http://yk55.com/blog/2012/02/05/good_will_hunting_wonderful_idiosyncrasies/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 09:31:55 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Translation]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[quotes]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=565</guid>
		<description><![CDATA[ついつい深夜遅くまで録画したTV番組や映画を観てしまう今日この頃、最近みたのがこの映画 &#8211; Good Will Hunting(1997)、言わずと知れたMatt DaemonとRobin Williamsのあの作品ですね。その中でも特にお気に入りなのが、Sean(Robin Willams演じる精神分析医)がWill(Matt Damon演じる心を閉ざした天才青年)に妻の癖を語るシーン。Youtubeを探したら見事アップされていたのでここにそのシーン動画と、スクリプト、ポイントを絞ったオレ訳を載せておきます。Good Stuff! Good Will Hunting &#8211; &#8220;Idiosyncrasies&#8221; Will: Yeah, I went on a date last week. Sean: How&#8217;d it go? Will: It was good. Sean: Going out again? Will: I don&#8217;t know. Sean: Why not? Will: Haven&#8217;t called her. Sean: Christ, you&#8217;re an amateur. Will: I know [...]]]></description>
			<content:encoded><![CDATA[<p>ついつい深夜遅くまで録画したTV番組や映画を観てしまう今日この頃、最近みたのがこの映画 &#8211; <a href="http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%83%E3%83%89%E3%83%BB%E3%82%A6%E3%82%A3%E3%83%AB%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/%E6%97%85%E7%AB%8B%E3%81%A1">Good Will Hunting(1997)</a>、言わずと知れたMatt DaemonとRobin Williamsのあの作品ですね。その中でも特にお気に入りなのが、Sean(Robin Willams演じる精神分析医)がWill(Matt Damon演じる心を閉ざした天才青年)に妻の癖を語るシーン。Youtubeを探したら見事アップされていたのでここにそのシーン動画と、スクリプト、ポイントを絞ったオレ訳を載せておきます。Good Stuff!</p>
<p><h2><strong>Good Will Hunting &#8211; &#8220;Idiosyncrasies&#8221;</strong></h2>
<p><center><br />
<object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/z8mn3nLPSMY?version=3&amp;hl=ja_JP"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/z8mn3nLPSMY?version=3&amp;hl=ja_JP" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
</center></p>
<p><strong><u>Will</u></strong>: Yeah, I went on a date last week.<br />
<strong><u>Sean</u></strong>: How&#8217;d it go?<br />
<strong><u>Will</u></strong>: It was good.<br />
<strong><u>Sean</u></strong>: Going out again?<br />
<strong><u>Will</u></strong>: I don&#8217;t know.<br />
<strong><u>Sean</u></strong>: Why not?<br />
<strong><u>Will</u></strong>: Haven&#8217;t called her.<br />
<strong><u>Sean</u></strong>: Christ, you&#8217;re an amateur.<br />
<strong><u>Will</u></strong>: I know what I&#8217;m doing.<br />
<strong><u>Sean</u></strong>: Yeah.<br />
<strong><u>Will</u></strong>: Yeah. Don&#8217;t worry about me. I know what I&#8217;m doin&#8217;. Yeah, but this girl is like, you know, beautiful. She&#8217;s smart. She&#8217;s funny. She&#8217;s different from most of the other girls I&#8217;ve been with.<br />
<strong><u>Sean</u></strong>: So, call her up, Romeo.<br />
<strong><u>Will</u></strong>: Why? So I can realize she&#8217;s not that smart, that she&#8217;s fuckin&#8217; boring? Y&#8217;know&#8211;I mean&#8230;this girl is like fuckin&#8217; perfect right now, I don&#8217;t wanna ruin that.<br />
<strong><u>Sean</u></strong>: Maybe you&#8217;re perfect right now. Maybe you don&#8217;t want to ruin that. I think that&#8217;s a super philosophy, Will. That way you can go through your entire life without ever having to really know anybody. My wife used to fart when she was nervous. She had all sorts of wonderful idiosyncrasies. You know what? She used to fart in her sleep. Sorry I shared that with you. One night it was so loud it woke the dog up. She woke up and gone like &#8220;oh was that you?&#8221; I&#8217;d say yeah&#8230;I didn&#8217;t have the heart to tell her&#8230;Oh God&#8230;<br />
多分、お前も今完璧で、そんな完璧な自分を壊したくないんだろ？それは素晴らしい哲学だ。そんな風に一生誰かを本気で知ることなく過ごすんだろうね。オレの妻は緊張するとたまにオナラをするんだけど、彼女にはそういった面白い癖がたくさんあった。ちょっと変な話なんだけどね、彼女は眠っている時もオナラをするんだけど、ある晩とても音が大きなオナラをして犬が目を覚ましたんだ。そして彼女自身も目も覚まして”今のはあたなでしょ？”って言ったんだ。当時本当のことを彼女に言う勇気はなかったよ。</p>
<p><strong><u>Will</u></strong>: She woke herself up?<br />
彼女は自分の音で目を覚ましたの？</p>
<p><strong><u>Sean</u></strong>: Yesssss. Oh Christ&#8230;.aahhh, but, Will, she&#8217;s been dead two years and that&#8217;s the shit I remember. Wonderful stuff, you know, little things like that. Ah, but, those are the things I miss the most. The little idiosyncrasies that only I knew about. That&#8217;s what made her my wife. Oh, and she had the goods on me, too, she knew all my little peccadillos. People call these things imperfections, but they&#8217;re not, aw, that&#8217;s the good stuff. And then we get to choose who we let in to our weird little worlds. You&#8217;re not perfect, sport. And let me save you the suspense. This girl you met, she isn&#8217;t perfect either. But the question is: whether or not you&#8217;re perfect for each other. That&#8217;s the whole deal. That&#8217;s what intimacy is all about. Now you can know everything in the world, sport, but the only way you&#8217;re findin&#8217; out that one is by givin&#8217; it a shot. You certainly won&#8217;t learn from an old fucker like me. Even if I did know, I wouldn&#8217;t tell a piss ant like you.<br />
そう。彼女が死んで2年になるけど、そんな変なこともあったね。いい思い出だ。そんな小さな一つ一つのことが最も懐かしい。自分だけが知っている小さな癖、それがあるから彼女はオレにとって特別な存在（妻）なんだ。彼女もオレの癖をすべて知っている。それを欠点と呼ぶ人もいるけどむしろ逆だ。そうやってお互いを知っていくんだ。お前は完璧じゃない。お前が会ったその彼女だって完璧じゃない。でも問題はお前達二人がお互いにとって完璧であるかどうかなんだ。それが二人の関係にとって最も重要なことなんだ。でも、それは自分でそこに飛び込んでみない限り分からないだろう。もちろん、オレのよな愚かな老いぼれから学ぶことはできないし、知っていてもお前には教えない。</p>
<p><strong><u>Will</u></strong>: Why not? You told me every other fuckin&#8217; thing. Jesus Christ. You talk more than any shrink I ever met.<br />
<strong><u>Sean</u></strong>: I teach this shit, I didn&#8217;t say I knew how to do it.<br />
<strong><u>Will</u></strong>: Yeah&#8230;&#8230;you ever think about gettin&#8217; remarried?<br />
<strong><u>Sean</u></strong>: My wife&#8217;s dead.<br />
<strong><u>Will</u></strong>: Hence, the word remarried.<br />
<strong><u>Sean</u></strong>: My wife&#8217;s dead.<br />
<strong><u>Will</u></strong>: Yeah.. Well, I think that&#8217;s a super philosophy, Sean. I mean that way you could actually go through the rest of your life without ever really knowing anybody.<br />
<strong><u>Sean</u></strong>: Time&#8217;s up.</p>
<p><h2><strong>REFERENCES</strong></h2>
<ul>
<li><a href="http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%83%E3%83%89%E3%83%BB%E3%82%A6%E3%82%A3%E3%83%AB%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/%E6%97%85%E7%AB%8B%E3%81%A1">Wikipedia: グッド・ウィル・ハンティング/旅立ち</a></li>
<li><a href="http://www.youtube.com/watch?v=z8mn3nLPSMY">Youtube: Good Will Hunting &#8211; &#8220;Idiosyncrasies&#8221;</a></li>
<li><a href="http://www.imdb.com/title/tt0119217/">IMDB: Good Will Hunting 1997</a></li>
</ul>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2012/02/05/good_will_hunting_wonderful_idiosyncrasies/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=x4p4A2OjbXE:Aujuo2F8bss:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=x4p4A2OjbXE:Aujuo2F8bss:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2012/02/05/good_will_hunting_wonderful_idiosyncrasies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Quick Fix of My Wi-Fi Connection Issue – Bad Wireless Channel Condition</title>
		<link>http://yk55.com/blog/2011/12/25/a_quick_fix_of_my_wifi_connection_issue_bad_wireless_channelcondition/</link>
		<comments>http://yk55.com/blog/2011/12/25/a_quick_fix_of_my_wifi_connection_issue_bad_wireless_channelcondition/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 10:33:43 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Environment Setup]]></category>
		<category><![CDATA[Random Topics]]></category>
		<category><![CDATA[airport]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[RSSI]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=562</guid>
		<description><![CDATA[I was in a hotel where there was no wired internet access, I had Emobile Internet access which was only internet access at that time but I wanted more than one devices to be connected at the same time. I setup Internet Connection Sharing with my MacBook Pro in order to share emobile connection to [...]]]></description>
			<content:encoded><![CDATA[<p>I was in a hotel where there was no wired internet access, I had Emobile Internet access which was only internet access at that time but I wanted more than one devices to be connected at the same time. I setup Internet Connection Sharing with my MacBook Pro in order to share emobile connection to the other devices via Wi-Fi. The setup procedure was perfect however it didn&#8217;t work somehow &#8211; my Wi-Fi connection dropped out repeatedly. After my more-than-an-hour investigation, I finally found the root cause of the issue. It was wireless signal interference &#8211; Wi-Fi channel number overlap between me and my neighbors in the hotel.</p>
<p>This below is how I setup Internet connection sharing with my MacBook and How I resolved the issue.</p>
<h2>Sharing Emobile Connection to Computers Using Wi-Fi</h2>
<p>Assuming that your Macbook is connected to the Internet using a Emobile modem.</p>
<p>1. Open <strong>System Preferences</strong> > Click <strong>Sharing</strong> </p>
<p>2. Select <strong>Internet Sharing</strong> (However don&#8217;t turn on Internet Sharing Yet, otherwise you won&#8217;t be able to edit Wi-Fi Option)</p>
<p>3. Choose &#8220;Share your connection from&#8221; and &#8220;To computers using&#8221; like this:</p>
<ul>
<li>Share your connection from: <strong>Emobile Modem (ex. HUAWEIMobile-Modem)</strong></li>
<li>To computers using: <strong>Wi-Fi</strong></li>
</ul>
<p>4. Click <strong>Wi-Fi Options</strong> and configure an internet-sharing network. Here is my configurations:</p>
<ul>
<li>Network Name: <strong>mbp-shared-wifi</strong></li>
<li>Channel: <strong>11 (default)</strong></li>
<li>Security: <strong>128-bit WEP</strong></li>
</ul>
<p><center><br />
<img src="http://farm8.staticflickr.com/7001/6530096023_d1002b54fc.jpg" width="500" height="408" alt="Macbook AccessPoint Setup Procedure"><br />
</center></p>
<p>5. Turn on Internet Sharing</p>
<p><center><br />
<img src="http://farm8.staticflickr.com/7145/6530095755_24fdb4d82a.jpg" width="500" height="409" alt="Macbook AccessPoint Setup Procedure"><br />
</center></p>
<p>That is all need to be done for internet sharing. You should be able to join the shared network &#8220;mbp-shared-wifi&#8221; if the channel( more specifically one of 11 <a href="http://en.wikipedia.org/wiki/IEEE_802.11">802.11</a> channels) that you chose is not interfered by any sources of signals near the network. </p>
<p><h2>Finding Out The Right Wi-Fi Channel</h2>
<p>The purpose here is to find out the right channel for the internet sharing, the one which is least occupied. </p>
<h3>Airport Command included in Mac OS X</h3>
<p>airport is a built-in command line tool that enables you to manage 802.11 interfaces and to get all sort of information for 802.11 interface.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport</div></div>
<p>First, the tool is not located at one of paths which are included in $PATH, so let&#8217;s create a symlink to the tool like this:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ echo $PATH<br />
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:....<br />
<br />
$ sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/bin/airport</div></div>
<p>A command line &#8220;airport -s&#8221; performs a wireless broadcast scan and gives you a list of Wi-Fi networks nearby. It reports information about SSID, BSSID, RSSI, channel, authentication, and so on.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ airport -s<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SSID BSSID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RSSI CHANNEL HT CC SECURITY (auth/unicast/group)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d5:b1:e1 -83 &nbsp;8 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:ae:b2:f9 -80 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d4:df:55 -86 &nbsp;4 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; au_Wi-Fi 50:a7:33:21:75:49 -73 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA2(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wi2premium 50:a7:33:61:75:49 -75 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:a1:75:49 -74 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:d4:df:55 -86 &nbsp;4 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:a1:cd:59 -87 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d0:95:89 -87 &nbsp;3 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:d0:fb:59 -72 &nbsp;5 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:ce:36:75 -77 &nbsp;2 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d0:fb:59 -74 &nbsp;5 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; ap-game-65b0ff 00:22:cf:65:b0:ff -82 &nbsp;7,+1 &nbsp; &nbsp;Y &nbsp;-- NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d2:cb:41 -89 &nbsp;10 &nbsp; &nbsp; &nbsp;Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CG3200D 00:24:b2:a6:18:47 -79 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WEP<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sherwoodcafe 00:24:a5:53:39:00 -74 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; au_Wi-Fi 50:a7:33:23:35:89 -74 &nbsp;6 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA2(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:a1:d0:f9 -85 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:ce:36:75 -74 &nbsp;2 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ap-pc-65b0fe 00:22:cf:65:b0:fe -84 &nbsp;7,+1 &nbsp; &nbsp;Y &nbsp;-- WPA2(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:cd:fb:61 -87 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:ce:12:f1 -81 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:ce:12:f1 -83 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:cd:fb:61 -70 &nbsp;11 &nbsp; &nbsp; &nbsp;Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Wi2 16:90:c7:99:4b:b0 -67 &nbsp;11 &nbsp; &nbsp; &nbsp;N &nbsp;J1 NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:d0:dd:0d -50 &nbsp;7 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d0:dd:0d -46 &nbsp;7 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 001601271C10 00:16:01:27:1c:11 -82 &nbsp;7 &nbsp; &nbsp; &nbsp; N &nbsp;-- WEP<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank c2:f8:da:d0:d9:e9 -66 &nbsp;6 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wi2premium 50:a7:33:63:35:89 -70 &nbsp;6 &nbsp; &nbsp; &nbsp; Y &nbsp;-- NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:a3:35:89 -70 &nbsp;6 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FON c0:f8:da:d0:d9:e9 -68 &nbsp;6 &nbsp; &nbsp; &nbsp; Y &nbsp;JP NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WZR-HP-G301NH 0a:24:a5:d7:65:06 -82 &nbsp;5,-1 &nbsp; &nbsp;Y &nbsp;-- WEP<br />
&nbsp; &nbsp; &nbsp; &nbsp; 0024A5D76506-1 02:24:a5:d7:65:06 -82 &nbsp;5,-1 &nbsp; &nbsp;Y &nbsp;-- WPA(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp;AP0120150349KN1 00:0a:79:ab:b5:40 -59 &nbsp;2 &nbsp; &nbsp; &nbsp; N &nbsp;-- WEP<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wi2premium 50:a7:33:6e:b2:f9 -81 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp;Wi2premium_club 50:a7:33:9d:ed:f9 -67 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wi2premium 50:a7:33:5d:ed:f9 -68 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; au_Wi-Fi 50:a7:33:1d:ed:f9 -70 &nbsp;1 &nbsp; &nbsp; &nbsp; Y &nbsp;-- WPA2(PSK/AES/AES)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0001softbank 12:90:c7:99:4b:b0 -72 &nbsp;11 &nbsp; &nbsp; &nbsp;N &nbsp;J1 NONE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; livedoor-web 00:90:c7:99:4b:b0 -67 &nbsp;11 &nbsp; &nbsp; &nbsp;N &nbsp;J1 WEP</div></div>
<p>Now you want to know which channel is used least from the output of &#8220;airport -s&#8221;. This command line below gives you numbers of how many of access points(SSIDS) use each channel.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ airport -s | grep -v SSID| awk '{print $4}' | sort | uniq -c | sort -r<br />
<br />
# count channel <br />
&nbsp; &nbsp;10 &nbsp; 1<br />
&nbsp; &nbsp;9 &nbsp; &nbsp;11<br />
&nbsp; &nbsp;5 &nbsp; &nbsp;6<br />
&nbsp; &nbsp;3 &nbsp; &nbsp;7<br />
&nbsp; &nbsp;3 &nbsp; &nbsp;2<br />
&nbsp; &nbsp;2 &nbsp; &nbsp;7,+1<br />
&nbsp; &nbsp;2 &nbsp; &nbsp;5,-1<br />
&nbsp; &nbsp;2 &nbsp; &nbsp;5<br />
&nbsp; &nbsp;2 &nbsp; &nbsp;4<br />
&nbsp; &nbsp;1 &nbsp; &nbsp;8 &nbsp; &nbsp; &nbsp;&lt;- channel# least occupied<br />
&nbsp; &nbsp;1 &nbsp; &nbsp;3 &nbsp; &nbsp; &nbsp;&lt;- channel# least occupied<br />
&nbsp; &nbsp;1 &nbsp; &nbsp;10 &nbsp; &nbsp; &lt;- channel# least occupied</div></div>
<p>From the result above, it would be good to choose channel 8, 3, or 10. I chose channel 3 this case. I setup the internet sharing again with the channel 3, and confirmed that I was able to to join the shared network &#8220;mbp-shared-wifi&#8221;.</p>
<h3>Also pay attention to RSSI </h3>
<p>You may want to pay attention to RSSI. According to <a href="http://en.wikipedia.org/wiki/Received_signal_strength_indication">wikipedia</a>, RSSI is <I>the relative received signal strength in a wireless environment, in arbitrary units. RSSI is an indication of the power level being received by the antenna. Therefore, the higher the RSSI number (or less negative in some devices), the stronger the signal.<br />
</I><br />
Simply, the channel with lower value of RSSI is less likely to cause interference than the one with higher value of RSSI. It would be good to choose the channel with least value of RSSI for the internet sharing.</p>
<p><h3>Web Based Tool &#8211; Wifi Stumbler</h3>
<p>There is a local wifi scanning web service, called &#8220;<a href="http://tools.meraki.com/stumbler">Wifi Stumbler</a>&#8220;. This service provides you the information to choose the best wireless channel to choose. A good thing about this is that this is free web serivce, you don&#8217;t need airport command or any kind of wifi scanning software to install on your computer. See <a href="http://lifehacker.com/5538927/wifi-stumbler-scans-local-wi+fi-to-find-an-interference+free-channel">the site</a> for more detail. Here is the scanned output of my wifi environment by  Wifi Stumbler.</p>
<p><center><br />
<img src="http://farm8.staticflickr.com/7173/6568170413_1c836914c0_z.jpg" width="640" height="408" alt="Wifi Stumbler"><br />
</center></p>
<p><a href="http://tools.meraki.com/stumbler">http://tools.meraki.com/stumbler</a></p>
<p><h2>REFERENCES</h2>
<ul>
<li><a href="http://en.wikipedia.org/wiki/IEEE_802.11">http://en.wikipedia.org/wiki/IEEE_802.11</a></li>
<li><a href="http://www.microsoft.com/athome/setup/wirelesstips.aspx">http://www.microsoft.com/athome/setup/wirelesstips.aspx</a></li>
<li><a href="http://wlanbook.com/mac-os-x-wifi-wireless-scanner/">http://wlanbook.com/mac-os-x-wifi-wireless-scanner/</a></li>
<li><a href="http://en.wikipedia.org/wiki/Received_signal_strength_indication">http://en.wikipedia.org/wiki/Received_signal_strength_indication</a></li>
<li><a href="http://tools.meraki.com/stumbler">http://tools.meraki.com/stumbler</a></li>
<li><a href="http://lifehacker.com/5538927/wifi-stumbler-scans-local-wi+fi-to-find-an-interference+free-channel">http://lifehacker.com/5538927/wifi-stumbler-scans-local-wi+fi-to-find-an-interference+free-channel</a></li>
</ul>
<p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2011/12/25/a_quick_fix_of_my_wifi_connection_issue_bad_wireless_channelcondition/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=lgLM4SPoLvU:ZSie3NfGzQ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=lgLM4SPoLvU:ZSie3NfGzQ4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2011/12/25/a_quick_fix_of_my_wifi_connection_issue_bad_wireless_channelcondition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“Ame ni Mo Makezu”, Not losing to the rain</title>
		<link>http://yk55.com/blog/2011/03/20/ame_ni_mo_makez/</link>
		<comments>http://yk55.com/blog/2011/03/20/ame_ni_mo_makez/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 20:19:47 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Random Topics]]></category>
		<category><![CDATA[Translation]]></category>
		<category><![CDATA[earthquake]]></category>
		<category><![CDATA[poem]]></category>
		<category><![CDATA[tsunami]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=533</guid>
		<description><![CDATA[&#8220;Ame ni Mo Makezu&#8221; is a great piece of poetry written by Kenji Miyazawa. I believe this is probably one of the most famous Japanese poems. All Japanese who completed compulsory education must have learnt it in school, and might like and still remember it mostly. Today I found kizuna311, a website that launched by [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://en.wikipedia.org/wiki/Ame_ni_mo_Makezu">Ame ni Mo Makezu</a>&#8221; is a great piece of poetry written by <a href="http://en.wikipedia.org/wiki/Kenji_Miyazawa">Kenji Miyazawa</a>. I believe this is probably one of the most famous Japanese poems. All Japanese who completed compulsory education must have learnt it in school, and might like and still remember it mostly. </p>
<p>Today I found <a href="http://kizuna311.com/">kizuna311</a>, a website that launched by a Hollywood Actor <a href="http://en.wikipedia.org/wiki/Ken_Watanabe">Ken Watanabe</a> to encourage Japan Earthquake/Tsunami Victims(see also <a href="http://www.japantoday.com/category/entertainment/view/ken-watanabe-launches-website-to-encourage-solidarity-in-earthquake-aftermath">Ken Watanabe launches website to encourage solidarity in earthquake aftermath</a>). In kizuna311, he read this poem, &#8220;Ame ni Mo Makezu&#8221;. Here is its youtube video. A transliteration and English translation for the text of the poem follow:<br />
<center><br />
<iframe title="YouTube video player" width="500" height="304" src="http://www.youtube.com/embed/hvFEffacY5g" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<table border=0>
<tr>
<td>
<h3>&#8220;Ame ni Mo Makezu&#8221; By  Kenji Miyazawa</h4>
<p> English translation ( transliteration using romaji )
</td>
</tr>
<tr>
<td>
<strong>not losing to the rain</strong> (ame ni mo makezu)<br />
<strong>not losing to the wind</strong> (kaze ni mo makezu)<br />
<strong>not losing to the snow nor to summer&#8217;s heat</strong> (yuki ni mo natsu no atsusa ni mo makenu)<br />
<strong>with a strong body </strong> (jyobu na karada wo mochi)<br />
<strong>unfettered by desire</strong> (yoku wa naku)<br />
<strong>never losing temper</strong> (kesshite ikarazu)<br />
<strong>cultivating a quiet joy</strong> (itsu mo shizuka ni waratte iru)<br />
<strong>every day four bowls of brown rice</strong> (ichi nichi ni genmai yon go to)<br />
<strong>miso and some vegetables to eat</strong> (miso to sukoshi no yasai wo tabe)<br />
<strong>in everything</strong> (arayuru koto wo)<br />
<strong>count yourself last and put others before you</strong> (jibun wo kanjo ni irezu ni)<br />
<strong>watching and listening, and understanding</strong> (yoku mikiki shi wakari)<br />
<strong>and never forgetting</strong> (soshite wasurezu)<br />
<strong>in the shade of the woods of the pines of the fields</strong> (nohara no matsu no hayashi no kage no)<br />
<strong>being in a little thatched hut</strong> (chiisa na kayabuki no koya ni ite)<br />
<strong>if there is a sick child to the east</strong> (higashi ni byoki no kodomo areba)<br />
<strong>going and nursing over them</strong> (itte kanbyo shite yari)<br />
<strong>if there is a tired mother to the west</strong> (nishi ni tsukareta haha areba)<br />
<strong>going and shouldering her sheaf of rice</strong> (itte sono ine no taba wo oi)<br />
<strong>if there is someone near death to the south</strong> (minami ni shiniso na hito areba)<br />
<strong>going and saying there&#8217;s no need to be afraid</strong> (itte kowagaranakute mo ii to ii)<br />
<strong>if there is a quarrel or a suit to the north</strong> (kita ni kenka ya sosho ga areba)<br />
<strong>telling them to leave off with such waste</strong> (tsumaranai kara yamero to ii)<br />
<strong>when there&#8217;s drought, shedding tears of sympathy</strong> (hideri no toki wa namida wo nagashi)<br />
<strong>when the summer&#8217;s cold, wandering upset</strong> (samusa no natsu wa oro-oro aruki)<br />
<strong>called a blockhead by everyone</strong> (minna ni deku-no-bo to yobare)<br />
<strong>without being praised</strong> (homerare mo sezu)<br />
<strong>without being blamed</strong> (ku ni mo sarezu)<br />
<strong>such a person</strong> (so iu mono ni)<br />
<strong>I want to become</strong> (watashi wa naritai)
</td>
</tr>
</table>
<p>※ Source: <a href="http://en.wikipedia.org/wiki/Ame_ni_mo_Makezu">Wikipedia Ame ni Mo Makezu</a></p>
<p>I actually saw the poem after a long interval. It was exactly the same &#8220;Ame ni Mo Makezu&#8221; as before. But this time I felt something different, something that I haven&#8217;t felt before. I read this poem more empathetically than never before. This is absolutely because of what we Japanese have experienced for last few days &#8211; Japan earthquake and tsunami. You will see in this poem the author&#8217;s ideas about how he should think of nature, how he should live,  how he should support people, and whom he wants to be like.  It must teach us a lot especially for this time of devastation and suffering, and let us start thinking of what we can do for the victims.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2011/03/20/ame_ni_mo_makez/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=tMa0Zpp3A3c:vXRNWU6w9bs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=tMa0Zpp3A3c:vXRNWU6w9bs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2011/03/20/ame_ni_mo_makez/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ready to Give? – Japan Earthquake and Tsunami</title>
		<link>http://yk55.com/blog/2011/03/15/ready_to_give_japan_earthquake_andtsunami/</link>
		<comments>http://yk55.com/blog/2011/03/15/ready_to_give_japan_earthquake_andtsunami/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 15:05:08 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Random Topics]]></category>
		<category><![CDATA[donation]]></category>
		<category><![CDATA[earthquake]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[tsunami]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=498</guid>
		<description><![CDATA[Japan Platform (Japanease Only) Yahoo!JAPAN Volunteer(Japanease Only) Japan Red Cross with Google Checkout Japan Domestic Donation Site Collections Canadian Red Cross American Red Cross American Red Cross with Amazon Payment CARE Save the Chirldren Australia Globalgiving World Relief Convoy of Hope Lady Gaga Japan Earthquake Relief Wristband The Nippon Foundation/CANPAN Yahoo: Japan earthquake and tsunami: [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.japanplatform.org/area_works/tohoku/index.html">Japan Platform (Japanease Only)</a></li>
<li><a href="http://bokin.yahoo.co.jp/donation/detail/1630001/index.html">Yahoo!JAPAN Volunteer(Japanease Only)</a></li>
<li><a href="http://www.google.com/crisisresponse/japanquake2011.html">Japan Red Cross with Google Checkout</a></li>
<li><a href="http://sites.google.com/site/quake20110311jp/bokin">Japan Domestic Donation Site Collections</a></li>
<li><a href="http://www.redcross.ca/article.asp?id=38375&#038;tid=001">Canadian Red Cross</a></li>
<li><a href="http://www.redcross.org/portal/site/en/menuitem.1a019a978f421296e81ec89e43181aa0/?vgnextoid=f9efd2a1ac6ae210VgnVCM10000089f0870aRCRD">American Red Cross</a></li>
<li><a href="http://www.amazon.com/b/ref=amb_link_355543322_2?ie=UTF8&#038;node=2673660011&#038;pf_rd_m=ATVPDKIKX0DER&#038;pf_rd_s=right-csm-1&#038;pf_rd_r=1S3HDB87J2WENR9ZWV1J&#038;pf_rd_t=101&#038;pf_rd_p=1290864082&#038;pf_rd_i=507846">American Red Cross with Amazon Payment</a></li>
<li><a href="http://www.care.org/newsroom/articles/2011/03/care-ready-respond-to-earthquake-philippines-japan.asp">CARE</a></li>
<li><a href="http://www.savethechildren.org.au/what-we-do/emergencies/japan-earthquake#mce_temp_url#">Save the Chirldren Australia</a></li>
<li><a href="http://www.globalgiving.org/projects/japan-earthquake-tsunami-relief/">Globalgiving</a></li>
<li><a href="http://worldrelief.org/Page.aspx?pid=2897">World Relief</a></li>
<li><a href="http://www.convoyofhope.org/go/headlines/entry/message_from_our_president">Convoy of Hope</a></li>
<li><a href="http://ladygaga.shop.bravadousa.com/Product.aspx?cp=14781_42444&#038;pc=BGAMLG88">Lady Gaga Japan Earthquake Relief Wristband</a></li>
<li><a href="http://members.canpan.info/kikin/products/detail.php?product_id=1080">The Nippon Foundation/CANPAN</a></li>
<li><a href="http://news.yahoo.com/s/yblog_newsroom/20110311/wl_yblog_newsroom/japan-earthquake-and-tsunami-how-to-help">Yahoo: Japan earthquake and tsunami: How to help</a></li>
<li><a href="http://www.9to5mac.com/55877/apple-now-taking-red-cross-donations-through-itunes-for-japan-relief-fund/?utm_source=feedburner&#038;utm_medium=twitter&#038;utm_campaign=Feed:+9To5Mac-MacAllDay+(9+to+5+Mac+-+Apple+Intelligence)">Apple Japan relief fund through iTunes</a></li>
<li><a href="http://www.salvationarmyusa.org/usn/www_usn_2.nsf">Salvation Army National Corp</a></li>
<li><a href="http://www.internationalmedicalcorps.org/Page.aspx?pid=1968">International Medial Corps</a></li>
<li><a href="http://www.musicforrelief.org/page/donate-1">Music for relief</a></li>
<li><a href="https://www.paypal-donations.com/pp-charity/web.us/campaign.jsp?cid=-12">Paypal</a></li>
<li><a href="http://www.groupon.com/deals/international-medical-corps">Groupon</a></li>
<li><a href="http://www.dealextreme.com/p/please-donate-for-japan-earthquake-hand-in-hand-with-dx-2011311">Donate for Japan Earthquake &#8211; Hand in Hand with DX</a> (2011/03/18 added)</li>
<li><a href="https://donation2.redcross.org.hk/onlinedonation/user_donation.asp">Hong Kong Red Cross</a> (2011/03/18 added)</li>
</ul>
<p><a href='http://www.picbadges.com/pray-for-japan-174/1345228/' class='pbwdgt'></a><script type="text/javascript">var _pbwid=1345228; var _pbwt=3</script><br />
<script type="text/javascript" src="http://www.picbadges.com/w/widget.js"></script></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2011/03/15/ready_to_give_japan_earthquake_andtsunami/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=NQuMN_PsMyo:bTtYJDif7hc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=NQuMN_PsMyo:bTtYJDif7hc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2011/03/15/ready_to_give_japan_earthquake_andtsunami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Bunch of Covers/Remixes on “Just the Two of Us”</title>
		<link>http://yk55.com/blog/2011/02/25/just_the_two_ofus/</link>
		<comments>http://yk55.com/blog/2011/02/25/just_the_two_ofus/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 02:49:15 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Random Topics]]></category>
		<category><![CDATA[jazz]]></category>
		<category><![CDATA[song]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=483</guid>
		<description><![CDATA[&#8220;Just the two of us&#8221; is one of my favorite songs &#8211; a Grammy Award song, originally Jazz song recorded in 1981 by Grover Washington, Jr. and Bill Withers (wikipedia). You will be surprised to know how many people covered/remixed this song. Here is only a part of the all covers/remixes &#8211; I collected from [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Just the two of us&#8221; is one of my favorite songs &#8211; a Grammy Award song, originally Jazz song recorded in 1981 by Grover Washington, Jr. and Bill Withers (<a href="http://en.wikipedia.org/wiki/Just_the_Two_of_Us_(Grover_Washington,_Jr._song)">wikipedia</a>).<br />
<center><br />
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/Njwasr1OOuc" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<p><br/><br />
You will be surprised to know how many people covered/remixed this song. Here is only a part of the all covers/remixes &#8211; I collected from Youtube out of my curiosity. Great song!!<br />
<br/></p>
<ul>
<li><a href="http://www.youtube.com/watch?v=u0XXMPX8uMc">Around The Way &#8211; Really Into You</a></li>
<li><a href="http://www.youtube.com/watch?v=ccujiBxVm90">2pac &#038; Kadafi &#8211; Just The Two Of Us &#8211; Dj Sixx Remix</a></li>
<li><a href="http://www.youtube.com/watch?v=8_5z9yn8fhQ">Kubota Toshinobu Version</a></li>
<li><a href="http://www.youtube.com/watch?v=2SzE08aInn4">Dr. Evil &#8211; Just The Two Of Us (Austin Powers)</a></li>
<li><a href="http://www.youtube.com/watch?v=TK4vehYHn6w">jose jose &#8211; Solo tu y yo (Just The Two Of Us)</a></li>
<li><a href="http://www.youtube.com/watch?v=V01a2jSClfk">2009 Taco Bell Just the Two of Us</a></li>
<li><a href="http://www.youtube.com/watch?v=b_8o1qoqKME">Willy Chirino &#8211; Just the two of us (Solo tu y yo)</a></li>
<li><a href="http://www.youtube.com/watch?v=pq4F_BXjKlQ">Regina Belle &#038; Steve Cole &#038; George Duke / To Grover, With Love</a></li>
<li><a href="http://www.youtube.com/watch?v=EV7v_1BVaig">Christian McBride Version</a></li>
<li><a href="http://www.youtube.com/watch?v=Ot0PzLV98Bk">Mietta Version</a></li>
<li><a href="http://www.youtube.com/watch?v=SzNRg4ObYLM">Tiro de Gracia Version</a></li>
<li><a href="http://www.youtube.com/watch?v=_WamkRSDeD8">Will Smith Version</a></li>
<li><a href="http://www.youtube.com/watch?v=dkQs4GaqplI">Rebirth Brass Band Version</a></li>
<li><a href="http://www.youtube.com/watch?v=EV7v_1BVaig">The Philadelphia Experiment Version</a></li>
<li><a href="http://www.youtube.com/watch?v=A1EKratCjpE">Benjamin Siksou Version</a></li>
<li><a href="http://www.youtube.com/watch?v=W7aURiWMt3U">DanceMan Version &#8221;じゃあ明日にすれば&#8221;</a></li>
</ul>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2011/02/25/just_the_two_ofus/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=WldJAJSekFs:RbwJIy_SuCw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=WldJAJSekFs:RbwJIy_SuCw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2011/02/25/just_the_two_ofus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One of the main reasons that I visited Seoul in January 2011 – “Bukchon Hanok Village”</title>
		<link>http://yk55.com/blog/2011/02/13/reasons_of_seoul_visit_january_2011_bukchon_hanokvillage/</link>
		<comments>http://yk55.com/blog/2011/02/13/reasons_of_seoul_visit_january_2011_bukchon_hanokvillage/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 23:36:57 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Random Topics]]></category>
		<category><![CDATA[seoul]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=473</guid>
		<description><![CDATA[&#8220;The Accidental Couple&#8221; is one of my favorite Korean TV dramas, and &#8220;Bukchon Hanok Village&#8221; is the location for the TV darama where many key scenes were taken. That&#8217;s why I had thought about going to &#8220;Bukchon Hanok Village&#8221;, and finally I did it in January 2011. See the following pictures and compare. The first [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.hancinema.net/korean_drama_The_Accidental_Couple-cast.html">The Accidental Couple</a>&#8221; is one of my favorite Korean TV dramas, and &#8220;<a href="http://en.wikipedia.org/wiki/Bukchon_Hanok_Village">Bukchon Hanok Village</a>&#8221; is the location for the TV darama where many key scenes were taken. That&#8217;s why I had thought about going to &#8220;Bukchon Hanok Village&#8221;, and finally I did it in January 2011. See the following pictures and compare.</p>
<p>The first one is the one I captured on TV screen while playing the daram(the HDD recorded).<br />
<a href="http://www.flickr.com/photos/yk55/5439956872/" title="The Scene of  the Accidental Couple by yoichi*, on Flickr"><img src="http://farm6.static.flickr.com/5297/5439956872_4d4cf936fd_z.jpg" width="640" height="480" alt="The Scene of  the Accidental Couple" /></a></p>
<p>The other one is the one I actually took in Bukchon Hanok Village, Seoul. There are building improvements going on around there, so it may look a little bit different from the one above. But it&#8217;s the same location!<br />
<a href="http://www.flickr.com/photos/yk55/5380287475/" title="P1070710 by yoichi*, on Flickr"><img src="http://farm6.static.flickr.com/5208/5380287475_5cbc2686d8_z.jpg" width="640" height="480" alt="P1070710" /></a></p>
<p>Well, apart from the location for the TV drama, &#8220;Bukchon Hanok Village&#8221; is a famous Korean village in Seoul where Korean traditional houses which is called hanok have been preserved. There are lots of tourist spots and fancy cafes etc around there . It is good to go visit there even if you don&#8217;t have passion for it like me. I bet you&#8217;d like it.</p>
<p>See also:</p>
<ul>
<li><a href="http://www.kbs.co.kr/drama/babo/index.html">The Accidental Couple Official  Website</a></li>
<li><a href="http://english.seoul.go.kr/cav/att/bukchon.php">Bukchon Hanok Village/Samcheong-dong</a></li>
</ul>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2011/02/13/reasons_of_seoul_visit_january_2011_bukchon_hanokvillage/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=zH0I6ukIQPY:vHghpSnNzKw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=zH0I6ukIQPY:vHghpSnNzKw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2011/02/13/reasons_of_seoul_visit_january_2011_bukchon_hanokvillage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to setup Wikileaks mirror site by using wget and Github</title>
		<link>http://yk55.com/blog/2010/12/24/how_to_setup_wikileaks_mirror_by_wget_and_github/</link>
		<comments>http://yk55.com/blog/2010/12/24/how_to_setup_wikileaks_mirror_by_wget_and_github/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 18:01:13 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Environment Setup]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=461</guid>
		<description><![CDATA[Wikileaks, a new internet media NPO launched its website in 2006,has been under threat of being eliminated from the internet. Wikileaks lost its DNS service and its main domain(wikileaks.org) has not been reachable due to heavy DDoS Attacks on Wikileaks. Some large U.S companies such as Bank of America, Amazon, Paypal have already stopped giving [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<a href="http://www.flickr.com/photos/yk55/5285499957/" title="Wikileaks mirror site on github.com by yoichi*, on Flickr"><img src="http://farm6.static.flickr.com/5002/5285499957_d73be8b189_b.jpg" width="700" height="423" alt="Wikileaks mirror site on github.com" /></a><br />
</center></p>
<p><a href="http://en.wikipedia.org/wiki/WikiLeaks">Wikileaks</a>, a new internet media NPO launched its website in 2006,has been under threat of being eliminated from the internet. Wikileaks lost its DNS service and its main domain(wikileaks.org) has not been reachable due to heavy DDoS Attacks on Wikileaks.  Some large U.S companies such as <a href="http://abclocal.go.com/kabc/story?section=news/world_news&#038;id=7851574">Bank of America</a>, <a href="http://www.huffingtonpost.com/2010/12/01/wikileaks-amazon-servers-_n_790652.html">Amazon</a>, <a href="http://thelede.blogs.nytimes.com/2010/12/04/paypal-suspends-wikileaks-account">Paypal</a> have already stopped giving service to Wikileaks. There are many organization/people who don&#8217;t support Wikileaks and who are desperate to shut down Wikileaks’ website, to speak of extremes. Wikileaks is not just one website. Good or bad, it is a lot more powerful and influential than you&#8217;ve ever thought. </p>
<p>There are millions of Wikileaks supporters all over the world. You will be surprised to see how many of <a href="http://wikileaks.ch/Mirrors.html">mirror sites</a> has been setup.  Wikileaks has been seeking support  and it currently has 1426 mirrors registered at this time (Dec24,2010) if my counting is not wrong.  Of course, you also can be one of the Wikileaks supporters by hosting a mirror of the site.  Wikileaks provides simple instructions on how to setup a WikiLeaks mirror on its <a href="http://wikileaks.ch/Mass-mirroring-Wikileaks.html">Mass-mirroring Wikileaks page</a>. Basically you need to have a unix based server on which web server is running first,  then give Wikileaks staff access permission to the server so that they can upload a copy of the Wikileaks site. That&#8217;s how you provide the the Wikileaks content from your webserver.  But don&#8217;t you think it is risky to host the Wikileaks content on your server?  Highly possibly your server may suffer from DDoS Attacks. What if whoever attackers get to know who you are from your domain registration record or something?  it may be frightening &#8230;  Soooooo here I am going to introduce the way you can set up a Wikileaks mirror site without having such a risk  of your expose to the attackers and without having any hosting space for Wikileaks.　 &#8212; Here I use <strong>wget</strong> and <strong>github</strong> on linux environment (ubuntu). </p>
<p><h2><strong>Github as web server</strong></h2>
<p>What you need to do is basically only 2 steps: </p>
<ul>
<li>1.  mirror a Website with all markup, text, css, scripts, images, etc. to your local machine</li>
<li>2.  save the content to the github repository(project name: username.github.com). </li>
</ul>
<p>
<p>
Then, <a href="http://pages.github.com/">the Github Pages</a> allows you to publish the content to the web as if you publish the content on your own site.  The Github Pages rule is very simple. If your Github username is ‘<strong>wikileaks-mirror-jp</strong>’  and you push the content to repository named ‘<strong>wikileaks-mirror-jp.github.com</strong>’, the content can be accessible through the URL &#8211; <a href="http://wikileaks-mirror-jp.github.com">http://wikileaks-mirror-jp.github.com</a>.  In short, you can use Github as web server to  publish the mirriroed wikileaks content to the web.</p>
<p><h2><strong>1. Setup a Github user account for the mirror</strong></h2>
<p>You need to setup a Github user account so that you can push the content to Github repositories. Let’s say your Github username is ‘<strong>wikileaks-mirror-jp</strong>’ and  you have an existing unix user named ‘<strong>wikileaks-mirror-jp</strong>’ on your linux machine. Firest of all, you need to add wikileaks-mirror-jp’s SSH pub key to the Github account. This below is how I created SSH pub key, <strong>id_rsa_github.pub</strong>.  See also <a href="http://help.github.com/msysgit-key-setup/">Generating SSH keys</a> for more detail.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ su wikileaks-mirror-jp<br />
$ ssh-keygen -t rsa<br />
<br />
Generating public/private rsa key pair.<br />
Enter file in which to save the key (/home/wikileaks-mirror-jp/.ssh/id_rsa): /home/wikileaks-mirror-jp/.ssh/id_rsa_github<br />
Created directory '/home/wikileaks-mirror-jp/.ssh'.<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /home/wikileaks-mirror-jp/.ssh/id_rsa_github.<br />
Your public key has been saved in /home/wikileaks-mirror-jp/.ssh/id_rsa_github.pub.<br />
The key fingerprint is:<br />
92:23:42:9e:70:c8:ef:65:68:d5:23:0d:62:af:da:87 wikileaks-mirror-jp@ubuntu<br />
The key's randomart image is:<br />
....</div></div>
<p>Then, configure SSH like this below so as for the SSH key created above to be used in accessing to github.com server through SSH. See also <a href="http://help.github.com/multiple-keys/">Multiple SSH Keys</a> for more detail.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ vi ~/.ssh/config<br />
<br />
Host github.com<br />
&nbsp; User wikileaks-mirror-jp<br />
&nbsp; Port 22<br />
&nbsp; Hostname github.com<br />
&nbsp; IdentityFile ~/.ssh/id_rsa_github<br />
&nbsp; TCPKeepAlive yes<br />
&nbsp; IdentitiesOnly yes</div></div>
<p>Finally,  add the SSH pub key on your <a href="https://github.com/account">account setting page</a>. </p>
<p><h2><strong>2. Create a Github repository for the mirror</strong></h2>
<p>Once the Github account is ready, then you need to create a new repository for Github user page , <strong>wikileaks-mirror-jp.github.com</strong>.  First, you need to create a new reposotiry by entering project name, description and homepage URL on <a href="https://github.com/repositories/new">Create a New Repository page</a>.  The new project Name is  <strong>wikileaks-mirror-jp.github.com</strong></p>
<p>Then, you create an empty git repository for wikileaks-mirror-jp.github.com and add a sample file to the repository like this below.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ git config --global user.name &quot;wikileaks-mirror-jp&quot;<br />
$ mkdir ~/github<br />
$ mkdir wikileaks-mirror-jp.github.com<br />
$ cd wikileaks-mirror-jp.github.com<br />
$ git init<br />
$ touch README<br />
$ echo &quot;wikileaks-mirror-jp.github.com&quot; &gt; README<br />
$ git add README<br />
$ git commit -m 'first commit'<br />
$ git remote add origin git@github.com:wikileaks-mirror-jp/wikileaks-mirror-jp.github.com.git<br />
$ git push origin master</div></div>
<p>You will see the sample file pushed to the repository on <a href="https://github.com/wikileaks-mirror-jp/wikileaks-mirror-jp.github.com">the project page</a>. </p>
<p><h2><strong>3. Wikileaks mirroring with wget</strong></h2>
<p>Here you mirror a Wikileaks website to your local machine by using a wget command. Let’s say the mirroring target site is <a href="http://wikileaks.ch">http://wikileaks.ch</a> and you save all the files and subdiectories to the directory where create the empty git repository for wikileaks-mirror-jp.github.com, <strong>~/github/wikileaks-mirror-jp.github.com</strong>.  By executing the following command line, you will have all the files downloaded from <a href="http://wikileaks.ch">http://wikileaks.ch</a> under the directory for the Github repository.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ wget --mirror --convert-links -w 2 -p -e robots=off \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-P ~/github/wikileaks-mirror-jp.github.com http://wikileaks.ch/<br />
<br />
--2010-12-23 22:39:40-- &nbsp;http://wikileaks.ch/<br />
Resolving wikileaks.ch... 178.21.20.9, 213.251.145.96, 46.59.1.2, ...<br />
Connecting to wikileaks.ch|178.21.20.9|:80... connected.<br />
HTTP request sent, awaiting response... 200 OK<br />
....</div></div>
<p>Speaking of &#8216;<strong>-e robots=off</strong>&#8216;, you need to turn robots param off in order to download some script or css file that are located under the directories which the site&#8217;s robots.txt instructs web robots not to visit. Other key options are &#8216;<strong>&#8211;mirror</strong>&#8216;, &#8216;<strong>&#8211;convert-links</strong>&#8216;. Please see wget man page or <a href="http://www.gnu.org/software/wget/manual/wget.html">GNU manual</a> for the wget option details.</p>
<p><h2><strong>4. Push the content to the repository to publish to the web</strong></h2>
<p>Finally, push the downloaded content to the repository like this below.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ cd ~/github/wikileaks-mirror-jp.github.com<br />
$ git add *<br />
$ git commit -m &quot;added mirror site&quot;<br />
$ git push<br />
<br />
Counting objects: 3043, done.<br />
Compressing objects: 100% (3013/3013), done.<br />
Writing objects: 100% (3042/3042), 20.37 MiB | 39 KiB/s, done.<br />
Total 3042 (delta 2836), reused 0 (delta 0)<br />
To git@github.com:wikileaks-mirror-jp/wikileaks-mirror-jp.github.com.git<br />
&nbsp; &nbsp;aff2b93..1032dc2 &nbsp;master -&gt; master</div></div>
<p>Now the content is accessible through <a href="http://wikileaks-mirror-jp.github.com">http://wikileaks-mirror-jp.github.com</a>. What&#8217;s more, if you want to automate the series of commands that you have executed above, put them on crontab. That&#8217;s it!</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2010/12/24/how_to_setup_wikileaks_mirror_by_wget_and_github/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=QTxTAJhGvYA:neupeleG4kk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=QTxTAJhGvYA:neupeleG4kk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2010/12/24/how_to_setup_wikileaks_mirror_by_wget_and_github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Segmentation fault(11) – Apache2 and libphp5.so on Ubuntu</title>
		<link>http://yk55.com/blog/2010/11/30/php5apache2_segmentation_fault_under_ubuntu/</link>
		<comments>http://yk55.com/blog/2010/11/30/php5apache2_segmentation_fault_under_ubuntu/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 15:32:11 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Environment Setup]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=434</guid>
		<description><![CDATA[Ubuntu10.04.1LTSでApache2、PHP5.3がうまく動いてくれない。 同一バージョンのApache、PHPを依存ライブラリをほぼ同じにしてdebian Lennyで試してみると問題なく動作する。 どうにもこうにもならないので後々のためにとりあえず記録だけ残しておく。 1. PROBLEM: Apache2 Segmentation fault(11) [Sun Nov 28 17:42:48 2010] [notice] Apache/2.2.2 (Unix) PHP/5.3.3 configured -- resuming normal operations [Sun Nov 28 17:42:48 2010] [notice] child pid 13032 exit signal Segmentation fault (11) [Sun Nov 28 17:42:49 2010] [notice] child pid 13033 exit signal Segmentation fault (11) [Sun Nov 28 17:42:52 [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu10.04.1LTSでApache2、PHP5.3がうまく動いてくれない。 同一バージョンのApache、PHPを依存ライブラリをほぼ同じにしてdebian Lennyで試してみると問題なく動作する。 どうにもこうにもならないので後々のためにとりあえず記録だけ残しておく。 </p>
<p><h2><strong>1. PROBLEM: Apache2 Segmentation fault(11)</strong></h2>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[Sun Nov 28 17:42:48 2010] [notice] Apache/2.2.2 (Unix) PHP/5.3.3 configured -- resuming normal operations<br />
[Sun Nov 28 17:42:48 2010] [notice] child pid 13032 exit signal Segmentation fault (11)<br />
[Sun Nov 28 17:42:49 2010] [notice] child pid 13033 exit signal Segmentation fault (11)<br />
[Sun Nov 28 17:42:52 2010] [notice] child pid 13034 exit signal Segmentation fault (11)<br />
[Sun Nov 28 17:42:56 2010] [notice] child pid 13035 exit signal Segmentation fault (11)</div></div>
<p><h2><strong>2. Environments</strong></h2>
<p><h4><strong>Installations: apache-2.2.2</strong></h4>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar zxf httpd-2.2.2.tar.gz<br />
cd httpd-2.2.2<br />
<br />
CC=&quot;gcc&quot; OPTIM=&quot;-O2&quot; \<br />
&nbsp;./configure \<br />
&nbsp;--prefix=/home/apache-2.2.2 \<br />
&nbsp;--with-layout=Apache \<br />
&nbsp;--enable-rewrite \<br />
&nbsp;--disable-userdir \<br />
&nbsp;--enable-auth_dbm \<br />
&nbsp;--enable-usertrack \<br />
&nbsp;--enable-=so \<br />
&nbsp;--enable-proxy \<br />
&nbsp;--enable-proxy-http \<br />
&nbsp;--enable-proxy-connect \<br />
&nbsp;--enable-speling \<br />
&nbsp;--enable-headers \<br />
&nbsp;--enable-expires \<br />
&nbsp;--enable-setenvif \<br />
&nbsp;--enable-cache \<br />
&nbsp;--enable-disk-cache \<br />
&nbsp;--enable-mem-cache \<br />
&nbsp;--enable-info \<br />
&nbsp;--enable-rule=SHARED_CORE \<br />
&nbsp;--verbose<br />
<br />
make <br />
sudo make install<br />
sudo ln -s /home/apache-2.2.2 /home/apache</div></div>
<p><h4><strong>Installations: PHP-5.3.3</strong></h4>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar zxvf php-5.3.3.tar.gz<br />
cd php-5.3.3<br />
./configure \<br />
&nbsp; &nbsp; --with-apxs2=/home/apache/bin/apxs \<br />
&nbsp; &nbsp; --with-mysql=/home/mysql \<br />
&nbsp; &nbsp; --with-curl=/usr/lib \<br />
&nbsp; &nbsp; --with-zlib \<br />
&nbsp; &nbsp; --enable-mbstring \<br />
&nbsp; &nbsp; --enable-mbregex \<br />
<br />
make<br />
sudo make install</div></div>
<p><h4><strong>Linux distribution Info</strong></h4>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ lsb_release -a <br />
No LSB modules are available.<br />
Distributor ID: Ubuntu<br />
Description: &nbsp; &nbsp;Ubuntu 10.04.1 LTS<br />
Release: &nbsp; &nbsp; &nbsp; &nbsp;10.04<br />
Codename: &nbsp; &nbsp; &nbsp; lucid</div></div>
<p><h4><strong>Apache Info</strong></h4>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ /home/apache/bin/apachectl -V<br />
<br />
Server version: Apache/2.2.2<br />
Server built: &nbsp; Apr &nbsp;4 2010 10:26:51<br />
Server's Module Magic Number: 20051115:2<br />
Server loaded: &nbsp;APR 1.2.7, APR-Util 1.2.7<br />
Compiled using: APR 1.2.7, APR-Util 1.2.7<br />
Architecture: &nbsp; 32-bit<br />
Server MPM: &nbsp; &nbsp; Prefork<br />
&nbsp; threaded: &nbsp; &nbsp; no<br />
&nbsp; &nbsp; forked: &nbsp; &nbsp; yes (variable process count)<br />
Server compiled with....<br />
&nbsp;-D APACHE_MPM_DIR=&quot;server/mpm/prefork&quot; &nbsp; &nbsp; &lt;--- サーバは MPM/Prefork<br />
&nbsp;-D APR_HAS_SENDFILE<br />
&nbsp;-D APR_HAS_MMAP<br />
&nbsp;-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)<br />
&nbsp;-D APR_USE_SYSVSEM_SERIALIZE<br />
&nbsp;-D APR_USE_PTHREAD_SERIALIZE<br />
&nbsp;-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT<br />
&nbsp;-D APR_HAS_OTHER_CHILD<br />
&nbsp;-D AP_HAVE_RELIABLE_PIPED_LOGS<br />
&nbsp;-D DYNAMIC_MODULE_LIMIT=128<br />
&nbsp;-D HTTPD_ROOT=&quot;/home/apache-2.2.2&quot;<br />
&nbsp;-D SUEXEC_BIN=&quot;/home/apache-2.2.2/bin/suexec&quot;<br />
&nbsp;-D DEFAULT_PIDLOG=&quot;logs/httpd.pid&quot;<br />
&nbsp;-D DEFAULT_SCOREBOARD=&quot;logs/apache_runtime_status&quot;<br />
&nbsp;-D DEFAULT_LOCKFILE=&quot;logs/accept.lock&quot;<br />
&nbsp;-D DEFAULT_ERRORLOG=&quot;logs/error_log&quot;<br />
&nbsp;-D AP_TYPES_CONFIG_FILE=&quot;conf/mime.types&quot;<br />
&nbsp;-D SERVER_CONFIG_FILE=&quot;conf/httpd.conf&quot;</div></div>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ /home/apache/bin/apachectl -M<br />
<br />
Loaded Modules:<br />
&nbsp;core_module (static)<br />
&nbsp;authn_file_module (static)<br />
&nbsp;authn_default_module (static)<br />
&nbsp;authz_host_module (static)<br />
&nbsp;authz_groupfile_module (static)<br />
&nbsp;authz_user_module (static)<br />
&nbsp;authz_default_module (static)<br />
&nbsp;auth_basic_module (static)<br />
&nbsp;cache_module (static)<br />
&nbsp;disk_cache_module (static)<br />
&nbsp;mem_cache_module (static)<br />
&nbsp;include_module (static)<br />
&nbsp;filter_module (static)<br />
&nbsp;log_config_module (static)<br />
&nbsp;env_module (static)<br />
&nbsp;expires_module (static)<br />
&nbsp;headers_module (static)<br />
&nbsp;usertrack_module (static)<br />
&nbsp;setenvif_module (static)<br />
&nbsp;proxy_module (static)<br />
&nbsp;proxy_connect_module (static)<br />
&nbsp;proxy_ftp_module (static)<br />
&nbsp;proxy_http_module (static)<br />
&nbsp;proxy_ajp_module (static)<br />
&nbsp;proxy_balancer_module (static)<br />
&nbsp;mpm_prefork_module (static)<br />
&nbsp;http_module (static)<br />
&nbsp;mime_module (static)<br />
&nbsp;status_module (static)<br />
&nbsp;autoindex_module (static)<br />
&nbsp;asis_module (static)<br />
&nbsp;info_module (static)<br />
&nbsp;cgi_module (static)<br />
&nbsp;negotiation_module (static)<br />
&nbsp;dir_module (static)<br />
&nbsp;actions_module (static)<br />
&nbsp;speling_module (static)<br />
&nbsp;alias_module (static)<br />
&nbsp;rewrite_module (static)<br />
&nbsp;so_module (static)<br />
&nbsp;php5_module (shared)<br />
Syntax OK</div></div>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ ldd /home/apache/bin/httpd &nbsp; &nbsp;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; linux-gate.so.1 =&gt; &nbsp;(0x00ed3000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libm.so.6 =&gt; /lib/tls/i686/cmov/libm.so.6 (0x006c4000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libaprutil-1.so.0 =&gt; /home/apache-2.2.2/lib/libaprutil-1.so.0 (0x00586000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libexpat.so.1 =&gt; /lib/libexpat.so.1 (0x0087a000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libapr-1.so.0 =&gt; /home/apache-2.2.2/lib/libapr-1.so.0 (0x00f91000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; librt.so.1 =&gt; /lib/tls/i686/cmov/librt.so.1 (0x0093b000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libcrypt.so.1 =&gt; /lib/tls/i686/cmov/libcrypt.so.1 (0x005ce000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libpthread.so.0 =&gt; /lib/tls/i686/cmov/libpthread.so.0 (0x00115000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libdl.so.2 =&gt; /lib/tls/i686/cmov/libdl.so.2 (0x00964000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libc.so.6 =&gt; /lib/tls/i686/cmov/libc.so.6 (0x00413000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; /lib/ld-linux.so.2 (0x00d4f000)</div></div>
<p><h4><strong>PHP Info</strong></h4>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ php -i <br />
<br />
phpinfo()<br />
PHP Version =&gt; 5.3.3<br />
<br />
System =&gt; Linux ubuntu-xps 2.6.32-26-generic #47-Ubuntu SMP Wed Nov 17 15:59:05 UTC 2010 i686<br />
Build Date =&gt; Nov 28 2010 19:21:06<br />
Configure Command =&gt; &nbsp;'./configure' &nbsp;'--with-apxs2=/home/apache/bin/apxs' '--with-mysql=/home/mysql' '--with-curl=/usr/lib' '--with-zlib' '--enable-mbstring' '--enable-mbregex'<br />
Server API =&gt; Command Line Interface<br />
Virtual Directory Support =&gt; disabled<br />
Configuration File (php.ini) Path =&gt; /usr/local/lib<br />
Loaded Configuration File =&gt; (none)<br />
Scan this dir for additional .ini files =&gt; (none)<br />
Additional .ini files parsed =&gt; (none)<br />
PHP API =&gt; 20090626<br />
PHP Extension =&gt; 20090626<br />
Zend Extension =&gt; 220090626<br />
Zend Extension Build =&gt; API220090626,NTS<br />
PHP Extension Build =&gt; API20090626,NTS<br />
Debug Build =&gt; no<br />
Thread Safety =&gt; disabled<br />
Zend Memory Manager =&gt; enabled<br />
Zend Multibyte Support =&gt; disabled<br />
IPv6 Support =&gt; enabled<br />
Registered PHP Streams =&gt; compress.zlib, php, file, glob, data, http, ftp, phar &nbsp;<br />
Registered Stream Socket Transports =&gt; tcp, udp, unix, udg<br />
Registered Stream Filters =&gt; zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk<br />
<br />
<br />
This program makes use of the Zend Scripting Language Engine:<br />
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies</div></div>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ php -m<br />
<br />
[PHP Modules]<br />
Core<br />
ctype<br />
curl<br />
date<br />
dom<br />
ereg<br />
fileinfo<br />
filter<br />
hash<br />
iconv<br />
json<br />
libxml<br />
mbstring<br />
mysql<br />
pcre<br />
PDO<br />
pdo_sqlite<br />
Phar<br />
posix<br />
Reflection<br />
session<br />
SimpleXML<br />
SPL<br />
SQLite<br />
sqlite3<br />
standard<br />
tokenizer<br />
xml<br />
xmlreader<br />
xmlwriter<br />
zlib<br />
<br />
[Zend Modules]</div></div>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ ldd /home/apache/modules/libphp5.so <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; linux-gate.so.1 =&gt; &nbsp;(0x00569000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libcrypt.so.1 =&gt; /lib/tls/i686/cmov/libcrypt.so.1 (0x00110000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; librt.so.1 =&gt; /lib/tls/i686/cmov/librt.so.1 (0x001f6000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libmysqlclient.so.16 =&gt; /home/mysql-5.1.30/lib/mysql/libmysqlclient.so.16 (0x00356000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libz.so.1 =&gt; /lib/libz.so.1 (0x00142000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libm.so.6 =&gt; /lib/tls/i686/cmov/libm.so.6 (0x00157000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libdl.so.2 =&gt; /lib/tls/i686/cmov/libdl.so.2 (0x0017d000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libnsl.so.1 =&gt; /lib/tls/i686/cmov/libnsl.so.1 (0x00181000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libcurl.so.4 =&gt; /usr/lib/libcurl.so.4 (0x00198000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libxml2.so.2 =&gt; /usr/lib/libxml2.so.2 (0x001ff000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libc.so.6 =&gt; /lib/tls/i686/cmov/libc.so.6 (0x00e02000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libpthread.so.0 =&gt; /lib/tls/i686/cmov/libpthread.so.0 (0x001dd000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; /lib/ld-linux.so.2 (0x00339000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libidn.so.11 =&gt; /usr/lib/libidn.so.11 (0x004ad000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; liblber-2.4.so.2 =&gt; /usr/lib/liblber-2.4.so.2 (0x0032a000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libldap_r-2.4.so.2 =&gt; /usr/lib/libldap_r-2.4.so.2 (0x004df000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libgssapi_krb5.so.2 =&gt; /usr/lib/libgssapi_krb5.so.2 (0x00526000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libssl.so.0.9.8 =&gt; /lib/i686/cmov/libssl.so.0.9.8 (0x00f5c000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libcrypto.so.0.9.8 =&gt; /lib/i686/cmov/libcrypto.so.0.9.8 (0x00fa4000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libresolv.so.2 =&gt; /lib/tls/i686/cmov/libresolv.so.2 (0x00555000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libsasl2.so.2 =&gt; /usr/lib/libsasl2.so.2 (0x1ca3d000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libgnutls.so.26 =&gt; /usr/lib/libgnutls.so.26 (0x1eb4b000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libkrb5.so.3 =&gt; /usr/lib/libkrb5.so.3 (0x14a7f000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libk5crypto.so.3 =&gt; /usr/lib/libk5crypto.so.3 (0x19f18000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libcom_err.so.2 =&gt; /lib/libcom_err.so.2 (0x13a74000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libkrb5support.so.0 =&gt; /usr/lib/libkrb5support.so.0 (0x0c97e000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libkeyutils.so.1 =&gt; /lib/libkeyutils.so.1 (0x0d073000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libtasn1.so.3 =&gt; /usr/lib/libtasn1.so.3 (0x0b5c2000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libgcrypt.so.11 =&gt; /lib/libgcrypt.so.11 (0x09524000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; libgpg-error.so.0 =&gt; /lib/libgpg-error.so.0 (0x07565000)</div></div>
<p><h2><strong>3. Debugging Info</strong></h2>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ sudo gdb ./httpd<br />
<br />
GNU gdb (GDB) 7.1-ubuntu<br />
Copyright (C) 2010 Free Software Foundation, Inc.<br />
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;<br />
This is free software: you are free to change and redistribute it.<br />
There is NO WARRANTY, to the extent permitted by law. &nbsp;Type &quot;show copying&quot;<br />
and &quot;show warranty&quot; for details.<br />
This GDB was configured as &quot;i486-linux-gnu&quot;.<br />
For bug reporting instructions, please see:<br />
&lt;http://www.gnu.org/software/gdb/bugs/&gt;...<br />
Reading symbols from /home/apache-2.2.2/bin/httpd...done.<br />
<br />
(gdb) b ap_process_request<br />
Breakpoint 1 at 0x80b2409: file http_request.c, line 252.<br />
(gdb) run -X -d /home/apache<br />
Starting program: /home/apache-2.2.2/bin/httpd -X -d /home/apache<br />
[Thread debugging using libthread_db enabled]<br />
<br />
Breakpoint 1, ap_process_request (r=0x831e390) at http_request.c:252<br />
252 &nbsp; &nbsp; &nbsp; &nbsp; if (ap_extended_status)<br />
(gdb) n<br />
235 &nbsp; &nbsp; {<br />
(gdb) n<br />
252 &nbsp; &nbsp; &nbsp; &nbsp; if (ap_extended_status)<br />
(gdb) n<br />
254 &nbsp; &nbsp; &nbsp; &nbsp; access_status = ap_run_quick_handler(r, 0); &nbsp;/* Not a look-up request */<br />
(gdb) n<br />
255 &nbsp; &nbsp; &nbsp; &nbsp; if (access_status == DECLINED) {<br />
(gdb) n<br />
256 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; access_status = ap_process_request_internal(r);<br />
(gdb) n<br />
257 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (access_status == OK) {<br />
(gdb) n<br />
258 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; access_status = ap_invoke_handler(r);<br />
(gdb) n<br />
<br />
Program received signal SIGSEGV, Segmentation fault.<br />
0x0079b611 in php_handler (r=0x831e390)<br />
&nbsp; &nbsp; at /home/kawasaki/src/php/php-5.3.3/sapi/apache2handler/sapi_apache2.c:550<br />
550 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; conf = ap_get_module_config(r-&gt;per_dir_config, &amp;php5_module);<br />
(gdb) n<br />
<br />
(gdb) bt<br />
#0 &nbsp;0x0079b611 in php_handler (r=0x831e390)<br />
&nbsp; &nbsp; at /home/kawasaki/src/php/php-5.3.3/sapi/apache2handler/sapi_apache2.c:550<br />
#1 &nbsp;0x0807aa47 in ap_run_handler (r=0x831e390) at config.c:157<br />
#2 &nbsp;0x0807db31 in ap_invoke_handler (r=0x831e390) at config.c:371<br />
#3 &nbsp;0x080b2578 in ap_process_request (r=0x831e390) at http_request.c:258<br />
#4 &nbsp;0x080af81e in ap_process_http_connection (c=0x8314348) at http_core.c:172<br />
#5 &nbsp;0x080817c7 in ap_run_process_connection (c=0x8314348) at connection.c:43<br />
#6 &nbsp;0x080cf1d4 in child_main (child_num_arg=&lt;value optimised out&gt;) at prefork.c:640<br />
#7 &nbsp;0x080cf434 in make_child (s=0x8109f78, slot=0) at prefork.c:680<br />
#8 &nbsp;0x080d01fa in ap_mpm_run (_pconf=0x81010a8, plog=0x814b1d0, s=0x8109f78)<br />
&nbsp; &nbsp; at prefork.c:956<br />
#9 &nbsp;0x0806872f in main (argc=135262496, argv=0x0) at main.c:717</div></div>
<p>参考: <a href="http://httpd.apache.org/dev/debugging.html#gdb">Apache Debugging Guide: Using gdb</a></p>
<p>落ちている箇所、php_handler (php-5.3.3/sapi/apache2handler/sapi_apache2.c:550)のソースコード</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000dd;">538</span> <span style="color: #993333;">static</span> <span style="color: #993333;">int</span> php_handler<span style="color: #009900;">&#40;</span>request_rec <span style="color: #339933;">*</span>r<span style="color: #009900;">&#41;</span><br />
<span style="color: #0000dd;">539</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #0000dd;">540</span> &nbsp; &nbsp; php_struct <span style="color: #339933;">*</span> <span style="color: #993333;">volatile</span> ctx<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">541</span> &nbsp; &nbsp; <span style="color: #993333;">void</span> <span style="color: #339933;">*</span>conf<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">542</span> &nbsp; &nbsp; apr_bucket_brigade <span style="color: #339933;">*</span> <span style="color: #993333;">volatile</span> brigade<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">543</span> &nbsp; &nbsp; apr_bucket <span style="color: #339933;">*</span>bucket<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">544</span> &nbsp; &nbsp; apr_status_t rv<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">545</span> &nbsp; &nbsp; request_rec <span style="color: #339933;">*</span> <span style="color: #993333;">volatile</span> parent_req <span style="color: #339933;">=</span> NULL<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">546</span> &nbsp; &nbsp; TSRMLS_FETCH<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">547</span><br />
<span style="color: #0000dd;">548</span> <span style="color: #339933;">#define PHPAP_INI_OFF php_apache_ini_dtor(r, parent_req TSRMLS_CC);</span><br />
<span style="color: #0000dd;">549</span><br />
<span style="color: #0000dd;">550</span> &nbsp; &nbsp; conf <span style="color: #339933;">=</span> ap_get_module_config<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>per_dir_config<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>php5_module<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">551</span><br />
<span style="color: #0000dd;">552</span> &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/* apply_config() needs r in some cases, so allocate server_context early */</span><br />
<span style="color: #0000dd;">553</span> &nbsp; &nbsp; ctx <span style="color: #339933;">=</span> SG<span style="color: #009900;">&#40;</span>server_context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">554</span> &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>ctx <span style="color: #339933;">==</span> NULL <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>ctx <span style="color: #339933;">&amp;&amp;</span> ctx<span style="color: #339933;">-&gt;</span>request_processed <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>strcmp<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>protocol<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;INCLUDED&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #0000dd;">555</span> normal<span style="color: #339933;">:</span><br />
<span style="color: #0000dd;">556</span> &nbsp; &nbsp; &nbsp; &nbsp; ctx <span style="color: #339933;">=</span> SG<span style="color: #009900;">&#40;</span>server_context<span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> apr_pcalloc<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>pool<span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>ctx<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">557</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/* register a cleanup so we clear out the SG(server_context)<br />
558 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* after each request. Note: We pass in the pointer to the<br />
559 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* server_context in case this is handled by a different thread.<br />
560 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
<span style="color: #0000dd;">561</span> &nbsp; &nbsp; &nbsp; &nbsp; apr_pool_cleanup_register<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>pool<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>SG<span style="color: #009900;">&#40;</span>server_context<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> php_server_context_cleanup<span style="color: #339933;">,</span> apr_pool_cleanup_null<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">562</span> &nbsp; &nbsp; &nbsp; &nbsp; ctx<span style="color: #339933;">-&gt;</span>r <span style="color: #339933;">=</span> r<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">563</span> &nbsp; &nbsp; &nbsp; &nbsp; ctx <span style="color: #339933;">=</span> NULL<span style="color: #339933;">;</span> <span style="color: #808080; font-style: italic;">/* May look weird to null it here, but it is to catch the right case in the first_try later on */</span><br />
<span style="color: #0000dd;">564</span> &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #0000dd;">565</span> &nbsp; &nbsp; &nbsp; &nbsp; parent_req <span style="color: #339933;">=</span> ctx<span style="color: #339933;">-&gt;</span>r<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">566</span> &nbsp; &nbsp; &nbsp; &nbsp; ctx<span style="color: #339933;">-&gt;</span>r <span style="color: #339933;">=</span> r<span style="color: #339933;">;</span><br />
<span style="color: #0000dd;">567</span> &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #0000dd;">568</span> &nbsp; &nbsp; apply_config<span style="color: #009900;">&#40;</span>conf<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>php5 モジュールの設定情報読み込み時にSegmentation fault(11)でApacheがCrashしている。 理由がわからない。とりあえず調査はここで止め、Apacheの設定ファイルからはphp5 モジュールのロード設定をはずしている。 早まった考えかもしれないがPHPを使うのやめてしまおうかと思っている今日この頃。PHPなんて。。</p>
<p>おわり</p>
<p><h2><strong>追記 2010.12.05</strong></h2>
<p>Apache-2.2.2、PHP-5.3.3共にアンインストールして再インストールしたところ問題なく動いてしまった。evidenceを集め、問題を特定する、それしかないと思い込み（だらだらと）調査していたのでとりあえず再インストールしてみる選択肢は頭になかった。結論として、（素人ぽくてアレなんだけど）困ったときは再インストールしろ &#8211; ということだ。 </p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2010/11/30/php5apache2_segmentation_fault_under_ubuntu/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=TDQj_MuszRU:s8IcnMLIt-o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=TDQj_MuszRU:s8IcnMLIt-o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2010/11/30/php5apache2_segmentation_fault_under_ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python – thisモジュール誕生にまつわる”深イイ話”</title>
		<link>http://yk55.com/blog/2010/11/14/python_good_stroy_behindthis_module_/</link>
		<comments>http://yk55.com/blog/2010/11/14/python_good_stroy_behindthis_module_/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 13:47:35 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Translation]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rot13]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=418</guid>
		<description><![CDATA[Pythonにはthisモジュールという「The Zen of Python」(参考1)を出力するだけのモジュールがある。このモジュール、中身(参考2)を見てみると分かるが、総ステップにしてわずか28行、ROT13暗号化(参考3)された文字列を復号化するだけの単純であえて記事にするには取るに足らない内容かもしれない。ただしこのモジュールが作られた背景はとても面白い。Barry Warsaw氏が記事「import this and The Zen of Python」でthisモジュールが誕生にまつわる深イイ話を紹介している。 「import this and The Zen of Python」の一部簡訳 2001年秋、Foretec Seminar社はのInternational Python Conference #10(以下IPC10、Pyconの前身となるカンファレンス)の準備をしておりPythonコミュニティからそのカンファレンスのスローガンを求めていた。スローガンはTシャツにもプリントされる予定だった。Guideや、Fred、Jeremyや著者達はかつてはForetec Seminar社に所属していたがPythonlabsを結成する2000年に同社を去っている。そしてPythonlabsはPythonコミュニティからのスローガン応募の審査と勝者の選定を担当することになった。応募は500くらいあったが、どれもひどいものだった。Timと著者は1つに絞られるまで何度となく選別作業を行い 最終的に&#8221;import this&#8221;を選んだ。理由は&#8221;import this&#8221;という言葉の持つふざけた、小バカにしたようなトーンが好きだったからという。 著者たちはこの&#8221;import this&#8221;をスローガンに選んですぐにthisモジュール(this.py)を実装した。モジュールは「The Zen of Python」を出力するだけのものだったが途中TimやGuidoの提案でrot13で暗号化して内容を少し難読化する工夫がされたりもした。IPC10が終わってすぐ、彼らはこのイベントを記念してthisモジュールをPython2.2.1ブランチにコミットした。この時、著者の提案で他の誰にも知られないようにするためにソース管理システムのチェックイン通知機能を停止し、こっそりこのモジュールをPython2.2.1のブランチに含めたのだ。これらのことは彼ら以外に誰にも知らせず内緒で行われた。著者いわく、この彼らの仕込んだeaster egg（thisモジュールのこと。ソフトウェアでいうeaster eggとは隠しコマンドとか、隠しクレジットのようなもの）が誰かに見つかるまではしばらく時間がかかったそうだ。 Barry Warsaw氏が同記事を「That was all back in the day when the Python community had a sense of humor」という一文で締めくくっているように、この記事を読むと当時のPythonコミュニティがいかにユーモア溢れたものだったのかが感じられる。phython-2.2.1がリリースされたのは2002年4月10日で、それからどれくらい経ってこのthisモジュールが発見されたのか分からないが初めて発見した人は絶対ほっこりしたことだろう。得意不得意は抜きにして自分はこのエピソードを読んでPythonという言語が好きになった。 参考1: 「The Zen of [...]]]></description>
			<content:encoded><![CDATA[<p>Pythonにはthisモジュールという「<a href="http://www.python.org/doc/humor/#the-zen-of-python">The Zen of Python</a>」(参考1)を出力するだけのモジュールがある。このモジュール、中身(参考2)を見てみると分かるが、総ステップにしてわずか28行、ROT13暗号化(参考3)された文字列を復号化するだけの単純であえて記事にするには取るに足らない内容かもしれない。ただしこのモジュールが作られた背景はとても面白い。Barry Warsaw氏が記事「<a href="http://www.wefearchange.org/2010/06/import-this-and-zen-of-python.html">import this and The Zen of Python</a>」でthisモジュールが誕生にまつわる深イイ話を紹介している。</p>
<p><strong>「<a href="http://www.wefearchange.org/2010/06/import-this-and-zen-of-python.html">import this and The Zen of Python</a>」の一部簡訳</strong></p>
<blockquote><p>2001年秋、Foretec Seminar社はのInternational Python Conference #10(以下IPC10、Pyconの前身となるカンファレンス)の準備をしておりPythonコミュニティからそのカンファレンスのスローガンを求めていた。スローガンはTシャツにもプリントされる予定だった。Guideや、Fred、Jeremyや著者達はかつてはForetec Seminar社に所属していたがPythonlabsを結成する2000年に同社を去っている。そしてPythonlabsはPythonコミュニティからのスローガン応募の審査と勝者の選定を担当することになった。応募は500くらいあったが、どれもひどいものだった。Timと著者は1つに絞られるまで何度となく選別作業を行い<br />
最終的に&#8221;import this&#8221;を選んだ。理由は&#8221;import this&#8221;という言葉の持つふざけた、小バカにしたようなトーンが好きだったからという。</p>
<p>著者たちはこの&#8221;import this&#8221;をスローガンに選んですぐにthisモジュール(this.py)を実装した。モジュールは「The Zen of Python」を出力するだけのものだったが途中TimやGuidoの提案でrot13で暗号化して内容を少し難読化する工夫がされたりもした。IPC10が終わってすぐ、彼らはこのイベントを記念してthisモジュールをPython2.2.1ブランチにコミットした。この時、著者の提案で他の誰にも知られないようにするためにソース管理システムのチェックイン通知機能を停止し、こっそりこのモジュールをPython2.2.1のブランチに含めたのだ。これらのことは彼ら以外に誰にも知らせず内緒で行われた。著者いわく、この彼らの仕込んだeaster egg（thisモジュールのこと。ソフトウェアでいうeaster eggとは隠しコマンドとか、隠しクレジットのようなもの）が誰かに見つかるまではしばらく時間がかかったそうだ。
</p></blockquote>
<p>Barry Warsaw氏が同記事を「That was all back in the day when the Python community had a sense of humor」という一文で締めくくっているように、この記事を読むと当時のPythonコミュニティがいかにユーモア溢れたものだったのかが感じられる。<a href="http://www.python.org/download/releases/2.2.1/">phython-2.2.1</a>がリリースされたのは2002年4月10日で、それからどれくらい経ってこのthisモジュールが発見されたのか分からないが初めて発見した人は絶対ほっこりしたことだろう。得意不得意は抜きにして自分はこのエピソードを読んでPythonという言語が好きになった。</p>
<p><h2><strong>参考1: 「The Zen of Python」とimport thisの出力結果</strong></h2>
<p>「<a href="http://www.python.org/doc/humor/#the-zen-of-python">The Zen of Python</a>」はPythonハッカー、Tim Petersによって書かれた有名な文章でPython設計哲学を要約したようなものと言われている。 Barry Warsaw氏の<a href="http://www.wefearchange.org/2010/06/import-this-and-zen-of-python.html">記事</a>によると起源はTim Peters氏による1999年6月4日のPython-listへの<a href="http://mail.python.org/pipermail/python-list/1999-June/616160.html">この投稿</a>のようだ。以下、Pythonインタラクティクモードでimport thisを実行し「The Zen of Python」を表示させる。</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[kawasaki@ubuntu:~] $ python<br />
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) <br />
[GCC 4.4.3] on linux2<br />
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.<br />
&gt;&gt;&gt; import this<br />
<br />
The Zen of Python, by Tim Peters<br />
<br />
Beautiful is better than ugly.<br />
Explicit is better than implicit.<br />
Simple is better than complex.<br />
Complex is better than complicated.<br />
Flat is better than nested.<br />
Sparse is better than dense.<br />
Readability counts.<br />
Special cases aren't special enough to break the rules.<br />
Although practicality beats purity.<br />
Errors should never pass silently.<br />
Unless explicitly silenced.<br />
In the face of ambiguity, refuse the temptation to guess.<br />
There should be one-- and preferably only one --obvious way to do it.<br />
Although that way may not be obvious at first unless you're Dutch.<br />
Now is better than never.<br />
Although never is often better than *right* now.<br />
If the implementation is hard to explain, it's a bad idea.<br />
If the implementation is easy to explain, it may be a good idea.<br />
Namespaces are one honking great idea -- let's do more of those!<br />
&gt;&gt;&gt;</div></div>
<p><h2><strong>参考2: this.py</strong></h2>
<p>this.pyの中身を見てみる。 意味不明なコードを次の参考3で解説するROT13で複合化することで「The Zen of Python」を出力している。<br />
<u>/usr/lib/python2.6/this.py</u></p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">s = <span style="color: #483d8b;">&quot;&quot;&quot;Gur Mra bs Clguba, ol Gvz Crgref<br />
<br />
Ornhgvshy vf orggre guna htyl.<br />
Rkcyvpvg vf orggre guna vzcyvpvg.<br />
Fvzcyr vf orggre guna pbzcyrk.<br />
Pbzcyrk vf orggre guna pbzcyvpngrq.<br />
Syng vf orggre guna arfgrq.<br />
Fcnefr vf orggre guna qrafr.<br />
Ernqnovyvgl pbhagf.<br />
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.<br />
Nygubhtu cenpgvpnyvgl orngf chevgl.<br />
Reebef fubhyq arire cnff fvyragyl.<br />
Hayrff rkcyvpvgyl fvyraprq.<br />
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.<br />
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.<br />
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.<br />
Abj vf orggre guna arire.<br />
Nygubhtu arire vf bsgra orggre guna *evtug* abj.<br />
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.<br />
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.<br />
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!&quot;&quot;&quot;</span><br />
<br />
d = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span><br />
<span style="color: #ff7700;font-weight:bold;">for</span> c <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: black;">&#40;</span><span style="color: #ff4500;">65</span>, <span style="color: #ff4500;">97</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">26</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; d<span style="color: black;">&#91;</span><span style="color: #008000;">chr</span><span style="color: black;">&#40;</span>i+c<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">chr</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>i+<span style="color: #ff4500;">13</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #ff4500;">26</span> + c<span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;&quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>d.<span style="color: black;">get</span><span style="color: black;">&#40;</span>c, c<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">for</span> c <span style="color: #ff7700;font-weight:bold;">in</span> s<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></div></div>
<p><h2><strong>参考3: ROT13</strong></h2>
<p><a href="http://en.wikipedia.org/wiki/Rot13">ROT13</a>は定められた置き換えマップにもとづいて文字を置き換えるだけの単純な暗号方式である。 次の変換マップに基づいて文字を変換するので例えばA→N、B→O、C→Pのように変換される。</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ↓↑<br />
NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm</div></div>
<p>thisモジュールではこの変換マップはグローバル変数dに格納されており、次のように表示させてみる。</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> this.<span style="color: black;">d</span><br />
<span style="color: black;">&#123;</span><span style="color: #483d8b;">'A'</span>: <span style="color: #483d8b;">'N'</span>, <span style="color: #483d8b;">'C'</span>: <span style="color: #483d8b;">'P'</span>, <span style="color: #483d8b;">'B'</span>: <span style="color: #483d8b;">'O'</span>, <span style="color: #483d8b;">'E'</span>: <span style="color: #483d8b;">'R'</span>, <span style="color: #483d8b;">'D'</span>: <span style="color: #483d8b;">'Q'</span>, <span style="color: #483d8b;">'G'</span>: <span style="color: #483d8b;">'T'</span>, <span style="color: #483d8b;">'F'</span>: <span style="color: #483d8b;">'S'</span>, <span style="color: #483d8b;">'I'</span>: <span style="color: #483d8b;">'V'</span>, <span style="color: #483d8b;">'H'</span>: <span style="color: #483d8b;">'U'</span>, <span style="color: #483d8b;">'K'</span>: <span style="color: #483d8b;">'X'</span>, <span style="color: #483d8b;">'J'</span>: <span style="color: #483d8b;">'W'</span>, <span style="color: #483d8b;">'M'</span>: <span style="color: #483d8b;">'Z'</span>, <span style="color: #483d8b;">'L'</span>: <span style="color: #483d8b;">'Y'</span>, <span style="color: #483d8b;">'O'</span>: <span style="color: #483d8b;">'B'</span>, <span style="color: #483d8b;">'N'</span>: <span style="color: #483d8b;">'A'</span>, <span style="color: #483d8b;">'Q'</span>: <span style="color: #483d8b;">'D'</span>, <span style="color: #483d8b;">'P'</span>: <span style="color: #483d8b;">'C'</span>, <span style="color: #483d8b;">'S'</span>: <span style="color: #483d8b;">'F'</span>, <span style="color: #483d8b;">'R'</span>: <span style="color: #483d8b;">'E'</span>, <span style="color: #483d8b;">'U'</span>: <span style="color: #483d8b;">'H'</span>, <span style="color: #483d8b;">'T'</span>: <span style="color: #483d8b;">'G'</span>, <span style="color: #483d8b;">'W'</span>: <span style="color: #483d8b;">'J'</span>, <span style="color: #483d8b;">'V'</span>: <span style="color: #483d8b;">'I'</span>, <span style="color: #483d8b;">'Y'</span>: <span style="color: #483d8b;">'L'</span>, <span style="color: #483d8b;">'X'</span>: <span style="color: #483d8b;">'K'</span>, <span style="color: #483d8b;">'Z'</span>: <span style="color: #483d8b;">'M'</span>, <span style="color: #483d8b;">'a'</span>: <span style="color: #483d8b;">'n'</span>, <span style="color: #483d8b;">'c'</span>: <span style="color: #483d8b;">'p'</span>, <span style="color: #483d8b;">'b'</span>: <span style="color: #483d8b;">'o'</span>, <span style="color: #483d8b;">'e'</span>: <span style="color: #483d8b;">'r'</span>, <span style="color: #483d8b;">'d'</span>: <span style="color: #483d8b;">'q'</span>, <span style="color: #483d8b;">'g'</span>: <span style="color: #483d8b;">'t'</span>, <span style="color: #483d8b;">'f'</span>: <span style="color: #483d8b;">'s'</span>, <span style="color: #483d8b;">'i'</span>: <span style="color: #483d8b;">'v'</span>, <span style="color: #483d8b;">'h'</span>: <span style="color: #483d8b;">'u'</span>, <span style="color: #483d8b;">'k'</span>: <span style="color: #483d8b;">'x'</span>, <span style="color: #483d8b;">'j'</span>: <span style="color: #483d8b;">'w'</span>, <span style="color: #483d8b;">'m'</span>: <span style="color: #483d8b;">'z'</span>, <span style="color: #483d8b;">'l'</span>: <span style="color: #483d8b;">'y'</span>, <span style="color: #483d8b;">'o'</span>: <span style="color: #483d8b;">'b'</span>, <span style="color: #483d8b;">'n'</span>: <span style="color: #483d8b;">'a'</span>, <span style="color: #483d8b;">'q'</span>: <span style="color: #483d8b;">'d'</span>, <span style="color: #483d8b;">'p'</span>: <span style="color: #483d8b;">'c'</span>, <span style="color: #483d8b;">'s'</span>: <span style="color: #483d8b;">'f'</span>, <span style="color: #483d8b;">'r'</span>: <span style="color: #483d8b;">'e'</span>, <span style="color: #483d8b;">'u'</span>: <span style="color: #483d8b;">'h'</span>, <span style="color: #483d8b;">'t'</span>: <span style="color: #483d8b;">'g'</span>, <span style="color: #483d8b;">'w'</span>: <span style="color: #483d8b;">'j'</span>, <span style="color: #483d8b;">'v'</span>: <span style="color: #483d8b;">'i'</span>, <span style="color: #483d8b;">'y'</span>: <span style="color: #483d8b;">'l'</span>, <span style="color: #483d8b;">'x'</span>: <span style="color: #483d8b;">'k'</span>, <span style="color: #483d8b;">'z'</span>: <span style="color: #483d8b;">'m'</span><span style="color: black;">&#125;</span></div></div>
<p>参考2で紹介されたthis.pyの最後の行(↓)はROT13で暗号化された文字列(s)を１つずつ取り出し変換マップdに基づいて複合化している。</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;&quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>d.<span style="color: black;">get</span><span style="color: black;">&#40;</span>c, c<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">for</span> c <span style="color: #ff7700;font-weight:bold;">in</span> s<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></div></div>
<p>ちなみにPython2系にはROT13の実装は標準で組み込まれており次のように直接decode関数に&#8217;rot13&#8242;を指定することでROT13で暗号化された文字列sを複合化することができる。</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> this.<span style="color: black;">s</span><br />
<span style="color: #483d8b;">&quot;Gur Mra bs Clguba, ol Gvz Crgref<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>Ornhgvshy vf orggre guna htyl.<span style="color: #000099; font-weight: bold;">\n</span>Rkcyvpvg vf orggre guna vzcyvpvg.<span style="color: #000099; font-weight: bold;">\n</span>Fvzcyr vf orggre guna pbzcyrk.<span style="color: #000099; font-weight: bold;">\n</span>Pbzcyrk vf orggre guna pbzcyvpngrq.<span style="color: #000099; font-weight: bold;">\n</span>Syng vf orggre guna arfgrq.<span style="color: #000099; font-weight: bold;">\n</span>Fcnefr vf orggre guna qrafr.<span style="color: #000099; font-weight: bold;">\n</span>Ernqnovyvgl pbhagf.<span style="color: #000099; font-weight: bold;">\n</span>Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.<span style="color: #000099; font-weight: bold;">\n</span>Nygubhtu cenpgvpnyvgl orngf chevgl.<span style="color: #000099; font-weight: bold;">\n</span>Reebef fubhyq arire cnff fvyragyl.<span style="color: #000099; font-weight: bold;">\n</span>Hayrff rkcyvpvgyl fvyraprq.<span style="color: #000099; font-weight: bold;">\n</span>Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.<span style="color: #000099; font-weight: bold;">\n</span>Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.<span style="color: #000099; font-weight: bold;">\n</span>Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.<span style="color: #000099; font-weight: bold;">\n</span>Abj vf orggre guna arire.<span style="color: #000099; font-weight: bold;">\n</span>Nygubhtu arire vf bsgra orggre guna *evtug* abj.<span style="color: #000099; font-weight: bold;">\n</span>Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.<span style="color: #000099; font-weight: bold;">\n</span>Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.<span style="color: #000099; font-weight: bold;">\n</span>Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!&quot;</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> this.<span style="color: black;">s</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'rot13'</span><span style="color: black;">&#41;</span><br />
u<span style="color: #483d8b;">&quot;The Zen of Python, by Tim Peters<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>Beautiful is better than ugly.<span style="color: #000099; font-weight: bold;">\n</span>Explicit is better than implicit.<span style="color: #000099; font-weight: bold;">\n</span>Simple is better than complex.<span style="color: #000099; font-weight: bold;">\n</span>Complex is better than complicated.<span style="color: #000099; font-weight: bold;">\n</span>Flat is better than nested.<span style="color: #000099; font-weight: bold;">\n</span>Sparse is better than dense.<span style="color: #000099; font-weight: bold;">\n</span>Readability counts.<span style="color: #000099; font-weight: bold;">\n</span>Special cases aren't special enough to break the rules.<span style="color: #000099; font-weight: bold;">\n</span>Although practicality beats purity.<span style="color: #000099; font-weight: bold;">\n</span>Errors should never pass silently.<span style="color: #000099; font-weight: bold;">\n</span>Unless explicitly silenced.<span style="color: #000099; font-weight: bold;">\n</span>In the face of ambiguity, refuse the temptation to guess.<span style="color: #000099; font-weight: bold;">\n</span>There should be one-- and preferably only one --obvious way to do it.<span style="color: #000099; font-weight: bold;">\n</span>Although that way may not be obvious at first unless you're Dutch.<span style="color: #000099; font-weight: bold;">\n</span>Now is better than never.<span style="color: #000099; font-weight: bold;">\n</span>Although never is often better than *right* now.<span style="color: #000099; font-weight: bold;">\n</span>If the implementation is hard to explain, it's a bad idea.<span style="color: #000099; font-weight: bold;">\n</span>If the implementation is easy to explain, it may be a good idea.<span style="color: #000099; font-weight: bold;">\n</span>Namespaces are one honking great idea -- let's do more of those!&quot;</span></div></div>
<p>おわり。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2010/11/14/python_good_stroy_behindthis_module_/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=jxwDUQ_AoiY:lxqhC9cxa5E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=jxwDUQ_AoiY:lxqhC9cxa5E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2010/11/14/python_good_stroy_behindthis_module_/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSSH -SOCKSプロキシ経由でSSH接続</title>
		<link>http://yk55.com/blog/2010/10/11/openssh_ssh_over_socks_prox/</link>
		<comments>http://yk55.com/blog/2010/10/11/openssh_ssh_over_socks_prox/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 02:15:14 +0000</pubDate>
		<dc:creator>yoichi</dc:creator>
				<category><![CDATA[Environment Setup]]></category>
		<category><![CDATA[dynamicforward]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[socks]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tcpip]]></category>

		<guid isPermaLink="false">http://yk55.com/blog/?p=411</guid>
		<description><![CDATA[外部からのssh接続を受け付けていないＬＡＮ内のサーバに外部からログインするために踏み台サーバを経由してＬＡＮ内サーバにログインするというよくある話です。今回試したのはSSHをSOCKSプロキシとして利用して、そのSOCKSプロキシ経由して目的のLAN内サーバに一発ログインする方法です。 SOCKS(RFC1928) とはさまざまなアプリケーションが間にファイアーウォールを挟んでいても安全に快適にやり取りができるようにすることを目的として作られたプロトコルのことで、SOCKSプロキシはSOCKSプロトコルを受け取りファイアウォール内外との接続を可能にします。 これに関してはIPAのコンテンツに図付きの解りやすい説明があります。参考までに > SOCKS ちなみにSOCKSプロキシの利点はSOCKS対応のアプリケーションであればSOCKSプロキシ経由でLAN内部のサーバにアクセスが可能なことで、例えばSOCKS対応ブラウザであればSOCKSプロキシ経由でLAN内のコンテンツが閲覧できます。自分はこのSOCKSプロキシ経由でのLAN内ドキュメントのブラウジングは多用してます。 SOCKSプロキシの作成 まずはSOCKSプロキシの立ち上げです。OpenSSHのダイナミックポートフォワード機能を使います。 ダイナミックポートフォワードはsshをSOCKSプロキシとして振舞うことを可能にします。sshでアクセス先ホストと DynamicFoward(-D)でポートを指定することでlocalhostにSOCKSプロキシが立ち上がり指定のTCPポート(SOCKSプロキシサーバは基本的は1080ですが、割り当て可能なポートであればどのポートでもOK)をlocalhost側からログイン先ホストのSSHサーバに転送することができるようになります。もちろん経路は暗号化され、現状のサポートプロトコルはSOCKS4とSOCKS5です。 例えばJumpサーバにDynamicFoward(-D)1080でログインすると、Jumpサーバにポート1080を転送するSOCKSプロキシが localhostに立ち上がり、そのlocalhost:1080に対してSOCKS4またはSOCKS5プロトコルで接続することでJumpサーバを経由して通信を行うことができます。 localhost ポート1080のJumpサーバへのダイナミックフォワードは次のように-Dオプションで行います。 ServerA$ ssh -2 -D 1080 -l &#60;Account&#62; &#60;JumpServer&#62; 毎回-Dオプション指定が面倒な場合は次のようにconfg(ssh_config)にDynamicForwardの記述しておきましょう。 $ cat ~/.ssh/config Host JumpServer &#160; &#160;User &#160; &#160; &#160; &#160;&#60;Account&#62; &#160; &#160;HostName &#160;JumpServeer &#160; &#160;Protocol 2 &#160; &#160;ForwardAgent &#160;yes &#160; &#160;DynamicForward 1080 SOCKSプロキシを使ったSSH接続 次に上で事前に作成したSOCKSプロキシを使ってLAN内のサーバにSSH接続をします。 netcatでSOCKSプロキシを経由してlocalhostから目的のＬＡＮ内サーバ（ServerB）間にnetcat tunnelを作成します。ServerBにはそのnetcat tunnelを通じて接続します。 ServerA$ ssh -2 [...]]]></description>
			<content:encoded><![CDATA[<p>外部からのssh接続を受け付けていないＬＡＮ内のサーバに外部からログインするために踏み台サーバを経由してＬＡＮ内サーバにログインするというよくある話です。今回試したのはSSHをSOCKSプロキシとして利用して、そのSOCKSプロキシ経由して目的のLAN内サーバに一発ログインする方法です。</p>
<p>SOCKS(<a href="http://www.ietf.org/rfc/rfc1928.txt">RFC1928</a>) とはさまざまなアプリケーションが間にファイアーウォールを挟んでいても安全に快適にやり取りができるようにすることを目的として作られたプロトコルのことで、SOCKSプロキシはSOCKSプロトコルを受け取りファイアウォール内外との接続を可能にします。 これに関してはIPAのコンテンツに図付きの解りやすい説明があります。参考までに > <a href="http://www.ipa.go.jp/security/awareness/administrator/remote/capter7/8.html">SOCKS</a></p>
<p>ちなみにSOCKSプロキシの利点はSOCKS対応のアプリケーションであればSOCKSプロキシ経由でLAN内部のサーバにアクセスが可能なことで、例えばSOCKS対応ブラウザであればSOCKSプロキシ経由でLAN内のコンテンツが閲覧できます。自分はこのSOCKSプロキシ経由でのLAN内ドキュメントのブラウジングは多用してます。</p>
<p><h2><strong>SOCKSプロキシの作成</strong></h2>
<p>まずはSOCKSプロキシの立ち上げです。OpenSSHのダイナミックポートフォワード機能を使います。</p>
<p>ダイナミックポートフォワードはsshをSOCKSプロキシとして振舞うことを可能にします。sshでアクセス先ホストと <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config">DynamicFoward(-D)</a>でポートを指定することでlocalhostにSOCKSプロキシが立ち上がり指定のTCPポート(SOCKSプロキシサーバは基本的は1080ですが、割り当て可能なポートであればどのポートでもOK)をlocalhost側からログイン先ホストのSSHサーバに転送することができるようになります。もちろん経路は暗号化され、現状のサポートプロトコルはSOCKS4とSOCKS5です。<br />
例えばJumpサーバにDynamicFoward(-D)1080でログインすると、Jumpサーバにポート1080を転送するSOCKSプロキシが localhostに立ち上がり、そのlocalhost:1080に対してSOCKS4またはSOCKS5プロトコルで接続することでJumpサーバを経由して通信を行うことができます。</p>
<p>localhost ポート1080のJumpサーバへのダイナミックフォワードは次のように-Dオプションで行います。</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ServerA$ ssh <span style="color: #339933;">-</span><span style="color: #0000dd;">2</span> <span style="color: #339933;">-</span>D <span style="color: #0000dd;">1080</span> <span style="color: #339933;">-</span>l <span style="color: #339933;">&lt;</span>Account<span style="color: #339933;">&gt;</span> <span style="color: #339933;">&lt;</span>JumpServer<span style="color: #339933;">&gt;</span></div></div>
<p>毎回-Dオプション指定が面倒な場合は次のようにconfg(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&#038;sektion=5&#038;arch=&#038;apropos=0&#038;manpath=OpenBSD+Current">ssh_config</a>)にDynamicForwardの記述しておきましょう。</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ cat ~<span style="color: #339933;">/</span>.<span style="color: #202020;">ssh</span><span style="color: #339933;">/</span>config<br />
<br />
Host JumpServer<br />
&nbsp; &nbsp;User &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">&lt;</span>Account<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp;HostName &nbsp;JumpServeer<br />
&nbsp; &nbsp;Protocol <span style="color: #0000dd;">2</span><br />
&nbsp; &nbsp;ForwardAgent &nbsp;yes<br />
&nbsp; &nbsp;DynamicForward <span style="color: #0000dd;">1080</span></div></div>
<p><h2><strong>SOCKSプロキシを使ったSSH接続</strong></h2>
<p>次に上で事前に作成したSOCKSプロキシを使ってLAN内のサーバにSSH接続をします。 <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nc">netcat</a>でSOCKSプロキシを経由してlocalhostから目的のＬＡＮ内サーバ（ServerB）間にnetcat tunnelを作成します。ServerBにはそのnetcat tunnelを通じて接続します。</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ServerA$ ssh <span style="color: #339933;">-</span><span style="color: #0000dd;">2</span> <span style="color: #339933;">-</span>l ＜Account＞ <span style="color: #339933;">-</span>o <span style="color: #ff0000;">'ProxyCommand nc -x localhost:1080 %h %p'</span> <span style="color: #339933;">&lt;</span>ServerB<span style="color: #339933;">&gt;</span></div></div>
<p>netcat のプロキシ指定は-xオプションで行います。 ここでは事前に作成したSOCKSプロキシ(localhost:1080)を指定。 netcat tunnelの作成コマンドはおなじみProxyCommandに記述します。こちらも毎回長いオプション入力を避けるために config（<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&#038;sektion=5&#038;arch=&#038;apropos=0&#038;manpath=OpenBSD+Current">ssh_config</a>）設定をしましょう。</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ cat ~<span style="color: #339933;">/</span>.<span style="color: #202020;">ssh</span><span style="color: #339933;">/</span>config<br />
<br />
Host ServerB<br />
&nbsp; &nbsp;User &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">&lt;</span>Account<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp;Protocol <span style="color: #0000dd;">2</span><br />
&nbsp; &nbsp;ForwardAgent &nbsp;yes<br />
&nbsp; &nbsp;ProxyCommand nc <span style="color: #339933;">-</span>x localhost<span style="color: #339933;">:</span><span style="color: #0000dd;">1080</span> <span style="color: #339933;">-</span>w1 <span style="color: #339933;">%</span>h <span style="color: #339933;">%</span>p</div></div>
<p><u>注意点</u><br />
netcatにはGNU本家版とそれ以外にいくつか<a href="http://ja.wikipedia.org/wiki/Netcat#.E6.B4.BE.E7.94.9F.E3.83.84.E3.83.BC.E3.83.AB">派生</a>がありますが -x オプションの利用可能なnetcatをインストールしてください。<a href="http://nc110.sourceforge.net/">オリジナルのnetcat</a>や<a href="http://netcat.sourceforge.net/">GNU netcat</a>には-xオプションはありません。ここで使用しているnetcatはIPv6に対応している<a href="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/">OpenBSD netcat</a>です。</p>
<p><h2><strong>SOCKSプロキシを経由しないでSSH接続</strong></h2>
<p>別解としてProxyCommandでJumpからBのnetcat tunnelを作成してServerＡからServerＢにログインする方法があります。詳しくは「<a href="http://dsas.blog.klab.org/archives/50765770.html">DSAS開発者の部屋:OpenSSH クライアントの proxy &#8212; 踏み台サーバを経由しての ssh</a>」を参考にしてもらうとしてここでは次のようにログインすることができます。</p>
<div class="codecolorer-container c mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ServerA$ ssh <span style="color: #339933;">-</span><span style="color: #0000dd;">2</span> <span style="color: #339933;">-</span>o <span style="color: #ff0000;">'ProxyCommand ssh &nbsp;Jump nc -w1 %h %p'</span> ServerB</div></div>
<p>ProxyCommand でプロキシ設定を行うため事前に別コンソールで何かを用意する必要がなく間違いなく楽。それと比べて事前にSOCKSプロキシを立てる必要がある SOCKSプロキシ経由のログインは面倒です。ではどうしてこんな設定を選んだのか？ 理由は単純で、当初は楽な方法で行く予定でいたものの、結局Jumpサーバがnetcatが使えない(ncはおろかsshコマンド以外ほとんど何も使えない)環境だったからです。そこでいくつか調べて行き着いたのがこのSOCKSプロキシ経由でのSSHログインだったというわけです。まさに苦肉の策。でも回り道した分少しだけOpenSSHに詳しくなりました。</p>
<p>おわり。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yk55.com/blog/2010/10/11/openssh_ssh_over_socks_prox/&amp;layout=button_count&amp;show_faces=1&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px"></iframe><div class="feedflare">
<a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=bSyBUysZ30k:pY1usdd0hnw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feed.yk55.com/~ff/yokawasa/syndication?a=bSyBUysZ30k:pY1usdd0hnw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yokawasa/syndication?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yk55.com/blog/2010/10/11/openssh_ssh_over_socks_prox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	<!-- google_ad_section_end --><!-- google_ad_section_start(weight=ignore) --></channel>
</rss>

