<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>clicktx::Tech::Memo &#187; webプログラミング</title>
	<atom:link href="http://perl.no-tubo.net/category/web%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/feed/" rel="self" type="application/rss+xml" />
	<link>http://perl.no-tubo.net</link>
	<description>perl、 MySQL、オープンソース系、ウェブ系ネタ。なぜか鯖管メモがほとんどを占めている...</description>
	<lastBuildDate>Mon, 23 Jan 2012 10:51:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/category/web%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/feed/" />
		<item>
		<title>macで形態素解析エンジン Mecab を使うときの最も簡単な方法</title>
		<link>http://perl.no-tubo.net/2011/12/22/mac%e3%81%a7%e5%bd%a2%e6%85%8b%e7%b4%a0%e8%a7%a3%e6%9e%90%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3-mecab-%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ae%e6%9c%80%e3%82%82%e7%b0%a1%e5%8d%98%e3%81%aa/</link>
		<comments>http://perl.no-tubo.net/2011/12/22/mac%e3%81%a7%e5%bd%a2%e6%85%8b%e7%b4%a0%e8%a7%a3%e6%9e%90%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3-mecab-%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ae%e6%9c%80%e3%82%82%e7%b0%a1%e5%8d%98%e3%81%aa/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 01:29:04 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[webプログラミング]]></category>
		<category><![CDATA[ web]]></category>
		<category><![CDATA[mecab]]></category>
		<category><![CDATA[形態素解析]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2405</guid>
		<description><![CDATA[以前にハマっていた形態素解析をローカル環境で試してみたいのでmacでmecabを使う方法を調べてみる。
Mecabって？
MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現Googleソ [...]]]></description>
			<content:encoded><![CDATA[<p>以前にハマっていた形態素解析をローカル環境で試してみたいのでmacでmecabを使う方法を調べてみる。</p>
<h3>Mecabって？</h3>
<blockquote><p>MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓[1][2]によって開発されている。<br />
<a href="http://ja.wikipedia.org/wiki/MeCab">MeCab &#8211; Wikipedia</a></p></blockquote>
<p>macにはmecabが標準で入っている(*1)のだけれど、文字コードがUTF-16LEみたいで使うのに工夫が必要みたい。</p>
<li>参考：<a href="http://chasen.org/~taku/blog/archives/2008/07/mac_os_x_leropa.html">きまぐれ日記: Mac OS X Leopard に「標準で」インストールされている MeCabを使ってみる</a></li>
<div style="font-size:90%">
<li>*1 <a href="http://ja.wikipedia.org/wiki/Spotlight">Spotlight &#8211; Wikipedia</a></li>
<blockquote><p>Mac OS X v10.5から、ネットワーク上の共有フォルダの検索にも対応（下記参照）、最近閲覧したWebページの検索もできるようになっている。初期の Spotlightでは日本語形態素解析が不十分だったため、Googleで使われていたMeCabを採用した（/usr/lib/、/usr/include/mecab.h 等参照）。</p></blockquote>
</div>
<p>文字コード変換とかいちいち面倒だし、UTF-8で使いたい。なので別途インストールして使う。オフィシャルからダウンロードしてビルドする方法もあるのだけれど、どうやらMacPortsでインストールするのが最善の様子。</p>
<li>参考：<a href="http://d.hatena.ne.jp/tkrd/20110122/1295660005">Rails: Mac OS では mecab を MacPorts で入れること &#8211; tkrdの日記 (rails や ubuntu のことなど)</a></li>
<p>管理も楽だし、依存関係もよきにはからってくるのでMacPortsでインストールしてみる。</p>
<h3>mecab本体と辞書のインストール</h3>
<p>MackPortsはインストールしてある前提です。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> mecab
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> mecab-ipadic-utf8</pre></div></div></div>

<p>このまま使うと文字化けしてしまうのでmecabで使う辞書をutf8のへと変更します。（デフォルトの辞書はeucになっている様子）</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>mecabrc
&nbsp;
;dicdir =  <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>mecab<span style="color: #000000; font-weight: bold;">/</span>dic<span style="color: #000000; font-weight: bold;">/</span>sysdic    ←コメントアウト
dicdir =  <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>mecab<span style="color: #000000; font-weight: bold;">/</span>dic<span style="color: #000000; font-weight: bold;">/</span>ipadic-utf8</pre></div></div></div>

<h3>mecabを使う</h3>
<p>ここまででターミナルからmecabを使うことができます。<br />
mecabを終了するにはcontrol+cです。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ mecab
&nbsp;
mecabを使う簡単な方法
mecab	名詞,一般,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>
を	助詞,格助詞,一般,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,を,ヲ,ヲ
使う	動詞,自立,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,五段・ワ行促音便,基本形,使う,ツカウ,ツカウ
簡単	名詞,形容動詞語幹,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,簡単,カンタン,カンタン
な	助動詞,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,特殊・ダ,体言接続,だ,ナ,ナ
方法	名詞,一般,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,<span style="color: #000000; font-weight: bold;">*</span>,方法,ホウホウ,ホーホー
EOS</pre></div></div></div>

<h3>各言語のバインディング</h3>
<p>各言語から使うにはバイディングをインストールする必要があります。<br />
MacPortsにはPerl用、Ruby用、Python用があるみたいですね。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ port search mecab
&nbsp;
p5-mecab <span style="color: #000000; font-weight: bold;">@</span>0.980.0 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">perl</span>, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Perl module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
p5.8-mecab <span style="color: #000000; font-weight: bold;">@</span>0.980.0 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">perl</span>, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Perl module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
p5.10-mecab <span style="color: #000000; font-weight: bold;">@</span>0.980.0 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">perl</span>, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Perl module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
p5.12-mecab <span style="color: #000000; font-weight: bold;">@</span>0.980.0 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">perl</span>, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Perl module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
p5.14-mecab <span style="color: #000000; font-weight: bold;">@</span>0.980.0 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">perl</span>, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Perl module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
py-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>python, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Python module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
py24-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>python, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Python module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
py25-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>python, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Python module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
py26-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>python, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Python module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
py27-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>python, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Python module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
rb-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>ruby, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Ruby module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
rb19-mecab <span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">0.98</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>ruby, textproc, japanese<span style="color: #7a0874; font-weight: bold;">&#41;</span>
    a Ruby module <span style="color: #000000; font-weight: bold;">for</span> MeCab
&nbsp;
Found <span style="color: #000000;">28</span> ports.</pre></div></div></div>

<p>オフィスシャルサイト<br />
MeCab: Yet Another Part-of-Speech and Morphological Analyzer<br />
<a href="http://mecab.sourceforge.net/">http://mecab.sourceforge.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/12/22/mac%e3%81%a7%e5%bd%a2%e6%85%8b%e7%b4%a0%e8%a7%a3%e6%9e%90%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3-mecab-%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ae%e6%9c%80%e3%82%82%e7%b0%a1%e5%8d%98%e3%81%aa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/12/22/mac%e3%81%a7%e5%bd%a2%e6%85%8b%e7%b4%a0%e8%a7%a3%e6%9e%90%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3-mecab-%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ae%e6%9c%80%e3%82%82%e7%b0%a1%e5%8d%98%e3%81%aa/" />
	</item>
		<item>
		<title>git初心者がmacでgithubを使うまでのTips &#8211; githubのお勉強</title>
		<link>http://perl.no-tubo.net/2011/12/18/git%e5%88%9d%e5%bf%83%e8%80%85%e3%81%8cmac%e3%81%a7github%e3%82%92%e4%bd%bf%e3%81%86%e3%81%be%e3%81%a7%e3%81%aetips-github%e3%81%ae%e3%81%8a%e5%8b%89%e5%bc%b7/</link>
		<comments>http://perl.no-tubo.net/2011/12/18/git%e5%88%9d%e5%bf%83%e8%80%85%e3%81%8cmac%e3%81%a7github%e3%82%92%e4%bd%bf%e3%81%86%e3%81%be%e3%81%a7%e3%81%aetips-github%e3%81%ae%e3%81%8a%e5%8b%89%e5%bc%b7/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 05:47:35 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[webプログラミング]]></category>
		<category><![CDATA[開発環境]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[バージョン管理]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2358</guid>
		<description><![CDATA[バージョン管理もそろそろしてみようということでgitを選択。分散型でいいらしい。git自体まだ分かっていないけど、github使ってみようという試み。
環境：mac OSX 10.6
公開鍵方式でSSHログイン出来るよう [...]]]></description>
			<content:encoded><![CDATA[<p>バージョン管理もそろそろしてみようということでgitを選択。分散型でいいらしい。git自体まだ分かっていないけど、github使ってみようという試み。</p>
<p>環境：mac OSX 10.6</p>
<h3>公開鍵方式でSSHログイン出来るようにする</h3>
<p>どうやらgithubにpushするにはSSH公開鍵を登録する必要がある様子。なので、秘密鍵と公開鍵のペアの作成から。</p>
<h4>秘密鍵と公開鍵のペアを作成</h4>
<p>ターミナルで秘密鍵と公開鍵のペアを作成する。RSA方式でよいと思われる。<br />
作業する場所はユーザーのホームディレクトリ。</p>
<p>ターミナルで ssh-keygen -t rsa で作成できる。<br />
パスフレーズは空でenterする。</p>
<p><span id="more-2358"></span></p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> <span style="color: #660033;">-t</span> rsa
&nbsp;
Generating public<span style="color: #000000; font-weight: bold;">/</span>private rsa key pair.
Enter <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #c20cb9; font-weight: bold;">which</span> to save the key <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>clicktx<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa<span style="color: #7a0874; font-weight: bold;">&#41;</span>: <span style="color: #7a0874; font-weight: bold;">&#91;</span>enter<span style="color: #7a0874; font-weight: bold;">&#93;</span>
Enter passphrase <span style="color: #7a0874; font-weight: bold;">&#40;</span>empty <span style="color: #000000; font-weight: bold;">for</span> no passphrase<span style="color: #7a0874; font-weight: bold;">&#41;</span>: <span style="color: #7a0874; font-weight: bold;">&#91;</span>enter<span style="color: #7a0874; font-weight: bold;">&#93;</span>
Enter same passphrase again: <span style="color: #7a0874; font-weight: bold;">&#91;</span>enter<span style="color: #7a0874; font-weight: bold;">&#93;</span>
Your identification has been saved <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>clicktx<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.
Your public key has been saved <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>clicktx<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx clicktx<span style="color: #000000; font-weight: bold;">@</span>MacBook.local
The key<span style="color: #ff0000;">'s randomart image is:
+--[ RSA 2048]----+
| o+.  o.+        |
|  o= o B .       |
|  o + = o .      |
|   o + o o .     |
|    o = S . .    |
|     o o     .   |
|      .       E  |
|                 |
|                 |
+-----------------+</span></pre></div></div></div>

<p>id_rsa &#8230; 秘密鍵<br />
id_rsa.pub &#8230; 公開鍵</p>
<p>ユーザーホームディレクトリに .ssh というディレクトリが作られて、その中に秘密鍵と公開鍵のペアが作成される。</p>
<h3>公開鍵を github に登録する</h3>
<p>公開鍵である id_rsa.pub の内容をgithubに登録する。id_rsa.pubの内容はターミナルなどから確認できる。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> .ssh
$ <span style="color: #c20cb9; font-weight: bold;">cat</span> id_rsa.pub 
ssh-rsa Axxxxx.....
......
.....<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">BxxxxxxJxxxxx</span>== clicktx<span style="color: #000000; font-weight: bold;">@</span>MacBook.local</pre></div></div></div>

<p>id_rsa.pub の内容の</p>
<blockquote><p>ssh-rsa Axxxxx&#8230;..<br />
&#8230;&#8230;<br />
&#8230;../BxxxxxxJxxxxx== clicktx@MacBook.local
</p></blockquote>
<p>の部分をコピーしてgithubに登録する。</p>
<p><a href="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0008.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0008-500x253.png" alt="github-Add another public key" title="github-Add another public key" width="500" height="253" class="alignnone size-medium wp-image-2369" /></a><br />
<a href="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0009.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0009-500x303.png" alt="github-Add another public key" title="github-Add another public key" width="500" height="303" class="alignnone size-medium wp-image-2371" /></a></p>
<h4>SSHの接続テスト</h4>
<p>githubに公開鍵を登録したら、接続できるかテストしてみる。接続するか聞かれるので yes とタイプしてenter。<br />
Hi <i>username</i>!&#8230;. となれば接続成功。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-T</span> <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com</pre></div></div></div>


<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">The authenticity of host <span style="color: #ff0000;">'github.com (207.97.227.239)'</span> can<span style="color: #ff0000;">'t be established.
RSA key fingerprint is 00:00:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '</span>github.com,207.97.227.239<span style="color: #ff0000;">' (RSA) to the list of known hosts.
Hi clicktx! You'</span>ve successfully authenticated, but GitHub does not provide shell access.</pre></div></div></div>

<h3>githubでリポジトリ作成</h3>
<p>試しに git-test というリポジトリを作成してみる。githubのログインページに「New Repository」があるのでそこから作成する。<br />
Project Nameにgit-testと入力してCreate Repositoryする。</p>
<p><a href="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0010.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0010-500x240.png" alt="github-Create a New Repository" title="github-Create a New Repository" width="500" height="240" class="alignnone size-medium wp-image-2378" /></a><br />
<a href="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0011.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0011-500x261.png" alt="github-Create a New Repository" title="github-Create a New Repository" width="500" height="261" class="alignnone size-medium wp-image-2379" /></a></p>
<p>作成すると次のステップとか、リポジトリのpathとかが表示される。<br />
<a href="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0012.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/12/111218-0012-500x291.png" alt="github-New Repository" title="github-New Repository" width="500" height="291" class="alignnone size-medium wp-image-2392" /></a></p>
<h3>ローカルリポジトリの作成</h3>
<p>とりあえず、先ほど作成したgithubの手順のまま実行してみる。<br />
（gitのインストールと設定はしてある前提で&#8230;;）</p>
<h4>管理するファイルを作る</h4>
<p>適当な場所（~/Docmentsとか）で作業する。<br />
管理したいファイルを入れるディレクトリ（git-test）を作って、gitの初期化を行う。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> git-test
$ <span style="color: #7a0874; font-weight: bold;">cd</span> git-test<span style="color: #000000; font-weight: bold;">/</span>
$ <span style="color: #c20cb9; font-weight: bold;">git init</span>
Initialized empty Git repository <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>clicktx<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/</span>git-test<span style="color: #000000; font-weight: bold;">/</span>.git<span style="color: #000000; font-weight: bold;">/</span></pre></div></div></div>

<p>テストファイル（とりあえずREADME）を作る。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">touch</span> README</pre></div></div></div>

<h4>gitの操作</h4>
<p>作ったファイル（README）をステージ(add)してからcommitする。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git add</span> README
$ <span style="color: #c20cb9; font-weight: bold;">git commit</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">'first commit'</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>master <span style="color: #7a0874; font-weight: bold;">&#40;</span>root-commit<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">2093860</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> first commit
 <span style="color: #000000;">0</span> files changed, <span style="color: #000000;">0</span> insertions<span style="color: #7a0874; font-weight: bold;">&#40;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>, <span style="color: #000000;">0</span> deletions<span style="color: #7a0874; font-weight: bold;">&#40;</span>-<span style="color: #7a0874; font-weight: bold;">&#41;</span>
 create mode <span style="color: #000000;">100644</span> README</pre></div></div></div>

<p>リモートのショートネームをデフォルトのショートネーム origin で登録する。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git remote</span> add origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:clicktx<span style="color: #000000; font-weight: bold;">/</span>git-test.git</pre></div></div></div>

<p>リモートであるgithubのリポジトリにpushする。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git push</span> <span style="color: #660033;">-u</span> origin master</pre></div></div></div>

<p>成功するとこんな感じでアクセスできるようになる。<br />
<a href="http://github.com/clicktx/git-test">http://github.com/clicktx/git-test</a></p>
<p>参考：</p>
<li><a href="http://blog.katsuma.tv/2009/02/first_github.html">はじめてのgithub &#8211; blog.katsuma.tv</a></li>
<li><a href="http://help.github.com/mac-set-up-git/">Help.GitHub &#8211; Set Up Git</a></li>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/12/18/git%e5%88%9d%e5%bf%83%e8%80%85%e3%81%8cmac%e3%81%a7github%e3%82%92%e4%bd%bf%e3%81%86%e3%81%be%e3%81%a7%e3%81%aetips-github%e3%81%ae%e3%81%8a%e5%8b%89%e5%bc%b7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/12/18/git%e5%88%9d%e5%bf%83%e8%80%85%e3%81%8cmac%e3%81%a7github%e3%82%92%e4%bd%bf%e3%81%86%e3%81%be%e3%81%a7%e3%81%aetips-github%e3%81%ae%e3%81%8a%e5%8b%89%e5%bc%b7/" />
	</item>
		<item>
		<title>MAMP(Apache+MySQL)を使ってローカルでらくらくperl開発</title>
		<link>http://perl.no-tubo.net/2011/12/15/manmpapachemysql%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%81%a7%e3%82%89%e3%81%8f%e3%82%89%e3%81%8fperl%e9%96%8b%e7%99%ba/</link>
		<comments>http://perl.no-tubo.net/2011/12/15/manmpapachemysql%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%81%a7%e3%82%89%e3%81%8f%e3%82%89%e3%81%8fperl%e9%96%8b%e7%99%ba/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:34:59 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[webプログラミング]]></category>
		<category><![CDATA[cpanm]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[MANP]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[開発環境]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2177</guid>
		<description><![CDATA[MAMP
Apache+MySQLサーバをmacで動作させる事ができる。macにはもともとApacheもperlもインストールされているけど、バージョンが古いし、管理も面倒なのでMANPを使うメリットはおおいにあると思う [...]]]></description>
			<content:encoded><![CDATA[<h3>MAMP</h3>
<p>Apache+MySQLサーバをmacで動作させる事ができる。macにはもともとApacheもperlもインストールされているけど、バージョンが古いし、管理も面倒なのでMANPを使うメリットはおおいにあると思う。もともとはPHP+MySQLのローカル環境を構築するためのもの&#8230;かな？</p>
<p>参考：<a href="http://gabs.cc/blog/bun/topic20090608-1456.php">Mac OS Xのローカル環境(MAMP+MacPorts)で Movable Typeを動かしてみよう &#8211; 準備編　 [ 09.06.24 update ] 【 gabs.log｜おしゃべり好きなWEB制作者のたわごと 】</a></p>
<h4>MAMPをインストール</h4>
<p><a href="http://perl.no-tubo.net/wp-content/uploads/2011/11/ad742af065c3a8cba15a777a8bb696dd.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/11/ad742af065c3a8cba15a777a8bb696dd-499x346.png" alt="MAMP" title="MAMP" width="499" height="346" class="alignnone size-medium wp-image-2180" /></a></p>
<p><a href="http://www.mamp.info/en/index.html">MAMP</a>からダウンロードしてインストールする。</p>
<h3>MacPortsのインストール</h3>
<p>makeとか使うのでXCodeが必要。OSのバージョンにあったものをダウンロードする。</p>
<li><a href="http://www.macports.org/install.php">The MacPorts Project &#8212; Download &#038; Installation</a></li>
<h4>MacPortsの初期化＆設定</h4>
<p>Terminalでコマンドを実行</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'export PATH=$PATH:/opt/local/bin:/opt/local/sbin/'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'export MANPATH=$MANPATH:/opt/local/man'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'source ~/.bashrc'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bash_profile
<span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #660033;">-d</span> selfupdate
<span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #660033;">-d</span> <span style="color: #c20cb9; font-weight: bold;">sync</span></pre></div></div></div>

<h4>perlのPATHを変更</h4>
<p>元のperlをperl.bakにリネームして、シンボリックリンクを貼る。これをしておかないと元々インストールしてあるperl(/usr/bin/perl)を参照してしまうため。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #c20cb9; font-weight: bold;">perl</span> perl.bak
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">perl</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">perl</span></pre></div></div></div>

<h3>cpanmをインストール</h3>
<p>perlモジュールを簡単にインストールできるcpanmをインストールする。</p>
<li><a href="http://artifactsauce.blogspot.com/2010/10/cpanmmac-os-x.html">ArtifactSauce: cpanmをMac OS Xにインストールする</a></li>
<p>sudoでインストールすると /opt/local/lib 以下にインストールされる。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> cpanm Mojolicious
or
cpanm <span style="color: #660033;">-S</span> Mojolicious</pre></div></div></div>

<p>ユーザー権限でインストールした場合は、ホームディレクトリ ~/perl5/lib/ 以下にインストールされるので、この場合はPATHの指定が必要。コード側に書くか、あらかじめ設定しておく必要がある。<br />
Apacheのconfigに設定するのが吉かな？</p>
<p>httpd.confに記述</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">SetEnv</span> PERL5LIB /Users/clicktx/perl5/lib/perl5</pre></div></div></div>

<li><a href="http://www.xdelta.net/wiki/Perl/@INC.html">KMsWiki: Perl/@INC &#8211; Perlのライブラリの検索PATHを格納した配列のこと。 例えば、コマンド&#8230;</a></li>
<li><a href="http://okwave.jp/qa/q3543374.html">CGIでの環境変数PERL5LIBの設定 | OKWave</a></li>
<h4>MAMPでCGI(perl)を実行できるようにする</h4>
<p>/Applications/MAMP/conf/apache/httpd.conf を編集する。自分の場合は /Applications/MAMP/htdocs以下全部で実行したいので以下の場所を変更。</p>
<p>453行目付近</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">    <span style="color: #adadad; font-style: italic;">#AddHandler cgi-script .cgi</span>
    <span style="color: #00007f;">AddHandler</span> cgi-<span style="color: #00007f;">script</span> .cgi .pl .pm ←追記</pre></div></div></div>

<p>httpd.confを編集したらMANPを再起動して設定を反映させる。</p>
<h3>CGI実行テスト</h3>
<p>/アプリケーション/MAMP/htdocs/ に test.cgiを作成する。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/env perl</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Content-type:text/html<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Hello, World!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">exit</span><span style="color: #339933;">;</span></pre></div></div></div>

<p>test.cgi に実行権を与える。</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>Applications<span style="color: #000000; font-weight: bold;">/</span>MANP<span style="color: #000000; font-weight: bold;">/</span>htdocs
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">700</span> test.cgi</pre></div></div></div>

<p>webブラウザで http://localhost/test.cgi にアクセスして表示されたら成功。</p>
<p>ちなみにMAMPの読み方はまんｐーでいいんじゃないでしょうか？</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/12/15/manmpapachemysql%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%81%a7%e3%82%89%e3%81%8f%e3%82%89%e3%81%8fperl%e9%96%8b%e7%99%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/12/15/manmpapachemysql%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%81%a7%e3%82%89%e3%81%8f%e3%82%89%e3%81%8fperl%e9%96%8b%e7%99%ba/" />
	</item>
		<item>
		<title>Business::PayPal::API::ExpressCheckoutで住所とか氏名とかの日本語が正しく送れない理由</title>
		<link>http://perl.no-tubo.net/2011/12/12/businesspaypalapiexpresscheckout%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%a8%e3%81%8b%e6%b0%8f%e5%90%8d%e3%81%a8%e3%81%8b%e3%81%ae%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e9%80%81/</link>
		<comments>http://perl.no-tubo.net/2011/12/12/businesspaypalapiexpresscheckout%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%a8%e3%81%8b%e6%b0%8f%e5%90%8d%e3%81%a8%e3%81%8b%e3%81%ae%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e9%80%81/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 12:24:36 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[PayPal]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Business::PayPal::API]]></category>
		<category><![CDATA[SOAP::Lite]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=1851</guid>
		<description><![CDATA[PerlでPayPalのExpressCheckoutを実装するのにBusiness::PayPal::APIを使っているのだけれど、日本語（2byte文字）がうまく送信できない。
UTF-8で送ろうが、フラグ付きにしよ [...]]]></description>
			<content:encoded><![CDATA[<p>PerlでPayPalのExpressCheckoutを実装するのにBusiness::PayPal::APIを使っているのだけれど、日本語（2byte文字）がうまく送信できない。</p>
<p>UTF-8で送ろうが、フラグ付きにしようが、だ。</p>
<p>散々悩んだ挙句、原因はSOAP::Liteが勝手にbase64エンコードするからだと判明。</p>
<p>Business::PayPal::APIは内部でSOAP::Liteを使用していて、Asciiだとそのままなのだけれど、それ以外はbase64にエンコードする仕様の様子。</p>
<p>前々から、例えば、OrderDescription に日本語を使うと上手くいかないと思っていたのだけれど、、、。<br />
仕方がないから Business::PayPal::API::ExpressCheckoutをカスタマイズする。</p>
<p>/usr/lib/perl5/site_perl/5.8.8/Business/PayPal/API/ExpressCheckout.pm</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">    <span style="color: #666666; font-style: italic;">## add all the other fields</span>
    <span style="color: #b1b100;">for</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$field</span> <span style="color: #009900;">&#40;</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%types</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">next</span> <span style="color: #b1b100;">unless</span> <span style="color: #000066;">defined</span> <span style="color: #0000ff;">$args</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$field</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'MaxAmount'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">push</span> <span style="color: #0000ff;">@secrd</span><span style="color: #339933;">,</span> SOAP<span style="color: #339933;">::</span><span style="color: #006600;">Data</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">name</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$field</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$args</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">type</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$types</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span>
              <span style="color: #339933;">-&gt;</span><span style="color: #006600;">attr</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#123;</span>currencyID <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$currencyID</span><span style="color: #339933;">,</span> xmlns <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">C_xmlns_ebay</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #666666; font-style: italic;">## 追記ココから</span>
        <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$field</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'Address'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@addr</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$hash</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$args</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$f</span> <span style="color: #009900;">&#40;</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%$hash</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
               <span style="color: #000066;">push</span> <span style="color: #0000ff;">@addr</span><span style="color: #339933;">,</span>  SOAP<span style="color: #339933;">::</span><span style="color: #006600;">Data</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">name</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$f</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">type</span><span style="color: #009900;">&#40;</span>string <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$args</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$f</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$obj</span> <span style="color: #339933;">=</span> SOAP<span style="color: #339933;">::</span><span style="color: #006600;">Data</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">name</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$field</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">\SOAP</span><span style="color: #339933;">::</span><span style="color: #006600;">Data</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">value</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">@addr</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">push</span> <span style="color: #0000ff;">@secrd</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$obj</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #666666; font-style: italic;">## 追記ココまで</span>
        <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">push</span> <span style="color: #0000ff;">@secrd</span><span style="color: #339933;">,</span> SOAP<span style="color: #339933;">::</span><span style="color: #006600;">Data</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">name</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$field</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$args</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">type</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$types</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$field</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>SOAPなんて使ってたらダメだね&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/12/12/businesspaypalapiexpresscheckout%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%a8%e3%81%8b%e6%b0%8f%e5%90%8d%e3%81%a8%e3%81%8b%e3%81%ae%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e9%80%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/12/12/businesspaypalapiexpresscheckout%e3%81%a7%e4%bd%8f%e6%89%80%e3%81%a8%e3%81%8b%e6%b0%8f%e5%90%8d%e3%81%a8%e3%81%8b%e3%81%ae%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e9%80%81/" />
	</item>
		<item>
		<title>MojoliciousアプリをCGIとして動作させる時は、静的ファイルの扱いに注意が必要</title>
		<link>http://perl.no-tubo.net/2011/11/28/mojolicious%e3%82%a2%e3%82%a6%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92cgi%e3%81%a8%e3%81%97%e3%81%a6%e5%8b%95%e4%bd%9c%e3%81%95%e3%81%9b%e3%82%8b%e6%99%82%e3%81%af%e3%80%81/</link>
		<comments>http://perl.no-tubo.net/2011/11/28/mojolicious%e3%82%a2%e3%82%a6%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92cgi%e3%81%a8%e3%81%97%e3%81%a6%e5%8b%95%e4%bd%9c%e3%81%95%e3%81%9b%e3%82%8b%e6%99%82%e3%81%af%e3%80%81/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 01:30:11 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mojolicious]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[speedyCGI]]></category>
		<category><![CDATA[webアプリケーション]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2106</guid>
		<description><![CDATA[MojoliciousアプリケーションをCGIで動かす時に、スタイルシートや外部JavaScriptファイル、画像など静的ファイルの扱いには注意が必要になる。
これはテンプレートでタグヘルパーを使った時、例えば

Sel [...]]]></description>
			<content:encoded><![CDATA[<p>MojoliciousアプリケーションをCGIで動かす時に、スタイルシートや外部JavaScriptファイル、画像など静的ファイルの扱いには注意が必要になる。</p>
<p>これはテンプレートでタグヘルパーを使った時、例えば</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">    <span style="color: #339933;">&lt;%=</span> stylesheet <span style="color: #ff0000;">'/css/style.css'</span> <span style="color: #339933;">%&gt;</span></pre></div></div></div>

<p>とスタイルシートを読み込んだつもりだけど、これはスタイルシートを読み込むCGIを実行するのと同じ（スタイルシートのURLにリダイレクト処理するCGIとして実行される）<br />
静的ファイルを呼び出す回数分のCGIが実行されることになるので、パフォーマンスも悪くなることは当然ながら、データベースの接続処理をstartup内でしていたりすると実行回数分の接続を行う事となる。</p>
<p>以前speedyCGIとしてMojoliciousアプリケーションを動作させていた時に、MySQLの最大同時接続数が異常になってMySQLサーバがダウンした事もある。</p>
<p><a href="http://d.hatena.ne.jp/perlcodesample/20101224/1300598136">MojoliciousでCSSなどの静的ファイルを利用する &#8211; サンプルコードによるPerl入門</a></p>
<blockquote><p>　ローカル環境で試験をするときは、組み込みのWebサーバーがCSSなどの静的ファイルをディスパッチしてくれるので、パフォーマンスの問題は起こりません。一方さくらのレンタルサーバーではCGIというプロトコルを利用してWebアプリケーションを起動しています。CGIというプロトコルはひとつのアクセスに対してひとつのプロセスを立ち上げます。プロセスの起動という処理はとても時間がかかるので、静的ファイルをCGIでディスパッチするとパフォーマンスの劣化が顕著に見られることになります。</p></blockquote>
<p>リンク先にあるように、組み込みのwebサーバやその他のプリフォークサーバ（starman等）ならば問題ないのかもしれない。まぁ、それ自体がwebサーバとして動作するものなので当然といえば当然か。</p>
<p>CGIとして動作させる場合の解決策としてmod_rewriteの利用が提唱されている。.httaccess(またはhttpd.conf)でApacheが静的ファイルは静的ファイルとして処理するようにmod_rewriteルールを設定する。</p>
<p>もう一つ解決する方法としては、タグヘルパーを使わずに</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #339933;">&lt;</span><span style="color: #990000;">link</span> href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/css/style.css&quot;</span> media<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;screen&quot;</span> rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;stylesheet&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/css&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div></div>

<p>などと直接タグを書いてしまう方法。これはデプロイするときにディレクトリ構成が変わったりすると後々面倒（テンプレートをすべて修正する必要があるとか）なので、推奨される方法ではないのかもしれないけれど。</p>
<p>MojoliciousをCGI動作させていてパフォーマンスがイマイチだな・・・と思っているなら調べてみるといいかもしれない。</p>
<p>App.pmとかのstartup()内に</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">sub</span> startup <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">warn</span> <span style="color: #ff0000;">'warn CGI run.'</span><span style="color: #339933;">;</span>
    <span style="color: #339933;">....</span>
<span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>等としてアプルケーションを実行するとapacheのエラーログに記録されるので1度の実行で複数行のログが残っていたらその行数分アプリケーションが実行されていることになる。</p>
<h3>Apacheでデプロイする様々な方法</h3>
<p><a href="https://github.com/kraih/mojo/wiki/Apache-deployment">Apache deployment &#8211; GitHub</a><br />
Apache/CGI にmod_rewriteの設定が記述されている。その中の Pretty &#8220;Web 2.0&#8243; URLs という項目は参考になる。</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/11/28/mojolicious%e3%82%a2%e3%82%a6%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92cgi%e3%81%a8%e3%81%97%e3%81%a6%e5%8b%95%e4%bd%9c%e3%81%95%e3%81%9b%e3%82%8b%e6%99%82%e3%81%af%e3%80%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/11/28/mojolicious%e3%82%a2%e3%82%a6%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92cgi%e3%81%a8%e3%81%97%e3%81%a6%e5%8b%95%e4%bd%9c%e3%81%95%e3%81%9b%e3%82%8b%e6%99%82%e3%81%af%e3%80%81/" />
	</item>
		<item>
		<title>Aptana Studio 3起動時に Sending Ping&#8230; エラーが出るときの対処方法を探していたら初期設定できなくなった</title>
		<link>http://perl.no-tubo.net/2011/11/22/aptana-studio-3%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%ab-sending-ping-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e5%87%ba%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e5%af%be%e5%87%a6%e6%96%b9%e6%b3%95%e3%82%92/</link>
		<comments>http://perl.no-tubo.net/2011/11/22/aptana-studio-3%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%ab-sending-ping-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e5%87%ba%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e5%af%be%e5%87%a6%e6%96%b9%e6%b3%95%e3%82%92/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 00:03:52 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[開発環境]]></category>
		<category><![CDATA[Aptana Studio]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2249</guid>
		<description><![CDATA[Apatana Studioで何かのプラグインを追加したあたりから起動時に以下のようなエラーが出るようになった。

エラー内容：&#8221;Sending Ping&#8230;&#8221; 中に内部エラーが発生しま [...]]]></description>
			<content:encoded><![CDATA[<p>Apatana Studioで何かのプラグインを追加したあたりから起動時に以下のようなエラーが出るようになった。</p>
<p><a href="http://perl.no-tubo.net/wp-content/uploads/2011/11/111121-0002.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/11/111121-0002.png" alt="111121-0002" title="111121-0002" width="409" height="299" class="alignnone size-full wp-image-2250" /></a></p>
<blockquote><p>エラー内容：&#8221;Sending Ping&#8230;&#8221; 中に内部エラーが発生しました。<br />
org/apache/derby/iapi/error/ShutdownException</p></blockquote>
<p>ググッてみると、Apatana Usage をオフにするといいような発言があったので試してみる。<br />
初期設定＞一般＞開始およびシャットダウン</p>
<p><a href="http://perl.no-tubo.net/wp-content/uploads/2011/11/111121-0003.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/11/111121-0003-500x408.png" alt="111121-0003" title="111121-0003" width="500" height="408" class="alignnone size-medium wp-image-2252" /></a></p>
<p>Aptanaを再起動してみるもエラーが出る。</p>
<p>で、すべてのチェックを外して起動してみた。<br />
エラーは出なくなった。かわりに初期設定が出来なくなった&#8230;orz。</p>
<p>結局クリーンインストール。<br />
日本語化、テーマ変更（Eclipse Color Themes）、EPICをインストルしただけの状態の起動項目を記録しておく。<br />
<a href="http://perl.no-tubo.net/wp-content/uploads/2011/11/f4ef1dc504627728d83037201b3ae59f.png"><img src="http://perl.no-tubo.net/wp-content/uploads/2011/11/f4ef1dc504627728d83037201b3ae59f-500x421.png" alt="aptana初期 起動項目" title="aptana初期 起動項目" width="500" height="421" class="alignnone size-medium wp-image-2276" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/11/22/aptana-studio-3%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%ab-sending-ping-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e5%87%ba%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e5%af%be%e5%87%a6%e6%96%b9%e6%b3%95%e3%82%92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/11/22/aptana-studio-3%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%ab-sending-ping-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e5%87%ba%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e5%af%be%e5%87%a6%e6%96%b9%e6%b3%95%e3%82%92/" />
	</item>
		<item>
		<title>Mojoliciousで設定ファイルを読み込んで値を使う時のTips</title>
		<link>http://perl.no-tubo.net/2011/10/15/mojolicious%e3%81%a7%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e5%80%a4%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82%e3%81%aetips/</link>
		<comments>http://perl.no-tubo.net/2011/10/15/mojolicious%e3%81%a7%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e5%80%a4%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82%e3%81%aetips/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 04:48:32 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mojolicious]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2088</guid>
		<description><![CDATA[configファイルの読み込み
設定ファイルを読み込む / Mojoliciousリファレンス &#8211; サンプルコードによるPerl入門 
　設定(コンフィグ)ファイルを読み込むにはMojolicious::Pl [...]]]></description>
			<content:encoded><![CDATA[<h3>configファイルの読み込み</h3>
<p><a href="http://d.hatena.ne.jp/perlcodesample/20110718/1315269985">設定ファイルを読み込む / Mojoliciousリファレンス &#8211; サンプルコードによるPerl入門</a> </p>
<blockquote><p>　設定(コンフィグ)ファイルを読み込むにはMojolicious::Plugin::Configを利用します。</p></blockquote>
<p>というように、Mojoliciousアプリで設定ファイルを使う事ができる。例えば etc/MyApp.conf を読み込むには以下のような感じ。 stash_keyはオプションで設定できる(デフォルトはconfig?)</p>
<p>etc/MyApp.conf</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># MyApp config</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># サービス名</span>
    SARVICE_NAME <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'hogehoge'</span><span style="color: #339933;">,</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># 配列のリファレンス等</span>
    CATEGORY <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>MyApp.pm</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000066;">package</span> MyApp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> startup <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$self</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># コンフィグファイル読み込み</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$config</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">plugin</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'config'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> file <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'etc/MyApp.conf'</span><span style="color: #339933;">,</span> stash_key <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'conf'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #339933;">....</span>
<span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>読み込みはリンク先に詳しく書かれている。</p>
<h3>configで設定された値を使う</h3>
<p>コントローラーとかで使う</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #000066;">index</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$self</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">#my $config = $self-&gt;stash('conf');</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$config</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">config</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$service_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$config</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>SARVICE_NAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;"># or </span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$service_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">config</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'SARVICE_NAME'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #339933;">....</span>
<span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>テンプレートで使う</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">    <span style="color: #339933;">&lt;%=</span> stash<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'conf'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>SARVICE_NAME<span style="color: #009900;">&#125;</span> <span style="color: #339933;">%&gt;</span>
    <span style="color: #339933;">&lt;%=</span> config<span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>SARVICE_NAME<span style="color: #009900;">&#125;</span> <span style="color: #339933;">%&gt;</span>
    <span style="color: #339933;">&lt;%=</span> config<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'SARVICE_NAME'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%&gt;</span></pre></div></div></div>

<p>オブジェクト指向的には config()で取得したほうがいいのかな？</p>
<p>テンプレートで使うには</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #339933;">&lt;%=</span> config <span style="color: #ff0000;">'SARVICE_NAME'</span> <span style="color: #339933;">%&gt;</span></pre></div></div></div>

<p>がタイプが一番少ないようだ。</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/10/15/mojolicious%e3%81%a7%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e5%80%a4%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82%e3%81%aetips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/10/15/mojolicious%e3%81%a7%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e5%80%a4%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82%e3%81%aetips/" />
	</item>
		<item>
		<title>MojoliciousでDBIx::CustomやDBIx::Connectorを使う時</title>
		<link>http://perl.no-tubo.net/2011/10/14/mojolicious%e3%81%a7dbixcustom%e3%82%84dbixconnector%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82/</link>
		<comments>http://perl.no-tubo.net/2011/10/14/mojolicious%e3%81%a7dbixcustom%e3%82%84dbixconnector%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 08:42:33 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[Mojolicious]]></category>
		<category><![CDATA[perlモジュール]]></category>
		<category><![CDATA[DBIx::Custom]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=2085</guid>
		<description><![CDATA[すぐ忘れるし、どこにあったか分からなくなるのでメモ。
Mojolicious &#8211; GitHubより引用

Selec All Code:    package MyApp;
&#160;
    use Mo [...]]]></description>
			<content:encoded><![CDATA[<p>すぐ忘れるし、どこにあったか分からなくなるのでメモ。</p>
<p><a href="https://github.com/yuki-kimoto/DBIx-Custom/wiki/Mojolicious">Mojolicious &#8211; GitHub</a>より引用</p>

<div class="my_syntax_box"><span class="my_syntax_selecall"><a href="javascript:;" onclick="selectCode(this); return false;">Selec All</a> </span><span class="my_syntax_Bar">Code:</span><div class="my_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">    <span style="color: #000066;">package</span> MyApp<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">use</span> Mojo<span style="color: #339933;">::</span><span style="color: #006600;">Base</span> <span style="color: #ff0000;">'Mojolicious'</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">use</span> DBIx<span style="color: #339933;">::</span><span style="color: #006600;">Custom</span><span style="color: #339933;">;</span>
&nbsp;
    has dbi <span style="color: #339933;">=&gt;</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$dbi</span> <span style="color: #339933;">=</span> DBIx<span style="color: #339933;">::</span><span style="color: #006600;">Custom</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">return</span> <span style="color: #0000ff;">$dbi</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">sub</span> startup <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$self</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">### YOU MUST NOT CALL dbi() method in starup().</span>
    <span style="color: #009900;">&#125;</span></pre></div></div></div>

<p>リンク先にはBad Exampleもあるので参考に。</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/10/14/mojolicious%e3%81%a7dbixcustom%e3%82%84dbixconnector%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/10/14/mojolicious%e3%81%a7dbixcustom%e3%82%84dbixconnector%e3%82%92%e4%bd%bf%e3%81%86%e6%99%82/" />
	</item>
		<item>
		<title>CentOS5.5にZend Optimizerをインストール</title>
		<link>http://perl.no-tubo.net/2011/09/08/centos5-5%e3%81%abzend-optimizer%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/</link>
		<comments>http://perl.no-tubo.net/2011/09/08/centos5-5%e3%81%abzend-optimizer%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 10:21:41 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[インストールメモ]]></category>
		<category><![CDATA[Zend Optimizer]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=1939</guid>
		<description><![CDATA[Live Commerceを使うのにはZend Optimizerが必要なのでインストールする。
CentOS5.5(32bit)
PHP 5.2.16
ダウンロード
ダウンロード場所がわかりにくいので注意
※Zend  [...]]]></description>
			<content:encoded><![CDATA[<p>Live Commerceを使うのにはZend Optimizerが必要なのでインストールする。</p>
<p>CentOS5.5(32bit)<br />
PHP 5.2.16</p>
<h3>ダウンロード</h3>
<p>ダウンロード場所がわかりにくいので注意<br />
※Zend OptimizerをダウンロードするにはMyZendに登録する必要がある。<br />
<a href="http://www.zend.co.jp/">ゼンド・ジャパン株式会社</a></p>
<p>ダウンロード＞Zend Guard＞loader＞linux＞ZendOptimizer-3.x.x-linux-glibc23-xxx.tar.gz<br />
※ xの部分はPHPのバージョンやOSによって異なる<br />
当方の環境では ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz だった。</p>
<h3>設置</h3>
<p>ダウンロードしたファイルを解凍する。</p>
<pre>$ tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz</pre>
<p>PHPのバージョンに対応した ZendOptimizer.so を /usr/lib/php/modules へ設置する。<br />
※自分の環境では ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp の中にあるものを使用。</p>
<pre>$ cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
$ sudo mv ZendOptimizer.so /usr/lib/php/modules</pre>
<h3>php.iniの設定</h3>
<pre># vi /etc/php.ini
追記
[Zend]
zend_extension=/usr/lib/php/modules/ZendOptimizer.so
zend_optimizer.optimization_level=15</pre>
<p>Apache再起動</p>
<pre># service httpd restart</pre>
<p>参考：</p>
<li><a href="http://sysdevnote.at.webry.info/201102/article_2.html">【環境構築３】PHPをインストールする のんき者のシステム開発ノート（ってかメモ）/ウェブリブログ </a></li>
<li><a href="http://linuxserver.jp/プログラミング/PHP/ZendOptimizerのインストール.php">Zend Optimizer のインストール | Linuxで自宅サーバ構築 </a></li>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/09/08/centos5-5%e3%81%abzend-optimizer%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/09/08/centos5-5%e3%81%abzend-optimizer%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/" />
	</item>
		<item>
		<title>JavaScriptの document.getElementById() でnullが帰る対処</title>
		<link>http://perl.no-tubo.net/2011/08/24/javascript%e3%81%ae-document-getelementbyid-%e3%81%a7null%e3%81%8c%e5%b8%b0%e3%82%8b%e5%af%be%e5%87%a6/</link>
		<comments>http://perl.no-tubo.net/2011/08/24/javascript%e3%81%ae-document-getelementbyid-%e3%81%a7null%e3%81%8c%e5%b8%b0%e3%82%8b%e5%af%be%e5%87%a6/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 00:16:23 +0000</pubDate>
		<dc:creator>clicktx</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=1927</guid>
		<description><![CDATA[とあるスクリプトで最初の実行時には正常に動作するのだけれど、同一ページを再訪問（リロードではなく）した時に不具合が出た。
webkit系のブラウザで不具合が確認できたのだけれど、どうやらgetElementById()で [...]]]></description>
			<content:encoded><![CDATA[<p>とあるスクリプトで最初の実行時には正常に動作するのだけれど、同一ページを再訪問（リロードではなく）した時に不具合が出た。</p>
<p>webkit系のブラウザで不具合が確認できたのだけれど、どうやらgetElementById()でnullが帰っている様子。</p>
<p>ググってみると同じような現象で悩んでいる人もいるみたい。DOM構築前だとnullが帰る事もあるのが原因のようだ。</p>
<p>onLoadイベントとかはjQuery使っているのなら簡単に実装できるのだけれど、純粋JSで書いているスクリプトだし、他所様に配信するスクリプトなので解決方法を探る。</p>
<p>jQuery使っているのなら、$.ready(function(){&#8230;}) でいいのだろうけど、そうはいかない。じゃあ、onLoadイベントに登録すればいい。いいのだけど、onLoadイベントは１つしか実行できないので工夫が必要になる。</p>
<li><a href="http://lets-customize.seesaa.net/article/101533572.html">Javascript　onloadが複数ある場合の対処法　～FancyZoomとCubeブログシールを共存させる : ブログ・カスタマイズ徒然記</a></li>
<p>ここら辺の記事を参考に <a href="http://www.tek-tips.com/faqs.cfm?fid=4862">How to use multiple window.onload events with external scripts &#8211; Javascript FAQ &#8211; Tek-Tips</a> にある addOnloadEvent を組み込んで対処する。</p>
<p>処理的には document.write() でかいたHTML中にあるIDが付いたタグの中に別処理で作成したHTMLを放り込むもの。</p>
<p>実行したい関数には引数を指定しているので、<br />
addOnloadEvent(function(){ print_image(hoge,fuga) });<br />
みたいな感じにすればonLoadイベントとして実行してくれる。</p>
<p>そうすることで、getElementById()でnullが帰らなくなる。</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2011/08/24/javascript%e3%81%ae-document-getelementbyid-%e3%81%a7null%e3%81%8c%e5%b8%b0%e3%82%8b%e5%af%be%e5%87%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://perl.no-tubo.net/2011/08/24/javascript%e3%81%ae-document-getelementbyid-%e3%81%a7null%e3%81%8c%e5%b8%b0%e3%82%8b%e5%af%be%e5%87%a6/" />
	</item>
	</channel>
</rss>

