<?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://feeds.feedburner.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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>帶著筆記學程式</title>
	
	<link>http://studio.zeuik.com</link>
	<description>筆記中就只有程式與所想</description>
	<lastBuildDate>Thu, 23 Feb 2012 11:31:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/seekstudio/wp" /><feedburner:info uri="seekstudio/wp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>FreeBSD Git 安裝筆記 (2)</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/h9O4tKaaLT8/</link>
		<comments>http://studio.zeuik.com/?p=1120#comments</comments>
		<pubDate>Thu, 23 Feb 2012 11:31:08 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[伺服器]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[enable]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitweb]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[修正]]></category>
		<category><![CDATA[問題]]></category>
		<category><![CDATA[安裝]]></category>
		<category><![CDATA[權限]]></category>
		<category><![CDATA[測試]]></category>
		<category><![CDATA[目錄]]></category>
		<category><![CDATA[筆記]]></category>
		<category><![CDATA[複製]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[解決方法]]></category>
		<category><![CDATA[輸出]]></category>
		<category><![CDATA[錯誤]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1120</guid>
		<description><![CDATA[這篇主要是修正之前那篇 FreeBSD install Git and GitWeb 記錄的問題 解決了某些輸入密碼和 git shell 不能用的情況 &#160;# 切到 git 用戶測試 &#160;su git &#160; &#160;# 可能會輸出以下錯誤 &#160;fatal: Interactive ... ]]></description>
			<content:encoded><![CDATA[<p>這篇主要是修正之前那篇 FreeBSD install Git and GitWeb 記錄的問題<br />
解決了某些輸入密碼和 git shell 不能用的情況</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;"># 切到 git 用戶測試</span></li>
<li><span style="color: Gray;">&nbsp;su git</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 可能會輸出以下錯誤</span></li>
<li><span style="color: Gray;">&nbsp;fatal: Interactive git shell is not enabled.</span></li>
<li><span style="color: Gray;">&nbsp;hint: ~/git-shell-commands should exist and have read and execute access.</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 解決方法是複製 git-shell-commands 目錄到 git 用戶目錄</span></li>
<li><span style="color: Gray;">&nbsp;cd /home/git</span></li>
<li><span style="color: Gray;">&nbsp;cp -Rf /usr/local/share/git-core/contrib/git-shell-commands .</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 再來改變權限</span></li>
<li><span style="color: Gray;">&nbsp;chown -R git: git-shell-commands/</span></li>
<li><span style="color: Gray;">&nbsp;chmod +x git-shell-commands/help</span></li>
<li><span style="color: Gray;">&nbsp;chmod +x git-shell-commands/list</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 找出 git-shell 位置</span></li>
<li><span style="color: Gray;">&nbsp;which git-shell</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 之後修改 git 用戶的 shell 到剛才找出的位置</span></li>
<li><span style="color: Gray;">&nbsp;chsh -s /usr/local/bin/git-shell git</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 注意</span></li>
<li><span style="color: Gray;">&nbsp;- 最後確保 /home/git/.ssh/authorized_keys 內的 key 是正確</span></li>
<li><span style="color: Gray;">&nbsp;- 再測試在自機測試 clone 遠端的 repo,應該就不需要密碼了</span></li>
<li><span style="color: Gray;">&nbsp;- 例如遠端目錄的樣子是: /home/git/work/core.git</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;git clone git@example.com:work/core.git</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/h9O4tKaaLT8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1120</feedburner:origLink></item>
		<item>
		<title>JavaScript Prototype (原型鏈) 小記</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/C9EcIphEnpI/</link>
		<comments>http://studio.zeuik.com/?p=1118#comments</comments>
		<pubDate>Wed, 22 Feb 2012 05:12:19 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ini]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[代碼]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[實現]]></category>
		<category><![CDATA[解決]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1118</guid>
		<description><![CDATA[事緣剛上線後不久.. 就和網友討論到JavaScript的Prototype(原型鏈), 在討論中大家都寫了一小點的代碼來討論一些事情, 所以記錄一下相關的實現方法, 兩個版本都參考了jQuery的實現,感覺奇技淫巧 這... ]]></description>
			<content:encoded><![CDATA[<p>事緣剛上線後不久..<br />
就和網友討論到JavaScript的Prototype(原型鏈),<br />
在討論中大家都寫了一小點的代碼來討論一些事情,<br />
所以記錄一下相關的實現方法,<br />
兩個版本都參考了jQuery的實現,感覺奇技淫巧</p>
<p>這是朋友在解決問後提供的版本</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Olive;">&lt;</span><span style="color: Gray;"> !</span><span style="color: #00008b;">doctype</span><span style="color: Gray;"> </span><span style="color: #00008b;">html</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">lang</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">zh-tw</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Attr: [</span><span style="color: Olive;">&lt;</span><span style="color: Green;">em</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">attr</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">title</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">huge, gigantic</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">large</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">em</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">].</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;(function(){</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; window.$=function(c,o){</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; console.log(this.init?'&gt;&gt; Init':'&gt;&gt; New Class');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; return this.init?this.init(c,o):new $(c,o);</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; };</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; $.fn=$.prototype={</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; init:function(c){</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('init');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this[0]=document.getElementById(/^[^</span><span style="color: Olive;">&lt;</span><span style="color: Gray;"> ]*(&lt;(.|\</span><span style="color: #00008b;">s</span><span style="color: Gray;">)+</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">)[^&gt;]*$|^#(\w+)$/.exec(c)[3]);</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return this;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; },</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; html:function(c){</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('html');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return this[0].innerHTML;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; };</span></li>
<li><span style="color: Gray;">&nbsp;})();</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;alert($('#attr').html());</span></li>
<li><span style="color: Gray;">&nbsp;alert($('#attr').html());</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li></ol></div></div>
<p>之後是我修改和重寫後的faker版本</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Olive;">&lt;</span><span style="color: Gray;"> !</span><span style="color: #00008b;">doctype</span><span style="color: Gray;"> </span><span style="color: #00008b;">html</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">lang</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">zh-tw</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Attr: [</span><span style="color: Olive;">&lt;</span><span style="color: Green;">em</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">attr</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">title</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">huge, gigantic</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">large</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">em</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">].</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Attr: [</span><span style="color: Olive;">&lt;</span><span style="color: Green;">em</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">attr2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">title</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">huge, gigantic</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">large2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">em</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">].</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;var faker = (function(){</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; var faker = function(id) {</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; console.log('New Class');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; return new faker.fn.init(id);</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; };</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; faker.fn = faker.prototype ={</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; init: function(id) {</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('init');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.fakerObject = window.document.getElementById(id);</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return this;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; },</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; html:function() {</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('html');</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return this.fakerObject.innerHTML;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; };</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; faker.fn.init.prototype = faker.fn;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; return window.faker = window.$ = faker;</span></li>
<li><span style="color: Gray;">&nbsp;})();</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;console.log(&quot;第一次&quot;); alert(faker('attr').html());</span></li>
<li><span style="color: Gray;">&nbsp;console.log(&quot;第二次&quot;); alert(faker('attr2').html());</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/C9EcIphEnpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1118</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1118</feedburner:origLink></item>
		<item>
		<title>CloudFoundry 中部署 Node.js+MongoDB</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/Aal7udEhYO8/</link>
		<comments>http://studio.zeuik.com/?p=1114#comments</comments>
		<pubDate>Thu, 09 Feb 2012 14:11:41 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[Node.js]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[dir]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[expressjs]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[like]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[pass]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[rvm]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[state]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[內容]]></category>
		<category><![CDATA[同時]]></category>
		<category><![CDATA[問題]]></category>
		<category><![CDATA[套件]]></category>
		<category><![CDATA[安裝]]></category>
		<category><![CDATA[應用]]></category>
		<category><![CDATA[指令]]></category>
		<category><![CDATA[文件]]></category>
		<category><![CDATA[更新]]></category>
		<category><![CDATA[查看]]></category>
		<category><![CDATA[檔案]]></category>
		<category><![CDATA[測試]]></category>
		<category><![CDATA[環境]]></category>
		<category><![CDATA[登入]]></category>
		<category><![CDATA[目錄]]></category>
		<category><![CDATA[網址]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[設定]]></category>
		<category><![CDATA[註冊]]></category>
		<category><![CDATA[資料]]></category>
		<category><![CDATA[連結]]></category>
		<category><![CDATA[部署]]></category>
		<category><![CDATA[電郵]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1114</guid>
		<description><![CDATA[大約記錄一下部署到 CloudFoundry 的情況 &#160;# 建立一個獨立的環境來安裝需要的 VMC 指令 &#160;rvm gemset create cloudfoundry &#160;rvm gemset use cloudfoundry &#160;gem install vmc --no-rdoc --no-ri &#160; &#160;# 安裝完成... ]]></description>
			<content:encoded><![CDATA[<p>大約記錄一下部署到 CloudFoundry 的情況</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;"># 建立一個獨立的環境來安裝需要的 VMC 指令</span></li>
<li><span style="color: Gray;">&nbsp;rvm gemset create cloudfoundry</span></li>
<li><span style="color: Gray;">&nbsp;rvm gemset use cloudfoundry</span></li>
<li><span style="color: Gray;">&nbsp;gem install vmc --no-rdoc --no-ri</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 安裝完成後可以查看可用指令</span></li>
<li><span style="color: Gray;">&nbsp;vmc --help</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 先設定 API 位置之後登入</span></li>
<li><span style="color: Gray;">&nbsp;vmc target api.cloudfoundry.com</span></li>
<li><span style="color: Gray;">&nbsp;vmc login</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 登入時會出現以下介面</span></li>
<li><span style="color: Gray;">&nbsp;Email: [輸入註冊時的電郵]</span></li>
<li><span style="color: Gray;">&nbsp;Password: [輸入註冊時的位置]</span></li>
<li><span style="color: Gray;">&nbsp;Successfully logged into [http://api.cloudfoundry.com]</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 之後進入到自己的專案位置</span></li>
<li><span style="color: Gray;">&nbsp;# 同時通過 NPM 安裝依賴套件</span></li>
<li><span style="color: Gray;">&nbsp;cd ~/Project/Path</span></li>
<li><span style="color: Gray;">&nbsp;npm install</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 第一次新建的應用通過以下指令部署</span></li>
<li><span style="color: Gray;">&nbsp;vmc push</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 第一次時會有以下問題出現</span></li>
<li><span style="color: Gray;">&nbsp;Would you like to deploy from the current directory? [yN]: y</span></li>
<li><span style="color: Gray;">&nbsp;Application Name: [ProjectName] (應用名字)</span></li>
<li><span style="color: Gray;">&nbsp;Application Deployed URL: '[ProjectName] (應用名字).cloudfoundry.com'?</span></li>
<li><span style="color: Gray;">&nbsp;Detected a Node.js Application, is this correct? [yN]: y</span></li>
<li><span style="color: Gray;">&nbsp;Memory Reservation [Default:64M] (64M, 128M, 256M, 512M, 1G or 2G)</span></li>
<li><span style="color: Gray;">&nbsp;Creating Application: OK</span></li>
<li><span style="color: Gray;">&nbsp;Would you like to bind any services to '[ProjectName] (應用名字)'? [yN]: y</span></li>
<li><span style="color: Gray;">&nbsp;The following system services are available</span></li>
<li><span style="color: Gray;">&nbsp;1: mongodb</span></li>
<li><span style="color: Gray;">&nbsp;2: mysql</span></li>
<li><span style="color: Gray;">&nbsp;3: postgresql</span></li>
<li><span style="color: Gray;">&nbsp;4: rabbitmq</span></li>
<li><span style="color: Gray;">&nbsp;5: redis</span></li>
<li><span style="color: Gray;">&nbsp;Please select one you wish to provision: 1</span></li>
<li><span style="color: Gray;">&nbsp;Specify the name of the service [mongodb-隨機數]: </span></li>
<li><span style="color: Gray;">&nbsp;Creating Service: OK</span></li>
<li><span style="color: Gray;">&nbsp;Binding Service [mongodb-隨機數]: OK</span></li>
<li><span style="color: Gray;">&nbsp;Uploading Application:</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; Checking for available resources: OK</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; Processing resources: OK</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; Packing application: OK</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; Uploading (2K): OK&nbsp; &nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;Push Status: OK</span></li>
<li><span style="color: Gray;">&nbsp;Staging Application: OK</span></li>
<li><span style="color: Gray;">&nbsp;Starting Application: OK</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 當部署完成後可以通過以下網址查看</span></li>
<li><span style="color: Gray;">&nbsp;http://[ProjectName].cloudfoundry.com</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 當需要更新整個應用時,進入相應目錄後用以下指令</span></li>
<li><span style="color: Gray;">&nbsp;vmc update [ProjectName]</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 當需要查看相關應用文件時(應用的檔案,日誌記錄)</span></li>
<li><span style="color: Gray;">&nbsp;vmc files [ProjectName]</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 上面的指令就會列出關於這個專案的目錄</span></li>
<li><span style="color: Gray;">&nbsp;- app (整個應用存放於此)</span></li>
<li><span style="color: Gray;">&nbsp;- logs (應用的日誌記錄)</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 輸入以下指令就可以進入對應目錄查看有什麼檔案</span></li>
<li><span style="color: Gray;">&nbsp;vmc files [ProjectName] logs</span></li>
<li><span style="color: Gray;">&nbsp;- stdout.log</span></li>
<li><span style="color: Gray;">&nbsp;- stderr.log</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 執行以下指令則會列出這檔案的內容</span></li>
<li><span style="color: Gray;">&nbsp;vmc files [ProjectName] logs/stdout.log</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 當部署應用屬於 Node.js 時需要注意以下幾點</span></li>
<li><span style="color: Gray;">&nbsp;1. 應用的 port, host 需要由 ENV 中取得</span></li>
<li><span style="color: Gray;">&nbsp;2. 目前測試時 require(&quot;abc.json&quot;) 會發生錯 (可能版本不同)</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;關於第一點可以通過以下方法修改 (以 expressjs 為例)</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;var port = (process.env.VMC_APP_PORT || 3000);</span></li>
<li><span style="color: Gray;">&nbsp;var host = (process.env.VCAP_APP_HOST || 'localhost');</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;app.listen(port, host);</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;否則可能會出現以下情況</span></li>
<li><span style="color: Gray;">&nbsp;Application state is undetermined, not enough information available.</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;如果還是解決不了可以再看上面的方法查看 stderr.log 了解</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 再者當部署的資料庫是 Node.js 時需要注意連結部份</span></li>
<li><span style="color: Gray;">&nbsp;if(process.env.VCAP_SERVICES){</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; var env = JSON.parse(process.env.VCAP_SERVICES);</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; var dsnObject = env['mongodb-1.8'][0]['credentials'];</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; var mongoDSN = &quot;mongodb://&quot; + dsnObject.username + &quot;:&quot; + dsnObject.password + &quot;@&quot; + dsnObject.hostname + &quot;:&quot; + dsnObject.port + &quot;/&quot; + dsnObject.db;</span></li>
<li><span style="color: Gray;">&nbsp;}else{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; var mongoDSN = &quot;mongodb://localhost/database&quot;;</span></li>
<li><span style="color: Gray;">&nbsp;}</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/Aal7udEhYO8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1114</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1114</feedburner:origLink></item>
		<item>
		<title>ExpressJS View 中共用/分享/全域變數</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/GFoiLhJ0lKs/</link>
		<comments>http://studio.zeuik.com/?p=1112#comments</comments>
		<pubDate>Fri, 03 Feb 2012 11:10:20 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[Node.js]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[dex]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[expressjs]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[title]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[代碼]]></category>
		<category><![CDATA[內容]]></category>
		<category><![CDATA[共用]]></category>
		<category><![CDATA[設定]]></category>
		<category><![CDATA[設置]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1112</guid>
		<description><![CDATA[在 app.js 的設定中設置 view options 這個值的內容,如: &#160;app.configure(function(){ &#160;&#160; &#160; app.set('view options', { &#160;&#160; &#160; &#160; &#160; siteTitle: config.siteTitle &#160;&#160; &#160; }) &#160;}); 而原來的... ]]></description>
			<content:encoded><![CDATA[<p>在 app.js 的設定中設置 view options 這個值的內容,如:</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Blue;">app</span><span style="color: Gray;">.</span><span style="color: Blue;">configure</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Olive;">)</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">app</span><span style="color: Gray;">.</span><span style="color: Blue;">set</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">view options</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">siteTitle</span><span style="color: Gray;">: </span><span style="color: Blue;">config</span><span style="color: Gray;">.</span><span style="color: Blue;">siteTitle</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div></div>
<p>而原來的頁面代碼就會長得像這樣:</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Blue;">app</span><span style="color: Gray;">.</span><span style="color: Blue;">get</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">req</span><span style="color: Gray;">, </span><span style="color: Blue;">res</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">res</span><span style="color: Gray;">.</span><span style="color: Blue;">render</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">index/index</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div></div>
<p>之後就可以直接在模版中使用 siteTitle 這變數</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;">!!!</span></li>
<li><span style="color: Gray;">&nbsp;html</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; head</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; title= siteTitle</span></li></ol></div></div>
<p>除了設置 view options 的內容外,<br />
也可以通過注冊 helper 這類方法實現</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Blue;">app</span><span style="color: Gray;">.</span><span style="color: Blue;">helpers</span><span style="color: Olive;">(</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">config</span><span style="color: Gray;">: </span><span style="color: Blue;">config</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div></div>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;">!!!</span></li>
<li><span style="color: Gray;">&nbsp;html</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; head</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; title= config.site_name</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/GFoiLhJ0lKs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1112</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1112</feedburner:origLink></item>
		<item>
		<title>node-dev 套件無法顯示 growl 提示訊息</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/1_Vr2EovG14/</link>
		<comments>http://studio.zeuik.com/?p=1110#comments</comments>
		<pubDate>Fri, 03 Feb 2012 10:55:01 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[Node.js]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node-dev]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[套件]]></category>
		<category><![CDATA[安裝]]></category>
		<category><![CDATA[指令]]></category>
		<category><![CDATA[提示]]></category>
		<category><![CDATA[查看]]></category>
		<category><![CDATA[檔案]]></category>
		<category><![CDATA[測試]]></category>
		<category><![CDATA[網站]]></category>
		<category><![CDATA[訊息]]></category>
		<category><![CDATA[錯誤]]></category>
		<category><![CDATA[顯示]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1110</guid>
		<description><![CDATA[之前在開發時,會使用 forever 套件來作為簡化重啟部驟 有時候發生了錯誤,還待到終端機看情況,不太方便 後來發現 node-dev 後就比較方便了,因為他結合了 growl 的提示 但使用前必須先裝上 growlnotif... ]]></description>
			<content:encoded><![CDATA[<p>之前在開發時,會使用 forever 套件來作為簡化重啟部驟<br />
有時候發生了錯誤,還待到終端機看情況,不太方便<br />
後來發現 node-dev 後就比較方便了,因為他結合了 growl 的提示<br />
但使用前必須先裝上 growlnotify 指令,記錄一下</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;"># 查看是否已有 growlnotify</span></li>
<li><span style="color: Gray;">&nbsp;which growlnotify</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 如果沒有題示路徑則安裝</span></li>
<li><span style="color: Gray;">&nbsp;1. 去往 http://growl.info/ 網站</span></li>
<li><span style="color: Gray;">&nbsp;2. 到 Download 頁面 http://growl.info/downloads</span></li>
<li><span style="color: Gray;">&nbsp;3. 下載名為 GrowlNotify 1.3 的檔案並安裝</span></li>
<li><span style="color: Gray;">&nbsp;4. 之後再測試上面的 which 指令就可以了</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/1_Vr2EovG14" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1110</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1110</feedburner:origLink></item>
		<item>
		<title>Sublime Text 2 代碼高亮 Jade, Stylus</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/GDOIPH_7v44/</link>
		<comments>http://studio.zeuik.com/?p=1109#comments</comments>
		<pubDate>Thu, 02 Feb 2012 12:13:57 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[Sublime Text]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[編輯器]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[dir]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[Sublime Text 2]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[代碼]]></category>
		<category><![CDATA[安裝]]></category>
		<category><![CDATA[設定]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1109</guid>
		<description><![CDATA[&#160;# 切到 Sublime Text 2 Packages &#160;cd &#34;~/Library/Application Support/Sublime Text 2/Packages&#34; &#160; &#160;# 安裝 Jade Package &#160;git clone https://github.com/miksago/jade-tmbundle.git Jade &#160; &#160;# 安裝 Stylus Package &#16... ]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;"># 切到 Sublime Text 2 Packages</span></li>
<li><span style="color: Gray;">&nbsp;cd &quot;~/Library/Application Support/Sublime Text 2/Packages&quot;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 安裝 Jade Package</span></li>
<li><span style="color: Gray;">&nbsp;git clone https://github.com/miksago/jade-tmbundle.git Jade</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 安裝 Stylus Package</span></li>
<li><span style="color: Gray;">&nbsp;mkdir Stylus &amp;&amp; cd Stylus</span></li>
<li><span style="color: Gray;">&nbsp;git clone https://github.com/LearnBoost/stylus.git tmp</span></li>
<li><span style="color: Gray;">&nbsp;mv tmp/editors/Stylus.tmbundle/* .</span></li>
<li><span style="color: Gray;">&nbsp;rm -Rf tmp </span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;# 最後重啟 Sublime Text 再設定 Syntax 就可以了</span></li>
<li><span style="color: Gray;">&nbsp;# 可以根據上一篇文章</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/GDOIPH_7v44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1109</feedburner:origLink></item>
		<item>
		<title>Sublime Text 2 預設副檔名高亮代碼</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/aQG1uBYvnRM/</link>
		<comments>http://studio.zeuik.com/?p=1108#comments</comments>
		<pubDate>Thu, 02 Feb 2012 11:59:43 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[Sublime Text]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[編輯器]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[Settings]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[Sublime Text 2]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[代碼]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[加入]]></category>
		<category><![CDATA[實現]]></category>
		<category><![CDATA[設置]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1108</guid>
		<description><![CDATA[之前在加入 CoffeeScript 支持時, 可以通過修改 Package/User 下的 .sublime-settings 來實現預設支持 &#160;{ &#160;&#160; &#160; &#34;extensions&#34;: [&#34;coffeescript&#34;] &#160;} 在 Build: 2139 後可以直接在 UI 界面設置 &... ]]></description>
			<content:encoded><![CDATA[<p>之前在加入 CoffeeScript 支持時,<br />
可以通過修改 Package/User 下的 .sublime-settings 來實現預設支持</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &quot;extensions&quot;: [&quot;coffeescript&quot;]</span></li>
<li><span style="color: Gray;">&nbsp;}</span></li></ol></div></div>
<p>在 Build: 2139 後可以直接在 UI 界面設置</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;">1. Open Sublime Text 2</span></li>
<li><span style="color: Gray;">&nbsp;2. Open a file which file extension want to set. </span></li>
<li><span style="color: Gray;">&nbsp;3. Goto View &gt; Syntax &gt; Open all with current extension as...</span></li>
<li><span style="color: Gray;">&nbsp;4. Make language syntax checked</span></li></ol></div></div>
<p>最後關閉並重新開啟 Sublime Text 2 就可以</p>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/aQG1uBYvnRM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1108</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1108</feedburner:origLink></item>
		<item>
		<title>解決 iTerm2 不打開預設 Windows</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/n4jfaDwqQ-k/</link>
		<comments>http://studio.zeuik.com/?p=1107#comments</comments>
		<pubDate>Tue, 31 Jan 2012 10:49:00 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[編輯器]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[gen]]></category>
		<category><![CDATA[iterm2]]></category>
		<category><![CDATA[range]]></category>
		<category><![CDATA[save]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[問題]]></category>
		<category><![CDATA[更新]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[解決方法]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1107</guid>
		<description><![CDATA[事緣更新 iTerm2 後,在頻煩便用時, 每次都要多按 Command+N 來打開 Window 真不爽, 發現原來很多人也有同樣問題,所以記錄一下目前解決方法, 自機版本: Build 1.0.0.20120123 &#160;1. 執行 iTerm2 &#160;2. Command+... ]]></description>
			<content:encoded><![CDATA[<p>事緣更新 iTerm2 後,在頻煩便用時,<br />
每次都要多按 Command+N 來打開 Window 真不爽,<br />
發現原來很多人也有同樣問題,所以記錄一下目前解決方法,</p>
<p>自機版本: Build 1.0.0.20120123</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Gray;">1. 執行 iTerm2</span></li>
<li><span style="color: Gray;">&nbsp;2. Command+N 打開 Window</span></li>
<li><span style="color: Gray;">&nbsp;3. Menu 上選擇 Window &gt; Save Window Arrangement (Shift+Command+S)</span></li>
<li><span style="color: Gray;">&nbsp;4. 之後再到 Preferences &gt; General &gt; Startup &gt; Open default window arrangement (設為選取)</span></li>
<li><span style="color: Gray;">&nbsp;5. 之後重開後就會自動打開剛才的 window 了 </span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;* 如第4點不能選請先重開 iTerm2 再試</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/n4jfaDwqQ-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1107</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1107</feedburner:origLink></item>
		<item>
		<title>由樹的節點取得他的路徑</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/U586TiEFsLU/</link>
		<comments>http://studio.zeuik.com/?p=1105#comments</comments>
		<pubDate>Tue, 17 Jan 2012 06:31:19 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[整合]]></category>
		<category><![CDATA[案子]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1105</guid>
		<description><![CDATA[因為案子的需要.. 所以在 stackoverflow 找到了以下這個方法 可以直接整合進之前的 Tree Class 中.. 記錄一下 &#160;&#60;?php &#160;function&#160;get_node_path($from_array, $lookup) { &#160;&#160; &#160; if&#160;(array_key_exis... ]]></description>
			<content:encoded><![CDATA[<p>因為案子的需要..<br />
所以在 stackoverflow 找到了以下這個方法<br />
可以直接整合進之前的 Tree Class 中..<br />
記錄一下</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">get_node_path</span><span style="color: Olive;">(</span><span style="color: #00008b;">$from_array</span><span style="color: Gray;">, </span><span style="color: #00008b;">$lookup</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">array_key_exists</span><span style="color: Olive;">(</span><span style="color: #00008b;">$lookup</span><span style="color: Gray;">, </span><span style="color: #00008b;">$from_array</span><span style="color: Olive;">)</span><span style="color: Gray;"> === </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #00008b;">$lookup</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$from_array</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$key</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$sub_array</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">is_array</span><span style="color: Olive;">(</span><span style="color: #00008b;">$sub_array</span><span style="color: Olive;">)</span><span style="color: Gray;"> === </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ret</span><span style="color: Gray;"> = </span><span style="color: Blue;">get_node_path</span><span style="color: Olive;">(</span><span style="color: #00008b;">$sub_array</span><span style="color: Gray;">, </span><span style="color: #00008b;">$lookup</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ret</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ret</span><span style="color: Olive;">[</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$key</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$ret</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">null</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">?&gt;</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/U586TiEFsLU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1105</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1105</feedburner:origLink></item>
		<item>
		<title>處理 PayPal 的 IPN 返回</title>
		<link>http://feedproxy.google.com/~r/seekstudio/wp/~3/0Z0t9A0A8Qg/</link>
		<comments>http://studio.zeuik.com/?p=1103#comments</comments>
		<pubDate>Tue, 03 Jan 2012 07:14:13 +0000</pubDate>
		<dc:creator>Zeuxis</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[back]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[ini]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[ipn]]></category>
		<category><![CDATA[keyword]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[like]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[ns]]></category>
		<category><![CDATA[Number]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[save]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Session]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[strlen]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[urlencode]]></category>
		<category><![CDATA[代碼]]></category>
		<category><![CDATA[學習]]></category>
		<category><![CDATA[檔案]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[處理]]></category>
		<category><![CDATA[載入]]></category>
		<category><![CDATA[返回]]></category>
		<guid isPermaLink="false">http://studio.zeuik.com/?p=1103</guid>
		<description><![CDATA[這程式早在十月份時已經完成. 是寫給當時應一位朋友用於學習和請教的. 原來還沒記錄在這裡..代碼節錄如下: &#160;&#60;?php &#160;// 載入必要的檔案,如 init.php / config.php 之類的 .... &#160; &#160;$paypal... ]]></description>
			<content:encoded><![CDATA[<p>這程式早在十月份時已經完成.<br />
是寫給當時應一位朋友用於學習和請教的.<br />
原來還沒記錄在這裡..代碼節錄如下:</p>
<div class="hl-surround"><div class="hl-main"><ol class="hl-main ln-hide" title="Double click to show line number." ondblclick = "linenumber(this)"><li>&nbsp;<span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> 載入必要的檔案,如 init.php / config.php 之類的 ....</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$paypal_url</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$config</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">payment</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">paypal_url</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Parse url</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Gray;"> = </span><span style="color: Blue;">parse_url</span><span style="color: Olive;">(</span><span style="color: #00008b;">$paypal_url</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Build post string</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$post_data</span><span style="color: Gray;"> = </span><span style="color: Blue;">http_build_query</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_POST</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&amp;cmd=_notify-validate</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Set the port number</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">scheme</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">https</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$ssl</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ssl://</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">port</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">443</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">port</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">80</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;">Create paypal connection</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$fp</span><span style="color: Gray;"> = @</span><span style="color: Blue;">fsockopen</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ssl</span><span style="color: Gray;">.</span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">host</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: #00008b;">$parsed_paypal_url</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">port</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: #00008b;">$error_number</span><span style="color: Gray;">, </span><span style="color: #00008b;">$error_string</span><span style="color: Gray;">, </span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//</span><span style="color: #ffa500;">Error checking</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">file_put_contents</span><span style="color: Olive;">(</span><span style="color: Blue;">CACHE_ROOT</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">/ipn.txt</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$error_number</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> - </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$error_string</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">POST </span><span style="color: #00008b;">{$parsed_paypal_url['path']}</span><span style="color: Red;"> HTTP/1.1</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Host: </span><span style="color: #00008b;">{$parsed_paypal_url['host']}</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-type: application/x-www-form-urlencoded</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-length: </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: Blue;">strlen</span><span style="color: Olive;">(</span><span style="color: #00008b;">$post_data</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Connection: close</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fputs</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #00008b;">$post_data</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: Navy;">\r</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Response from the server</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">feof</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$info</span><span style="color: Olive;">[</span><span style="color: Olive;">]</span><span style="color: Gray;"> = @</span><span style="color: Blue;">fgets</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: Maroon;">1024</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Blue;">fclose</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$info</span><span style="color: Gray;"> = </span><span style="color: Blue;">implode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$info</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Get back the invoice info (Request::post like $_POST['KEYWORD'])</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$item_name</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">item_name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$item_number</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">item_number</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$payment_status</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">payment_status</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$payment_amount</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">mc_gross</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$payment_currency</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">mc_currency</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$txn_id</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">txn_id</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$receiver_email</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">receiver_email</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$payer_email</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">payer_email</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$invoice_number</span><span style="color: Gray;"> = </span><span style="color: Blue;">Request</span><span style="color: Gray;">::</span><span style="color: Blue;">post</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">invoice</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Check the response info have or not verified keyword</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">preg_match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/VERIFIED/i</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$info</span><span style="color: Olive;">)</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">file_put_contents</span><span style="color: Olive;">(</span><span style="color: Blue;">CACHE_ROOT</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">/ipn.txt</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Verified</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//</span><span style="color: #ffa500;"> Save to log</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$table</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Table</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">payment</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$invoice_number</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">invoice_number</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$table</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">status</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">completed</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$table</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">update_at</span><span style="color: Gray;"> = </span><span style="color: Blue;">time</span><span style="color: Olive;">(</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$table</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">renew</span><span style="color: Olive;">(</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">file_put_contents</span><span style="color: Olive;">(</span><span style="color: Blue;">CACHE_ROOT</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">/ipn.txt</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Not Verified</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Session</span><span style="color: Gray;">::</span><span style="color: Blue;">set</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">payment_status</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">?&gt;</span></li></ol></div></div>
<img src="http://feeds.feedburner.com/~r/seekstudio/wp/~4/0Z0t9A0A8Qg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://studio.zeuik.com/?feed=rss2&amp;p=1103</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://studio.zeuik.com/?p=1103</feedburner:origLink></item>
	</channel>
</rss>

