<?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/"
	>

<channel>
	<title>DreamersLab</title>
	<atom:link href="http://dreamerslab.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://dreamerslab.com/blog</link>
	<description>No Boundaries No Limitation</description>
	<lastBuildDate>Thu, 18 Sep 2014 04:36:32 +0000</lastBuildDate>
	<language>tw</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>如何在 Windows 上設定 node.js 的開發環境</title>
		<link>http://dreamerslab.com/blog/tw/how-to-setup-a-node-js-development-environment-on-windows/</link>
		<comments>http://dreamerslab.com/blog/tw/how-to-setup-a-node-js-development-environment-on-windows/#comments</comments>
		<pubDate>Tue, 29 May 2012 13:53:03 +0000</pubDate>
		<dc:creator>fred</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=1061</guid>
		<description><![CDATA[安裝 node.js 在 Windows 上安裝 node.js 非常容易，只要去 node.js 官網下載 Windows installer，然後執行 Windows installer 安裝 Node.js ，這樣就安裝好了。 安裝 mongoDB 去 mongoDB 官網下載相對應版本的壓縮檔，再把壓縮檔的內容解壓縮到你想要擺的位置。mongoDB 的初始設定是把資料存在 \data\db ，但是 mongoDB 不會自動產生這個資料夾，所以我們必須自己開，可以在檔案總管裡面新增，也可以在終端機底下輸入： 開好資料夾之後，點擊 your_mongodb_path\bin 底下的 mongod.exe 或是到終端機輸入以下指令啟動 mongoDB： 然後就可以雙擊 mongo.exe 或是在終端機輸入以下指令進到 administrative shell： 恭喜，你已經安裝好 node.js 跟 &#8230; <a href="http://dreamerslab.com/blog/tw/how-to-setup-a-node-js-development-environment-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/how-to-setup-a-node-js-development-environment-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用 Express 和 MongoDB 寫一個 todo list</title>
		<link>http://dreamerslab.com/blog/tw/write-a-todo-list-with-express-and-mongodb/</link>
		<comments>http://dreamerslab.com/blog/tw/write-a-todo-list-with-express-and-mongodb/#comments</comments>
		<pubDate>Tue, 29 May 2012 13:50:39 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[mongoose]]></category>
		<category><![CDATA[todo]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=1029</guid>
		<description><![CDATA[練習一種語言或是 framework 最快的入門方式就是寫一個 todo list 了. 他包含了基本的 C.R.U.D. ( 新增, 讀取, 更新, 刪除 ). 這篇文章將用 node.js 裡最通用的 framework Express 架構 application 和 MongoDB 來儲存資料. ＊＊更新＊＊ Express 目前為 4.x，和下面教學的 3.x 不太一樣。我更新了在 Github 上的原始碼，你可以參考比較一下。 原始檔 請見 github &#124; Download &#124; Live Demo &#8230; <a href="http://dreamerslab.com/blog/tw/write-a-todo-list-with-express-and-mongodb/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/write-a-todo-list-with-express-and-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>六個知名專案管理工具之比較及推薦</title>
		<link>http://dreamerslab.com/blog/tw/comparing-5-project-management-tools/</link>
		<comments>http://dreamerslab.com/blog/tw/comparing-5-project-management-tools/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 06:55:21 +0000</pubDate>
		<dc:creator>fred</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[basecamp]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[redmine]]></category>
		<category><![CDATA[trello]]></category>
		<category><![CDATA[wrike]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=940</guid>
		<description><![CDATA[在比較之前，先描述一下怎麼樣的專案管理解決方案或是服務會讓我想要購買並使用：有很方便的成員管理系統，讓使用者可以很方便的新增成員、管理成員的權限，刪除成員。有很方便的待辦事項管理系統跟狀況回報系統，讓使用者可以很輕鬆的新增、修改、評論、刪除項目，甚至可以透過 email 新增項目，項目要顯示的很清楚，畫面要乾淨。有很清楚的甘特圖跟行事曆可以讓使用者一眼就可以看清楚整理的計畫跟部分詳細項目。可以幫專案寫上詳細的說明文件。有很精準的搜尋系統。以下是五個知名專案管理解決方案的比較：Redmine優點：Redimne 是免費的！如果會安裝也會維護的話，可以省下不少錢。彈性的角色管理。有甘特圖跟日曆功能可以使用。開 issue 跟開 ticket 很方便。支援透過電子郵件新增問題。有繁體中文介面可以使用。缺點：要自己安裝，而且電腦要裝好 Ruby on Rails 的環境，這對一般使用者來說就是一個頗高的門檻。官網的完整介紹： RedimneGithub優點：只要可以願意公開一切專案跟細節的話，就可以免費使用。Issue 搭配上 Milestone 的圖表可以一目了然所有 Milestone 進行的狀況。跟 Git 有很密切的整合，在 commit message 裡面有下關鍵字的話就可以透過 commit 直接把 issue 標記為已完成也可以幫 issue 新增回應。例如，要把 35 號 issue 標記為已完成，只要在 commit message 裡的某處加上 “close #35&#8243;（close 也可以用 closes，closed，fixes，fixed &#8230; <a href="http://dreamerslab.com/blog/tw/comparing-5-project-management-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/comparing-5-project-management-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>node.js events</title>
		<link>http://dreamerslab.com/blog/tw/node-js-events/</link>
		<comments>http://dreamerslab.com/blog/tw/node-js-events/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 10:15:23 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=682</guid>
		<description><![CDATA[Javascript 是一個事件驅動的語言. 這也是讓 node.js 這麼受矚目最重要的因素之一. Javascript 運作起來就像人一樣, 舉例來說下面有五件事情需要去達成, 分別是 正常人會先泡泡麵, 在等水煮開的時候去接電話和上廁所. 當泡麵主好後把他給吃了然後丟進垃圾桶. 但是非事件觸發的語言像是 PHP 要達成這個目標就比較困難一點了. 如果是用像 javascript 這種事件驅動的語言就不會是這個樣子了. 但是上面的範例還是行不通. steps.js &#124; 包含了上面需要做的動作 pee.js &#124; 尿尿的動作 phone.js &#124; 電話響了的動作 wrong.js &#124; 錯誤示範 結果 為了確保一件事在另一件事之後發生, 記得要在 callback 裡面去呼叫函式. right.js &#124; 正確示範 結果 &#8230; <a href="http://dreamerslab.com/blog/tw/node-js-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/node-js-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript callbacks</title>
		<link>http://dreamerslab.com/blog/tw/javascript-callbacks/</link>
		<comments>http://dreamerslab.com/blog/tw/javascript-callbacks/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 15:19:43 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=717</guid>
		<description><![CDATA[Callback 到底是什麼呢? 當一個函式執行完畢後所執行的那個函式就是所謂的 callback 函式. 聽起來滿饒舌的齁. 一般來說如果你想讓 do_b 在 do_a 之後執行程式大概會長得這個樣子 結果 但是因為 javascript 是一個事件驅動的語言. 所以如果當 do_a 所花的時間比 do_b 久的話, do_b 的結果就會比 do_a 早出來. 結果 所以我們要怎麼確定讓 do_b 出現在 do_a 之後呢? 這時候 callbacks 就派上用場了. 結果 各種不同套用 callback 的方式 結果 現在我們知道如何執行 node.js &#8230; <a href="http://dreamerslab.com/blog/tw/javascript-callbacks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/javascript-callbacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript call 以及 apply</title>
		<link>http://dreamerslab.com/blog/tw/javascript-call-and-apply/</link>
		<comments>http://dreamerslab.com/blog/tw/javascript-call-and-apply/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 10:16:55 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[apply]]></category>
		<category><![CDATA[call]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=849</guid>
		<description><![CDATA[有好一段時間我對於 call 以及 apply 總是一知半解. 不但不知道何時可以用到他也分不清楚兩者有什模差異. 基本上 call 以及 apply 都是去執行這個 function 並將這個 function 的 context 替換成第一個參數帶入的物件. 兩個主要的不同是 call 必須將 function 的參數一一帶入而用 apply 的話只要在第二個參數帶入一個陣列就可以了. 第二個參數不是必須的 一個比較趨近現實使用方式的案例 Ajax 是一個很適合拿來用 call 以及 apply 的地方. 速度 用 call 來執行的 function 稍稍微比用 apply 快一些. &#8230; <a href="http://dreamerslab.com/blog/tw/javascript-call-and-apply/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/javascript-call-and-apply/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript `this`</title>
		<link>http://dreamerslab.com/blog/tw/javascript-this/</link>
		<comments>http://dreamerslab.com/blog/tw/javascript-this/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 10:15:37 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=819</guid>
		<description><![CDATA[Javascript 的 `this` 是指什麼? 我們之前談過 scopes 和 closures. this 指的是當下這個 scope 的物件. 在瀏覽器裡最上層 scope 的物件是 window. 在 node.js 裡最上層是 global objects. Javascript 是一個很自由的語言. 你可以用 functional programming 或者是 object oriented programming 的方式來撰寫. 用 functional programming 寫法通常是變數和 callbacks 傳來傳去, 用 closure 來存資料. &#8230; <a href="http://dreamerslab.com/blog/tw/javascript-this/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/javascript-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript function scopes 和 closures</title>
		<link>http://dreamerslab.com/blog/tw/javascript-function-scopes-and-closures/</link>
		<comments>http://dreamerslab.com/blog/tw/javascript-function-scopes-and-closures/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 11:06:22 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[closure]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=726</guid>
		<description><![CDATA[Javascript 用 function 來當作一個 scope. 在 function 裡面再宣告一個 function 的話就會產生一個新的 scope. 我們來看看下面的範例吧. 結果 從上面的結果可以清楚的看到在內層 scope 沒有用 var 宣告的變數會複寫掉外層 scope 的變數. 在內層裡用 var 開頭宣告的變數會變成 local 變數並只存在這一個 scope( function ) 裡面. 這也被叫做 closure. 那我們又是在何時會用到以及如何使用 closure 呢? 在物件導向程式設計裡通常是用 class attributes 來儲存資料. 在 Javascript &#8230; <a href="http://dreamerslab.com/blog/tw/javascript-function-scopes-and-closures/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/javascript-function-scopes-and-closures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>npm 基本指令</title>
		<link>http://dreamerslab.com/blog/tw/npm-basic-commands/</link>
		<comments>http://dreamerslab.com/blog/tw/npm-basic-commands/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 12:41:05 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=667</guid>
		<description><![CDATA[一些常用的 npm 指令 當你設定好 node.js 的開發環境後, 是時候來把下面這些常用的 npm 指令給摸熟了. 將套件於全域安裝. 全域安裝的套件通常只是為了執行檔而已. 將套件安裝在專案裡. 套件在每一個不同的專案裡都要重裝一次不然會 require 不到. 移除全域套件. 移除專案裡的套件. 搜尋套件. 列出全域套件. 列出全域套件詳細資訊. 列出專案裡的套件. 列出專案裡的套件詳細資訊. 更新全域套件. 更新案裡的套件. 用 `package.json` 來管理專案裡的套件 只要將 package.json 這個檔案放在專案的根目錄裡, 就不需要一個個的手動安裝套件. 原本應該是要 有了 package.json 在專案的根目錄就只要 package.json 然後在 terminal 裡輸入下面的指令就全部安裝完成了. 更完整的說明文件請見這裡. &#8230; <a href="http://dreamerslab.com/blog/tw/npm-basic-commands/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/npm-basic-commands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>node.js 基本教學</title>
		<link>http://dreamerslab.com/blog/tw/node-js-basics/</link>
		<comments>http://dreamerslab.com/blog/tw/node-js-basics/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 09:48:45 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dreamerslab.com/blog/?p=621</guid>
		<description><![CDATA[學習基本的 javascript 和 node.js 安裝完 node.js 開發環境並且也知道了常用的 npm 指令之後, 接下來來看一些 javascript 以及 node.js 的基礎. 俗話說萬丈高樓平地起, 這些基本概念沒學好之後可是很難精進的. Examples and source 範例檔案請見 github 執行 javascript 檔案 我們來寫一個可以在 terminal 列出 Hey you 的 javascript 程式. 打開你的文字編輯器然後輸入 console.log( 'Hey you' ); 並另存新檔成 hey.js 到桌面. &#8230; <a href="http://dreamerslab.com/blog/tw/node-js-basics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://dreamerslab.com/blog/tw/node-js-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
